/* ============================================================================
   Dr. Paulo Cardoso — Reabilitação Oral
   Design system base: "Grotesk Zero" (Archivo + IBM Plex Mono, grain, hairlines,
   custom cursor, GSAP motion). Brand adaptation: dark/premium grounds + teal
   accent (#43B7B2, from the logo) replacing the original vermillion.
   ============================================================================ */

/* self-hosted fonts (latin subset covers PT-BR) — no third-party request */
@font-face{font-family:'Archivo';font-style:normal;font-weight:100 900;font-stretch:62% 125%;
  font-display:swap;src:url("assets/fonts/archivo-var-latin.woff2") format("woff2")}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;
  font-display:swap;src:url("assets/fonts/ibm-plex-mono-400.woff2") format("woff2")}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;
  font-display:swap;src:url("assets/fonts/ibm-plex-mono-500.woff2") format("woff2")}

:root{
  --bone:#f4f1ea;          /* light text / light surfaces */
  --ink:#161513;           /* near-black ground */
  --near:#0c0b0a;          /* deepest black — hero / footer */
  --teal:#43b7b2;          /* brand accent (from logo mark) */
  --teal-bright:#5fd8d1;   /* hover / glow */
  --teal-deep:#2c8480;     /* pressed / deep */
  --hair-bone:rgba(244,241,234,.16);
  --hair-ink:rgba(22,21,19,.16);
  --teal-soft:rgba(67,183,178,.14);

  --mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  --arch:'Archivo','Helvetica Neue',Arial,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --gut:clamp(20px,3.2vw,64px);   /* shared horizontal gutter */
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{
  background:var(--near);
  color:var(--bone);
  font-family:var(--arch);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
::selection{background:var(--teal);color:var(--near)}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;background:none;border:0;cursor:pointer;color:inherit}

.mono{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase}

/* ---------- film grain ---------- */
body::after{
  content:"";position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  animation:grain 7s steps(10) infinite;
}
@keyframes grain{0%,100%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-2%)}80%{transform:translate(3%,3%)}}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;
  justify-content:space-between;padding:16px var(--gut);
  transition:background .5s var(--ease),padding .5s var(--ease),border-color .5s var(--ease);
  border-bottom:1px solid transparent}
.nav.is-stuck{background:rgba(12,11,10,.82);backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);border-bottom-color:var(--hair-bone);padding:10px var(--gut)}
.nav__brand img{height:clamp(30px,3.4vw,40px);width:auto;transition:height .5s var(--ease)}
.nav.is-stuck .nav__brand img{height:30px}
.nav__links{display:flex;gap:clamp(18px,2.2vw,34px);align-items:center}
.nav__links a:not(.nav__cta){font-family:var(--mono);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(244,241,234,.82);position:relative;padding:4px 0}
.nav__links a:not(.nav__cta)::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:0;
  background:var(--teal);transition:width .35s var(--ease)}
.nav__links a:not(.nav__cta):hover{color:var(--bone)}
.nav__links a:not(.nav__cta):hover::after{width:100%}
.nav__cta{border:1px solid var(--teal);color:var(--teal);padding:10px 20px;border-radius:100px;
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  transition:.3s var(--ease)}
.nav__cta:hover{background:var(--teal);color:var(--near);box-shadow:0 0 0 4px var(--teal-soft)}
@media(max-width:820px){.nav__links a:not(.nav__cta){display:none}}
.nav__cta-short{display:none}
@media(max-width:480px){
  .nav{padding:12px 16px}
  .nav__brand img{height:26px}
  .nav__cta{padding:9px 15px;font-size:10.5px;letter-spacing:.1em}
  .nav__cta-full{display:none}
  .nav__cta-short{display:inline}
}

/* ============================================================================
   HERO
   ============================================================================ */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;
  justify-content:center;padding:clamp(96px,13vh,150px) var(--gut) clamp(32px,5vh,60px);
  overflow:hidden;background:var(--near);isolation:isolate}
html.is-qa .hero{min-height:680px;height:680px}   /* QA only (?still): fixed flow height for full-page capture */

/* video bed */
.hero__video{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero__video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:50% 36%;filter:grayscale(.15) contrast(1.06) brightness(.72);
  opacity:.95;will-change:transform}
.hero__scrim{position:absolute;inset:0;
  background:
    radial-gradient(130% 100% at 78% 6%,rgba(67,183,178,.12) 0%,transparent 56%),
    linear-gradient(90deg,var(--near) 0%,rgba(12,11,10,.82) 27%,rgba(12,11,10,.44) 55%,rgba(12,11,10,.16) 80%,rgba(12,11,10,.30) 100%),
    linear-gradient(180deg,rgba(12,11,10,.5) 0%,rgba(12,11,10,.08) 34%,rgba(12,11,10,.34) 72%,var(--near) 100%)}
@media(max-width:820px){
  .hero__scrim{background:
    radial-gradient(120% 70% at 72% 4%,rgba(67,183,178,.10) 0%,transparent 55%),
    linear-gradient(180deg,rgba(12,11,10,.74) 0%,rgba(12,11,10,.40) 38%,rgba(12,11,10,.62) 74%,var(--near) 100%)}
}
.hero__glow{position:absolute;right:-6vw;top:30%;width:46vw;height:46vw;border-radius:50%;
  background:radial-gradient(circle,var(--teal-soft) 0%,transparent 62%);filter:blur(20px);z-index:-1;
  opacity:0;animation:glowpulse 7s var(--ease) infinite}
@keyframes glowpulse{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.08)}}

/* corner cross mark (used by section heads, e.g. Problema/Dor) */
.reg--cross{width:24px;height:24px;background:none}
.reg--cross::before,.reg--cross::after{content:"";position:absolute;background:var(--teal)}
.reg--cross::before{left:50%;top:0;bottom:0;width:1px}
.reg--cross::after{top:50%;left:0;right:0;height:1px}

/* kicker */
.hero__kicker{position:relative;z-index:3;color:rgba(244,241,234,.78);
  display:inline-flex;align-items:center;gap:10px;margin-bottom:clamp(18px,3vh,34px);
  opacity:0;transform:translateY(12px)}
.hero__kicker .dot{width:7px;height:7px;border-radius:50%;background:var(--teal);
  box-shadow:0 0 12px var(--teal);animation:blink 2.4s var(--ease) infinite}
