/* =====================================================================
   TERRAE · Sistema base do site (terrae.pt)
   Identidade canónica: Arya (display) + Manrope (corpo) · paleta sagrada
   Sand · Sage · Sienna · Ink · border-radius 0 · sem gradientes/sombras
   ===================================================================== */
:root{
  --t-sand:#E4DDD3; --t-sage:#8A8E75; --t-sienna:#976E53; --t-ink:#1D1D1B;
  --t-sand-light:#ECE5DA; --t-sand-soft:#F2EDE5; --t-sage-dark:#6F7560; --t-sage-soft:#AEB29C;
  --t-sienna-dark:#795842; --t-ink-soft:#3F3D38; --t-ink-mute:#7A746A;
  --t-rule:#C8C0B2; --t-line:rgba(29,29,27,0.08);
  --f-display:'Arya','Cormorant Garamond',Georgia,serif;
  --f-body:'Manrope',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
  --fs-mega:clamp(2.6rem,7vw,6rem); --fs-display:clamp(2.1rem,5vw,4rem);
  --fs-h1:clamp(1.8rem,3.2vw,2.7rem); --fs-h2:clamp(1.5rem,2.6vw,2.1rem);
  --fs-h3:1.35rem; --fs-h4:1.1rem; --fs-body:1rem; --fs-small:.875rem;
  --fs-caption:.75rem; --fs-micro:.6875rem;
  --ls-mega:.3em; --ls-wide:.22em; --ls-kicker:.18em; --ls-small:.06em;
  --s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4rem;--s-9:6rem;--s-10:8rem;
  --container:1240px; --container-narrow:760px; --container-wide:1480px;
  --ease:cubic-bezier(.65,0,.35,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;color-scheme:light}
body{font-family:var(--f-body);font-weight:400;font-size:var(--fs-body);line-height:1.6;color:var(--t-ink);background:var(--t-sand);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:400;line-height:1.1}
/* Corpo de texto justificado em todo o site (preferência). Uma linha fica à
   esquerda naturalmente; só multi-linha estica. Centrados excecionados. */
p{text-align:justify;text-justify:inter-word}
.cta-final p,.gate p,.divs .dv p,.hero-stats .st p{text-align:center}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font-family:var(--f-body);cursor:pointer}
::selection{background:var(--t-sienna);color:var(--t-sand)}

.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--s-6)}
.wrap-wide{max-width:var(--container-wide);margin:0 auto;padding:0 var(--s-6)}
.wrap-narrow{max-width:var(--container-narrow);margin:0 auto;padding:0 var(--s-6)}
.kicker{font-size:var(--fs-caption);letter-spacing:var(--ls-kicker);text-transform:uppercase;font-weight:500;color:var(--t-sienna-dark)}
.kicker.on-dark{color:var(--t-sage-soft)}
section{padding:var(--s-9) 0;position:relative}
.sec-head{max-width:780px;margin-bottom:var(--s-7)}
.sec-head h2{font-size:var(--fs-display);margin-top:var(--s-3)}
.sec-head p.lede{font-size:1.06rem;color:var(--t-ink-soft);margin-top:var(--s-4);max-width:62ch}

[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none}}

.tlogo{display:inline-block;color:var(--t-ink)}
.tlogo svg{display:block;height:100%;width:auto}
.tlogo.neg{color:var(--t-sand)}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(29,29,27,.80);backdrop-filter:saturate(140%) blur(10px);transition:background .35s ease,border-color .35s ease,padding .35s ease;border-bottom:1px solid rgba(228,221,211,.08)}
.nav.scrolled{background:rgba(29,29,27,.88);border-bottom:1px solid rgba(228,221,211,.12)}
.nav-in{max-width:var(--container-wide);margin:0 auto;padding:var(--s-5) var(--s-6);display:flex;align-items:center;justify-content:space-between;gap:var(--s-5)}
.nav .tlogo{height:30px;color:var(--t-sand)}
.nav.scrolled .tlogo{color:var(--t-sand)}
.nav-links{display:flex;gap:var(--s-5);align-items:center}
.nav-links a{font-size:14px;color:var(--t-sand);letter-spacing:.02em;opacity:.88;transition:color .3s,opacity .3s;white-space:nowrap;font-weight:400}
.nav.scrolled .nav-links a{color:var(--t-sand)}
.nav-links a:hover,.nav-links a.active{opacity:1;color:var(--t-sienna)}
.nav-cta{display:flex;align-items:center;gap:var(--s-4)}

/* botoes */
.btn{display:inline-flex;align-items:center;gap:var(--s-2);font-size:var(--fs-small);letter-spacing:.04em;padding:.78rem 1.4rem;border:1px solid currentColor;background:transparent;color:var(--t-ink);transition:background .35s var(--ease),color .35s,transform .35s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn svg{width:15px;height:15px}
.btn-primary{background:var(--t-ink);color:var(--t-sand);border-color:var(--t-ink)}
.btn-primary:hover{background:var(--t-sienna);border-color:var(--t-sienna);color:var(--t-sand)}
.btn-sienna{background:var(--t-sienna);color:var(--t-sand);border-color:var(--t-sienna)}
.btn-sienna:hover{background:var(--t-sienna-dark);border-color:var(--t-sienna-dark)}
.btn-ghost-light{color:var(--t-sand);border-color:rgba(228,221,211,.5)}
.btn-ghost-light:hover{background:var(--t-sand);color:var(--t-ink)}
.nav .btn{padding:.6rem 1.2rem}
.nav-toggle{display:none;background:none;border:0;color:var(--t-sand);flex-direction:column;gap:5px;padding:6px}
.nav.scrolled .nav-toggle{color:var(--t-sand)}
.nav-toggle span{width:24px;height:1.5px;background:currentColor;display:block;transition:.3s}

/* HERO */
.hero{min-height:100vh;padding-top:96px;display:flex;align-items:center;position:relative;background:var(--t-ink);color:var(--t-sand);overflow:hidden}
.hero__watermark{position:absolute;right:-6%;bottom:-12%;width:min(60vw,720px);height:auto;color:rgba(228,221,211,.05);z-index:0}
.hero-in{position:relative;z-index:2;width:100%;max-width:var(--container-wide);margin:0 auto;padding:var(--s-9) var(--s-6)}
.hero h1{font-size:var(--fs-mega);max-width:17ch;margin:var(--s-4) 0 var(--s-5)}
.hero h1 em{font-style:normal;color:var(--t-sage-soft)}
.hero .sub{font-size:1.16rem;max-width:52ch;color:rgba(228,221,211,.88);font-weight:300}
.hero-cta{display:flex;gap:var(--s-4);flex-wrap:wrap;margin-top:var(--s-7)}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(228,221,211,.16);border:1px solid rgba(228,221,211,.16);margin-top:var(--s-9);max-width:880px}
.hero-stats .st{background:rgba(29,29,27,.5);padding:var(--s-5) var(--s-4);text-align:center}
.hero-stats .st .v{font-family:var(--f-display);font-size:clamp(1.5rem,2.6vw,2.2rem);color:var(--t-sand);line-height:1}
.hero-stats .st .l{font-size:var(--fs-micro);letter-spacing:var(--ls-kicker);text-transform:uppercase;color:var(--t-sage-soft);margin-top:var(--s-3)}

