/* =========================================================
   Instalador de Ar — style.css
   Base: 07-design-system.json + seção 12.4 do documento-mestre
   Mobile first. Sem frameworks.
   ========================================================= */

/* ---------- Fontes (hospedadas no próprio site) ---------- */
@font-face { font-family: "Manrope"; src: url("/assets/fonts/manrope-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Manrope"; src: url("/assets/fonts/manrope-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("/assets/fonts/inter-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("/assets/fonts/inter-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("/assets/fonts/inter-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }

/* ---------- Tokens ---------- */
:root {
  --primary: #163361;
  --primary-hover: #0E274B;
  --primary-deep: #102A50;
  --primary-soft: #EAF0F7;
  --secondary: #31507C;
  --secondary-soft: #EDF2F7;
  --accent: #FF8A3D;
  --accent-hover: #F57C00;
  --accent-active: #E66F00;
  --accent-soft: #FFF1E8;
  --accent-text: #C75600;
  --accent-text-soft: #8A3C00;
  --accent-on-dark: #FFB27E;
  --text: #14213D;
  --text-muted: #667085;
  --text-body-soft: #4E5D73;
  --text-on-dark: #FFFFFF;
  --text-on-dark-muted: #D6DFEA;
  --surface: #FFFFFF;
  --surface-alt: #F4F6F8;
  --surface-dark: #163361;
  --border: #D9E0E8;
  --border-strong: #B8C4D1;
  --border-dark: #496384;
  --success: #18794E;
  --error: #D92D20;
  --focus: #FF8A3D;

  --font-heading: "Manrope", Arial, sans-serif;
  --font-body: "Inter", Arial, sans-serif;

  --fs-h1: clamp(2.625rem, 5vw, 4rem);
  --fs-h2: clamp(2.125rem, 4vw, 3rem);
  --fs-h3: clamp(1.75rem, 3vw, 2.25rem);
  --fs-h4: clamp(1.375rem, 2vw, 1.75rem);
  --fs-h5: clamp(1.125rem, 1.5vw, 1.375rem);
  --fs-h6: clamp(1rem, 1.25vw, 1.125rem);
  --fs-body-lg: clamp(1rem, 1.15vw, 1.125rem);
  --fs-body: clamp(1rem, 1vw, 1.0625rem);
  --fs-body-sm: clamp(0.875rem, 0.9vw, 0.9375rem);

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-pill: 999px;

  --shadow-xs: 0 1px 2px rgba(16, 42, 80, 0.06);
  --shadow-sm: 0 6px 18px rgba(16, 42, 80, 0.08);
  --shadow-md: 0 12px 32px rgba(16, 42, 80, 0.12);
  --shadow-lg: 0 24px 56px rgba(16, 42, 80, 0.16);
  --shadow-dark: 0 16px 42px rgba(5, 20, 42, 0.24);

  --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --t: 220ms var(--ease);

  --container: 1200px;
  --gutter: 16px;
  --page-pad: 20px;
  --section-y: 64px;
  --header-h: 64px;
}

@media (min-width: 768px) {
  :root { --gutter: 20px; --page-pad: 24px; --section-y: 80px; }
}
@media (min-width: 1024px) {
  :root { --gutter: 24px; --page-pad: 32px; --section-y: clamp(96px, 8vw, 128px); --header-h: 76px; }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.7;
  color: var(--text);
  background: var(--surface);
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); font-weight: 600; margin: 0; color: inherit; text-wrap: balance; }
h2 { font-size: var(--fs-h2); line-height: 1.1; letter-spacing: -0.03em; max-width: 20ch; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
strong { font-weight: 700; color: inherit; }
figure { margin: 0; }
a { color: var(--primary); font-weight: 600; text-decoration: none; transition: color var(--t); }
a:hover { color: var(--accent-text); text-decoration: underline; text-underline-offset: 4px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; border-radius: 4px; }
button { font: inherit; }

.nowrap { white-space: nowrap; }
.container { width: 100%; max-width: calc(var(--container) + var(--page-pad) * 2); margin-inline: auto; padding-inline: var(--page-pad); }

/* Links dentro de texto corrido: sublinhado para não depender só da cor (WCAG 1.4.1) */
.lead a, .split__text p > a:not(.btn):not(.link-arrow), .criteria__item a, .faq__answer a, .check a, .cookie a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }

.skip-link {
  position: absolute; left: 16px; top: -100px; z-index: 200;
  background: var(--accent); color: var(--primary-deep); padding: 12px 20px; border-radius: var(--radius-pill);
}
.skip-link:focus { top: 12px; }

/* ---------- Ícones ---------- */
.icon { flex: none; display: inline-block; vertical-align: middle; }
.icon-box {
  flex: none; display: inline-grid; place-items: center;
  width: 48px; height: 48px; border-radius: var(--radius-md);
  background: var(--primary-soft); color: var(--primary);
}
.icon-box--accent { background: var(--accent-soft); color: var(--accent-text); }
.icon-box--dark { background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.18); color: var(--accent); }

/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 12px 24px; border-radius: var(--radius-pill);
  font-family: var(--font-body); font-size: 15px; font-weight: 700; line-height: 1.3; text-align: center;
  border: 1px solid transparent; cursor: pointer; text-decoration: none;
  transition: background-color var(--t), color var(--t), border-color var(--t), transform var(--t), box-shadow var(--t);
}
.btn:hover { text-decoration: none; transform: translateY(-2px); }
.btn:active { transform: translateY(0); }
.btn--primary { background: var(--accent); border-color: var(--accent); color: var(--primary-deep); }
.btn--primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: var(--primary-deep); box-shadow: 0 8px 20px rgba(16, 42, 80, 0.16); }
.btn--primary:active { background: var(--accent-active); }
.btn--secondary { background: var(--primary); border-color: var(--primary); color: #fff; }
.btn--secondary:hover { background: var(--primary-hover); color: #fff; }
.btn--ghost { background: transparent; border-color: var(--border-strong); color: var(--primary); }
.btn--ghost:hover { background: var(--primary-soft); border-color: var(--primary); color: var(--primary); }
.btn--light { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.5); color: #fff; }
.btn--light:hover { background: #fff; border-color: #fff; color: var(--primary); }
.btn--compact { min-height: 44px; padding: 10px 20px; }
.btn--block { width: 100%; }

.link-arrow { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.link-arrow .icon { transition: transform var(--t); }
.link-arrow:hover .icon { transform: translateX(3px); }

.badge {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 12px; border-radius: var(--radius-pill);
  font-size: 13px; font-weight: 700; letter-spacing: 0.02em;
  background: var(--accent-soft); color: var(--accent-text-soft);
}
.badge--dark { background: rgba(255, 138, 61, 0.16); color: var(--accent-on-dark); }

/* ---------- Topbar ---------- */
.topbar { background: var(--primary-hover); color: var(--text-on-dark-muted); font-size: 13px; }
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; }
.topbar__area { display: none; align-items: center; gap: 8px; }
.topbar__area .icon { color: var(--accent); }
.topbar__links { display: flex; gap: 20px; margin-inline: auto; }
.topbar__links a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--text-on-dark-muted); font-weight: 600; }
.topbar__links a:hover { color: #fff; text-decoration: none; }
.topbar__links a:hover .icon { color: var(--accent); }
@media (max-width: 479px) { .topbar__links li:last-child { display: none; } }
@media (min-width: 1024px) {
  .topbar__area { display: inline-flex; }
  .topbar__links { margin-inline: 0; }
}

/* ---------- Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(14, 39, 75, 0.98);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.site-header__inner { display: flex; align-items: center; gap: 28px; min-height: var(--header-h); }
.logo { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; color: #fff; font-family: var(--font-heading); font-weight: 700; font-size: 1.25rem; letter-spacing: -0.03em; margin: 0; }
.logo:hover { color: #fff; text-decoration: none; }
.logo__img { display: block; width: auto; height: 30px; }
.logo--footer .logo__img { height: 34px; }
@media (min-width: 1024px) { .logo__img { height: 36px; } }
.site-header__cta { display: none; }

.nav-toggle {
  margin-left: auto; display: inline-grid; place-items: center;
  width: 48px; height: 48px; border-radius: var(--radius-md);
  background: transparent; border: 1px solid rgba(255, 255, 255, 0.24); color: #fff; cursor: pointer;
}
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: inline-flex; }
.no-js .nav-toggle { display: none; }

/* Navegação: mobile (até 1023px) */
.nav { color: #fff; }
.nav a { color: #fff; }
.nav a:hover { color: var(--accent-on-dark); text-decoration: none; }
.nav__trigger { display: none; }
.nav__link { display: flex; align-items: center; gap: 10px; min-height: 48px; font-size: 1.0625rem; }
.nav__item--tel { display: none; }
.nav__list { display: flex; flex-direction: column; gap: 4px; }
.nav__list > .nav__item + .nav__item { border-top: 1px solid rgba(255, 255, 255, 0.12); }

.drop { display: flex; flex-direction: column; }
.drop__head { order: 2; }
.drop__list { order: 1; display: flex; flex-direction: column; }
.drop a { display: flex; align-items: center; gap: 14px; min-height: 56px; padding: 6px 0; }
.drop .icon-box { width: 40px; height: 40px; background: rgba(255, 255, 255, 0.08); color: var(--accent); }
.drop__text { display: flex; flex-direction: column; line-height: 1.35; }
.drop__text strong { font-weight: 600; }
.drop__text span { font-size: 14px; font-weight: 400; color: var(--text-on-dark-muted); }
.drop a[aria-current="page"] strong { box-shadow: inset 0 -2px 0 var(--accent); }
.drop__faixa { display: none; }

.nav__item--mobile .nav__link { color: var(--accent-on-dark); font-weight: 700; }
.nav__mobile-footer { display: grid; gap: 8px; margin-top: 24px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, 0.12); }
.nav__mobile-footer .btn { min-height: 52px; color: var(--primary-deep); }
.nav__mobile-tel { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; }

/* Sem JavaScript: o menu aparece aberto, abaixo do cabeçalho */
.no-js .site-header__inner { flex-wrap: wrap; }
.no-js .nav { width: 100%; padding-bottom: 16px; }

/* Com JavaScript: painel em tela cheia */
.js .nav {
  position: fixed; inset: var(--nav-top, var(--header-h)) 0 0 0; z-index: 99;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 16px var(--page-pad) 24px; background: var(--primary); overflow-y: auto;
  visibility: hidden; opacity: 0; transform: translateY(-8px);
  transition: opacity var(--t), transform var(--t), visibility 0s linear 220ms;
}
.js .nav.is-open { visibility: visible; opacity: 1; transform: none; transition: opacity var(--t), transform var(--t), visibility 0s; }
body.nav-open { overflow: hidden; }

/* Navegação: desktop */
@media (min-width: 1024px) {
  .site-header { background: rgba(14, 39, 75, 0.96); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
  .nav-toggle, .no-js .nav-toggle { display: none; }
  .site-header__cta { display: inline-flex; }
  .js .nav, .no-js .nav {
    position: static; inset: auto; display: block; width: auto; padding: 0; margin-left: auto;
    background: none; overflow: visible; visibility: visible; opacity: 1; transform: none;
  }
  .no-js .site-header__inner { flex-wrap: nowrap; }
  .nav__list { flex-direction: row; align-items: center; gap: 28px; }
  .nav__list > .nav__item + .nav__item { border-top: 0; }
  .nav__item--mobile, .nav__mobile-footer { display: none; }
  .nav__item--tel { display: block; }
  .nav__link { font-size: 15px; min-height: 44px; }
  .nav__item--tel .icon { color: var(--accent); }
  .nav__item--drop { position: relative; }

  .nav__trigger {
    display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0;
    background: none; border: 0; color: #fff; font-size: 15px; font-weight: 600; cursor: pointer;
  }
  .nav__trigger .icon { transition: transform var(--t); }
  .nav__trigger:hover { color: var(--accent-on-dark); }
  .nav__trigger[aria-expanded="true"] .icon { transform: rotate(180deg); }

  .drop {
    position: absolute; top: calc(100% + 14px); left: 50%; width: 420px;
    padding: 12px; border-radius: var(--radius-lg); background: var(--surface); color: var(--text);
    box-shadow: var(--shadow-lg);
    visibility: hidden; opacity: 0; transform: translate(-50%, 8px);
    transition: opacity var(--t) 150ms, transform var(--t) 150ms, visibility 0s linear 370ms;
  }
  .drop::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
  .nav__item--drop.is-suppressed .drop { transition: none; }
  .nav__item--drop:not(.is-suppressed):hover .drop,
  .nav__item--drop:not(.is-suppressed):focus-within .drop,
  .nav__trigger[aria-expanded="true"] + .drop {
    visibility: visible; opacity: 1; transform: translate(-50%, 0);
    transition: opacity var(--t), transform var(--t), visibility 0s;
  }
  .drop a { color: var(--text); min-height: 64px; padding: 10px 12px; border-radius: var(--radius-md); transition: background-color var(--t); }
  .drop a:hover { background: var(--accent-soft); color: var(--text); }
  .drop a:hover .icon-box { color: var(--accent-text); }
  .drop .icon-box { background: var(--primary-soft); color: var(--primary); transition: color var(--t); }
  .drop__text span { color: var(--text-muted); }
  .drop__head { order: 0; border-bottom: 1px solid var(--border); border-radius: var(--radius-md) var(--radius-md) 0 0; margin-bottom: 4px; }
  .drop__list { order: 0; }
  .drop__faixa {
    display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 8px -12px -12px; padding: 12px 24px;
    background: var(--primary-soft); border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  }
  .drop__faixa a { min-height: 44px; padding: 0; font-size: 14px; color: var(--primary); }
  .drop__faixa a:hover { background: none; color: var(--accent-text); }
}

/* ---------- Hero ---------- */
/* Celular: texto em fundo azul, foto inteira logo abaixo dos botões, provas em lista.
   Computador: foto cobrindo a seção, com escurecimento lateral (design system). */
.hero { position: relative; isolation: isolate; display: flex; flex-direction: column; background: var(--primary-hover); color: #fff; }
.hero__inner { padding-block: 48px 32px; display: grid; gap: 20px; justify-items: start; }
.hero__title { font-size: var(--fs-h1); line-height: 1.05; letter-spacing: -0.035em; max-width: 14ch; }
.hero__lead { font-size: var(--fs-body-lg); color: var(--text-on-dark-muted); max-width: 58ch; }
.hero__lead strong { color: #fff; }
.hero__actions { display: flex; flex-direction: column; gap: 12px; width: 100%; margin-top: 8px; }
.hero__media { padding-inline: var(--page-pad); }
.hero__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-md); background: var(--secondary); }
.hero__proofs { padding-block: 32px 40px; }
.proofs { display: grid; gap: 0; }
.proof { display: flex; align-items: flex-start; gap: 14px; padding-block: 16px; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.proof .icon { color: var(--accent); margin-top: 2px; }
.proof p { display: flex; flex-direction: column; gap: 2px; line-height: 1.4; }
.proof strong { font-family: var(--font-heading); font-weight: 600; font-size: 1.0625rem; letter-spacing: -0.01em; color: #fff; }
.proof span { font-size: var(--fs-body-sm); color: var(--text-on-dark-muted); }
@media (min-width: 768px) {
  .hero__actions { flex-direction: row; flex-wrap: wrap; width: auto; }
  .hero__img { aspect-ratio: 16 / 9; }
  .proofs { grid-template-columns: repeat(3, 1fr); column-gap: var(--gutter); }
}
@media (min-width: 1024px) {
  .hero { min-height: 640px; justify-content: flex-end; overflow: hidden; }
  .hero__media { position: absolute; inset: 0; z-index: -2; padding: 0; }
  .hero__img { height: 100%; aspect-ratio: auto; border-radius: 0; object-position: 70% center; }
  .hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10, 35, 67, 0.95) 0%, rgba(10, 35, 67, 0.82) 45%, rgba(10, 35, 67, 0.25) 100%); }
  .hero__inner { padding-block: 80px 48px; }
  .hero__title { font-size: 4rem; }
  .hero__proofs { padding-block: 0 8px; }
  .proof { padding-block: 24px 32px; }
}

/* Faixa de compromissos */
.commit { padding-block: 32px; border-bottom: 1px solid var(--border); }
.commit__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px var(--gutter); }
.commit__list li { display: flex; align-items: center; gap: 12px; font-size: var(--fs-body-sm); font-weight: 600; line-height: 1.4; color: var(--text); }
.commit__list .icon { color: var(--accent-text); }
@media (min-width: 1024px) {
  .commit__list { grid-template-columns: repeat(4, 1fr); gap: 0; }
  .commit__list li { padding-inline: 20px; }
  .commit__list li:first-child { padding-left: 0; }
  .commit__list li + li { border-left: 1px solid var(--border); }
}

/* ---------- Seções ---------- */
.section { padding-block: var(--section-y); }
.section--alt { background: var(--surface-alt); }
.section--compact { padding-block: calc(var(--section-y) * 0.75); }
.section--dark { background-color: var(--surface-dark); color: #fff; }
.section-head { display: grid; gap: 16px; margin-bottom: 48px; max-width: 760px; }
.section-head--split { max-width: none; }
@media (min-width: 1024px) {
  .section-head--split { grid-template-columns: 7fr 5fr; gap: var(--gutter) 64px; align-items: end; }
  .section-head--split > div { display: grid; gap: 16px; }
}
.lead { font-size: var(--fs-body-lg); color: var(--text-body-soft); }
.section--dark .lead { color: var(--text-on-dark-muted); }
.section--dark .lead a { color: #fff; }
.section--dark .lead a:hover { color: var(--accent-on-dark); }
.actions { margin-top: 32px; display: flex; flex-wrap: wrap; gap: 12px; }
.actions--center { justify-content: center; margin-top: 48px; }

/* Grades simétricas */
.grid { display: grid; gap: var(--gutter); }
@media (min-width: 768px) {
  .grid--3 { grid-template-columns: repeat(2, 1fr); }
  .grid--4 { grid-template-columns: repeat(2, 1fr); }
  /* 3 itens em 2 colunas deixariam célula vazia: o 3º ocupa a linha toda */
  .grid--3 > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
  .grid--3 { grid-template-columns: repeat(3, 1fr); }
  .grid--3 > :last-child:nth-child(odd) { grid-column: auto; }
  .grid--4 { grid-template-columns: repeat(4, 1fr); }
}

/* Card de serviço com imagem */
.card {
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-xs);
  transition: transform var(--t), box-shadow var(--t);
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.card__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--primary-soft); transition: transform 420ms var(--ease); }
.card:hover .card__img { transform: scale(1.025); }
.card__body { position: relative; display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 24px 24px 20px; background: var(--surface); }
.card__title, .feature__title, .step__title, .factor__title {
  font-size: var(--fs-h5); line-height: 1.3; letter-spacing: -0.012em;
}
.card__body p { color: var(--text-body-soft); font-size: var(--fs-body-sm); flex: 1; }
.card__link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 4px; }
.card__link .icon { transition: transform var(--t); }
.card__link:hover .icon { transform: translateX(3px); }
@media (min-width: 768px) and (max-width: 1023px) {
  .grid--3 > .card:last-child:nth-child(odd) { flex-direction: row; }
  .grid--3 > .card:last-child:nth-child(odd) .card__img { width: 50%; }
}

/* Bloco texto + imagem */
.split { display: grid; gap: 40px; align-items: center; }
.split__text { display: grid; gap: 20px; justify-items: start; }
.split__text .actions { margin-top: 8px; }
.split__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-lg); background: var(--primary-soft); }
@media (min-width: 1024px) {
  .split { grid-template-columns: 6fr 5fr; gap: 72px; }
  .split--reverse { grid-template-columns: 5fr 6fr; }
  .split--reverse .split__media { order: -1; }
}

