/* ============================================================
   OralBlu — protótipo da home · tokens e fundamentos (spec §2)
   ============================================================ */
:root{
  --cloud-50:#FBFAF7; --cloud-100:#F5F3EE; --cloud-200:#ECE9E1; --line:#E3DFD5;
  --ink-900:#0F2E40; --ink-700:#16425B; --ink-500:#4A6274;
  --blu-500:#3E93B8; --teal-700:#1E6B62; --teal-500:#2A8578; --teal-100:#DFEDE9;
  --amber-500:#F5A93B; --amber-600:#E3941F; --amber-050:#FCF3E2; --coral-400:#F0876A;
  --deep:#12343B;
  --ease:cubic-bezier(.32,.72,0,1);
  --r-card:28px; --r-core:20px;
  --sh-rest:0 1px 2px rgba(15,46,64,.04),0 12px 40px -12px rgba(15,46,64,.10);
  --sh-hover:0 2px 4px rgba(15,46,64,.05),0 24px 64px -16px rgba(15,46,64,.16);
  --font-display:"Sora",system-ui,sans-serif;
  --font-body:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{
  font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;
  color:var(--ink-700);background:var(--cloud-100);
  -webkit-font-smoothing:antialiased;overflow-x:clip;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
h1,h2,h3{font-family:var(--font-display);color:var(--ink-900);font-weight:600;text-wrap:balance}
h1{font-size:clamp(2.375rem,4.6vw,3.75rem);line-height:1.06;letter-spacing:-.02em;font-weight:700}
h2{font-size:clamp(2rem,4vw,3rem);line-height:1.12;letter-spacing:-.015em}
h3{font-size:clamp(1.25rem,2vw,1.5rem);line-height:1.25}
.lead{font-size:1.1875rem;line-height:1.6;color:var(--ink-500);max-width:56ch}
.micro{font-size:.8125rem;color:var(--ink-500)}
.micro em,.foot-legal em{font-style:normal}

/* ícones inline */
svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.stars svg,svg.quote{fill:currentColor;stroke:none}

.container{max-width:1200px;margin-inline:auto;padding-inline:clamp(20px,4vw,48px)}
section{padding-block:clamp(96px,12vh,160px)}

/* acessibilidade */
.skip{position:fixed;top:-100px;left:16px;z-index:200;background:var(--ink-900);color:var(--cloud-50);
  padding:10px 18px;border-radius:999px;transition:top .3s var(--ease)}
.skip:focus{top:16px}
:focus-visible{outline:2px solid var(--ink-900);outline-offset:3px;border-radius:6px}
.btn:focus-visible{outline-offset:4px}

/* eyebrow */
.eyebrow{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;
  padding:5px 14px;font-size:.6875rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  color:var(--teal-700);background:var(--cloud-50);margin-bottom:22px}

/* ============ botões (spec §5.1–5.2) ============ */
.btn{display:inline-flex;align-items:center;gap:12px;border-radius:999px;font-weight:600;
  font-size:1.0625rem;line-height:1;min-height:48px;padding:8px 24px;white-space:nowrap;
  transition:background .5s var(--ease),border-color .5s var(--ease),transform .5s var(--ease),color .5s var(--ease)}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--amber-500);color:var(--ink-900);padding:8px 8px 8px 24px}
.btn-primary:hover{background:var(--amber-600)}
.btn-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;
  background:rgba(15,46,64,.08);transition:transform .5s var(--ease)}
.btn-ico svg{width:17px;height:17px}
.btn-primary:hover .btn-ico{transform:translate(2px,-1px) scale(1.05)}
.btn-ghost{border:1px solid rgba(15,46,64,.18);color:var(--ink-700);background:transparent}
.btn-ghost:hover{background:var(--cloud-50);border-color:var(--ink-500)}
.btn-ghost--light{border-color:rgba(251,250,247,.35);color:var(--cloud-100)}
.btn-ghost--light:hover{background:rgba(251,250,247,.08);border-color:rgba(251,250,247,.6)}
.btn-block{width:100%;justify-content:center;margin-top:20px}
.chip-link{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);
  border-radius:999px;padding:12px 22px;font-weight:600;color:var(--teal-700);background:var(--cloud-50);
  transition:border-color .5s var(--ease),transform .5s var(--ease),box-shadow .5s var(--ease)}
