/* =========================================================
   Sonitiva Aparelhos Auditivos — folha de estilo
   Paleta: azul institucional da marca (#1c4b8e) + terracota
   extraída da fachada da loja. Tipografia: Archivo (variável).
   Construído mobile-first, com foco em legibilidade sênior.
   ========================================================= */

/* ---------- 0. Tipografia (Archivo variável, auto-hospedada) ---------- */
@font-face{
  font-family:"Archivo";
  font-style:normal;
  font-weight:400 800;
  font-stretch:75% 125%;
  font-display:swap;
  src:url("../fonts/archivo-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Archivo";
  font-style:normal;
  font-weight:400 800;
  font-stretch:75% 125%;
  font-display:swap;
  src:url("../fonts/archivo-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ---------- 1. Tokens ---------- */
:root{
  /* Azuis da marca */
  --navy-900: oklch(0.238 0.062 258);
  --navy-800: oklch(0.295 0.080 258);
  --navy-700: oklch(0.420 0.122 258);   /* #1c4b8e */
  --navy-600: oklch(0.500 0.130 254);
  --navy-500: oklch(0.593 0.123 250);   /* #3e82c4 */
  --navy-200: oklch(0.855 0.055 245);
  --navy-100: oklch(0.930 0.030 245);
  --navy-050: oklch(0.968 0.014 245);

  /* Terracota da fachada */
  --cta:       oklch(0.545 0.132 42);
  --cta-hover: oklch(0.475 0.128 40);
  --cta-lite:  oklch(0.780 0.115 58);
  --cta-wash:  oklch(0.965 0.018 60);
  --cta-line:  oklch(0.905 0.045 55);

  /* WhatsApp */
  --wa:       oklch(0.530 0.135 152);
  --wa-hover: oklch(0.460 0.125 152);

  /* Texto e superfícies */
  --ink:   oklch(0.245 0.020 258);
  --ink-2: oklch(0.430 0.022 258);
  --ink-3: oklch(0.540 0.020 258);
  --bg:        oklch(0.987 0.003 250);
  --surface:   #fff;
  --surface-2: oklch(0.962 0.007 248);
  --line:      oklch(0.900 0.010 250);
  --line-2:    oklch(0.945 0.008 250);

  /* Sobre fundo escuro */
  --on-navy:   oklch(0.955 0.008 250);
  --on-navy-2: oklch(0.820 0.030 248);
  --on-navy-3: oklch(0.740 0.040 248);

  /* Espaçamento */
  --s1:.5rem; --s2:.75rem; --s3:1rem; --s4:1.5rem; --s5:2rem; --s6:3rem;
  --s7: clamp(3.25rem, 6vw, 5rem);
  --s8: clamp(4.25rem, 8.5vw, 7.5rem);

  --wrap: 1200px;
  --r1:.5rem; --r2:.875rem; --r3:1.25rem; --r4:1.75rem;

  --shadow-1: 0 1px 2px oklch(0.35 0.05 258 / .07), 0 2px 6px oklch(0.35 0.05 258 / .05);
  --shadow-2: 0 4px 10px oklch(0.30 0.05 258 / .07), 0 14px 34px oklch(0.30 0.05 258 / .10);
  --shadow-3: 0 10px 24px oklch(0.25 0.05 258 / .12), 0 30px 70px oklch(0.25 0.05 258 / .18);

  --ease: cubic-bezier(.16,1,.3,1);
  --ease-2: cubic-bezier(.33,1,.68,1);

  /* Escala z semântica */
  --z-sticky: 100;
  --z-fab: 200;
  --z-bar: 210;
  --z-panel: 250;
  --z-head: 300;
  --z-menu: 320;

  --bar-h: 0px;
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{ box-sizing:border-box }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:5.25rem }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto } }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink-2);
  font-family:"Archivo","Segoe UI",system-ui,-apple-system,sans-serif;
  font-size:clamp(1.0625rem, .96rem + .42vw, 1.1875rem);
  line-height:1.62;
  font-variation-settings:"wdth" 100;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,iframe{ max-width:100%; display:block }
img{ height:auto }
button,input,select,textarea{ font:inherit; color:inherit }
h1,h2,h3,h4{ margin:0; color:var(--ink); line-height:1.08; font-weight:700; letter-spacing:-.022em; font-variation-settings:"wdth" 112 }
p{ margin:0 0 var(--s3) }
p:last-child{ margin-bottom:0 }
a{ color:var(--navy-700) }
ul,ol{ margin:0; padding:0; list-style:none }
:focus-visible{ outline:3px solid var(--navy-600); outline-offset:3px; border-radius:4px }
::selection{ background:var(--navy-200); color:var(--navy-900) }

h1{ font-size:clamp(2.35rem, 1.55rem + 3.9vw, 4.5rem); letter-spacing:-.032em; text-wrap:balance }
h2{ font-size:clamp(1.8rem, 1.3rem + 2.2vw, 3rem); letter-spacing:-.028em; text-wrap:balance }
h3{ font-size:clamp(1.2rem, 1.08rem + .6vw, 1.5rem); letter-spacing:-.018em; text-wrap:balance }
h1 em{ font-style:normal; color:var(--cta-lite) }

.skip{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--navy-900); color:#fff; padding:.9rem 1.25rem; border-radius:0 0 var(--r1) 0;
}
.skip:focus{ left:0 }

/* ---------- 3. Layout ---------- */
.wrap{ width:min(100% - 2.25rem, var(--wrap)); margin-inline:auto }
@media (min-width:760px){ .wrap{ width:min(100% - 4rem, var(--wrap)) } }

.sec{ padding-block:var(--s8) }
.sec__head{ max-width:58ch; margin-bottom:var(--s6) }
.sec__head--center{ margin-inline:auto; text-align:center }
.sec__lead{ margin-top:var(--s3); font-size:1.06em; color:var(--ink-2); text-wrap:pretty }
@media (min-width:900px){
  .sec__head--split{
    max-width:none; display:grid; grid-template-columns:1fr 1fr;
    gap:clamp(2rem,4vw,4rem); align-items:end;
  }
  .sec__head--split .sec__lead{ margin-top:0; padding-bottom:.35rem }
}

.kicker{
  margin:0 0 var(--s3);
  font-size:.94rem; font-weight:600; letter-spacing:.01em;
  color:var(--cta); text-transform:none;
}
.kicker strong{ font-weight:700 }