.checklist { display: grid; gap: 12px; }
.checklist li { display: flex; gap: 12px; line-height: 1.65; }
.checklist .icon { margin-top: 3px; color: var(--accent-text); }
.checklist--dark li { color: #fff; }
.checklist--dark .icon { color: var(--accent); }

/* Onde instalamos: foto + lista */
.places { display: grid; gap: 40px; align-items: start; }
.places__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-lg); background: var(--primary-soft); }
.places__content { display: grid; gap: 16px; }
.places__list { margin-top: 16px; border-top: 1px solid var(--border-strong); }
.place { display: grid; gap: 6px; padding-block: 20px; border-bottom: 1px solid var(--border-strong); }
.place__title { font-size: var(--fs-h5); line-height: 1.3; letter-spacing: -0.012em; }
.place p { color: var(--text-body-soft); font-size: var(--fs-body-sm); }
.place .link-arrow { min-height: 44px; }
@media (min-width: 1024px) {
  .places { grid-template-columns: 5fr 7fr; gap: 72px; align-items: stretch; }
  .places__media img { height: 100%; aspect-ratio: auto; min-height: 560px; }
}

/* Etapas (8, grade 4 x 2): linha do tempo, sem caixas */
.steps { display: grid; gap: 0 var(--gutter); }
.step { display: grid; gap: 8px; align-content: start; padding: 20px 0 28px; border-top: 2px solid var(--border); position: relative; }
.step::before { content: ""; position: absolute; left: 0; top: -2px; width: 48px; height: 2px; background: var(--accent); }
.step__num { font-family: var(--font-heading); font-weight: 700; font-size: 2.5rem; line-height: 1; letter-spacing: -0.04em; color: var(--primary); font-variant-numeric: tabular-nums; }
.step p { color: var(--text-body-soft); font-size: var(--fs-body-sm); }
@media (min-width: 768px) { .steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) {
  .steps { grid-template-columns: repeat(4, 1fr); row-gap: 16px; }
  .step { padding-right: 16px; }
}