.chip-link svg{width:16px;height:16px}
.chip-link:hover{border-color:var(--teal-500);transform:translateY(-2px);box-shadow:var(--sh-rest)}

/* ============ moldura dupla (spec §2.4) ============ */
.bezel{display:block;background:rgba(236,233,225,.6);border:1px solid rgba(15,46,64,.05);
  padding:8px;border-radius:var(--r-card);box-shadow:var(--sh-rest);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.bezel-core{position:relative;background:var(--cloud-50);border-radius:var(--r-core);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.6);overflow:hidden;height:100%}

/* ============ placeholders de foto (shot list §8) ============ */
.ph{position:relative;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--cloud-200),var(--teal-100))}
.ph--teal{background:linear-gradient(135deg,var(--teal-100),#CFE3DD)}
.ph--blu{background:linear-gradient(135deg,#E4EEF3,var(--teal-100))}
.ph--amber{background:linear-gradient(135deg,var(--amber-050),var(--cloud-200))}
.ph--warm{background:linear-gradient(135deg,var(--cloud-200),#E9E2D2)}
.ph-icon{width:64px;height:64px;color:var(--ink-900);opacity:.1;stroke-width:1.2}
.ph-tag{position:absolute;left:12px;bottom:12px;display:inline-flex;align-items:center;gap:7px;
  background:rgba(251,250,247,.9);color:var(--ink-500);font-size:.75rem;font-weight:500;
  padding:6px 12px;border-radius:999px;max-width:calc(100% - 24px)}
.ph-tag svg{width:14px;height:14px;flex-shrink:0}

/* ============ header — ilha flutuante (spec §4.1) ============ */
.isle{position:fixed;top:20px;left:50%;z-index:100;
  transform:translateX(-50%) translateY(var(--ty,0));
  width:min(1160px,calc(100% - 32px));
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:10px 10px 10px 24px;border-radius:999px;border:1px solid transparent;
  transition:transform .6s var(--ease),background .6s var(--ease),border-color .6s var(--ease),box-shadow .6s var(--ease)}
.isle.scrolled{background:rgba(251,250,247,.85);backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);border-color:var(--line);box-shadow:var(--sh-rest)}
.isle.hide{--ty:-160%}
.brand{font-family:var(--font-display);font-weight:700;font-size:1.375rem;color:var(--ink-900);letter-spacing:-.01em}
.brand span{color:var(--blu-500)}
.isle-nav{display:flex;gap:28px}
.isle-nav a{font-weight:500;font-size:.9375rem;color:var(--ink-700);position:relative;padding:6px 0;
  transition:color .4s var(--ease)}
.isle-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:2px;
  background:var(--teal-500);border-radius:2px;transition:right .5s var(--ease)}
.isle-nav a:hover{color:var(--ink-900)}
.isle-nav a:hover::after{right:0}
.isle-actions{display:flex;align-items:center;gap:18px}
.portal-link{font-size:.875rem;font-weight:500;color:var(--ink-500);transition:color .4s var(--ease)}
.portal-link:hover{color:var(--ink-900)}
.burger{display:none;position:relative;width:44px;height:44px;border-radius:999px;background:var(--cloud-200)}
.burger span{position:absolute;left:12px;right:12px;height:2px;background:var(--ink-900);border-radius:2px;
  transition:transform .5s var(--ease),top .5s var(--ease)}
.burger span:nth-child(1){top:17px}
.burger span:nth-child(2){top:25px}
.burger.open span:nth-child(1){top:21px;transform:rotate(45deg)}
.burger.open span:nth-child(2){top:21px;transform:rotate(-45deg)}

/* menu overlay mobile */
.menu-overlay[hidden]{display:none}
.menu-overlay{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:10px;text-align:center;
  background:rgba(251,250,247,.92);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  opacity:0;transition:opacity .5s var(--ease)}
.menu-overlay.open{opacity:1}
.menu-overlay nav{display:flex;flex-direction:column;gap:10px;margin-bottom:28px}
.menu-overlay a,.menu-overlay .menu-foot{opacity:0;transform:translateY(24px);
  transition:opacity .6s var(--ease),transform .6s var(--ease);
  transition-delay:calc(var(--i,0)*80ms)}
.menu-overlay.open a,.menu-overlay.open .menu-foot{opacity:1;transform:none}
.menu-overlay nav a{font-family:var(--font-display);font-weight:600;color:var(--ink-900);
  font-size:clamp(1.75rem,6vw,2.5rem);line-height:1.3}
.menu-foot{font-size:.875rem;color:var(--ink-500);margin-top:26px}

/* ============ hero (spec §4.2) ============ */
.hero{position:relative;padding-top:clamp(150px,20vh,220px);overflow:clip}
.hero::before{content:"";position:absolute;top:-20%;right:-10%;width:60vw;height:60vw;
  border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(42,133,120,.07),transparent 65%)}
.hero-grid{position:relative;display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:center}
.hero-copy{grid-column:1/7}
.hero-copy h1{margin-bottom:24px}
.hero-copy .lead{margin-bottom:36px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px}
.hero-media{grid-column:7/13;position:relative}
.hero-media .bezel-core{aspect-ratio:4/5}
.float-chip{position:absolute;top:26px;left:-18px;display:inline-flex;align-items:center;gap:9px;
  background:var(--cloud-50);border:1px solid var(--line);border-radius:999px;
  padding:10px 18px;font-size:.875rem;font-weight:600;color:var(--ink-900);box-shadow:var(--sh-rest)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--teal-500);animation:pulse 2.2s var(--ease) infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(42,133,120,.35)}55%{box-shadow:0 0 0 8px rgba(42,133,120,0)}}
.float-card{position:absolute;bottom:30px;right:-16px;display:flex;align-items:center;gap:12px;
  background:var(--cloud-50);border:1px solid var(--line);border-radius:18px;
  padding:14px 18px;font-size:.8125rem;font-weight:600;color:var(--ink-900);box-shadow:var(--sh-hover)}
.float-card small{font-weight:500;color:var(--ink-500)}
.stars{display:inline-flex;gap:3px;color:var(--amber-500)}
.stars svg{width:15px;height:15px}

/* ============ faixa de números (spec §4.3) ============ */
.stats{padding-block:clamp(40px,6vh,72px)}
.stats-row{display:flex;justify-content:space-between;gap:24px}
.stat{flex:1;padding-left:24px;border-left:1px solid var(--line)}
.stat:first-child{border-left:0;padding-left:0}
.stat strong{display:block;font-family:var(--font-display);font-weight:700;color:var(--ink-900);
  font-size:clamp(2.5rem,5vw,4rem);line-height:1.05;letter-spacing:-.02em}
.stat > span{font-size:.9375rem;color:var(--ink-500)}

/* ============ especialidades — bento (spec §4.4) ============ */
.sec-head{max-width:720px;margin-bottom:clamp(40px,6vh,64px)}
.sec-head h2{margin-bottom:18px}
.sec-head--center{margin-inline:auto;text-align:center}
.sec-head--center .lead{margin-inline:auto}
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;grid-auto-rows:minmax(210px,auto)}
.card{position:relative}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh-hover)}
.card--hof{grid-column:1/8;grid-row:1/3}
.card--impl{grid-column:8/13;grid-row:1}
.card--alin{grid-column:8/13;grid-row:2}
.card:nth-child(4){grid-column:1/5}
.card:nth-child(5){grid-column:5/9}
.card:nth-child(6){grid-column:9/13}
.card .bezel-core{display:flex;flex-direction:column}
.card-photo{flex:1;min-height:180px}
.card-body{position:relative;padding:26px 64px 26px 26px}
.card-body h3{margin:14px 0 8px}
.card-body p{color:var(--ink-500);font-size:.9688rem;max-width:44ch}
.disc{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;
  background:var(--teal-100);color:var(--teal-500);flex-shrink:0}
