/* Vértice Odontologia | style.css
   Mobile-first. Breakpoints: 600px (tablet), 900px (desktop), 1024px (menu dividido), 1280px (wide). */

:root {
  --navy-900: #030B1C;
  --navy-800: #0A1630;
  --navy-700: #12224A;
  --navy-950: #020713;
  --gold: #C9A45C;
  --gold-text: #D4B26E;
  --gold-light: #E7CF96;
  --gold-deep: #8A6A2E;
  --ivory: #F8F4EC;
  --ivory-2: #EFE7D8;
  --paper: #FFFDF8;
  --ink: #0A1630;
  --ink-2: #3A4156;
  --muted: #545B6E;
  --mist: #C9CEDB;
  --mist-2: #9AA3B8;
  --line-gold: rgba(201, 164, 92, .3);
  --grad-gold: linear-gradient(135deg, #EAD49C 0%, #C9A45C 55%, #A9853F 100%);
  --grad-navy: linear-gradient(90deg, #030B1C 0%, #0A1630 62%, #12224A 100%);
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Jost', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --header-h: 74px;
}

/* Reset */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--navy-900); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; }
a { color: var(--gold-deep); }
a:hover { color: var(--ink); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
section[id], footer[id] { scroll-margin-top: 80px; }

/* Utilitários */
.container { position: relative; max-width: 1200px; margin: 0 auto; padding-left: 16px; padding-right: 16px; }
.section { padding: 56px 0; }
.center { text-align: center; }
.marca-v { position: absolute; pointer-events: none; height: auto; opacity: .07; }
.eyebrow { font: 500 13px/1.4 var(--sans); text-transform: uppercase; letter-spacing: .32em; color: var(--gold); }
.titulo-bicolor { margin-top: 12px; font-family: var(--serif); text-transform: uppercase; letter-spacing: .03em; font-size: clamp(32px, 4.2vw, 54px); line-height: 1.05; font-weight: 500; color: var(--gold-text); text-wrap: balance; }
.titulo-bicolor strong { color: var(--ivory); font-weight: 600; }
.lead { margin-top: 14px; font-size: 17px; color: var(--mist); text-wrap: pretty; }
.center .lead { margin-left: auto; margin-right: auto; max-width: 540px; }
.on-light .eyebrow { color: var(--gold-deep); }
.on-light .titulo-bicolor { color: var(--gold-deep); }
.on-light .titulo-bicolor strong { color: var(--ink); }
.on-light .lead { color: var(--ink-2); }
.bg-navy-900 { background: var(--navy-900); }
.bg-navy-800 { background: var(--navy-800); }
.bg-ivory { background: var(--ivory); }
.bg-ivory-2 { background: var(--ivory-2); }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 28px; border-radius: 999px; border: 0; font: 600 16px/1.2 var(--sans); letter-spacing: .02em; text-decoration: none; text-align: center; cursor: pointer; transition: transform .2s, filter .2s, background .2s, color .2s; }
.btn svg { flex: none; }
.btn-gold { background: var(--grad-gold); color: var(--navy-900); box-shadow: 0 12px 30px rgba(201, 164, 92, .25); }
.btn-gold:hover { color: var(--navy-900); filter: brightness(1.08); transform: translateY(-2px); }
.btn-outline { border: 1px solid var(--gold); background: transparent; color: var(--ivory); font-weight: 500; }
.btn-outline:hover { color: var(--ivory); background: rgba(201, 164, 92, .12); }
.btn-outline-gold { border: 1px solid var(--gold); background: transparent; color: var(--gold-light); font-weight: 500; }
.btn-outline-gold:hover { background: var(--gold); color: var(--navy-900); }
.btn-outline-dark { border: 1px solid var(--ink); background: transparent; color: var(--ink); font-weight: 500; min-height: 50px; }
.btn-outline-dark:hover { background: var(--ink); color: var(--gold-light); }
.btn-navy { background: var(--navy-800); color: var(--gold-light); font-weight: 500; }
.btn-navy:hover { background: var(--navy-700); color: var(--gold-light); }
.btn-lg { min-height: 64px; padding: 0 36px; font-size: 18px; }
.btn-block { width: 100%; }

.btn-circular { flex: none; display: flex; align-items: center; justify-content: center; border-radius: 50%; text-align: center; text-decoration: none; cursor: pointer; font: 500 11px/1.3 var(--sans); text-transform: uppercase; letter-spacing: .14em; transition: transform .25s, filter .25s, background .2s, color .2s; }

.chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 999px; border: 1px solid rgba(201, 164, 92, .35); font-size: 14px; color: var(--gold-light); letter-spacing: .04em; text-decoration: none; }
.chip:hover { color: var(--gold-light); }
.chip img { height: 13px; width: auto; }