/* blocks */
.block--sand-light{background:var(--t-sand-light)}
.block--ink{background:var(--t-ink);color:var(--t-sand)}
.block--ink .sec-head p.lede{color:rgba(228,221,211,.8)}
.block--ink .kicker{color:var(--t-sage-soft)}

/* areas */
.areas{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--t-line);border:1px solid var(--t-line)}
.area{background:var(--t-sand);padding:var(--s-7) var(--s-6);display:flex;flex-direction:column;min-height:340px;transition:background .4s var(--ease)}
.area:hover{background:var(--t-sand-soft)}
.area .ix{font-family:var(--f-display);font-size:1.4rem;color:var(--t-sienna)}
.area h3{font-size:var(--fs-h3);margin:var(--s-4) 0 var(--s-3)}
.area p{color:var(--t-ink-soft);font-size:var(--fs-small);flex:1}
.area .go{margin-top:var(--s-5);font-size:var(--fs-small);letter-spacing:.04em;color:var(--t-sienna);display:inline-flex;align-items:center;gap:.5rem;transition:gap .3s}
.area:hover .go{gap:.9rem}
.area .go svg{width:15px;height:15px}

/* emp */
.emp{display:grid;grid-template-columns:1.05fr 1fr;gap:var(--s-8);align-items:center}
.emp__media{aspect-ratio:4/3;background:var(--t-ink);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
picture{display:contents}
.emp__media img{width:100%;height:100%;object-fit:cover}
.emp__media svg{width:46%;height:auto;color:rgba(228,221,211,.12)}
.emp__media .ph{position:absolute;left:var(--s-5);bottom:var(--s-5);font-size:var(--fs-caption);letter-spacing:var(--ls-kicker);text-transform:uppercase;color:var(--t-sage-soft)}
.emp h2{font-size:var(--fs-display);margin:var(--s-3) 0 var(--s-4)}
.emp p{color:var(--t-ink-soft);max-width:52ch}
.emp .specs{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--t-line);border:1px solid var(--t-line);margin:var(--s-6) 0}
.emp .specs .sp{background:var(--t-sand-light);padding:var(--s-4)}
.emp .specs .sp .k{font-size:var(--fs-micro);letter-spacing:var(--ls-kicker);text-transform:uppercase;color:var(--t-ink-mute)}
.emp .specs .sp .v{font-family:var(--f-display);font-size:1.3rem;margin-top:2px;color:var(--t-ink)}
.block--ink .emp .specs .sp,.block--sage .emp .specs .sp,.block--terra .emp .specs .sp{background:var(--t-sand-light)}
.block--ink .emp .specs .sp .v,.block--sage .emp .specs .sp .v,.block--terra .emp .specs .sp .v{color:var(--t-ink)}
.block--ink .emp .specs .sp .k,.block--sage .emp .specs .sp .k,.block--terra .emp .specs .sp .k{color:var(--t-ink-mute)}
.block--ink .emp .specs,.block--sage .emp .specs,.block--terra .emp .specs{background:rgba(228,221,211,.15);border-color:rgba(228,221,211,.15)}

/* features */
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--t-line);border:1px solid var(--t-line);margin-top:var(--s-6)}
.feature{background:var(--t-sand);padding:var(--s-6)}
.block--ink .feature{background:rgba(228,221,211,.04)}
.feature h4{font-size:var(--fs-h4);margin-bottom:var(--s-2)}
.feature p{color:var(--t-ink-mute);font-size:var(--fs-small)}
.block--ink .feature p{color:rgba(228,221,211,.66)}
.feature .ix{font-family:var(--f-display);font-size:1.2rem;color:var(--t-sienna);display:block;margin-bottom:var(--s-2)}

/* divs */
.divs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(228,221,211,.14);border:1px solid rgba(228,221,211,.14);margin-top:var(--s-6)}
.divs .dv{background:rgba(29,29,27,.4);padding:var(--s-6) var(--s-5)}
.divs .dv .k{font-size:var(--fs-micro);letter-spacing:var(--ls-kicker);text-transform:uppercase;color:var(--t-sage-soft)}
.divs .dv h4{font-family:var(--f-display);font-size:1.18rem;color:var(--t-sand);margin:var(--s-3) 0 var(--s-2)}
.divs .dv p{font-size:var(--fs-small);color:rgba(228,221,211,.66)}
.divs .dv{transition:background .35s var(--ease)}
.divs a.dv{text-align:center}
.divs a.dv:hover{background:rgba(228,221,211,.07)}

/* band */
.band{background:var(--t-sienna);color:var(--t-sand)}
.band .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s-6);flex-wrap:wrap}
.band h2{font-size:var(--fs-h2);max-width:24ch}
.band p{color:rgba(244,239,231,.85);margin-top:var(--s-2);max-width:46ch}
.cta-final{text-align:center}
.cta-final h2{font-size:var(--fs-display);margin:var(--s-3) 0 var(--s-4)}
.cta-final p{color:var(--t-ink-soft);max-width:50ch;margin:0 auto var(--s-6)}
.cta-row{display:flex;gap:var(--s-4);justify-content:center;flex-wrap:wrap}

/* footer */
.foot{background:var(--t-ink);color:rgba(228,221,211,.7);padding:var(--s-8) 0 var(--s-6)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--s-7)}
.foot .tlogo{height:34px;margin-bottom:var(--s-4)}
.foot h5{font-size:var(--fs-micro);letter-spacing:var(--ls-kicker);text-transform:uppercase;color:var(--t-sage-soft);margin-bottom:var(--s-4)}
.foot a{color:rgba(228,221,211,.7);font-size:var(--fs-small);display:block;margin-bottom:var(--s-2);transition:color .3s}
.foot a:hover{color:var(--t-sand)}
.foot .fnote{font-size:var(--fs-small);color:rgba(228,221,211,.6);max-width:42ch;line-height:1.7}
.foot-base{border-top:1px solid rgba(228,221,211,.12);margin-top:var(--s-7);padding-top:var(--s-5);display:flex;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;font-size:var(--fs-caption);color:rgba(228,221,211,.5)}