.disc svg{width:26px;height:26px}
.card-arrow{position:absolute;top:22px;right:22px;display:grid;place-items:center;width:38px;height:38px;
  border-radius:50%;background:var(--cloud-200);color:var(--ink-900);transition:transform .5s var(--ease),background .5s var(--ease)}
.card-arrow svg{width:16px;height:16px}
.card:hover .card-arrow{transform:translate(2px,-2px);background:var(--amber-500)}
.espec-more{text-align:center;margin-top:44px}

/* ============ seções "inset" (tech e cta) ============ */
.inset{margin-inline:clamp(8px,1.2vw,16px);border-radius:40px;background:
  linear-gradient(180deg,rgba(223,237,233,.55),rgba(223,237,233,.30))}
.inset-dark{margin-inline:clamp(8px,1.2vw,16px);border-radius:40px;background:var(--deep)}

/* ============ tecnologia (spec §4.5) ============ */
.tech-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.tech-media{grid-column:1/7}
.tech-media .bezel-core{aspect-ratio:4/3.4}
.tech-copy{grid-column:7/13}
.tech-copy h2{margin-bottom:18px}
.tech-copy .lead{margin-bottom:36px}
.steps{position:relative;display:flex;flex-direction:column;gap:26px;margin-bottom:28px}
.steps::before{content:"";position:absolute;left:22px;top:26px;bottom:26px;
  border-left:2px dotted rgba(42,133,120,.4)}
