/* ═══════════════════════════════════════════════════════════
   Óptica Opção — folha de estilo única
   Paleta: tinta navy · papel quente · creme da marca · latão
   ═══════════════════════════════════════════════════════════ */

:root{
  --ink:        #0E1A2B;
  --ink-2:      #16263C;
  --ink-soft:   #3A4A5F;
  --muted:      #66748A;

  --paper:      #FAF7F0;
  --paper-2:    #F2ECE0;
  --white:      #FFFFFF;
  --cream:      #FFF3D7;
  --brass:      #A9853F;

  --line:       color-mix(in srgb, var(--ink) 12%, transparent);
  --line-soft:  color-mix(in srgb, var(--ink) 7%, transparent);
  --line-dark:  color-mix(in srgb, var(--cream) 16%, transparent);

  --sans: "Instrument Sans", ui-sans-serif, -apple-system, "Segoe UI", Roboto, sans-serif;
  --serif:"Fraunces", ui-serif, Georgia, "Times New Roman", serif;

  --wrap: 1180px;
  --gut:  clamp(20px, 5vw, 56px);
  --sec:  clamp(72px, 11vw, 148px);

  --r-s: 10px;
  --r-m: 18px;
  --r-l: 28px;

  --ease: cubic-bezier(.22,.61,.36,1);
  --shadow: 0 1px 2px rgba(14,26,43,.05), 0 12px 32px -14px rgba(14,26,43,.18);
  --shadow-lg: 0 2px 6px rgba(14,26,43,.06), 0 40px 70px -34px rgba(14,26,43,.32);
}

*,*::before,*::after{ box-sizing:border-box; }

/* o atributo hidden tem de vencer qualquer display declarado depois */
[hidden]{ display:none !important; }

html{ scroll-behavior:smooth; scroll-padding-top:96px; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:clamp(15.5px,.42vw + 14.4px,17px);
  line-height:1.65;
  font-synthesis-weight:none;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

/* textura de papel: grão finíssimo, quase subliminar */
body::before{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
h1,h2,h3{ margin:0; font-family:var(--serif); font-weight:400; letter-spacing:-.02em; line-height:1.06; }
p{ margin:0 0 1em; }
ul{ margin:0; padding:0; list-style:none; }

::selection{ background:var(--ink); color:var(--cream); }

:focus-visible{
  outline:2px solid var(--brass);
  outline-offset:3px;
  border-radius:4px;
}

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gut); position:relative; z-index:1; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:99;
  background:var(--ink); color:var(--cream); padding:12px 18px; border-radius:0 0 var(--r-s) 0;
}
.skip:focus{ left:0; }

/* ─────────────── tipografia de secção ─────────────── */

.eyebrow{
  display:flex; align-items:center; gap:.6em;
  margin:0 0 1.1em;
  font-size:.735rem; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted);
}
.eyebrow .dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--brass); flex:none;
}
.center .eyebrow{ justify-content:center; }

h1{ font-size:clamp(2.9rem,7.2vw,5rem); font-variation-settings:"opsz" 120,"SOFT" 0,"WONK" 0; }
h1 em{ font-style:italic; font-variation-settings:"opsz" 120,"WONK" 1; color:var(--brass); }
h2{ font-size:clamp(2rem,4.4vw,3.15rem); font-variation-settings:"opsz" 90; }
h3{ font-size:1.16rem; letter-spacing:-.01em; font-variation-settings:"opsz" 20; }

.sec-head{ max-width:44ch; margin-bottom:clamp(40px,5vw,68px); }
.sec-head.center{ margin-inline:auto; text-align:center; }
.sec-lede{ margin-top:1.1em; color:var(--ink-soft); font-size:1.04rem; max-width:52ch; }
.center .sec-lede{ margin-inline:auto; }

.section{ padding-block:var(--sec); position:relative; }
.section-alt{ background:var(--paper-2); }
.section-dark{ background:var(--ink); color:var(--cream); }

/* ─────────────── botões ─────────────── */