/* Fatores (seção escura): colunas com divisória, sem caixas */
.factor { display: grid; gap: 14px; align-content: start; padding: 24px 0; border-top: 1px solid var(--border-dark); }
.factor .icon { color: var(--accent); }
.factor p { color: var(--text-on-dark-muted); font-size: var(--fs-body-sm); }
@media (min-width: 1024px) {
  .section--dark .grid--4 { gap: 0; }
  .factor { padding: 8px 28px 8px; border-top: 0; border-left: 1px solid var(--border-dark); }
  .factor:first-child { padding-left: 0; border-left: 0; }
}
.band-note {
  display: grid; gap: 20px; margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--border-dark);
}
.band-note p { color: var(--text-on-dark-muted); max-width: 60ch; }
.band-note strong { color: #fff; }
@media (min-width: 1024px) {
  .band-note { grid-template-columns: 1fr auto; align-items: center; gap: 40px; }
}

/* Diferenciais: lista 3 x 2 com linha no topo, sem caixas */
.section--alt .grid--3:has(.feature) { row-gap: 8px; }
.feature { display: grid; gap: 12px; align-content: start; padding: 24px 0 20px; border-top: 1px solid var(--border-strong); }
.feature .icon { color: var(--accent-text); }
.feature p { color: var(--text-body-soft); font-size: var(--fs-body-sm); }

/* Critérios (Information Gain) */
.criteria { align-items: stretch; }
.criteria__col { display: flex; flex-direction: column; padding: 28px 24px; border-radius: var(--radius-md); background: var(--surface); border: 1px solid var(--border); }
.criteria__title { display: flex; align-items: center; gap: 12px; padding-bottom: 20px; border-bottom: 1px solid var(--border); }
.criteria__title h3 { font-size: var(--fs-h5); line-height: 1.3; letter-spacing: -0.012em; }
.criteria__stage {
  display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%;
  background: var(--primary); color: #fff; font-size: 1rem; font-weight: 700; flex: none;
}
.criteria__item { padding-block: 20px; display: grid; gap: 8px; }
.criteria__item + .criteria__item { border-top: 1px solid var(--border); }
.criteria__item:last-child { padding-bottom: 0; }
.criteria__item h4 { font-size: var(--fs-h6); line-height: 1.35; font-weight: 700; letter-spacing: -0.008em; }
.criteria__item p { font-size: var(--fs-body-sm); color: var(--text-body-soft); }
@media (min-width: 768px) and (max-width: 1023px) {
  .criteria { grid-template-columns: 1fr; }
  .criteria > :last-child:nth-child(odd) { grid-column: auto; }
}

/* FAQ */
.faq-layout { display: grid; gap: 40px; }
.faq-layout__main { display: grid; gap: 16px; align-content: start; }
.faq { margin-top: 24px; border-top: 1px solid var(--border); }
.faq details { border-bottom: 1px solid var(--border); }
.faq summary {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 56px; padding: 16px 0; cursor: pointer; list-style: none;
  font-family: var(--font-heading); font-weight: 600; font-size: 1.0625rem; line-height: 1.4; color: var(--text);
  transition: color var(--t);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary:hover { color: var(--accent-text); }
.faq summary .icon { color: var(--accent-text); }
.faq .icon-minus { display: none; }
.faq details[open] summary { color: var(--primary); }
.faq details[open] .icon-plus { display: none; }
.faq details[open] .icon-minus { display: inline-block; }
.faq__answer { padding: 0 48px 24px 0; color: var(--text-body-soft); }
.help-card {
  display: grid; gap: 16px; align-content: start; justify-items: start; padding: 32px 28px;
  border-radius: var(--radius-lg); background: var(--primary-soft);
}
.help-card__title { font-family: var(--font-heading); font-weight: 700; font-size: var(--fs-h5); line-height: 1.3; }
.help-card > p:not(.help-card__title) { color: var(--text-body-soft); font-size: var(--fs-body-sm); }
.help-card__tel { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; justify-self: center; }
@media (min-width: 1024px) {
  .faq-layout { grid-template-columns: 8fr 4fr; gap: 64px; }
  .help-card { position: sticky; top: calc(var(--header-h) + 24px); margin-top: 8px; align-self: start; }
}

/* CTA final + formulário */
.cta-final { padding-block: 0 var(--section-y); }
.cta-final__inner {
  display: grid; gap: 40px; padding: 40px 20px; border-radius: var(--radius-lg); color: #fff; background-color: var(--surface-dark);
}
@media (min-width: 768px) { .cta-final__inner { padding: 56px 48px; } }
.cta-final__text { display: grid; gap: 20px; align-content: start; }
.cta-final__text .lead { color: var(--text-on-dark-muted); }
.cta-final__direct { color: var(--text-on-dark-muted); }
.cta-final__direct a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--accent-on-dark); }
.cta-final__direct a:hover { color: #fff; }
@media (min-width: 1024px) {
  .cta-final__inner { grid-template-columns: 5fr 7fr; gap: 64px; align-items: start; }
}

.form { display: grid; gap: 20px; padding: 28px 24px; background: var(--surface); color: var(--text); border-radius: var(--radius-lg); box-shadow: var(--shadow-dark); }
.form__intro { font-size: 14px; color: var(--text-muted); }
.form__grid { display: grid; gap: 20px; }
@media (min-width: 768px) {
  .form { padding: 40px; }
  .form__grid { grid-template-columns: 1fr 1fr; }
  .field--full { grid-column: 1 / -1; }
}
.field { display: grid; gap: 8px; align-content: start; margin: 0; padding: 0; border: 0; min-width: 0; }
.field > label, .field legend { font-size: 14px; font-weight: 600; color: var(--text); padding: 0; }
.field input[type="text"], .field input[type="tel"], .field input[type="email"], .field input[type="number"], .field select {
  width: 100%; height: 50px; padding: 0 16px; font: inherit; font-size: 16px; color: var(--text);
  background: #fff; border: 1px solid var(--border-strong); border-radius: var(--radius-sm);
  transition: border-color var(--t), box-shadow var(--t);
}
.field select {
  appearance: none; -webkit-appearance: none; padding-right: 44px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23163361' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center;
}
.field input::placeholder { color: var(--text-muted); }
.field input:hover, .field select:hover { border-color: #7F92A8; }
.field input:focus, .field select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px rgba(255, 138, 61, 0.18); }
.field input:disabled { background: var(--surface-alt); opacity: 0.7; }
.field__help { font-size: 14px; color: var(--text-muted); }
.field__error { font-size: 14px; font-weight: 600; color: var(--error); }
.field.has-error input[type="text"], .field.has-error input[type="tel"], .field.has-error input[type="email"], .field.has-error input[type="number"], .field.has-error select { border-color: var(--error); }
.field__optional { font-weight: 400; color: var(--text-muted); }
/* Honeypot: fora da tela, sem ocupar espaço (não usar display:none, que alguns robôs detectam) */
.form__hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.form { position: relative; }
/* Estado de carregamento do botão */
.btn.is-loading { cursor: progress; opacity: 0.85; }
.btn.is-loading .icon { animation: gira 900ms linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .btn.is-loading .icon { animation: none; } }

.check { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; padding-top: 4px; font-size: 15px; line-height: 1.5; cursor: pointer; }
.check input { flex: none; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--primary); }
.choices { display: grid; grid-template-columns: 1fr; gap: 8px; }
@media (min-width: 480px) { .choices { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.choice { position: relative; }
.choice input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.choice span {
  display: grid; place-items: center; min-height: 50px; padding: 0 8px; font-size: 14px; font-weight: 600; text-align: center;
  border: 1px solid var(--border-strong); border-radius: var(--radius-sm); background: #fff; transition: border-color var(--t), background-color var(--t);
}
.choice input:hover + span { border-color: #7F92A8; }
.choice input:checked + span { border-color: var(--primary); background: var(--primary-soft); color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); }
.choice input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 3px; }
.field.has-error .choice span { border-color: var(--error); }
.form__privacy { font-size: 14px; color: var(--text-muted); text-align: center; }
.form__status { font-size: 14px; font-weight: 600; color: var(--success); text-align: center; }
.form__status:empty { display: none; }

/* ---------- Rodapé ---------- */
.site-footer { background: var(--surface-dark); color: var(--text-on-dark-muted); padding-top: 64px; }
.site-footer a { color: var(--text-on-dark-muted); font-weight: 400; }
.site-footer a:hover { color: var(--accent-on-dark); }
.footer-top { display: grid; gap: 24px; padding-bottom: 40px; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.footer-top__brand { display: grid; gap: 16px; max-width: 60ch; }
.footer-top .btn { justify-self: start; color: var(--primary-deep); font-weight: 700; }
@media (min-width: 1024px) { .footer-top { grid-template-columns: 1fr auto; align-items: end; } }

.footer-commit { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px var(--gutter); padding-block: 32px; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.footer-commit li { display: flex; align-items: center; gap: 10px; font-size: 14px; line-height: 1.4; color: #fff; }
.footer-commit .icon { color: var(--accent); }
@media (min-width: 1024px) { .footer-commit { grid-template-columns: repeat(4, 1fr); } }

.footer-cols { display: grid; gap: 32px; padding-block: 40px; }
.footer-col__title { color: #fff; font-size: 16px; font-weight: 700; margin-bottom: 12px; }
.footer-col ul { display: grid; gap: 2px; }
.footer-col a, .footer-col__nap { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; line-height: 1.4; font-size: 15px; }
.footer-col .icon { color: var(--accent); }
.footer-col--contact a { word-break: break-word; }
@media (min-width: 768px) { .footer-cols { grid-template-columns: repeat(3, 1fr); gap: var(--gutter); } }

.footer-bottom { background: var(--primary-hover); font-size: 14px; }
.footer-bottom__inner { display: grid; gap: 8px; padding-block: 20px; }
.footer-bottom ul { display: flex; flex-wrap: wrap; gap: 0 20px; }
.footer-bottom a, .link-button { display: inline-flex; align-items: center; min-height: 44px; }
.link-button { padding: 0; background: none; border: 0; color: var(--text-on-dark-muted); font-size: 14px; cursor: pointer; }
.link-button:hover { color: var(--accent-on-dark); text-decoration: underline; text-underline-offset: 4px; }
@media (min-width: 1024px) { .footer-bottom__inner { grid-template-columns: 1fr auto; align-items: center; } }

/* ---------- Aviso de cookies (barra discreta, aparece após a primeira rolagem) ---------- */
/* position: fixed em ambas as telas: fica por cima do conteúdo sem empurrar nada (sem CLS) e sem
   bloquear a leitura da página, que continua visível e rolável por trás. */
.cookie { position: fixed; left: 0; right: 0; bottom: 0; z-index: 150; }
.cookie[hidden] { display: none; }
.cookie a { text-decoration: underline; text-underline-offset: 3px; }
/* [hidden] tem a mesma especificidade das classes abaixo; sem isto, o navegador mostraria os dois ao mesmo tempo */
.cookie__bar[hidden], .cookie__panel[hidden] { display: none; }

.cookie__bar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 16px;
  padding: 8px var(--page-pad); padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
  background: var(--primary-hover); color: var(--text-on-dark-muted); font-size: 14px; line-height: 1.4;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.cookie__bar a { color: #fff; }
.cookie__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
/* As 3 opções (Personalizar, Recusar, Aceitar todos) têm o mesmo destaque visual de propósito:
   nenhuma delas é a "principal", para não induzir a pessoa a aceitar sem ler. */
.cookie__btn {
  min-height: 44px; padding: 0 14px; border-radius: var(--radius-pill); cursor: pointer; white-space: nowrap;
  background: transparent; border: 1px solid rgba(255, 255, 255, 0.28); color: #fff; font-size: 14px; font-weight: 600;
}
.cookie__btn:hover { border-color: #fff; }
@media (min-width: 768px) {
  .cookie__bar { left: auto; right: 24px; bottom: 24px; max-width: 560px; border-radius: var(--radius-md); border: 1px solid var(--border-dark); padding: 12px 12px 12px 20px; box-shadow: var(--shadow-dark); }
}

/* Painel de preferências: card claro, mesma posição da barra, com rolagem própria para não ultrapassar
   a tela no celular (assim a página de trás continua acessível). */
.cookie__panel {
  background: var(--surface); color: var(--text); padding: 20px var(--page-pad) calc(20px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--border); box-shadow: var(--shadow-lg);
  max-height: min(72vh, 560px); overflow-y: auto;
}
.cookie__panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cookie__panel-title { font-family: var(--font-heading); font-weight: 700; font-size: 1.0625rem; margin: 0; }
.cookie__close {
  display: flex; align-items: center; justify-content: center; flex: none;
  width: 44px; height: 44px; border-radius: var(--radius-pill); border: 1px solid var(--border); background: transparent;
  color: var(--text-muted); cursor: pointer;
}
.cookie__close:hover { border-color: var(--primary); color: var(--primary); }
.cookie__panel-lead { margin: 12px 0 0; color: var(--text-muted); font-size: 14px; line-height: 1.6; }
.cookie__cats { margin-top: 12px; border-top: 1px solid var(--border); }
.cookie__cat { padding: 14px 0; border-bottom: 1px solid var(--border); }
.cookie__cat-desc { margin: 6px 0 0; color: var(--text-muted); font-size: 13px; line-height: 1.5; }
.cookie__panel-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.cookie__panel-actions .cookie__btn {
  background: transparent; border: 1px solid var(--border); color: var(--text);
}
.cookie__panel-actions .cookie__btn:hover { border-color: var(--primary); }
.cookie__panel-actions .cookie__btn--ok { background: var(--accent); border-color: var(--accent); color: #fff; }
.cookie__panel-actions .cookie__btn--ok:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
@media (min-width: 768px) {
  .cookie__panel { left: auto; right: 24px; bottom: 24px; width: min(420px, calc(100vw - 48px)); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 20px; position: fixed; }
}

/* Interruptor (toggle) das categorias: o próprio checkbox é o elemento focável, só com a aparência trocada */
.switch { display: flex; align-items: center; gap: 12px; cursor: pointer; min-height: 44px; }
.switch input {
  appearance: none; -webkit-appearance: none; flex: none; width: 44px; height: 26px; margin: 0;
  border-radius: var(--radius-pill); background: var(--border); border: 1px solid var(--border);
  position: relative; cursor: pointer; transition: background 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.switch input::before {
  content: ""; position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%;
  background: #fff; box-shadow: var(--shadow-xs); transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.switch input:checked { background: var(--accent); border-color: var(--accent); }
.switch input:checked::before { transform: translateX(18px); }
.switch input:disabled { opacity: 0.55; cursor: not-allowed; }
.switch__label { font-weight: 700; }

/* ---------- Movimento reduzido ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
  .btn:hover, .card:hover, .card:hover .card__img { transform: none; }
}

@media (min-width: 1024px) {
  .step__title, .factor__title { min-height: 2.6em; }
}
@media (min-width: 1024px) {
  .split--tall { align-items: stretch; }
  .split--tall .split__media img { height: 100%; aspect-ratio: auto; min-height: 440px; }
}
h2.h2-wide { max-width: 28ch; }

/* =========================================================
   Componentes das páginas internas (a partir de /contato/)
   ========================================================= */

/* Topo das páginas internas */
.page-hero { background: var(--primary-hover); color: #fff; padding-block: 24px 48px; }
.page-hero__grid { display: grid; gap: 32px; margin-top: 32px; }
.page-hero__text { display: grid; gap: 20px; justify-items: start; }
.page-hero__title { font-size: clamp(2.25rem, 4.4vw, 3.5rem); line-height: 1.08; letter-spacing: -0.035em; max-width: 18ch; }
.proofs--stack { grid-template-columns: 1fr !important; align-self: end; }
@media (min-width: 1024px) {
  .page-hero { padding-block: 32px 80px; }
  .page-hero__grid { grid-template-columns: 7fr 4fr; gap: 72px; align-items: end; margin-top: 48px; }
  .proofs--stack .proof { padding-block: 18px; }
}

/* Breadcrumb */
.breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; }
.breadcrumb li { display: inline-flex; align-items: center; gap: 8px; }
.breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; color: var(--text-on-dark-muted); font-weight: 400; }
.breadcrumb a:hover { color: #fff; }
.breadcrumb .icon { color: var(--text-on-dark-muted); }
.breadcrumb [aria-current="page"] { color: #fff; }

/* Formulário ao lado do texto */
.form-layout { display: grid; gap: 40px; }
.form-layout__text { display: grid; gap: 20px; align-content: start; }
.form-layout__direct a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; }
@media (min-width: 1024px) {
  .form-layout { grid-template-columns: 5fr 7fr; gap: 64px; align-items: start; }
  .form-layout__text { position: sticky; top: calc(var(--header-h) + 32px); }
}
.section--alt .form { box-shadow: var(--shadow-md); border: 1px solid var(--border); }

/* Grade de 2 */
@media (min-width: 768px) { .grid--2 { grid-template-columns: repeat(2, 1fr); } }

/* Cards de opção (WhatsApp ou formulário) */
.option { display: flex; flex-direction: column; gap: 14px; padding: 32px 28px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); }
.option > .icon { color: var(--accent-text); }
.option__title { font-size: var(--fs-h4); line-height: 1.2; letter-spacing: -0.018em; }
.option > p { color: var(--text-body-soft); }
.option__list { display: grid; gap: 10px; margin-block: 4px 12px; flex: 1; }
.option__list li { display: flex; align-items: flex-start; gap: 10px; font-size: var(--fs-body-sm); }
.option__list .icon { color: var(--accent-text); margin-top: 2px; }
.option .btn { align-self: flex-start; }
@media (max-width: 767px) { .option .btn { align-self: stretch; } }

/* Linha do tempo em 2 colunas (dentro de composição com foto) */
@media (min-width: 768px) { .steps--2 { grid-template-columns: repeat(2, 1fr) !important; margin-top: 16px; } }

/* Lista do que separar */
.prep-list { display: grid; gap: 0; }
.prep-list li { display: flex; align-items: flex-start; gap: 12px; padding-block: 16px; font-size: var(--fs-body-sm); color: var(--text-body-soft); line-height: 1.55; }
.prep-list li + li { border-top: 1px solid var(--border); }
.prep-list li:last-child { padding-bottom: 0; }
.prep-list strong { color: var(--text); }
.prep-list .icon { color: var(--accent-text); margin-top: 1px; }
.criteria__stage .icon { color: #fff; }

/* Lista de bairros */
.bairros { columns: 2; column-gap: var(--gutter); border-top: 1px solid var(--border-dark); padding-top: 24px; }
.bairros li { break-inside: avoid; padding-block: 8px; color: #fff; font-size: var(--fs-body-sm); border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
@media (min-width: 768px) { .bairros { columns: 3; } }
@media (min-width: 1024px) { .bairros { columns: 5; } }
.source { font-size: 14px; color: var(--text-on-dark-muted); }
.source a { color: #fff; font-weight: 400; text-decoration: underline; text-underline-offset: 3px; }
.source a:hover { color: var(--accent-on-dark); }

/* Link longo que pode quebrar (e-mail) */
.link-arrow--break { word-break: break-word; }
.feature .link-arrow { margin-top: 4px; }
.steps--2 .step__title { min-height: 0 !important; }

/* Texto só para leitores de tela */
.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; }

/* Topo com imagem (hub) */
.page-hero__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-md); background: var(--secondary); }
@media (min-width: 1024px) { .page-hero__grid--media { grid-template-columns: 7fr 5fr; align-items: center; } }

/* Parágrafo de resposta direta logo abaixo do topo */
.intro { padding-block: 48px; border-bottom: 1px solid var(--border); }
.intro__text { font-family: var(--font-heading); font-weight: 600; font-size: clamp(1.25rem, 2vw, 1.625rem); line-height: 1.45; letter-spacing: -0.015em; color: var(--text); max-width: 60ch; }
.intro__text strong { font-weight: 700; }
@media (min-width: 1024px) { .intro { padding-block: 64px; } }

/* Tabela comparativa (vira cards no celular) */
.compare { border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; }
.compare table { width: 100%; border-collapse: collapse; font-size: var(--fs-body-sm); }
.compare thead th { background: var(--primary); color: #fff; text-align: left; font-weight: 700; padding: 16px 20px; font-size: 14px; }
.compare tbody th, .compare td { padding: 20px; text-align: left; vertical-align: top; border-top: 1px solid var(--border); line-height: 1.55; }
.compare td { color: var(--text-body-soft); }
.compare tbody th { width: 24%; font-weight: 400; }
.compare__name { display: block; font-family: var(--font-heading); font-weight: 700; font-size: 1.0625rem; color: var(--text); margin-bottom: 6px; }
.compare tbody th a { display: inline-block; font-size: 14px; line-height: 1.45; text-decoration: underline; text-underline-offset: 3px; padding-block: 4px; }
.compare tbody tr.is-featured { background: var(--accent-soft); }
@media (max-width: 767px) {
  .compare { border: 0; border-radius: 0; overflow: visible; }
  .compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
  .compare table, .compare tbody, .compare tr, .compare th, .compare td { display: block; width: 100%; }
  .compare tbody tr { border: 1px solid var(--border); border-radius: var(--radius-md); margin-bottom: 16px; background: var(--surface); overflow: hidden; }
  .compare tbody tr.is-featured { background: var(--surface); border-color: var(--accent); }
  .compare tbody th { width: 100%; background: var(--primary-soft); border-top: 0; }
  .compare td { padding: 14px 20px; }
  .compare td::before { content: attr(data-label); display: block; font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 2px; }
}
@media (min-width: 1024px) { .features--2l .feature__title { min-height: 2.6em; } }
@media (min-width: 1024px) { .criteria--2l .criteria__title h3 { min-height: 2.6em; display: flex; align-items: center; } }
.section--alt + .cta-final { padding-top: var(--section-y); }

/* =========================================================
   Página de serviço (a partir da higienização)
   ========================================================= */
/* Topo com formulário à direita */
.page-hero--form { padding-bottom: 56px; }
.page-hero__grid--form { align-items: start; }
.page-hero__form { display: grid; gap: 12px; }
.page-hero__form-title { font-family: var(--font-heading); font-weight: 700; font-size: var(--fs-h5); color: #fff; }
.page-hero__form .form { box-shadow: var(--shadow-dark); }
.page-hero--form .proofs--stack { margin-top: 12px; }
@media (min-width: 1024px) {
  .page-hero__grid--form { grid-template-columns: 6fr 6fr; gap: 56px; }
  .page-hero--form .page-hero__title { font-size: clamp(2.5rem, 4.2vw, 3.5rem); }
}

/* Subtítulos dentro de seções */
.sub-title { font-size: var(--fs-h5); line-height: 1.3; letter-spacing: -0.012em; margin-top: 12px; }
.sub-title--table { margin-top: 56px; }
.sub-title--gap { margin-top: 48px; }
.table-intro { margin: 8px 0 24px; color: var(--text-body-soft); max-width: 70ch; }
.table-intro a { text-decoration: underline; text-underline-offset: 3px; }
.source--light { margin-top: 16px; color: var(--text-muted); }
.source--light a { color: var(--primary); }
.section--dark .source--light { color: var(--text-on-dark-muted); }

/* Tabela de chuva com barras */
.rain table { width: 100%; border-collapse: collapse; font-size: var(--fs-body-sm); }
.rain caption { text-align: left; font-family: var(--font-heading); font-weight: 700; font-size: 1.0625rem; padding-bottom: 16px; color: var(--text); }
.rain thead th { text-align: left; font-size: 13px; font-weight: 700; color: var(--text-muted); padding: 0 0 8px; border-bottom: 1px solid var(--border-strong); }
.rain tbody th, .rain td { padding: 12px 0; border-bottom: 1px solid var(--border); text-align: left; vertical-align: middle; }
.rain tbody th { font-weight: 600; width: 26%; padding-right: 12px; }
.rain td:nth-child(2) { width: 52%; padding-right: 16px; }
.rain td:last-child { color: var(--text-muted); white-space: nowrap; }
.rain__bar { display: block; height: 10px; width: calc(var(--v) * 100%); background: var(--primary); border-radius: 999px; margin-bottom: 6px; }
.rain tbody tr:first-child .rain__bar { background: var(--accent); }
.rain__val { font-weight: 600; color: var(--text); }

/* Etapas em 3 colunas (6 etapas = 3 x 2) */
@media (min-width: 1024px) { .steps--3 { grid-template-columns: repeat(3, 1fr) !important; row-gap: 24px; } }

/* O que está incluído */
.include > li { display: flex; align-items: flex-start; gap: 14px; padding: 20px 0; border-top: 1px solid var(--border-strong); }
.include .icon { color: var(--success); margin-top: 2px; }
.include--out .icon { color: var(--text-muted); }
.include p { display: flex; flex-direction: column; gap: 2px; line-height: 1.45; }
.include strong { font-family: var(--font-heading); font-weight: 600; font-size: 1.0625rem; }
.include span { font-size: var(--fs-body-sm); color: var(--text-body-soft); }
.include span a { text-decoration: underline; text-underline-offset: 3px; }
.grid--3.include { row-gap: 0; }
@media (min-width: 768px) and (max-width: 1023px) { .include > :last-child:nth-child(odd) { grid-column: auto; } .grid--3.include { grid-template-columns: 1fr 1fr; } .grid--3.include--out { grid-template-columns: repeat(3, 1fr); } }

/* Grade de 2 colunas nos critérios */
@media (min-width: 768px) { .grid--2.criteria { grid-template-columns: repeat(2, 1fr); } }
.steps--3 .step__title { min-height: 0 !important; }
.sub-title + .include { margin-top: 12px; }

/* Topo com foto de fundo (só no computador) */
.page-hero--bg { position: relative; isolation: isolate; overflow: hidden; }
.page-hero__bg { display: none; }
@media (min-width: 1024px) {
  .page-hero__bg { display: block; position: absolute; inset: 0; z-index: -2; }
  .page-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
  .page-hero--bg::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10, 35, 67, 0.95) 0%, rgba(10, 35, 67, 0.86) 48%, rgba(10, 35, 67, 0.55) 100%); }
}

/* Resposta direta com imagem */
.intro__grid { display: grid; gap: 28px; align-items: center; }
.intro__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-md); background: var(--primary-soft); }
@media (min-width: 1024px) { .intro__grid { grid-template-columns: 5fr 7fr; gap: 64px; } }

/* Antes e depois */
.ba { display: grid; gap: 12px; margin: 0; }
.ba__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; border-radius: var(--radius-md); overflow: hidden; }
.ba__side { position: relative; }
.ba__side img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; background: var(--primary-soft); }
.ba__label {
  position: absolute; left: 12px; top: 12px; padding: 4px 12px; border-radius: var(--radius-pill);
  background: rgba(14, 39, 75, 0.9); color: #fff; font-size: 13px; font-weight: 700;
}
.ba__label--after { background: var(--accent); color: var(--primary-deep); }
.ba figcaption { font-size: var(--fs-body-sm); color: var(--text-body-soft); }

/* Nota de transparência */
.note { display: flex; align-items: flex-start; gap: 10px; margin-top: 32px; padding: 16px 20px; border-radius: var(--radius-md); background: var(--primary-soft); font-size: var(--fs-body-sm); color: var(--text-body-soft); max-width: 820px; }
.note .icon { color: var(--primary); margin-top: 1px; }
.intro__body { display: grid; gap: 16px; }
.ig-gap { height: 40px; }
.split--spaced { margin-top: 64px; }
.compare { background: var(--surface); }
@media (max-width: 767px) { .compare { background: transparent; } }

/* =========================================================
   Página Sobre (entity home)
   ========================================================= */
.intro--long .intro__text { font-size: clamp(1.125rem, 1.6vw, 1.375rem); line-height: 1.6; max-width: 72ch; }

/* Ficha da entidade */
.facts { border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; background: var(--surface); }
.facts table { width: 100%; border-collapse: collapse; font-size: var(--fs-body-sm); }
.facts th, .facts td { text-align: left; vertical-align: top; padding: 14px 20px; border-top: 1px solid var(--border); line-height: 1.55; }
.facts tr:first-child th, .facts tr:first-child td { border-top: 0; }
.facts th { width: 30%; font-weight: 700; color: var(--text); background: var(--primary-soft); }
.facts td { color: var(--text-body-soft); }
.facts td a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) {
  .facts th, .facts td { display: block; width: 100%; }
  .facts td { border-top: 0; padding-top: 4px; }
  .facts th { padding-bottom: 4px; }
}

/* Linha do tempo (3 marcos) */
.timeline { display: grid; gap: var(--gutter); }
.timeline__item { position: relative; display: grid; gap: 8px; padding: 24px 0 0; border-top: 2px solid var(--border); }
.timeline__item::before { content: ""; position: absolute; left: 0; top: -8px; width: 14px; height: 14px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px var(--surface); }
.timeline__when { font-family: var(--font-heading); font-weight: 700; font-size: 1.75rem; line-height: 1; letter-spacing: -0.03em; color: var(--primary); }
.timeline__title { font-size: var(--fs-h5); line-height: 1.3; letter-spacing: -0.012em; }
.timeline__item p { color: var(--text-body-soft); font-size: var(--fs-body-sm); }
.timeline__item p a { text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 768px) { .timeline { grid-template-columns: repeat(3, 1fr); } }

/* Números */
.numbers { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px var(--gutter); }
.numbers li { display: grid; gap: 8px; padding-top: 20px; border-top: 1px solid var(--border-strong); }
.numbers__value { font-family: var(--font-heading); font-weight: 700; font-size: clamp(2.25rem, 4.5vw, 3.5rem); line-height: 1; letter-spacing: -0.04em; color: var(--primary); }
.numbers__label { font-size: var(--fs-body-sm); color: var(--text-body-soft); }
@media (min-width: 1024px) { .numbers { grid-template-columns: repeat(4, 1fr); } }

/* Link dentro do texto do bloco escuro final */
.cta-final .lead a { color: #fff; }
.cta-final .lead a:hover { color: var(--accent-on-dark); }
.mvv .factor__title { min-height: 0 !important; }

/* =========================================================
   Página de contato
   ========================================================= */
/* 4 canais */
.channel { display: flex; flex-direction: column; gap: 10px; padding: 28px 24px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); }
.channel > .icon { color: var(--accent-text); }
.channel__title { font-size: var(--fs-h5); line-height: 1.3; letter-spacing: -0.012em; }
.channel__value { font-family: var(--font-heading); font-weight: 700; font-size: 1.125rem; color: var(--primary); }
.channel__value--sm { font-size: 0.9375rem; word-break: break-word; }
.channel > p:not(.channel__value) { color: var(--text-body-soft); font-size: var(--fs-body-sm); flex: 1; }

/* Blocos compactos de horário */
.option--compact { padding: 28px; }
.option--compact .option__title { font-size: var(--fs-h5); }

/* Mapa sob demanda */
.map { position: relative; width: 100%; margin-bottom: 40px; border-radius: var(--radius-lg); overflow: hidden; background: var(--primary-hover); aspect-ratio: 15 / 7; }
.map iframe { display: block; width: 100%; height: 100%; border: 0; }
@media (max-width: 767px) { .map { aspect-ratio: auto; height: 320px; } }

/* CTA de WhatsApp com a mensagem pronta */
.cta-final__inner--single { align-items: center; }
.wa-preview { display: grid; gap: 16px; padding: 28px; border-radius: var(--radius-lg); background: var(--surface); color: var(--text); }
.wa-preview__label { font-size: 13px; font-weight: 700; color: var(--text-muted); }
.wa-preview__msg { padding: 16px 18px; border-radius: 12px 12px 12px 4px; background: #E7F6EC; color: var(--text); font-size: var(--fs-body-sm); line-height: 1.7; }

/* =========================================================
   Fase 2: mega menu (seções 10.2 e 10.3) e rodapé de 4 colunas
   ========================================================= */
.nav--mega .nav__list--desktop { display: none; }
.nav__mobile { display: grid; gap: 0; }
.macc { border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.macc summary { display: flex; align-items: center; justify-content: space-between; min-height: 56px; cursor: pointer; list-style: none; font-size: 1.0625rem; font-weight: 600; color: #fff; }
.macc summary::-webkit-details-marker { display: none; }
.macc summary .icon { transition: transform var(--t); color: var(--accent); }
.macc[open] summary .icon { transform: rotate(180deg); }
.macc ul { display: grid; padding-bottom: 12px; }
.macc a, .nav__mobile-links a { display: flex; align-items: center; min-height: 48px; color: #fff; }
.macc a { padding-left: 12px; color: var(--text-on-dark-muted); font-weight: 400; }
.macc .macc__service { color: #fff; font-weight: 600; }
.macc .macc__all { color: var(--accent-on-dark); font-weight: 600; }
.nav__mobile-links { display: grid; padding-top: 8px; }
.nav__mobile-links li + li { border-top: 1px solid rgba(255, 255, 255, 0.12); }
.nav__mobile-links a { font-size: 1.0625rem; font-weight: 600; }
.nav__mobile-links .nav__mobile-cta { color: var(--accent-on-dark); font-weight: 700; }
.nav--mega a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--accent); }
.nav--mega .macc a[aria-current="page"], .nav--mega .nav__mobile-links a[aria-current="page"] { box-shadow: inset 3px 0 0 var(--accent); padding-left: 12px; }

@media (min-width: 1024px) {
  .nav--mega .nav__list--desktop { display: flex; }
  .nav--mega .nav__mobile { display: none; }
  .site-header--mega .nav__item--mega { position: static; }
  .site-header--mega .site-header__inner { position: static; }

  .mega {
    position: absolute; top: 100%; left: 50%; width: min(1120px, calc(100vw - 48px));
    display: grid; grid-template-columns: repeat(3, 1fr) 280px; gap: 0 24px;
    padding: 24px 32px 0; border-radius: var(--radius-lg); background: var(--surface); color: var(--text);
    box-shadow: 0 24px 56px rgba(16, 42, 80, 0.16); overflow: hidden;
    visibility: hidden; opacity: 0; transform: translate(-50%, 8px);
    transition: opacity var(--t) 150ms, transform var(--t) 150ms, visibility 0s linear 370ms;
  }
  .mega::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
  /* Fechado pelo Esc ou por clique: some na hora, sem o atraso do hover */
  .nav__item--mega.is-suppressed .mega { transition: none; }
  .nav__item--mega:not(.is-suppressed):hover .mega,
  .nav__item--mega:not(.is-suppressed):focus-within .mega,
  .nav__item--mega .nav__trigger[aria-expanded="true"] + .mega {
    visibility: visible; opacity: 1; transform: translate(-50%, 0);
    transition: opacity var(--t), transform var(--t), visibility 0s;
  }
  .mega a { color: var(--text); text-decoration: none; }
  .mega .icon-box { width: 40px; height: 40px; background: var(--primary-soft); color: var(--primary); transition: color var(--t); }
  .mega__head { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; min-height: 56px; padding: 8px 12px; margin: 0 -12px 12px; border-radius: var(--radius-md); border-bottom: 1px solid var(--border); }
  .mega__cols { grid-column: 1 / 4; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .mega__col { display: grid; align-content: start; gap: 2px; }
  .mega__col a { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 8px 10px; margin-inline: -10px; border-radius: var(--radius-md); transition: background-color var(--t); }
  .mega__col a:hover, .mega__head:hover { background: var(--accent-soft); color: var(--text); }
  .mega__col a:hover .icon-box, .mega__head:hover .icon-box { color: var(--accent-text); }
  .mega__text { display: flex; flex-direction: column; line-height: 1.35; }
  .mega__text strong { font-weight: 500; font-size: 15px; }
  .mega__service .mega__text strong, .mega__head .mega__text strong { font-weight: 600; }
  .mega__text span { font-size: 13px; color: var(--text-muted); }
  .mega__col .mega__all { min-height: 44px; gap: 8px; font-size: 14px; font-weight: 600; color: var(--primary); }
  .mega__all .icon { transition: transform var(--t); }
  .mega__all:hover .icon { transform: translateX(3px); }
  .mega a[aria-current="page"] { box-shadow: none; }
  .mega a[aria-current="page"] strong, .mega .mega__all[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 2px; text-underline-offset: 4px; }
  .mega__destaque { grid-column: 4; grid-row: 2; display: grid; gap: 10px; align-content: start; padding: 16px; border-radius: var(--radius-md); background: var(--surface-alt); margin-bottom: 20px; }
  .mega__destaque-media { position: relative; }
  .mega__destaque-media img { width: 100%; aspect-ratio: 8 / 5; object-fit: cover; border-radius: var(--radius-sm); background: var(--primary-soft); }
  .mega__badge { position: absolute; left: 8px; top: 8px; }
  .mega__destaque-title { font-family: var(--font-heading); font-weight: 700; font-size: 1.0625rem; }
  .mega__destaque-text { font-size: 14px; color: var(--text-body-soft); line-height: 1.5; }
  .mega__destaque .btn { color: var(--primary-deep); font-size: 14px; }
  .mega__faixa { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 24px; margin: 8px -32px 0; padding: 12px 32px; background: var(--primary-soft); }
  .mega__faixa a, .mega__faixa-note { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 14px; font-weight: 600; color: var(--primary); }
  .mega__faixa a:hover { color: var(--accent-text); }
  .mega__faixa-note { margin-left: auto; font-weight: 400; color: var(--text-body-soft); }
  .mega__faixa .icon { color: var(--accent-text); }
}
@media (min-width: 768px) { .footer-cols--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .footer-cols--4 { grid-template-columns: repeat(4, 1fr); } }

/* =========================================================
   Blog: hub e categoria
   ========================================================= */
.page-hero--compact { padding-block: 24px 56px; }
.page-hero__text--wide { margin-top: 32px; max-width: 820px; }
.page-hero__text--wide .page-hero__title { max-width: 22ch; }
.page-hero .hero__lead a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.page-hero .hero__lead a:hover { color: var(--accent-on-dark); }
@media (min-width: 1024px) { .page-hero--compact { padding-block: 32px 72px; } }

.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.chip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: var(--radius-pill); border: 1px solid rgba(255, 255, 255, 0.3); color: #fff; font-size: 15px; font-weight: 600; }
.chip .icon { color: var(--accent); }
.chip:hover { background: #fff; color: var(--primary); text-decoration: none; }

.section-label { font-size: var(--fs-h4); line-height: 1.2; letter-spacing: -0.02em; margin-bottom: 24px; max-width: none; }

/* Guia em destaque */
.featured { display: grid; gap: 0; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); position: relative; }
.featured__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--primary-soft); }
.featured__body { display: grid; gap: 14px; align-content: center; padding: 28px 24px; }
.featured__title { font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.2; letter-spacing: -0.02em; }
.featured__title a { color: var(--text); }
.featured__title a:hover { color: var(--accent-text); }
.featured__excerpt { color: var(--text-body-soft); font-size: var(--fs-body-lg); }
@media (min-width: 1024px) {
  .featured { grid-template-columns: 7fr 5fr; }
  .featured__img { height: 100%; }
  .featured__body { padding: 40px; }
}

/* Cards de artigo */
.posts { display: grid; gap: var(--gutter); }
@media (min-width: 768px) { .posts--4, .posts--3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .posts--4 { grid-template-columns: repeat(4, 1fr); } .posts--3 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 768px) and (max-width: 1023px) { .posts--3 > :last-child:nth-child(odd) { grid-column: 1 / -1; } }
.post { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); transition: transform var(--t), box-shadow var(--t); }
.post:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.post__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--primary-soft); }
.post__body { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 20px; }
.post__cat { font-size: 13px; font-weight: 700; color: var(--accent-text-soft); }
.post__title { font-size: 1.0625rem; line-height: 1.35; letter-spacing: -0.01em; }
.post__title a { color: var(--text); }
.post__title a::after { content: ""; position: absolute; inset: 0; }
.post__title a:hover { color: var(--accent-text); text-decoration: none; }
.post__title a:focus-visible { outline: none; }
.post:focus-within { outline: 3px solid var(--focus); outline-offset: 3px; }
.post__excerpt { color: var(--text-body-soft); font-size: var(--fs-body-sm); flex: 1; }
.post__meta { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; color: var(--text-muted); margin-top: 4px; }

/* Cards de assunto (cluster) */
.topic { display: flex; flex-direction: column; gap: 12px; padding: 28px 24px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); }
.topic > .icon { color: var(--accent-text); }
.topic__title { font-size: var(--fs-h5); line-height: 1.3; }
.topic > p:not(.topic__count) { color: var(--text-body-soft); font-size: var(--fs-body-sm); flex: 1; }
.topic__count { font-size: 13px; font-weight: 700; color: var(--primary); }

/* Faixa de CTA sem formulário */
.cta-band { align-items: center; }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: 12px; }
@media (min-width: 1024px) { .cta-band { grid-template-columns: 7fr 5fr; } .cta-band__actions { justify-content: flex-end; } }