.steps li{position:relative;display:flex;gap:18px}
.step-n{position:relative;z-index:1;display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;
  border-radius:50%;background:var(--teal-100);border:1px solid rgba(42,133,120,.25);
  font-family:var(--font-display);font-weight:600;color:var(--teal-700)}
.steps h3{font-size:1.125rem;margin-bottom:4px}
.steps p{color:var(--ink-500);font-size:.9688rem;max-width:48ch}

/* ============ diferenciais (spec §4.6) ============ */
.why-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.why-aside{grid-column:1/5;position:sticky;top:120px}
.why-aside h2{margin-top:2px}
.why-list{grid-column:5/13}
.why-list li{display:flex;gap:22px;align-items:flex-start;padding-block:30px;border-top:1px solid var(--line)}
.why-list li:first-child{border-top:0;padding-top:6px}
.why-n{font-family:var(--font-display);font-weight:600;font-size:.9375rem;color:var(--blu-500);
  min-width:34px;padding-top:16px}
.why-list h3{margin-bottom:6px}
.why-list p{color:var(--ink-500);max-width:52ch}

/* ============ galeria (spec §4.7) ============ */
.gallery{padding-bottom:clamp(72px,9vh,120px)}
.rail{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding-inline:max(calc((100vw - 1200px)/2 + clamp(20px,4vw,48px)),20px);
  padding-bottom:18px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.rail::-webkit-scrollbar{height:6px}
.rail::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.rail-card{flex:0 0 clamp(240px,28vw,330px);scroll-snap-align:start}
.rail-card .ph{aspect-ratio:3/2.3;border-radius:var(--r-core);overflow:hidden;
  border:1px solid rgba(15,46,64,.05);box-shadow:var(--sh-rest)}
.rail-card figcaption{margin-top:12px;font-size:.875rem;font-weight:500;color:var(--ink-500)}

/* ============ depoimentos (spec §4.8) ============ */
.depo-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  margin-bottom:clamp(36px,5vh,56px)}
.depo-arrows{display:flex;gap:10px}
.arrow{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;
  border:1px solid var(--line);background:var(--cloud-50);color:var(--ink-900);
  transition:background .4s var(--ease),border-color .4s var(--ease),transform .4s var(--ease)}
.arrow svg{width:18px;height:18px}
.arrow:hover{background:var(--amber-500);border-color:var(--amber-500)}
.arrow:active{transform:scale(.94)}
.depo-rail{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 6px 18px;
  scrollbar-width:none}
