/* BG Odontologia: verde da parede de plantas da clínica + dourado do logo, branco clínico para leitura.
   Manrope para interface e texto; Cormorant itálico como voz de destaque (títulos, faixa, frases). */
:root {
  --green: #12302A; --green-d: #0B211C; --green-l: #1C443B; --green-ink: #10261F;
  --gold: #D2AE62; --gold-h: #DDBC78; --gold-l: #EBD3A0; --gold-d: #B08A3E; --gold-txt: #86662A;
  --mint: #DCE8E2; --paper: #F7F7F4; --white: #FFFFFF; --gray: #5A605C; --line: #E1E3DE;
  --line-verde: rgba(210,174,98,.2);
  --sans: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --w-regular: 400; --w-medium: 500; --w-semi: 600;
  --t-meta: .75rem; --t-sec: .875rem; --t-body: 1rem; --t-lead: 1.1875rem;
  --r: 16px; --r-l: 28px;
  --gutter: 20px; --topo: 68px;
  --ease-out: cubic-bezier(.16, 1, .3, 1);
}
@media (min-width: 768px) { :root { --gutter: 40px; --topo: 76px; } }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--topo) + 16px); -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--green-ink); font: var(--w-regular) var(--t-body)/1.6 var(--sans); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3 { margin: 0; font-weight: var(--w-semi); }
p { margin: 0 0 1em; }
b, strong { font-weight: var(--w-semi); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 4px; }

.pular { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--gold); color: var(--green-d); padding: 10px 16px; border-radius: 8px; font-weight: var(--w-semi); }
.pular:focus { left: 8px; }
.sem-quebra { white-space: nowrap; }
.caixa { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 var(--gutter); }

/* ---------- Tipografia ---------- */
h1 { font-size: clamp(3.4rem, 10vw, 8.5rem); line-height: 1.1; letter-spacing: -.05em; font-weight: var(--w-medium); }
h2 { font-size: clamp(2.6rem, 6.4vw, 5.25rem); line-height: 1.1; letter-spacing: -.045em; font-weight: var(--w-medium); }
h3 { font-size: 1.25rem; line-height: 1.25; letter-spacing: -.015em; }
h1 em, h2 em, .serif { font: italic var(--w-medium) 1.08em/1 var(--serif); letter-spacing: -.02em; color: var(--gold-d); }
.verde h2 em, .hero h1 em { color: var(--gold-l); }
h1 em { white-space: nowrap; }
.ln { display: block; overflow: hidden; padding-bottom: .12em; margin-bottom: -.12em; }
.ln > span { display: block; }

.sobretitulo { display: flex; align-items: center; gap: 14px; margin: 0 0 24px; font-size: var(--t-meta); font-weight: var(--w-semi); letter-spacing: .18em; text-transform: uppercase; color: var(--gold-txt); }
.sobretitulo .n { display: inline-flex; align-items: center; gap: 14px; color: var(--gold-d); }
.sobretitulo .n::after { content: ''; width: 36px; height: 1px; background: currentColor; opacity: .6; }
.verde .sobretitulo, .hero .sobretitulo { color: var(--gold); }
.verde .sobretitulo .n { color: var(--gold-l); }

.intro { font-size: var(--t-lead); line-height: 1.6; color: var(--gray); max-width: 460px; margin: 0; }
.verde .intro { color: rgba(220,232,226,.78); }

.sec-cab { display: grid; gap: 24px; margin-bottom: 64px; }
@media (min-width: 900px) { .sec-cab { grid-template-columns: 1.4fr 1fr; gap: 80px; align-items: end; margin-bottom: 96px; } .sec-cab.so-titulo { grid-template-columns: 1fr; } }

