/* ==========================================================================
   IA & Automação para o Direito — Athom8
   Tokens e componentes derivados do DESIGN.md (sistema Wise-inspired):
   acento único lime, tinta quase-preta, canvas sage, raio 24 px, Inter 900
   para display e 600 para o resto.
   ========================================================================== */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url('fonts/inter-latin-var.woff2') format('woff2');
}

:root {
  /* cores */
  --primary: #9fe870;
  --on-primary: #0e0f0c;
  --primary-active: #cdffad;
  --primary-neutral: #c5edab;
  --primary-pale: #e2f6d5;
  --ink: #0e0f0c;
  --ink-deep: #163300;
  --body: #454745;
  --mute: #868685;
  --canvas: #ffffff;
  --canvas-soft: #e8ebe6;
  --positive-deep: #054d28;
  --negative: #d03238;
  --negative-darkest: #a7000d;
  --warning: #ffd11a;
  --warning-content: #4a3b1c;
  --hairline-dark: rgba(232, 235, 230, 0.16);

  /* raio */
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 16px;
  --r-xl: 24px;
  --r-pill: 9999px;

  /* espaçamento (base 4 px) */
  --s-xs: 4px;
  --s-sm: 8px;
  --s-md: 12px;
  --s-lg: 16px;
  --s-xl: 24px;
  --s-2xl: 32px;
  --s-3xl: 48px;
  --s-4xl: 80px;

  --container: 1200px;
  --nav-h: 64px;
  --font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

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

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--nav-h) + 16px);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--font);
  font-feature-settings: 'calt';
  font-size: 16px;
  line-height: 24px;
  color: var(--ink);
  background: var(--canvas);
  -webkit-font-smoothing: antialiased;
}

img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
p { margin: 0 0 var(--s-lg); }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0; padding: 0; }
h1, h2, h3, h4 { margin: 0; text-wrap: balance; hyphens: manual; }
button { font: inherit; color: inherit; }
strong { font-weight: 600; }
:target { scroll-margin-top: calc(var(--nav-h) + 16px); }

:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 2px;
  border-radius: var(--r-sm);
}
.band--dark :focus-visible,
.card--dark :focus-visible,
.footer :focus-visible { outline-color: var(--primary); }

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

.skip-link {
  position: absolute; top: -100px; left: var(--s-lg);
  padding: var(--s-md) var(--s-xl);
  background: var(--primary); color: var(--on-primary);
  border-radius: var(--r-xl); font-weight: 600; z-index: 100;
}
.skip-link:focus { top: var(--s-lg); }

/* ---------- tipografia ---------- */
.eyebrow {
  display: block;
  font-size: 14px; line-height: 20px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--body);
  margin-bottom: var(--s-md);
}
.band--dark .eyebrow, .card--dark .eyebrow { color: var(--canvas-soft); }

.display-xl { font-size: 40px; line-height: 40px; font-weight: 900; letter-spacing: -0.01em; }
.display-md { font-size: 32px; line-height: 38px; font-weight: 600; letter-spacing: -0.03em; }
.display-sm { font-size: 24px; line-height: 31px; font-weight: 600; letter-spacing: -0.02em; }
.lead { font-size: 16px; line-height: 24px; color: var(--body); }
.body-strong { font-weight: 600; }
.small { font-size: 14px; line-height: 20px; color: var(--body); }
.caption { font-size: 12px; line-height: 16px; color: var(--body); }
.band--dark .lead, .band--dark .small, .band--dark .caption,
.card--dark .lead, .card--dark .small, .card--dark .caption { color: var(--canvas-soft); }
.measure { max-width: 65ch; }
.center { text-align: center; }
.mx-auto { margin-left: auto; margin-right: auto; }

@media (min-width: 768px) {
  .display-xl { font-size: 64px; line-height: 60px; }
  .display-md { font-size: 40px; line-height: 40px; font-weight: 900; letter-spacing: -0.01em; }
  .lead { font-size: 20px; line-height: 30px; }
}
@media (min-width: 1440px) {
  .display-xl { font-size: 72px; line-height: 68px; }
}