.fab{position:fixed;right:var(--s-5);bottom:calc(var(--s-5) + 64px);z-index:90;width:54px;height:54px;background:var(--t-sienna);color:var(--t-sand);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px rgba(29,29,27,.28);transition:transform .3s,background .3s}
.fab:hover{transform:translateY(-3px);background:var(--t-sienna-dark)}
.fab svg{width:26px;height:26px}

/* responsive */
@media(max-width:1080px){
  .nav-links{display:none}
  .nav-links.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;background:var(--t-ink);padding:var(--s-5) var(--s-6);gap:var(--s-4);border-top:1px solid rgba(228,221,211,.12)}
  .nav-links.open a{color:var(--t-sand)}
  .nav-toggle{display:flex}
}
@media(max-width:900px){
  .areas{grid-template-columns:1fr}
  .features{grid-template-columns:1fr}
  .divs{grid-template-columns:repeat(2,1fr)}
  .emp{grid-template-columns:1fr;gap:var(--s-6)}
  .hero-stats{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr;gap:var(--s-6)}
}
@media(max-width:480px){
  .hero-stats{grid-template-columns:1fr}
  .emp .specs{grid-template-columns:1fr}
}

/* simulador */
.sim{background:var(--t-ink);color:var(--t-sand);padding:var(--s-7);position:relative;overflow:hidden;max-width:780px}
.sim .kicker{color:var(--t-sage-soft)}
.sim__val{font-family:var(--f-display);font-size:clamp(2rem,4vw,2.8rem);margin:var(--s-2) 0 var(--s-4);color:var(--t-sand)}
.sim input[type=range]{width:100%;accent-color:var(--t-sienna);margin:var(--s-2) 0}
.sim__scale{display:flex;justify-content:space-between;font-size:var(--fs-caption);color:rgba(228,221,211,.5)}
.sim__out{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(228,221,211,.14);border:1px solid rgba(228,221,211,.14);margin-top:var(--s-5)}
.sim__out>div{background:rgba(228,221,211,.04);padding:var(--s-4)}
.sim__out .k{font-size:var(--fs-micro);letter-spacing:var(--ls-kicker);text-transform:uppercase;color:var(--t-sage-soft);display:block;width:100%}
.sim__out .v{font-family:var(--f-display);font-size:1.4rem;color:var(--t-sand);display:block;width:100%;margin-top:.5rem;line-height:1.15}
.sim__out>div{padding:var(--s-5) var(--s-4)}
.sim__note{font-size:var(--fs-caption);color:rgba(228,221,211,.5);margin-top:var(--s-4);line-height:1.6}

/* intro */
.intro{position:fixed;inset:0;z-index:1000;background:var(--t-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-4);transition:opacity .9s var(--ease),visibility .9s}
.intro.is-gone{opacity:0;visibility:hidden;pointer-events:none}
.intro__logo{width:min(460px,80vw);height:auto;color:var(--t-sand);opacity:0;clip-path:inset(0 100% 0 0);animation:introMark 1.15s var(--ease) .25s forwards}
@keyframes introMark{to{opacity:1;clip-path:inset(0 0 0 0)}}
.intro__tag{display:flex;gap:var(--s-5);flex-wrap:wrap;justify-content:center;margin-top:var(--s-2)}
.intro__tag span{font-size:var(--fs-caption);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--t-sage-soft);opacity:0;transform:translateY(10px)}
.intro__tag span:nth-child(1){animation:introUp .6s var(--ease) 1.55s forwards}
.intro__tag span:nth-child(2){animation:introUp .6s var(--ease) 1.8s forwards}
.intro__tag span:nth-child(3){animation:introUp .6s var(--ease) 2.05s forwards}
@keyframes introUp{to{opacity:1;transform:none}}
.intro__skip{position:absolute;right:var(--s-6);bottom:var(--s-6);background:none;border:0;color:rgba(228,221,211,.5);font-size:var(--fs-caption);letter-spacing:var(--ls-small);text-transform:uppercase;transition:color .3s}
.intro__skip:hover{color:var(--t-sand)}
@media(prefers-reduced-motion:reduce){.intro__logo,.intro__tag span{animation:none;opacity:1;clip-path:none;transform:none}}

/* gate */
.gate{min-height:100vh;padding-top:96px;display:flex;align-items:center;justify-content:center;background:var(--t-ink);color:var(--t-sand);text-align:center}
.gate__inner{max-width:480px;padding:var(--s-6)}
.gate__lockup{width:210px;height:auto;color:var(--t-sand);margin:0 auto var(--s-6)}
.gate h1{font-size:var(--fs-h1);margin-bottom:var(--s-3)}
.gate p{color:rgba(228,221,211,.78);font-weight:300;margin-bottom:var(--s-6)}
.gate form{display:flex;gap:var(--s-3);flex-wrap:wrap;justify-content:center}
.gate input{flex:1;min-width:210px;font-family:var(--f-body);font-size:var(--fs-body);padding:.85rem 1rem;background:rgba(228,221,211,.06);border:1px solid rgba(228,221,211,.25);color:var(--t-sand);border-radius:0}
.gate input:focus{outline:none;border-color:var(--t-sienna)}
.gate input::placeholder{color:rgba(228,221,211,.4)}
.gate__err{color:var(--t-sienna);font-size:var(--fs-small);margin-top:var(--s-4);min-height:1.2em;opacity:0;transition:opacity .3s}
.gate__err.is-on{opacity:1}
.gate__note{margin-top:var(--s-7);font-size:var(--fs-caption);color:rgba(228,221,211,.45);line-height:1.6}
.gated{display:none}
.gated.is-unlocked{display:block}

/* fotos em heros */
.hero--photo{background-size:cover;background-position:center;background-color:var(--t-ink)}
.hero--photo::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(29,29,27,.62) 0%,rgba(29,29,27,.82) 100%);z-index:0}
.sublogo{display:block;width:min(300px,72vw);height:auto;margin-bottom:var(--s-5);opacity:0;clip-path:inset(0 100% 0 0);animation:sublogoIn 1.15s var(--ease) .25s both}
@keyframes sublogoIn{to{opacity:1;clip-path:inset(0 0 0 0)}}
@media(prefers-reduced-motion:reduce){.sublogo{animation:none;opacity:1;clip-path:none}}
.dv .dv-logo{display:block;width:min(180px,90%);height:auto;margin:0 auto var(--s-4);opacity:.95}