@keyframes blink{50%{opacity:.25}}

/* headline */
.hero__title{position:relative;z-index:3;line-height:.9;user-select:none;max-width:none}
.hero__line{display:block;overflow:hidden}
.hero__line .word{display:inline-block;white-space:nowrap}
.hero__line .ch{display:inline-block;transform:translateY(115%);opacity:0;
  font-variation-settings:'wght' var(--w,900),'wdth' 100;
  transition:transform .9s var(--ease),opacity .9s var(--ease)}
.hero__line--sm{margin-bottom:.3em}
.hero__line--sm .ch{font-size:clamp(19px,2.7vw,36px);font-weight:300;letter-spacing:.01em;
  color:rgba(244,241,234,.86);--w:300}
.hero__line--xl .ch{font-size:clamp(38px,7vw,100px);font-weight:900;letter-spacing:-.03em;--w:900}
.hero__line--xl{line-height:.88}
/* headline reveal — CSS-driven (robust, independent of the JS animation ticker) */
.hero__title.is-revealed .ch{transform:translateY(0);opacity:1}
.hero__title.is-shown .ch{transform:none;opacity:1;transition:none}

/* subhead */
.hero__sub{position:relative;z-index:3;max-width:46ch;margin-top:clamp(22px,3.4vh,40px);
  font-size:clamp(15px,1.15vw,18px);line-height:1.62;color:rgba(244,241,234,.78);
  opacity:0;transform:translateY(18px)}
.hero__sub b{color:var(--bone);font-weight:600}

/* actions */
.hero__actions{position:relative;z-index:3;display:flex;align-items:center;gap:22px;flex-wrap:wrap;
  margin-top:clamp(26px,4vh,44px);opacity:0;transform:translateY(18px)}
.hero__reassure{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(244,241,234,.5);max-width:24ch;line-height:1.7}

/* button */
.btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--mono);font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;padding:17px 26px;position:relative;overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .35s var(--ease),background .3s var(--ease)}
.btn__arrow{font-style:normal;transition:transform .35s var(--ease)}
.btn:hover .btn__arrow{transform:translateX(6px)}
.btn--primary{background:var(--teal);color:var(--near);font-weight:500;
  box-shadow:0 0 0 0 rgba(67,183,178,.45)}
.btn--primary:hover{background:var(--teal-bright);transform:translateY(-2px);
  box-shadow:0 14px 40px -10px rgba(67,183,178,.55),0 0 0 4px var(--teal-soft)}
.btn--primary::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);
  transform:translateX(-120%);transition:transform .7s var(--ease);pointer-events:none}
.btn--primary:hover::after{transform:translateX(120%)}

/* trust line */
.hero__trust{position:relative;z-index:3;display:flex;gap:clamp(14px,2vw,30px);flex-wrap:wrap;
  margin-top:clamp(26px,4.5vh,52px);padding-top:18px;border-top:1px solid var(--hair-bone);
  color:rgba(244,241,234,.55);max-width:760px;opacity:0}
.hero__trust span{position:relative;padding-left:18px}
.hero__trust span::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:6px;height:6px;border:1px solid var(--teal);border-radius:50%}

/* scroll cue */
.hero__cue{position:absolute;left:var(--gut);bottom:20px;z-index:3;color:rgba(244,241,234,.6);
  display:flex;align-items:center;gap:8px;opacity:0}
.hero__cue i{font-style:normal;animation:cue 2.2s var(--ease) infinite}
@keyframes cue{50%{transform:translateY(6px);opacity:.4}}
@media(max-width:820px){.hero__cue{display:none}}

/* ============================================================================
   SHARED SECTION SCAFFOLDING + SCROLL REVEAL (reused by every content section)
   ============================================================================ */
.sec{position:relative;padding:clamp(84px,13vh,180px) var(--gut);overflow:clip}
.sec--ink{background:var(--ink)}
.sec--near{background:var(--near)}
.sec__cross{position:absolute;right:var(--gut);top:46px;width:26px;height:26px;opacity:.55}

.sec__head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap;
  border-bottom:1px solid var(--hair-bone);padding-bottom:18px;margin-bottom:clamp(44px,7vh,90px)}
.sec__eyebrow{color:var(--teal)}
.sec__index{color:rgba(244,241,234,.4)}

/* scroll reveal — initial hidden state (JS animates in; reduced/no-JS shows it) */
.reveal{opacity:0;visibility:hidden;transform:translateY(30px);will-change:transform,opacity}

/* ---------- Respiro: faixa visual full-bleed entre Problema e Solução ---------- */
.breather{position:relative;width:100%;height:clamp(420px,70vh,720px);
  overflow:hidden;background:linear-gradient(140deg,var(--ink),var(--near) 60%,#0a1413)}
.breather__media{position:absolute;inset:0}
.breather__media img{width:100%;height:100%;object-fit:cover;
  transform:scale(1.08);will-change:transform}
/* imagem já é escura (fundo preto + reflexo): só um blend topo/base para fundir nos
   vizinhos, sem vinheta radial pesada que "lavaria" a prótese */
.breather__scrim{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,var(--near) 0%,transparent 26%,transparent 64%,rgba(12,11,10,.9) 100%)}
.breather__quote{position:absolute;left:0;right:0;bottom:clamp(28px,6vh,64px);
  text-align:center;padding:0 var(--gut);z-index:2}
.breather__line{font-family:var(--arch);font-weight:300;line-height:1.05;
  font-size:clamp(28px,5.2vw,64px);color:var(--bone);letter-spacing:-.01em;
  text-shadow:0 2px 22px rgba(12,11,10,.6)}
.breather__line em{font-style:italic;color:var(--teal-bright)}
@media(prefers-reduced-motion:reduce){.breather__media img{transform:scale(1.02)}}

/* shared inline text-link CTA */
.link-cta{display:inline-flex;align-items:center;gap:10px;margin-top:clamp(26px,4vh,42px);
  font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);
  padding-bottom:7px;border-bottom:1px solid rgba(67,183,178,.38);
  transition:border-color .3s var(--ease),gap .3s var(--ease)}
.link-cta:hover{border-color:var(--teal);gap:16px}
.link-cta i{font-style:normal;transition:transform .35s var(--ease)}
.link-cta:hover i{transform:translateX(4px)}