.depo-rail::-webkit-scrollbar{display:none}
.depo-card{flex:0 0 calc(50% - 12px);scroll-snap-align:start}
.depo-card .bezel-core{display:flex;flex-direction:column;gap:18px;padding:30px;height:100%}
.quote{width:34px;height:34px;color:var(--coral-400)}
blockquote{font-size:1.0938rem;color:var(--ink-700);flex:1}
.depo-card footer{display:flex;align-items:center;gap:14px}
.avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;
  background:var(--teal-100);color:var(--teal-700);font-weight:600;font-size:.875rem}
.depo-card footer strong{display:block;color:var(--ink-900);font-size:.9375rem}
.depo-card footer small{color:var(--ink-500)}
.depo-card--google .bezel-core{align-items:center;justify-content:center;text-align:center;gap:14px}
.depo-card--google p{font-weight:600;color:var(--ink-900);font-size:1.0938rem;max-width:20ch}
.depo-card--google .card-arrow{position:static;background:var(--cloud-200)}
.depo-card--google:hover{transform:translateY(-4px);box-shadow:var(--sh-hover)}
.depo-card--google:hover .card-arrow{background:var(--amber-500);transform:translate(2px,-2px)}
.depo-dots{display:flex;gap:8px;justify-content:center;margin:8px 0 18px}
.depo-dots span{width:26px;height:3px;border-radius:2px;background:var(--line);transition:background .4s var(--ease)}
.depo-dots span.on{background:var(--teal-500)}
.depo .micro{text-align:center}

/* ============ primeira consulta + faq (spec §4.9) ============ */
.first{padding-top:clamp(72px,9vh,120px)}
.first-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:44px}
.first-card{background:var(--cloud-50);border:1px solid var(--line);border-radius:var(--r-core);
  padding:30px 26px}
.first-card h3{font-size:1.125rem;margin:18px 0 8px}
.first-card p{color:var(--ink-500);font-size:.9688rem}
.empathy{font-style:italic;text-align:center;color:var(--teal-700);font-size:1.125rem;
  max-width:52ch;margin:0 auto clamp(56px,8vh,88px)}
.faq{max-width:720px;margin-inline:auto}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:22px 4px;cursor:pointer;font-weight:600;color:var(--ink-900);font-size:1.0625rem;
  list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq-ico{width:18px;height:18px;flex-shrink:0;color:var(--teal-700);
  transition:transform .4s var(--ease)}
.faq details[open] .faq-ico{transform:rotate(45deg)}
.faq details p{padding:0 4px 22px;color:var(--ink-500);max-width:60ch}

/* ============ cta final (spec §4.10) ============ */
.cta-final{color:var(--cloud-100)}
.cta-final h2{color:var(--cloud-50)}
.cta-final .lead{color:rgba(245,243,238,.75)}
.cta-final .micro{color:rgba(245,243,238,.6);margin-top:20px}
.cta-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.cta-copy{grid-column:1/8}
.cta-copy h2{margin-bottom:16px}
.cta-copy .lead{margin-bottom:32px}
.cta-btns{display:flex;flex-wrap:wrap;gap:14px}
.portal{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:44px;padding-top:32px;border-top:1px solid rgba(245,243,238,.14)}
.portal strong{color:var(--cloud-50);font-family:var(--font-display)}
.portal p{color:rgba(245,243,238,.65);font-size:.9375rem}
.is-soon{cursor:default;opacity:.85}
.is-soon em{font-style:normal;font-size:.6875rem;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;background:var(--amber-500);color:var(--ink-900);
  border-radius:999px;padding:3px 9px;margin-left:6px}
.cta-form{grid-column:8/13;background:rgba(251,250,247,.07);border-color:rgba(251,250,247,.14)}
.cta-form .bezel-core{padding:30px;overflow:visible}
.cta-form label{display:block;font-size:.875rem;font-weight:600;color:var(--ink-900);margin:18px 0 8px}
.cta-form label:first-child{margin-top:0}
.cta-form input[type="text"],.cta-form input[type="tel"],.cta-form select{
  width:100%;height:52px;padding:0 16px;border-radius:14px;border:1px solid var(--line);
  background:var(--cloud-100);font:inherit;color:var(--ink-700);
  transition:border-color .4s var(--ease),box-shadow .4s var(--ease)}