/* galeria */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--t-line);border:1px solid var(--t-line)}
.gallery figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--t-sand-light);transition:opacity .55s var(--ease)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.gallery figure:hover img{transform:scale(1.05)}
/* profundidade: foco editorial — ao focar uma foto, as outras esmaecem */
.gallery:hover figure{opacity:.48}
.gallery:hover figure:hover{opacity:1}
@media(hover:none){.gallery:hover figure{opacity:1}}
@media(prefers-reduced-motion:reduce){.gallery figure,.gallery img{transition:none}.gallery:hover figure{opacity:1}}
@media(max-width:720px){.gallery{grid-template-columns:1fr 1fr}}

/* galeria editorial — larguras variadas (composição 6×4, não grelha previsível) */
.gallery--varied{grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(116px,13.5vw,210px);gap:var(--s-2)}
.gallery--varied figure{aspect-ratio:auto}
.gallery--varied figure:nth-child(1){grid-column:span 4;grid-row:span 2}
.gallery--varied figure:nth-child(2){grid-column:span 2}
.gallery--varied figure:nth-child(3){grid-column:span 2}
.gallery--varied figure:nth-child(4){grid-column:span 2;grid-row:span 2}
.gallery--varied figure:nth-child(5){grid-column:span 4}
.gallery--varied figure:nth-child(6){grid-column:span 4}
@media(max-width:720px){
  .gallery--varied{grid-template-columns:1fr 1fr;grid-auto-rows:auto;gap:6px}
  .gallery--varied figure{grid-column:span 1;grid-row:auto;aspect-ratio:4/3}
  .gallery--varied figure:nth-child(1),.gallery--varied figure:nth-child(6){grid-column:span 2;aspect-ratio:16/10}
}

/* formularios */
.form{max-width:660px;display:grid;gap:var(--s-4);margin-top:var(--s-6)}
.form .fld{display:grid;gap:var(--s-2)}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}
.form label{font-size:var(--fs-caption);letter-spacing:var(--ls-small);text-transform:uppercase;color:var(--t-ink-mute)}
.form input,.form select,.form textarea{font-family:var(--f-body);font-size:var(--fs-body);color:var(--t-ink);background:var(--t-sand-soft);border:1px solid var(--t-rule);border-radius:0;padding:.8rem 1rem;width:100%}
.form textarea{min-height:130px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--t-sienna)}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .actions{display:flex;gap:var(--s-4);align-items:center;flex-wrap:wrap;margin-top:var(--s-2)}
.form .note{font-size:var(--fs-caption);color:var(--t-ink-mute)}
@media(max-width:560px){.form .two{grid-template-columns:1fr}}

/* bancos chips */
.banks{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-5)}
.banks span{font-size:var(--fs-small);color:var(--t-ink-soft);border:1px solid var(--t-rule);padding:.5rem .9rem;background:var(--t-sand-light)}
.block--ink .banks span{color:rgba(228,221,211,.82);border-color:rgba(228,221,211,.2);background:rgba(228,221,211,.04)}

/* auditoria mobile */
@supports(min-height:100svh){.hero{min-height:100svh}}
@media(max-width:560px){
  .divs{grid-template-columns:1fr}
  .features,.areas{grid-template-columns:1fr!important}
  .hero-stats{grid-template-columns:1fr!important}
  .emp .specs{grid-template-columns:1fr}
  .form .two{grid-template-columns:1fr}
  .btn{min-height:48px;padding:.9rem 1.4rem}
  .form input,.form select,.form textarea{min-height:48px}
  .nav-toggle{padding:11px}
  .hero h1{font-size:clamp(2.2rem,9vw,3.6rem)}
  .hero .sub{font-size:1rem}
  .foot a{padding:.35rem 0;display:inline-block}
  .foot-grid{gap:var(--s-7)}
  section{padding:var(--s-8) 0}
  .cta-row,.hero-cta{flex-direction:column;align-items:stretch}
  .cta-row .btn,.hero-cta .btn{justify-content:center;text-align:center}
  .band .wrap{flex-direction:column;align-items:flex-start;gap:var(--s-5)}
  .gallery{grid-template-columns:1fr 1fr}
  .sublogo{width:min(260px,72vw)}
}
@media(max-width:900px) and (min-width:561px){.divs{grid-template-columns:repeat(2,1fr)}}
input,select,textarea{font-size:16px}

/* sub-marca colors (R2) */
body.page-imob{--page-accent:var(--t-sienna-dark);--page-band:var(--t-sienna)}
body.page-cons{--page-accent:var(--t-sage-dark);--page-band:var(--t-sage-dark)}
body.page-inv{--page-accent:var(--t-sienna-dark);--page-band:var(--t-ink)}
body.page-fin{--page-accent:var(--t-sienna-dark);--page-band:var(--t-sienna)}
.kicker,.kicker--sienna{color:var(--page-accent,var(--t-sienna-dark))}
.kicker.on-dark{color:var(--t-sage-soft)}
.band{background:var(--page-band,var(--t-sienna))}
.band--sage{background:var(--t-sage-dark)!important}
.band--terra{background:var(--t-sienna)!important}

.block--sage{background:var(--t-sage);color:var(--t-sand)}
.block--sage .sec-head p.lede{color:rgba(228,221,211,.85)}
.block--sage .kicker{color:var(--t-sand)}
.block--sage .feature{background:rgba(228,221,211,.05)}
.block--sage .feature h4{color:var(--t-sand)}
.block--sage .feature p{color:rgba(228,221,211,.7)}
.block--sage .feature .ix{color:var(--t-sand)}

.block--terra{background:var(--t-sienna);color:var(--t-sand)}
.block--terra .sec-head p.lede{color:rgba(228,221,211,.88)}
.block--terra .kicker{color:var(--t-sand)}
.block--terra .feature{background:rgba(228,221,211,.05)}
.block--terra .feature h4{color:var(--t-sand)}
.block--terra .feature p{color:rgba(228,221,211,.72)}
.block--terra .feature .ix{color:var(--t-sand)}

.block--sand-dom{background:var(--t-sand);color:var(--t-ink)}
.block--sand-dom .sec-head p.lede{color:var(--t-ink-soft)}
.block--sand-dom .kicker{color:var(--t-sienna)}
.block--sand-dom .feature{background:rgba(29,29,27,.04)}
.block--sand-dom .feature h4{color:var(--t-ink)}
.block--sand-dom .feature p{color:var(--t-ink-soft)}
.block--sand-dom .feature .ix{color:var(--t-sienna)}