.ph { display: flex; align-items: center; justify-content: center; background: repeating-linear-gradient(135deg, #F1EADD 0 12px, #E8DFCD 12px 24px); }
.ph span { font: 12px ui-monospace, Menlo, monospace; color: #4A4F5E; background: rgba(255, 255, 255, .75); padding: 6px 10px; border-radius: 6px; }

/* Header */
.header { position: sticky; top: 0; z-index: 50; background: var(--navy-900); border-bottom: 1px solid rgba(201, 164, 92, .2); transition: box-shadow .3s; }
.header.scrolled { box-shadow: 0 8px 30px rgba(0, 0, 0, .35); }
.header-mobile { display: flex; align-items: center; justify-content: space-between; height: var(--header-h); transition: height .3s; }
.header.scrolled .header-mobile { height: 62px; }
.logo-mobile { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.logo-mobile .simbolo { height: 30px; width: auto; }
.logo-mobile .wordmark { height: 34px; width: auto; }
.header-acoes { display: flex; align-items: center; gap: 8px; }
.icon-btn { width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.icon-btn-gold { background: var(--grad-gold); border: 0; }
.icon-btn-outline { background: transparent; border: 1px solid rgba(201, 164, 92, .5); }
.burger { flex-direction: column; gap: 5px; }
.burger span { display: block; width: 18px; height: 1.5px; background: var(--gold-light); }
.header-desktop { display: none; }

.nav-link { font: 500 13px/1 var(--sans); text-transform: uppercase; letter-spacing: .18em; color: var(--ivory); text-decoration: none; padding: 12px 0 8px; background: linear-gradient(var(--gold), var(--gold)) no-repeat left bottom / 0% 1px; transition: background-size .3s, color .3s; }
.nav-link:hover { color: var(--gold-light); background-size: 100% 1px; }

/* Menu off-canvas */
.menu-overlay { position: fixed; inset: 0; z-index: 90; background: rgba(3, 11, 28, .6); opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
.menu-panel { position: fixed; top: 0; right: 0; bottom: 0; z-index: 91; width: min(330px, 86vw); background: var(--navy-800); border-left: 1px solid var(--line-gold); padding: 20px 26px 32px; display: flex; flex-direction: column; transform: translateX(100%); visibility: hidden; transition: transform .3s, visibility .3s; }
body.menu-open { overflow: hidden; }
body.menu-open .menu-overlay { opacity: 1; visibility: visible; }
body.menu-open .menu-panel { transform: none; visibility: visible; }
.menu-panel .icon-btn { align-self: flex-end; }
.menu-nav { display: flex; flex-direction: column; margin-top: 12px; }
.menu-link { font: 600 26px/1.2 var(--serif); text-transform: uppercase; letter-spacing: .04em; color: var(--ivory); text-decoration: none; padding: 12px 0; border-bottom: 1px solid rgba(201, 164, 92, .2); }
.menu-link:hover { color: var(--gold-light); }
.menu-panel .btn { margin-top: auto; }
.menu-tel { margin-top: 12px; padding: 10px; text-align: center; font: 600 22px var(--serif); color: var(--gold-text); text-decoration: none; }

/* Hero */
.hero { position: relative; overflow: hidden; background: var(--grad-navy); }
.hero .marca-v { right: -6%; top: 8%; width: clamp(320px, 46vw, 660px); }
.hero-inner { display: flex; flex-direction: column; gap: 28px; padding-top: 28px; }
.hero-texto { order: 1; }
.hero-foto { order: 2; display: flex; justify-content: center; }
.hero-foto-frame { width: 100%; max-width: 500px; height: 320px; border-radius: 170px 170px 0 0; overflow: hidden; border: 1px solid rgba(201, 164, 92, .45); border-bottom: 0; background: #E9E4DA; }
.hero-foto-frame img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.hero-h1 { font-family: var(--serif); letter-spacing: .02em; }
.hero-h1 .l1 { display: block; font-size: clamp(26px, 2.8vw, 36px); font-style: italic; font-weight: 500; color: var(--ivory); line-height: 1.15; }
.hero-h1 .l2 { display: block; margin: 6px 0 8px; font-size: clamp(54px, 8vw, 108px); font-weight: 600; text-transform: uppercase; color: var(--gold-text); line-height: .92; }
.hero-h1 .l3 { display: block; font-size: clamp(24px, 2.6vw, 34px); font-weight: 500; color: var(--ivory); line-height: 1.2; }
.hero .eyebrow { margin-bottom: 18px; }
.hero-sub { margin-top: 22px; max-width: 450px; font-size: clamp(16px, 1.4vw, 18px); color: var(--mist); text-wrap: pretty; }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.hero-ctas .btn { flex: 1 1 100%; }
.hero-selos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }

/* Faixa de agendamento */
.faixa { background: var(--ivory); }
.faixa-inner { display: flex; flex-direction: column; align-items: center; gap: 20px; padding-top: 28px; padding-bottom: 36px; text-align: center; }
.faixa-icone { flex: none; width: 132px; height: 132px; margin-top: -70px; border-radius: 50%; background: var(--navy-800); border: 1px solid var(--gold); box-shadow: 0 0 0 6px var(--ivory), 0 0 0 7px rgba(201, 164, 92, .45), 0 14px 30px rgba(3, 11, 28, .25); display: flex; align-items: center; justify-content: center; }
.faixa-texto { flex: 1 1 300px; max-width: 560px; }
.faixa-texto .titulo-bicolor { margin: 0; font-size: clamp(28px, 3vw, 38px); }
.faixa-texto p { margin-top: 6px; font-size: 17px; color: var(--muted); }
.btn-agendar-circ { width: 122px; height: 122px; background: var(--navy-900); border: 1px solid var(--gold); box-shadow: 0 0 0 5px var(--ivory), 0 0 0 6px rgba(201, 164, 92, .5), 0 12px 28px rgba(3, 11, 28, .3); color: var(--gold-light); font-size: 13px; letter-spacing: .16em; }
.btn-agendar-circ:hover { color: var(--gold-light); transform: scale(1.05); filter: brightness(1.3); }

/* Tratamentos */
.tratamentos { position: relative; overflow: hidden; }
.trat-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; margin-top: 44px; background: rgba(201, 164, 92, .18); border: 1px solid rgba(201, 164, 92, .18); }
.trat-card { display: flex; align-items: flex-start; gap: 18px; padding: 26px 20px; background: var(--navy-800); }
.trat-card > svg { flex: none; width: 52px; height: 52px; }
.trat-body { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.trat-card h3 { font: 500 25px/1.05 var(--serif); text-transform: uppercase; letter-spacing: .03em; color: var(--gold-text); }
.trat-card h3 strong { display: block; color: var(--ivory); font-weight: 600; }
.trat-card p { margin-top: 14px; font-size: 15.5px; line-height: 1.65; color: var(--mist); text-wrap: pretty; }
.btn-saiba { margin-top: 20px; width: 62px; height: 62px; border: 1px solid var(--gold); background: transparent; color: var(--gold-light); }
.btn-saiba:hover { background: var(--gold); color: var(--navy-900); }

/* Quiz */
.quiz { position: relative; overflow: hidden; border-top: 1px solid rgba(201, 164, 92, .2); }
.quiz-card { max-width: 760px; margin: 40px auto 0; background: var(--navy-800); border: 1px solid var(--line-gold); padding: 24px 20px 28px; }
.quiz-topo { display: flex; align-items: center; gap: 16px; }
.quiz-passo { flex: none; font: 500 12px var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--gold); }
.quiz-barra { flex: 1; height: 2px; background: rgba(201, 164, 92, .2); }
.quiz-barra span { display: block; height: 100%; width: 0; background: var(--gold); transition: width .4s ease; }
.quiz-corpo { margin-top: 24px; }
.quiz-corpo.entrando { animation: quizIn .35s ease both; }
@keyframes quizIn { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }
.quiz-pergunta { font: 600 clamp(24px, 3vw, 32px)/1.15 var(--serif); color: var(--ivory); text-wrap: balance; }
.quiz-opcoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 12px; margin-top: 22px; }
.quiz-op { display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 14px 18px; border: 1px solid rgba(201, 164, 92, .4); border-radius: 6px; background: transparent; color: var(--ivory); font: 500 16px/1.35 var(--sans); text-align: left; cursor: pointer; transition: background .2s, border-color .2s, transform .15s; }
.quiz-op:hover { background: rgba(201, 164, 92, .1); border-color: var(--gold); }
.quiz-op:active { transform: scale(.98); }
.quiz-op.sel { background: var(--gold); border-color: var(--gold); color: var(--navy-900); }
.quiz-op .letra { flex: none; width: 30px; height: 30px; border-radius: 50%; border: 1px solid currentColor; display: flex; align-items: center; justify-content: center; font: 600 15px var(--serif); }
.quiz-voltar { margin-top: 18px; padding: 10px 0; min-height: 44px; border: 0; background: none; color: var(--mist); font: 500 14px var(--sans); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.quiz-voltar:hover { color: var(--gold-light); }
.quiz-resultado .eyebrow { color: var(--gold); }
.quiz-resultado h3 { margin-top: 10px; font: 600 clamp(30px, 4vw, 42px)/1.05 var(--serif); text-transform: uppercase; letter-spacing: .03em; color: var(--gold-text); }
.quiz-resultado p.texto { margin-top: 14px; font-size: 17px; color: var(--mist); text-wrap: pretty; }
.quiz-resultado p.nota { margin-top: 12px; font-size: 14px; color: var(--mist-2); }
.quiz-acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.quiz-acoes .btn { flex: 1 1 100%; }

/* Etapas */
.etapas-lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 28px 40px; margin-top: 44px; }
.etapas-lista li { border-top: 1px solid var(--gold); padding-top: 22px; }
.etapa-n { display: block; font: 500 56px/1 var(--serif); color: var(--gold-deep); }
.etapas-lista h3 { margin-top: 14px; font: 600 23px/1.1 var(--serif); text-transform: uppercase; letter-spacing: .03em; color: var(--ink); }
.etapas-lista p { margin-top: 10px; font-size: 15.5px; line-height: 1.65; color: var(--muted); text-wrap: pretty; }

/* Split (clínica, equipe) */
.split { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(40px, 6vw, 80px); }
.split-reverse { flex-wrap: wrap-reverse; }
.split-media { flex: 1 1 320px; display: flex; justify-content: center; }
.split-texto { flex: 1 1 400px; max-width: 580px; }
.split-texto p.texto { margin-top: 18px; font-size: 17px; color: var(--ink-2); text-wrap: pretty; }
.split-texto p.texto + p.texto { margin-top: 14px; }

.clinica { position: relative; overflow: hidden; }
.clinica .marca-v { right: -10%; top: -6%; width: clamp(340px, 50vw, 720px); opacity: .12; }
.foto-circulo { width: min(430px, 82vw); aspect-ratio: 1; border-radius: 50%; padding: 10px; background: var(--grad-gold); box-shadow: 0 18px 40px rgba(3, 11, 28, .2); }
.foto-circulo-img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; border: 6px solid var(--ivory-2); }
.galeria { position: relative; margin-top: clamp(56px, 8vw, 96px); }
.gal-topo { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.gal-titulo { font: 600 clamp(24px, 3vw, 34px)/1.1 var(--serif); text-transform: uppercase; letter-spacing: .03em; color: var(--ink); }
.gal-nav { display: flex; align-items: center; gap: 10px; }
.gal-cont { font: 500 13px var(--sans); letter-spacing: .18em; color: var(--muted); margin-right: 6px; }
.gal-cont b { color: var(--ink); font-weight: 600; }
.gal-btn { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--ink); background: transparent; color: var(--ink); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s, color .2s; }
.gal-btn:hover { background: var(--ink); color: var(--gold-light); }
.gal-btn:disabled { opacity: .3; cursor: default; background: transparent; color: var(--ink); }
.gal-trilho { display: grid; grid-auto-flow: column; grid-auto-columns: 78%; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain; scrollbar-width: none; margin: 0 -16px; padding: 0 16px 6px; scroll-padding: 0 16px; }
.gal-trilho::-webkit-scrollbar { display: none; }
.gal-item { margin: 0; scroll-snap-align: start; position: relative; overflow: hidden; background: #E9E4DA; }
.gal-item img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; transition: transform .8s cubic-bezier(.22, .7, .2, 1); }
.gal-item:hover img { transform: scale(1.04); }
.gal-item figcaption { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: baseline; gap: 10px; padding: 40px 16px 14px; background: linear-gradient(transparent, rgba(3, 11, 28, .82)); color: var(--ivory); font: 600 19px/1.2 var(--serif); text-transform: uppercase; letter-spacing: .04em; }
.gal-item figcaption span { font: 500 11px var(--sans); letter-spacing: .2em; color: var(--gold-light); }
.foto-circulo .ph { width: 100%; height: 100%; border-radius: 50%; border: 6px solid var(--ivory-2); }
.tec-row { display: flex; align-items: flex-start; gap: 22px; margin-top: 32px; }
.selo-v { flex: none; width: 78px; height: 78px; border-radius: 50%; background: var(--navy-900); border: 1px solid var(--gold); box-shadow: 0 0 0 4px var(--ivory-2), 0 0 0 5px rgba(201, 164, 92, .5); display: flex; align-items: center; justify-content: center; }
.selo-v img { width: 38px; }
.check-list { display: flex; flex-direction: column; gap: 12px; }
.check-list li { display: flex; align-items: center; gap: 12px; font-weight: 500; color: var(--ink); }
.check { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--gold); display: flex; align-items: center; justify-content: center; }

.equipe .titulo-bicolor { color: var(--gold-text); }
.arco { width: 100%; max-width: 400px; aspect-ratio: 4 / 5; border-radius: 200px 200px 0 0; border: 1px solid rgba(201, 164, 92, .6); padding: 12px; }
.arco-foto { width: 100%; height: 100%; border-radius: 190px 190px 0 0; overflow: hidden; background: #E9E4DA; }
.arco-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; transform: scale(1.15); transform-origin: 50% 30%; }
.nome-dentista { margin-top: 22px; font: 600 28px/1.2 var(--serif); color: var(--ivory); }
.cro { margin-top: 4px; font-size: 14px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
.equipe .bio { margin-top: 18px; font-size: 17px; color: var(--mist); text-wrap: pretty; }
.formacao { display: grid; gap: 12px; margin-top: 24px; }
.formacao li { display: flex; align-items: center; gap: 14px; color: var(--ivory); }
.formacao li::before { content: ''; flex: none; width: 7px; height: 7px; transform: rotate(45deg); background: var(--gold); }
.equipe .btn { margin-top: 32px; min-height: 52px; }

/* Resultados */
.resultados-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 20px; margin-top: 44px; }
.resultados-grid .ph { aspect-ratio: 1; border: 1px solid rgba(201, 164, 92, .35); }
.aviso-cfo { margin: 24px auto 0; max-width: 720px; text-align: center; font-size: 13px; line-height: 1.55; color: var(--muted); }

.casos-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; max-width: 960px; margin: 44px auto 0; }
.caso { margin: 0; min-width: 0; background: var(--paper); border-top: 2px solid var(--gold); box-shadow: 0 14px 36px rgba(3, 11, 28, .08); }
.ba { --pos: 50%; position: relative; aspect-ratio: 1; min-height: 1px; overflow: hidden; background: #E9E4DA; user-select: none; -webkit-user-select: none; }
.ba::before { content: ''; display: block; padding-top: 100%; }
.ba-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.ba-antes { clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.ba-handle { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: var(--gold); box-shadow: 0 0 0 1px rgba(3, 11, 28, .2); pointer-events: none; }
.ba-knob { position: absolute; top: 50%; left: 50%; width: 48px; height: 48px; margin: -24px 0 0 -24px; border-radius: 50%; background: var(--grad-gold); box-shadow: 0 6px 18px rgba(3, 11, 28, .35); display: flex; align-items: center; justify-content: center; transition: transform .2s; }
.ba:hover .ba-knob, .ba.ativo .ba-knob { transform: scale(1.1); }
.ba-range { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; -webkit-appearance: none; appearance: none; touch-action: pan-y; }
.ba-range:focus-visible ~ .ba-handle .ba-knob, .ba:focus-within .ba-knob { outline: 3px solid var(--ivory); outline-offset: 2px; }
.ba .caso-tag { z-index: 1; pointer-events: none; }
.caso-tag { position: absolute; left: 10px; top: 10px; padding: 5px 12px; border-radius: 999px; background: rgba(3, 11, 28, .85); color: var(--ivory); font: 500 11px/1.2 var(--sans); letter-spacing: .2em; text-transform: uppercase; }
.caso-tag-depois { left: auto; right: 10px; background: var(--gold); color: var(--navy-900); }
.caso figcaption { display: flex; flex-direction: column; gap: 2px; padding: 18px 20px 20px; }
.caso-n { font: 500 12px var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--gold-deep); }
.caso figcaption strong { font: 600 22px/1.2 var(--serif); text-transform: uppercase; letter-spacing: .03em; color: var(--ink); }
.caso figcaption span:last-child { font-size: 15px; color: var(--muted); }

/* Depoimentos */
.depoimentos { position: relative; overflow: hidden; }
.depoimentos .marca-v { left: -8%; bottom: -10%; width: clamp(280px, 34vw, 480px); opacity: .1; }
.carousel { max-width: 900px; margin: 40px auto 0; }
.car-viewport { overflow: hidden; background: var(--paper); border-top: 2px solid var(--gold); box-shadow: 0 18px 44px rgba(3, 11, 28, .1); touch-action: pan-y; }
.car-track { display: flex; transition: transform .6s cubic-bezier(.22, .7, .2, 1); }
.car-slide { flex: 0 0 100%; min-width: 0; padding: 32px 24px; display: flex; flex-direction: column; align-items: center; text-align: center; }
.aspas { font: 96px/.6 var(--serif); height: 44px; color: var(--gold); }
.stars { display: flex; gap: 4px; margin-top: 8px; }
.car-slide blockquote { margin-top: 22px; max-width: 680px; font: italic 500 clamp(22px, 2.6vw, 30px)/1.4 var(--serif); color: var(--ink); text-wrap: pretty; }
.car-slide figcaption { display: flex; align-items: center; gap: 14px; margin-top: 30px; text-align: left; }
.avatar { flex: none; width: 54px; height: 54px; border-radius: 50%; background: var(--navy-800); border: 1px solid var(--gold); display: flex; align-items: center; justify-content: center; font: 600 21px var(--serif); color: var(--gold-light); }
.car-slide figcaption strong { display: block; font-size: 16px; font-weight: 600; color: var(--ink); line-height: 1.3; }
.car-slide figcaption span.fonte { display: block; font-size: 14px; color: var(--muted); }
.car-controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; }
.car-btn { flex: none; width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s; }
.car-prev { border: 1px solid var(--ink); background: transparent; }
.car-prev:hover { background: rgba(10, 22, 48, .08); }
.car-next { border: 0; background: var(--ink); }
.car-next:hover { background: var(--navy-700); }
.car-meio { display: flex; align-items: center; gap: 18px; }
.car-dots { display: flex; gap: 2px; }
.car-dots button { width: 28px; height: 44px; padding: 0; border: 0; background: transparent; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.car-dots button span { display: block; width: 12px; height: 2px; background: rgba(10, 22, 48, .3); transition: width .3s, background .3s; }
.car-dots button[aria-current="true"] span { width: 26px; background: var(--gold-deep); }
.car-count { min-width: 56px; font: 600 18px var(--serif); letter-spacing: .06em; color: var(--gold-deep); }
.depoimentos .ver-google { display: flex; justify-content: center; margin-top: 36px; }

/* FAQ */
.faq .container { max-width: 880px; }
.faq-list { margin-top: 44px; border-top: 1px solid rgba(201, 164, 92, .5); }
.faq-item { border-bottom: 1px solid rgba(201, 164, 92, .5); }
.faq-q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; border: 0; background: transparent; cursor: pointer; text-align: left; font: 600 clamp(20px, 2vw, 24px)/1.25 var(--serif); color: var(--ink); }
.faq-icon { flex: none; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--gold); display: flex; align-items: center; justify-content: center; transition: transform .25s, background .25s; }
.faq-q[aria-expanded="true"] .faq-icon { transform: rotate(45deg); background: var(--gold); }
.faq-a { padding: 0 58px 24px 0; font-size: 16.5px; color: var(--ink-2); text-wrap: pretty; }