/* ---------- layout ---------- */
.container {
  width: 100%; max-width: var(--container);
  margin: 0 auto; padding: 0 var(--s-xl);
}
.band { padding: var(--s-3xl) 0; }
.band--sage { background: var(--canvas-soft); }
.band--white { background: var(--canvas); }
.band--dark { background: var(--ink); color: var(--canvas-soft); }
.band--dark h1, .band--dark h2 { color: var(--primary); }
.section-head { margin-bottom: var(--s-2xl); }
.section-head .lead { margin-top: var(--s-md); }
.grid { display: grid; gap: var(--s-lg); }
@media (min-width: 768px) {
  .band { padding: var(--s-4xl) 0; }
  .grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grid { gap: var(--s-xl); }
}
@media (min-width: 1024px) {
  .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--s-sm);
  min-height: 48px; padding: var(--s-md) var(--s-xl);
  border-radius: var(--r-xl); border: 1px solid transparent;
  font-size: 16px; line-height: 24px; font-weight: 600;
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.1s ease;
}
.btn:active { transform: translateY(1px); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: 0.6; cursor: not-allowed; }
.btn--primary { background: var(--primary); color: var(--on-primary); border-color: var(--primary); }
.btn--primary:hover { background: var(--primary-active); border-color: var(--primary-active); }
.btn--secondary { background: var(--canvas-soft); color: var(--ink); border-color: var(--canvas-soft); }
.btn--secondary:hover { background: #dfe3dc; }
.btn--tertiary { background: var(--canvas); color: var(--ink); border-color: var(--ink); }
.btn--tertiary:hover { background: var(--canvas-soft); }
.btn--ghost-dark { background: transparent; color: var(--canvas-soft); border-color: var(--canvas-soft); }
.btn--ghost-dark:hover { background: var(--canvas-soft); color: var(--ink); }
.btn--block { width: 100%; }
.btn--sm { min-height: 40px; padding: var(--s-sm) var(--s-lg); font-size: 14px; line-height: 20px; }
.btn--icon {
  width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: var(--r-pill);
  background: var(--canvas); border-color: var(--canvas-soft); color: var(--ink);
}
.btn--icon:hover { background: var(--canvas-soft); }
.btn svg { width: 20px; height: 20px; flex: none; }
.btn-row { display: flex; flex-wrap: wrap; gap: var(--s-md); }
.link { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.link--light { color: var(--canvas-soft); }

/* ---------- cards ---------- */
.card {
  background: var(--canvas); color: var(--ink);
  border-radius: var(--r-xl); padding: var(--s-xl);
}
.card--sage { background: var(--canvas-soft); }
.card--green { background: var(--primary-pale); }
.card--dark { background: var(--ink); color: var(--canvas-soft); }
.card--dark h3, .card--dark .price-value { color: var(--primary); }
.card--outline { border: 1px solid var(--ink); }
.card h3 { margin-bottom: var(--s-sm); }
.card .icon {
  width: 32px; height: 32px; margin-bottom: var(--s-lg); color: var(--ink);
}
@media (min-width: 1024px) { .card--roomy { padding: var(--s-2xl); } }

/* ---------- badge ---------- */
.badge {
  display: inline-flex; align-items: center; gap: var(--s-sm);
  padding: var(--s-xs) var(--s-md); border-radius: var(--r-pill);
  background: var(--primary-pale); color: var(--positive-deep);
  font-size: 14px; line-height: 20px; font-weight: 600; letter-spacing: 0.02em;
  text-transform: uppercase;
}
.badge::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%;
  background: var(--positive-deep);
}
.badge--muted { background: var(--canvas-soft); color: var(--body); }
.badge--muted::before { background: var(--body); }

/* ---------- nav ---------- */
.nav {
  position: sticky; top: 0; z-index: 50;
  background: var(--canvas); border-bottom: 1px solid var(--canvas-soft);
}
.nav__inner {
  height: var(--nav-h); display: flex; align-items: center; justify-content: space-between; gap: var(--s-lg);
}
.nav__brand { display: inline-flex; align-items: center; height: 100%; }
.nav__brand img { height: 22px; width: auto; }
.nav__links { display: none; gap: var(--s-2xl); list-style: none; }
.nav__links a { font-size: 14px; line-height: 20px; font-weight: 600; text-decoration: none; }
.nav__links a:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (min-width: 1024px) { .nav__links { display: flex; } }

/* ---------- hero ---------- */
.hero { position: relative; overflow: hidden; padding-bottom: 0; }
.hero__grid { display: grid; gap: var(--s-xl); }
.hero__photo { position: relative; margin: calc(-1 * var(--s-3xl)) calc(-1 * var(--s-xl)) 0; }
.hero__photo img {
  width: 100%; max-height: 52vh; object-fit: cover; object-position: top center;
  -webkit-mask-image: linear-gradient(to bottom, #000 55%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 55%, transparent 100%);
}
.hero__copy { margin-top: -18vh; position: relative; }
.hero__tagline { font-size: 20px; line-height: 28px; font-weight: 600; color: var(--canvas-soft); margin-bottom: var(--s-lg); }
.hero__title { margin: var(--s-lg) 0; }
.hero__lead { max-width: 60ch; }
.hero__actions { margin-top: var(--s-xl); }
.hero__actions .btn { width: 100%; }
.hero__micro { margin-top: var(--s-md); }
.hero__org { margin-top: var(--s-xl); display: flex; align-items: center; gap: var(--s-sm); font-size: 14px; line-height: 20px; color: var(--canvas-soft); }
.hero__org img { height: 16px; width: auto; }
.hero__facts-wrap { margin-top: var(--s-2xl); }
.facts {
  list-style: none; display: grid; gap: var(--s-lg);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.facts li { display: flex; gap: var(--s-md); align-items: flex-start; }
.facts li:last-child { grid-column: 1 / -1; }
.facts svg { width: 24px; height: 24px; flex: none; color: var(--ink); }
.facts strong { display: block; font-size: 16px; line-height: 24px; font-weight: 600; }
.facts span { display: block; font-size: 14px; line-height: 20px; color: var(--body); }
.facts a { color: var(--body); }
.facts strong span, .facts span span { display: inline; }
.facts-card { position: relative; z-index: 2; margin-bottom: calc(-1 * var(--s-3xl)); }
.hero + .band { padding-top: calc(var(--s-3xl) * 2); }

@media (min-width: 768px) {
  .hero__actions .btn { width: auto; }
  .hero__copy { margin-top: -10vh; }
  .facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .facts li:last-child { grid-column: auto; }
}
@media (min-width: 1024px) {
  .hero__grid { grid-template-columns: 7fr 5fr; align-items: end; }
  .hero__photo { margin: calc(-1 * var(--s-4xl)) 0 0; align-self: stretch; display: flex; align-items: flex-end; }
  .hero__photo img {
    max-height: none; height: 100%; min-height: 560px; object-position: center 20%;
    -webkit-mask-image: radial-gradient(ellipse 72% 85% at 50% 42%, #000 55%, transparent 100%);
    mask-image: radial-gradient(ellipse 72% 85% at 50% 42%, #000 55%, transparent 100%);
  }
  .hero__copy { margin-top: 0; padding-bottom: var(--s-2xl); }
  .facts { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .hero + .band { padding-top: calc(var(--s-4xl) + var(--s-3xl)); }
}

/* ---------- pilares / credibilidade ---------- */
.trajetoria { margin-top: var(--s-3xl); padding-top: var(--s-2xl); border-top: 1px solid var(--canvas-soft); text-align: center; }
.trajetoria p { font-size: 14px; line-height: 24px; font-weight: 600; color: var(--body); max-width: 70ch; margin: 0 auto var(--s-md); }
.trajetoria .caption { max-width: 70ch; margin: 0 auto; }

/* ---------- listas com ícone ---------- */
.checklist { list-style: none; display: grid; gap: var(--s-md); }
.checklist li { display: flex; gap: var(--s-md); align-items: flex-start; }
.checklist svg { width: 24px; height: 24px; flex: none; margin-top: 0; color: var(--ink); }
.card--dark .checklist svg { color: var(--primary); }

/* ---------- competências (hoje / depois) ---------- */
.skills { display: grid; gap: var(--s-xl); }
.skills__pillar h3 { margin-bottom: var(--s-lg); }
.skills__cards { display: grid; gap: var(--s-lg); }
.skill .tag { display: block; font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--body); margin-bottom: var(--s-xs); }
.skill .tag--after { color: var(--positive-deep); }
.skill p { color: var(--body); margin-bottom: var(--s-lg); }
.skill p.after { color: var(--ink); font-weight: 600; margin-bottom: 0; }
@media (min-width: 768px) { .skills__cards { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) {
  .skills { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .skills__cards { grid-template-columns: 1fr; }
}

/* ---------- programa ---------- */
.programa { list-style: none; display: grid; gap: var(--s-md); counter-reset: modulo; }
.programa__item { display: grid; gap: var(--s-sm); }
.programa__time { font-size: 14px; line-height: 20px; font-weight: 600; color: var(--ink); white-space: nowrap; }
.programa__card { display: flex; gap: var(--s-lg); align-items: flex-start; }
.programa__num {
  flex: none; width: 32px; height: 32px; border-radius: 50%;
  background: var(--ink); color: var(--canvas);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 600;
}
.card--dark.programa__card .programa__num { background: var(--primary); color: var(--on-primary); }
.programa__card h3 { font-size: 20px; line-height: 28px; font-weight: 600; margin-bottom: var(--s-xs); }
.programa__card p { color: var(--body); margin: 0; }
.card--dark.programa__card p { color: var(--canvas-soft); }
.card--dark.programa__card h3 { color: var(--primary); }
.programa__break { display: flex; gap: var(--s-md); align-items: center; padding: var(--s-md) var(--s-xl); color: var(--body); font-size: 14px; line-height: 20px; font-weight: 600; }
.programa__break svg { width: 20px; height: 20px; flex: none; }
.programa__note { margin-top: var(--s-lg); }
@media (min-width: 768px) {
  .programa__item { grid-template-columns: 140px 1fr; align-items: start; }
  .programa__time { padding-top: var(--s-xl); }
  .programa__item--break .programa__time { padding-top: var(--s-md); }
}
.cta-card { margin-top: var(--s-2xl); display: grid; gap: var(--s-lg); align-items: center; }
.cta-card h3 { font-size: 24px; line-height: 31px; font-weight: 900; }
.cta-card p { color: var(--canvas-soft); }
@media (min-width: 768px) { .cta-card { grid-template-columns: 1fr auto; } }

/* ---------- palestrante ---------- */
.speaker { display: grid; gap: var(--s-xl); }
.speaker__photo { padding: 0; overflow: hidden; }
.speaker__photo img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.speaker__photo figcaption { padding: var(--s-lg) var(--s-xl) var(--s-xl); }
.speaker__photo figcaption strong { display: block; color: var(--primary); font-size: 20px; line-height: 28px; font-weight: 600; }
.speaker__photo figcaption span { font-size: 14px; line-height: 20px; color: var(--canvas-soft); }
.speaker__role { font-weight: 600; margin: var(--s-md) 0 var(--s-lg); }
.stats { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-md); margin: var(--s-xl) 0; }
.stats li { background: var(--canvas-soft); border-radius: var(--r-lg); padding: var(--s-lg); }
.stats strong { display: block; font-size: 32px; line-height: 34px; font-weight: 900; }
.stats span { display: block; font-size: 14px; line-height: 20px; color: var(--body); margin-top: var(--s-xs); }
.speaker__lists { display: grid; gap: var(--s-lg); }
.speaker__lists p { font-size: 14px; line-height: 22px; color: var(--body); }
@media (min-width: 1024px) {
  .speaker { grid-template-columns: 5fr 7fr; align-items: start; }
  .stats strong { font-size: 40px; line-height: 40px; }
}

/* ---------- realização ---------- */
.org-card { max-width: 720px; }
.org-card img { height: 40px; width: auto; margin-bottom: var(--s-xl); }
.org-card p { color: var(--body); }

/* ---------- investimento ---------- */
.invest { display: grid; gap: var(--s-xl); align-items: start; }
.price-card .eyebrow { margin-bottom: var(--s-lg); }
.price-head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s-md); flex-wrap: wrap; }
.price-value { font-size: 40px; line-height: 40px; font-weight: 900; letter-spacing: -0.01em; }
.price-value sup { font-size: 20px; line-height: 1; vertical-align: super; font-weight: 600; margin-left: 2px; }
.price-suffix { display: block; margin-top: var(--s-xs); color: var(--canvas-soft); font-size: 14px; line-height: 20px; }
.price-card .checklist { margin: var(--s-lg) 0; }
.price-card .checklist li { font-size: 16px; line-height: 24px; }
.price-card .btn-row { margin-top: var(--s-xl); }
.price-card .btn { width: 100%; }
.only-mobile { display: block; }
@media (min-width: 1024px) {
  .invest { grid-template-columns: 5fr 7fr; }
  .price-card { position: sticky; top: calc(var(--nav-h) + var(--s-xl)); }
  .price-value { font-size: 64px; line-height: 60px; }
  .only-mobile { display: none !important; }
}

/* ---------- pix ---------- */
.pix { margin-top: var(--s-xl); color: var(--ink); }
.pix[hidden] { display: none; }
.pix h3, .pix h4 { color: var(--ink); }
.pix .small, .pix .caption, .pix .lead, .pix p { color: var(--body); }
.pix p strong, .pix .pix__key code { color: var(--ink); }
.pix__steps { list-style: none; display: grid; gap: var(--s-lg); counter-reset: passo; margin-top: var(--s-lg); }
.pix__steps > li { display: grid; grid-template-columns: 28px 1fr; gap: var(--s-md); }
.pix__steps > li::before {
  counter-increment: passo; content: counter(passo);
  width: 28px; height: 28px; border-radius: 50%; background: var(--ink); color: var(--canvas);
  display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600;
}
.pix__steps p { margin-bottom: var(--s-sm); }
.pix__key {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-md);
  background: var(--canvas-soft); border-radius: var(--r-md); padding: var(--s-md) var(--s-lg); margin: var(--s-sm) 0;
}
.pix__key code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 16px; font-weight: 600; letter-spacing: 0.02em; }
.pix__qr { display: grid; gap: var(--s-md); margin: var(--s-lg) 0; justify-items: start; }
.pix__qr > img, .pix__qr > svg { width: 200px; height: 200px; border-radius: var(--r-md); background: #fff; }
.pix__code {
  width: 100%; min-height: 84px; resize: vertical;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; line-height: 16px;
  border: 1px solid var(--ink); border-radius: var(--r-md); padding: var(--s-md) var(--s-lg); color: var(--body); background: var(--canvas);
}
.pix .btn-row { margin-top: var(--s-sm); }
.pix .btn { width: auto; }
.pix__status { min-height: 20px; margin-top: var(--s-sm); color: var(--positive-deep); font-weight: 600; }

/* ---------- formulário ---------- */
.form-card h3 { margin-bottom: var(--s-xs); }
.form-card .lead { font-size: 16px; line-height: 24px; margin-bottom: var(--s-xl); }
.field { display: grid; gap: var(--s-xs); margin-bottom: var(--s-lg); }
.field label { font-size: 14px; line-height: 20px; font-weight: 600; }
.field .help { font-size: 14px; line-height: 20px; color: var(--body); }
.field .error { font-size: 14px; line-height: 20px; color: var(--negative-darkest); font-weight: 600; display: none; }
.field.is-invalid .error { display: block; }
.field.is-invalid .input { border-color: var(--negative); border-width: 2px; }
.input {
  width: 100%; min-height: 48px; padding: var(--s-md) var(--s-lg);
  font: inherit; font-size: 16px; line-height: 24px; color: var(--ink);
  background: var(--canvas); border: 1px solid var(--ink); border-radius: var(--r-md);
}
.input:focus { outline: 2px solid var(--ink); outline-offset: 1px; }
select.input { appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230e0f0c' stroke-width='2'><path d='m6 9 6 6 6-6'/></svg>"); background-repeat: no-repeat; background-position: right var(--s-lg) center; padding-right: 44px; }
.check { display: flex; gap: var(--s-md); align-items: flex-start; font-size: 14px; line-height: 20px; color: var(--body); }
.check input { width: 20px; height: 20px; margin: 0; flex: none; accent-color: var(--ink); }
.check a { color: var(--ink); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-card .btn--block { margin-top: var(--s-md); }
.trust { display: flex; flex-wrap: wrap; gap: var(--s-md) var(--s-xl); margin-top: var(--s-lg); list-style: none; }
.trust li { display: inline-flex; align-items: center; gap: var(--s-sm); font-size: 14px; line-height: 20px; color: var(--body); }
.trust svg { width: 16px; height: 16px; color: var(--ink); }
.form-disabled { background: var(--canvas-soft); border-radius: var(--r-md); padding: var(--s-lg); margin-bottom: var(--s-lg); }
.thanks h3 { margin: var(--s-md) 0; }
.thanks .divider { border: 0; border-top: 1px solid var(--canvas-soft); margin: var(--s-xl) 0; }
.share { display: flex; align-items: center; gap: var(--s-md); flex-wrap: wrap; margin-top: var(--s-md); }

/* ---------- confiança / depoimentos ---------- */
.quote { font-size: 20px; line-height: 30px; }
.quote footer { margin-top: var(--s-lg); font-size: 14px; line-height: 20px; font-weight: 600; }

/* ---------- local ---------- */
.local { display: grid; gap: var(--s-xl); }
.map-facade { min-height: 260px; display: grid; place-items: center; text-align: center; gap: var(--s-md); }
.map-facade svg { width: 40px; height: 40px; }
.map-frame { border-radius: var(--r-xl); overflow: hidden; background: var(--canvas-soft); min-height: 320px; }
.map-frame iframe { width: 100%; height: 100%; min-height: 320px; border: 0; display: block; }
@media (min-width: 1024px) { .local { grid-template-columns: 5fr 7fr; align-items: start; } }

/* ---------- FAQ ---------- */
.faq { max-width: 800px; margin: 0 auto; display: grid; gap: var(--s-md); }
.faq + .section-head, #faq .section-head { max-width: 800px; margin-left: auto; margin-right: auto; }
.faq details { padding: 0; }
.faq summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--s-lg);
  padding: var(--s-lg) var(--s-xl); font-weight: 600;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary .chev { width: 32px; height: 32px; flex: none; border-radius: 50%; background: var(--canvas-soft); display: inline-flex; align-items: center; justify-content: center; transition: transform 0.2s ease; }
.faq summary .chev svg { width: 18px; height: 18px; }
.faq details[open] summary .chev { transform: rotate(180deg); }
.faq details > div { padding: 0 var(--s-xl) var(--s-xl); color: var(--body); }

/* ---------- política ---------- */
.policy { max-width: 800px; }
.policy ul { list-style: disc; padding-left: 20px; display: grid; gap: var(--s-sm); color: var(--body); }

/* ---------- CTA final ---------- */
.final { text-align: center; }
.final .display-xl { margin: var(--s-lg) auto; max-width: 20ch; }
.final .btn-row { justify-content: center; margin-top: var(--s-xl); }
.final .lead { max-width: 60ch; margin: 0 auto; }
.final .hero__micro { margin-top: var(--s-xl); }

/* ---------- footer ---------- */
.footer { background: var(--ink); color: var(--canvas-soft); padding: var(--s-3xl) 0; font-size: 14px; line-height: 20px; }
.footer a { color: var(--canvas-soft); text-decoration: none; }
.footer a:hover { text-decoration: underline; text-underline-offset: 3px; }
.footer__grid { display: grid; gap: var(--s-2xl); }
.footer__brand img { height: 24px; width: auto; margin-bottom: var(--s-lg); }
.footer h3 { font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: var(--s-md); color: var(--canvas-soft); }
.footer ul { list-style: none; display: grid; gap: var(--s-sm); }
.footer__legal { margin-top: var(--s-2xl); padding-top: var(--s-xl); border-top: 1px solid var(--hairline-dark); font-size: 12px; line-height: 16px; }
@media (min-width: 768px) { .footer__grid { grid-template-columns: 1.4fr 1fr 1fr; } }

/* ---------- barra fixa mobile ---------- */
.sticky-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
  display: flex; align-items: center; justify-content: space-between; gap: var(--s-md);
  padding: var(--s-md) var(--s-lg) calc(var(--s-md) + env(safe-area-inset-bottom));
  background: var(--canvas); border-radius: var(--r-xl) var(--r-xl) 0 0;
  box-shadow: 0 -8px 24px rgba(14, 15, 12, 0.14);
  transform: translateY(110%); transition: transform 0.25s ease;
}
.sticky-bar.is-visible { transform: translateY(0); }
.sticky-bar[inert] { pointer-events: none; }
.sticky-bar strong { font-size: 14px; line-height: 20px; font-weight: 600; }
body.has-sticky { scroll-padding-bottom: 96px; }
@media (min-width: 1024px) { .sticky-bar { display: none; } }

/* ---------- toast / banner ---------- */
.toast {
  position: fixed; left: var(--s-lg); right: var(--s-lg); bottom: calc(88px + env(safe-area-inset-bottom)); z-index: 60;
  background: var(--canvas); color: var(--ink); border-radius: var(--r-xl); padding: var(--s-lg) var(--s-xl);
  box-shadow: 0 12px 32px rgba(14, 15, 12, 0.18); border: 1px solid var(--canvas-soft);
  display: grid; gap: var(--s-md); font-size: 14px; line-height: 20px;
}
.toast[hidden] { display: none; }
.toast .btn-row .btn { min-height: 40px; }
@media (min-width: 768px) { .toast { left: auto; right: var(--s-xl); bottom: var(--s-xl); max-width: 420px; } }

.consent {
  position: fixed; left: var(--s-lg); right: var(--s-lg); bottom: var(--s-lg); z-index: 70;
  background: var(--ink); color: var(--canvas-soft); border-radius: var(--r-xl); padding: var(--s-lg) var(--s-xl);
  display: grid; gap: var(--s-md); font-size: 14px; line-height: 20px;
}
.consent[hidden] { display: none; }
.consent a { color: var(--primary); }
@media (min-width: 768px) { .consent { left: auto; right: var(--s-xl); max-width: 460px; } }

/* ---------- estados ---------- */
[hidden] { display: none !important; }
.is-hidden { display: none !important; }

/* ---------- movimento reduzido ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ---------- impressão ---------- */
@media print {
  .nav, .sticky-bar, .toast, .consent, .hero__photo { display: none !important; }
  .band--dark, .card--dark { background: #fff !important; color: #000 !important; }
  .band--dark h1, .band--dark h2, .card--dark h3 { color: #000 !important; }
}