/* compare table */
.compare{width:100%;border-collapse:collapse;margin-top:var(--s-6);font-size:.95rem}
.compare th,.compare td{padding:var(--s-3) var(--s-4);text-align:left;vertical-align:top;border-bottom:1px solid rgba(29,29,27,.1)}
.compare thead th{font-family:var(--f-display);font-weight:400;font-size:1.05rem;letter-spacing:.01em;border-bottom:1px solid rgba(29,29,27,.25)}
.compare th:first-child,.compare td:first-child{font-weight:500;width:30%;color:var(--t-ink-soft)}
.compare td:nth-child(3){font-weight:500}
.block--ink .compare th,.block--ink .compare td{border-bottom-color:rgba(228,221,211,.12);color:rgba(228,221,211,.85)}
.block--ink .compare thead th{border-bottom-color:rgba(228,221,211,.25);color:var(--t-sand)}
.block--ink .compare th:first-child,.block--ink .compare td:first-child{color:rgba(228,221,211,.65)}
.block--sand-dom .compare th,.block--sand-dom .compare td{border-bottom-color:rgba(29,29,27,.12)}
.compare-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:720px){.compare th:first-child,.compare td:first-child{width:auto}.compare{font-size:.88rem}.compare th,.compare td{padding:var(--s-2) var(--s-3)}}

/* sim multi (SF) */
.sim--multi .sim__controls{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-5);margin-bottom:var(--s-6)}
.sim--multi .sim__field{padding:var(--s-4);background:rgba(29,29,27,.03);border-radius:4px}
.sim--multi .sim__field .kicker{display:block;margin-bottom:var(--s-2)}
.sim--multi .sim__field .sim__val{font-size:1.4rem;margin:var(--s-2) 0 var(--s-3);line-height:1.1}
.sim--multi .sim__field input[type=range]{width:100%}
.sim--multi .sim__field .sim__scale{display:flex;justify-content:space-between;font-size:var(--fs-small);color:var(--t-ink-mute);margin-top:var(--s-2)}
@media(max-width:720px){.sim--multi .sim__controls{grid-template-columns:1fr}}

/* brands grid (Quem Somos) */
.brands-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-4);margin-top:var(--s-6)}
.brand-card{display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:1/1;padding:var(--s-5);border-radius:4px;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease;overflow:hidden}
.brand-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(29,29,27,.18)}
.brand-card__logo{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--s-4) var(--s-3)}
.brand-card__logo img{max-width:100%;max-height:80%;height:auto;display:block}
.brand-card__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding-top:var(--s-3);border-top:1px solid currentColor}
.brand-card__meta p{margin:0;font-size:var(--fs-small);line-height:1.4;flex:1}
.brand-card__ix{font-family:var(--f-display);font-size:1.4rem;opacity:.6}
.brand-card--sage{background:var(--t-sage);color:var(--t-sand)}
.brand-card--sand{background:var(--t-sand);color:var(--t-ink)}
.brand-card--ink{background:var(--t-ink);color:var(--t-sand);border:1px solid rgba(228,221,211,.18)}
.brand-card--terra{background:var(--t-sienna);color:var(--t-sand)}
.brand-card__logo--dark img{filter:brightness(0)}
.brand-card--sand .brand-card__meta{border-top-color:rgba(29,29,27,.2)}
.brand-card--sand .brand-card__ix{opacity:.5}
@media(max-width:980px){.brands-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.brand-card{aspect-ratio:5/3}.brand-card__logo{padding:var(--s-3) var(--s-2)}}

/* pack-list */
.pack-list{list-style:none;padding:0;margin:var(--s-5) 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-3) var(--s-5)}
.pack-list li{padding-left:var(--s-4);position:relative;line-height:1.5}
.pack-list li::before{content:"·";position:absolute;left:0;color:var(--t-sienna);font-weight:700;font-size:1.4rem;line-height:1}
.block--ink .pack-list li::before{color:var(--t-sage-soft)}
@media(max-width:720px){.pack-list{grid-template-columns:1fr}}


@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto}}

/* Sub-logo grande no hero das páginas internas */
.hero__sublogo{display:block;height:96px;width:auto;max-width:380px;margin:0 0 var(--s-5);opacity:.96;filter:drop-shadow(0 2px 10px rgba(0,0,0,.25))}
@media(max-width:760px){.hero__sublogo{height:64px;max-width:260px;margin-bottom:var(--s-4)}}

/* ============================================================
   DINÂMICA: animações de entrada + micro-interações
   ============================================================ */

/* Stagger reveal nos brand-cards do index */
.brands-grid .brand-card{opacity:0;transform:translateY(28px) scale(.98);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}
.brands-grid.is-revealed .brand-card{opacity:1;transform:translateY(0) scale(1)}
.brands-grid.is-revealed .brand-card:nth-child(1){transition-delay:0ms}
.brands-grid.is-revealed .brand-card:nth-child(2){transition-delay:140ms}
.brands-grid.is-revealed .brand-card:nth-child(3){transition-delay:280ms}
.brands-grid.is-revealed .brand-card:nth-child(4){transition-delay:420ms}

/* Logo dentro do card cresce + desliza ligeiramente em hover */
.brand-card__logo img{transition:transform .55s cubic-bezier(.4,0,.2,1),filter .55s ease}
.brand-card:hover .brand-card__logo img{transform:scale(1.06) translateY(-2px)}
.brand-card__meta p,.brand-card__ix{transition:opacity .35s ease,transform .35s ease}
.brand-card:hover .brand-card__meta p{transform:translateX(4px)}

/* Hero — kicker e elementos com fade-in suave */
.hero .kicker,.hero h1,.hero .sub,.hero-cta,.hero-stats,.hero__sublogo{opacity:0;transform:translateY(20px);animation:heroFadeIn .9s cubic-bezier(.4,0,.2,1) forwards}
.hero .kicker{animation-delay:.1s}
.hero__sublogo{animation-delay:.15s}
.hero h1{animation-delay:.25s}
.hero .sub{animation-delay:.45s}
.hero-cta{animation-delay:.65s}
.hero-stats{animation-delay:.85s}
@keyframes heroFadeIn{to{opacity:1;transform:translateY(0)}}