/* CTA final */
.cta-final { position: relative; overflow: hidden; background: var(--grad-navy); }
.cta-final .marca-v { left: 50%; top: 50%; transform: translate(-50%, -50%); width: clamp(320px, 40vw, 560px); opacity: .06; }
.cta-final .container { max-width: 900px; }
.cta-final .titulo-bicolor { margin: 0; font-size: clamp(36px, 5vw, 64px); line-height: 1.02; }
.cta-final .lead { margin-top: 18px; font-size: 18px; }
.cta-final .btn { margin-top: 34px; }

/* Contato / rodapé */
.contato-wrap { position: relative; overflow: hidden; background: var(--navy-900); border-top: 1px solid rgba(201, 164, 92, .25); }
.contato-wrap .marca-v { right: -10%; bottom: -8%; width: clamp(340px, 48vw, 680px); opacity: .05; }
.contato-inner { padding-top: 56px; padding-bottom: 120px; }
.logo-footer { display: flex; justify-content: center; margin-bottom: 44px; }
.logo-footer img { width: clamp(150px, 16vw, 200px); }
.info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 28px; padding: 32px 0; border-top: 1px solid var(--line-gold); border-bottom: 1px solid var(--line-gold); }
.info-item { display: flex; align-items: center; gap: 16px; min-width: 0; }
.info-icon { flex: none; width: 58px; height: 58px; border-radius: 50%; border: 1px solid var(--gold); display: flex; align-items: center; justify-content: center; }
.info-label { margin-bottom: 4px; font: 500 12px var(--sans); text-transform: uppercase; letter-spacing: .28em; color: var(--gold); }
.info-tel { font: 600 clamp(26px, 2.4vw, 32px)/1.2 var(--serif); color: var(--ivory); text-decoration: none; }
.info-tel:hover { color: var(--gold-light); }
.info-item p { font-size: 15.5px; color: var(--ivory); line-height: 1.45; }
.info-item p.horario { font-size: 14.5px; color: var(--mist-2); }
.form-mapa { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 28px; margin-top: 44px; }
.form-card { background: var(--ivory); padding: 24px; display: flex; flex-direction: column; gap: 16px; border-top: 2px solid var(--gold); }
.form-card h3 { font: 600 28px var(--serif); text-transform: uppercase; letter-spacing: .03em; color: var(--ink); }
.campo { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 500; color: var(--ink); }
.campo input, .campo select, .campo textarea { height: 50px; padding: 0 14px; border: 1px solid #D6CAB4; border-radius: 4px; background: #FFFFFF; color: var(--ink); font-size: 16px; font-weight: 400; }
.campo textarea { height: auto; padding: 12px 14px; resize: vertical; }
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color: var(--gold); outline: none; box-shadow: 0 0 0 3px rgba(201, 164, 92, .25); }
.campo input[aria-invalid="true"] { border-color: #B4442A; }
.consent { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.5; color: var(--ink-2); cursor: pointer; }
.consent input { flex: none; width: 22px; height: 22px; margin: 0; accent-color: var(--ink); }
.form-msg { padding: 12px 14px; border-radius: 4px; font-size: 14.5px; font-weight: 500; }
.form-msg.erro { background: #FBEAE5; color: #8A2E1A; }
.form-msg.ok { background: #EAF3E6; color: #2F5A22; }
.mapa { position: relative; min-height: 420px; border: 1px solid var(--line-gold); background: var(--navy-800); overflow: hidden; }
.mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mapa-facade { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 28px; text-align: center; background: repeating-linear-gradient(135deg, #0A1630 0 14px, #0D1A38 14px 28px); }
.mapa-facade .info-icon { width: 64px; height: 64px; }
.mapa-facade p { max-width: 300px; font: 600 22px/1.25 var(--serif); color: var(--ivory); }
.mapa-facade .botoes { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.mapa-facade .btn { min-height: 48px; padding: 0 22px; font-size: 15px; }
.social { display: flex; justify-content: center; flex-wrap: wrap; gap: clamp(28px, 5vw, 56px); margin-top: 56px; }
.social a { display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--ivory); font-size: 14px; text-decoration: none; }
.social a:hover { color: var(--gold-light); }
.social-icon { width: 62px; height: 62px; border-radius: 50%; border: 1px solid var(--gold); display: flex; align-items: center; justify-content: center; transition: background .2s; }
.social a:hover .social-icon { background: rgba(201, 164, 92, .15); }
.voltar-topo { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: 104px; height: 52px; padding-top: 8px; border-radius: 52px 52px 0 0; background: var(--navy-950); border: 1px solid rgba(201, 164, 92, .35); border-bottom: 0; display: flex; align-items: center; justify-content: center; }
.rodape-barra { background: var(--navy-950); padding: 20px 16px calc(96px + env(safe-area-inset-bottom)); display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 10px; text-align: center; font-size: 13px; letter-spacing: .02em; color: var(--mist-2); }
.rodape-barra a { color: var(--mist-2); }
.rodape-barra a:hover { color: var(--gold-light); }

/* Modal */
.modal { position: fixed; inset: 0; z-index: 100; background: rgba(3, 11, 28, .7); display: flex; align-items: center; justify-content: center; padding: 16px; }
.modal-card { position: relative; width: 100%; max-width: 580px; max-height: 90vh; overflow: auto; background: var(--ivory); border-top: 3px solid var(--gold); padding: 26px; box-shadow: 0 24px 60px rgba(0, 0, 0, .4); }
.modal-fechar { position: absolute; top: 14px; right: 14px; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--gold); background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.modal-card h3 { padding-right: 48px; font: 500 34px/1.05 var(--serif); text-transform: uppercase; letter-spacing: .03em; color: var(--gold-deep); }
.modal-card h3 strong { color: var(--ink); font-weight: 600; }
.modal-texto { margin-top: 16px; font-size: 16.5px; color: var(--ink-2); text-wrap: pretty; }
.modal-label { margin: 24px 0 12px; font: 500 12px var(--sans); text-transform: uppercase; letter-spacing: .28em; color: var(--gold-deep); }
.modal-passos { display: grid; gap: 12px; }
.modal-passos li { display: flex; gap: 14px; align-items: flex-start; font-size: 15.5px; color: var(--ink); counter-increment: passo; }
.modal-passos { counter-reset: passo; }
.modal-passos li::before { content: counter(passo); flex: none; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--gold); display: flex; align-items: center; justify-content: center; font: 600 16px var(--serif); color: var(--gold-deep); }
.modal-card .btn { margin-top: 30px; width: 100%; padding: 0 20px; }

/* Barra fixa (mobile) e botão flutuante (desktop) */
.barra-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 85; display: flex; gap: 10px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: rgba(3, 11, 28, .97); border-top: 1px solid rgba(201, 164, 92, .4); box-shadow: 0 -10px 30px rgba(0, 0, 0, .35); transform: translateY(110%); transition: transform .3s; }
.barra-cta.visivel { transform: none; }
.barra-cta .btn { min-height: 52px; font-size: 15px; }
.barra-cta .btn-ligar { flex: none; padding: 0 18px; border: 1px solid var(--gold); background: transparent; color: var(--gold-light); font-weight: 500; }
.barra-cta .btn-gold { flex: 1; min-width: 0; padding: 0 12px; white-space: nowrap; box-shadow: none; }
.wa-float { position: fixed; right: 20px; bottom: 20px; z-index: 80; width: 60px; height: 60px; border-radius: 50%; background: #25D366; display: none; align-items: center; justify-content: center; box-shadow: 0 10px 26px rgba(0, 0, 0, .3); }
.wa-float::before { content: ''; position: absolute; inset: 0; border-radius: 50%; background: #25D366; animation: waPulse 6s ease-out infinite; }
.wa-float svg { position: relative; }
@keyframes waPulse { 0%, 80% { transform: scale(1); opacity: .55; } 100% { transform: scale(1.7); opacity: 0; } }

/* Chat */
.chat-launcher { position: fixed; right: 16px; bottom: 16px; z-index: 86; width: 60px; height: 60px; border: 0; border-radius: 50%; background: var(--grad-gold); box-shadow: 0 10px 28px rgba(3, 11, 28, .4); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: bottom .3s, transform .2s; }
.chat-launcher:hover { transform: scale(1.06); }
.chat-launcher .ic-x { display: none; }
body.chat-open .chat-launcher .ic-x { display: block; }
body.chat-open .chat-launcher .ic-chat { display: none; }
body.barra-on .chat-launcher { bottom: calc(84px + env(safe-area-inset-bottom)); }
body.chat-open .barra-cta { transform: translateY(110%); }
.chat-badge { position: absolute; top: -2px; right: -2px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: #C2412D; border: 2px solid var(--navy-900); color: #FFFFFF; font: 600 12px/18px var(--sans); text-align: center; }
.chat-teaser { position: fixed; right: 16px; bottom: 88px; z-index: 86; max-width: 250px; display: flex; align-items: flex-start; gap: 8px; padding: 14px 14px 14px 16px; background: var(--ivory); border-top: 2px solid var(--gold); box-shadow: 0 14px 34px rgba(3, 11, 28, .35); font-size: 14.5px; line-height: 1.4; color: var(--ink); cursor: pointer; animation: chatPop .35s ease both; }
.chat-teaser-x { flex: none; width: 28px; height: 28px; margin: -6px -6px 0 0; border: 0; background: transparent; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.chat-painel { position: fixed; z-index: 97; left: 8px; right: 8px; bottom: 8px; height: min(560px, calc(100dvh - 16px)); display: flex; flex-direction: column; background: var(--ivory); box-shadow: 0 24px 60px rgba(0, 0, 0, .45); overflow: hidden; border-radius: 14px; animation: chatPop .28s ease both; }
.chat-painel[hidden] { display: none; }
@keyframes chatPop { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
.chat-head { flex: none; display: flex; align-items: center; gap: 12px; padding: 14px 14px 14px 16px; background: var(--navy-900); border-bottom: 1px solid rgba(201, 164, 92, .35); }
.chat-avatar { flex: none; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--gold); display: flex; align-items: center; justify-content: center; }
.chat-avatar img { width: 22px; }
.chat-head-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.chat-head-txt strong { font: 600 18px/1.2 var(--serif); letter-spacing: .02em; color: var(--ivory); }
.chat-status { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--mist); }
.chat-status i { width: 8px; height: 8px; border-radius: 50%; background: #4CC38A; }
.chat-status.off i { background: var(--mist-2); }
.chat-fechar { flex: none; width: 44px; height: 44px; border: 1px solid rgba(201, 164, 92, .4); border-radius: 50%; background: transparent; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.chat-msgs { flex: 1; overflow-y: auto; padding: 18px 14px 8px; display: flex; flex-direction: column; gap: 10px; overscroll-behavior: contain; }
.msg { max-width: 86%; padding: 11px 14px; font-size: 15px; line-height: 1.5; border-radius: 14px; white-space: pre-line; animation: chatPop .25s ease both; }
.msg-bot { align-self: flex-start; background: var(--paper); color: var(--ink); border: 1px solid #E5DBC8; border-bottom-left-radius: 4px; }
.msg-user { align-self: flex-end; background: var(--navy-800); color: var(--ivory); border-bottom-right-radius: 4px; }
.msg .btn { margin-top: 10px; width: 100%; min-height: 46px; padding: 0 16px; font-size: 14.5px; white-space: normal; }
.msg a:not(.btn) { color: var(--gold-deep); font-weight: 500; }
.msg-digitando { display: flex; gap: 4px; padding: 14px 16px; }
.msg-digitando span { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); animation: chatDot 1s infinite ease-in-out; }
.msg-digitando span:nth-child(2) { animation-delay: .15s; }
.msg-digitando span:nth-child(3) { animation-delay: .3s; }
@keyframes chatDot { 0%, 80%, 100% { opacity: .3; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
.chat-quick { flex: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 6px 14px 12px; }
.chat-quick:empty { display: none; }
.chat-quick button { min-height: 40px; padding: 8px 14px; border: 1px solid var(--gold); border-radius: 999px; background: transparent; color: var(--ink); font: 500 14px/1.2 var(--sans); cursor: pointer; transition: background .2s, color .2s; }
.chat-quick button:hover { background: var(--navy-800); border-color: var(--navy-800); color: var(--gold-light); }
.chat-form { flex: none; display: flex; gap: 8px; padding: 10px 12px; border-top: 1px solid #E5DBC8; background: var(--paper); }
.chat-form input { flex: 1; min-width: 0; height: 46px; padding: 0 14px; border: 1px solid #D6CAB4; border-radius: 999px; background: #FFFFFF; color: var(--ink); font-size: 16px; }
.chat-form input:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201, 164, 92, .25); }
.chat-form button { flex: none; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--grad-gold); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.chat-rodape { flex: none; padding: 0 12px 10px; background: var(--paper); text-align: center; font-size: 12px; color: var(--muted); }

/* Cookies */
.cookie { position: fixed; left: 8px; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom)); z-index: 95; max-width: 720px; margin: 0 auto; display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 14px; background: var(--ivory); border: 1px solid rgba(201, 164, 92, .55); border-radius: 14px; box-shadow: 0 8px 24px rgba(0, 0, 0, .25); transition: bottom .3s; }
body.barra-on .cookie { bottom: calc(80px + env(safe-area-inset-bottom)); }
body.cookie-on .chat-launcher { bottom: calc(76px + env(safe-area-inset-bottom)); }
body.cookie-on.barra-on .chat-launcher { bottom: calc(146px + env(safe-area-inset-bottom)); }
body.cookie-on .chat-teaser { bottom: calc(148px + env(safe-area-inset-bottom)); }
body.cookie-on.barra-on .chat-teaser { bottom: calc(218px + env(safe-area-inset-bottom)); }
.cookie p { flex: 1 1 auto; min-width: 0; font-size: 12.5px; line-height: 1.35; color: var(--ink-2); }
.cookie .botoes { display: flex; gap: 6px; flex: none; }
.cookie button { min-height: 36px; padding: 0 12px; border-radius: 999px; font-size: 13px; font-weight: 500; cursor: pointer; }
.cookie .recusar { border: 1px solid var(--ink); background: transparent; color: var(--ink); }
.cookie .aceitar { border: 0; background: var(--ink); color: var(--gold-light); }

/* Microinterações */
.trat-card { transition: background .3s, transform .3s; }
.trat-card:hover { background: #0E1C3C; }
.trat-card:hover > svg { transform: translateY(-4px); }
.trat-card > svg { transition: transform .3s; }
.btn:active { transform: scale(.97); }
:root { --intro: 0s; }
html.intro { --intro: 1.05s; }
.hero-texto > * { animation: heroIn .8s cubic-bezier(.22, .7, .2, 1) both; animation-delay: calc(var(--intro) + .5s); }
.hero-texto > .eyebrow { animation-delay: calc(var(--intro) + .05s); }
.hero-texto > .hero-h1 { animation: none; }
.hero-texto > .hero-sub { animation-delay: calc(var(--intro) + .55s); }
.hero-texto > .hero-ctas { animation-delay: calc(var(--intro) + .68s); }
.hero-texto > .hero-selos { animation-delay: calc(var(--intro) + .8s); }
.hero-h1 > span { animation: linhaIn .9s cubic-bezier(.22, .7, .2, 1) both; }
.hero-h1 > .l1 { animation-delay: calc(var(--intro) + .12s); }
.hero-h1 > .l2 { animation-delay: calc(var(--intro) + .24s); }
.hero-h1 > .l3 { animation-delay: calc(var(--intro) + .36s); }
@keyframes linhaIn { from { opacity: 0; clip-path: inset(0 0 100% 0); transform: translateY(45%); } to { opacity: 1; clip-path: inset(-10% -5% -15% -5%); transform: none; } }
.hero-h1 .l2 { background: linear-gradient(100deg, #D4B26E 0%, #D4B26E 42%, #F6E6BC 50%, #D4B26E 58%, #D4B26E 100%); background-size: 260% 100%; background-position: 100% 0; -webkit-background-clip: text; background-clip: text; color: transparent; animation-name: linhaIn, brilhoTexto; animation-duration: .9s, 1.8s; animation-delay: calc(var(--intro) + .24s), calc(var(--intro) + 1s); animation-fill-mode: both, both; animation-timing-function: cubic-bezier(.22, .7, .2, 1), ease-in-out; }
@keyframes brilhoTexto { from { background-position: 100% 0; } to { background-position: 0 0; } }
.hero-foto-frame { animation: fotoIn 1.1s cubic-bezier(.65, 0, .25, 1) both; animation-delay: calc(var(--intro) + .1s); }
.hero-foto-frame img { animation: fotoZoom 1.6s cubic-bezier(.22, .7, .2, 1) both; animation-delay: calc(var(--intro) + .1s); }
@keyframes fotoIn { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes fotoZoom { from { transform: scale(1.15); } to { transform: none; } }
.hero .marca-v { animation: marcaIn 1.6s cubic-bezier(.22, .7, .2, 1) both; animation-delay: calc(var(--intro) + .2s); will-change: transform; }
@keyframes marcaIn { from { opacity: 0; transform: translate3d(40px, 30px, 0) rotate(-6deg) scale(.92); } to { opacity: .07; transform: none; } }
.hero-ctas .btn-gold { position: relative; overflow: hidden; }
.hero-ctas .btn-gold::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .55) 50%, transparent 70%); transform: translateX(-120%); animation: btnBrilho 6s ease-in-out infinite; animation-delay: calc(var(--intro) + 1.5s); pointer-events: none; }
@keyframes btnBrilho { 0% { transform: translateX(-120%); } 18%, 100% { transform: translateX(120%); } }
@keyframes heroIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.progresso-leitura { position: fixed; left: 0; top: 0; z-index: 60; height: 2px; width: 100%; background: var(--grad-gold); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }

/* Animação de entrada */
.js-anim .reveal { opacity: 0; transform: translateY(20px); transition: opacity .7s ease, transform .7s ease; }
.js-anim .reveal.in { opacity: 1; transform: none; }

/* Páginas internas (obrigado, política) */
.pagina-simples { min-height: 100vh; display: flex; flex-direction: column; background: var(--ivory); }
.pagina-simples .header-simples { background: var(--navy-900); border-bottom: 1px solid rgba(201, 164, 92, .2); }
.pagina-simples .header-simples .container { display: flex; align-items: center; justify-content: space-between; height: 74px; }
.pagina-simples main { flex: 1; }
.texto-legal { max-width: 780px; margin: 0 auto; padding: 56px 16px 80px; color: var(--ink-2); }
.texto-legal h1 { font: 600 clamp(34px, 4vw, 48px)/1.05 var(--serif); text-transform: uppercase; letter-spacing: .03em; color: var(--ink); }
.texto-legal h2 { margin-top: 36px; font: 600 24px/1.2 var(--serif); text-transform: uppercase; letter-spacing: .03em; color: var(--ink); }
.texto-legal p, .texto-legal li { margin-top: 12px; font-size: 16.5px; }
.texto-legal ul { list-style: disc; padding-left: 22px; }
.texto-legal .atualizado { margin-top: 10px; font-size: 14px; color: var(--muted); }
.obrigado { max-width: 640px; margin: 0 auto; padding: 72px 16px 96px; text-align: center; }
.obrigado .selo-v { margin: 0 auto; width: 96px; height: 96px; box-shadow: 0 0 0 5px var(--ivory), 0 0 0 6px rgba(201, 164, 92, .5); }
.obrigado .selo-v img { width: 46px; }
.obrigado h1 { margin-top: 32px; font: 500 clamp(36px, 5vw, 56px)/1.05 var(--serif); text-transform: uppercase; letter-spacing: .03em; color: var(--gold-deep); }
.obrigado h1 strong { color: var(--ink); font-weight: 600; }
.obrigado p { margin-top: 16px; font-size: 18px; color: var(--ink-2); }
.obrigado .acoes { display: flex; flex-direction: column; gap: 12px; margin-top: 32px; }

/* Tablet 600+ */
@media (min-width: 600px) {
  .container { padding-left: 24px; padding-right: 24px; }
  .hero-foto-frame { height: 420px; }
  .hero-ctas .btn { flex: 0 0 auto; }
  .faixa-inner { flex-direction: row; justify-content: space-between; text-align: left; gap: clamp(20px, 4vw, 56px); }
  .faixa-icone { margin-top: -78px; }
  .trat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trat-card { flex-direction: column; align-items: center; gap: 0; text-align: center; padding: 40px 26px 36px; }
  .trat-card > svg { width: 84px; height: 84px; }
  .trat-body { align-items: center; }
  .trat-card h3 { margin-top: 24px; }
  .trat-card p { max-width: 260px; }
  .btn-saiba { width: 76px; height: 76px; }
  .form-card { padding: 36px; }
  .modal-card { padding: 44px; }
  .car-slide { padding: 48px 48px; }
  .obrigado .acoes { flex-direction: row; justify-content: center; }
  .casos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gal-trilho { grid-auto-columns: calc((100% - 28px) / 2.4); margin: 0; padding: 0 0 6px; scroll-padding: 0; }
  .quiz-card { padding: 36px 40px 40px; }
  .quiz-acoes .btn { flex: 0 0 auto; }
}

/* Desktop 900+ */
@media (min-width: 900px) {
  .container { padding-left: 32px; padding-right: 32px; }
  .section { padding: 104px 0; }
  .contato-inner { padding-top: 104px; }
  .hero-inner { flex-direction: row; align-items: flex-end; gap: 32px; min-height: 620px; padding-top: 40px; }
  .hero-foto { order: 0; flex: 1 1 400px; align-self: flex-end; }
  .hero-foto-frame { height: clamp(340px, 44vw, 560px); border-radius: 250px 250px 0 0; }
  .hero-texto { flex: 1 1 360px; text-align: right; padding: 40px 0 80px; }
  .hero-sub { margin-left: auto; }
  .hero-ctas, .hero-selos { justify-content: flex-end; }
  .trat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 64px; }
  .gal-trilho { grid-auto-columns: calc((100% - 42px) / 3.4); }
  .car-slide { padding: 56px 72px; }
  .barra-cta { display: none; }
  .chat-launcher, body.barra-on .chat-launcher { right: 24px; bottom: 24px; width: 64px; height: 64px; }
  .chat-teaser { right: 24px; bottom: 102px; }
  body.cookie-on .chat-launcher, body.cookie-on.barra-on .chat-launcher { bottom: 88px; }
  body.cookie-on .chat-teaser, body.cookie-on.barra-on .chat-teaser { bottom: 166px; }
  .chat-painel { left: auto; right: 24px; bottom: 100px; width: 380px; height: min(600px, calc(100vh - 130px)); }
  .wa-float.visivel { display: flex; }
  .rodape-barra { padding-bottom: 24px; }
  body.barra-on .cookie { bottom: 16px; }
  .cookie { bottom: 16px; gap: 16px; padding: 10px 10px 10px 18px; }
  .cookie p { font-size: 14px; }
  .cookie button { min-height: 40px; padding: 0 18px; font-size: 14px; }
}

/* Menu dividido 1024+ */
@media (min-width: 1024px) {
  .header-mobile { display: none; }
  .header-desktop { display: block; position: relative; height: 112px; transition: height .3s; }
  .header.scrolled .header-desktop { height: 76px; }
  .header-top { height: 40px; overflow: hidden; display: flex; justify-content: flex-end; align-items: center; transition: height .3s; }
  .header.scrolled .header-top { height: 0; }
  .header-tel { display: flex; align-items: center; gap: 8px; padding-top: 6px; font: 600 23px var(--serif); letter-spacing: .04em; color: var(--gold-text); text-decoration: none; }
  .header-tel:hover { color: var(--gold-light); }
  .nav-split { display: grid; grid-template-columns: minmax(0, 1fr) 220px minmax(0, 1fr); align-items: center; height: 72px; }
  .nav-esq, .nav-dir { display: flex; gap: clamp(20px, 2.4vw, 40px); }
  .nav-esq { justify-content: flex-end; }
  .nav-dir { justify-content: flex-start; }
  .selo { position: absolute; left: 50%; top: 14px; z-index: 2; transform: translateX(-50%); width: 172px; height: 172px; border-radius: 50%; background: var(--navy-900); border: 1px solid rgba(201, 164, 92, .7); box-shadow: 0 0 0 6px var(--navy-900), 0 0 0 7px rgba(201, 164, 92, .3), 0 18px 40px rgba(0, 0, 0, .45); display: flex; align-items: center; justify-content: center; transition: all .3s; }
  .selo img { width: 106px; transition: width .3s; }
  .header.scrolled .selo { width: 92px; height: 92px; top: -8px; }
  .header.scrolled .selo img { width: 56px; }
  .hero-inner { padding-top: 84px; }
  section[id], footer[id] { scroll-margin-top: 100px; }
}

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

.link-btn { background: none; border: 0; padding: 0; font: inherit; color: var(--gold); text-decoration: underline; cursor: pointer; }

/* Quiz: captura de contato antes do resultado (v13) */
.quiz-contato .eyebrow { color: var(--gold); }
.quiz-contato .quiz-pergunta { margin-top: 10px; }
.quiz-contato p.texto { margin-top: 12px; font-size: 16px; color: var(--mist); text-wrap: pretty; }
.quiz-campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 14px; margin-top: 20px; }
.quiz-contato .campo { color: var(--ivory); }
.quiz-contato .form-msg { margin-top: 14px; }
.quiz-contato p.nota, .quiz-resultado p.nota { margin-top: 14px; font-size: 13.5px; color: var(--mist-2); }
.quiz-contato p.nota a { color: var(--gold); }
.quiz-resultado p.quiz-ok { color: var(--gold-light); }

/* v14: link do hero na variante de valor */
.hero-link{display:inline-block;margin:-4px 0 18px;color:#C9A45C;font-size:.95rem;text-decoration:underline;text-underline-offset:4px}
.hero-link:hover{color:#E2C27F}
.hero-link[hidden]{display:none}