/* ---------- Botões ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 14px 28px; border-radius: 999px;
  font: var(--w-semi) .9375rem/1.2 var(--sans); letter-spacing: .01em; text-decoration: none; border: 1px solid transparent; cursor: pointer;
  transition: background-color .2s var(--ease-out), border-color .2s var(--ease-out), color .2s var(--ease-out); }
.btn svg { width: 20px; height: 20px; flex: none; }
.btn-ouro { background: var(--gold); color: var(--green-d); }
.btn-ouro:hover { background: var(--gold-h); }
.btn-verde { background: var(--green); color: var(--white); }
.btn-verde svg { color: var(--gold-l); }
.btn-verde:hover { background: var(--green-l); }
.btn-linha { border-color: rgba(235,211,160,.4); color: var(--gold-l); }
.btn-linha:hover { border-color: var(--gold-l); }
.btn-p { min-height: 44px; padding: 10px 18px; font-size: var(--t-sec); }
.btn-g { min-height: 64px; padding: 16px 34px; font-size: 1.25rem; }
.btn-g svg { width: 26px; height: 26px; }
.btn-largo { width: 100%; }
.acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.link-seta { display: inline-flex; align-items: center; gap: 8px; font-weight: var(--w-semi); font-size: .9375rem; color: var(--green); text-decoration: none; }
.seta { width: 20px; height: 20px; flex: none; }

/* ---------- Topo ---------- */
.topo { position: sticky; top: 0; z-index: 50; background: var(--green-d); color: var(--white); border-bottom: 1px solid var(--line-verde); }
.topo-in { max-width: 1240px; margin: 0 auto; padding: 0 var(--gutter); height: var(--topo); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.marca { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.marca img { width: 40px; height: 40px; }
.marca span { display: flex; flex-direction: column; line-height: 1.2; white-space: nowrap; }
.marca b { font-size: 1.0625rem; letter-spacing: -.01em; }
.marca small { font-size: var(--t-meta); font-weight: var(--w-medium); letter-spacing: .12em; text-transform: uppercase; color: var(--gold-l); }
.progresso { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--gold); transform: scaleX(0); transform-origin: 0 50%; }

.menu-btn { display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; padding: 11px; background: none; border: 0; cursor: pointer; border-radius: 10px; }
.menu-btn span { display: block; height: 1.5px; background: var(--gold-l); border-radius: 2px; transition: transform .2s var(--ease-out), opacity .2s var(--ease-out); }
.menu-btn[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.menu-btn[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-btn[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
.menu { display: none; position: absolute; top: var(--topo); left: 0; right: 0; background: var(--green-d); padding: 4px var(--gutter) 20px; flex-direction: column; border-bottom: 1px solid var(--line-verde); }
.menu.aberto { display: flex; }
.menu a:not(.btn) { padding: 14px 0; text-decoration: none; font-weight: var(--w-medium); border-bottom: 1px solid rgba(220,232,226,.08); color: var(--mint); }
.menu .btn { margin-top: 16px; }
@media (min-width: 1100px) {
  .menu-btn { display: none; }
  .menu, .menu.aberto { display: flex; position: static; flex-direction: row; align-items: center; gap: 32px; padding: 0; background: none; border: 0; }
  .menu a { white-space: nowrap; }
  .menu a:not(.btn) { padding: 6px 0; border: 0; font-size: var(--t-sec); color: rgba(220,232,226,.85); }
  .menu a:not(.btn):hover { color: var(--gold-l); }
  .menu .btn { margin-left: 8px; }
}

/* ---------- Seções ---------- */
.secao { padding: 112px 0; }
@media (min-width: 768px) { .secao { padding: 176px 0; } }
.claro { background: var(--white); }
.verde, .hero { background: radial-gradient(1100px 700px at 85% 0%, var(--green-l) 0%, transparent 60%), linear-gradient(180deg, var(--green), var(--green-d)); color: var(--white); }

/* ---------- Hero ---------- */
.hero { position: relative; overflow: hidden; min-height: calc(100svh - var(--topo)); display: flex; align-items: center; padding: 72px 0 88px; }
.hero-in { position: relative; z-index: 1; }
.hero h1 { margin-bottom: 32px; }
.hero .lead { font-size: var(--t-lead); color: rgba(220,232,226,.85); max-width: 500px; margin-bottom: 40px; }
@media (max-width: 520px) { .hero .acoes .btn { width: 100%; } }
.hero-fatos { list-style: none; margin: 48px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 28px; font-size: var(--t-sec); color: rgba(220,232,226,.7); }
.hero-fatos li { display: flex; align-items: center; gap: 10px; }
.hero-fatos li::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }
.hero-dente { position: absolute; top: 0; bottom: 0; right: -22vw; margin: auto 0; width: 82vw; aspect-ratio: 82 / 88; height: auto; opacity: .22; pointer-events: none; }
.hero-dente .traco, .hero-dente .anel { fill: none; stroke: var(--gold); stroke-width: .28; stroke-linejoin: round; }
.hero-dente .anel { stroke: rgba(210,174,98,.35); stroke-width: .16; }
@media (min-width: 900px) { .hero-dente { right: 2vw; width: min(44vw, 640px); opacity: 1; } .hero-in .lead, .hero h1 { max-width: 62%; } }

.h1-frase { display: block; }

/* ---------- Páginas de tratamento ---------- */
.pg-hero { min-height: 0; padding: 72px 0 104px; }
@media (min-width: 768px) { .pg-hero { padding: 104px 0 152px; } }
.pg-hero h1 { font-size: clamp(2.9rem, 7.4vw, 6.25rem); }
@media (min-width: 900px) { .pg-hero .hero-dente { width: min(36vw, 520px); } }
.migalhas { margin-bottom: 28px; }
.migalhas ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; font-size: var(--t-sec); color: rgba(220,232,226,.7); }
.migalhas li + li::before { content: '/'; margin: 0 10px; color: var(--gold); }
.migalhas a { display: inline-block; padding: 6px 0; text-decoration: none; color: var(--gold-l); }
.migalhas a:hover { text-decoration: underline; text-underline-offset: 4px; }
.sobre { display: grid; gap: 40px; }
.sobre .sec-cab { margin: 0; }
@media (min-width: 900px) { .sobre { grid-template-columns: 1fr 1fr; gap: 96px; align-items: end; } }
.texto p { font-size: var(--t-lead); line-height: 1.65; color: var(--gray); max-width: 560px; }
.texto p:last-child { margin-bottom: 0; }
.etapa { display: grid; grid-template-columns: 44px 1fr; gap: 6px 16px; align-items: baseline; padding: 28px 0; }
.etapa h3 { font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: var(--w-medium); letter-spacing: -.035em; line-height: 1.15; }
.etapa p { grid-column: 2; margin: 0; color: var(--gray); }
@media (min-width: 900px) {
  .etapa { grid-template-columns: 72px 1.2fr 1fr; gap: 32px; padding: 40px 0; }
  .etapa p { grid-column: 3; max-width: 420px; }
}
.cta-final .intro { margin-bottom: 36px; }
.cta-endereco { margin: 32px 0 0; font-size: var(--t-sec); color: rgba(220,232,226,.7); }
.relacionados .sec-cab { margin-bottom: 48px; }

/* ---------- Faixa corrida ---------- */
.marquee { overflow: hidden; background: var(--paper); border-bottom: 1px solid var(--line); padding: 28px 0; }
.marquee-trilho { display: flex; width: max-content; }
.marquee-grupo { display: flex; align-items: center; flex: none; }
.marquee-grupo span { font: italic var(--w-medium) clamp(2.4rem, 5.5vw, 4.5rem)/1.1 var(--serif); color: var(--green-ink); white-space: nowrap; }
.marquee-grupo span:nth-of-type(even) { color: var(--gold-d); }
.marquee-grupo i { width: 10px; height: 10px; margin: 0 clamp(24px, 4vw, 56px); border-radius: 50%; background: var(--gold); flex: none; }

/* ---------- Tratamentos (índice) ---------- */
.indice { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--line); }
.indice li { border-top: 1px solid var(--line); }
.trat { position: relative; display: grid; grid-template-columns: 44px 1fr 28px; gap: 6px 16px; align-items: center; padding: 28px 0; text-decoration: none; isolation: isolate; }
.trat::before { content: ''; position: absolute; inset: 0 calc(var(--gutter) * -1); z-index: -1; background: var(--green); transform: scaleY(0); transform-origin: 50% 100%; transition: transform .3s var(--ease-out); }
.trat-n { font-size: var(--t-sec); font-weight: var(--w-semi); color: var(--gold-d); letter-spacing: .06em; transition: color .2s var(--ease-out); }
.trat h3, .trat .trat-t { font-size: clamp(1.6rem, 3.4vw, 2.75rem); font-weight: var(--w-medium); letter-spacing: -.035em; line-height: 1.15; transition: color .2s var(--ease-out), transform .3s var(--ease-out); }
.trat p { grid-column: 2; margin: 0; color: var(--gray); transition: color .2s var(--ease-out); }
.trat-seta { grid-column: 3; grid-row: 1; color: var(--gold-d); transition: transform .3s var(--ease-out), color .2s var(--ease-out); }
.trat:hover::before, .trat:focus-visible::before { transform: scaleY(1); }
.trat:hover h3, .trat:focus-visible h3, .trat:hover .trat-t, .trat:focus-visible .trat-t { color: var(--white); transform: translateX(8px); }
.trat:hover p, .trat:focus-visible p { color: rgba(220,232,226,.8); }
.trat:hover .trat-n, .trat:hover .trat-seta, .trat:focus-visible .trat-seta { color: var(--gold-l); }
.trat:hover .trat-seta { transform: translateX(6px); }
.trat:focus-visible { outline: none; }
@media (min-width: 900px) {
  .trat { grid-template-columns: 72px 1.2fr 1fr 48px; gap: 32px; padding: 40px 0; }
  .trat p { grid-column: 3; max-width: 380px; }
  .trat-seta { grid-column: 4; justify-self: end; }
  .trat-seta .seta { width: 28px; height: 28px; }
}

/* ---------- Equipe e segurança ---------- */
.checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 64px; }
@media (min-width: 800px) { .checklist { grid-template-columns: 1fr 1fr; } }
.checklist li { display: flex; gap: 22px; align-items: flex-start; padding: 32px 0; border-top: 1px solid var(--line-verde); }
.check { flex: none; width: 44px; height: 44px; }
.check circle, .check path { fill: none; stroke: var(--gold); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.check path { stroke-width: 2.2; }
.checklist h3 { font-size: 1.375rem; font-weight: var(--w-medium); margin-bottom: 6px; }
.checklist p { margin: 0; color: rgba(220,232,226,.75); }
.frase { margin: 120px 0 0; }
.frase p { margin: 0; max-width: 1000px; font-size: clamp(2.1rem, 5vw, 4.25rem); line-height: 1.12; letter-spacing: -.04em; font-weight: var(--w-medium); }
.frase em { font: italic var(--w-medium) 1.08em/1 var(--serif); letter-spacing: -.02em; color: var(--gold-l); }

/* ---------- Depoimentos ---------- */
.depo { display: grid; gap: 40px; align-items: center; }
@media (min-width: 900px) { .depo { grid-template-columns: 5fr 7fr; gap: 96px; } }
.depo-midias { position: relative; border-radius: var(--r-l); overflow: hidden; aspect-ratio: 4 / 4.4; max-width: 520px; width: 100%; background: var(--green); }
.depo-midia { margin: 0; }
.depo-midia img { width: 100%; height: 100%; object-fit: cover; }
.monograma { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; aspect-ratio: 4 / 4.4;
  font: italic var(--w-medium) clamp(9rem, 22vw, 15rem)/1 var(--serif); color: var(--gold-l);
  background: radial-gradient(400px 400px at 50% 40%, var(--green-l), var(--green-d)); }
.depo-item { margin: 0 0 48px; }
.depo-item blockquote { margin: 0; font-size: clamp(1.6rem, 3vw, 2.6rem); line-height: 1.2; letter-spacing: -.03em; font-weight: var(--w-medium); color: var(--green-ink); }
.depo-item figcaption { display: flex; flex-direction: column; margin-top: 32px; }
.depo-item b { font-size: 1.125rem; }
.depo-item span { color: var(--gray); font-size: var(--t-sec); }
.depo-item a { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; padding: 6px 0; align-self: flex-start; font-size: var(--t-sec); font-weight: var(--w-semi); color: var(--gold-txt); text-decoration: none; }
.depo-item a:hover { color: var(--green); }
.depo-controles { display: none; align-items: center; gap: 16px; }
.depo-btn { width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--line); background: var(--white); color: var(--green); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: border-color .2s var(--ease-out), background-color .2s var(--ease-out); }
.depo-btn:hover { border-color: var(--gold); }
.depo-btn svg { width: 20px; height: 20px; }
.depo-contador { font-size: var(--t-sec); color: var(--gray); font-variant-numeric: tabular-nums; min-width: 64px; text-align: center; }
.depo-contador b { color: var(--green-ink); }
.depo-barra { flex: 1; height: 2px; background: var(--line); overflow: hidden; }
.depo-barra span { display: block; height: 100%; background: var(--gold); transform: scaleX(0); transform-origin: 0 50%; }
/* Sem JS: a primeira foto e todos os textos em lista. Com JS: um depoimento por vez */
.depo:not(.slider-on) .depo-midia:not(:first-child) { display: none; }
.slider-on .depo-midias { display: grid; }
.slider-on .depo-midia { grid-area: 1 / 1; opacity: 0; transform: scale(1.06); transition: opacity .3s var(--ease-out), transform .9s var(--ease-out); }
.slider-on .depo-midia.ativo { opacity: 1; transform: none; }
.slider-on .depo-textos { display: grid; }
.slider-on .depo-item { grid-area: 1 / 1; margin: 0; opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity .3s var(--ease-out), transform .3s var(--ease-out), visibility 0s .3s; }
.slider-on .depo-item.ativo { opacity: 1; visibility: visible; transform: none; transition-delay: .1s, .1s, 0s; }
.slider-on .depo-controles { display: flex; margin-top: 48px; }