/* ---------- 4. Botões ---------- */
.btn{
  --btn-bg:var(--navy-700); --btn-fg:#fff; --btn-bd:transparent;
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  min-height:3.25rem; padding:.85rem 1.5rem;
  background:var(--btn-bg); color:var(--btn-fg);
  border:2px solid var(--btn-bd); border-radius:var(--r2);
  font-size:1.02rem; font-weight:650; line-height:1.2; letter-spacing:-.005em;
  text-decoration:none; text-align:center; cursor:pointer;
  transition:background-color .22s var(--ease-2), color .22s var(--ease-2),
             border-color .22s var(--ease-2), transform .18s var(--ease-2), box-shadow .22s var(--ease-2);
}
.btn:hover{ transform:translateY(-2px) }
.btn:active{ transform:translateY(0) }
.btn--lg{ min-height:3.75rem; padding:1.05rem 1.9rem; font-size:1.09rem }
.btn--sm{ min-height:2.85rem; padding:.6rem 1.1rem; font-size:.97rem }
.btn--block{ display:flex; width:100% }

.btn--accent{ --btn-bg:var(--cta); box-shadow:0 6px 16px oklch(0.545 0.132 42 / .28) }
.btn--accent:hover{ --btn-bg:var(--cta-hover); box-shadow:0 10px 24px oklch(0.545 0.132 42 / .34) }

.btn--ghost{ --btn-bg:transparent; --btn-fg:#fff; --btn-bd:oklch(1 0 0 / .38) }
.btn--ghost:hover{ --btn-bg:oklch(1 0 0 / .1); --btn-bd:oklch(1 0 0 / .7) }

.btn--outline{ --btn-bg:transparent; --btn-fg:var(--navy-700); --btn-bd:var(--navy-200) }
.btn--outline:hover{ --btn-bg:var(--navy-700); --btn-fg:#fff; --btn-bd:var(--navy-700) }

.btn--wa{ --btn-bg:var(--wa) }
.btn--wa:hover{ --btn-bg:var(--wa-hover) }

.btn[disabled]{ opacity:.62; cursor:progress; transform:none }

/* ---------- 5. Cabeçalho ---------- */
.site-head{
  position:sticky; top:0; z-index:var(--z-head);
  background:oklch(1 0 0 / .93);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line-2);
}
.site-head__in{ display:flex; align-items:center; gap:var(--s3); min-height:4.5rem }
.brand{ display:flex; align-items:center; flex:0 0 auto; min-height:2.75rem; padding-block:.35rem }
.brand img{ width:auto; height:2.15rem }

.site-nav{ display:none }
.site-head__acts{ margin-left:auto; display:flex; align-items:center; gap:.6rem }

.head-tel{ display:none; align-items:center; gap:.55rem; text-decoration:none; color:var(--ink) }
.head-tel svg{ width:1.35rem; height:1.35rem; fill:var(--navy-700); flex:0 0 auto }
.head-tel span{ display:flex; flex-direction:column; line-height:1.15 }
.head-tel small{ font-size:.74rem; color:var(--ink-3); font-weight:500 }
.head-tel strong{ font-size:1.02rem; font-weight:700; letter-spacing:-.01em }
.head-tel:hover strong{ color:var(--navy-700) }

.burger{
  width:3rem; height:3rem; display:grid; place-content:center; gap:5px;
  background:none; border:1px solid var(--line); border-radius:var(--r1); cursor:pointer;
}
.burger span{ display:block; width:20px; height:2px; background:var(--ink); border-radius:2px;
  transition:transform .3s var(--ease), opacity .2s linear }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg) }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0 }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg) }

.menu-mobile{
  border-top:1px solid var(--line-2); background:var(--surface);
  padding:var(--s2) 0 var(--s4);
  box-shadow:var(--shadow-2);
}
.menu-mobile[hidden]{ display:none }
.menu-mobile a{
  display:block; padding:.95rem 1.35rem; color:var(--ink); text-decoration:none;
  font-weight:600; border-bottom:1px solid var(--line-2);
}
.menu-mobile a:last-child{ border-bottom:0 }
.menu-mobile__tel{ color:var(--navy-700) !important }

@media (min-width:600px){
  .head-tel{ display:flex }
}
@media (min-width:1040px){
  .site-head__in{ min-height:5.25rem; gap:var(--s5) }
  .brand img{ height:2.5rem }
  .site-nav{ display:flex; gap:1.65rem; margin-left:var(--s4) }
  .site-nav a{
    color:var(--ink-2); text-decoration:none; font-weight:560; font-size:1rem;
    padding-block:.4rem; border-bottom:2px solid transparent; transition:color .2s, border-color .2s;
  }
  .site-nav a:hover{ color:var(--navy-700); border-bottom-color:var(--cta) }
  .burger{ display:none }
  .menu-mobile{ display:none !important }
}