/* ============================================================================
   03 · PROBLEMA / DOR
   ============================================================================ */
.pain__title{max-width:780px;margin-bottom:clamp(38px,6vh,76px)}
.pain__title-lead{display:block;font-size:clamp(19px,2.3vw,30px);font-weight:300;letter-spacing:-.01em;
  color:rgba(244,241,234,.44);margin-bottom:.3em}
.pain__title-main{display:block;font-size:clamp(30px,4.8vw,66px);font-weight:800;letter-spacing:-.026em;
  line-height:1.03;color:var(--bone)}
.pain__title-main em{font-style:normal;color:var(--teal)}

.pain__lead{max-width:880px;font-size:clamp(20px,2.5vw,33px);font-weight:600;line-height:1.34;
  letter-spacing:-.016em;color:var(--bone);margin-bottom:clamp(40px,6vh,76px)}
.pain__lead .w{opacity:.16;transition:opacity .4s linear}
.pain__lead .w.on{opacity:1}

.pain__note{max-width:56ch;font-size:clamp(15px,1.2vw,18px);line-height:1.62;
  color:rgba(244,241,234,.6);margin-bottom:clamp(50px,8vh,98px)}

.pain__list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(28px,5vw,72px);
  max-width:920px;margin:0 auto}
@media(max-width:720px){.pain__list{grid-template-columns:1fr;max-width:520px}}
.pain__item{display:flex;gap:13px;align-items:center;justify-content:flex-start;text-align:left;
  padding:18px 0;border-top:1px solid var(--hair-bone);font-size:clamp(15px,1.25vw,18px);line-height:1.46;
  color:rgba(244,241,234,.8);transition:color .3s var(--ease)}
.pain__item:hover{color:var(--bone)}
.pain__marker{flex:none;width:9px;height:9px;border:1px solid var(--teal);border-radius:50%;
  transition:background .3s var(--ease),box-shadow .3s}
.pain__item:hover .pain__marker{background:var(--teal);box-shadow:0 0 12px rgba(67,183,178,.55)}

.pain__bridge{margin-top:clamp(56px,9vh,120px);max-width:640px}
.pain__bridge-soft{font-size:clamp(20px,2.4vw,32px);font-weight:300;color:rgba(244,241,234,.5);
  letter-spacing:-.015em;line-height:1.22}
.pain__bridge-strong{font-size:clamp(26px,3.4vw,52px);font-weight:800;color:var(--bone);
  letter-spacing:-.026em;line-height:1.08;margin-top:.1em}
.pain__bridge-strong em{font-style:normal;color:var(--teal)}

/* ============================================================================
   04 · SOLUÇÃO
   ============================================================================ */
.sol__title{max-width:1000px;font-size:clamp(28px,4.4vw,58px);font-weight:800;letter-spacing:-.025em;
  line-height:1.05;color:var(--bone);margin-bottom:clamp(34px,5vh,56px)}
.sol__title em{font-style:normal;color:var(--teal)}

.sol__body{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);max-width:1000px;
  margin-bottom:clamp(56px,9vh,112px)}
@media(max-width:760px){.sol__body{grid-template-columns:1fr;gap:18px}}
.sol__body p{font-size:clamp(15px,1.15vw,17px);line-height:1.62;color:rgba(244,241,234,.68)}
.sol__body p:last-child{color:rgba(244,241,234,.84)}

.sol__pillars{display:grid;grid-template-columns:repeat(3,1fr)}
@media(max-width:760px){.sol__pillars{grid-template-columns:1fr}}
.sol__pillar{position:relative;border-top:1px solid var(--hair-bone);
  padding:clamp(26px,3vw,38px) clamp(18px,2vw,34px) clamp(30px,4vh,46px) 0;
  transition:padding-left .4s var(--ease)}
.sol__pillar::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--teal);
  transition:width .55s var(--ease)}
.sol__pillar:hover::before{width:100%}
.sol__pillar:hover{padding-left:10px}
.sol__num{display:block;font-size:clamp(40px,5vw,68px);font-weight:800;letter-spacing:-.02em;line-height:1;
  color:var(--teal);font-variation-settings:'wght' 800;margin-bottom:clamp(18px,3vh,32px);
  transition:font-variation-settings .45s var(--ease)}
.sol__pillar:hover .sol__num{font-variation-settings:'wght' 300}
.sol__pt{font-size:clamp(18px,1.7vw,23px);font-weight:700;letter-spacing:-.01em;line-height:1.18;
  color:var(--bone);margin-bottom:13px}
.sol__pd{font-size:clamp(14px,1.05vw,16px);line-height:1.55;color:rgba(244,241,234,.6);max-width:32ch}
.sol__cta{margin-top:clamp(40px,6vh,72px)}

/* ============================================================================
   05 · TRATAMENTOS (feature rows + accordion)
   ============================================================================ */
.trt__title{max-width:none;white-space:nowrap;font-size:clamp(30px,5vw,64px);font-weight:800;letter-spacing:-.03em;
  line-height:1;color:var(--bone);margin-bottom:clamp(42px,7vh,88px)}
@media(max-width:560px){.trt__title{white-space:normal;font-size:clamp(28px,7.5vw,42px)}}
.trt__title em{font-style:normal;color:var(--teal)}

/* alternating large feature rows — big photo + info, sides alternate */
.trt__feats{display:flex;flex-direction:column;gap:clamp(54px,9vh,128px);
  border-top:1px solid var(--hair-bone);padding-top:clamp(48px,7vh,90px)}
.trt__feat{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(28px,5vw,84px);align-items:center}
@media(max-width:860px){.trt__feat{grid-template-columns:1fr;gap:clamp(20px,4vh,34px)}}
.trt__feat:nth-child(even) .trt__media{order:2}      /* alternate: photo to the right */
@media(max-width:860px){.trt__feat:nth-child(even) .trt__media{order:0}}

/* media */
.trt__media{position:relative;margin:0;will-change:transform}
.trt__glow{position:absolute;inset:-9% -11%;z-index:0;border-radius:50%;
  background:radial-gradient(circle at 50% 45%,var(--teal-soft) 0%,transparent 62%);
  filter:blur(26px);opacity:.5;animation:glowpulse 8s var(--ease) infinite}