/* Paginação (ativa a partir do 13º artigo) */
.pagination { margin-top: 48px; }
.pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.pagination__item { display: inline-flex; align-items: center; gap: 6px; min-width: 44px; min-height: 44px; padding: 0 14px; justify-content: center; border: 1px solid var(--border-strong); border-radius: var(--radius-pill); background: var(--surface); color: var(--primary); font-weight: 600; }
.pagination__item[aria-current="page"] { background: var(--primary); border-color: var(--primary); color: #fff; }
.pagination__item.is-disabled { color: var(--text-muted); border-color: var(--border); }
.post__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }

/* =========================================================
   Artigo do blog
   ========================================================= */
.page-hero--article { padding-bottom: 48px; }
.article-head { display: grid; gap: 16px; max-width: 820px; margin-top: 32px; }
.article-head__title { max-width: 24ch; }
.post__cat--dark { color: var(--accent-on-dark); }
.byline { display: flex; align-items: center; gap: 14px; margin-top: 8px; }
.byline__avatar { flex: none; display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--accent); color: var(--primary-deep); }
.byline__avatar--lg { width: 64px; height: 64px; }
.byline__text { display: grid; gap: 4px; font-size: 15px; color: var(--text-on-dark-muted); line-height: 1.5; }
.byline__text a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.byline__meta { display: flex; flex-wrap: wrap; gap: 4px 8px; font-size: 14px; }