.btn{
  --bh: 52px;
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  min-height:var(--bh); padding:0 1.55em;
  border:1px solid transparent; border-radius:999px;
  font:inherit; font-size:.94rem; font-weight:500; letter-spacing:.005em;
  text-decoration:none; cursor:pointer; white-space:nowrap;
  transition:transform .28s var(--ease), background-color .28s var(--ease),
             color .28s var(--ease), border-color .28s var(--ease), box-shadow .28s var(--ease);
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }
.btn .ico{ width:1.15em; height:1.15em; fill:currentColor; flex:none; }

.btn-solid{ background:var(--ink); color:var(--cream); box-shadow:var(--shadow); }
.btn-solid:hover{ background:var(--ink-2); box-shadow:var(--shadow-lg); }

.btn-ghost{ border-color:var(--line); color:var(--ink); background:transparent; }
.btn-ghost:hover{ border-color:var(--ink); background:color-mix(in srgb,var(--ink) 4%,transparent); }

.btn-sm{ --bh:42px; padding:0 1.2em; font-size:.875rem; }
.btn-block{ width:100%; }

/* ─────────────── header ─────────────── */

.site-header{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb,var(--paper) 78%,transparent);
  backdrop-filter:blur(14px) saturate(1.4);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease), background-color .3s var(--ease);
}
.site-header.is-stuck{
  border-bottom-color:var(--line-soft);
  background:color-mix(in srgb,var(--paper) 92%,transparent);
}

.header-inner{
  display:flex; align-items:center; gap:clamp(16px,3vw,44px);
  min-height:76px;
}

.brand{ display:block; flex:none; line-height:0; }
.brand img{ width:auto; height:34px; }

.nav{
  display:flex; align-items:center; gap:clamp(14px,2.1vw,30px);
  margin-inline:auto;
  font-size:.925rem;
}
.nav a{
  position:relative; text-decoration:none; color:var(--ink-soft);
  padding-block:4px; transition:color .25s var(--ease);
}
.nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0;
  height:1px; background:var(--brass);
  transition:right .35s var(--ease);
}
.nav a:hover{ color:var(--ink); }
.nav a:hover::after{ right:0; }

.header-actions{ display:flex; align-items:center; gap:12px; margin-left:auto; }

.burger{
  display:none;
  width:42px; height:42px; padding:0;
  border:1px solid var(--line); border-radius:999px;
  background:transparent; cursor:pointer;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.burger span{
  display:block; width:16px; height:1.5px; background:var(--ink); border-radius:2px;
  transition:transform .3s var(--ease), opacity .2s var(--ease);
}
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

/* ─────────────── hero ─────────────── */

.hero{
  padding-top:clamp(48px,7vw,86px);
  padding-bottom:clamp(20px,2.4vw,34px);
  position:relative; overflow:hidden;
}
/* a faixa de números já separa o herói do que vem a seguir */
.hero + .section{ padding-top:clamp(52px,6vw,88px); }
/* halo suave, como luz atravessando uma lente */
.hero::before{
  content:""; position:absolute; z-index:0;
  top:-22%; right:-14%; width:min(760px,84vw); aspect-ratio:1;
  background:radial-gradient(circle at 50% 50%,
    color-mix(in srgb,var(--brass) 15%,transparent) 0%,
    transparent 66%);
  filter:blur(14px); pointer-events:none;
}

.hero-grid{
  display:grid; grid-template-columns:1fr .88fr;
  gap:clamp(32px,5vw,72px); align-items:center;
  margin-bottom:clamp(56px,7vw,96px);
}

.hero-copy .lede{
  margin-top:1.35em; max-width:46ch;
  font-size:clamp(1.02rem,.5vw + .92rem,1.15rem);
  color:var(--ink-soft);
}
.hero-cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:2.1em; }

.hero-media{ margin:0; position:relative; }
.hero-media img{
  width:100%; aspect-ratio:4/5; object-fit:cover; object-position:52% 28%;
  /* arco — o mesmo gesto da barra do logótipo */
  border-radius:min(50vw,320px) min(50vw,320px) var(--r-l) var(--r-l);
  box-shadow:var(--shadow-lg);
}