/* before/after cases: complete images, antes | depois, stacked rows */
.trt__cases{position:relative;z-index:1;display:flex;flex-direction:column;gap:clamp(10px,1.4vw,16px)}
.trt__case{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(8px,1vw,12px)}
.trt__shot{position:relative;margin:0;overflow:hidden;border:1px solid var(--hair-bone);background:var(--near)}
.trt__shot img{width:100%;height:auto;display:block;
  filter:grayscale(.12) contrast(1.04) brightness(.95);
  clip-path:inset(0 0 100% 0);opacity:0;
  transition:clip-path .9s var(--ease),opacity .7s var(--ease),transform .6s var(--ease),filter .5s var(--ease)}
.trt__feat.is-in .trt__shot img{clip-path:inset(0 0 0 0);opacity:1}
.trt__feat.is-in .trt__case:nth-child(2) .trt__shot img{transition-delay:.12s}
.trt__shot:hover img{transform:scale(1.04);filter:grayscale(0) contrast(1.05) brightness(1)}
/* antes/depois labels */
.trt__lab{position:absolute;z-index:2;left:10px;bottom:10px;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;
  padding:4px 9px;border:1px solid rgba(244,241,234,.2);background:rgba(12,11,10,.6);
  color:rgba(244,241,234,.82);backdrop-filter:blur(6px);opacity:0;transform:translateY(6px);
  transition:opacity .55s var(--ease) .35s,transform .55s var(--ease) .35s}
.trt__lab--a{border-color:rgba(67,183,178,.55);color:var(--teal-bright)}
.trt__feat.is-in .trt__lab{opacity:1;transform:none}

/* info */
.trt__info{position:relative;opacity:0;transform:translateY(22px);
  transition:opacity .7s var(--ease) .1s,transform .8s var(--ease) .1s}
.trt__feat.is-in .trt__info{opacity:1;transform:none}
.trt__idx{display:block;color:var(--teal);margin-bottom:clamp(14px,2.2vh,22px)}
.trt__name{font-size:clamp(26px,3.5vw,48px);font-weight:800;letter-spacing:-.026em;line-height:1.03;
  color:var(--bone);margin-bottom:clamp(15px,2.2vh,22px)}
.trt__name-sub{display:block;font-size:.52em;font-weight:300;color:rgba(244,241,234,.5);
  letter-spacing:-.005em;margin-top:.35em}
.trt__desc{font-size:clamp(15px,1.18vw,18px);line-height:1.62;color:rgba(244,241,234,.72);
  max-width:46ch;margin-bottom:clamp(22px,3vh,32px)}
.trt__info .link-cta{margin-top:0}

.trt__cta{margin-top:clamp(44px,6vh,76px)}

/* ============================================================================
   06 · COMO FUNCIONA (sticky vertical clip + scroll-fill timeline)
   ============================================================================ */
.proc__title{max-width:30ch;font-size:clamp(28px,4vw,54px);font-weight:800;letter-spacing:-.026em;
  line-height:1.08;color:var(--bone);margin-bottom:clamp(40px,6vh,76px)}
.proc__title em{font-style:normal;color:var(--teal)}

.proc__grid{display:grid;grid-template-columns:.62fr 1.1fr;gap:clamp(30px,4.5vw,76px);align-items:start;max-width:1080px;margin:0 auto}
@media(max-width:880px){.proc__grid{grid-template-columns:1fr;gap:clamp(40px,6vh,60px)}}

/* media — sticky vertical clip on desktop */
.proc__media{position:sticky;top:13vh;margin:0}
@media(max-width:880px){.proc__media{position:static;top:auto;max-width:360px}}
.proc__glow{position:absolute;inset:-10% -8%;z-index:0;border-radius:50%;
  background:radial-gradient(circle at 50% 40%,var(--teal-soft) 0%,transparent 60%);
  filter:blur(28px);opacity:.5;animation:glowpulse 8s var(--ease) infinite}
.proc__frame{position:relative;z-index:1;overflow:hidden;border:1px solid var(--hair-bone);
  background:var(--near);aspect-ratio:3/4}   /* cropped from 9:16 → shorter, balances the timeline */
.proc__frame video{width:100%;height:100%;object-fit:cover;object-position:50% 42%;display:block;
  filter:grayscale(.1) contrast(1.04) brightness(.96)}
.proc__cap{display:inline-flex;align-items:center;gap:9px;margin-top:14px;
  color:rgba(244,241,234,.5);letter-spacing:.12em;text-transform:none;font-size:10.5px}
.proc__cap .dot{width:6px;height:6px;border-radius:50%;background:var(--teal);
  box-shadow:0 0 10px var(--teal);animation:blink 2.4s var(--ease) infinite}

/* timeline */
.proc__steps{list-style:none;position:relative;--numw:clamp(54px,5.4vw,92px)}
.proc__step{position:relative;display:grid;grid-template-columns:var(--numw) 1fr;
  gap:clamp(16px,2.2vw,40px);align-items:start;padding-bottom:clamp(40px,6.5vh,80px)}
.proc__step:last-child{padding-bottom:0}
/* connector: runs from just below each number to the next number; none after the last */
.proc__step:not(:last-child)::after{content:"";position:absolute;z-index:0;
  left:calc(var(--numw)/2);transform:translateX(-50%);
  top:calc(clamp(30px,3.8vw,60px) * .9 + 14px);bottom:0;width:1px;
  background:var(--hair-bone);transition:background .45s var(--ease),box-shadow .45s var(--ease)}
.proc__step.is-active::after{background:linear-gradient(var(--teal),var(--teal-bright));
  box-shadow:0 0 12px rgba(67,183,178,.5)}
.proc__num{position:relative;z-index:2;width:var(--numw);background:transparent;
  font-family:var(--arch);font-size:clamp(30px,3.8vw,60px);font-weight:800;letter-spacing:-.03em;
  line-height:.9;color:rgba(67,183,178,.26);padding-bottom:10px;
  font-variation-settings:'wght' 800;transition:color .45s var(--ease),text-shadow .45s var(--ease)}
.proc__step.is-active .proc__num{color:var(--teal-bright);text-shadow:0 0 22px rgba(67,183,178,.45)}
.proc__c{padding-top:6px}
.proc__st{font-size:clamp(19px,1.9vw,27px);font-weight:700;letter-spacing:-.015em;line-height:1.16;
  color:var(--bone);margin-bottom:11px}
