@font-face{font-family:Montserrat;src:url('./fonts/montserrat.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
:root{--cream:#f9f6e9;--green:#193c25;--deep:#112d1c;--gold:#f0bb36;--container:1280px;--space:64px}
.container{width:min(var(--container),calc(100% - 80px))}.review-notice{font-size:.65rem;padding:5px 16px;background:#eee7d1}.site-header{min-height:144px;display:grid;grid-template-columns:250px 1fr 250px;gap:20px}.brand{width:240px;max-width:240px}.brand small{font-size:.55rem;letter-spacing:.38em;margin-top:10px}.site-nav{justify-content:center;gap:40px}.site-nav a{font-size:.9rem;font-weight:500}.site-nav a[aria-current=page]{font-weight:600}.site-header .brand{grid-column:1}.site-nav{grid-column:2}.menu-toggle{display:none}
.button{min-height:48px;padding:12px 26px;gap:14px;font-size:.94rem;font-weight:600}.button svg{width:20px;height:20px;flex:none;stroke-width:1.7}.accent{color:#b77609}.button.gold{background:linear-gradient(100deg,#efb732,#ffcf4e);color:#152416;border-color:#e1b342}.hero{padding:0;overflow:clip;isolation:isolate}.hero>.container{position:relative}.hero-slide{grid-template-columns:1.04fr 1fr;gap:0;min-height:462px;align-items:start}.hero-copy{padding:32px 0 88px;z-index:2}.hero-copy h1{font-size:clamp(2.5rem,4.1vw,3.7rem);font-weight:750;line-height:1.02;letter-spacing:-.055em;margin-bottom:22px}.hero-copy .lead{font-size:1.4rem;margin-bottom:0;line-height:1.5;letter-spacing:-.03em}.hero-copy .actions{margin-top:28px;gap:14px;flex-wrap:nowrap}.hero-copy .button{font-size:.9rem;padding-inline:22px}.hero-family{height:462px;min-height:0;align-self:start;overflow:visible}.family-image{position:absolute;width:560px;max-width:none;height:auto;bottom:-135px;right:0;object-fit:contain}.hero-family::before{inset:-40px -20px -100px 0;border-radius:58% 58% 0 0}.hero-family::after{width:280px;height:330px;left:-70px;top:10px;opacity:.8;transform:rotate(-65deg)}.hero::before{width:260px;height:260px;right:-90px;top:-90px;transform:rotate(100deg);opacity:.7}.hero .carousel-controls{position:absolute;left:43%;bottom:32px;margin:0;padding:0;gap:0;z-index:5}.carousel-controls button,.carousel-controls button[aria-pressed=true]{border:0;background:transparent;min-width:34px;min-height:44px;padding:12px;display:grid;place-items:center}.carousel-controls button span{width:11px;height:11px;border-radius:50%;background:#d6d9b8}.carousel-controls button[aria-pressed=true] span{background:var(--green)}.commercial{z-index:6;margin:0;border:0;border-radius:0;padding:24px 0 26px;background:linear-gradient(110deg,#193c25,#163720);isolation:isolate}.commercial-wave{display:block;position:absolute;left:0;top:-89px;width:100%;height:90px;z-index:-1;overflow:visible;pointer-events:none}.commercial-inner{grid-template-columns:1fr 1fr 1fr;gap:30px;max-width:1160px}.commercial-item{gap:24px;min-height:70px}.commercial-item+.commercial-item{padding-left:48px;border-color:#6e793e}.commercial-item p{font-size:1.1rem;line-height:1.3}.commercial-item svg{width:62px;height:62px;padding:12px;border:1.3px solid #e8be36;border-radius:50%;color:#edc33f;stroke-width:1.4}.commercial-number{font-size:3.5rem;font-weight:800;letter-spacing:-.055em;color:#f1c546;text-shadow:0 2px #926a14}.commercial-item:first-child p{font-size:.9rem}.split{grid-template-columns:1.35fr 1fr;gap:32px}.section.container.split{padding-block:28px 58px}.split h2{font-size:2.15rem;line-height:1.08;margin-bottom:22px}.split p{font-size:.95rem;line-height:1.7}.aerial{margin:0;position:relative;overflow:hidden;border-radius:14px;background:#d7dfc5}.aerial img{width:100%;aspect-ratio:1.5;object-fit:cover;object-position:50% 66%}.aerial figcaption{position:absolute;bottom:0;left:0;right:0;padding:22px 16px 11px;background:linear-gradient(transparent,#10220ed9);color:white;font-size:.69rem;line-height:1.4}.hero-aerial{padding:0;min-height:0;align-self:center;border-radius:14px;background:none}.hero-aerial .aerial{width:100%}.hero-aerial .aerial img{aspect-ratio:1.45}.about-visual .aerial img{aspect-ratio:1.65}.infrastructure{padding-bottom:48px}.infrastructure h2{font-size:2.35rem;margin-bottom:12px}.infrastructure .center>p{margin-bottom:12px}.infrastructure-list{padding-top:20px;gap:30px;max-width:1050px;margin-inline:auto}.infrastructure-list svg{width:88px;height:88px;padding:20px;margin-bottom:12px;stroke-width:1.25;border-width:1.5px}.infrastructure-list h3{font-size:1rem;font-weight:500;max-width:160px;margin-inline:auto;line-height:1.3}.infrastructure-list p{font-size:.75rem}.infrastructure::before{width:210px;height:260px;left:-90px;bottom:10px;opacity:.5}.final-cta{padding:32px 0}.final-cta .container{max-width:980px;justify-content:center;gap:65px}.final-cta h2{font-size:2.25rem;text-align:center}.final-cta .button{min-width:300px}.site-footer{padding-top:28px;padding-bottom:90px}.site-footer .brand{width:155px}.footer-main{align-items:center}.footer-contact{display:flex;gap:24px}.footer-contact a{display:inline-flex;gap:8px;align-items:center;text-decoration:none;font-size:.8rem}.footer-contact svg{width:18px;height:18px;flex:none}.footer-links a{text-decoration:none}.footer-legal{font-size:.65rem;margin:22px auto 0;text-align:center}.whatsapp-float{background:#00b548;width:60px;height:60px;bottom:24px;right:24px;border:2px solid #fff9e8;box-shadow:0 3px 10px #17342030}.whatsapp-float svg{width:34px;height:34px;stroke-width:1.6}
@media(min-width:1500px){.hero-slide{min-height:462px}}
@media(min-width:641px) and (max-width:1000px){.container{width:calc(100% - 48px)}.site-header{grid-template-columns:210px 1fr 100px;min-height:120px}.brand{width:190px}.site-nav{gap:26px}.hero-slide{min-height:390px}.hero-family{height:390px}.family-image{width:440px;right:-25px;bottom:-100px}.hero-copy h1{font-size:2.8rem}.hero-copy .lead{font-size:1.1rem}.hero-copy .actions{gap:10px;flex-wrap:wrap}.hero-copy .button{font-size:.78rem;padding:10px 16px;min-height:42px}.commercial-item p{font-size:.95rem}.commercial-item{gap:14px}.commercial-item+.commercial-item{padding-left:24px}.commercial-item svg{width:48px;height:48px;padding:9px}.commercial-number{font-size:2.8rem}.split h2{font-size:1.8rem}.footer-contact{flex-direction:column;gap:12px}}
@media(max-width:640px){:root{--space:44px}.container{width:calc(100% - 32px)}.review-notice{font-size:.56rem;line-height:1.4;padding:5px 12px}.site-header{display:flex;min-height:110px;justify-content:space-between;align-items:flex-start;padding-block:12px;gap:0}.brand{width:148px;max-width:148px}.brand small{font-size:.38rem;margin-top:7px;letter-spacing:.28em}.menu-toggle{display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:10px;margin-top:0;border:0;border-radius:0;background:transparent}.menu-toggle svg{width:26px;height:26px;stroke-width:1.7}.site-nav{padding-top:10px;gap:0}.site-nav a{font-size:.9rem}.hero>.container{position:relative}.hero-slide{display:flex;flex-direction:column;gap:0;min-height:0}.hero-copy{display:contents}.hero-copy h1{order:0;font-size:clamp(1.78rem,7.5vw,2.5rem);line-height:1.05;margin:12px 0 10px;letter-spacing:-.05em}.hero-copy .lead{order:1;font-size:1rem;margin:0 0 14px;line-height:1.5}.hero-copy .eyebrow{order:0;margin:12px 0}.hero-family{order:2;position:relative;width:calc(100% + 32px);margin-inline:-16px;height:300px;min-height:300px;padding:0;overflow:hidden}.family-image{width:min(100%,420px);height:auto;max-height:none;max-width:none;right:50%;transform:translateX(50%);bottom:-96px}.hero-family::before{inset:20px 0 -70px;border-radius:55% 55% 0 0}.hero-family::after{width:150px;height:180px;left:-30px;top:25px;opacity:.7}.hero::before{width:140px;height:180px;right:-55px;top:125px;opacity:.7}.hero-copy .actions{order:3;display:flex;flex-direction:column;width:100%;margin:14px 0 40px;gap:9px;padding-inline:12px}.hero-copy .button{min-height:40px;padding:9px 16px;font-size:.82rem}.button svg{width:18px;height:18px}.hero .carousel-controls{left:50%;transform:translateX(-50%);bottom:143px;gap:0;padding:0}.carousel-controls button{min-width:28px;width:28px}.carousel-controls button span{width:9px;height:9px}.commercial{padding:15px 0 20px}.commercial-wave{top:-26px;height:27px}.commercial-inner{gap:8px;width:calc(100% - 24px)}.commercial-item{gap:7px;min-height:94px}.commercial-item+.commercial-item{padding-left:8px}.commercial-item svg{width:43px;height:43px;padding:8px}.commercial-item p{font-size:.69rem;line-height:1.2;max-width:15ch}.commercial-item:first-child p{font-size:.65rem}.commercial-number{font-size:1.75rem;line-height:1.08}.split,.location .split{grid-template-columns:1fr;gap:20px}.section.container.split{padding-block:20px 36px}.split h2{font-size:1.7rem;margin-bottom:14px}.split p{font-size:.87rem;line-height:1.65}.split .button{width:100%;font-size:.8rem}.aerial{border-radius:10px}.aerial img{aspect-ratio:1.55;object-position:50% 66%}.aerial figcaption{font-size:.57rem;padding:20px 10px 8px}.infrastructure h2{font-size:1.7rem;line-height:1.1}.infrastructure .center>p{font-size:.85rem}.infrastructure-list{gap:16px 10px;padding-top:14px}.infrastructure-list svg{width:65px;height:65px;padding:14px;margin-bottom:10px;stroke-width:1.3}.infrastructure-list h3{font-size:.8rem;margin-bottom:6px}.infrastructure-list p{font-size:.66rem;line-height:1.5}.infrastructure .caption{font-size:.64rem;margin-top:22px}.infrastructure::before{width:120px;height:170px;left:-25px;opacity:.32}.final-cta{padding:24px 0}.final-cta .container{align-items:center;gap:18px}.final-cta h2{font-size:1.8rem}.final-cta .button{min-width:0;width:100%;max-width:330px;font-size:.85rem}.footer-main{align-items:center;gap:24px}.footer-contact{display:grid;align-self:flex-start;gap:14px}.footer-links{justify-content:center;gap:20px}.footer-links a{font-size:.76rem}.site-footer{padding-bottom:95px}.site-footer .brand{width:140px}.footer-legal{text-align:left;font-size:.63rem}.whatsapp-float{width:52px;height:52px;bottom:16px;right:16px}.whatsapp-float svg{width:30px;height:30px}.hero-aerial{order:2;width:100%;margin-top:10px}.hero-aerial .aerial img{aspect-ratio:1.3}}
/* A curva é um elemento de seção, não um ícone comercial. */
.commercial > .commercial-wave{width:100%;height:90px;top:-89px;padding:0;border:0;border-radius:0;color:inherit;max-width:none}
@media(min-width:641px){.hero{overflow:visible}.hero::before{right:0;top:-120px;width:180px;height:240px}.hero-family::before{right:0}.hero-family{z-index:1}.hero-copy{z-index:2}}
@media(max-width:640px){.commercial > .commercial-wave{height:27px;top:-26px}}
body{overflow-x:clip}
@media(min-width:641px){.hero-family{clip-path:inset(-90px 0 0 -110px)}.hero::before{right:55px}}
.header-map{grid-column:3;justify-self:end;border-radius:12px;font-size:.8rem;white-space:nowrap;padding:11px 16px;gap:10px;min-height:44px}
.mobile-map{display:none!important}.map-link svg{flex:none}.map-link>svg:first-child{width:23px;height:23px}.hero-copy .map-link{gap:9px}
@media(min-width:641px) and (max-width:1000px){.site-header{grid-template-columns:180px 1fr 195px;gap:14px}.site-nav{gap:20px}.header-map{font-size:.72rem;padding:9px 10px;gap:7px}.brand{width:175px}.site-nav a{font-size:.8rem}}
@media(max-width:640px){.header-map{display:none}.site-nav .mobile-map{display:flex!important;margin-top:10px;padding:12px;border:1px solid var(--green);font-size:.8rem}.hero-copy .map-link{justify-content:center}.map-link{font-size:.85rem}}
/* Zoom de ícones: transforma apenas o vetor, sem alterar o fluxo do layout. */
:is(.infrastructure-list li,.commercial-item,.button,.footer-contact a,.whatsapp-float,.menu-toggle) > svg {
  transform-origin:center;
  transition:transform 180ms ease-out;
}
@media (hover:hover) and (pointer:fine) {
  :is(.infrastructure-list li,.commercial-item,.button,.footer-contact a,.whatsapp-float,.menu-toggle):hover > svg {
    transform:scale(1.12);
  }
}
:is(.button,.footer-contact a,.whatsapp-float,.menu-toggle):focus-visible > svg {transform:scale(1.12)}
@media (prefers-reduced-motion:reduce) {
  :is(.infrastructure-list li,.commercial-item,.button,.footer-contact a,.whatsapp-float,.menu-toggle) > svg {
    transition:none!important;
    transform:none!important;
  }
}

/* Galeria editorial; dados separados em config/gallery.json. */
.gallery-section{padding-top:20px;padding-bottom:64px}.gallery-heading{text-align:center;max-width:800px;margin:0 auto 30px}.gallery-heading h2{font-size:clamp(1.8rem,3vw,2.8rem)}.gallery-heading p:last-child{font-size:.95rem;color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:24px}.gallery-item{margin:0;min-width:0}.gallery-open{position:relative;display:block;overflow:hidden;border-radius:14px;background:#e3e7d5}.gallery-open img{display:block;width:100%;height:290px;object-fit:cover;object-position:center;transition:transform .25s ease}.gallery-expand{position:absolute;bottom:14px;right:14px;width:38px;height:38px;display:grid;place-items:center;background:var(--cream);color:var(--green);border-radius:50%;font-size:1.3rem}.gallery-item figcaption{display:flex;gap:12px;padding-top:16px;font-size:.9rem;font-weight:600;line-height:1.5}.gallery-number{color:#a16c17;font-size:.75rem;padding-top:2px}.gallery-item small{display:block;font-size:.63rem;color:var(--muted);font-weight:400;margin-top:6px;line-height:1.5}.gallery-disclaimer{font-size:.72rem;color:var(--muted);text-align:center;margin:26px auto 0;max-width:80ch}.gallery-dialog{width:min(1160px,calc(100% - 40px));max-width:none;max-height:calc(100dvh - 40px);border:1px solid #667957;border-radius:16px;padding:0;background:#10291c;color:#fffdf4;overflow:auto}.gallery-dialog::backdrop{background:#07130fe8}.gallery-dialog-inner{padding:16px 22px}.gallery-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.gallery-dialog h2{font-size:1rem;color:inherit;letter-spacing:0;margin:0}.gallery-dialog button{width:44px;height:44px;flex:none;border:1px solid #81947a;background:transparent;border-radius:50%;color:white;font-size:1.5rem;display:grid;place-items:center}.gallery-dialog button:hover{background:#31543a}.gallery-stage{display:grid;place-items:center;min-height:150px}.gallery-stage img{max-width:100%;width:auto;height:auto;max-height:calc(100dvh - 240px);object-fit:contain;border-radius:5px}.gallery-stage p{text-align:center;padding:40px}.gallery-dialog footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;text-align:center}.gallery-dialog footer p{margin:0;font-weight:600;font-size:.95rem}.gallery-dialog footer small{display:block;color:#d5dfc8;font-size:.67rem;margin-top:4px}.gallery-dialog [data-gallery-count]{display:block;font-size:.7rem;margin-top:6px;color:#e7c56c}.gallery-is-open{overflow:hidden}.gallery-dialog :focus-visible{outline-color:#f1c546}
@media(hover:hover) and (pointer:fine){.gallery-open:hover img{transform:scale(1.035)}}
.gallery-open:focus-visible{outline:3px solid #a16c17;outline-offset:5px}
@media(max-width:900px){.gallery-grid{gap:18px;grid-template-columns:1fr 1fr}.gallery-item:first-child{grid-column:1/-1}.gallery-item:first-child img{height:340px}.gallery-open img{height:240px}}
@media(max-width:640px){.gallery-section{padding-bottom:44px}.gallery-heading{margin-bottom:22px}.gallery-heading p:last-child{font-size:.85rem}.gallery-grid{grid-template-columns:1fr;gap:24px}.gallery-item:first-child{grid-column:auto}.gallery-open img,.gallery-item:first-child img{height:auto;aspect-ratio:1.4;object-fit:cover}.gallery-item figcaption{padding-top:10px;font-size:.85rem}.gallery-item small{font-size:.65rem}.gallery-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 20px);border-radius:12px}.gallery-dialog-inner{padding:12px}.gallery-dialog header h2{font-size:.82rem}.gallery-stage img{max-height:calc(100dvh - 230px)}.gallery-dialog footer{gap:8px}.gallery-dialog footer p{font-size:.78rem}.gallery-dialog footer small{font-size:.6rem}.gallery-disclaimer{font-size:.67rem}}
@media(prefers-reduced-motion:reduce){.gallery-open img{transition:none!important;transform:none!important}}

/* Zoom do botão completo; o ícone acompanha sem ampliar duas vezes. */
:is(a.button,button,.whatsapp-float) {
  transform-origin:center;
  transition:transform 180ms ease-out,background-color 180ms ease-out;
}
@media (hover:hover) and (pointer:fine) {
  :is(a.button,button:not(:disabled),.whatsapp-float):hover {transform:scale(1.12)}
  :is(.button,button,.whatsapp-float):hover > svg {transform:none}
}
:is(a.button,button:not(:disabled),.whatsapp-float):focus-visible {transform:scale(1.12)}
:is(.button,button,.whatsapp-float):focus-visible > svg {transform:none}
@media (prefers-reduced-motion:reduce) {
  :is(a.button,button,.whatsapp-float) {transition:none!important;transform:none!important}
}
.presentation-media{margin:0;overflow:hidden;border-radius:14px;background:var(--deep)}
.presentation-media video{display:block;width:100%;height:auto;aspect-ratio:1.5;object-fit:contain;background:var(--deep)}
.presentation-media figcaption{padding:10px 14px;color:var(--cream);font-size:.68rem;line-height:1.5}

/* Composição botânica do hero alinhada à referência aprovada. */
.hero-family::before{
  inset:-42px -28px -110px -8px;
  border-radius:0;
  background:url('./images/hero-curves.svg') center top/100% 100% no-repeat;
}
.hero-family::after{
  width:300px;height:200px;left:-90px;top:55px;
  background:url('./images/folhas.png') center/contain no-repeat;
  transform:rotate(65deg) scaleX(-1);opacity:.82;
}
.hero::before{
  width:230px;height:154px;right:-50px;top:-150px;
  background:url('./images/folhas.png') center/contain no-repeat;
  transform:rotate(100deg);opacity:.72;
}
@media(min-width:641px) and (max-width:1000px){
  .hero-family::before{inset:-30px -15px -90px 0}
  .hero-family::after{width:205px;height:137px;left:-46px;top:83px}
  .hero::before{width:185px;height:124px;right:-40px;top:-120px}
}
@media(max-width:640px){
  .hero-family::before{inset:12px -20px -80px -8px}
  .hero-family::after{width:155px;height:104px;left:-35px;top:92px;transform:rotate(65deg) scaleX(-1);opacity:.75}
  .hero::before{display:none}
  .hero-family{background:url('./images/folhas.png') right -48px top 0/160px auto no-repeat}
}





.carousel-controls .carousel-pause{color:var(--green);font-size:15px;line-height:1;background:transparent;border:0}
.hero-slide:not([hidden]){animation:banner-appear .45s ease-out}
@keyframes banner-appear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.hero-slide:not([hidden]){animation:none}}
.works-teaser{display:flex;align-items:center;justify-content:space-between;gap:30px;border-top:1px solid #d8deca}
.works-teaser p:last-child{margin-bottom:0}
.works-progress{display:grid;grid-template-columns:1fr 1.3fr;gap:40px;padding:36px;border:1px solid #d8deca;border-radius:20px;background:#eef0e3}
.works-progress h2{margin-bottom:0}.works-meter strong{display:block;font-size:1.5rem;color:var(--green);margin-bottom:16px}
.works-track,.works-meter progress{display:block;width:100%;height:14px;border:0;border-radius:20px;overflow:hidden;background:#d9dfcb;appearance:none}
.works-meter progress::-webkit-progress-bar{background:#d9dfcb;border-radius:20px}.works-meter progress::-webkit-progress-value{background:var(--green);border-radius:20px}.works-meter progress::-moz-progress-bar{background:var(--green)}
.works-meter p{font-size:.85rem;margin:12px 0}.works-empty{padding:55px 24px;text-align:center;border:1px dashed #acb798;border-radius:18px}.works-empty p{margin-bottom:0}.works-page .page-heading{max-width:900px}
@media(min-width:641px){.site-nav{gap:20px}.site-nav a{white-space:nowrap}}
@media(max-width:640px){.works-progress{grid-template-columns:1fr;padding:24px;gap:20px}.works-teaser{flex-direction:column;align-items:flex-start}.works-page h1{font-size:2.25rem}}
/* Nova composição fornecida: família, arco e folhagem na mesma imagem. */
.hero:has(.hero-composed)::before,.hero-composed::before,.hero-composed::after{display:none}
.hero-composed{background:none;clip-path:none}
.hero-composed .family-image{width:115%;max-width:none;height:auto;right:-4%;bottom:0;transform:none}
@media(min-width:641px) and (max-width:1000px){.hero-composed .family-image{width:125%;right:-5%;bottom:0}}
@media(max-width:640px){.hero-composed{height:300px;min-height:300px;background:none}.hero-composed .family-image{width:450px;max-width:none;height:300px;object-fit:contain;right:50%;bottom:0;transform:translateX(50%)}}
/* Banner de obras: mapa inteiro, sem recorte, e família sobre a borda da mata. */
.hero-slide.hero-works{grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:24px;align-items:center;padding-bottom:65px;min-height:540px}
.works-banner-scene{position:relative;align-self:center;background:white;border-radius:14px;isolation:isolate}
.works-banner-map{display:block;width:100%;height:auto;object-fit:contain;border-radius:14px}
.works-banner-family{position:absolute;right:-7%;bottom:3%;height:72%;width:auto;max-width:26%;object-fit:contain;object-position:bottom;z-index:1}
.works-banner-caption{position:absolute;left:12px;bottom:8px;font-size:9px;color:#354c37;background:#fffffff0;padding:4px 7px;border-radius:4px}
.works-banner-info{position:relative;z-index:2;padding:15px 0 30px}.works-banner-info h2{font-size:clamp(24px,2.5vw,36px);line-height:1.15}
.banner-progress{margin:24px 0}.banner-progress strong{display:block;color:var(--green);font-size:24px;margin-bottom:14px}.banner-progress p{font-size:11px;margin:10px 0}.banner-progress progress{width:100%;height:14px;accent-color:var(--green)}
.hero-works .actions{gap:10px}.hero-works .button{padding:12px 18px;font-size:12px}
@media(max-width:640px){.hero-slide.hero-works{display:flex;flex-direction:column;gap:16px;padding-bottom:45px}.works-banner-scene{width:100%;order:0}.works-banner-info{width:100%;padding:0 0 25px;order:1}.works-banner-info h2{font-size:27px}.works-banner-family{right:-2%;max-width:29%}.hero:has(.hero-works:not([hidden])) .carousel-controls{bottom:22px}.hero-works .actions{margin-top:18px}.banner-progress{margin:18px 0}.works-banner-caption{font-size:8px;left:5px;bottom:3px}}
@media(min-width:641px){.hero-slide.hero-works{gap:52px}}
/* Recorte do contorno externo: preserva todos os pixels internos do mapa original. */
.works-banner-scene{background:transparent;border-radius:0}
.works-banner-map{border-radius:0;clip-path:polygon(4.6% 18.9%,11.9% 18.5%,6.7% 14.3%,7.4% 12.6%,14% 16.3%,15.3% 15.6%,18.8% 5.5%,22.5% 7.2%,19.8% 16.7%,20.5% 19.6%,92% 4.7%,95.2% 96.1%,19.2% 95.6%,19.2% 26.1%,16.9% 23.6%,14.3% 23.8%,4.7% 23.8%)}
.works-banner-caption{background:transparent}
/* Rodapé institucional */
.site-footer{background:#f0eedf;border-top:1px solid #d8ddcb;padding:54px 0 22px;color:#23432c}
.site-footer .footer-main{display:grid;grid-template-columns:1.2fr .8fr 1.2fr 1fr;align-items:start;gap:44px;padding:0 0 38px;border:0}
.site-footer .footer-brand .brand{display:block;width:200px;max-width:100%;margin:0}
.footer-brand>p{font-size:13px;line-height:1.7;margin:20px 0 0;color:#61705d}
.footer-column h2{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin:8px 0 22px;color:#23432c}
.site-footer .footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:13px}
.site-footer .footer-links a{font-size:13px;text-decoration:none;line-height:1.5}
.site-footer .footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.site-footer .footer-contact a{display:flex;align-items:center;gap:11px;font-size:13px;text-decoration:none}
.site-footer .footer-contact svg{width:22px;height:22px;flex-shrink:0}
.footer-contact small{display:block;font-size:10px;color:#67755f;margin-bottom:5px}
.footer-address address{font-style:normal;font-size:13px;line-height:1.9;color:#53634f}
.footer-directions{display:inline-flex;align-items:center;gap:10px;margin-top:15px;font-size:12px;font-weight:600;text-decoration:none;border-bottom:1px solid #9ca98e;padding-bottom:5px}
.footer-directions svg{width:18px;height:18px}
.site-footer a:hover{color:#9a6900}
.footer-bottom{display:grid;grid-template-columns:1fr 1.5fr;gap:30px;border-top:1px solid #cdd4bf;padding-top:23px}
.footer-bottom p{font-size:10px;line-height:1.8;color:#64705e;margin:0}
.footer-bottom p:last-child{text-align:right}
.footer-review{font-size:9px;color:#79816e;margin:14px 0 0;line-height:1.6}
@media(max-width:1000px){.site-footer .footer-main{grid-template-columns:1fr 1fr;gap:32px 48px}}
@media(max-width:640px){.site-footer{padding:36px 0 85px}.site-footer .footer-main{grid-template-columns:1fr 1fr;gap:30px 18px;padding-bottom:28px}.site-footer .footer-brand .brand{width:150px}.footer-brand>p{font-size:12px;margin-top:14px}.footer-column h2{font-size:10px;margin-bottom:16px}.site-footer .footer-links a,.site-footer .footer-contact a,.footer-address address{font-size:11px}.site-footer .footer-contact{align-self:auto;gap:18px}.site-footer .footer-contact a{gap:7px;overflow-wrap:anywhere}.site-footer .footer-contact svg{width:18px;height:18px}.footer-bottom{grid-template-columns:1fr;gap:10px;padding-top:20px}.footer-bottom p:last-child{text-align:left}}
.footer-bottom{padding-right:76px}.footer-bottom p{font-size:11px}@media(max-width:640px){.footer-bottom{padding-right:0}}
/* No celular, manter todas as informações do mapa livres de sobreposição. */
@media(max-width:640px){
  .works-banner-scene{display:grid;grid-template-columns:minmax(0,1fr) 92px;align-items:end;gap:12px 16px}
  .works-banner-map{grid-column:1/-1;grid-row:1;width:100%}
  .works-banner-family{position:static;grid-column:2;grid-row:2;width:92px;height:174px;max-width:100%;object-fit:contain;justify-self:end}
  .works-banner-caption{position:static;grid-column:1;grid-row:2;align-self:start;padding:0;font-size:10px;line-height:1.6;color:#53634f;background:none;margin-top:4px}
}
/* Sobreposição discreta somente na borda da mata; legenda fora do mapa. */
@media(max-width:640px){
  .works-banner-scene{display:block;margin-right:12px;width:calc(100% - 12px)}
  .works-banner-family{position:absolute;right:-12px;bottom:32px;width:18%;height:auto;max-width:18%;object-fit:contain}
  .works-banner-caption{display:block;position:static;margin:10px 0 0;padding:0;line-height:1.6;font-size:10px}
}
.works-banner-composed{display:block;background:transparent}
.works-banner-composed .works-banner-map{clip-path:none;width:100%;height:auto;object-fit:contain}
.works-banner-composed .works-banner-caption{position:static;display:block;margin:10px 0 0;padding:0;background:none;line-height:1.6}
@media(max-width:640px){.works-banner-scene.works-banner-composed{display:block;width:100%;margin-right:0}}
.works-teaser{display:block}.works-teaser-heading{display:flex;justify-content:space-between;align-items:center;gap:24px}
.stage-progress{list-style:none;padding:0;margin:32px 0 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.stage-progress li{padding:26px 16px 22px;border:1px solid #d8dfcc;border-radius:16px;background:#f2f3e8;text-align:center}
.stage-progress svg{display:block;width:48px;height:48px;margin:0 auto 16px;stroke-width:1.4;color:var(--green)}
.stage-progress h3{font-size:14px;min-height:38px;margin:0 0 14px}.stage-progress strong{display:block;font-size:28px;color:var(--green);margin-bottom:16px}.stage-progress .stage-pending{font-size:16px;padding:7px 0}
.stage-progress small{display:block;font-size:10px;color:#65745e;margin-top:12px;line-height:1.5}.stage-progress progress{display:block;width:100%;height:8px;accent-color:var(--green)}.stage-progress .works-track{height:8px}
.works-stages{padding-bottom:0}
@media(max-width:800px){.stage-progress{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.works-teaser-heading{display:block}.works-teaser-heading>.button{margin-top:20px}.stage-progress{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stage-progress li{padding:20px 12px}.stage-progress li:last-child{grid-column:1/-1;max-width:100%}.stage-progress h3{min-height:32px;font-size:12px}.stage-progress li:last-child .works-track,.stage-progress li:last-child progress{max-width:160px;margin-inline:auto}}
.stage-progress{gap:30px;margin-top:26px}.stage-progress li{padding:12px 8px;background:none;border:0;border-radius:0}.stage-progress svg{width:78px;height:78px;margin-bottom:20px;stroke-width:1.3}.stage-progress h3{font-size:15px;min-height:38px;margin-bottom:12px}.stage-progress strong{font-size:44px;font-weight:700;letter-spacing:-2px;margin:0;color:var(--green)}.stage-progress strong span{font-size:27px;letter-spacing:0;margin-left:3px}.stage-progress small{font-size:12px;margin-top:4px;color:#64745d}.stage-demo-note{font-size:10px;color:#7b714e;margin:24px 0 0}.stage-progress .stage-pending{font-size:17px;letter-spacing:0}
@media(max-width:640px){.stage-progress{gap:25px 12px}.stage-progress svg{width:68px;height:68px}.stage-progress h3{font-size:13px;min-height:32px}.stage-progress strong{font-size:38px}.stage-progress li:last-child{grid-column:1/-1}.stage-demo-note{font-size:9px}}
.stage-progress{gap:0}.stage-progress li+li{border-left:1px solid #cbd3bc}
@media(min-width:641px) and (max-width:800px){.stage-progress li:nth-child(4){border-left:0}}
@media(max-width:640px){.stage-progress{gap:24px 0}.stage-progress li:nth-child(odd){border-left:0}.stage-progress li:last-child{border-top:1px solid #cbd3bc;padding-top:24px}}
/* Percentual geral com a mesma hierarquia do título. */
.works-progress h2,.works-progress .works-meter strong{font-size:clamp(1.9rem,3vw,3rem);line-height:1.15;font-weight:700;letter-spacing:-.035em}.works-progress .works-meter strong{margin-bottom:12px}.works-progress .works-meter progress,.works-progress .works-track{width:100%;max-width:360px;height:6px;margin-inline:0}.works-progress{align-items:center}
/* Caption and social actions share a single row under the image. */
.gallery-dialog{overflow:hidden;max-height:calc(100dvh - 20px)}
.gallery-dialog-inner{display:flex;flex-direction:column;max-height:calc(100dvh - 22px);min-height:0}
.gallery-dialog header{flex:none;margin-bottom:8px}
.gallery-stage{position:relative;min-height:0;flex:1 1 auto;overflow:hidden}
.gallery-stage img{max-height:calc(100dvh - 190px);max-width:100%;object-fit:contain}
.gallery-stage>[data-gallery-prev],.gallery-stage>[data-gallery-next]{position:absolute;top:50%;transform:translateY(-50%);background:#10291cbb;border:1px solid #ffffff90;z-index:1}
.gallery-stage>[data-gallery-prev]{left:8px}.gallery-stage>[data-gallery-next]{right:8px}
.gallery-dialog footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;text-align:left;margin-top:10px;flex:none}
.gallery-dialog footer>div:first-child{min-width:0}
.gallery-dialog footer [data-gallery-caption]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.gallery-dialog footer small{margin-top:3px}
.gallery-dialog .gallery-social{padding:0;gap:8px;flex-wrap:nowrap;align-items:flex-start;justify-content:flex-end}
.gallery-dialog .gallery-social>[data-like],.gallery-dialog .gallery-social>[data-share]{width:44px;height:52px;min-height:44px;padding:3px 6px;display:flex;gap:4px;flex-direction:column;border:0;background:transparent;color:#fff;border-radius:6px}
.gallery-dialog .gallery-social svg{width:29px;height:29px;stroke-width:1.8;flex:none}
.gallery-dialog .gallery-social [data-like][aria-pressed=true]{color:#ff4867}
.gallery-dialog .gallery-social [data-like-count]{font-size:11px;line-height:12px;color:#fff;margin:0}
.gallery-dialog .gallery-social>[role=status]{position:absolute;bottom:100%;right:0;white-space:normal;width:220px;font-size:11px;color:white;background:#173c29;padding:0 6px;pointer-events:none}
.gallery-dialog .gallery-share-options{right:0;width:245px;max-width:80vw;z-index:3;bottom:calc(100% + 8px)}
.gallery-dialog .gallery-share-options button{height:auto;width:auto;border-radius:20px;color:#23462e;background:#f8f8ee;font-size:12px;display:block}
@media(max-width:640px){.gallery-dialog-inner{padding:10px}.gallery-dialog footer{gap:8px}.gallery-dialog footer p{font-size:.76rem}.gallery-stage img{max-height:calc(100dvh - 190px)}.gallery-dialog .gallery-social{gap:2px}}
@media(max-height:450px){.gallery-dialog header{margin:0}.gallery-dialog header button{height:32px;width:32px}.gallery-stage img{max-height:calc(100dvh - 135px)}.gallery-dialog footer small{display:none}.gallery-dialog footer{margin-top:5px}}

.gallery-stage{height:calc(100dvh - 190px);flex:0 1 auto}.gallery-stage img{height:100%;max-height:100%;min-height:0;max-width:100%;object-fit:contain}@media(max-height:450px){.gallery-stage{height:calc(100dvh - 135px)}}
.gallery-dialog footer{position:relative;display:block;text-align:center;min-height:58px;padding:0 80px;margin-top:10px}
.gallery-dialog footer>.gallery-social{position:absolute;right:0;top:0;gap:3px}
.gallery-dialog .gallery-social>[data-like],.gallery-dialog .gallery-social>[data-share]{width:34px;height:44px;min-height:44px;padding:4px 5px;gap:3px}
.gallery-dialog .gallery-social svg{width:23px;height:23px}
.gallery-dialog .gallery-social [data-like-count]{font-size:10px}
.gallery-dialog footer [data-gallery-count]{margin-top:4px}
@media(max-width:640px){.gallery-dialog footer{padding:0 65px;min-height:70px}.gallery-dialog .gallery-social>[data-like],.gallery-dialog .gallery-social>[data-share]{width:30px;padding:4px 3px}.gallery-dialog .gallery-social svg{width:22px;height:22px}.gallery-dialog footer p{font-size:.7rem}}
/* Same gentle hover zoom used by the other infrastructure icons. */
.stage-progress svg{transform-origin:center;transition:transform 180ms ease-out}
@media(hover:hover) and (pointer:fine){.stage-progress li:hover svg{transform:scale(1.12)}}
@media(prefers-reduced-motion:reduce){.stage-progress svg{transition:none}.stage-progress li:hover svg{transform:none}}
/* Keep both hero slides in the same reading order: information, then image. */
@media(min-width:641px){.hero-slide.hero-works{grid-template-columns:minmax(280px,1fr) minmax(0,1.65fr)}.hero-works .works-banner-info{grid-column:1;grid-row:1}.hero-works .works-banner-scene{grid-column:2;grid-row:1}}
@media(max-width:640px){.hero-works .works-banner-info{order:0}.hero-works .works-banner-scene{order:1}}
@media(max-width:640px){[data-carousel] [data-slide]:not(:first-child){display:none!important}[data-carousel] .carousel-controls{display:none!important}}
/* Emphasize construction progress and bring the copy towards the map. */
@media(min-width:641px){
 .hero-slide.hero-works{gap:24px}
 .hero-works .works-banner-info{justify-self:end;width:100%;max-width:340px}
 .hero-works .works-banner-info h2{font-size:clamp(30px,3vw,42px);margin-bottom:12px}
 .hero-works .banner-progress{margin:18px 0 22px}
 .hero-works .banner-progress strong{font-size:clamp(48px,4.8vw,64px);line-height:1.05;margin-bottom:16px;font-weight:800}
 .hero-works .banner-progress progress{display:block;width:78%;max-width:260px;height:6px;margin-bottom:10px}
 .hero-works .banner-progress small{display:block}
}