/* Mark Terrae nas heros: subtle draw effect */
@keyframes markDrawIn{
  0%{opacity:0;transform:scale(.92) translateY(8px)}
  100%{opacity:1;transform:scale(1) translateY(0)}
}
.hero svg use[href="#terrae-mark"],.hero-split .mark-c svg{animation:markDrawIn 1s cubic-bezier(.4,0,.2,1) .2s both}

/* Reveal genérico para elementos data-reveal — staggered */
[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1)}
[data-reveal].is-revealed{opacity:1;transform:translateY(0)}

/* Stagger automático em filhos quando .features ou .divs revelam */
.features.is-revealed .feature:nth-child(1),.areas.is-revealed .area:nth-child(1){transition-delay:0ms}
.features.is-revealed .feature:nth-child(2),.areas.is-revealed .area:nth-child(2){transition-delay:120ms}
.features.is-revealed .feature:nth-child(3),.areas.is-revealed .area:nth-child(3){transition-delay:240ms}
.features.is-revealed .feature:nth-child(4),.areas.is-revealed .area:nth-child(4){transition-delay:360ms}

/* Reduce motion respect */
@media (prefers-reduced-motion: reduce){
  .brands-grid .brand-card,.hero .kicker,.hero h1,.hero .sub,.hero-cta,.hero-stats,.hero__sublogo,[data-reveal]{opacity:1;transform:none;animation:none;transition:none}
}


/* === Destaque Loja Linda-a-Velha · homepage === */
.loja-feature{padding:var(--s-9) 0;background:var(--t-ink);color:var(--t-sand)}
.loja-feature .lf-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:var(--s-7);align-items:center}
.loja-feature .lf-media{position:relative;overflow:hidden}
.loja-feature .lf-media img{display:block;width:100%;height:520px;object-fit:cover}
.loja-feature .lf-stamp{position:absolute;top:var(--s-4);left:var(--s-4);display:inline-flex;align-items:center;gap:.5rem;background:rgba(151,110,83,.95);color:#fff;font-family:'Manrope',sans-serif;font-size:11px;letter-spacing:0.22em;text-transform:uppercase;font-weight:500;padding:.5rem .9rem}
.loja-feature .lf-stamp .dot{width:7px;height:7px;background:#fff;border-radius:50%;animation:pulse 1.8s infinite}
.loja-feature .lf-text .kicker{color:var(--t-sage-soft);margin-bottom:var(--s-3);display:inline-block}
.loja-feature .lf-text h2{color:var(--t-sand);font-size:clamp(2.25rem,4vw,3.5rem);line-height:1.05;margin:0 0 var(--s-4);max-width:14ch}
.loja-feature .lf-text h2 em{font-style:normal;color:var(--t-sage-soft)}
.loja-feature .lf-text p{color:rgba(228,221,211,.84);font-weight:300;font-size:1.0625rem;line-height:1.6;max-width:46ch;margin:0 0 var(--s-6)}
.loja-feature .lf-countdown{display:flex;gap:var(--s-5);margin:0 0 var(--s-6);padding:var(--s-5) 0;border-top:1px solid rgba(228,221,211,.18);border-bottom:1px solid rgba(228,221,211,.18)}
.loja-feature .lf-countdown div{display:flex;flex-direction:column;gap:.35rem}
.loja-feature .lf-countdown b{font-family:var(--f-display);font-weight:400;font-size:2rem;color:var(--t-sand);line-height:1}
.loja-feature .lf-countdown small{font-size:10.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--t-sage-soft);padding-left:0.18em}
@media(max-width:840px){
  .loja-feature .lf-grid{grid-template-columns:1fr;gap:var(--s-5)}
  .loja-feature .lf-media img{height:360px}
  .loja-feature .lf-countdown{gap:var(--s-4)}
  .loja-feature .lf-countdown b{font-size:1.5rem}
}


/* === Destaque Equipa · homepage === */
.team-feature{padding:var(--s-9) 0;background:var(--t-sand-light)}
.team-feature .tf-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-7);align-items:center}
.team-feature .tf-text .kicker{margin-bottom:var(--s-3);display:inline-block}
.team-feature .tf-text h2{font-size:clamp(2rem,3.5vw,3rem);line-height:1.08;margin:0 0 var(--s-4);max-width:16ch}
.team-feature .tf-text h2 em{font-style:normal;color:var(--t-sienna)}
.team-feature .tf-text p{font-size:1.0625rem;line-height:1.6;color:var(--t-ink-soft);max-width:46ch;margin:0 0 var(--s-6)}
.team-feature .tf-stats{display:flex;gap:var(--s-5);margin:0 0 var(--s-6);padding:var(--s-5) 0;border-top:1px solid var(--t-rule);border-bottom:1px solid var(--t-rule);flex-wrap:wrap}
.team-feature .tf-stats div{display:flex;flex-direction:column;gap:.35rem}
.team-feature .tf-stats b{font-family:var(--f-display);font-weight:400;font-size:1.75rem;color:var(--t-ink);line-height:1}
.team-feature .tf-stats small{font-size:10.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--t-sage-dark);padding-left:0.18em}
.team-feature .tf-mosaic{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-3);max-width:480px;margin-left:auto}
.team-feature .tf-av{aspect-ratio:1/1;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-size:1.75rem;color:var(--t-sand);transition:transform .35s cubic-bezier(.4,0,.2,1)}
.team-feature .tf-av:hover{transform:scale(1.06)}
.team-feature .tf-av.is-sienna{background:var(--t-sienna)}
.team-feature .tf-av.is-ink{background:var(--t-ink)}
.team-feature .tf-av.is-sage{background:var(--t-sage)}
.team-feature .tf-photo{margin:0;position:relative;overflow:hidden;box-shadow:0 24px 56px -22px rgba(29,29,27,.32)}
.team-feature .tf-photo img{width:100%;height:auto;display:block;aspect-ratio:3/2;object-fit:cover;object-position:center}
.team-feature .tf-photo figcaption{position:absolute;left:16px;bottom:16px;font-family:'Manrope',sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--t-sand);background:rgba(29,29,27,.62);padding:6px 10px;backdrop-filter:blur(6px)}
@media(max-width:840px){
  .team-feature .tf-grid{grid-template-columns:1fr;gap:var(--s-5)}
  .team-feature .tf-mosaic{margin:0 auto;max-width:360px}
  .team-feature .tf-photo{max-width:420px;margin:0 auto}
  .team-feature .tf-stats{gap:var(--s-4)}
}