.proc__sd{font-size:clamp(14px,1.08vw,16.5px);line-height:1.6;color:rgba(244,241,234,.62);max-width:46ch}
.proc__sd strong{color:var(--teal);font-weight:600}
.proc__cta{margin-top:clamp(40px,6vh,72px)}

/* ============================================================================
   07 · O DR. PAULO (split portrait + ledger, impact motion)
   ============================================================================ */
.dr{overflow:clip}
/* giant ghost index drifting behind */
.dr__ghost{position:absolute;right:calc(var(--gut) - .04em);top:clamp(40px,6vh,90px);z-index:0;
  font-family:var(--arch);font-weight:900;font-size:clamp(160px,30vw,460px);line-height:.8;
  letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px rgba(244,241,234,.05);
  pointer-events:none;user-select:none;will-change:transform}

.dr .sec__head,.dr__grid{position:relative;z-index:2}
.dr__grid{display:grid;grid-template-columns:.84fr 1.16fr;gap:clamp(32px,5vw,84px);align-items:start}
@media(max-width:880px){.dr__grid{grid-template-columns:1fr;gap:clamp(34px,6vh,56px)}}

/* ---- portrait ---- */
.dr__figure{position:relative;margin:0}
.dr__glow{position:absolute;inset:-8% -10% -4% -6%;z-index:0;border-radius:50%;
  background:radial-gradient(circle at 50% 38%,var(--teal-soft) 0%,transparent 62%);
  filter:blur(26px);opacity:0;animation:glowpulse 7s var(--ease) infinite;animation-play-state:paused}
.dr__figure.is-in .dr__glow{animation-play-state:running}
.dr__frame{position:relative;z-index:1;overflow:hidden;border:1px solid var(--hair-bone);background:var(--near)}
.dr__frame img{width:100%;height:auto;display:block;filter:grayscale(.18) contrast(1.05) brightness(.96);
  /* clip-reveal (clip-path only → no transform clash with gsap parallax scale) */
  clip-path:inset(100% 0 0 0);opacity:0;
  transition:clip-path 1.05s var(--ease),opacity .6s var(--ease)}
.dr__figure.is-in .dr__frame img{clip-path:inset(0 0 0 0);opacity:1}
/* teal scan sweep, one pass on enter */
.dr__scan{position:absolute;left:0;right:0;top:0;height:2px;z-index:2;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,transparent,var(--teal-bright),transparent);
  box-shadow:0 0 18px 2px rgba(95,216,209,.55)}
.dr__figure.is-in .dr__scan{animation:drscan 1.15s var(--ease) .25s 1 both}
@keyframes drscan{0%{opacity:0;transform:translateY(0)}8%{opacity:1}92%{opacity:1}100%{opacity:0;transform:translateY(var(--scanH,520px))}}
/* corner crosses on the frame */
.dr__c{position:absolute;z-index:3;opacity:.7}
.dr__c--tl{top:10px;left:10px}
.dr__c--br{bottom:10px;right:10px}

.dr__cap{display:flex;flex-direction:column;gap:5px;margin-top:16px;padding-left:2px}
.dr__cap-name{color:var(--bone);letter-spacing:.14em}
.dr__cap-role{color:rgba(244,241,234,.45);letter-spacing:.12em;text-transform:none;font-size:10.5px}

/* ---- text column ---- */
.dr__title{font-size:clamp(28px,3.9vw,52px);font-weight:800;letter-spacing:-.026em;line-height:1.06;
  color:var(--bone);margin-bottom:clamp(30px,4.5vh,52px);max-width:18ch}
.dr__title .w{display:inline-block;clip-path:inset(0 0 110% 0);transform:translateY(.42em);opacity:0;
  transition:clip-path .8s var(--ease),transform .8s var(--ease),opacity .55s var(--ease)}
.dr__title.is-in .w{clip-path:inset(0 0 -12% 0);transform:none;opacity:1}
.dr__accent{color:var(--teal)}
.dr__dash{color:rgba(244,241,234,.4)}

.dr__lede{max-width:54ch;margin-bottom:clamp(36px,5.5vh,60px)}
.dr__lede p{font-size:clamp(15px,1.12vw,17.5px);line-height:1.64;color:rgba(244,241,234,.7)}
.dr__lede p+p{margin-top:1.1em}
.dr__lede em{font-style:normal;color:var(--bone);font-weight:600}

/* credentials ledger */
.dr__creds{list-style:none;border-top:1px solid var(--hair-bone);margin-bottom:clamp(34px,5vh,52px)}
.dr__cred{position:relative;display:flex;align-items:baseline;gap:clamp(14px,1.6vw,24px);
  padding:15px 4px 15px 0;border-bottom:1px solid var(--hair-bone);
  color:rgba(244,241,234,.82);font-size:clamp(14px,1.08vw,16.5px);line-height:1.4;
  transition:color .3s var(--ease),padding-left .35s var(--ease)}
.dr__cred::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--teal);
  transition:width .5s var(--ease)}
.dr__cred:hover{color:var(--bone);padding-left:9px}
.dr__cred:hover::before{width:100%}
.dr__cred-k{flex:none;color:var(--teal);width:2.4ch}
.dr__cred-v{flex:1}

.dr__foot{display:flex;align-items:center;gap:clamp(20px,3vw,40px);flex-wrap:wrap}
.dr__ig{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:11px;
  letter-spacing:.12em;color:rgba(244,241,234,.6);transition:color .3s var(--ease)}
.dr__ig:hover{color:var(--teal)}

/* ============================================================================
   08 · CASOS / ANTES E DEPOIS (interactive comparison slider)
   ============================================================================ */
.cases__title{font-size:clamp(34px,6vw,86px);font-weight:800;letter-spacing:-.032em;line-height:.98;
  color:var(--bone);margin-bottom:clamp(16px,2.4vh,26px)}
.cases__title em{font-style:normal;color:var(--teal)}
.cases__sub{max-width:48ch;font-size:clamp(15px,1.3vw,19px);line-height:1.55;color:rgba(244,241,234,.62);
  margin-bottom:clamp(34px,5vh,58px)}
.cases__sub b{color:var(--teal);font-weight:600}