.article-layout { padding-block: 48px 72px; }
.prose { max-width: 760px; margin-inline: auto; font-size: 1.0625rem; line-height: 1.8; color: var(--text-body-soft); }
.prose > * + * { margin-top: 20px; }
.prose h2 { margin-top: 56px; font-size: clamp(1.625rem, 2.6vw, 2.125rem); line-height: 1.2; letter-spacing: -0.025em; color: var(--text); max-width: none; }
.prose h3 { margin-top: 36px; font-size: 1.25rem; line-height: 1.35; letter-spacing: -0.012em; color: var(--text); }
.prose h2 + p, .prose h3 + p { margin-top: 12px; }
.prose strong { color: var(--text); }
.prose a:not(.btn):not(.link-arrow) { text-decoration: underline; text-underline-offset: 3px; }
.prose__answer { font-family: var(--font-heading); font-weight: 600; font-size: clamp(1.125rem, 1.6vw, 1.3125rem); line-height: 1.6; color: var(--text); padding-left: 20px; border-left: 4px solid var(--accent); }
.prose > ul:not([class]), .prose > ol:not([class]) { display: grid; gap: 8px; padding-left: 24px; }
.prose > ul:not([class]) { list-style: disc; }
.prose > ol:not([class]) { list-style: decimal; }
.prose > ul:not([class]) li::marker, .prose > ol:not([class]) li::marker { color: var(--accent-text); font-weight: 700; }
.prose .grid { margin-top: 24px; row-gap: 0; }
.prose .feature__title { margin-top: 0; font-size: 1.125rem; }
.prose .prep-list { margin-top: 16px; }
.prose__figure img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-md); background: var(--primary-soft); }