/* === Fix global · lede em secções dark deve ter cor cream === */
.block--ink .sec-head .lede,
.visita .sec-head .lede,
.video-block .sec-head .lede,
.imo-day .sec-head .lede,
.imo-trust .sec-head .lede,
.imo-final .sec-head .lede,
.team-manifesto .sec-head .lede,
.loja-materials .sec-head .lede,
.cta-final .sec-head .lede{
  color:rgba(228,221,211,.92);
  font-weight:400;
}
.block--ink .sec-head h2,
.visita .sec-head h2,
.video-block .sec-head h2,
.imo-day .sec-head h2,
.imo-trust .sec-head h2,
.team-manifesto .sec-head h2,
.loja-materials .sec-head h2{color:var(--t-sand)}


/* Language switcher (EN/PT) — pílula sienna, sempre legível */
.lang-switch{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:48px;height:38px;padding:0 14px;font-family:var(--f-body);font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--t-sand);background:var(--t-sienna);border:0;transition:background .25s var(--easing),transform .25s var(--easing);margin-right:var(--s-3);text-decoration:none;line-height:1}
.lang-switch::before{content:"";display:inline-block;width:13px;height:13px;background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E4DDD3' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a14 14 0 0 1 0 20M12 2a14 14 0 0 0 0 20'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center;flex:none}
.lang-switch:hover{background:var(--t-sienna-dark);transform:translateY(-1px);opacity:1}
.page-en .lang-switch,
.nav.scrolled .lang-switch{color:var(--t-sand);background:var(--t-sienna)}
.page-en .lang-switch:hover,
.nav.scrolled .lang-switch:hover{background:var(--t-sienna-dark)}
@media(max-width:760px){
  .lang-switch{height:34px;padding:0 10px;min-width:42px;font-size:11px;margin-right:var(--s-2)}
  .lang-switch::before{width:11px;height:11px}
}

/* === Direct lines (contactos, why-terrae, etc.) === */
.direct-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5);margin-top:var(--s-6)}
.direct-card{background:var(--t-sand-light);padding:var(--s-6) var(--s-5);display:flex;flex-direction:column;gap:var(--s-3);transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s ease}
.direct-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(29,29,27,.10)}
.direct-photo{width:108px;height:108px;border-radius:50%;overflow:hidden;background:var(--t-ink);align-self:flex-start;margin-bottom:var(--s-2)}
.direct-photo img{width:100%;height:100%;object-fit:cover;object-position:center 28%;display:block;border-radius:50%;transform:scale(1.18);transform-origin:center 35%}
.direct-card .kicker{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--t-sage-dark)}
.direct-card h3{font-family:var(--f-display);font-weight:400;font-size:1.4rem;margin:0;color:var(--t-ink);line-height:1.1}
.direct-card p{font-size:.9375rem;line-height:1.55;color:var(--t-ink-soft);margin:0;flex:1}
.direct-card .direct-actions{padding-top:var(--s-3);border-top:1px solid var(--t-rule);display:flex;gap:var(--s-2);flex-wrap:wrap}
.direct-card .direct-actions .btn{font-size:.8125rem;padding:.55rem .9rem}
@media(max-width:980px){.direct-grid{grid-template-columns:1fr;max-width:520px;margin-left:auto;margin-right:auto}}