/* ---------- 5 sinais ---------- */
.sinais { background: var(--paper); }
.sinais .sec-cab { margin-bottom: 48px; }
.sinais-trilho { list-style: none; margin: 0; padding: 0 var(--gutter); max-width: 1240px; margin-inline: auto; }
.sinal { padding: 32px 0; border-top: 1px solid var(--line); }
.sinal-n { display: block; font-size: clamp(5rem, 14vw, 9rem); line-height: 1; letter-spacing: -.06em; font-weight: var(--w-regular); color: var(--green-ink); margin-bottom: 16px; }
.sinal-n i { font-style: normal; color: var(--gold); }
.sinal h3 { font-size: 1.625rem; font-weight: var(--w-medium); letter-spacing: -.03em; margin-bottom: 8px; }
.sinal p { margin: 0; color: var(--gray); max-width: 340px; }
.sinal-cta-t { font-size: 1.75rem; line-height: 1.2; letter-spacing: -.03em; font-weight: var(--w-medium); margin: 0 0 24px; }
.sinal-cta-t em { font: italic var(--w-medium) 1.1em/1 var(--serif); color: var(--gold-d); }
@media (min-width: 1000px) {
  /* Sem animação (reduzir movimento ou sem GSAP): grade em vez da faixa horizontal */
  .sinais:not(.pin-on) .sinais-trilho { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 48px; }
  .sinais.pin-on { padding: 0; }
  .pin-on .sinais-fixo { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; padding: calc(var(--topo) + 40px) 0 56px; }
  .pin-on .sec-cab h2 { font-size: clamp(2.6rem, 4.6vw, 4.25rem); }
  .pin-on .sinal-n { font-size: clamp(5rem, 9vw, 8rem); }
  .pin-on .sinais-janela { overflow: hidden; }
  .pin-on .sinais-trilho { display: flex; width: max-content; max-width: none; margin: 0; padding-left: max(var(--gutter), calc((100vw - 1240px) / 2 + var(--gutter))); padding-right: 12vw; }
  .pin-on .sinal { flex: none; width: clamp(300px, 27vw, 400px); padding: 8px 48px 0 32px; border-top: 0; border-left: 1px solid var(--line); }
  .pin-on .sinal-cta { display: flex; flex-direction: column; justify-content: flex-end; width: 420px; border-left-color: var(--gold); }
}