/* ---------- 6. Hero ---------- */
.hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(78% 62% at 88% 8%, oklch(0.42 0.12 252 / .55), transparent 62%),
    radial-gradient(64% 54% at 4% 96%, oklch(0.38 0.10 268 / .42), transparent 60%),
    var(--navy-900);
  color:var(--on-navy-2);
  padding-block:var(--s7) var(--s8);
}
.hero::after{
  content:""; position:absolute; inset:auto 0 0 0; height:1px;
  background:linear-gradient(90deg,transparent,oklch(1 0 0 / .18),transparent);
}
.hero .kicker{ color:var(--cta-lite) }
.hero h1{ color:#fff; margin-bottom:var(--s4) }
.hero__sub{ font-size:1.12em; color:var(--on-navy-2); max-width:34ch; text-wrap:pretty }
.hero__sub strong{ color:#fff; font-weight:650 }

.hero__list{ margin:var(--s5) 0; display:grid; gap:.85rem }
.hero__list li{
  position:relative; padding-left:2.1rem; color:var(--on-navy-2); font-size:1rem; line-height:1.45;
}
.hero__list li::before{
  content:""; position:absolute; left:0; top:.15rem; width:1.4rem; height:1.4rem; border-radius:50%;
  background:oklch(0.78 0.115 58 / .16);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11'/%3E%3C/svg%3E") center/contain no-repeat;
}
.hero__list li::after{
  content:""; position:absolute; left:.33rem; top:.5rem; width:.72rem; height:.42rem;
  border-left:2.5px solid var(--cta-lite); border-bottom:2.5px solid var(--cta-lite);
  transform:rotate(-45deg);
}

.hero__cta{ display:grid; gap:.75rem; margin-bottom:var(--s5) }
.hero__trust{ display:grid; gap:.7rem; padding-top:var(--s4); border-top:1px solid oklch(1 0 0 / .14) }
.rating{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; font-size:.98rem; color:var(--on-navy-2) }
.rating strong{ color:#fff }
.stars{ display:inline-flex; gap:2px }
.stars svg{ width:1.15rem; height:1.15rem; fill:oklch(0.82 0.155 82) }
.hero__addr{ margin:0; font-size:.95rem; color:var(--on-navy-3) }

.hero__media{ position:relative; margin:var(--s6) 0 0; border-radius:var(--r4); overflow:visible }
.hero__media img{
  width:100%; aspect-ratio:5/4; object-fit:cover; object-position:62% 28%;
  border-radius:var(--r4);
  box-shadow:0 24px 60px oklch(0.15 0.05 258 / .5);
}
.hero__badge{
  position:absolute; left:1rem; bottom:1rem;
  background:var(--cta); color:#fff;
  padding:.7rem 1.1rem; border-radius:var(--r2);
  box-shadow:0 12px 28px oklch(0.20 0.06 40 / .45);
  display:grid; line-height:1.1;
}
.hero__badge strong{ font-size:1.5rem; font-weight:750; font-variation-settings:"wdth" 112 }
.hero__badge span{ font-size:.82rem; opacity:.94 }

@media (min-width:900px){
  .hero{ padding-block:var(--s8) }
  .hero__grid{ display:grid; grid-template-columns:1.06fr .94fr; gap:clamp(2.5rem,5vw,5rem); align-items:center }
  .hero__cta{ grid-auto-flow:column; justify-content:start; gap:1rem }
  .hero__media{ margin:0 }
  .hero__media img{ aspect-ratio:4/5; object-position:58% 25% }
  .hero__badge{ left:1.5rem; bottom:1.5rem }
}

/* ---------- 7. Sinais ---------- */
.sinais{ background:var(--surface) }
.sinais__grid{ display:grid; gap:var(--s6) }
.sinais__list{ display:grid; gap:1.15rem; align-content:start }
.sinais__list li{
  display:grid; gap:.3rem;
  padding:1.15rem 1.25rem 1.15rem 3.4rem;
  background:var(--surface-2); border-radius:var(--r2);
  font-size:.99rem; color:var(--ink-2); line-height:1.5;
  position:relative;
}
.sinais__list li span{
  display:block; font-size:1.09rem; font-weight:680; color:var(--ink);
  letter-spacing:-.012em; line-height:1.28; font-variation-settings:"wdth" 104;
}
.sinais__list li em{ font-style:normal; color:var(--cta); font-weight:700 }
.sinais__list li::before{
  content:""; position:absolute; left:1.15rem; top:1.5rem;
  width:1.15rem; height:1.15rem; border-radius:50%;
  border:2px solid var(--cta); background:var(--cta-wash);
}

.sinais__aside{ border-radius:var(--r3); overflow:hidden; background:var(--navy-900); box-shadow:var(--shadow-2) }
.sinais__aside img{ width:100%; aspect-ratio:16/10; object-fit:cover; object-position:60% 40% }
.sinais__note{ padding:var(--s4) }
.sinais__note p{ color:var(--on-navy-2); font-size:1.02rem; margin-bottom:var(--s4) }
.sinais__note strong{ color:#fff }

@media (min-width:940px){
  .sinais__grid{ grid-template-columns:1.15fr .85fr; gap:var(--s6); align-items:start }
  .sinais__list{ grid-template-columns:1fr 1fr }
  .sinais__aside{ position:sticky; top:7rem }
}
@media (min-width:1120px){
  .sinais__list{ grid-template-columns:1fr }
}

/* ---------- 8. Passos ---------- */
.passos{
  background:
    radial-gradient(70% 60% at 15% 0%, oklch(0.40 0.11 255 / .5), transparent 60%),
    var(--navy-900);
  color:var(--on-navy-2);
}
.passos h2,.passos h3{ color:#fff }
.passos .sec__lead{ color:var(--on-navy-2) }

.passos__list{ display:grid; gap:1.25rem; counter-reset:p }
.passos__list li{
  position:relative; padding:var(--s5) var(--s4) var(--s4);
  background:oklch(1 0 0 / .045); border:1px solid oklch(1 0 0 / .11);
  border-radius:var(--r3);
}
.passos__n{
  display:inline-grid; place-content:center; width:3rem; height:3rem; margin-bottom:1rem;
  background:var(--cta); color:#fff; border-radius:50%;
  font-size:1.35rem; font-weight:750; font-variation-settings:"wdth" 112;
}
.passos__list h3{ margin-bottom:.55rem }
.passos__list p{ color:var(--on-navy-2); font-size:1rem }

.passos__foto{ margin:var(--s6) 0 0; border-radius:var(--r3); overflow:hidden; box-shadow:var(--shadow-3) }
.passos__foto img{ width:100%; aspect-ratio:16/9; object-fit:cover }

.passos__cta{
  margin-top:var(--s6); padding:var(--s5);
  background:oklch(1 0 0 / .06); border:1px solid oklch(1 0 0 / .13);
  border-radius:var(--r3);
  display:grid; gap:var(--s4); align-items:center;
}
.passos__cta p{ font-size:1.05rem; color:var(--on-navy-2); margin:0 }
.passos__cta strong{ color:#fff }

@media (min-width:820px){
  .passos__list{ grid-template-columns:repeat(3,1fr) }
  .passos__cta{ grid-template-columns:1fr auto; gap:var(--s5) }
}

/* ---------- 9. Linhas Starkey ---------- */
.linhas{ background:var(--bg) }
.linhas__grid{ display:grid; gap:var(--s4) }

.linha{
  background:var(--surface); border:1px solid var(--line-2); border-radius:var(--r3);
  overflow:hidden; box-shadow:var(--shadow-1);
  transition:box-shadow .3s var(--ease-2), transform .3s var(--ease-2);
}
.linha:hover{ box-shadow:var(--shadow-2); transform:translateY(-3px) }
.linha__media{ position:relative; background:var(--navy-900); overflow:hidden }
.linha__foto{ width:100%; height:100%; aspect-ratio:16/9; object-fit:cover }
.linha__prod{
  position:absolute; right:.85rem; bottom:.85rem;
  width:clamp(5rem,20%,7.5rem); height:auto; aspect-ratio:1; object-fit:contain;
  padding:.5rem; border-radius:var(--r2);
  background:oklch(1 0 0 / .94);
  box-shadow:0 6px 18px oklch(0.25 0.05 258 / .3);
}

.tag{
  position:absolute; top:.9rem; left:.9rem;
  background:oklch(1 0 0 / .95); color:var(--navy-700);
  padding:.34rem .75rem; border-radius:100px;
  font-size:.8rem; font-weight:700; letter-spacing:.005em;
  box-shadow:var(--shadow-1);
}
.tag--novo{ background:var(--cta); color:#fff }

.linha__body{ padding:var(--s4) }
.linha__body h3{ font-size:clamp(1.45rem,1.2rem + 1.1vw,1.9rem); margin-bottom:.3rem }
.linha__para{ color:var(--cta); font-weight:650; font-size:1.02rem; margin-bottom:var(--s3) }
.linha__body p{ font-size:1rem }

.linha__body .btn{ margin-top:var(--s1) }
.linha__body .btn{ display:flex; width:100% }
@media (min-width:1080px){ .linha__body .btn{ display:inline-flex; width:auto } }
.specs{ display:grid; gap:.55rem; margin:var(--s4) 0; padding-top:var(--s4); border-top:1px solid var(--line-2) }
.specs li{ position:relative; padding-left:1.65rem; font-size:.96rem; color:var(--ink-2); line-height:1.45 }
.specs li::before{
  content:""; position:absolute; left:.15rem; top:.52rem; width:.62rem; height:.34rem;
  border-left:2.5px solid var(--cta); border-bottom:2.5px solid var(--cta); transform:rotate(-45deg);
}

@media (min-width:760px){
  .linhas__grid{ grid-template-columns:repeat(2,1fr); gap:var(--s5) }
}
@media (min-width:1080px){
  .linha{ display:grid; grid-template-columns:.9fr 1.1fr }
  .linha__foto{ height:100%; aspect-ratio:auto; min-height:24rem }
  .linhas__grid{ grid-template-columns:1fr }
  .linha:nth-child(even) .linha__media{ order:2 }
  .linha__body{ padding:var(--s6) var(--s5) }
}

/* ---------- 10. Tecnologia ---------- */
.tech{ background:var(--navy-900); color:var(--on-navy-2); overflow:hidden }
.tech h2{ color:#fff; margin-bottom:var(--s4) }
.tech__grid{ display:grid; gap:var(--s6) }
.tech__media{ margin:0; border-radius:var(--r3); overflow:hidden }
.tech__media img{ width:100%; aspect-ratio:5/4; object-fit:cover }
.tech__copy p{ font-size:1.04rem; text-wrap:pretty }

.tech__stats{ display:grid; gap:var(--s4); margin:var(--s5) 0 var(--s5) }
.tech__stats div{ padding-top:1rem; border-top:1px solid oklch(1 0 0 / .16) }
.tech__stats dt{
  font-size:clamp(2rem,1.5rem + 2vw,2.9rem); font-weight:750; color:var(--cta-lite);
  letter-spacing:-.03em; line-height:1; font-variation-settings:"wdth" 108;
}
.tech__stats dd{ margin:.4rem 0 0; font-size:.95rem; color:var(--on-navy-3); line-height:1.4 }

@media (min-width:900px){
  .tech__grid{ grid-template-columns:.92fr 1.08fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:center }
  .tech__stats{ grid-template-columns:repeat(3,1fr); gap:var(--s4) }
}

/* ---------- 11. Formatos ---------- */
.formatos{ background:var(--surface) }
.formatos__grid{ display:grid; gap:var(--s4) }

.fmt{
  display:grid; gap:0; grid-template-rows:auto 1fr;
  border:1px solid var(--line-2); border-radius:var(--r3); overflow:hidden;
  background:var(--surface);
}
.fmt__imgs{ position:relative; background:var(--surface-2) }
.fmt__ear{ width:100%; aspect-ratio:16/10; object-fit:cover }
.fmt__prod{
  position:absolute; right:.75rem; bottom:.75rem; width:4.5rem; height:auto;
  filter:drop-shadow(0 6px 14px oklch(0.30 0.03 258 / .35));
}
.fmt__body{ padding:var(--s4) }
.fmt__body h3{ display:flex; align-items:baseline; gap:.55rem; flex-wrap:wrap; margin-bottom:.6rem }
.fmt__body h3 span{
  font-size:.78rem; font-weight:700; letter-spacing:.05em;
  color:var(--navy-700); background:var(--navy-050);
  border:1px solid var(--navy-100); padding:.2rem .55rem; border-radius:100px;
  font-variation-settings:"wdth" 100;
}
.fmt__body p{ font-size:.98rem }
.fmt__para{ margin-top:var(--s3); padding-top:var(--s3); border-top:1px solid var(--line-2); color:var(--ink-2) }
.fmt__para strong{ color:var(--cta) }

.formatos__cta{
  margin-top:var(--s6); padding:var(--s5);
  background:var(--cta-wash); border:1px solid var(--cta-line); border-radius:var(--r3);
  display:grid; gap:var(--s4); align-items:center; text-align:center;
}
.formatos__cta p{ margin:0; font-size:1.08rem; color:var(--ink) }

@media (min-width:700px){
  .formatos__grid{ grid-template-columns:repeat(auto-fit,minmax(300px,1fr)) }
  .fmt__prod{ width:5.25rem }
  .formatos__cta{ grid-template-columns:1fr auto; text-align:left }
}

/* ---------- 12. Dúvidas ---------- */
.duvidas{ background:var(--surface-2) }
.duvidas__grid{ display:grid; gap:var(--s6) }
.duvidas__intro h2{ margin-bottom:var(--s3) }
.duvidas__intro p{ margin-bottom:var(--s4) }

.faq{ display:grid; gap:.65rem }
.faq details{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r2);
  overflow:hidden; transition:border-color .25s var(--ease-2), box-shadow .25s var(--ease-2);
}
.faq details[open]{ border-color:var(--navy-200); box-shadow:var(--shadow-1) }
.faq summary{
  list-style:none; cursor:pointer; position:relative;
  padding:1.15rem 3.35rem 1.15rem 1.35rem;
  font-size:1.06rem; font-weight:650; color:var(--ink); line-height:1.35;
  letter-spacing:-.012em; font-variation-settings:"wdth" 104;
}
.faq summary::-webkit-details-marker{ display:none }
.faq summary::after{
  content:""; position:absolute; right:1.3rem; top:1.5rem;
  width:.72rem; height:.72rem; border-right:2.5px solid var(--cta); border-bottom:2.5px solid var(--cta);
  transform:rotate(45deg); transition:transform .3s var(--ease);
}
.faq details[open] summary::after{ transform:rotate(-135deg); top:1.75rem }
.faq summary:hover{ color:var(--navy-700) }
.faq__a{ padding:0 1.35rem 1.35rem; font-size:.99rem }
.faq__a p+p{ margin-top:.85rem }

@media (min-width:960px){
  .duvidas__grid{ grid-template-columns:.9fr 1.1fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:start }
  .duvidas__intro{ position:sticky; top:7rem }
}

/* ---------- 13. A Sonitiva ---------- */
.sonitiva{ background:var(--bg) }
.sonitiva__grid{ display:grid; gap:var(--s6) }
.sonitiva__foto{ margin:0; border-radius:var(--r3); overflow:hidden; box-shadow:var(--shadow-2) }
.sonitiva__foto img{ width:100%; aspect-ratio:4/3; object-fit:cover; object-position:50% 40% }
.sonitiva__copy h2{ margin-bottom:var(--s4) }

.feats{ display:grid; gap:var(--s4); margin:var(--s5) 0 }
.feats li{ padding-top:1.1rem; border-top:1px solid var(--line) }
.feats h3{ font-size:1.12rem; margin-bottom:.35rem }
.feats p{ font-size:.97rem; margin:0 }

@media (min-width:900px){
  .sonitiva__grid{ grid-template-columns:.85fr 1.15fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:start }
  .sonitiva__foto img{ aspect-ratio:3/4 }
  .sonitiva__foto{ position:sticky; top:7rem }
  .feats{ grid-template-columns:1fr 1fr; gap:var(--s5) var(--s5) }
}

/* ---------- 14. Depoimentos ---------- */
.depo{ background:var(--surface) }
.depo__grid{ display:grid; gap:var(--s4); align-items:start }
@media (min-width:680px){ .depo__grid{ grid-template-columns:repeat(2,1fr) } }
@media (min-width:1040px){ .depo__grid{ grid-template-columns:repeat(3,1fr) } }
.depo blockquote{
  margin:0; background:var(--surface-2); border-radius:var(--r3); padding:var(--s4);
}
.depo blockquote p{ font-size:1rem; color:var(--ink); line-height:1.58; text-wrap:pretty }
.depo cite{
  display:block; margin-top:var(--s3); padding-top:var(--s3);
  border-top:1px solid var(--line); font-style:normal; font-weight:680;
  color:var(--navy-700); font-size:.95rem;
}
.depo cite::after{ content:" · Google"; font-weight:500; color:var(--ink-3) }



/* ---------- 15. Agendar + formulários ---------- */
.agendar{
  background:
    radial-gradient(70% 55% at 90% 0%, oklch(0.40 0.11 255 / .45), transparent 62%),
    var(--navy-900);
  color:var(--on-navy-2);
}
.agendar__grid{ display:grid; gap:var(--s6) }
.agendar h2{ color:#fff; margin-bottom:var(--s4) }
.agendar .kicker{ color:var(--cta-lite) }
.agendar__lead{ font-size:1.06rem; color:var(--on-navy-2); text-wrap:pretty }

.agendar__list{ display:grid; gap:.7rem; margin:var(--s5) 0 }
.agendar__list li{ position:relative; padding-left:1.9rem; font-size:1rem; color:var(--on-navy-2) }
.agendar__list li::before{
  content:""; position:absolute; left:.15rem; top:.55rem; width:.68rem; height:.38rem;
  border-left:2.5px solid var(--cta-lite); border-bottom:2.5px solid var(--cta-lite); transform:rotate(-45deg);
}

.agendar__contato{ display:grid; gap:.9rem; padding-top:var(--s4); border-top:1px solid oklch(1 0 0 / .15) }
.linha-contato{ display:flex; align-items:flex-start; gap:.75rem; min-height:2.75rem; padding-block:.3rem; text-decoration:none; color:var(--on-navy-2) }
.linha-contato svg{ width:1.35rem; height:1.35rem; fill:var(--cta-lite); flex:0 0 auto; margin-top:.2rem }
.linha-contato span{ display:grid; line-height:1.3 }
.linha-contato small{ font-size:.8rem; color:var(--on-navy-3) }
.linha-contato strong{ color:#fff; font-weight:650; font-size:1rem }
.linha-contato:hover strong{ color:var(--cta-lite) }

.card-form{
  background:var(--surface); color:var(--ink-2);
  border-radius:var(--r3); padding:var(--s5) var(--s4);
  box-shadow:var(--shadow-3);
}
.card-form h3{ font-size:clamp(1.35rem,1.15rem + .9vw,1.7rem); margin-bottom:.5rem }
.card-form__sub{ font-size:.96rem; color:var(--ink-3); margin-bottom:var(--s4) }

.form{ display:grid; gap:1rem }
.form--compact{ gap:.8rem }
.field{ display:grid; gap:.35rem }
.field label{ font-size:.94rem; font-weight:640; color:var(--ink) }
.field input{
  width:100%; min-height:3.4rem; padding:.8rem 1rem;
  background:var(--surface); color:var(--ink);
  border:1.5px solid var(--line); border-radius:var(--r1);
  font-size:1.0625rem; /* >=16px evita zoom automático no iOS */
  transition:border-color .2s, box-shadow .2s;
}
.field input::placeholder{ color:oklch(0.615 0.015 258) }
.field input:hover{ border-color:var(--navy-200) }
.field input:focus{ outline:none; border-color:var(--navy-600); box-shadow:0 0 0 3px oklch(0.50 0.13 254 / .18) }
.field input[aria-invalid="true"]{ border-color:var(--cta); background:var(--cta-wash) }
.err{ font-size:.85rem; color:var(--cta); font-weight:600; min-height:0 }
.err:empty{ display:none }

.check{ display:flex; gap:.7rem; align-items:flex-start; font-size:.93rem; color:var(--ink-2); cursor:pointer; line-height:1.4 }
.check input{
  width:1.35rem; height:1.35rem; margin:.1rem 0 0; flex:0 0 auto;
  accent-color:var(--navy-700); border-radius:3px;
}
.check.is-erro{ color:var(--cta); font-weight:600 }
.check.is-erro input{ outline:2.5px solid var(--cta); outline-offset:2px }

.form__legal{ margin:0; font-size:.89rem; color:var(--ink-3); text-align:center; line-height:1.45 }
.form__status{ font-size:.95rem; font-weight:600 }
.form__status:empty{ display:none }
.form__status[data-tone="ok"]{ color:var(--wa) }
.form__status[data-tone="erro"]{ color:var(--cta) }

.form-ok{ display:grid; gap:.75rem; text-align:center; padding:var(--s4) 0 }
.form-ok__icon{
  width:3.75rem; height:3.75rem; margin:0 auto; border-radius:50%;
  background:var(--wa); display:grid; place-content:center;
}
.form-ok__icon::after{
  content:""; width:1.35rem; height:.75rem; border-left:3.5px solid #fff; border-bottom:3.5px solid #fff;
  transform:rotate(-45deg) translate(2px,-3px);
}
.form-ok h4{ margin:0; font-size:1.35rem; color:var(--ink); font-variation-settings:"wdth" 110 }
.form-ok p{ font-size:1rem; color:var(--ink-2) }

.mapa{ margin-top:var(--s7); border-radius:var(--r3); overflow:hidden; box-shadow:var(--shadow-3) }
.mapa iframe{ width:100%; height:22rem; border:0; display:block; filter:grayscale(.18) }

@media (min-width:940px){
  .agendar__grid{ grid-template-columns:1fr .92fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:start }
  .card-form{ padding:var(--s6) var(--s5) }
  .mapa iframe{ height:26rem }
}

/* ---------- 16. Rodapé ---------- */
.site-foot{
  background:var(--navy-900); color:var(--on-navy-3);
  padding-block:var(--s7) calc(var(--s5) + 5.25rem + env(safe-area-inset-bottom));
}
@media (min-width:900px){ .site-foot{ padding-bottom:var(--s5) } }
.site-foot__grid{ display:grid; gap:var(--s6) }
.site-foot__logo{ height:2.6rem; width:auto; margin-bottom:var(--s3); filter:brightness(0) invert(1) }
.site-foot p{ font-size:.96rem; line-height:1.6 }
.site-foot h3{ color:#fff; font-size:1.05rem; margin-bottom:var(--s3) }
.site-foot nav{ display:grid; gap:.15rem; align-content:start }
.site-foot nav a{ display:flex; align-items:center; min-height:2.6rem; color:var(--on-navy-3); text-decoration:none; font-size:.98rem }
.site-foot nav a:hover{ color:var(--cta-lite) }
.site-foot address{ font-style:normal; font-size:.98rem; line-height:1.65; margin-bottom:var(--s3) }
.site-foot__link{ display:flex; align-items:center; min-height:2.75rem; color:#fff; text-decoration:none; font-weight:650 }
.site-foot__link:hover{ color:var(--cta-lite) }
.site-foot .btn{ margin-top:var(--s3) }

.site-foot__social{ display:flex; gap:.6rem; margin-top:var(--s4) }
.site-foot__social a{
  width:2.65rem; height:2.65rem; display:grid; place-content:center;
  border:1px solid oklch(1 0 0 / .2); border-radius:var(--r1);
  transition:background-color .2s, border-color .2s;
}
.site-foot__social svg{ width:1.2rem; height:1.2rem; fill:var(--on-navy-2) }
.site-foot__social a:hover{ background:var(--cta); border-color:var(--cta) }
.site-foot__social a:hover svg{ fill:#fff }

.site-foot__base{
  margin-top:var(--s6); padding-top:var(--s4); border-top:1px solid oklch(1 0 0 / .13);
  display:grid; gap:.5rem; font-size:.89rem; color:oklch(0.72 0.03 250); line-height:1.5;
}
@media (min-width:820px){
  .site-foot__grid{ grid-template-columns:1.35fr .8fr 1fr; gap:var(--s6) }
}

/* ---------- 17. Barra fixa + WhatsApp ---------- */
.barra-fixa{
  position:fixed; left:0; right:0; bottom:0; z-index:var(--z-bar);
  display:grid; grid-template-columns:auto 1fr; gap:.6rem; align-items:center;
  padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom));
  background:oklch(1 0 0 / .95); backdrop-filter:blur(14px) saturate(180%);
  border-top:1px solid var(--line);
  box-shadow:0 -6px 24px oklch(0.30 0.05 258 / .12);
  transform:translateY(110%); transition:transform .35s var(--ease);
}
.barra-fixa.is-on{ transform:translateY(0) }
.barra-fixa__tel{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.15rem;
  min-width:4.6rem; min-height:3.25rem; padding:.4rem .7rem;
  color:var(--navy-700); text-decoration:none; font-size:.78rem; font-weight:680;
  border:1.5px solid var(--navy-200); border-radius:var(--r2);
}
.barra-fixa__tel svg{ width:1.25rem; height:1.25rem; fill:var(--navy-700) }
.barra-fixa .btn{ min-height:3.25rem }
@media (min-width:900px){ .barra-fixa{ display:none } }

.wa-fab{
  position:fixed; right:1rem; z-index:var(--z-fab);
  bottom:calc(1rem + env(safe-area-inset-bottom) + var(--bar-h));
  display:flex; align-items:center; gap:.6rem;
  height:3.75rem; padding:0 1.25rem 0 1.05rem;
  background:var(--wa); color:#fff; border:0; border-radius:100px; cursor:pointer;
  box-shadow:0 8px 22px oklch(0.45 0.13 152 / .42);
  font-weight:680; font-size:1rem;
  transition:background-color .22s var(--ease-2), transform .22s var(--ease-2), box-shadow .22s var(--ease-2);
}
.wa-fab svg{ width:1.65rem; height:1.65rem; fill:#fff; flex:0 0 auto }
.wa-fab__label{ display:none }
.wa-fab:hover{ background:var(--wa-hover); transform:translateY(-2px); box-shadow:0 12px 28px oklch(0.45 0.13 152 / .5) }
.wa-fab.is-hidden{ opacity:0; visibility:hidden; transform:scale(.85) }
@media (min-width:900px){
  .wa-fab{ right:1.75rem; bottom:1.75rem }
  .wa-fab__label{ display:inline }
}

.wa-panel{
  position:fixed; right:1rem; z-index:var(--z-panel);
  bottom:calc(1rem + env(safe-area-inset-bottom) + var(--bar-h));
  width:min(22.5rem, calc(100vw - 2rem));
  max-height:min(36rem, calc(100dvh - 7.5rem));
  overflow:auto; overscroll-behavior:contain;
  background:var(--surface); border-radius:var(--r3);
  box-shadow:var(--shadow-3);
  transform-origin:bottom right;
  animation:wa-in .34s var(--ease) both;
}
.wa-panel[hidden]{ display:none }
@keyframes wa-in{ from{ opacity:0; transform:translateY(14px) scale(.96) } to{ opacity:1; transform:none } }
.wa-panel__head{
  display:flex; align-items:center; gap:var(--s3);
  padding:1rem 1.1rem; background:var(--wa); color:#fff;
}
.wa-panel__head div{ display:grid; line-height:1.25 }
.wa-panel__head strong{ font-size:1.02rem }
.wa-panel__head small{ font-size:.82rem; opacity:.88 }
.wa-panel__close{
  margin-left:auto; width:2.3rem; height:2.3rem; display:grid; place-content:center;
  background:oklch(1 0 0 / .16); border:0; border-radius:50%; cursor:pointer;
}
.wa-panel__close svg{ width:1.05rem; height:1.05rem; fill:#fff }
.wa-panel__close:hover{ background:oklch(1 0 0 / .3) }
.wa-panel__body{ padding:1.1rem }
.wa-panel__msg{
  background:var(--surface-2); border-radius:var(--r2) var(--r2) var(--r2) .25rem;
  padding:.8rem .95rem; font-size:.93rem; line-height:1.45;
  color:var(--ink-2); margin-bottom:var(--s3);
}
@media (min-width:900px){ .wa-panel{ right:1.75rem; bottom:1.75rem } }

/* ---------- 18. Modal ---------- */
.modal{
  width:min(60rem, calc(100vw - 1.5rem));
  max-height:calc(100dvh - 1.5rem);
  padding:0; border:0; border-radius:var(--r3);
  background:var(--surface); color:var(--ink-2);
  box-shadow:var(--shadow-3);
  overflow:visible;
}
.modal::backdrop{ background:oklch(0.18 0.04 258 / .68); backdrop-filter:blur(3px) }
.modal[open]{ animation:modal-in .38s var(--ease) both; display:grid }
.modal[open]::backdrop{ animation:fade-in .3s ease both }
@keyframes modal-in{ from{ opacity:0; transform:translateY(20px) scale(.97) } to{ opacity:1; transform:none } }
@keyframes fade-in{ from{ opacity:0 } to{ opacity:1 } }

.modal__inner,.modal[open]{ grid-template-columns:1fr }
.modal{ max-height:calc(100dvh - 1.5rem); overflow-y:auto; overscroll-behavior:contain }

.modal__close{
  position:absolute; top:.65rem; right:.65rem; z-index:2;
  width:2.85rem; height:2.85rem; display:grid; place-content:center;
  background:oklch(1 0 0 / .92); border:1px solid var(--line); border-radius:50%; cursor:pointer;
  box-shadow:var(--shadow-1);
}
.modal__close svg{ width:1.15rem; height:1.15rem; fill:var(--ink) }
.modal__close:hover{ background:var(--surface-2) }

.modal__aside{
  background:
    radial-gradient(80% 70% at 100% 0%, oklch(0.42 0.12 252 / .6), transparent 62%),
    var(--navy-900);
  color:var(--on-navy-2); padding:var(--s5) var(--s4);
}
.modal__aside h2{ color:#fff; font-size:clamp(1.5rem,1.2rem + 1.6vw,2.1rem); margin-bottom:var(--s4) }
.modal__aside .kicker{ color:var(--cta-lite) }
.modal__aside ul{ display:grid; gap:.65rem }
.modal__aside li{ position:relative; padding-left:1.85rem; font-size:.98rem }
.modal__aside li::before{
  content:""; position:absolute; left:.15rem; top:.5rem; width:.66rem; height:.36rem;
  border-left:2.5px solid var(--cta-lite); border-bottom:2.5px solid var(--cta-lite); transform:rotate(-45deg);
}
.modal__aside-foot{
  margin-top:var(--s4); padding-top:var(--s4); border-top:1px solid oklch(1 0 0 / .16);
  font-size:.88rem; color:var(--on-navy-3);
}
.modal__form{ padding:var(--s5) var(--s4) }
.modal__form h3{ font-size:1.5rem; margin-bottom:.4rem }

@media (min-width:880px){
  .modal[open]{ grid-template-columns:.85fr 1.15fr }
  .modal__aside{ padding:var(--s6) var(--s5); border-radius:var(--r3) 0 0 var(--r3) }
  .modal__form{ padding:var(--s6) var(--s5) }
  .modal__close{ top:1rem; right:1rem }
}
@media (max-width:879px){
  .modal__aside ul{ display:none }
  .modal__aside-foot{ display:none }
  .modal__aside{ padding:var(--s5) var(--s4) var(--s4) }
  .modal__aside h2{ margin-bottom:0 }
}

body.is-locked{ overflow:hidden }

/* ---------- 19. Movimento ---------- */
.reveal{ opacity:1 }
.js-motion .reveal{
  opacity:0; transform:translateY(18px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
  transition-delay:var(--d,0ms);
}
.js-motion .reveal.is-in{ opacity:1; transform:none }

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

/* ---------- 20. Impressão ---------- */
@media print{
  .site-head,.barra-fixa,.wa-fab,.wa-panel,.modal,.mapa{ display:none !important }
  body{ background:#fff; color:#000 }
}

/* =========================================================
   21. Páginas legais (privacidade e cookies)
   Bloco aditivo — não altera nenhuma regra acima.
   ========================================================= */
.legal-hero{
  background:
    radial-gradient(70% 60% at 85% 0%, oklch(0.42 0.12 252 / .5), transparent 62%),
    var(--navy-900);
  color:var(--on-navy-2);
  padding-block:var(--s7) var(--s6);
}
.legal-hero h1{ color:#fff; font-size:clamp(2rem,1.5rem + 2.4vw,3.25rem); margin-bottom:var(--s3) }
.legal-hero .kicker{ color:var(--cta-lite) }
.legal-hero p{ max-width:60ch; color:var(--on-navy-2) }
.legal-hero__meta{
  margin-top:var(--s4); padding-top:var(--s4);
  border-top:1px solid oklch(1 0 0 / .15);
  font-size:.95rem; color:var(--on-navy-3);
}

.legal{ background:var(--surface); padding-block:var(--s7) var(--s8) }
.legal__grid{ display:grid; gap:var(--s6) }
.legal__grid > *{ min-width:0 }

.legal__toc{
  background:var(--surface-2); border-radius:var(--r3); padding:var(--s4);
  align-content:start;
}
.legal__toc h2{ font-size:1.05rem; margin-bottom:var(--s3) }
.legal__toc ol{ counter-reset:t; display:grid; gap:.1rem }
.legal__toc li{ counter-increment:t }
.legal__toc a{
  display:flex; gap:.6rem; align-items:baseline; min-height:2.5rem;
  padding-block:.35rem; color:var(--ink-2); text-decoration:none; font-size:.97rem; line-height:1.35;
}
.legal__toc a::before{ content:counter(t) "."; color:var(--cta); font-weight:700; flex:0 0 auto }
.legal__toc a:hover{ color:var(--navy-700) }

.legal__corpo{ max-width:70ch; min-width:0 }
.legal__corpo section{ margin-bottom:var(--s6); scroll-margin-top:6.5rem }
.legal__corpo h2{
  font-size:clamp(1.3rem,1.15rem + .8vw,1.7rem);
  margin-bottom:var(--s3); padding-top:var(--s3); border-top:2px solid var(--line);
}
.legal__corpo h3{ font-size:1.1rem; margin:var(--s4) 0 .5rem }
.legal__corpo p{ font-size:1.02rem; text-wrap:pretty }
.legal__corpo ul{ display:grid; gap:.7rem; margin:var(--s3) 0 }
.legal__corpo ul li{ position:relative; padding-left:1.6rem; font-size:1.01rem; line-height:1.55 }
.legal__corpo ul li::before{
  content:""; position:absolute; left:.2rem; top:.62rem;
  width:.5rem; height:.5rem; border-radius:50%; background:var(--cta);
}
.legal__corpo a{ color:var(--navy-700); text-underline-offset:3px }
.legal__corpo a:hover{ color:var(--cta) }
.legal__corpo strong{ color:var(--ink) }

.legal__nota{
  background:var(--cta-wash); border:1px solid var(--cta-line);
  border-radius:var(--r2); padding:var(--s4); margin:var(--s4) 0;
}
.legal__nota p{ margin:0; font-size:.99rem }
.legal__nota p + p{ margin-top:.75rem }

.legal__tabela{
  overflow-x:auto; -webkit-overflow-scrolling:touch;
  max-width:100%; margin:var(--s4) 0;
  border:1px solid var(--line); border-radius:var(--r2);
}
.legal__tabela table{ width:100%; border-collapse:collapse; min-width:34rem; font-size:.95rem }
.legal__tabela th,.legal__tabela td{ padding:.8rem .9rem; text-align:left; vertical-align:top; border-bottom:1px solid var(--line-2) }
.legal__tabela thead th{ background:var(--surface-2); color:var(--ink); font-weight:700; white-space:nowrap }
.legal__tabela tbody tr:last-child td{ border-bottom:0 }
.legal__tabela code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.88em;
  background:var(--navy-050); border:1px solid var(--navy-100);
  padding:.1rem .35rem; border-radius:4px; color:var(--navy-700);
}

.legal__contato{
  background:var(--navy-900); color:var(--on-navy-2);
  border-radius:var(--r3); padding:var(--s5);
}
.legal__contato h2{ color:#fff; border:0; padding:0; margin-bottom:var(--s3) }
.legal__contato p{ color:var(--on-navy-2) }
.legal__contato a{ color:var(--cta-lite); font-weight:650 }
.legal__contato a:hover{ color:#fff }

.legal__voltar{
  display:inline-flex; align-items:center; gap:.5rem; min-height:2.75rem;
  color:var(--navy-700); text-decoration:none; font-weight:650;
}
.legal__voltar::before{ content:"←"; font-size:1.1em }
.legal__voltar:hover{ color:var(--cta) }

@media (min-width:960px){
  .legal__grid{ grid-template-columns:.32fr .68fr; gap:clamp(2.5rem,5vw,4rem); align-items:start }
  .legal__toc{ position:sticky; top:6.5rem }
}

/* Link para as políticas ao pé dos formulários */
.form__politica{ margin:0; font-size:.88rem; color:var(--ink-3); text-align:center; line-height:1.9 }
/* padding vertical amplia a área de toque do link sem quebrar a frase */
.form__politica a{ color:var(--navy-700); font-weight:600; padding-block:.85rem; text-underline-offset:3px }
.form__politica a:hover{ color:var(--cta) }

/* Crédito de desenvolvimento */
.site-foot__autor{
  display:inline-flex; align-items:center; min-height:2.75rem;
  color:oklch(0.72 0.03 250); text-decoration:none; font-size:.89rem;
  border-bottom:1px solid oklch(1 0 0 / .18);
  transition:color .2s, border-color .2s;
}
.site-foot__autor:hover{ color:var(--cta-lite); border-bottom-color:var(--cta-lite) }

/* =========================================================
   22. Ícone de aviso do consentmanager
   O CMP (carregado pelo GTM) injeta um selo fixo no canto
   inferior esquerdo com a classe .cmprecallwarning, ligado a
   uma página de aviso da própria consentmanager. Não faz parte
   do site e atrapalha a leitura da primeira dobra.

   Esconde APENAS a variante de aviso. O botão legítimo de
   reabrir o banner de cookies (.cmpboxrecall sem
   .cmprecallwarning) continua funcionando, caso seja ativado
   no painel do CMP.
   ========================================================= */
.cmpboxrecall.cmprecallwarning,
div[class*="cmprecallwarning"]{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* =========================================================
   23. Aviso de cookies (Consent Mode v2)
   ========================================================= */
:root{ --z-consent: 400 }

.ck{
  position:fixed; left:0; right:0; bottom:0; z-index:var(--z-consent);
  background:var(--surface);
  border-top:3px solid var(--cta);
  box-shadow:0 -10px 40px oklch(0.25 0.05 258 / .28);
  padding:var(--s4) 0 calc(var(--s4) + env(safe-area-inset-bottom));
  transform:translateY(110%);
  transition:transform .42s var(--ease);
  max-height:88dvh; overflow-y:auto; overscroll-behavior:contain;
}
.ck.is-on{ transform:translateY(0) }

.ck__in{ width:min(100% - 2.25rem, var(--wrap)); margin-inline:auto; display:grid; gap:var(--s4) }
.ck__txt h2{ font-size:clamp(1.2rem,1.05rem + .7vw,1.5rem); margin-bottom:.5rem }
.ck__txt p{ font-size:1rem; color:var(--ink-2); margin-bottom:.5rem; max-width:70ch }
.ck__link a{ color:var(--navy-700); font-weight:650; text-underline-offset:3px;
  display:inline-flex; align-items:center; min-height:2.5rem }
.ck__link a:hover{ color:var(--cta) }

.ck__opcoes{ display:grid; gap:.7rem; padding:var(--s4); background:var(--surface-2); border-radius:var(--r2) }
.ck__opcoes[hidden]{ display:none }
.ck__op{ display:flex; gap:.85rem; align-items:flex-start; cursor:pointer; padding:.35rem .1rem }
.ck__op input{ width:1.4rem; height:1.4rem; margin:.15rem 0 0; flex:0 0 auto; accent-color:var(--navy-700) }
.ck__op span{ display:grid; gap:.15rem; font-size:.95rem; color:var(--ink-2); line-height:1.45 }
.ck__op strong{ color:var(--ink); font-size:1.02rem; font-weight:680 }
.ck__op--fixa{ cursor:default; opacity:.85 }

.ck__acoes{ display:grid; gap:.7rem }
.ck__acoes .btn{ width:100% }
.ck__mais{
  min-height:3rem; background:none; border:0; cursor:pointer;
  color:var(--navy-700); font-size:1rem; font-weight:650; text-decoration:underline;
  text-underline-offset:4px;
}
.ck__mais:hover{ color:var(--cta) }
.ck__mais[hidden],.ck__acoes .btn[hidden]{ display:none }

@media (min-width:760px){
  .ck__in{ grid-template-columns:1fr auto; align-items:center; gap:var(--s5) }
  .ck__txt{ grid-column:1 }
  .ck__acoes{ grid-column:2; grid-row:1; grid-auto-flow:row; align-content:center; min-width:15rem }
  .ck__opcoes{ grid-column:1 / -1; grid-row:2 }
  .ck.is-aberto .ck__acoes{ grid-row:1 }
}
@media (min-width:1080px){
  .ck__acoes{ grid-template-columns:1fr 1fr; min-width:26rem }
  .ck__mais,.ck__acoes .btn[data-ck="salvar"]{ grid-column:1 / -1 }
}
@media (prefers-reduced-motion: reduce){
  .ck{ transition:none }
}

/* botão "preferências de cookies" no rodapé */
.site-foot__cookies{
  display:inline-flex; align-items:center; min-height:2.75rem;
  background:none; border:0; padding:0; cursor:pointer;
  color:var(--on-navy-3); font-size:.89rem; text-align:left;
  border-bottom:1px solid oklch(1 0 0 / .18);
  transition:color .2s, border-color .2s;
}
.site-foot__cookies:hover{ color:var(--cta-lite); border-bottom-color:var(--cta-lite) }

/* Enquanto o aviso de cookies está aberto, os outros elementos fixos do
   rodapé saem de cena — três camadas empilhadas no celular viram confusão. */
.ck-aberto .wa-fab,
.ck-aberto .wa-panel,
.ck-aberto .barra-fixa{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transition:opacity .2s linear, visibility .2s linear;
}