.badge{
  position:absolute; left:clamp(-8px,-1.6vw,-24px); bottom:clamp(20px,3vw,38px);
  display:flex; align-items:center; gap:.85em;
  max-width:min(300px,82%);
  padding:14px 20px 14px 16px;
  background:var(--white); border:1px solid var(--line-soft); border-radius:var(--r-m);
  box-shadow:var(--shadow);
  font-size:.8rem; line-height:1.35; color:var(--ink-soft);
}
.badge strong{
  font-family:var(--serif); font-size:1.9rem; font-weight:500;
  color:var(--brass); line-height:1; font-variation-settings:"opsz" 40;
}
.badge small{ color:var(--muted); font-size:.72rem; }

/* estatísticas */
.stats{
  display:grid; grid-template-columns:repeat(3,1fr); margin:0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.stat{ padding:clamp(24px,3vw,34px) clamp(18px,2.4vw,34px) clamp(24px,3vw,34px) 0; }
.stat + .stat{ border-left:1px solid var(--line); padding-left:clamp(18px,2.4vw,34px); }
.stat dt{
  font-family:var(--serif); font-size:clamp(1.75rem,3vw,2.5rem);
  font-variation-settings:"opsz" 60; letter-spacing:-.025em; line-height:1;
}
.stat dd{ margin:.6em 0 0; color:var(--muted); font-size:.9rem; max-width:26ch; }

/* ─────────────── cards de serviço ─────────────── */

.cards{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(272px,1fr));
  gap:clamp(20px,2.6vw,34px);
}
.card{
  background:var(--white); border:1px solid var(--line-soft);
  border-radius:var(--r-l); padding:14px 14px 26px;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:transparent; }
.card-img{ overflow:hidden; border-radius:var(--r-m); background:var(--paper-2); }
.card-img img{
  width:100%; aspect-ratio:16/10; object-fit:cover;
  transition:transform .7s var(--ease); transform-origin:center 45%;
}
.card:hover .card-img img{ transform:scale(1.055); }
.card h3{ margin:22px 4px 0; }
.card p{ margin:.65em 4px 0; color:var(--muted); font-size:.925rem; }

/* ─────────────── quem somos ─────────────── */

.about{
  display:grid; grid-template-columns:.92fr 1fr;
  gap:clamp(34px,5.5vw,84px); align-items:center;
}
.about-media{ margin:0; }
.about-media picture{ display:block; position:relative; }
.about-media picture::before{
  content:""; position:absolute; inset:26% -20px -20px 26%;
  border:1px solid var(--brass); border-radius:var(--r-l);
  opacity:.3; z-index:0;
}
.about-media img{
  position:relative; z-index:1;
  width:100%; aspect-ratio:5/4; object-fit:cover; object-position:center 22%;
  border-radius:var(--r-l); box-shadow:var(--shadow);
}
.about-media figcaption{
  position:relative; z-index:1;
  margin-top:26px; font-size:.82rem; color:var(--muted);
}
.about-copy p{ color:var(--ink-soft); max-width:56ch; }
.about-copy h2 + p{ margin-top:1.3em; }
.about-copy strong{ font-weight:600; color:var(--ink); }

.ticks{ margin-top:2em; display:grid; gap:.7em; }
.ticks li{
  position:relative; padding-left:1.9em;
  font-size:.94rem; color:var(--ink-soft);
}
.ticks li::before{
  content:""; position:absolute; left:0; top:.52em;
  width:11px; height:6px; border-left:1.5px solid var(--brass); border-bottom:1.5px solid var(--brass);
  transform:rotate(-45deg);
}

/* ─────────────── marcas ─────────────── */