.summary-box { padding: 24px 28px; border-radius: var(--radius-md); background: var(--primary-soft); }
.summary-box__title, .toc__title, .formula__title, .cta-box__title, .author-box__title { font-family: var(--font-heading); font-weight: 700; font-size: 1.125rem; color: var(--text); }
.summary-box ul { display: grid; gap: 10px; margin-top: 12px; }
.summary-box li { display: flex; gap: 10px; font-size: var(--fs-body-sm); line-height: 1.6; color: var(--text); }
.summary-box .icon { color: var(--success); margin-top: 4px; }

.toc { padding: 20px 28px; border: 1px solid var(--border); border-radius: var(--radius-md); }
.toc ol { margin-top: 8px; padding-left: 20px; list-style: decimal; display: grid; gap: 2px; font-size: var(--fs-body-sm); }
.toc li::marker { color: var(--accent-text); font-weight: 700; }
.toc a { display: inline-flex; align-items: center; min-height: 36px; text-decoration: none !important; color: var(--primary); }
.toc a:hover { text-decoration: underline !important; }

.formula { padding: 24px 28px; border-radius: var(--radius-md); background: var(--primary-hover); color: #fff; }
.formula__title { color: #fff; }
.formula__line { margin-top: 10px; font-family: var(--font-heading); font-weight: 700; font-size: clamp(1rem, 1.8vw, 1.25rem); color: var(--accent-on-dark); line-height: 1.5; }
.formula__note { margin-top: 8px; font-size: var(--fs-body-sm); color: var(--text-on-dark-muted); }

.compare--prose table { font-size: 15px; }
.compare--prose tbody th { width: auto; font-weight: 600; color: var(--text); }
.compare--prose thead th { font-size: 13px; }
.edge { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: var(--radius-pill); background: var(--accent-soft); color: var(--accent-text-soft); font-size: 12px; font-weight: 700; white-space: nowrap; }
.table-note { font-size: 14px; color: var(--text-muted); margin-top: 12px !important; }

.cta-box { display: grid; gap: 12px; justify-items: start; padding: 28px; border-radius: var(--radius-md); border: 1px solid var(--accent); background: var(--accent-soft); color: var(--text); margin-block: 40px !important; }
.cta-box p { font-size: var(--fs-body-sm); line-height: 1.6; }

.prose .faq { margin-top: 16px; }
.prose .faq__answer { padding-right: 0; }

.author-box { display: flex; gap: 20px; align-items: flex-start; max-width: 760px; margin: 64px auto 0; padding: 28px; border-radius: var(--radius-md); background: var(--surface-alt); }
.author-box__text { display: grid; gap: 8px; font-size: var(--fs-body-sm); color: var(--text-body-soft); line-height: 1.6; }

/* Header simplificado (obrigado) */
.site-header--simple .site-header__wa { margin-left: auto; display: inline-flex; }
@media (max-width: 379px) { .site-header--simple .site-header__wa span { display: none; } }

/* Páginas legais */
.legal-date { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--text-on-dark-muted); }
.legal-date .icon { color: var(--accent); }
.prose--legal h2 { font-size: clamp(1.375rem, 2.2vw, 1.75rem); margin-top: 48px; }
.legal-list { display: grid; gap: 10px; padding-left: 20px; list-style: disc; }
.legal-list li::marker { color: var(--accent-text); }

/* Obrigado */
.thanks__box { display: grid; gap: 18px; justify-items: start; max-width: 760px; margin-top: 16px; }
.thanks__icon { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--success); color: #fff; }
.thanks__time { display: flex; align-items: flex-start; gap: 8px; margin-top: 32px; font-size: 15px; color: var(--text-body-soft); }
.thanks__time .icon { flex: none; color: var(--accent-text); margin-top: 3px; }
.steps--thanks .step__title { min-height: 0 !important; }
@media (min-width: 768px) { .steps--thanks { grid-template-columns: repeat(3, 1fr) !important; } }

/* 404 */
.error-code { font-family: var(--font-heading); font-weight: 700; font-size: clamp(4rem, 12vw, 7rem); line-height: 1; letter-spacing: -0.05em; color: var(--accent); }
.guides-row { display: grid; gap: 14px; margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--border); }
.chips--light .chip { border-color: var(--border-strong); color: var(--primary); }
.chips--light .chip:hover { background: var(--primary); border-color: var(--primary); color: #fff; }