.cta-form input:focus,.cta-form select:focus{outline:none;border-color:var(--blu-500);
  box-shadow:0 0 0 4px rgba(62,147,184,.15)}
.lgpd{display:flex!important;gap:12px;align-items:flex-start;margin-top:22px!important;
  font-size:.8125rem!important;font-weight:500!important;color:var(--ink-500)!important;cursor:pointer}
.lgpd input{width:18px;height:18px;margin-top:2px;accent-color:var(--teal-500);flex-shrink:0}
.form-ok{margin-top:16px;font-size:.9375rem;font-weight:600;color:var(--teal-700)}
.form-ok small{display:block;font-weight:500;color:var(--ink-500)}

/* ============ localização (spec §4.11) ============ */
.local-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.local-map{grid-column:1/7}
.local-map .bezel-core{aspect-ratio:4/3}
.local-map:hover{transform:translateY(-4px);box-shadow:var(--sh-hover)}
.local-info{grid-column:7/13}
.local-info h2{margin-bottom:26px}
.local-list{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}
.local-list li{display:flex;gap:14px;align-items:flex-start;color:var(--ink-700)}
.local-list svg{width:21px;height:21px;flex-shrink:0;color:var(--teal-500);margin-top:3px}

/* ============ footer (spec §4.12) ============ */
.footer{background:var(--deep);color:rgba(245,243,238,.75);padding:clamp(64px,9vh,96px) 0 36px;
  margin-top:clamp(24px,4vh,48px)}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:clamp(28px,4vw,56px);
  padding-bottom:48px;border-bottom:1px solid rgba(245,243,238,.12)}
.brand--light{color:var(--cloud-50)}
.foot-brand p{margin:16px 0 22px;font-size:.9375rem;max-width:30ch}
.social{display:flex;gap:10px;flex-wrap:wrap}
.social a{font-size:.8125rem;font-weight:600;border:1px solid rgba(245,243,238,.2);
  border-radius:999px;padding:7px 15px;transition:border-color .4s var(--ease),color .4s var(--ease)}
.social a:hover{border-color:var(--amber-500);color:var(--cloud-50)}
.foot-col h3{font-family:var(--font-display);font-size:.8125rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--cloud-50);margin-bottom:18px}
.foot-col a{display:block;font-size:.9375rem;padding:5px 0;transition:color .4s var(--ease)}
.foot-col a:hover{color:var(--cloud-50)}
.foot-col p{font-size:.875rem;margin-bottom:14px}
.foot-legal{padding-top:28px;font-size:.8125rem;color:rgba(245,243,238,.72)}
.foot-legal p+p{margin-top:8px}
.foot-legal a{text-decoration:underline;text-underline-offset:3px}

/* ============ barra mobile + selo protótipo ============ */
.mobile-bar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));
  z-index:80;display:none;align-items:center;justify-content:center;gap:10px;
  min-height:56px;border-radius:999px;background:var(--amber-500);color:var(--ink-900);
  font-weight:600;box-shadow:var(--sh-hover);
  transform:translateY(140%);transition:transform .6s var(--ease)}
.mobile-bar svg{width:20px;height:20px}
.mobile-bar.show{transform:none}
.proto-badge{position:fixed;left:16px;bottom:16px;z-index:70;font-size:.6875rem;font-weight:600;
  letter-spacing:.06em;color:var(--ink-500);background:rgba(251,250,247,.9);
  border:1px solid var(--line);border-radius:999px;padding:7px 14px;pointer-events:none}

