/* Consolidação final: preserva a composição aprovada e corrige navegação, cortes e vazios. */
:root{
  --header-current:154px;
  --ink:#17231f;
  --green:#18382e;
  --green2:#456653;
  --cream:#f0f2ec;
  --paper:#fafbf8;
  --gold:#74855e;
  --muted:#5f6b65;
  --line:#d8ddd7;
  --brand-sage:#91a179;
  --brand-sage-light:#bcc7aa;
}
.eyebrow.light,.contact-meta{color:var(--brand-sage-light)}
.hero h1 em{color:var(--brand-sage-light)}
.contact-actions a:hover{color:var(--brand-sage-light)}
.principles{background:#29483b}
.contact{background:#142a23}
footer{background:#0e1d18}
.site-header,.site-header.scrolled{position:relative;top:auto;inset:auto;z-index:50;background:rgba(20,42,35,.98);box-shadow:none;backdrop-filter:blur(12px)}
.site-header.scrolled{box-shadow:0 8px 26px rgba(0,0,0,.14)}
html{scroll-padding-top:0}
main>section[id]{scroll-margin-top:0}

/* Nenhuma seção recebe altura de tela forçada: o conteúdo determina a altura real. */
@media(min-width:901px){
  .intro,.story,.residences,.on-demand,.spe-explainer,.spe-showcase,.management-section{padding-top:64px;padding-bottom:64px}
  .section-heading{margin-bottom:34px}
  .story-grid,.on-demand-grid,.management-grid{align-items:center}
  .story-image img{height:520px}
  .on-demand-image img{height:460px}
  .project-grid{grid-template-rows:repeat(2,280px);grid-auto-rows:280px}
  .spe-card{min-height:460px}
}
/* Títulos podem crescer e quebrar linha sem serem ocultados. */
.section-heading,.section-heading>*,.story-copy,.on-demand-copy,.sticky-copy,.spe-heading>*,.contact-panel{min-width:0;overflow:visible}
.section h2,.contact h2,.focus-card h3,.card-overlay h3,.spe-card h3{height:auto;max-height:none;overflow:visible;text-wrap:balance}
.section p,.contact p{text-wrap:pretty}

/* Fotografias ficam contidas no respectivo bloco visual. */
.story-image,.on-demand-image,.project-card,.spe-card,.contact-image{isolation:isolate}
.story-image img,.on-demand-image img,.project-card img,.spe-card img,.contact-image img{display:block;width:100%}
.project-card,.spe-card{break-inside:avoid}
.story-image span{left:18px;bottom:18px;padding:.72rem 1rem;background:rgba(240,242,236,.94);color:var(--green);border:1px solid rgba(23,52,43,.12);font-size:.68rem;font-weight:600;letter-spacing:.11em}
.story{border-bottom:1px solid var(--line)}

/* Áreas de atuação: os três itens são cards equivalentes, não colunas soltas. */
.dual-cards{align-items:stretch}
.focus-card{height:100%;min-width:0}
.focus-card>div{width:100%;display:flex;flex-direction:column;align-self:stretch;justify-content:flex-end}
.focus-card>div>a{align-self:flex-start}
.spe-focus{background:linear-gradient(rgba(12,35,28,.78),rgba(12,35,28,.93)),url(images/maldivas-fachada.jpg) center/cover;color:#fff}
.demand-focus{background:linear-gradient(rgba(12,35,28,.72),rgba(12,35,28,.9)),url(images/residencia-unifamiliar-alphaville-mg.jpg) center/cover;color:#fff}
.management,.spe-focus,.demand-focus{border:1px solid rgba(19,32,28,.08)}

/* Construção sob demanda: restaura a composição aprovada e preserva a proporção da fotografia. */
.on-demand{background:var(--green);color:#fff}
.on-demand-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:6%;align-items:center}
.on-demand-copy h2{margin-bottom:1.3rem;font-size:clamp(2.55rem,3.6vw,4.2rem)}
.on-demand-copy>p:not(.eyebrow){max-width:680px;margin:.7rem 0;color:rgba(255,255,255,.74);font-size:1.05rem}
.on-demand-copy .button{margin-top:1.25rem}
.on-demand-image{position:relative;margin:0;overflow:hidden}
.on-demand-image img{width:100%;height:460px;object-fit:cover;object-position:center 45%}
.on-demand-image figcaption{position:absolute;left:18px;bottom:18px;padding:.72rem 1rem;background:rgba(240,242,236,.94);color:var(--green);border:1px solid rgba(23,52,43,.12);font-size:.68rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase}
.process-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin-top:22px;border-top:1px solid rgba(255,255,255,.17);border-left:1px solid rgba(255,255,255,.17)}
.process-grid article{min-width:0;padding:11px 16px;border-right:1px solid rgba(255,255,255,.17);border-bottom:1px solid rgba(255,255,255,.17)}
.process-grid span{color:var(--brand-sage-light);font-size:.68rem;line-height:1.2;letter-spacing:.13em}
.process-grid h3{margin:0 0 .2rem;font:600 1rem/1.25 Manrope,"DM Sans",sans-serif}
.process-grid p{margin:0;color:rgba(255,255,255,.68);font-size:.84rem;line-height:1.45}

@media(max-width:1200px) and (min-width:901px){
  .process-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-height:820px) and (min-width:901px){:root{--header-current:124px}}
@media(max-width:900px){
  :root{--header-current:108px}
  .section{padding:56px 0}
  .section-heading.split{align-items:start}
  .story-grid,.on-demand-grid,.management-grid{align-items:start}
  .project-grid{grid-auto-rows:300px}
  .on-demand-grid{grid-template-columns:1fr;gap:32px}
  .on-demand-image img{height:420px}
  .process-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px}
}
@media(max-width:600px){
  :root{--header-current:96px}
  .section{padding:46px 0}
  .story-image img{height:340px}
  .on-demand-image img{height:330px}
  .process-grid{grid-template-columns:1fr}
  .project-card{height:310px}
  .spe-card{min-height:0}
}

/* Telas de notebook: cada capítulo visual cabe na altura útil do navegador. */
@media(min-width:901px) and (max-height:1050px){
  .intro,.residences,.spe-explainer,.spe-showcase,.management-section{padding-top:38px;padding-bottom:38px}
  .story{padding-top:30px!important;padding-bottom:30px!important}
  .on-demand{padding-top:30px!important;padding-bottom:30px!important}
  .section-heading{margin-bottom:20px}
  .section h2{font-size:clamp(2.25rem,3vw,3.35rem)}
  .intro .section-heading h2,.residences .section-heading h2{font-size:clamp(2.2rem,2.8vw,3.1rem)}
  .section-heading.split>p{font-size:1rem;line-height:1.5}
  .focus-card{min-height:300px;padding:26px}
  .focus-card h3{font-size:clamp(1.75rem,2.1vw,2.35rem)}
  .story-image img{height:390px!important}
  .story-copy h2{font-size:clamp(2.2rem,2.75vw,3rem)}
  .story-copy p:not(.eyebrow){font-size:.9rem;line-height:1.42;margin:.48rem 0}
  .project-grid{grid-template-rows:repeat(2,210px);grid-auto-rows:210px}
  .card-overlay{padding:24px}
  .on-demand-grid{gap:4%}
  .on-demand-copy h2{font-size:clamp(2.25rem,2.8vw,3.1rem);margin-bottom:.85rem}
  .on-demand-copy>p:not(.eyebrow){font-size:.9rem;line-height:1.45;margin:.45rem 0}
  .on-demand-copy .button{margin-top:.8rem;padding:.78rem 1rem}
  .on-demand-image img{height:340px!important}
  .process-grid{margin-top:16px}
  .process-grid article{padding:10px 13px}
  .process-grid h3{font-size:.92rem;margin:0 0 .15rem}
  .process-grid p{font-size:.76rem;line-height:1.35}
  .spe-intro{margin-bottom:18px}
  .spe-steps article{padding-top:14px;padding-bottom:16px}
  .roles-panel{margin-top:18px}
  .spe-showcase .section-heading{margin-bottom:18px}
  .spe-card{min-height:360px}
  .services article{padding:.95rem 0}
  .contact-image img{min-height:450px}
  .contact-panel{padding-top:44px;padding-bottom:44px}
}

/* Cards do modelo SPE: sem numeração, mantendo altura e respiro visual. */
@media(min-width:901px){
  .spe-explainer .spe-steps article{
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:154px;
    padding-top:26px;
    padding-bottom:28px;
  }
  .spe-explainer .spe-steps h3{margin:0 0 .65rem}
}

/* Ritmo de transição entre capítulos: evita a soma dos respiros de duas seções. */
@media(min-width:901px){
  .intro{padding-top:40px!important;padding-bottom:24px!important}
  .story{padding-top:24px!important;padding-bottom:24px!important}
  .residences{padding-top:30px!important;padding-bottom:34px!important}
  .on-demand{padding-top:30px!important;padding-bottom:30px!important}
  .spe-explainer{padding-top:30px!important;padding-bottom:30px!important}
  .spe-showcase{padding-top:34px!important;padding-bottom:38px!important}
  .management-section{padding-top:34px!important;padding-bottom:34px!important}
  .principles{padding-top:40px!important;padding-bottom:40px!important}

  .story,.residences,.spe-explainer,.management-section{
    border-top:1px solid var(--line);
  }
  .story{border-bottom:0}
  .residences{background:#f7f8f4}
  .spe-explainer{background:#f2f1eb}
  .management-section{background:#fafbf8}
}

@media(max-width:900px){
  .intro,.story,.residences,.on-demand,.spe-explainer,.spe-showcase,.management-section{padding-top:42px;padding-bottom:42px}
  .story,.residences,.spe-explainer,.management-section{border-top:1px solid var(--line)}
  .story{border-bottom:0}
}

/* Transições de capítulo: cartões mais baixos e início completo da seção seguinte. */
@media(min-width:901px){
  .intro{padding-bottom:32px!important}
  .story{padding-top:40px!important}
  .residences,.on-demand,.spe-explainer,.spe-showcase,.management-section{padding-top:40px!important}

  .intro .focus-card{
    height:clamp(390px,42svh,430px);
    min-height:390px!important;
    padding:26px;
    gap:1rem;
  }
  .intro .focus-card>div{justify-content:flex-end}
  .intro .focus-card h3{margin:.35rem 0 .75rem}
  .intro .focus-card p:not(.eyebrow){margin:.35rem 0;font-size:.9rem;line-height:1.45}
  .intro .focus-card a{margin-top:.65rem}
}

@media(min-width:901px) and (max-height:1050px){
  .intro .focus-card{height:390px;min-height:390px!important}
}

@media(max-width:900px){
  .intro .focus-card{height:auto;min-height:310px!important}
}

/* Sistema final de transições: cada capítulo contém o próprio respiro. */
.intro,.story,.residences,.on-demand,.spe-explainer,.spe-showcase,.management-section,.principles{
  position:relative;
  isolation:isolate;
  border-top:0!important;
  border-bottom:0!important;
}
.intro{background:#f4f5f1}
.story{background:#fff}
.residences{background:#f4f5f1}
.spe-explainer{background:#efeee7}
.management-section{background:#f7f8f4}

@media(min-width:901px){
  .intro{padding-top:40px!important;padding-bottom:34px!important}
  .story{padding-top:38px!important;padding-bottom:38px!important}
  .residences{padding-top:40px!important;padding-bottom:40px!important}
  .on-demand{padding-top:40px!important;padding-bottom:40px!important}
  .spe-explainer{padding-top:40px!important;padding-bottom:40px!important}
  .spe-showcase{padding-top:40px!important;padding-bottom:40px!important}
  .management-section{padding-top:40px!important;padding-bottom:40px!important}
}

@media(max-width:900px){
  .intro,.story,.residences,.on-demand,.spe-explainer,.spe-showcase,.management-section{
    padding-top:38px!important;
    padding-bottom:38px!important;
  }
}

/* Ritmo definitivo: uma única faixa de respiro entre capítulos. */
@media(min-width:901px){
  .intro{padding-top:36px!important;padding-bottom:16px!important}
  .story{padding-top:24px!important;padding-bottom:16px!important}
  .residences{padding-top:24px!important;padding-bottom:16px!important}
  .on-demand{padding-top:32px!important;padding-bottom:22px!important}
  .spe-explainer{padding-top:28px!important;padding-bottom:18px!important}
  .spe-showcase{padding-top:32px!important;padding-bottom:22px!important}
  .management-section{padding-top:28px!important;padding-bottom:18px!important}
  .principles{padding-top:30px!important;padding-bottom:30px!important}
}

@media(max-width:900px){
  .intro,.story,.residences,.on-demand,.spe-explainer,.spe-showcase,.management-section{
    padding-top:30px!important;
    padding-bottom:22px!important;
  }
}

/* Transição editorial: um único sistema, sem sticky ou scroll-snap concorrentes. */
@media(min-width:901px){
  html{scroll-snap-type:none!important;scroll-padding-top:0!important}
  main>section.section[id]:not(.principles){min-height:100dvh!important;scroll-margin-top:0!important}

  /* A gestão tem conteúdo de altura própria. Forçar 100dvh deixava uma sobra
     clara antes da faixa verde de princípios. */
  .management-section{
    min-height:auto!important;
    padding-bottom:0!important;
  }

  /* Princípios + contato formam uma única composição visual no desktop.
     A seção de contato não deve impor outra tela inteira nem ocultar os dados finais. */
  .contact{
    min-height:0!important;
    height:clamp(450px,48vh,500px);
    grid-template-columns:.42fr .58fr;
    align-items:stretch;
  }
  .contact-image{
    min-height:0;
    overflow:hidden;
  }
  .contact-image img{
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    object-fit:cover;
    object-position:center 52%;
  }
  .contact-panel{
    padding:24px clamp(42px,4vw,64px)!important;
    align-self:center;
  }
  .contact h2{
    font-size:clamp(2.4rem,2.75vw,3rem);
    line-height:1.01;
  }
  .contact-panel>p:not(.eyebrow){margin:.85rem 0 0}
  .contact-actions{margin:.9rem 0!important}
  .contact-actions a{padding:.58rem 0!important}

  /* Encerramento em uma tela própria: no fim da rolagem, o contato anterior
     desaparece por completo e o rodapé ocupa sozinho o viewport. */
  footer{
    min-height:100dvh;
    padding:clamp(64px,9vh,96px) 0 22px!important;
    border-top:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .footer-grid{
    grid-template-columns:.9fr .8fr 1.05fr;
    gap:7%;
    align-items:center;
    align-content:center;
    flex:1;
    padding-bottom:34px!important;
  }
  .footer-grid img{
    width:150px!important;
    margin-bottom:.55rem!important;
  }
  .footer-grid>div{gap:.38rem}
  .footer-grid h3{margin-bottom:.65rem}
  .footer-grid p{margin:.25rem 0 0}
  .footer-bottom{
    width:var(--shell);
    padding-top:16px;
  }

  /* Equilíbrio vertical dos capítulos curtos. */
  .story,.on-demand{display:grid;align-content:center}

  /* A fotografia volta a ter presença sem distorção ou corte excessivo. */
  .on-demand-image img{height:420px!important;object-position:center 45%}

  /* Mais respiro nos cards, sem alterar o conteúdo ou a composição. */
  .intro .section-heading{margin-bottom:32px}
  .intro .dual-cards{gap:18px}
  .process-grid{
    gap:12px;
    margin-top:28px;
    border-top:0;
    border-left:0;
  }
  .process-grid article{border:1px solid rgba(255,255,255,.17)}
}

/* Revisão móvel final: adapta o ritmo sem alterar a composição desktop. */
@media(max-width:900px){
  html,body{max-width:100%;overflow-x:clip}
  :root{--shell:min(100% - 32px,720px)}

  .nav{padding:96px 24px 32px;overflow-y:auto;overscroll-behavior:contain}
  .nav a{min-height:44px;display:flex;align-items:center;justify-content:center;text-align:center}

  .hero{
    height:auto;
    min-height:min(760px,calc(100svh - var(--header-current)));
    padding:clamp(66px,9svh,92px) 0;
  }
  .hero-content{width:var(--shell)}
  .hero-copy{max-width:36rem}
  .button{min-height:48px}

  .intro .dual-cards{gap:12px}
  .intro .focus-card{min-height:320px!important}
  .focus-card h3{font-size:clamp(2rem,7vw,2.75rem)}

  .story-grid{gap:28px}
  .story-image img{
    height:auto!important;
    min-height:300px;
    aspect-ratio:4/3;
    object-fit:cover;
  }
  .story-image span{left:12px;right:12px;bottom:12px;width:max-content;max-width:calc(100% - 24px)}

  .project-grid{gap:10px}
  .project-card{height:clamp(270px,42vw,320px)}

  .on-demand-grid{gap:28px}
  .on-demand-image img{
    height:auto!important;
    min-height:300px;
    aspect-ratio:4/3;
    object-fit:cover;
    object-position:center 45%;
  }
  .on-demand-image figcaption{left:12px;right:12px;bottom:12px;width:max-content;max-width:calc(100% - 24px)}
  .process-grid{gap:10px;border:0;margin-top:24px}
  .process-grid article{border:1px solid rgba(255,255,255,.17)}

  .spe-card{grid-template-rows:minmax(260px,38vw) auto}

  .contact{display:block;min-height:0}
  .contact-image{overflow:hidden}
  .contact-image img{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:16/10;
    object-fit:cover;
    object-position:center 52%;
  }
  .contact-panel{padding:48px max(22px,calc((100% - 720px)/2))}
  .contact h2{font-size:clamp(2.35rem,7vw,3.15rem)}
  .contact-actions a{min-height:52px;align-items:center}

  footer{min-height:0;padding:52px 0 24px!important}
  .footer-grid{gap:34px;padding-bottom:38px!important}
  .footer-grid img{width:160px;margin-bottom:.5rem}
  .footer-grid a,.footer-grid span{overflow-wrap:anywhere}
  .footer-bottom{gap:.65rem}
}

@media(max-width:600px){
  :root{--shell:calc(100% - 30px)}
  .hero{padding:58px 0 62px}
  .hero h1{font-size:clamp(2.65rem,12.2vw,3.25rem);line-height:1.04}
  .hero-copy{line-height:1.55}

  .section h2,.intro .section-heading h2,.residences .section-heading h2{
    font-size:clamp(2.05rem,10vw,2.65rem);
    line-height:1.05;
  }
  .intro .focus-card{min-height:300px!important;padding:24px}
  .focus-card h3{font-size:clamp(2rem,9vw,2.45rem)}

  .story-image img{min-height:0;aspect-ratio:4/3}
  .project-card{height:clamp(270px,82vw,320px)}
  .on-demand-image img{min-height:0;aspect-ratio:4/3}
  .on-demand-image figcaption,.story-image span{font-size:.64rem;line-height:1.35}

  .spe-card{grid-template-rows:250px auto}
  .principle-line{gap:1rem}

  .contact-panel{padding:44px 22px 48px}
  .contact h2{font-size:clamp(2.15rem,10vw,2.75rem)}
  .contact-meta{margin-top:1rem}

  footer{padding-top:46px!important}
  .footer-grid{gap:30px}
  .footer-grid img{width:145px!important}
}

/* iPhone/Safari/WhatsApp: alguns navegadores móveis anunciam viewport de desktop.
   A composição móvel passa a considerar também tablets estreitos e dispositivos de toque. */
@media(max-width:1100px), (hover:none) and (pointer:coarse){
  :root{--header-current:96px;--shell:min(100% - 30px,720px)}
  html,body{max-width:100%;overflow-x:hidden}

  .site-header,.site-header.scrolled{position:relative!important}
  .nav-wrap{height:96px!important}
  .brand{height:86px!important;width:110px!important;flex-basis:110px!important}
  .brand img{width:110px!important}
  .menu-toggle{display:block!important;position:relative;z-index:4}
  .nav{
    position:fixed!important;
    inset:0!important;
    z-index:3;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    gap:.35rem!important;
    padding:96px 24px 32px!important;
    background:var(--green)!important;
    font-size:1.08rem!important;
    overflow-y:auto;
    transform:translateX(100%)!important;
  }
  .nav.open{transform:none!important}
  .nav a{min-height:44px;justify-content:center;text-align:center}

  .hero{
    height:auto!important;
    min-height:min(760px,calc(100svh - 96px))!important;
    max-height:none!important;
    padding:58px 0 62px!important;
  }
  .hero-content{width:var(--shell);padding-top:0!important}
  .hero h1{font-size:clamp(2.65rem,8vw,3.5rem)!important;line-height:1.04!important}
  .hero-copy{font-size:1.03rem!important;line-height:1.55}
  .actions{flex-direction:column;align-items:stretch}
  .scroll-cue{display:none}

  main>section.section[id]:not(.principles){min-height:0!important}
  .section,.intro,.story,.residences,.on-demand,.spe-explainer,.spe-showcase,.management-section{
    padding-top:44px!important;
    padding-bottom:44px!important;
  }
  .section-heading{margin-bottom:26px!important}
  .section-heading.split,.story-grid,.on-demand-grid,.spe-intro,.spe-heading,.management-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:24px!important;
    align-items:start!important;
  }
  .section-heading.split>p,.spe-heading>p{max-width:42rem;margin:0!important;padding:0!important}
  .section h2,.intro .section-heading h2,.residences .section-heading h2{
    font-size:clamp(2.15rem,6vw,3rem)!important;
    line-height:1.05!important;
  }

  .dual-cards{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
  .intro .focus-card{height:auto!important;min-height:330px!important;padding:26px!important}
  .focus-card h3{font-size:clamp(2rem,6vw,2.65rem)!important}

  .story{display:block!important}
  .story-grid{gap:28px!important}
  .story-image,.story-copy{width:100%;min-width:0}
  .story-image img{height:auto!important;min-height:0!important;aspect-ratio:4/3;object-fit:cover}

  .project-grid{display:flex!important;flex-direction:column!important;gap:12px!important}
  .project-card,.project-card.featured,.project-grid .text-card{
    width:100%!important;
    height:clamp(280px,70vw,360px)!important;
    min-height:280px!important;
    grid-column:auto!important;
  }

  .on-demand{display:block!important}
  .on-demand-grid{gap:30px!important}
  .on-demand-image img{height:auto!important;min-height:0!important;aspect-ratio:4/3;object-fit:cover}
  .process-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important;border:0!important}
  .process-grid article{border:1px solid rgba(255,255,255,.17)!important;padding:20px!important}

  .spe-intro{margin-bottom:30px!important}
  .spe-definition{padding-top:0!important}
  .spe-steps,.roles-panel{grid-template-columns:minmax(0,1fr)!important}
  .spe-steps article,.spe-steps article:first-child{padding:24px 20px!important;border-right:0!important;border-bottom:1px solid var(--line)!important}
  .roles-panel>div{padding:26px!important;border-right:0!important;border-bottom:1px solid rgba(255,255,255,.16)!important}

  .spe-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:16px!important}
  .spe-card,.spe-card.reverse{
    display:grid!important;
    grid-template-rows:280px auto!important;
    min-height:0!important;
    transform:none!important;
    background:#fff!important;
    color:var(--ink)!important;
  }
  .spe-card img{position:static!important;inset:auto!important;width:100%!important;height:280px!important;object-fit:cover!important}
  .spe-card>div{position:static!important;inset:auto!important;display:block!important;padding:26px!important;background:#fff!important}
  .spe-card h3,.spe-card a{color:var(--ink)!important}
  .spe-card p{color:var(--muted)!important}

  .management-section{min-height:0!important;padding-bottom:44px!important}
  .sticky-copy{position:static!important}
  .management-grid{gap:28px!important}

  .principles{padding:38px 0!important}
  .principle-line{flex-direction:column!important;align-items:flex-start!important;gap:1rem!important}
  .principle-line i{display:none!important}

  .contact{display:block!important;height:auto!important;min-height:0!important;grid-template-columns:1fr!important}
  .contact-image img{height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:16/10;object-fit:cover}
  .contact-panel{padding:46px max(22px,calc((100% - 720px)/2)) 50px!important}
  .contact h2{font-size:clamp(2.2rem,6vw,3rem)!important}
  .contact-actions a{min-height:52px;align-items:center}
  .contact-meta{flex-direction:column;gap:.3rem}

  footer{display:block!important;min-height:0!important;padding:48px 0 24px!important}
  .footer-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:30px!important;padding-bottom:36px!important}
  .footer-grid>div:first-child{grid-column:auto!important}
  .footer-grid img{width:145px!important;margin-bottom:.5rem!important}
  .footer-bottom{width:var(--shell)!important;flex-direction:column!important;gap:.6rem!important}
}

/* No desktop, o conjunto da vitrine SPE ocupa o centro vertical da tela,
   evitando concentração no topo e sobra excessiva abaixo. */
@media(min-width:1101px){
  main>section.section.spe-showcase[id]{
    display:grid!important;
    align-content:center!important;
    padding-top:64px!important;
    padding-bottom:64px!important;
  }
}

/* A explicação de SPE tem conteúdo compacto e não deve ocupar um viewport inteiro. */
@media(min-width:901px){
  main>section.section.spe-explainer[id],
  main>.section.spe-explainer:not(.engineering-section):not(.principles){
    min-height:0!important;
    height:auto!important;
    padding-top:52px!important;
    padding-bottom:48px!important;
  }
  .spe-explainer .spe-intro{margin-bottom:32px!important}
  .spe-explainer .spe-steps article,
  .spe-explainer .spe-steps article:first-child{padding:22px 24px 24px!important}
  .spe-explainer .roles-panel{margin-top:28px!important}
  .spe-explainer .roles-panel>div{padding:22px 24px!important}
  .spe-explainer .spe-disclaimer{margin-top:18px!important}
}

/* Ritmo editorial móvel: os capítulos mudam pelo fundo e pelo respiro,
   sem faixas artificiais, altura fixa ou interferência na rolagem. */
@media(max-width:1100px), (hover:none) and (pointer:coarse){
  main{background:transparent}

  main>.intro,
  main>.story,
  main>.residences,
  main>.spe-explainer,
  main>.management-section{
    border:0!important;
    box-shadow:inset 0 1px rgba(18,44,36,.12);
  }

  main>.on-demand,
  main>.spe-showcase,
  main>.principles{
    border:0!important;
    box-shadow:inset 0 1px rgba(255,255,255,.12);
  }

  main>.intro{padding-top:clamp(44px,9vw,64px)!important;padding-bottom:clamp(40px,8vw,58px)!important}
  main>.story{padding-top:clamp(48px,10vw,70px)!important;padding-bottom:clamp(48px,10vw,70px)!important}
  main>.residences{padding-top:clamp(48px,10vw,70px)!important;padding-bottom:clamp(48px,10vw,70px)!important}
  main>.on-demand{padding-top:clamp(50px,10vw,72px)!important;padding-bottom:clamp(50px,10vw,72px)!important}
  main>.spe-explainer{padding-top:clamp(48px,10vw,70px)!important;padding-bottom:clamp(48px,10vw,70px)!important}
  main>.spe-showcase{padding-top:clamp(50px,10vw,72px)!important;padding-bottom:clamp(50px,10vw,72px)!important}
  main>.management-section{padding-top:clamp(48px,10vw,70px)!important;padding-bottom:clamp(48px,10vw,70px)!important}
  main>.principles{padding-top:clamp(40px,8vw,56px)!important;padding-bottom:clamp(40px,8vw,56px)!important}

  .section-heading{margin-bottom:clamp(28px,6vw,40px)!important}

  /* Princípios e contato encerram a narrativa como uma única composição. */
  main>.contact{border:0!important;box-shadow:none!important}
  footer{border-top:1px solid rgba(255,255,255,.12)!important}
}

/* Paleta v87 — mais luminosa e aberta, preservando a identidade da marca. */
:root{
  --ink:#14231e;
  --green:#264a40;
  --green2:#42685a;
  --cream:#f3f3ed;
  --paper:#fafbf8;
  --gold:#87966f;
  --muted:#64706a;
  --line:#d9ded8;
}

/* Grandes superfícies ganham luminosidade; contato e rodapé permanecem profundos. */
.spe-showcase,
.on-demand{background:#264a40}
.engineering-section{background:#294d42}
.principles{background:#3a5c50}
.bridge-case{background:#1c352d}

/* As fotografias passam a participar mais da composição. */
.hero-shade{
  background:linear-gradient(90deg,rgba(12,32,26,.72) 0%,rgba(12,32,26,.32) 55%,rgba(12,32,26,.08)),linear-gradient(0deg,rgba(12,32,26,.22),transparent 45%);
}
.residential{
  background:linear-gradient(rgba(23,57,47,.58),rgba(23,57,47,.74)),url(images/residencia-1.jpg) center/cover;
}
.spe-focus{
  background:linear-gradient(rgba(23,57,47,.58),rgba(23,57,47,.76)),url(images/maldivas-fachada.jpg) center/cover;
}
.demand-focus{
  background:linear-gradient(rgba(23,57,47,.52),rgba(23,57,47,.74)),url(images/residencia-unifamiliar-alphaville-mg.jpg) center/cover;
}
.engineering{
  background:linear-gradient(rgba(25,55,46,.62),rgba(25,55,46,.8)),url(images/ibiza-fachada.jpg) center/cover;
}
.card-overlay{
  background:linear-gradient(transparent 38%,rgba(15,40,32,.72));
}
.institutional-video-card::after{
  background:linear-gradient(180deg,rgba(15,43,35,.06) 22%,rgba(15,43,35,.76) 100%);
}

@media(min-width:901px){
  .spe-card>div{
    background:linear-gradient(180deg,rgba(11,32,26,.02) 20%,rgba(15,43,35,.22) 56%,rgba(15,43,35,.82) 100%);
  }
}

@media(max-width:1100px), (hover:none) and (pointer:coarse){
  .nav{background:#264a40!important}
  main>.on-demand,
  main>.spe-showcase,
  main>.principles{
    box-shadow:inset 0 1px rgba(255,255,255,.18);
  }
}

/* Paleta v88 — segundo clareamento das superfícies extensas. */
:root{
  --green2:#638377;
}

.spe-showcase,
.on-demand{background:#3f695c}
.engineering-section{background:#426b5e}
.principles{background:#58786d}
.bridge-case{background:#29483e}

.hero-shade{
  background:linear-gradient(90deg,rgba(14,37,30,.62) 0%,rgba(14,37,30,.23) 56%,rgba(14,37,30,.04)),linear-gradient(0deg,rgba(14,37,30,.16),transparent 45%);
}
.residential{
  background:linear-gradient(rgba(31,68,57,.50),rgba(31,68,57,.70)),url(images/residencia-1.jpg) center/cover;
}
.spe-focus{
  background:linear-gradient(rgba(31,68,57,.43),rgba(31,68,57,.64)),url(images/maldivas-fachada.jpg) center/cover;
}
.demand-focus{
  background:linear-gradient(rgba(31,68,57,.46),rgba(31,68,57,.69)),url(images/alphaville-casa-tropical-final.webp) center/cover;
}
.engineering{
  background:linear-gradient(rgba(35,73,62,.47),rgba(35,73,62,.68)),url(images/ibiza-fachada.jpg) center/cover;
}
.card-overlay{
  background:linear-gradient(transparent 42%,rgba(18,47,38,.62));
}
.institutional-video-card::after{
  background:linear-gradient(180deg,rgba(18,47,38,.03) 24%,rgba(18,47,38,.65) 100%);
}

@media(min-width:901px){
  .spe-card>div{
    background:linear-gradient(180deg,rgba(13,37,30,.01) 22%,rgba(18,47,38,.15) 58%,rgba(18,47,38,.72) 100%);
  }
}

@media(max-width:1100px), (hover:none) and (pointer:coarse){
  .nav{background:#355d51!important}
}

/* Correção v89 — o clareamento não deve alterar componentes internos. */
.roles-panel{
  background:#17342b;
  color:#fff;
  font-family:"DM Sans",sans-serif;
}
.roles-title h3{
  font-family:Manrope,sans-serif;
  font-size:1.8rem;
  font-weight:600;
  line-height:1.2;
  letter-spacing:-.02em;
}
.roles-panel .role span{
  font-family:"DM Sans",sans-serif;
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.12em;
  color:#d4c49f;
}
.roles-panel .role p{
  font-family:"DM Sans",sans-serif;
  font-size:.9rem;
  font-weight:400;
  line-height:1.65;
  color:rgba(255,255,255,.72);
}

/* Galeria da construção sob demanda — composição ampla, sem legendas sobre as fotos. */
@media(min-width:901px){
  .on-demand-grid{grid-template-columns:minmax(300px,.68fr) minmax(0,1.32fr);gap:4%}
  .on-demand-copy h2{font-size:clamp(2.2rem,2.8vw,3.4rem);line-height:1.03}
  .on-demand-copy>p:not(.eyebrow){font-size:.98rem;line-height:1.55}
}
.on-demand-gallery{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:10px;min-width:0}
.on-demand-gallery-main{height:460px;overflow:hidden;background:#29483e}
.on-demand-gallery-main img{width:100%;height:100%;object-fit:cover;object-position:center;transition:opacity .18s ease}
.on-demand-gallery-main img.is-changing{opacity:.35}
.on-demand-gallery-thumbs{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:10px}
.on-demand-gallery-thumbs button{position:relative;min-width:0;padding:0;border:1px solid rgba(255,255,255,.18);background:none;overflow:hidden;cursor:pointer}
.on-demand-gallery-thumbs button::after{content:"";position:absolute;inset:0;border:2px solid transparent;transition:border-color .2s ease,background-color .2s ease}
.on-demand-gallery-thumbs button:hover::after{background:rgba(255,255,255,.08)}
.on-demand-gallery-thumbs button.is-active::after{border-color:#d3ddc0}
.on-demand-gallery-thumbs img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.on-demand-gallery-thumbs button:hover img{transform:scale(1.04)}

@media(max-width:900px){
  .on-demand-gallery{grid-template-columns:1fr;gap:10px}
  .on-demand-gallery-main{height:auto;aspect-ratio:16/10}
  .on-demand-gallery-thumbs{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:none;height:92px}
}
@media(max-width:600px){
  .on-demand-gallery-main{aspect-ratio:4/3}
  .on-demand-gallery-thumbs{height:68px;gap:7px}
}

/* Alinhamento editorial do bloco de construção sob demanda. */
.on-demand-copy .eyebrow,
.on-demand-copy h2{text-align:center}
.on-demand-copy>p:not(.eyebrow){text-align:justify;text-justify:inter-word}
.on-demand-copy .button{display:flex;width:max-content;margin-left:auto;margin-right:auto}

/* Padronização v90 — um verde de conteúdo e a mesma tipografia dos cards. */
.spe-showcase,
.on-demand,
.engineering-section,
.principles,
.bridge-case,
.roles-panel,
.text-card{
  background:#426b5e;
}

.roles-title h3{
  margin:.38rem 0 .2rem;
  font:600 1rem/1.25 Manrope,"DM Sans",sans-serif;
  letter-spacing:0;
}
.roles-panel .role span{
  margin-bottom:.75rem;
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.13em;
}
.roles-panel .role p{
  margin:0;
  font-size:.84rem;
  font-weight:400;
  line-height:1.45;
}

/* Correção v91 — o conteúdo dos quatro cards usa a mesma escala tipográfica. */
.roles-title h3{
  margin:0;
  font:400 .84rem/1.45 "DM Sans",sans-serif;
  letter-spacing:0;
}

/* Correção v92 — uniformiza cores dos cards e o verde da primeira área. */
.roles-title h3,
.roles-panel .role p{
  color:rgba(255,255,255,.72);
}

.site-header,
.site-header.scrolled{
  background:#426b5e;
}

@media(max-width:1100px), (hover:none) and (pointer:coarse){
  .nav{background:#426b5e!important}
}

/* Correção v93 — o bloco de contato usa o mesmo verde claro das demais áreas. */
.contact{
  background:#426b5e;
}

/* Ajuste v94 — diferencia visualmente a faixa anterior ao contato. */
.principles{
  background:#58786d;
}

/* Ajuste v95 — faixa clara inspirada nos tons neutros já usados no site. */
.principles{
  background:#f0f2ec;
  color:#17231f;
}
.principles .eyebrow.light{
  color:#74855e;
}
.principle-line i{
  background:#91a179;
}

/* Ajuste v96 — verdes mais luminosos com profundidade sutil e acabamento atual. */
:root{
  --brand-sage:#9eb784;
  --brand-sage-light:#d3ddc0;
}

.site-header,
.site-header.scrolled{
  background:linear-gradient(105deg,#557f70 0%,#477565 48%,#3b6658 100%);
}

.spe-showcase,
.on-demand,
.engineering-section,
.bridge-case,
.roles-panel,
.text-card,
.contact{
  background:linear-gradient(135deg,#527f70 0%,#437363 52%,#365f53 100%);
}

@media(max-width:1100px), (hover:none) and (pointer:coarse){
  .nav{
    background:linear-gradient(145deg,#527f70 0%,#3d6b5c 100%)!important;
  }
}

/* Ajuste v97 — princípios + contato fecham o viewport sem revelar o rodapé. */
@media(min-width:1101px) and (hover:hover) and (pointer:fine){
  .contact{
    height:calc(100dvh - 152px);
    min-height:560px!important;
  }
}

/* Síntese dos três modelos: apresentada após o conjunto de cards */
.intro .section-heading.split{display:block}
.intro-summary{
  max-width:780px;
  margin:28px auto 0;
  color:#5d6b65;
  font-size:1.08rem;
  line-height:1.55;
  text-align:center;
}

@media(max-width:1100px), (hover:none) and (pointer:coarse){
  .intro-summary{
    max-width:42rem;
    margin:24px 0 0;
    font-size:1rem;
    text-align:left;
  }
}
/* Ajuste final da primeira dobra: a foto inicial permanece ampla, mas não ultrapassa a altura útil da página. */
@media(min-width:1101px){
  .hero{
    height:calc(100svh - 154px);
    min-height:590px;
    max-height:700px;
  }
}

@media(min-width:1101px) and (max-height:820px){
  .hero{
    height:calc(100svh - 124px);
    min-height:560px;
    max-height:660px;
  }
}

/* Ajuste final do menu desktop: melhora a leitura sem alterar a composição do cabeçalho. */
@media(min-width:1101px){
  .nav{
    gap:clamp(.55rem,1vw,1.15rem);
  }
  .nav a{
    font-size:.9rem;
  }
}

@media(min-width:1101px) and (max-width:1200px){
  .nav{
    gap:.55rem;
  }
  .nav a{
    font-size:.875rem;
  }
}
/* Composição final dos três cards de atuação: conteúdo elevado e CTAs alinhados. */
@media(min-width:901px){
  .intro .focus-card>div{
    justify-content:flex-start;
    padding-top:clamp(48px,4vw,64px);
  }
  .intro .focus-card>div>a{margin-top:auto}
}