/* ---- comparison stage (diagonal split, drag left/right) ---- */
.cmp{--pos:50%;--s:7%;--bw:2px;max-width:1040px;margin:0 auto}
.cmp__stage{position:relative;aspect-ratio:1200/495;overflow:hidden;border:1px solid var(--hair-bone);
  background:var(--near);cursor:ew-resize;touch-action:pan-y;user-select:none;isolation:isolate;
  /* clip-reveal on enter */
  clip-path:inset(0 0 0 0);transition:box-shadow .5s var(--ease)}
.cmp__stage:hover{box-shadow:0 30px 80px -40px rgba(67,183,178,.5)}
.cmp__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;
  display:block;-webkit-user-drag:none;filter:contrast(1.04) saturate(1.02)}
/* the "before" image is clipped to the left of the handle, on a diagonal edge */
.cmp__clip{position:absolute;inset:0;
  clip-path:polygon(0 0, calc(var(--pos) + var(--s)) 0, calc(var(--pos) - var(--s)) 100%, 0 100%);
  will-change:clip-path}

/* antes/depois tags */
.cmp__tag{position:absolute;top:14px;z-index:4;padding:7px 12px;background:rgba(12,11,10,.6);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--hair-bone);
  color:var(--bone);letter-spacing:.18em;font-size:10px;pointer-events:none}
.cmp__tag--b{left:14px}
.cmp__tag--a{right:14px;color:var(--teal);border-color:rgba(67,183,178,.4)}

/* drag handle */
.cmp__handle{position:absolute;top:0;bottom:0;left:var(--pos);width:0;z-index:5;
  transform:translateX(-50%);display:flex;align-items:center;justify-content:center;
  background:none;cursor:ew-resize}
/* glowing diagonal divider — same polygon math as the clip, so it tracks the edge exactly */
.cmp__edge{position:absolute;inset:0;z-index:4;pointer-events:none;
  background:linear-gradient(180deg,var(--teal-bright),var(--teal));
  clip-path:polygon(calc(var(--pos) + var(--s) - var(--bw)) 0, calc(var(--pos) + var(--s) + var(--bw)) 0,
                    calc(var(--pos) - var(--s) + var(--bw)) 100%, calc(var(--pos) - var(--s) - var(--bw)) 100%);
  filter:drop-shadow(0 0 7px rgba(67,183,178,.85))}
/* minimal, refined: just the chevrons on the divider — no disc, no border */
.cmp__grip{position:relative;display:flex;align-items:center;justify-content:center;
  gap:clamp(12px,1.5vw,20px);pointer-events:none;transition:gap .35s var(--ease)}
.cmp__handle:hover .cmp__grip,.cmp__handle:focus-visible .cmp__grip{gap:clamp(18px,2.2vw,28px)}
.cmp__handle:focus-visible{outline:none}
.cmp__chev{font-style:normal;font-weight:300;font-size:clamp(24px,2.7vw,34px);line-height:1;color:var(--bone);
  filter:drop-shadow(0 1px 5px rgba(0,0,0,.7)) drop-shadow(0 0 9px rgba(67,183,178,.55));
  transition:color .3s var(--ease)}
.cmp__handle:hover .cmp__chev,.cmp__handle:focus-visible .cmp__chev{color:var(--teal-bright)}
/* subtle invite-to-drag: chevrons breathe apart until the first interaction */
.cmp__chev:first-child{animation:cmpnudgeL 2.6s var(--ease) infinite}
.cmp__chev:last-child{animation:cmpnudgeR 2.6s var(--ease) infinite}
.cmp.is-touched .cmp__chev{animation:none}
@keyframes cmpnudgeL{0%,100%{transform:translateX(0)}50%{transform:translateX(-3px)}}
@keyframes cmpnudgeR{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}

.cmp__caption{margin-top:16px;text-align:center;color:rgba(244,241,234,.5);letter-spacing:.12em;
  text-transform:none;font-size:11px;transition:opacity .35s var(--ease)}

/* ---- case switcher chips ---- */
.cases__nav{display:flex;gap:clamp(12px,1.4vw,18px);flex-wrap:wrap;justify-content:center;margin-top:clamp(28px,4vh,42px)}
.cases__chip{flex:1 1 240px;max-width:320px;display:flex;align-items:center;gap:14px;padding:8px 16px 8px 8px;
  border:1px solid var(--hair-bone);
  color:rgba(244,241,234,.7);font-size:13px;letter-spacing:.01em;background:rgba(12,11,10,.3);
  transition:border-color .3s var(--ease),color .3s var(--ease),background .3s var(--ease)}
@media(max-width:520px){.cases__chip{flex-basis:100%;max-width:none}}
.cases__thumb{position:relative;flex:none;width:64px;height:48px;overflow:hidden;border:1px solid var(--hair-bone);
  background:var(--near);transition:border-color .3s var(--ease)}
.cases__thumb img{width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(.4) brightness(.82);transition:filter .35s var(--ease),transform .5s var(--ease)}
.cases__chip-txt{display:inline-flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left}
.cases__chip-i{color:rgba(244,241,234,.4);font-size:10px;transition:color .3s var(--ease)}
.cases__chip:hover{border-color:rgba(67,183,178,.5);color:var(--bone)}
.cases__chip:hover .cases__thumb img{filter:grayscale(0) brightness(1);transform:scale(1.06)}
.cases__chip.is-on{border-color:var(--teal);color:var(--bone);background:var(--teal-soft)}
.cases__chip.is-on .cases__chip-i{color:var(--teal)}
.cases__chip.is-on .cases__thumb{border-color:var(--teal)}
.cases__chip.is-on .cases__thumb img{filter:grayscale(0) brightness(1)}

.cases__disclaimer{max-width:60ch;margin:clamp(30px,4.5vh,50px) auto 0;text-align:center;
  font-size:12.5px;line-height:1.55;color:rgba(244,241,234,.4)}
.cases__cta{display:flex;width:fit-content;margin:clamp(26px,4vh,40px) auto 0}

@media(max-width:560px){
  .cmp__stage{aspect-ratio:1200/620}      /* taller crop reads better on narrow screens */
  .cmp__tag{font-size:9px;padding:6px 10px}
}

/* ============================================================================
   10 · ESTRUTURA / CLÍNICA (parallax triptych, grayscale→color)
   ============================================================================ */