/* ---------- Dúvidas ---------- */
@media (min-width: 1000px) {
  .duvidas { display: grid; grid-template-columns: 1fr 1.25fr; gap: 96px; align-items: start; }
  .duvidas .sec-cab { grid-template-columns: 1fr; position: sticky; top: calc(var(--topo) + 48px); margin: 0; }
  .duvidas h2 { font-size: clamp(2.6rem, 4.8vw, 4.5rem); }
}
.faq { border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 16px; padding: 28px 0; }
.faq summary::-webkit-details-marker { display: none; }
.pergunta { flex: 1; font-size: 1.25rem; font-weight: var(--w-medium); letter-spacing: -.02em; line-height: 1.35; transition: color .2s var(--ease-out); }
.veredito { flex: none; font-size: var(--t-meta); font-weight: var(--w-semi); letter-spacing: .16em; text-transform: uppercase; }
.veredito-mito { color: var(--gold-txt); }
.veredito-depende { color: var(--green-l); }
.faq summary::after { content: ''; flex: none; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line);
  background: linear-gradient(var(--gold-d), var(--gold-d)) center / 12px 1.5px no-repeat, linear-gradient(var(--gold-d), var(--gold-d)) center / 1.5px 12px no-repeat;
  transition: transform .3s var(--ease-out), border-color .2s var(--ease-out); }