/* === Who answers when you call (why-terrae) === */
.who-answers{background:var(--t-sand-light);padding:var(--s-7) var(--s-6);margin:var(--s-7) 0;border-left:3px solid var(--t-sienna)}
.who-answers .wa-head{margin-bottom:var(--s-5)}
.who-answers .wa-head h3{font-family:var(--f-display);font-weight:400;font-size:1.65rem;margin:var(--s-3) 0 var(--s-2);color:var(--t-ink);line-height:1.15}
.who-answers .wa-head p{font-size:1rem;line-height:1.55;color:var(--t-ink-soft);margin:0;max-width:60ch}
.who-answers .wa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5)}
.who-answers .wa-card{background:#fff;padding:var(--s-5) var(--s-4);display:flex;flex-direction:column;gap:var(--s-2)}
.who-answers .wa-

/* === MOBILE FIX GLOBAL · 2026-06-06 === */
/* Sobrepor inline grid-template-columns em mobile para garantir responsive */
@media(max-width:840px){
  [style*="grid-template-columns:repeat(3"],
  [style*="grid-template-columns: repeat(3"],
  [style*="grid-template-columns:repeat(4"],
  [style*="grid-template-columns: repeat(4"],
  [style*="grid-template-columns:repeat(5"],
  [style*="grid-template-columns: repeat(5"],
  [style*="grid-template-columns:repeat(6"],
  [style*="grid-template-columns: repeat(6"]{
    grid-template-columns:1fr 1fr !important;
  }
}
@media(max-width:560px){
  [style*="grid-template-columns:repeat(2"],
  [style*="grid-template-columns: repeat(2"],
  [style*="grid-template-columns:repeat(3"],
  [style*="grid-template-columns: repeat(3"],
  [style*="grid-template-columns:repeat(4"],
  [style*="grid-template-columns: repeat(4"],
  [style*="grid-template-columns:repeat(5"],
  [style*="grid-template-columns: repeat(5"],
  [style*="grid-template-columns:repeat(6"],
  [style*="grid-template-columns: repeat(6"]{
    grid-template-columns:1fr !important;
  }
}

/* Garantir que <img> nunca rebenta o container */
img{max-width:100%;height:auto}

/* Hero — título responsive mais agressivo em ecrãs pequenos */
@media(max-width:480px){
  .hero h1, header h1, .s-hero h1, .f-hero h1{font-size:clamp(1.75rem,7vw,2.5rem) !important;line-height:1.1 !important}
  .hero .sub, .hero p, .s-hero .lede, .f-hero .lede{font-size:1rem !important;line-height:1.5 !important}
}

/* Trust strip — esconder 2.ª e 3.ª em ecrãs pequenos para evitar wrap feio */
@media(max-width:520px){
  .trust-strip{font-size:10px;gap:8px;padding:5px 10px}
  .trust-strip span:nth-child(2),.trust-strip span:nth-child(3){display:none}
}

/* CTAs em mobile — botões empilham com gap consistente */
@media(max-width:560px){
  .cta-row,.hero-cta,.cta-actions{flex-direction:column;align-items:stretch}
  .cta-row .btn,.hero-cta .btn,.cta-actions .btn,.cta-actions a{width:100%;text-align:center;justify-content:center}
}

/* Tabelas que rebentam */
@media(max-width:760px){
  table{font-size:0.85rem}
  .vs-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .vs-table td,.vs-table th{white-space:nowrap}
}

/* Padding lateral mínimo em mobile */
@media(max-width:560px){
  .wrap,.wrap-narrow{padding-left:16px;padding-right:16px}
}

/* Hero photos — aspect-ratio mais quadrado em mobile para não comer ecrã todo */
@media(max-width:560px){
  .s-hero .s-portrait img,.f-hero .f-portrait img{aspect-ratio:1/1}
  header.hero--photo{min-height:48vh !important}
}

/* Bloco "empresa familiar" PT/EN — grid 3 cols em mobile vira 1 */
@media(max-width:760px){
  .family-grid,[class*="family"]{grid-template-columns:1fr !important}
}

/* Footer — empilha colunas em mobile */
@media(max-width:760px){
  .foot-grid{grid-template-columns:1fr !important;gap:var(--s-5) !important}
  .foot-base{flex-direction:column;align-items:flex-start;gap:8px}
}

/* FAB WhatsApp não tapa CTAs em mobile */
@media(max-width:560px){
  .fab{width:52px;height:52px;bottom:calc(14px + 60px);right:16px}
  .fab svg{width:26px;height:26px}
  .cta-final{padding-bottom:120px !important}
}


/* === MOBILE FIX v2 · 2026-06-06 23:35 (Samsung S26 Ultra feedback) === */

/* Nav em mobile — esconder o botão CTA grande, mostrar hamburger */
@media(max-width:840px){
  .nav-in{padding:var(--s-4) var(--s-5);gap:var(--s-3)}
  .nav .tlogo{height:24px}
  /* Esconder o "Falar connosco" longo na nav em mobile — o utilizador tem o FAB */
  .nav-cta .btn-sienna,
  .nav-cta .btn-primary{display:none}
  /* Mas mostrar o lang-switch (EN/PT) e o hamburger */
  .nav-cta{gap:var(--s-3)}
  .lang-switch{font-size:13px;padding:6px 10px;border:1px solid rgba(228,221,211,.3);color:var(--t-sand);text-transform:uppercase;letter-spacing:.1em}
}

/* Nav-toggle (hamburger) — garantir tamanho clicável e cor visível */
@media(max-width:1080px){
  .nav-toggle{
    display:flex !important;
    width:44px;height:44px;
    align-items:center;justify-content:center;
    color:var(--t-sand) !important;
  }
  .nav-toggle span{background:var(--t-sand);width:22px;height:2px}
}

/* FAB WhatsApp — em mobile mais pequeno e mais para o canto */
@media(max-width:560px){
  .fab{
    width:48px;height:48px;
    bottom:calc(14px + 60px);right:14px;
    box-shadow:0 4px 12px rgba(0,0,0,.3)
  }
  .fab svg{width:24px;height:24px}
}

/* CTAs do hero — empilhar full-width em mobile (já existia, reforçar) */
@media(max-width:560px){
  .hero-cta{flex-direction:column;align-items:stretch;width:100%;max-width:320px;margin-top:var(--s-5)}
  .hero-cta .btn{width:100%;justify-content:center;text-align:center}
  /* Padding bottom do hero para não ser tapado pelo FAB */
  .hero{padding-bottom:80px}
}

/* Hero — texto LISBOA · 2026 e título com tamanhos certos no mobile */
@media(max-width:560px){
  .hero .kicker,.hero-meta{font-size:11px;letter-spacing:.18em}
  .hero h1{font-size:clamp(2.2rem,8.5vw,3rem) !important;line-height:1.05}
  .hero .sub{font-size:1rem;line-height:1.55;max-width:100%}
}

/* Trust strip — esconder em viewports muito pequenos (já estava parcial) */
@media(max-width:480px){
  .trust-strip{font-size:9.5px;letter-spacing:.05em;padding:5px 8px}
}

/* Garantir overflow-x: hidden em todos os containers */
html,body{overflow-x:hidden;max-width:100vw}
.wrap,.wrap-narrow,.wrap-wide,section,header,footer{max-width:100%}

/* ============================================================
   FRENTE 5 · Transições entre páginas (View Transitions API · MPA)
   Cross-fade contido entre páginas; degrada em browsers sem suporte.
   ============================================================ */
@view-transition{ navigation: auto; }
::view-transition-old(root),::view-transition-new(root){
  animation-duration:.5s;
  animation-timing-function:cubic-bezier(.65,0,.35,1);
}
/* morfose da imagem Empreendimentos → Jardins do Anjo */
::view-transition-group(jda-hero){
  animation-duration:.62s;
  animation-timing-function:cubic-bezier(.65,0,.35,1);
}
@media (prefers-reduced-motion: reduce){
  @view-transition{ navigation: none; }
}

/* ============================================================
   FRENTE 7 · Acessibilidade — foco de teclado visível + skip link
   ============================================================ */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--t-sienna);
  outline-offset:2px;
}
/* contextos de fundo escuro: outline em areia para contraste */
:where(.nav,.foot,.hero,.band,.block--ink,.block--sage,.block--terra,.avail,.loja-feature,.intro,.team-feature) :where(a,button):focus-visible{
  outline-color:var(--t-sand);
}
/* inputs: borda no rato, outline no teclado */
.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible,.gate input:focus-visible{
  outline:2px solid var(--t-sienna);outline-offset:1px;
}
.skip-link{position:absolute;left:8px;top:-64px;z-index:2000;background:var(--t-ink);color:var(--t-sand);padding:.7rem 1.1rem;font-size:var(--fs-small);letter-spacing:.02em;text-decoration:none;transition:top .2s ease}
.skip-link:focus{top:8px}

/* ============================================================
   FRENTE 4 · Ritmo editorial — hierarquia mais ousada + respiração
   (todo o site; a homepage e as internas partilham o mesmo ritmo)
   ============================================================ */
section{padding-top:7rem;padding-bottom:7rem}
.sec-head{margin-bottom:var(--s-8);max-width:820px}
.sec-head .kicker{display:inline-block;margin-bottom:var(--s-4)}
.sec-head h2{font-size:clamp(2.4rem,5.4vw,4.4rem);line-height:1.05;letter-spacing:-.005em}
.sec-head p.lede{font-size:1.12rem;margin-top:var(--s-5);max-width:62ch}
/* a homepage leva o registo mais ousado */
.page-home .sec-head h2{font-size:clamp(2.5rem,5.6vw,4.6rem)}
@media(max-width:640px){
  section{padding-top:var(--s-8);padding-bottom:var(--s-8)}
  .sec-head{margin-bottom:var(--s-7)}
  .sec-head h2,.page-home .sec-head h2{font-size:clamp(2rem,8vw,2.8rem)}
  .sec-head p.lede{font-size:1.05rem}
}