/* ============ página de tratamentos ============ */
.treat-head{padding-top:clamp(150px,20vh,200px);padding-bottom:clamp(32px,5vh,56px)}
.treat-head h1{max-width:18ch;margin-bottom:20px}
.treat-head .lead{margin-bottom:22px}
.notice{display:inline-block;background:var(--amber-050);border:1px solid rgba(227,148,31,.35);
  color:#8A5A10;font-size:.8125rem;font-weight:600;border-radius:999px;padding:7px 16px}
.chips-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.chip-link--sm{padding:9px 16px;font-size:.875rem}
.treat-list{padding-block:clamp(32px,5vh,56px) clamp(48px,7vh,80px)}
.cat-block{padding-block:clamp(36px,5vh,56px);border-top:1px solid var(--line)}
.cat-block:first-child{border-top:0;padding-top:0}
.cat-head{display:flex;align-items:center;gap:18px;margin-bottom:28px}
.cat-head h2{font-size:clamp(1.5rem,2.6vw,2rem)}
.cat-head p{color:var(--ink-500);font-size:.9375rem}
.cat-count{margin-left:auto;font-family:var(--font-display);font-weight:600;font-size:.875rem;
  color:var(--teal-700);background:var(--teal-100);border-radius:999px;padding:6px 14px}
.treat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.treat-card{background:var(--cloud-50);border:1px solid var(--line);border-radius:var(--r-core);
  padding:22px 22px 20px;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease)}
.treat-card:hover{transform:translateY(-3px);box-shadow:var(--sh-rest);border-color:rgba(42,133,120,.35)}
.treat-card h3{font-size:1.0313rem;margin-bottom:6px}
.treat-card p{color:var(--ink-500);font-size:.9063rem;line-height:1.55}
.treat-cta{padding-top:0}
.treat-cta-box{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;
  background:var(--teal-100);border-radius:var(--r-card);padding:clamp(28px,4vw,48px)}
.treat-cta-box h2{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:8px}

/* ============ animações de entrada (spec §2.6) ============ */
html.anim .reveal{opacity:0;transform:translateY(24px);
  transition:opacity .7s var(--ease),transform .7s var(--ease);
  transition-delay:var(--d,0s)}
html.anim .reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
}

/* ============================================================
   RESPONSIVO — colapso ≤ 900px (spec §2.3: 1 coluna, gaps generosos)
   ============================================================ */
@media (max-width:1023px){
  .isle-nav,.portal-link{display:none}
}
@media (max-width:900px){
  section{padding-block:72px}
  .isle{top:12px;padding:8px 8px 8px 20px}
  .isle .btn-primary{display:none}
  .burger{display:block}
  .hero{padding-top:120px}
  .hero-grid,.tech-grid,.why-grid,.cta-grid,.local-grid{grid-template-columns:1fr;gap:32px}
  .hero-copy,.hero-media,.tech-media,.tech-copy,.why-aside,.why-list,
  .cta-copy,.cta-form,.local-map,.local-info{grid-column:auto}
  .hero-media{margin-inline:6px}
  .float-chip{left:-6px;top:16px}
  .float-card{right:-6px;bottom:18px}
  .stats-row{flex-direction:column;gap:22px}
  .stat{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:22px}
  .stat:first-child{border-top:0;padding-top:0}
  .bento{grid-template-columns:1fr;grid-auto-rows:auto}
  .card--hof,.card--impl,.card--alin,.card:nth-child(4),.card:nth-child(5),.card:nth-child(6){
    grid-column:auto;grid-row:auto}
  .why-aside{position:static}
  .depo-card{flex:0 0 86%}
  .first-steps{grid-template-columns:1fr}
  .rail{padding-inline:20px}
  .rail-card{flex:0 0 78%}
  .mobile-bar{display:flex}
  .proto-badge{display:none}
  .inset,.inset-dark{margin-inline:8px;border-radius:24px}
  .depo-head{flex-direction:column;align-items:flex-start}
  .foot-grid{grid-template-columns:1fr;gap:36px}
  .treat-grid{grid-template-columns:1fr}
  .cat-head{flex-wrap:wrap}
  .treat-cta-box{flex-direction:column;align-items:flex-start}
}
@media (min-width:641px) and (max-width:900px){
  .treat-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  body{font-size:1rem}
  .hero-ctas .btn{width:100%;justify-content:center}
  .btn-primary{justify-content:space-between}
  .cta-btns{flex-direction:column;align-items:stretch}
  .cta-btns .btn{justify-content:center}
  .portal{flex-direction:column;align-items:flex-start}
}