.struct__top{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,72px);align-items:end}
@media(max-width:820px){.struct__top{grid-template-columns:1fr;gap:18px}}
.struct__title{font-size:clamp(30px,4.6vw,62px);font-weight:800;letter-spacing:-.03em;line-height:1.02;
  color:var(--bone);max-width:14ch}
.struct__title .w{display:inline-block;clip-path:inset(0 0 110% 0);transform:translateY(.42em);opacity:0;
  transition:clip-path .8s var(--ease),transform .8s var(--ease),opacity .55s var(--ease)}
.struct__title.is-in .w{clip-path:inset(0 0 -12% 0);transform:none;opacity:1}
.struct__accent{color:var(--teal)}
.struct__lead{font-size:clamp(15px,1.18vw,18px);line-height:1.64;color:rgba(244,241,234,.66);max-width:46ch}

/* triptych */
.struct__gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,30px);
  align-items:start;margin:clamp(60px,9.5vh,128px) 0}
.struct__shot--1{margin-top:clamp(18px,5vh,64px)}
.struct__shot--3{margin-top:clamp(28px,8vh,108px)}
@media(max-width:720px){
  .struct__gallery{grid-template-columns:1fr 1fr;gap:12px}
  .struct__shot{margin-top:0!important}
  .struct__shot--3{grid-column:1/3;max-width:60%;margin:0 auto!important}
}
.struct__shot{position:relative;margin:0;will-change:transform}
.struct__frame{position:relative;overflow:hidden;border:1px solid var(--hair-bone);background:var(--near);
  aspect-ratio:3/4}
.struct__frame img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-drag:none;
  filter:grayscale(.55) contrast(1.05) brightness(.92);
  clip-path:inset(0 0 100% 0);opacity:0;
  transition:clip-path 1s var(--ease),opacity .7s var(--ease),filter .55s var(--ease),transform 1s var(--ease)}
.struct__shot.is-in .struct__frame img{clip-path:inset(0 0 0 0);opacity:1}
.struct__shot:hover .struct__frame img{filter:grayscale(0) contrast(1.04) brightness(1);transform:scale(1.05)}
.struct__cap{display:inline-flex;align-items:center;gap:9px;margin-top:13px;
  color:rgba(244,241,234,.5);letter-spacing:.14em;text-transform:none;font-size:10.5px}
.struct__cap .dot{width:6px;height:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 10px var(--teal)}

/* pillars */
.struct__pillars{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--hair-bone)}
@media(max-width:720px){.struct__pillars{grid-template-columns:1fr}}
.struct__pillar{position:relative;display:flex;gap:16px;align-items:flex-start;
  padding:clamp(24px,3vw,36px) clamp(16px,2vw,32px) clamp(26px,3.5vh,40px) 0;
  border-top:1px solid var(--hair-bone);margin-top:-1px;transition:padding-left .4s var(--ease)}
.struct__pillar::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--teal);
  transition:width .55s var(--ease)}
.struct__pillar:hover::before{width:100%}
.struct__pillar:hover{padding-left:9px}
.struct__pi{flex:none;color:var(--teal);font-size:12px;padding-top:5px}
.struct__pt{font-size:clamp(16px,1.5vw,21px);font-weight:700;letter-spacing:-.01em;color:var(--bone);
  margin-bottom:9px}
.struct__pd{font-size:clamp(13.5px,1.02vw,15.5px);line-height:1.55;color:rgba(244,241,234,.6);max-width:34ch}

/* address */
.struct__addr{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:22px;
  margin-top:clamp(44px,7vh,84px);padding-top:clamp(26px,4vh,40px);border-top:1px solid var(--hair-bone)}
.struct__addr-line{font-size:clamp(16px,1.5vw,22px);font-weight:600;letter-spacing:-.01em;color:var(--bone);line-height:1.3}
.struct__addr-line span{display:block;font-size:clamp(13px,1.05vw,15px);font-weight:400;
  color:rgba(244,241,234,.55);margin-top:6px;letter-spacing:0}
.struct__addr .link-cta{margin-top:0}

/* ============================================================================
   13 · CTA FINAL (full-bleed close — teal glow + ghost word + masked headline)
   ============================================================================ */
.cta{position:relative;background:var(--near);padding:clamp(96px,16vh,220px) var(--gut);
  overflow:clip;isolation:isolate;text-align:center}
.cta::before{content:"";position:absolute;left:var(--gut);right:var(--gut);top:0;height:1px;
  background:var(--hair-bone)}

.cta__bg{position:absolute;inset:0;z-index:-1;overflow:clip;pointer-events:none}
.cta__glow{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);
  width:min(125vw,1120px);height:min(125vw,1120px);border-radius:50%;
  background:radial-gradient(circle,var(--teal-soft) 0%,transparent 60%);
  filter:blur(30px);animation:glowpulse 8s var(--ease) infinite}
/* giant ghost word, stroke-only, drifts on scroll (JS drives yPercent) */
.cta__word{position:absolute;left:50%;bottom:-.16em;transform:translateX(-50%);
  font-family:var(--arch);font-weight:900;font-size:clamp(120px,26vw,420px);line-height:.8;
  letter-spacing:-.05em;white-space:nowrap;color:transparent;
  -webkit-text-stroke:1px rgba(67,183,178,.11);user-select:none;will-change:transform}

.cta__inner{position:relative;z-index:1;max-width:900px;margin:0 auto;
  display:flex;flex-direction:column;align-items:center}

.cta__eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--teal);
  margin-bottom:clamp(22px,3.4vh,38px)}
.cta__eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--teal);
  box-shadow:0 0 12px var(--teal);animation:blink 2.4s var(--ease) infinite}

/* headline — hero's slide-up mask idiom (this section is the hero's bookend) */
.cta__title{font-size:clamp(38px,7vw,104px);font-weight:900;letter-spacing:-.035em;
  line-height:1;color:var(--bone)}
.cta__line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.05em}
.cta__title .w{display:inline-block;transform:translateY(112%);opacity:0;
  transition:transform .85s var(--ease),opacity .85s var(--ease)}
.cta__title.is-in .w{transform:none;opacity:1}
.cta__accent{color:var(--teal)}

.cta__sub{max-width:52ch;margin-top:clamp(24px,3.6vh,40px);
  font-size:clamp(16px,1.35vw,20px);line-height:1.6;color:rgba(244,241,234,.74)}