.marquee{
  margin-top:clamp(8px,2vw,20px);
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
}
.marquee-track{ display:flex; width:max-content; animation:slide 46s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
@keyframes slide{ to{ transform:translateX(-50%); } }

.brands{ display:flex; align-items:center; }
.brands li{ padding-inline:clamp(26px,4vw,58px); }
.brands img{
  width:auto; height:clamp(34px,4.4vw,46px); opacity:.42;
  transition:opacity .35s var(--ease);
}
.brands li:hover img{ opacity:.9; }

/* ─────────────── depoimentos ─────────────── */

.section-dark .eyebrow{ color:color-mix(in srgb,var(--cream) 62%,transparent); }
.section-dark .eyebrow .dot{ background:var(--cream); }
.section-dark h2{ color:var(--cream); }

.quotes{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:clamp(18px,2.4vw,26px);
}
.quote{
  display:flex; flex-direction:column;
  padding:clamp(24px,2.8vw,32px);
  border:1px solid var(--line-dark); border-radius:var(--r-l);
  background:color-mix(in srgb,var(--cream) 4%,transparent);
  transition:background-color .4s var(--ease), border-color .4s var(--ease);
}
.quote:hover{
  background:color-mix(in srgb,var(--cream) 8%,transparent);
  border-color:color-mix(in srgb,var(--cream) 30%,transparent);
}
.stars{ color:var(--cream); font-size:.82rem; letter-spacing:.22em; opacity:.75; }
.quote blockquote{
  margin:.95em 0 0; flex:1;
  font-family:var(--serif); font-size:1.09rem; line-height:1.45;
  font-variation-settings:"opsz" 30,"SOFT" 20;
  color:color-mix(in srgb,var(--cream) 94%,white);
}
.quote cite{
  margin-top:1.6em; display:flex; flex-direction:column; gap:.15em;
  font-style:normal; font-size:.85rem;
  color:color-mix(in srgb,var(--cream) 82%,transparent);
}
.quote cite span{ font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:color-mix(in srgb,var(--cream) 46%,transparent); }

/* ─────────────── perguntas frequentes ─────────────── */

.faq{
  display:grid; grid-template-columns:.82fr 1fr;
  gap:clamp(34px,5.5vw,80px); align-items:start;
}
.faq-head{ position:sticky; top:112px; }
.faq-head .sec-lede{ margin-bottom:2em; font-size:.98rem; }

.faq-list{ border-top:1px solid var(--line); }

.faq-item{
  border-bottom:1px solid var(--line);
}
.faq-item summary{
  display:flex; align-items:flex-start; gap:20px;
  padding:22px 0;
  cursor:pointer; list-style:none;
  font-size:1.04rem; font-weight:500; line-height:1.4;
  transition:color .25s var(--ease);
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary:hover{ color:var(--brass); }
.faq-item summary span{ flex:1; }

/* sinal de mais que vira menos */
.faq-item summary::after{
  content:""; flex:none;
  width:13px; height:13px; margin-top:.42em;
  background:
    linear-gradient(var(--brass),var(--brass)) center/13px 1.5px no-repeat,
    linear-gradient(var(--brass),var(--brass)) center/1.5px 13px no-repeat;
  transition:background-size .35s var(--ease), transform .35s var(--ease);
}
/* aberto: a barra vertical encolhe e o mais vira um menos */
.faq-item[open] summary::after{
  background-size:13px 1.5px, 1.5px 0;
  transform:rotate(180deg);
}
.faq-item[open] summary{ color:var(--brass); }

.faq-a{
  padding:0 44px 26px 0;
  animation:faq-in .4s var(--ease) both;
}
.faq-a p{
  margin:0; max-width:58ch;
  color:var(--ink-soft); font-size:.96rem;
}
.faq-a p + p{ margin-top:.95em; }
@keyframes faq-in{
  from{ opacity:0; transform:translateY(-6px); }
  to{ opacity:1; transform:none; }
}

/* ─────────────── contato ─────────────── */

.contact{
  display:grid; grid-template-columns:1fr .82fr;
  gap:clamp(34px,5.5vw,80px); align-items:start;
}
.info{ margin-top:2.4em; display:grid; gap:0; }
.info li{
  display:grid; grid-template-columns:118px 1fr; gap:16px;
  padding-block:16px; border-top:1px solid var(--line-soft);
  font-size:.95rem; color:var(--ink-soft);
}
.info li:last-child{ border-bottom:1px solid var(--line-soft); }
.info-label{
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); padding-top:.35em;
}
.info a{ text-decoration:none; border-bottom:1px solid var(--line); transition:border-color .25s var(--ease); }
.info a:hover{ border-color:var(--brass); }

.contact-form-wrap{
  background:var(--white); border:1px solid var(--line-soft);
  border-radius:var(--r-l); padding:clamp(24px,3vw,38px);
  box-shadow:var(--shadow);
}
.form-intro{ font-size:.9rem; color:var(--muted); margin-bottom:1.6em; }
.field{ margin-bottom:18px; }
.field label{
  display:block; margin-bottom:7px;
  font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
}
.field .opt{ text-transform:none; letter-spacing:0; font-size:.8rem; }
.field input, .field textarea{
  width:100%; padding:13px 15px;
  font:inherit; font-size:.96rem; color:var(--ink);
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-s);
  transition:border-color .25s var(--ease), background-color .25s var(--ease);
}
.field textarea{ resize:vertical; min-height:110px; }
.field input:focus, .field textarea:focus{
  outline:none; border-color:var(--ink); background:var(--white);
}
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"]{ border-color:#B4432F; }
.form-note{ margin:1em 0 0; font-size:.85rem; color:var(--muted); min-height:1.4em; }
.form-note.err{ color:#B4432F; }

#contato{ padding-bottom:0; }
.map{
  margin-top:clamp(48px,6vw,84px);
  height:clamp(300px,42vw,440px);
  border-top:1px solid var(--line);
}
.map iframe{
  width:100%; height:100%; border:0; display:block;
  filter:grayscale(1) contrast(.92) opacity(.86);
  transition:filter .5s var(--ease);
}
.map:hover iframe{ filter:grayscale(0) contrast(1) opacity(1); }

/* ─────────────── rodapé ─────────────── */

.site-footer{
  background:var(--ink); color:color-mix(in srgb,var(--cream) 72%,transparent);
  padding-top:clamp(56px,7vw,88px);
  font-size:.92rem;
}
.footer-grid{
  display:grid; grid-template-columns:1.5fr repeat(3,1fr);
  gap:clamp(28px,4vw,52px);
  padding-bottom:clamp(30px,3.6vw,46px);
}
.footer-brand img{ width:auto; height:40px; margin-bottom:20px; }
.footer-brand p{ max-width:30ch; color:color-mix(in srgb,var(--cream) 58%,transparent); }
/* faixa própria, centrada, entre a grelha e a barra legal */
.footer-social{
  display:flex; justify-content:center;
  padding-bottom:clamp(28px,3.4vw,42px);
}
.footer-col h3{
  font-family:var(--sans); font-size:.74rem; font-weight:600;
  letter-spacing:.15em; text-transform:uppercase;
  color:color-mix(in srgb,var(--cream) 45%,transparent);
  margin-bottom:1em;
}
.footer-col p{ margin:0; line-height:1.85; }
.footer-col a{ text-decoration:none; transition:color .25s var(--ease); }
.footer-col a:hover{ color:var(--cream); }

.footer-bottom{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:10px clamp(20px,3vw,36px);
  padding-block:24px; text-align:center;
  border-top:1px solid var(--line-dark);
  font-size:.82rem; color:color-mix(in srgb,var(--cream) 48%,transparent);
}
.footer-bottom p{ margin:0; }
.footer-bottom .credit{ margin-left:0; }
.footer-bottom .credit a{ color:color-mix(in srgb,var(--cream) 72%,transparent); text-decoration:none; }
.footer-bottom .credit a:hover{ color:var(--cream); }

.social{ display:flex; gap:8px; }
.social a{
  display:grid; place-items:center; width:36px; height:36px;
  border:1px solid var(--line-dark); border-radius:999px;
  transition:background-color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
.social a:hover{ background:var(--cream); border-color:var(--cream); transform:translateY(-2px); }
.social svg{ width:16px; height:16px; fill:currentColor; }
.social a:hover svg{ fill:var(--ink); }

/* ─────────────── WhatsApp flutuante ─────────────── */

.wa-float{
  position:fixed; right:clamp(16px,2.4vw,28px); bottom:clamp(16px,2.4vw,28px);
  z-index:60;
  display:grid; place-items:center; width:56px; height:56px;
  background:#1FA855; color:#fff; border-radius:999px;
  box-shadow:0 10px 28px -8px rgba(31,168,85,.7);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.wa-float svg{ width:28px; height:28px; fill:currentColor; }
.wa-float:hover{ transform:scale(1.07); box-shadow:0 14px 34px -8px rgba(31,168,85,.8); }

/* ─────────────── banner de cookies ─────────────── */

.ck{
  position:fixed; z-index:70;
  left:clamp(12px,2vw,24px); right:clamp(12px,2vw,24px);
  bottom:clamp(12px,2vw,24px);
  display:flex; justify-content:center;
  opacity:0; transform:translateY(14px);
  transition:opacity .32s var(--ease), transform .32s var(--ease);
  pointer-events:none;
}
.ck.aberto{ opacity:1; transform:none; pointer-events:auto; }

.ck-card{
  width:100%; max-width:760px;
  display:flex; flex-wrap:wrap; align-items:flex-start; gap:18px clamp(20px,3vw,34px);
  padding:clamp(20px,2.6vw,26px) clamp(22px,3vw,30px);
  background:var(--white);
  border:1px solid var(--line); border-radius:var(--r-l);
  box-shadow:var(--shadow-lg);
}
.ck-corpo{ flex:1 1 320px; min-width:0; }
.ck-titulo{
  margin:0 0 .5em;
  font-family:var(--sans); font-size:1rem; font-weight:600; letter-spacing:-.005em;
  color:var(--ink);
}
.ck-texto{ margin:0; font-size:.88rem; line-height:1.6; color:var(--muted); }
.ck-texto a{ color:var(--ink); text-decoration:underline; text-underline-offset:2px; }

.ck-opcoes{ margin-top:18px; display:grid; gap:12px; }
.ck-op{ display:flex; align-items:flex-start; gap:11px; cursor:pointer; font-size:.85rem; }
.ck-op-fixa{ cursor:default; opacity:.62; }
.ck-op input{ margin:2px 0 0; accent-color:var(--ink); width:15px; height:15px; flex:none; }
.ck-op span{ color:var(--muted); line-height:1.5; }
.ck-op strong{ display:block; color:var(--ink); font-weight:600; margin-bottom:1px; }

.ck-acoes{
  flex:0 0 auto; display:flex; flex-wrap:wrap; align-items:center; gap:9px;
  margin-left:auto;
}
.ck-link{
  padding:6px 4px; border:0; background:none; cursor:pointer;
  font:inherit; font-size:.85rem; color:var(--muted);
  text-decoration:underline; text-underline-offset:3px;
  transition:color .25s var(--ease);
}
.ck-link:hover{ color:var(--ink); }

@media (max-width:640px){
  .ck-card{ flex-direction:column; }
  .ck-acoes{ margin-left:0; width:100%; }
  .ck-acoes .btn{ flex:1 1 auto; justify-content:center; }
  .ck-link{ width:100%; text-align:center; }
}

/* ─────────────── páginas de texto ─────────────── */

.legal{ padding-block:clamp(56px,7vw,96px); }
.legal-wrap{ max-width:760px; }
.legal h1{
  font-size:clamp(2.1rem,4.6vw,3rem); font-variation-settings:"opsz" 90;
  margin-bottom:.35em;
}
.legal .atualizado{ font-size:.85rem; color:var(--muted); margin-bottom:2.8em; }
.legal h2{
  font-size:clamp(1.3rem,2.2vw,1.6rem); font-variation-settings:"opsz" 40;
  margin:2.4em 0 .7em; padding-top:1.6em; border-top:1px solid var(--line-soft);
}
.legal h2:first-of-type{ border-top:0; padding-top:0; margin-top:0; }
.legal h3{ font-family:var(--sans); font-size:.95rem; font-weight:600; margin:1.8em 0 .5em; }
.legal p, .legal li{ color:var(--ink-soft); font-size:.97rem; }
.legal a{ color:var(--ink); text-decoration:underline; text-underline-offset:2px; }
.legal ul{ margin:0 0 1em; display:grid; gap:.5em; }
.legal ul li{ position:relative; padding-left:1.3em; }
.legal ul li::before{
  content:""; position:absolute; left:.15em; top:.62em;
  width:5px; height:5px; border-radius:50%; background:var(--brass);
}
.legal .aviso{
  margin:1.6em 0; padding:18px 22px;
  background:var(--paper-2); border-radius:var(--r-m);
  font-size:.9rem;
}
.legal .aviso p:last-child{ margin-bottom:0; }

.tabela-wrap{ overflow-x:auto; margin:1.4em 0 1.8em; }
.legal table{
  width:100%; min-width:520px; border-collapse:collapse; font-size:.88rem;
}
.legal th, .legal td{
  text-align:left; vertical-align:top;
  padding:12px 14px 12px 0; border-bottom:1px solid var(--line-soft);
}
.legal th{
  font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); font-weight:500; border-bottom-color:var(--line);
}
.legal td{ color:var(--ink-soft); }
.legal td code{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:.86em; color:var(--ink);
}

.legal-topo{ border-bottom:1px solid var(--line-soft); }

.footer-legal{ display:flex; gap:clamp(14px,2vw,22px); flex-wrap:wrap; }
.footer-legal a{ text-decoration:none; transition:color .25s var(--ease); }
.footer-legal a:hover{ color:var(--cream); }

/* ─────────────── revelações ─────────────── */

.reveal{
  opacity:0; transform:translateY(18px);

  transition:opacity .8s var(--ease) var(--d,0ms), transform .8s var(--ease) var(--d,0ms);
  will-change:opacity, transform;
}
.reveal.in{ opacity:1; transform:none; }
.cards .reveal:nth-child(n){ transition-delay:calc((var(--i,0)) * 70ms); }

/* ─────────────── responsivo ─────────────── */

@media (max-width:1080px){
  .quotes{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:1000px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-media{ order:-1; max-width:520px; margin-inline:auto; }
  .hero-media img{ aspect-ratio:5/4; border-radius:min(46vw,260px) min(46vw,260px) var(--r-l) var(--r-l); }
  .badge{ left:auto; right:clamp(-6px,-1vw,-16px); }
  .about{ grid-template-columns:1fr; }
  .about-media{ max-width:520px; }
  .contact{ grid-template-columns:1fr; }
  .faq{ grid-template-columns:1fr; }
  .faq-head{ position:static; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}

@media (max-width:880px){
  .nav{
    position:fixed; inset:76px 0 auto;
    flex-direction:column; align-items:stretch; gap:0;
    margin:0; padding:8px var(--gut) 24px;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    box-shadow:var(--shadow-lg);
    transform:translateY(-12px); opacity:0; pointer-events:none;
    transition:opacity .3s var(--ease), transform .3s var(--ease);
  }
  .nav.open{ transform:none; opacity:1; pointer-events:auto; }
  .nav a{ padding:15px 0; border-bottom:1px solid var(--line-soft); font-size:1.02rem; }
  .nav a::after{ display:none; }
  .burger{ display:flex; }

}

@media (max-width:900px){
  .footer-bottom{ flex-direction:column; align-items:center; gap:12px; }
}

@media (max-width:720px){
  .faq-a{ padding-right:0; }
  .quotes{ grid-template-columns:1fr; }
  .stats{ grid-template-columns:1fr; }
  .stat{ padding:22px 0; }
  .stat + .stat{ border-left:0; border-top:1px solid var(--line-soft); padding-left:0; }
  .stat dd{ max-width:none; }
  .info li{ grid-template-columns:1fr; gap:4px; }
  .info-label{ padding-top:0; }
  .footer-grid{ grid-template-columns:1fr; }
}

@media (max-width:430px){
  .header-actions .btn-label{ display:none; }
  .header-actions .btn-sm{ width:42px; padding:0; }
}

@media (max-width:480px){
  .badge{ position:static; max-width:none; margin-top:16px; }
}

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

@media print{
  .site-header,.wa-float,.map,.marquee,.burger{ display:none !important; }
  body{ background:#fff; }
}