.faq details[open] summary::after { transform: rotate(45deg); border-color: var(--gold); }
.faq summary:hover .pergunta { color: var(--gold-d); }
.faq details p { margin: -8px 0 28px; padding-right: 52px; color: var(--gray); }

/* ---------- Contato ---------- */
.contato { display: grid; gap: 64px; align-items: start; }
@media (min-width: 1000px) { .contato { grid-template-columns: 1.15fr 1fr; gap: 96px; } }
.h-gigante { font-size: clamp(3.2rem, 8.5vw, 7.5rem); margin-bottom: 28px; }
.contato .intro { margin-bottom: 36px; }
.info { margin: 40px 0; display: grid; gap: 20px; }
@media (min-width: 520px) { .info { grid-template-columns: 1fr 1fr; } }
.info dt { font-size: var(--t-meta); font-weight: var(--w-semi); letter-spacing: .16em; text-transform: uppercase; color: var(--gold); margin-bottom: 4px; }
.info dd { margin: 0; color: rgba(220,232,226,.85); }
.mapa { border-radius: var(--r); overflow: hidden; border: 1px solid var(--line-verde); aspect-ratio: 16 / 9; background: var(--green-d); }
.mapa iframe { width: 100%; height: 100%; border: 0; display: block; }

.form { background: var(--white); color: var(--green-ink); border-radius: var(--r-l); padding: 32px 22px; }
@media (min-width: 640px) { .form { padding: 48px; } }
.form h3 { font-size: 1.75rem; font-weight: var(--w-medium); letter-spacing: -.03em; margin-bottom: 4px; }
.form-sub { color: var(--gray); font-size: var(--t-sec); margin-bottom: 32px; }
.campo { margin-bottom: 18px; }
.campo label { display: block; font-weight: var(--w-medium); font-size: var(--t-sec); margin-bottom: 6px; }
.opc { font-weight: var(--w-regular); color: var(--gray); }
.campo input[type=text], .campo input[type=tel], .campo select, .campo textarea {
  width: 100%; min-height: 52px; padding: 12px 14px; border: 1px solid #CED2CC; border-radius: 12px; background: var(--white); color: var(--green-ink); font: var(--w-regular) var(--t-body)/1.4 var(--sans); transition: border-color .15s var(--ease-out), box-shadow .15s var(--ease-out); }
.campo textarea { resize: vertical; min-height: 96px; }
.campo input:hover, .campo select:hover, .campo textarea:hover { border-color: #AEB4AD; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--gold-d); box-shadow: 0 0 0 3px rgba(210,174,98,.25); }
.com-erro input, .com-erro select, .com-erro textarea { border-color: #B3261E; }
.erro { margin: 6px 0 0; color: #B3261E; font-size: var(--t-sec); font-weight: var(--w-medium); }
.campo-check { display: grid; grid-template-columns: 24px 1fr; gap: 10px; align-items: start; margin-top: 4px; }
.campo-check input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--green); }
.campo-check label { font-weight: var(--w-regular); font-size: var(--t-sec); line-height: 1.5; color: var(--gray); margin: 0; }
.campo-check a { color: var(--green); }
.campo-check .erro { grid-column: 2; }
.campo-oculto { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.aviso { padding: 16px 18px; border-radius: 12px; margin-bottom: 24px; font-size: var(--t-sec); }
.aviso-ok { background: #E6F1EA; color: #154A2C; border: 1px solid #B5D8C1; }
.aviso-erro { background: #FBEAE8; color: #8C1D18; border: 1px solid #F0B7B1; }

/* ---------- Rodapé ---------- */
.rodape { background: var(--green-d); color: rgba(220,232,226,.72); padding: 88px 0 104px; font-size: var(--t-sec); }
.rodape-in { display: grid; gap: 40px; }
@media (min-width: 800px) { .rodape-in { grid-template-columns: 1.3fr 1fr 1fr; } }
.rodape-marca img { width: 180px; }
.rodape h3 { font-size: var(--t-meta); font-weight: var(--w-semi); letter-spacing: .16em; text-transform: uppercase; color: var(--gold); margin-bottom: 16px; }
.rodape p { margin: 0 0 10px; }
.rodape a { text-decoration: none; }
.rodape a:hover { color: var(--gold-l); }
.rodape-base { margin-top: 64px; padding-top: 24px; border-top: 1px solid rgba(220,232,226,.1); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; font-size: var(--t-meta); }
.rodape-base p { margin: 0; }
.pendente { color: #FFB4A9; font-weight: var(--w-semi); }

/* ---------- WhatsApp flutuante ---------- */
.wa-flutuante { position: fixed; right: 16px; bottom: 16px; z-index: 40; width: 56px; height: 56px; border-radius: 50%; background: #25D366; color: var(--white);
  display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 24px rgba(11,33,28,.25); transition: transform .2s var(--ease-out); }
.wa-flutuante:hover { transform: scale(1.05); }
.wa-flutuante svg { width: 30px; height: 30px; }

/* ---------- Política ---------- */
.texto-legal .caixa { max-width: 760px; }
.texto-legal h1 { font-size: clamp(2.5rem, 6vw, 4rem); margin-bottom: 8px; }
.texto-legal h2 { font-size: 1.5rem; letter-spacing: -.02em; margin: 40px 0 10px; }
.texto-legal p { color: var(--gray); }
.texto-legal a:not(.link-seta) { color: var(--green); font-weight: var(--w-semi); }
.atualizado { font-size: var(--t-sec); }

/* ---------- Estados iniciais das animações (só com JS; main.js revela) ---------- */
.js [data-intro="linhas"] .ln > span, .js [data-r="linhas"] .ln > span { transform: translateY(110%); }
.js [data-intro="sobe"], .js [data-r="sobe"], .js [data-r="lista"] > * { opacity: 0; transform: translateY(28px); }
.js [data-intro="tag"], .js [data-r="tag"], .js [data-r="check"] { opacity: 0; transform: translateX(-40px); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
  .js [data-intro] .ln > span, .js [data-r] .ln > span, .js [data-intro], .js [data-r], .js [data-r="lista"] > * { opacity: 1 !important; transform: none !important; }
}