.cta__actions{display:flex;flex-direction:column;align-items:center;gap:18px;
  margin-top:clamp(34px,5vh,60px)}
.cta__reassure{color:rgba(244,241,234,.5);letter-spacing:.1em;text-align:center;line-height:1.7}

/* large primary button — used by the final CTA */
.btn--lg{padding:21px 40px;font-size:13px;letter-spacing:.16em}
@media(max-width:480px){.btn--lg{padding:18px 26px;font-size:12px}}

/* ============================================================================
   14 · RODAPÉ (structured dark footer + giant wordmark + dark-mapped iframe)
   ============================================================================ */
.foot{position:relative;background:var(--near);padding:clamp(64px,9vh,120px) var(--gut) 0;
  border-top:1px solid var(--hair-bone);overflow:clip}

.foot__top{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr 1.45fr;
  gap:clamp(38px,6vw,110px)}
@media(max-width:880px){.foot__top{grid-template-columns:1fr;gap:clamp(40px,6vh,56px)}}

/* brand column */
.foot__brand{display:inline-block}
.foot__brand img{height:clamp(34px,3.6vw,46px);width:auto;margin-bottom:clamp(20px,3vh,30px)}
.foot__manifesto{max-width:42ch;font-size:clamp(14px,1.08vw,16px);line-height:1.64;
  color:rgba(244,241,234,.6);margin-bottom:clamp(22px,3vh,30px)}
.foot__ig{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:11px;
  letter-spacing:.12em;color:rgba(244,241,234,.7);transition:color .3s var(--ease)}
.foot__ig:hover{color:var(--teal)}

/* link columns */
.foot__cols{display:grid;grid-template-columns:auto auto 1.1fr;gap:clamp(26px,4vw,60px)}
@media(max-width:680px){.foot__cols{grid-template-columns:1fr 1fr;gap:30px}
  .foot__col--map{grid-column:1/3}}
.foot__col{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:0}
.foot__h{color:var(--teal);margin-bottom:4px}
.foot__col a{position:relative;font-size:clamp(14px,1.05vw,15.5px);line-height:1.5;
  color:rgba(244,241,234,.72);transition:color .3s var(--ease)}
.foot__col a:hover{color:var(--bone)}
/* underline sweep — same idiom as the top nav links */
.foot__col a:not(.foot__addr)::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:0;
  background:var(--teal);transition:width .35s var(--ease)}
.foot__col a:not(.foot__addr):hover::after{width:100%}
.foot__addr{color:rgba(244,241,234,.55);line-height:1.55}

/* map — inverted so the Google embed reads dark, matching the ground */
.foot__col--map{align-items:stretch}
.foot__map{position:relative;width:100%;height:100%;min-height:172px;
  border:1px solid var(--hair-bone);overflow:hidden;background:var(--ink)}
.foot__map iframe{width:100%;height:100%;min-height:172px;border:0;display:block;
  filter:invert(.92) hue-rotate(180deg) saturate(.75) brightness(.9)}

/* giant wordmark — bleeds at the edges (overflow:clip), drifts on scroll */
.foot__word{position:relative;z-index:1;margin-top:clamp(46px,8vh,92px);text-align:center;
  font-family:var(--arch);font-weight:900;font-size:clamp(54px,15.5vw,250px);line-height:.82;
  letter-spacing:-.05em;white-space:nowrap;color:transparent;
  -webkit-text-stroke:1px rgba(244,241,234,.06);user-select:none;pointer-events:none;will-change:transform}

/* bottom bar */
.foot__bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  margin-top:clamp(38px,6vh,68px);padding:24px 0;border-top:1px solid var(--hair-bone)}
.foot__copy{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(244,241,234,.45)}
.foot__legal{display:inline-flex;align-items:center;gap:clamp(16px,2.4vw,32px);flex-wrap:wrap}
.foot__legal a{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(244,241,234,.45);transition:color .3s var(--ease)}
.foot__legal a:hover{color:var(--teal)}
.foot__toplink{display:inline-flex;align-items:center;gap:7px}
.foot__toplink i{font-style:normal;transition:transform .3s var(--ease)}
.foot__toplink:hover i{transform:translateY(-3px)}

/* ---------- WhatsApp FAB ---------- */
.wa-fab{position:fixed;right:20px;bottom:20px;z-index:95;width:56px;height:56px;border-radius:50%;
  display:grid;place-items:center;background:var(--teal);color:var(--near);
  box-shadow:0 12px 34px -8px rgba(67,183,178,.6);transition:transform .3s var(--ease),background .3s}
.wa-fab:hover{transform:scale(1.08);background:var(--teal-bright)}
.wa-fab::before{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid var(--teal);
  animation:waring 2.4s ease-out infinite}
@keyframes waring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.7);opacity:0}}

/* ============================================================================
   REDUCED MOTION — everything lands in its final state
   ============================================================================ */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero__kicker,.hero__sub,.hero__actions,.hero__trust,.hero__cue{opacity:1;transform:none}
  .hero__line .ch{transform:none;opacity:1}
  .hero__glow{animation:none;opacity:.6}
  body::after{animation:none}
  .hero__kicker .dot,.wa-fab::before,.hero__cue i{animation:none}
  .reveal{opacity:1;visibility:visible;transform:none}
  .pain__lead .w{opacity:1}
  .dr__title .w{clip-path:none;opacity:1;transform:none;transition:none}
  .dr__frame img{clip-path:none;opacity:1}
  .dr__glow{animation:none;opacity:.5}
  .dr__scan{display:none}
  .proc__num{color:var(--teal-bright)}
  .proc__glow,.proc__cap .dot{animation:none}
  .cmp__stage{clip-path:none}
  .cmp__chev{animation:none}
  .struct__title .w{clip-path:none;opacity:1;transform:none;transition:none}
  .struct__frame img{clip-path:none;opacity:1}
  .cta__title .w{transform:none;opacity:1;transition:none}
  .cta__glow{animation:none;opacity:.6}
  .cta__eyebrow .dot{animation:none}
  .trt__feat .trt__shot img{clip-path:none;opacity:1}
  .trt__info{opacity:1;transform:none}
  .trt__lab{opacity:1;transform:none}
  .trt__glow{animation:none;opacity:.5}
}
