/* ==========================================================================
   Ponto Tres Seguros - sistema visual "O Ponto"
   O nome da marca significa "ponto tres": o ponto vermelho e a assinatura.
   Linguagem grafica derivada do logotipo: elipse inclinada a -13 graus e
   triangulos vermelhos nos cantos. Cores de marca sao reescritas no fim do
   arquivo pelo gerador a partir de site.config.json.
   ========================================================================== */

@font-face {
  font-family: "Fraunces";
  src: url("/assets/fonts/fraunces-latin-wght.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Manrope";
  src: url("/assets/fonts/manrope-latin.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}

:root {
  --brand: #D80000;
  --brand-strong: #9E0000;
  --accent: #3C434A;
  --surface: #FFFFFF;
  --surface-muted: #F2F4F6;
  --text: #1C2024;
  --muted: #596069;
  --border: #DCE0E5;
  --field-border: #868E96; /* 3,3:1 sobre branco (WCAG 1.4.11) */
  --focus: #22272C;

  --ink: #14171B;
  --ink-2: #1B1F24;
  --ink-3: #252A30;
  --on-ink: #F3F4F6;
  --on-ink-muted: #A9B0B8;
  --brand-on-ink: #FF6259;
  --line-on-ink: rgb(255 255 255 / 12%);
  --brand-tint: #FCEDEC;

  --font: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display: "Fraunces", Georgia, "Palatino Linotype", "Iowan Old Style", serif;
  --radius: 1rem;
  --radius-sm: .65rem;
  --radius-lg: 1.5rem;
  --shadow-sm: 0 1px 2px rgb(20 23 27 / 6%), 0 6px 18px rgb(20 23 27 / 5%);
  --shadow-md: 0 2px 6px rgb(20 23 27 / 6%), 0 22px 48px rgb(20 23 27 / 11%);
  --shadow-lg: 0 30px 80px rgb(20 23 27 / 22%);
  --max: 76rem;
  --gap: clamp(1rem, 2.4vw, 1.5rem);
  --section-y: clamp(3.5rem, 8vw, 6.5rem);
  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: 6rem; }
body {
  margin: 0;
  color: var(--text);
  background: var(--surface);
  font-family: var(--font);
  font-size: 1.0625rem;
  font-weight: 460;
  line-height: 1.7;
  font-feature-settings: "kern", "liga";
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg, video { display: block; max-width: 100%; height: auto; }
p { text-wrap: pretty; }
a { color: var(--brand-strong); text-underline-offset: .2em; text-decoration-thickness: .07em; }
a:hover { color: var(--brand); }
:focus-visible { outline: .19rem solid var(--focus); outline-offset: .2rem; border-radius: .3rem; }
::selection { background: var(--brand); color: #fff; }
.shell { width: min(100% - 2.5rem, var(--max)); margin-inline: auto; }
.page { overflow-x: clip; }

.skip-link {
  position: fixed; z-index: 100; inset: .75rem auto auto .75rem;
  padding: .75rem 1.1rem; border-radius: var(--radius-sm);
  background: var(--ink); color: #fff; box-shadow: var(--shadow-md);
  font-weight: 750; text-decoration: none; transform: translateY(-200%);
}
.skip-link:focus { transform: none; color: #fff; }

/* ---------- icones (mascara CSS: herdam a cor do texto) ---------- */
.ico {
  display: inline-block; flex: none;
  width: 1.2em; height: 1.2em;
  background-color: currentColor;
  -webkit-mask: var(--i) center / contain no-repeat;
  mask: var(--i) center / contain no-repeat;
  vertical-align: -.22em;
}
.ico-alerta { --i: url("/assets/icons/alerta.svg"); }
.ico-aviao { --i: url("/assets/icons/aviao.svg"); }
.ico-balanca { --i: url("/assets/icons/balanca.svg"); }
.ico-calendario { --i: url("/assets/icons/calendario.svg"); }
.ico-caminhao { --i: url("/assets/icons/caminhao.svg"); }
.ico-carro { --i: url("/assets/icons/carro.svg"); }
.ico-carteira { --i: url("/assets/icons/carteira.svg"); }
.ico-casa { --i: url("/assets/icons/casa.svg"); }
.ico-casa-credito { --i: url("/assets/icons/casa-credito.svg"); }
.ico-chama { --i: url("/assets/icons/chama.svg"); }
.ico-chave { --i: url("/assets/icons/chave.svg"); }
.ico-check { --i: url("/assets/icons/check.svg"); }
.ico-contrato { --i: url("/assets/icons/contrato.svg"); }
.ico-conversa { --i: url("/assets/icons/conversa.svg"); }
.ico-documento { --i: url("/assets/icons/documento.svg"); }
.ico-email { --i: url("/assets/icons/email.svg"); }
.ico-empresa { --i: url("/assets/icons/empresa.svg"); }
.ico-facebook { --i: url("/assets/icons/facebook.svg"); }
.ico-financeiro { --i: url("/assets/icons/financeiro.svg"); }
.ico-instagram { --i: url("/assets/icons/instagram.svg"); }
.ico-local { --i: url("/assets/icons/local.svg"); }
.ico-locacao { --i: url("/assets/icons/locacao.svg"); }
.ico-moedas { --i: url("/assets/icons/moedas.svg"); }
.ico-moto { --i: url("/assets/icons/moto.svg"); }
.ico-percentual { --i: url("/assets/icons/percentual.svg"); }
.ico-pessoas { --i: url("/assets/icons/pessoas.svg"); }
.ico-portal { --i: url("/assets/icons/portal.svg"); }
.ico-saude { --i: url("/assets/icons/saude.svg"); }
.ico-seguradoras { --i: url("/assets/icons/seguradoras.svg"); }
.ico-seguros { --i: url("/assets/icons/seguros.svg"); }
.ico-seta { --i: url("/assets/icons/seta.svg"); }
.ico-telefone { --i: url("/assets/icons/telefone.svg"); }
.ico-vida { --i: url("/assets/icons/vida.svg"); }
.ico-volante { --i: url("/assets/icons/volante.svg"); }
.ico-whatsapp { --i: url("/assets/icons/whatsapp.svg"); }

/* ---------- tipografia ---------- */
h1, h2, h3, h4 { margin: 0; color: inherit; font-weight: 800; line-height: 1.08; letter-spacing: -.035em; text-wrap: balance; overflow-wrap: anywhere; }
.hero-copy > *, .cta-copy > *, .statement > * { min-width: 0; }
h1, h2 { font-family: var(--font-display); font-weight: 600; line-height: 1.05; letter-spacing: -.025em; font-optical-sizing: auto; }
h1 { font-size: clamp(2.25rem, 1.2rem + 4.2vw, 4.4rem); letter-spacing: -.03em; }
h2 { font-size: clamp(1.75rem, 1.15rem + 2.2vw, 2.85rem); }
h3 { font-size: clamp(1.1rem, 1rem + .45vw, 1.3rem); line-height: 1.25; letter-spacing: -.018em; }
.kicker, .eyebrow {
  display: inline-flex; align-items: center; gap: .6rem;
  margin: 0; color: var(--brand); font-size: .76rem; font-weight: 800;
  letter-spacing: .15em; line-height: 1.3; text-transform: uppercase;
}
.kicker::before, .eyebrow::before {
  content: ""; width: .62rem; height: .62rem; background: currentColor;
  clip-path: polygon(0 0, 100% 0, 0 100%);
}
.lead { max-width: 40rem; margin: 0; font-size: clamp(1.08rem, 1rem + .45vw, 1.28rem); line-height: 1.6; }
.lede { font-size: 1.16rem; font-weight: 560; line-height: 1.6; color: var(--text); }
.num, .stat b, .trust-num, .card-index { font-variant-numeric: tabular-nums lining-nums; }

/* ---------- cabecalho ---------- */
.site-header {
  position: sticky; z-index: 40; top: 0;
  background: rgb(255 255 255 / 90%);
  backdrop-filter: saturate(1.4) blur(.8rem);
  -webkit-backdrop-filter: saturate(1.4) blur(.8rem);
  border-bottom: 1px solid transparent;
  transition: box-shadow .25s ease, border-color .25s ease;
}
.site-header[data-scrolled="true"] { border-bottom-color: var(--border); box-shadow: 0 8px 30px rgb(20 23 27 / 7%); }
.header-row { display: flex; align-items: center; gap: 1.25rem; min-height: 4.6rem; }
.brand { display: inline-flex; align-items: center; flex: none; color: var(--text); text-decoration: none; }
.brand img { display: block; width: auto; height: 3.4rem; }
/* menu centralizado entre o logotipo e o botao do WhatsApp (mesmo espaco dos dois lados) */
.site-nav { margin-inline: auto; }
.site-nav ul { display: flex; gap: .15rem; margin: 0; padding: 0; list-style: none; }
.site-nav a {
  position: relative; display: block; padding: .55rem .66rem;
  color: var(--text); font-size: .94rem; font-weight: 650; letter-spacing: -.01em; white-space: nowrap;
  text-decoration: none; border-radius: var(--radius-sm); transition: color .15s ease;
}
.site-nav a::after {
  content: ""; position: absolute; left: 50%; bottom: .18rem;
  width: .32rem; height: .32rem; border-radius: 50%; background: var(--brand);
  transform: translateX(-50%) scale(0); transition: transform .2s var(--ease);
}
.site-nav a:hover { color: var(--brand-strong); }
.site-nav a:hover::after, .site-nav a[aria-current]::after { transform: translateX(-50%) scale(1); }
.site-nav a[aria-current] { color: var(--brand-strong); }

.header-cta { padding: .62rem 1rem; font-size: .92rem; }
.menu-toggle { display: none; }
.menu-toggle-bars { position: relative; display: inline-block; width: 1.1rem; height: 2px; margin-right: .55rem; background: currentColor; transition: background .2s; }
.menu-toggle-bars::before, .menu-toggle-bars::after {
  content: ""; position: absolute; left: 0; width: 100%; height: 2px; background: currentColor; transition: transform .25s var(--ease);
}
.menu-toggle-bars::before { top: -.36rem; }
.menu-toggle-bars::after { top: .36rem; }
.menu-toggle[aria-expanded="true"] .menu-toggle-bars { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle-bars::before { transform: translateY(.36rem) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle-bars::after { transform: translateY(-.36rem) rotate(-45deg); }

/* ---------- botoes ---------- */
.button {
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  width: fit-content; padding: .82rem 1.25rem;
  border: 1.5px solid transparent; border-radius: var(--radius-sm);
  font: inherit; font-size: .98rem; font-weight: 750; line-height: 1.2; letter-spacing: -.01em;
  text-decoration: none; cursor: pointer;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s var(--ease), box-shadow .18s ease;
}
.button .ico { width: 1.15em; height: 1.15em; vertical-align: 0; }
.button-primary { color: #fff; background: var(--brand); box-shadow: 0 8px 22px rgb(216 0 0 / 24%); }
.button-primary:hover { color: #fff; background: var(--brand-strong); transform: translateY(-1px); box-shadow: 0 12px 28px rgb(216 0 0 / 30%); }
.button-ghost { color: var(--text); background: transparent; border-color: rgb(28 32 36 / 22%); }
.button-ghost:hover { color: var(--text); border-color: var(--text); background: rgb(28 32 36 / 4%); }
.button-secondary { color: var(--text); background: var(--surface-muted); border-color: var(--border); }
.button-lg { padding: 1rem 1.45rem; font-size: 1.02rem; }
.button-block { width: 100%; }
.link-arrow {
  display: inline-flex; align-items: center; gap: .45rem;
  color: var(--brand-strong); font-weight: 750; text-decoration: none;
}
.link-arrow .ico { transition: transform .2s var(--ease); }
.link-arrow:hover .ico { transform: translateX(.25rem); }

/* ---------- topo (hero) ---------- */
.hero {
  position: relative; isolation: isolate; overflow: hidden;
  color: var(--on-ink);
  background:
    url("/assets/images/grao.svg"),
    radial-gradient(60rem 30rem at 92% -10%, rgb(216 0 0 / 22%), transparent 60%),
    radial-gradient(40rem 26rem at -10% 110%, rgb(255 255 255 / 5%), transparent 60%),
    var(--ink);
  padding-block: clamp(2.75rem, 6vw, 5.5rem) clamp(4.25rem, 8vw, 7.25rem);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - clamp(1.25rem, 3.2vw, 3.25rem)), 0 100%);
}
/* A camada escura fica sobre a foto, preservando a opacidade do texto. */
.hero::before {
  content: ""; position: absolute; z-index: -1; inset: 0;
  background: linear-gradient(90deg, rgb(16 20 24 / 88%) 0%, rgb(16 20 24 / 76%) 45%, rgb(16 20 24 / 42%) 100%);
  pointer-events: none;
}
.hero::after {
  content: ""; position: absolute; z-index: -1; left: 0; top: 0;
  width: clamp(2.25rem, 5.5vw, 4.75rem); aspect-ratio: 1;
  background: var(--brand); clip-path: polygon(0 0, 100% 0, 0 100%);
}
.hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; }
.hero-copy { display: grid; gap: 1.25rem; justify-items: start; max-width: 44rem; }
.hero h1 { color: #fff; }
.hero h1::after { content: "."; color: var(--brand-on-ink); }
.hero .eyebrow { color: var(--brand-on-ink); }
.hero .lead { color: var(--on-ink-muted); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .5rem; }
.hero .button-ghost { color: #fff; border-color: rgb(255 255 255 / 30%); }
.hero .button-ghost:hover { color: #fff; border-color: #fff; background: rgb(255 255 255 / 7%); }
.hero :focus-visible { outline-color: #fff; }
.page-visual {
  position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%;
  min-width: 0; margin: 0; overflow: hidden; pointer-events: none;
}
.page-visual img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 50% 40%; }

.breadcrumbs ol {
  display: flex; flex-wrap: wrap; gap: .25rem .5rem;
  margin: 0 0 .35rem; padding: 0; list-style: none;
  color: var(--on-ink-muted); font-size: .86rem; font-weight: 600;
}
.breadcrumbs a { color: var(--on-ink-muted); text-decoration: none; }
.breadcrumbs a:hover { color: #fff; text-decoration: underline; }
.breadcrumbs li + li::before { content: "/"; content: "/" / ""; margin-right: .5rem; opacity: .45; }
.breadcrumbs [aria-current="page"] { color: #fff; }

@media (min-width: 60rem) {
  .page-home .hero { padding-top: clamp(3rem, 5vw, 4.5rem); padding-bottom: clamp(7rem, 10vw, 8.5rem); }
  .page-home h1 { font-size: clamp(2.9rem, 1.5rem + 2.75vw, 4rem); }
  .page-pillar h1 { font-size: clamp(2.6rem, 1.4rem + 2.6vw, 3.75rem); }
}
.page-service .hero h1, .page-segment .hero h1 { font-size: clamp(2.1rem, 1.25rem + 3.3vw, 3.75rem); }
.page-service .hero-copy, .page-segment .hero-copy { max-width: 44rem; }

.page-legal .hero h1, .page-error .hero h1 { font-size: clamp(2.1rem, 1.3rem + 3vw, 3.5rem); }

/* ---------- secoes ---------- */
.editorial-photo { margin: 1.75rem 0; overflow: hidden; border-radius: .6rem; }
.editorial-photo img { width: 100%; height: auto; }

.section-head { display: grid; gap: .85rem; max-width: 46rem; margin-bottom: clamp(1.75rem, 4vw, 2.75rem); }
.section-head h2::after { content: "."; color: var(--brand); }
.section-head > p:not(.kicker) { margin: 0; color: var(--muted); font-size: 1.1rem; }
.section-head-center { margin-inline: auto; text-align: center; justify-items: center; }

.section-cards { padding-block: var(--section-y) 0; }
.section-related { padding-block: var(--section-y) 0; }
main > .section-related:last-child { padding-bottom: var(--section-y); }
.page-layout:has(+ .cta-band) { padding-bottom: 0; }
.page-error .content-flow > section:last-child > .request-grid:last-child { margin-bottom: 0; }
.section-related .section-head h2 { font-size: clamp(1.45rem, 1.1rem + 1.4vw, 2.1rem); }

/* fluxo editorial */
.page-layout { padding-block: var(--section-y); }
.content-flow { min-width: 0; }
.content-flow > section { padding-block: var(--section-y); }
.content-flow > section:first-child { padding-top: 0; }
.content-flow > section:last-child { padding-bottom: 0; }
.content-flow > section > :where(h2, h3, p, ul:not([class]), ol:not([class]), dl, .checklist, .steps:not(.steps-row), .callout, .faq) { max-width: 46rem; }
.content-flow > section > h2 { margin-bottom: 1.25rem; }
.content-flow > section > h2 + .lede { margin-top: 0; }
.content-flow h3 { margin: 1.9rem 0 .6rem; }
.content-flow :where(p) { margin: 0 0 1.1rem; }
.content-flow :where(ul, ol) { margin: 0 0 1.35rem; padding-left: 1.25rem; }
.content-flow :where(li + li) { margin-top: .5rem; }
.content-flow strong { font-weight: 750; }

.page-home .page-layout, .page-pillar .page-layout, .page-segment .page-layout { padding-block: var(--section-y) 0; }

/* paginas de leitura com coluna lateral */
.page-service .content-flow > section, .page-legal .content-flow > section { padding-block: 0 clamp(2.25rem, 5vw, 3.25rem); }
.page-service .content-flow > section > h2, .page-legal .content-flow > section > h2, .page-error .content-flow > section > h2 {
  position: relative; font-size: clamp(1.5rem, 1.15rem + 1.3vw, 2.05rem); margin-bottom: 1rem; scroll-margin-top: 6.5rem;
}
.page-service .content-flow > section + section, .page-legal .content-flow > section + section {
  padding-top: clamp(2.25rem, 5vw, 3.25rem); border-top: 1px solid var(--border);
}
.page-aside { display: none; }
@media (min-width: 64rem) {
  .page-service .page-layout, .page-legal .page-layout {
    display: grid; grid-template-columns: minmax(0, 1fr) 18.5rem; gap: clamp(3rem, 5vw, 5.5rem); align-items: start;
  }
  .page-aside { display: block; height: 100%; }
}
.aside-sticky { position: sticky; top: 6.5rem; display: grid; gap: 1.25rem; }
.toc { padding: 1.25rem 1.3rem; border: 1px solid var(--border); border-radius: var(--radius); }
.toc-title { margin: 0 0 .6rem; color: var(--muted); font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; }
.toc li { counter-increment: toc; }
.toc li + li { margin-top: .1rem; }
.toc a {
  display: grid; grid-template-columns: 1.6rem 1fr; gap: .25rem; padding: .38rem 0;
  color: var(--text); font-size: .9rem; font-weight: 600; line-height: 1.4; text-decoration: none;
}
.toc a::before { content: counter(toc, decimal-leading-zero); color: var(--muted); font-size: .76rem; font-weight: 700; padding-top: .1rem; }
.toc a:hover, .toc a[aria-current="true"] { color: var(--brand-strong); }
.toc a[aria-current="true"]::before { color: var(--brand); }
.aside-card {
  position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr); gap: .8rem;
  padding: 1.4rem 1.3rem; border-radius: var(--radius); color: var(--on-ink); background: var(--ink);
}
.aside-card::after {
  content: ""; position: absolute; right: 0; bottom: 0; width: 2.4rem; aspect-ratio: 1;
  background: var(--brand); clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.aside-card .aside-title { margin: 0; color: #fff; font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; line-height: 1.2; letter-spacing: -.015em; }
.aside-card .aside-proof { display: grid; gap: .3rem; margin: 0; padding: 0; list-style: none; color: #fff; font-size: .86rem; font-weight: 700; line-height: 1.4; }
.inline-proof { flex-basis: 100%; margin: 0; color: var(--muted); font-size: .86rem; font-weight: 700; }
.aside-title::after { content: "."; color: var(--brand-on-ink); }
.aside-title.no-dot::after { content: none; }
.aside-card p { margin: 0; color: var(--on-ink-muted); font-size: .93rem; line-height: 1.55; }
.aside-card :focus-visible { outline-color: #fff; }
.aside-link { display: inline-flex; align-items: flex-start; gap: .5rem; min-width: 0; color: #fff; font-size: .95rem; font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.aside-link .ico { margin-top: .15em; }
.aside-link:hover { color: #fff; text-decoration: underline; }
.aside-back { display: inline-flex; align-items: center; gap: .5rem; color: var(--muted); font-size: .92rem; font-weight: 700; text-decoration: none; }
.aside-back .ico { transform: scaleX(-1); }
.aside-back:hover { color: var(--brand-strong); }

/* ---------- faixas de largura total ---------- */
.band { margin-inline: calc(50% - 50vw); padding-inline: calc(50vw - 50%); }
.band-mist { background: var(--surface-muted); }
.band-ink {
  position: relative; isolation: isolate; color: var(--on-ink);
  background: url("/assets/images/grao.svg"), radial-gradient(50rem 26rem at 100% 0%, rgb(216 0 0 / 16%), transparent 60%), var(--ink);
}
.band-ink::before {
  content: ""; position: absolute; z-index: -1; left: -18rem; bottom: -14rem; width: 56rem; height: 28rem;
  border: 1px solid rgb(255 255 255 / 8%); border-radius: 50%; transform: rotate(-13deg);
}
.band-ink h2, .band-ink h3 { color: #fff; }
.band-ink .section-head h2::after { color: var(--brand-on-ink); }
.band-ink .kicker { color: var(--brand-on-ink); }
.band-ink p, .band-ink .section-head > p:not(.kicker) { color: var(--on-ink-muted); }
.band-ink .statement-text { color: #fff; }
.band-ink a:not(.button) { color: #fff; }
.band-ink :focus-visible { outline-color: #fff; }
.content-flow > section.band { padding-block: var(--section-y); }

/* botoes fantasma sobre faixas escuras */
.band-ink .button-ghost { color: #fff; border-color: rgb(255 255 255 / 30%); }
.band-ink .button-ghost:hover { color: #fff; border-color: #fff; background: rgb(255 255 255 / 7%); }
.band-ink .grid > .button { width: 100%; }
.band-ink .statement-text em { color: var(--brand-on-ink); }
.address-card .ico-chip { margin-bottom: .5rem; }
.address-card span:not(.ico-chip):not(.ico) { color: var(--muted); }

/* ---------- grades e blocos ---------- */
.grid { display: grid; gap: var(--gap); margin: 1.5rem 0 1.75rem; }
.cols-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, max(16rem, (100% - var(--gap)) / 2)), 1fr)); }
.cols-3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.cols-4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }
.page-service .cols-3, .page-legal .cols-3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.5rem), 1fr)); }

.tile {
  position: relative; display: grid; align-content: start; gap: .5rem;
  padding: 1.35rem 1.35rem 1.4rem; border: 1px solid var(--border);
  border-radius: var(--radius); background: var(--surface);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s var(--ease);
}
.tile:hover { border-color: #C9CED4; box-shadow: var(--shadow-sm); }
.tile h3 { margin: 0; font-size: 1.06rem; }
.tile p { margin: 0; color: var(--muted); font-size: .97rem; line-height: 1.6; }
.tile p + p { margin-top: .35rem; }
.tile-icon, .card-icon, .ico-chip {
  display: inline-grid; place-items: center; width: 2.9rem; height: 2.9rem; margin-bottom: .35rem;
  border-radius: .8rem; color: var(--brand); background: var(--brand-tint);
}
.tile-icon .ico, .card-icon .ico, .ico-chip .ico { width: 1.5rem; height: 1.5rem; }
.band-mist .tile { background: var(--surface); }
.band-ink .tile { border-color: var(--line-on-ink); background: rgb(255 255 255 / 3.5%); }
.band-ink .tile p { color: var(--on-ink-muted); }
.band-ink .tile-icon { color: #fff; background: rgb(255 255 255 / 8%); }

.stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: var(--gap); margin: 2rem 0; }
.stat { display: grid; gap: .25rem; padding: 1.25rem 1.3rem; border-radius: var(--radius); background: var(--surface-muted); }
.stat b { font-size: clamp(2rem, 1.5rem + 1.6vw, 2.75rem); font-family: var(--font-display); font-weight: 600; line-height: 1; letter-spacing: -.03em; }
.stat span { color: var(--muted); font-size: .95rem; line-height: 1.45; }

.checklist { list-style: none; padding-left: 0 !important; }
.checklist li { position: relative; padding-left: 1.6rem; }
.checklist li::before {
  content: ""; position: absolute; left: .1rem; top: .62em;
  width: .55rem; height: .55rem; border-radius: 50%; background: var(--brand);
  box-shadow: 0 0 0 .22rem var(--brand-tint);
}
.band-ink .checklist li::before { background: var(--brand-on-ink); box-shadow: 0 0 0 .22rem rgb(255 75 64 / 18%); }

.steps { position: relative; counter-reset: step; list-style: none; padding-left: 0 !important; }
.steps li { position: relative; counter-increment: step; padding: 0 0 1.35rem 3.4rem; margin: 0 !important; }
.steps li::before {
  content: counter(step); position: absolute; left: 0; top: -.05rem; z-index: 1;
  display: grid; place-items: center; width: 2.3rem; height: 2.3rem;
  border-radius: 50%; color: #fff; background: var(--ink);
  font-size: .92rem; font-weight: 800; font-variant-numeric: tabular-nums;
}
.steps li::after {
  content: ""; position: absolute; left: 1.13rem; top: 2.3rem; bottom: .1rem; width: 2px; background: var(--border);
}
.steps li:last-child { padding-bottom: 0; }
.steps li:last-child::after { display: none; }
.steps li:last-child::before { background: var(--brand); }
.steps strong { display: inline; }
.steps-row li > strong, .page-pillar .steps li > strong:first-child { display: block; margin-bottom: .1rem; }

@media (min-width: 64rem) {
  .steps-row { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 1.5rem; }
  .steps-row li { padding: 3.3rem 0 0; }
  .steps-row li::after { left: 2.6rem; right: -1.25rem; top: 1.13rem; bottom: auto; width: auto; height: 2px; }
  .steps-row li:last-child::after { display: none; }
  .steps-row li p { font-size: .96rem; }
}

/* Atendimento: foto e etapas integradas em um bloco centralizado. */
.process-card {
  display: grid; gap: clamp(1.5rem, 3vw, 2.5rem);
  max-width: 66rem; margin-inline: auto;
  padding: clamp(1rem, 2.5vw, 2rem);
  border: 1px solid rgb(28 32 36 / 7%); border-radius: 1.25rem;
  background: rgb(244 245 246 / 65%);
  box-shadow: 0 12px 36px rgb(28 32 36 / 4%);
}
.process-photo { margin: 0; min-width: 0; background: var(--surface-muted); border-radius: .85rem; }
.process-photo img { height: 100%; min-height: 14rem; max-height: 26rem; object-fit: cover; object-position: 48% 40%; opacity: .8; filter: saturate(.85); }
.process-steps { margin: 0; align-self: center; }
.process-steps li { padding: 0 0 1.05rem 3rem; }
.process-steps li::before { width: 2rem; height: 2rem; top: 0; font-size: .83rem; color: var(--brand); background: rgb(216 0 0 / 7%); border: 1px solid rgb(216 0 0 / 12%); }
.process-steps li::after { left: .98rem; top: 2.2rem; bottom: .2rem; width: 1px; background: rgb(28 32 36 / 12%); }
.process-steps li:last-child::before { color: #fff; background: var(--brand); }
.process-steps strong { display: block; font-size: 1rem; line-height: 1.4; }
.process-steps li p { margin: .3rem 0 0; color: var(--muted); font-size: .93rem; line-height: 1.55; }
.process-section > .process-note { max-width: 66rem; margin-inline: auto; }
@media (min-width: 60rem) {
  .process-card { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); align-items: stretch; }
  .process-photo img { max-height: none; min-height: 100%; }
}
@media (max-width: 59.99rem) {
  .process-photo img { height: clamp(12rem, 36vw, 22rem); min-height: 0; }
}

.callout {
  position: relative; overflow: hidden; margin: 1.75rem 0;
  padding: 1.2rem 1.35rem 1.2rem 1.6rem; border-radius: var(--radius); background: var(--surface-muted);
}
.callout::before {
  content: ""; position: absolute; left: 0; top: 0; width: 2rem; aspect-ratio: 1;
  background: var(--brand); clip-path: polygon(0 0, 100% 0, 0 100%);
}
.callout p { margin: 0 0 .6rem; font-size: .99rem; }
.callout p:last-child { margin-bottom: 0; }
.band-mist .callout { background: var(--surface); }

.faq { margin: 1.5rem 0; 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: 1rem;
  padding: 1.15rem .25rem 1.15rem 0; cursor: pointer; list-style: none;
  font-weight: 750; letter-spacing: -.01em;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+"; content: "+" / ""; display: grid; place-items: center; flex: none; width: 1.9rem; height: 1.9rem;
  border-radius: 50%; color: var(--brand); background: var(--brand-tint);
  font-size: 1.2rem; font-weight: 700; line-height: 1; transition: transform .25s var(--ease);
}
.faq details[open] summary::after { transform: rotate(45deg); }
.faq summary:hover { color: var(--brand-strong); }
.faq details > p { margin: -.2rem 0 1.2rem; padding-right: 2.5rem; color: var(--muted); }

.pill-list { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.25rem 0 1.5rem; padding: 0 !important; list-style: none; }
.pill-list li { margin: 0 !important; padding: .45rem .85rem; border: 1px solid var(--border); border-radius: 2rem; background: var(--surface); font-size: .92rem; font-weight: 650; }

.contact-list { list-style: none; padding-left: 0 !important; }
.contact-list a { display: inline-flex; align-items: center; gap: .55rem; font-weight: 700; }

/* ---------- componentes da home e paginas institucionais ---------- */
.trust-bar { position: relative; z-index: 2; margin-top: calc(-1 * (var(--section-y) + clamp(4rem, 8vw, 6rem))); padding: 0 !important; }
.trust-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
  border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-lg); overflow: hidden;
}
.trust-item { display: grid; gap: .3rem; padding: clamp(1.25rem, 3vw, 1.9rem) clamp(1.25rem, 3vw, 1.75rem); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.trust-num { font-size: clamp(2rem, 1.4rem + 2vw, 3rem); font-family: var(--font-display); font-weight: 600; line-height: 1; letter-spacing: -.03em; }
.trust-label { color: var(--muted); font-size: .94rem; font-weight: 600; line-height: 1.4; }

.feature-grid { display: grid; gap: var(--gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); }
.feature {
  position: relative; display: grid; align-content: start; gap: .8rem;
  padding: clamp(1.5rem, 3vw, 2.1rem); border: 1px solid var(--border); border-radius: var(--radius-lg);
  background: var(--surface); transition: box-shadow .25s ease, transform .25s var(--ease), border-color .25s ease;
}
.feature:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: transparent; }
.feature h3 { margin: .15rem 0 0; font-size: clamp(1.3rem, 1.1rem + .7vw, 1.6rem); }
.content-flow :where(.feature, .tile, .card, .channel, .request, .timeline li, .compare-card) h3 { margin-top: 0; }
.feature h3 a { color: inherit; text-decoration: none; }
.feature h3 a:hover { color: var(--brand-strong); }
.feature > p { margin: 0; color: var(--muted); }
.feature-ink { color: var(--on-ink); background: var(--ink); border-color: var(--ink); }
.feature-ink::after {
  content: ""; position: absolute; right: 0; top: 0; width: 2.75rem; aspect-ratio: 1;
  background: var(--brand); clip-path: polygon(0 0, 100% 0, 100% 100%); border-top-right-radius: var(--radius-lg);
}
.feature-ink h3 a { color: #fff; }
.feature-ink h3 a:hover { color: #fff; text-decoration: underline; }
.feature-ink > p { color: var(--on-ink-muted); }
.feature-ink .ico-chip { color: #fff; background: rgb(255 255 255 / 9%); }
.feature-ink .link-list a { color: var(--on-ink); border-color: var(--line-on-ink); }
.feature-ink .link-list a:hover { color: #fff; }
.feature-ink .link-arrow { color: #fff; }
.feature-ink :focus-visible { outline-color: #fff; }
.link-list, .content-flow .link-list { display: grid; margin: .35rem 0 .4rem; padding: 0; list-style: none; }
.link-list li { margin: 0 !important; }
.link-list a {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .62rem 0; border-top: 1px solid var(--border);
  color: var(--text); font-size: .96rem; font-weight: 650; text-decoration: none;
}
.link-list a::after { content: ""; width: .95rem; height: .95rem; flex: none; background: currentColor; opacity: .45; -webkit-mask: url("/assets/icons/seta.svg") center / contain no-repeat; mask: url("/assets/icons/seta.svg") center / contain no-repeat; transition: transform .2s var(--ease), opacity .2s; }
.link-list a:hover { color: var(--brand-strong); }
.link-list a:hover::after { opacity: 1; transform: translateX(.2rem); }

.split { display: grid; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
@media (min-width: 60rem) {
  .split { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  .split-reverse > :first-child { order: 2; }
}
.split-copy > h2 { margin-bottom: 1.1rem; }
.split-copy > p { max-width: 38rem; }

.compare-card {
  position: relative; overflow: hidden; padding: clamp(1.5rem, 3vw, 2.1rem);
  border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-md);
}
.compare-card::before {
  content: ""; position: absolute; left: 0; top: 0; width: 2.4rem; aspect-ratio: 1;
  background: var(--brand); clip-path: polygon(0 0, 100% 0, 0 100%);
}
.compare-title { margin: 0 0 1.1rem; font-family: var(--font-display); font-size: 1.45rem; font-weight: 600; letter-spacing: -.015em; }
.compare-list { margin: 0; display: grid; }
.compare-list > div { position: relative; padding: 1rem 0 1rem 3.5rem; border-top: 1px solid var(--border); }
.compare-list .tile-icon { position: absolute; left: 0; top: 1rem; margin: 0; width: 2.6rem; height: 2.6rem; }
.compare-list dt { font-weight: 800; letter-spacing: -.01em; }
.compare-list dt a { color: var(--text); text-decoration: underline; text-decoration-color: rgb(28 32 36 / 35%); text-decoration-thickness: 1px; text-underline-offset: .2em; }
.compare-list dt a:hover { color: var(--brand-strong); text-decoration-color: currentColor; }
.content-flow .compare-title { margin: 0 0 1.1rem; }
.compare-list dd { margin: .2rem 0 0; color: var(--muted); font-size: .95rem; line-height: 1.5; }

.statement { display: grid; gap: 1.25rem; justify-items: start; }
.statement > p:not(.kicker):not(.statement-text) { max-width: 44rem; margin: 0; font-size: 1.08rem; }
.statement-text {
  margin: 0; max-width: 54rem !important; color: inherit; font-size: clamp(1.75rem, 1.1rem + 2.6vw, 3.1rem);
  font-family: var(--font-display); font-weight: 500; line-height: 1.12; letter-spacing: -.025em; text-wrap: balance;
}
.statement-text em { font-style: normal; color: var(--brand-on-ink); }
.statement-sm { font-size: clamp(1.3rem, 1rem + 1vw, 1.75rem) !important; line-height: 1.3 !important; }
.statement + .statement { margin-top: 2.5rem; }
.grid > .statement + .statement { margin-top: 0; }

.logo-wall {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr));
  margin: 2rem 0 2.25rem; padding: 0 !important; list-style: none;
  border-top: 1px solid var(--border); border-left: 1px solid var(--border);
}
@media (min-width: 64rem) { .logo-wall { grid-template-columns: repeat(7, minmax(0, 1fr)); } .logo-wall li { min-height: 4.75rem; padding: .75rem .5rem; font-size: .95rem; } }
@media (max-width: 63.99rem) { .logo-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); } .logo-wall li { min-height: 3.75rem; } }
.logo-wall li {
  display: grid; place-items: center; min-height: 5.25rem; margin: 0 !important; padding: 1rem;
  border-right: 1px solid var(--border); border-bottom: 1px solid var(--border);
  color: var(--accent); font-size: 1.02rem; font-weight: 800; letter-spacing: -.02em; text-align: center;
  transition: background .2s ease, color .2s ease;
}
.logo-wall li:hover { color: var(--text); background: var(--surface-muted); }
.band-ink .logo-wall, .band-ink .logo-wall li { border-color: var(--line-on-ink); }
.band-ink .logo-wall li { color: #E6E9EC; }
.band-ink .logo-wall li:hover { color: #fff; background: rgb(255 255 255 / 4%); }

/* Real partner artwork, with transparent files on a shared light surface. */
.logo-wall, .band-ink .logo-wall { background: #fff; border-color: var(--border); }
.logo-wall li.insurer-logo, .band-ink .logo-wall li.insurer-logo {
  min-height: 6.5rem; padding: 1.1rem; border-color: var(--border);
  background: transparent;
}
.logo-wall .insurer-logo img {
  width: 100%; max-width: 10rem; height: 3.5rem; object-fit: contain;
}
.logo-wall .insurer-logo-ezze img { filter: brightness(0); }
.logo-wall li.insurer-logo:hover, .band-ink .logo-wall li.insurer-logo:hover { background: var(--surface-muted); }
@media (max-width: 39.99rem) {
  .logo-wall li.insurer-logo { min-height: 5.75rem; padding: 1rem; }
  .logo-wall .insurer-logo img { height: 3rem; }
}

.faq-layout { display: grid; gap: clamp(1.75rem, 4vw, 4rem); }
@media (min-width: 60rem) { .faq-layout { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; } .faq-layout .faq { margin-top: 0; } }
.faq-layout .section-head { margin-bottom: 0; }

.channel-grid { display: grid; gap: var(--gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); margin: 1.5rem 0; }
.channel {
  position: relative; display: grid; gap: .45rem; align-content: start;
  padding: 1.6rem 1.5rem; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface);
  transition: transform .2s var(--ease), box-shadow .2s ease, border-color .2s ease;
}
.channel:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: transparent; }
.channel h3 { margin: .25rem 0 0; font-size: 1.15rem; }
.channel p { margin: 0; color: var(--muted); font-size: .96rem; }
.channel-link { margin-top: .5rem; font-size: 1.08rem; font-weight: 800; letter-spacing: -.01em; text-decoration: none; overflow-wrap: anywhere; }
.channel-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.channel-primary { color: var(--on-ink); background: var(--ink); border-color: var(--ink); }
.channel-primary h3, .channel-primary .channel-link { color: #fff; }
.channel-primary p { color: var(--on-ink-muted); }
.channel-primary .ico-chip { color: #fff; background: var(--brand); }
.channel-primary :focus-visible { outline-color: #fff; }

.address-card {
  display: grid; gap: .3rem; padding: 1.5rem; border-radius: var(--radius-lg); background: var(--surface);
  box-shadow: var(--shadow-md); font-style: normal;
}
.address-card strong { font-size: 1.05rem; }

.request-grid { display: grid; gap: var(--gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); margin: 1.4rem 0 1.25rem; }
.request {
  position: relative; display: grid; gap: .5rem; align-content: start;
  padding: 1.35rem 1.35rem 1.25rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s var(--ease);
}
.request:hover { border-color: transparent; box-shadow: var(--shadow-md); transform: translateY(-2px); }
.request h3 { margin: 0; font-size: 1.05rem; }
.request p { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.55; }
.request { grid-template-rows: auto auto 1fr auto; }
.request-link { display: inline-flex; align-items: center; align-self: end; gap: .45rem; margin-top: .4rem; font-weight: 750; text-decoration: none; }
.request-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.request-link .ico { transition: transform .2s var(--ease); }
.request:hover .request-link .ico { transform: translateX(.25rem); }

.timeline { position: relative; display: grid; gap: 0; margin: 1.5rem 0 0; padding: 0 !important; list-style: none; }
.timeline li { position: relative; display: grid; gap: .3rem; margin: 0 !important; padding: 0 0 2rem 2.5rem; }
.timeline li::before {
  content: ""; position: absolute; left: .3rem; top: .4rem; width: .9rem; height: .9rem;
  border-radius: 50%; background: var(--brand); box-shadow: 0 0 0 .3rem var(--brand-tint);
}
.timeline li::after { content: ""; position: absolute; left: .7rem; top: 1.6rem; bottom: .2rem; width: 2px; background: var(--border); }
.timeline li:last-child { padding-bottom: 0; }
.timeline li:last-child::after { display: none; }
.timeline-mark { font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--brand); }
.timeline h3 { margin: 0; font-size: 1.2rem; }
.timeline p { margin: 0; color: var(--muted); }

/* ---------- cards gerados (filhos e relacionados) ---------- */
.card-grid { display: grid; gap: var(--gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, 17.5rem), 1fr)); }
.card {
  position: relative; display: flex; flex-direction: column; gap: .55rem;
  padding: 1.5rem 1.45rem 1.35rem; border: 1px solid var(--border); border-radius: var(--radius);
  background: var(--surface); overflow: hidden;
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s var(--ease);
}
.card::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--brand);
  transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease);
}
.card:hover { border-color: transparent; box-shadow: var(--shadow-md); transform: translateY(-3px); }
.card:hover::before { transform: scaleX(1); }
.card-index { position: absolute; top: 1.3rem; right: 1.35rem; color: #C3C8CE; font-size: .82rem; font-weight: 800; letter-spacing: .04em; }
.card-title { margin: 0; font-size: 1.1rem; padding-right: 1.75rem; }
.card-link { color: var(--text); text-decoration: none; }
.card-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card-link:focus-visible { outline: none; }
.card:has(.card-link:focus-visible) { outline: .19rem solid var(--focus); outline-offset: .2rem; }
.card p { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.55; }
.card-more { display: inline-flex; align-items: center; gap: .4rem; margin-top: auto; padding-top: .6rem; color: var(--brand-strong); font-size: .9rem; font-weight: 750; }
.card-more .ico { transition: transform .2s var(--ease); }
.card:hover .card-more .ico { transform: translateX(.25rem); }
.card-grid-compact .card { padding: 1.3rem 1.3rem 1.2rem; }

/* ---------- faixa de chamada final ---------- */
.cta-band { padding-block: var(--section-y); }
.page-service .content-flow > section:last-child, .page-legal .content-flow > section:last-child { padding-bottom: 0; }
.page-service .section-related, .page-legal .section-related, .page-error .section-related { padding-top: 0; }
.cta-inner {
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); align-items: center;
  padding: clamp(2rem, 5vw, 4rem); border-radius: var(--radius-lg); color: var(--on-ink);
  background: url("/assets/images/grao.svg"), radial-gradient(40rem 22rem at 100% 0%, rgb(216 0 0 / 28%), transparent 65%), var(--ink);
}
.cta-inner::before {
  content: ""; position: absolute; z-index: -1; right: -12rem; bottom: -16rem; width: 46rem; height: 24rem;
  border: 1px solid rgb(255 255 255 / 10%); border-radius: 50%; transform: rotate(-13deg);
  box-shadow: inset 0 0 0 2.25rem rgb(255 255 255 / 2%);
}
.cta-inner::after {
  content: ""; position: absolute; left: 0; top: 0; width: clamp(2rem, 4vw, 3.25rem); aspect-ratio: 1;
  background: var(--brand); clip-path: polygon(0 0, 100% 0, 0 100%);
}
@media (min-width: 60rem) { .cta-inner { grid-template-columns: minmax(0, 1.4fr) auto; } }
.cta-copy { display: grid; gap: .8rem; }
.cta-copy .kicker { color: var(--brand-on-ink); }
.cta-copy h2 { color: #fff; font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.9rem); }
.cta-copy h2::after { content: "."; color: var(--brand-on-ink); }
.cta-copy h2.no-dot::after { content: none; }
.cta-copy p:not(.kicker) { margin: 0; max-width: 36rem; color: var(--on-ink-muted); font-size: 1.06rem; }
.cta-actions { display: grid; gap: .9rem; justify-items: start; }
.cta-alt { display: inline-flex; align-items: center; gap: .5rem; color: #fff; font-weight: 700; text-decoration: none; }
.cta-alt:hover { color: #fff; text-decoration: underline; }
.cta-inner :focus-visible { outline-color: #fff; }

/* ---------- rodape ---------- */

/* ---------- consentimento (ativado apenas se houver analytics) ---------- */
.cookie-panel {
  position: fixed; z-index: 60; right: 1rem; bottom: 1rem; width: min(calc(100% - 2rem), 31rem);
  padding: 1.35rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-lg);
}
.cookie-panel[hidden] { display: none; }
.cookie-panel h2 { margin: 0 0 .5rem; font-size: 1.1rem; }
.cookie-panel p { margin: 0 0 1rem; color: var(--muted); font-size: .94rem; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: .65rem; }

/* ---------- aviso de cookies (barra inferior) ---------- */
.cookie-bar {
  position: fixed; z-index: 60; left: 0; right: 0; bottom: 0;
  padding: 0 max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));
  pointer-events: none;
}
.cookie-bar[hidden] { display: none; }
.cookie-bar-inner {
  position: relative; overflow: hidden; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .85rem 1.5rem;
  width: min(100%, 64rem); margin-inline: auto; padding: 1rem 1.15rem 1rem 1.6rem;
  border-radius: var(--radius); color: var(--on-ink); pointer-events: auto;
  background: url("/assets/images/grao.svg"), radial-gradient(30rem 12rem at 100% 0%, rgb(216 0 0 / 22%), transparent 65%), var(--ink);
  box-shadow: 0 18px 50px rgb(0 0 0 / 35%), 0 0 0 1px rgb(255 255 255 / 8%);
}
.cookie-bar-inner::before {
  content: ""; position: absolute; left: 0; top: 0; width: 1.35rem; aspect-ratio: 1;
  background: var(--brand); clip-path: polygon(0 0, 100% 0, 0 100%);
}
.cookie-bar p { flex: 1 1 26rem; margin: 0; color: var(--on-ink-muted); font-size: .93rem; line-height: 1.55; }
.cookie-bar a { color: #fff; font-weight: 700; }
.cookie-bar a:hover { color: #fff; }
.cookie-bar :focus-visible { outline-color: #fff; }
.cookie-bar .button { min-width: 8.5rem; justify-content: center; }
@media (max-width: 40rem) {
  .cookie-bar-inner { gap: .6rem; padding: .8rem .9rem .8rem 1.25rem; }
  .cookie-bar p { flex-basis: 100%; font-size: .84rem; line-height: 1.45; }
  .cookie-bar .cookie-actions, .cookie-bar .button { width: 100%; }
  .cookie-bar .button { min-height: 2.6rem; padding-block: .55rem; }
  /* no celular o botao flutuante espera o aviso fechar, para nao subir sobre o conteudo */
  .has-cookie-bar .wa-float { opacity: 0; visibility: hidden; pointer-events: none; }
}
/* enquanto o aviso esta aberto: botao do WhatsApp acima dele e foco nunca escondido atras da barra */
.has-cookie-bar { scroll-padding-bottom: calc(var(--cookie-bar-h, 0px) + 1rem); }
.has-cookie-bar .wa-float { bottom: calc(max(1.25rem, env(safe-area-inset-bottom)) + var(--cookie-bar-h, 0px)); }
#conteudo:focus { outline: none; }

/* ---------- componentes da revisao ---------- */
/* nome da marca ao lado do logo quando ha espaco */
.brand { gap: .7rem; }
@media (min-width: 80rem) { .site-nav a { padding-inline: .5rem; } .header-row { gap: 1rem; } }

/* sumario recolhivel no celular e tablet */
.toc-mobile { margin: 0 0 2.25rem; padding: .95rem 1.15rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.toc-mobile summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; font-weight: 750; list-style: none; }
.toc-mobile summary::-webkit-details-marker { display: none; }
.toc-mobile summary::after { content: "+"; content: "+" / ""; display: grid; place-items: center; flex: none; width: 1.9rem; height: 1.9rem; border-radius: 50%; color: var(--brand); background: var(--brand-tint); font-size: 1.2rem; font-weight: 700; line-height: 1; transition: transform .25s var(--ease); }
.toc-mobile[open] summary::after { transform: rotate(45deg); }
.content-flow .toc-mobile ol { margin: .7rem 0 0; padding-left: 1.9rem; list-style: decimal-leading-zero; }
.toc-mobile li::marker { color: var(--muted); font-size: .8em; font-weight: 700; }
.toc-mobile a { color: var(--text); font-weight: 600; text-decoration: none; }
.toc-mobile a:hover { color: var(--brand-strong); text-decoration: underline; }
@media (min-width: 64rem) { .toc-mobile { display: none; } }

/* chamada no meio das paginas de servico (celular e tablet) */
.inline-cta { margin-top: 1.75rem; }
@media (min-width: 64rem) { .inline-cta { display: none; } }

/* lateral fixa nao pode passar da altura da tela */
@media (min-width: 64rem) and (max-height: 52rem) { .aside-sticky { position: static; } }

/* portal: grupos de solicitacoes em duas colunas */
@media (min-width: 64rem) {
  .page-segment .content-flow > section:has(> .request-grid) {
    display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
    column-gap: clamp(2rem, 5vw, 4.5rem); align-items: start; padding-block: clamp(2.75rem, 5vw, 4rem);
  }
  .page-segment .content-flow > section:has(> .request-grid) > .section-head { position: sticky; top: 6.5rem; margin: 0; }
  .page-segment .content-flow > section:has(> .request-grid) > .request-grid { margin: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.page-segment .content-flow > section:has(> .request-grid) + section:has(> .request-grid) { border-top: 1px solid var(--border); }
.quick-links { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.quick-links .button { padding: .6rem 1rem; font-size: .92rem; }

/* 404: atalhos em cartoes */
.page-error .content-flow > section { padding-block: 0 clamp(2.5rem, 5vw, 3.5rem); }
.page-error .content-flow > section:last-child { padding-bottom: 0; }
.page-error .request-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); }

.nowrap { white-space: nowrap; }

/* grades sem orfaos */
@media (min-width: 64rem) {
  .card-grid:has(> :nth-child(5):last-child) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .card-grid:has(> :nth-child(5):last-child) > :nth-child(-n+3) { grid-column: span 2; }
  .card-grid:has(> :nth-child(5):last-child) > :nth-child(n+4) { grid-column: span 3; }
}
@media (min-width: 64rem) and (max-width: 79.99rem) {
  .card-grid:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 40rem) and (max-width: 79.99rem) {
  .request-grid:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 40rem) and (max-width: 63.99rem) {
  .cols-4, .channel-grid, .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .channel-grid > :last-child:nth-child(odd), .card-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (min-width: 40rem) and (max-width: 59.99rem) {
  .feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .feature-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (min-width: 60rem) { .feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 40rem) and (max-width: 49.99rem) {
  .cols-3, .page-service .cols-3, .page-legal .cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cols-3 > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (min-width: 50rem) and (max-width: 63.99rem) {
  .cols-3, .page-service .cols-3, .page-legal .cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 64rem) and (max-width: 69.99rem) {
  .page-service .cols-3, .page-legal .cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-service .cols-3 > :last-child:nth-child(odd), .page-legal .cols-3 > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* faixa de numeros: 2 colunas ate o tablet, 4 acima */
.trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 48rem) {
  .trust-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .trust-item { border-bottom: 0; }
  .trust-item:last-child { border-right: 0; }
}
@media (max-width: 47.99rem) {
  .trust-item { padding: 1.1rem 1.1rem 1.2rem; }
  .trust-item:nth-child(even) { border-right: 0; }
  .trust-item:nth-last-child(-n+2) { border-bottom: 0; }
  .trust-label { font-size: .86rem; }
}

/* Reforca o contraste quando o texto ocupa a largura do celular/tablet. */
@media (max-width: 59.99rem) {
  .hero::before { background: linear-gradient(180deg, rgb(16 20 24 / 75%), rgb(16 20 24 / 82%)); }
  .page-home .hero { padding-bottom: calc(clamp(4rem, 8vw, 6rem) + 2.25rem); }
}

/* rodape no tablet */

/* menu em duas colunas no tablet */
@media (min-width: 40rem) and (max-width: 64rem) {
  .site-nav ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
  .site-nav li:nth-child(2) { border-top: 0; }
}

/* celular: blocos mais compactos */
@media (max-width: 40rem) {
  .tile:has(> .tile-icon:first-child), .request { grid-template-columns: 2.6rem minmax(0, 1fr); column-gap: .85rem; }
  .tile:has(> .tile-icon:first-child) > *, .request > * { grid-column: 1 / -1; }
  .tile:has(> .tile-icon:first-child) > .tile-icon, .request > .tile-icon { grid-column: 1; width: 2.6rem; height: 2.6rem; margin: 0; }
  .tile:has(> .tile-icon:first-child) > .tile-icon + h3, .request > .tile-icon + h3 { grid-column: 2; align-self: center; }
  .stat-row { grid-template-columns: 1fr; gap: .6rem; }
  .stat { grid-template-columns: 5.5rem minmax(0, 1fr); align-items: center; column-gap: .9rem; padding: .95rem 1.1rem; }
}

/* ---------- ajustes da segunda revisao ---------- */
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.aside-card, .feature-ink, .channel-primary { background-image: url("/assets/images/grao.svg"); }
.feature-ink, .channel-primary { border-color: transparent; }

@media (min-width: 29rem) and (max-width: 34.99rem) {
  .cols-4 > .tile:has(> .tile-icon:first-child) { grid-template-columns: minmax(0, 1fr); }
  .cols-4 > .tile:has(> .tile-icon:first-child) > .tile-icon + h3 { grid-column: 1; }
}
@media (max-width: 37.99rem) {
  .card:has(> .card-icon:first-child) { display: grid; grid-template-columns: 2.6rem minmax(0, 1fr); column-gap: .85rem; row-gap: .55rem; align-content: start; }
  .card:has(> .card-icon:first-child) > * { grid-column: 1 / -1; }
  .card:has(> .card-icon:first-child) > .card-icon { grid-column: 1; width: 2.6rem; height: 2.6rem; margin: 0; }
  .card:has(> .card-icon:first-child) > .card-icon + .card-title { grid-column: 2; align-self: center; }
}
@media (max-width: 40rem) { .request { grid-template-rows: auto 1fr auto; } }

/* ---------- rodape ---------- */
.site-footer { color: var(--on-ink-muted); background: url("/assets/images/grao.svg"), #0F1215; }
.site-footer :focus-visible { outline-color: #fff; }

/* faixa superior: marca a esquerda, redes a direita */
.footer-top {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 2rem;
  padding-block: clamp(2.5rem, 5vw, 3.5rem) clamp(1.75rem, 3.5vw, 2.5rem);
  border-bottom: 1px solid var(--line-on-ink);
}
.footer-identity { display: grid; justify-items: start; gap: .85rem; }
.footer-logo { margin: 0; line-height: 0; }
.footer-logo img { display: block; width: auto; height: clamp(4rem, 3.4rem + 1.6vw, 4.75rem); }
.footer-name {
  margin: 0; color: #fff; font-family: var(--font-display);
  font-size: clamp(1.5rem, 1.2rem + 1vw, 1.9rem); font-weight: 600; line-height: 1.1; letter-spacing: -.02em;
}
.footer-name::after { content: "."; color: var(--brand-on-ink); }
.footer-note { margin: 0; font-size: .95rem; line-height: 1.5; }
.footer-social { display: flex; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.footer-social-link {
  display: grid; place-items: center; width: 2.75rem; height: 2.75rem;
  border: 1px solid var(--line-on-ink); border-radius: 50%; color: #fff;
  transition: background-color .2s ease, border-color .2s ease;
}
.footer-social-link .ico { width: 1.15rem; height: 1.15rem; }
.footer-social-link:hover { color: #fff; background: var(--brand); border-color: var(--brand); }

/* colunas: mesma regua, mesmo topo, mesmo espacamento entre itens */
.footer-grid {
  display: grid; grid-template-columns: 1fr 1fr 1.4fr 1fr; gap: 2.25rem clamp(1.5rem, 3vw, 3rem);
  padding-block: clamp(2rem, 4vw, 2.75rem) clamp(2.25rem, 4.5vw, 3rem);
}
.footer-col { min-width: 0; }
.footer-heading {
  margin: 0 0 1.1rem; color: #fff; font-family: var(--font);
  font-size: .74rem; font-weight: 800; line-height: 1.4; letter-spacing: .15em; text-transform: uppercase;
}
.footer-col ul { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; font-size: .94rem; line-height: 1.45; }
.footer-col li { margin: 0; }
.footer-col a { color: var(--on-ink); font-size: inherit; font-weight: 600; line-height: inherit; text-decoration: none; }
.footer-col a:hover { color: #fff; text-decoration: underline; text-underline-offset: .2em; }
.footer-list-icons a, .footer-address { display: flex; width: fit-content; max-width: 100%; align-items: flex-start; gap: .65rem; }
.footer-list-icons .ico { flex: none; width: 1.05rem; height: 1.05rem; margin-top: .2em; color: var(--brand-on-ink); }
.footer-address address { font-style: normal; font-size: inherit; line-height: inherit; }

/* linha de base */
.footer-base {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem;
  padding-block: 1.25rem 1.75rem; border-top: 1px solid var(--line-on-ink);
}
.footer-base p { margin: 0; font-size: .85rem; }
.site-footer .button-secondary { color: #fff; background: transparent; border-color: var(--line-on-ink); }

@media (max-width: 63.99rem) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 39.99rem) {
  .footer-contact, .footer-grid > .footer-col:last-child { grid-column: 1 / -1; }
}

/* ---------- barra de progresso de leitura ---------- */
.scroll-progress { position: fixed; z-index: 70; inset: 0 0 auto 0; height: 3px; pointer-events: none; }
.scroll-progress span {
  display: block; height: 100%; transform-origin: 0 50%; transform: scaleX(var(--progress, 0));
  background: linear-gradient(90deg, var(--brand), #FF6259); box-shadow: 0 0 10px rgb(216 0 0 / 45%);
}

/* ---------- botao flutuante do WhatsApp ---------- */
@keyframes vsl-nudge { 0%, 100% { box-shadow: 0 14px 36px rgb(0 0 0 / 40%), 0 0 0 4px rgb(216 0 0 / 25%); } 50% { box-shadow: 0 14px 36px rgb(0 0 0 / 40%), 0 0 0 12px rgb(216 0 0 / 0%); } }
@keyframes wa-pulse { 0% { transform: scale(1); opacity: .55; } 100% { transform: scale(1.85); opacity: 0; } }
.wa-float {
  position: fixed; z-index: 55;
  right: max(1.25rem, env(safe-area-inset-right)); bottom: max(1.25rem, env(safe-area-inset-bottom));
  display: grid; place-items: center; width: 3.75rem; height: 3.75rem; border-radius: 50%;
  color: #fff; background: #1A9E4F; text-decoration: none;
  box-shadow: 0 12px 30px rgb(10 60 30 / 35%), 0 2px 6px rgb(0 0 0 / 18%);
  transition: transform .25s var(--ease), opacity .25s ease, visibility .25s;
}
.wa-float::before, .wa-float::after {
  content: ""; position: absolute; z-index: -1; inset: 0; border-radius: 50%; background: #25D366; opacity: 0;
}
.wa-float .ico { width: 1.85rem; height: 1.85rem; }
.wa-float:hover { color: #fff; transform: scale(1.06); }
.wa-float:focus-visible { outline: .19rem solid var(--focus); outline-offset: .25rem; }
.wa-float-label {
  position: absolute; right: calc(100% + .75rem); top: 50%; padding: .45rem .8rem; border-radius: .6rem;
  color: #fff; background: var(--ink); font-size: .88rem; font-weight: 700; white-space: nowrap;
  opacity: 0; transform: translate(.4rem, -50%); transition: opacity .2s ease, transform .2s var(--ease); pointer-events: none;
}
.wa-float-label::after { content: ""; position: absolute; left: 100%; top: 0; bottom: 0; width: .8rem; }
.wa-float:hover .wa-float-label { pointer-events: auto; }
.wa-float.label-dismissed .wa-float-label { opacity: 0 !important; pointer-events: none; }
.wa-float:hover .wa-float-label, .wa-float:focus-visible .wa-float-label { opacity: 1; transform: translate(0, -50%); }
.wa-float.is-hidden { opacity: 0; visibility: hidden; transform: scale(.6); pointer-events: none; }
/* menu aberto no celular: o botao flutuante e o aviso de cookies saem da frente */
.site-header:has([data-menu-toggle][aria-expanded="true"]) ~ .wa-float,
.site-header:has([data-menu-toggle][aria-expanded="true"]) ~ .cookie-bar { opacity: 0; visibility: hidden; pointer-events: none; }
@media (max-width: 40rem) { .wa-float { width: 3.4rem; height: 3.4rem; } .footer-base { padding-bottom: 5.5rem; } }

/* ---------- faixa do formulario (acima do rodape) ---------- */
.lead-inner { align-items: start; }
@media (min-width: 60rem) { .lead-inner { grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(2rem, 4vw, 3.5rem); } }
.lead-band .cta-copy { align-self: start; }
@media (min-width: 60rem) { .lead-band .cta-copy { padding-top: clamp(.5rem, 2vw, 1.5rem); } }
.lead-steps { display: grid; gap: 0; margin: 1rem 0 .25rem; padding: 0; list-style: none; counter-reset: lead-step; }
.lead-steps li {
  position: relative; display: grid; gap: .15rem; padding: .95rem 0 .95rem 3.1rem;
  border-top: 1px solid rgb(255 255 255 / 12%); counter-increment: lead-step;
}
.lead-steps li:last-child { border-bottom: 1px solid rgb(255 255 255 / 12%); }
.lead-steps li::before {
  content: counter(lead-step, decimal-leading-zero); position: absolute; left: 0; top: .78rem;
  color: var(--brand-on-ink); font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; line-height: 1.2;
  font-variant-numeric: lining-nums tabular-nums;
}
.lead-steps strong { color: #fff; font-size: 1rem; font-weight: 750; line-height: 1.35; }
.lead-steps span { color: var(--on-ink-muted); font-size: .92rem; line-height: 1.5; }
@media (max-width: 59.99rem) {
  .lead-steps { margin-top: .5rem; }
  .lead-steps li { padding: .6rem 0 .6rem 2.5rem; }
  .lead-steps li::before { top: .5rem; font-size: 1.1rem; }
  .lead-steps strong { font-size: .95rem; }
  .lead-steps span { display: none; }
}
@media (max-width: 40rem) {
  .lead-form select { padding-inline: .75rem 1.9rem; font-size: .95rem; }
  .lead-inner { padding: 2.25rem .75rem .75rem; }
  .lead-band .cta-copy { padding-inline: .75rem; }
  .lead-form { padding: 1.25rem 1.1rem; }
}
.lead-alt { display: grid; gap: .7rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.lead-alt a { display: inline-flex; align-items: center; gap: .55rem; color: #fff; font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.lead-alt a:hover { color: #fff; text-decoration: underline; }
.lead-alt .ico { color: var(--brand-on-ink); }

.lead-form {
  display: grid; gap: 1.05rem; min-width: 0;
  padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--radius-lg);
  color: var(--text); background: var(--surface); box-shadow: var(--shadow-lg);
}
.lead-form :focus-visible { outline-color: var(--focus); }
html:not(.js) .lead-form [type="submit"] { display: none; }
.lf-legend { margin: 0; color: var(--muted); font-size: .82rem; }
.lf-field { display: grid; gap: .4rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.lf-field > label, .lf-field > legend { padding: 0; color: var(--text); font-size: .92rem; font-weight: 750; }
.lf-field > legend { margin-bottom: .4rem; }
.lf-req { color: var(--brand); }
.lf-opt { color: var(--muted); font-weight: 500; }
.lead-form input[type="text"], .lead-form select, .lead-form textarea {
  width: 100%; min-height: 3rem; padding: .7rem .9rem;
  border: 1.5px solid var(--field-border); border-radius: var(--radius-sm);
  color: var(--text); background: var(--surface); font: inherit; font-size: 1rem; line-height: 1.4;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.lead-form textarea { min-height: 6rem; resize: vertical; }
.lead-form input[type="text"]:hover, .lead-form select:hover, .lead-form textarea:hover { border-color: var(--muted); }
.lead-form input[type="text"]:focus, .lead-form select:focus, .lead-form textarea:focus {
  border-color: var(--accent); box-shadow: 0 0 0 3px rgb(60 67 74 / 16%); outline: none;
}
.lead-form input[type="text"]:focus-visible, .lead-form select:focus-visible, .lead-form textarea:focus-visible {
  outline: .19rem solid var(--focus); outline-offset: .12rem;
}
.lead-form [aria-invalid="true"] { border-color: var(--brand); box-shadow: 0 0 0 3px rgb(216 0 0 / 12%); }
.lf-row { display: grid; gap: 1.05rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }
.lf-pills { display: flex; flex-wrap: wrap; gap: .5rem; }
.lf-pill { position: relative; display: inline-flex; cursor: pointer; }
.lf-pill input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.lf-pill span {
  padding: .62rem 1rem; border: 1.5px solid var(--field-border); border-radius: 999px;
  color: var(--text); background: var(--surface); font-size: .94rem; font-weight: 650; line-height: 1.2;
  transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.lf-pill:hover span { border-color: var(--muted); }
.lf-pill input:checked + span { border-color: var(--brand); color: var(--brand-strong); background: var(--brand-tint); }
.lf-pill input:focus-visible + span { outline: .19rem solid var(--focus); outline-offset: .15rem; }
.lf-choices.is-invalid .lf-pill span { border-color: var(--brand); }
.lf-error { margin: 0; color: var(--brand-strong); font-size: .86rem; font-weight: 700; }
.lf-hint { margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.5; }
.lf-note { margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.55; }
.lf-note a { color: var(--brand-strong); }
.lf-status { margin: 0; color: var(--accent); font-size: .92rem; font-weight: 700; }
.lf-status:empty { display: none; }
.lf-status a { color: var(--brand-strong); }

/* ---------- movimento ---------- */
/* So deslocamento: o conteudo do topo nunca fica invisivel (nao atrasa o LCP nem some em capturas). */
@keyframes rise { from { transform: translateY(14px); } to { transform: none; } }
@keyframes float-in { from { transform: translateY(16px) scale(.975); } to { transform: none; } }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: no-preference) {
  .hero-copy > * { animation: rise .75s var(--ease) both; }
  .hero-copy > :nth-child(2) { animation-delay: .06s; }
  .hero-copy > :nth-child(3) { animation-delay: .12s; }
  .hero-copy > :nth-child(4) { animation-delay: .2s; }
  .hero-copy > :nth-child(5) { animation-delay: .28s; }
  .js .reveal {
    opacity: 0; transform: translate3d(0, 34px, 0) scale(.97);
    transition: opacity .65s ease, transform .9s cubic-bezier(.16, 1, .3, 1);
    transition-delay: var(--reveal-delay, 0ms);
  }
  .js .reveal.is-in { opacity: 1; transform: none; }
  .wa-float::before, .wa-float::after { animation: wa-pulse 2.4s cubic-bezier(.2, .6, .35, 1) infinite; }
  .video-play-icon::after { animation: wa-pulse 2.6s cubic-bezier(.2, .6, .35, 1) infinite; }
  .vsl-unmute { animation: vsl-nudge 2.4s ease-in-out infinite; }
  .cookie-bar .cookie-bar-inner { transform: translateY(120%); transition: transform .5s cubic-bezier(.16, 1, .3, 1); }
  .cookie-bar.is-visible .cookie-bar-inner { transform: none; }
  .has-cookie-bar .wa-float { transition: bottom .35s ease, opacity .25s ease, transform .25s ease, visibility .25s; }
  .wa-float::after { animation-delay: 1.2s; }
}

/* ---------- responsivo ---------- */
/* faixa estreita do desktop (1025-1120px): menu e botao mais justos para nao gerar rolagem lateral */
@media (min-width: 64.0625rem) and (max-width: 70rem) {
  .header-row { gap: .5rem; }
  .site-nav a { padding-inline: .3rem !important; font-size: .84rem !important; }
  .header-cta { padding-inline: .9rem; }
}
@media (max-width: 75rem) {
  .site-nav a { padding: .5rem .45rem; font-size: .89rem; }
  .brand img { height: 3.1rem; }
}
@media (max-width: 64rem) {
  .header-row { flex-wrap: wrap; row-gap: 0; min-height: 4.1rem; }
  .brand img { height: 2.9rem; }
  .brand { min-height: 4.1rem; }
  .header-row { column-gap: .6rem; }
  .header-cta { order: 2; margin-left: auto; }
  .js .menu-toggle { order: 3; }
  .js .menu-toggle {
    display: inline-flex; align-items: center; padding: .6rem .85rem;
    border: 1.5px solid var(--border); border-radius: var(--radius-sm); background: var(--surface);
    font: inherit; font-size: .92rem; font-weight: 700; color: var(--text); cursor: pointer;
  }
  .site-nav { order: 4; width: 100%; margin-left: 0; }
  .js .site-nav { display: none; }
  .js .site-nav[data-open="true"] {
    display: block; max-height: calc(100vh - 4.1rem); max-height: calc(100dvh - 4.1rem);
    overflow-y: auto; overscroll-behavior: contain; animation: fade-in .25s ease both;
  }
  .site-header:has(.site-nav[data-open="true"]) { background: var(--surface); }
  .site-nav ul { display: grid; row-gap: 0; padding-block: .35rem 1rem; }
  .site-nav li + li { border-top: 1px solid var(--border); }
  .site-nav a { padding: .9rem .25rem; font-size: 1.05rem; border-radius: 0; }
  .site-nav a::after { left: auto; right: .5rem; top: 50%; bottom: auto; transform: translateY(-50%) scale(0); }
  .site-nav a:hover::after, .site-nav a[aria-current]::after { transform: translateY(-50%) scale(1); }
}
@media (max-width: 40rem) {
  body { font-size: 1.02rem; }
  .shell { width: min(100% - 2rem, var(--max)); }
  .hero-actions { width: 100%; }
  .hero-actions .button { width: 100%; }
  .cta-actions { justify-items: stretch; }
  .cta-actions .button { width: 100%; }
  .faq details > p { padding-right: 0; }
}
@media (max-width: 26rem) {
  .header-cta span:not(.ico) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .header-cta { padding: .62rem .75rem; }
}
/* ---------- landing com video (consorcio) ---------- */
.page-landing .hero { padding-bottom: calc(clamp(4.25rem, 8vw, 7.25rem) + clamp(3.5rem, 7vw, 5rem)); }
@media (min-width: 64.0625rem) {
  .page-landing .hero-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2.5rem, 5vw, 4.5rem); }
  .page-landing .hero-copy { max-width: 36rem; }
}
.page-landing .hero h1 { font-size: clamp(2.2rem, 1.3rem + 3.2vw, 3.9rem); }
.hero-media { position: relative; display: grid; gap: .9rem; min-width: 0; margin: 2.25rem 0 0; }
@media (min-width: 64.0625rem) { .hero-media { margin-top: 0; } }
/* elipse inclinada da marca atras do video */
.hero-media::before {
  content: ""; position: absolute; z-index: -1; left: 50%; top: 40%; width: 122%; aspect-ratio: 2.2;
  border: 1px solid rgb(255 255 255 / 13%); border-radius: 50%;
  box-shadow: inset 0 0 0 2rem rgb(255 255 255 / 2%);
  transform: translate(-50%, -50%) rotate(-13deg); pointer-events: none;
}
.video-frame {
  position: relative; overflow: hidden; aspect-ratio: 16 / 9; border-radius: var(--radius-lg);
  background: #0B0D10; box-shadow: 0 30px 80px rgb(0 0 0 / 45%), 0 0 0 1px rgb(255 255 255 / 10%);
}
.video-frame::after {
  content: ""; position: absolute; left: 0; top: 0; width: clamp(1.75rem, 3.5vw, 2.75rem); aspect-ratio: 1;
  background: var(--brand); clip-path: polygon(0 0, 100% 0, 0 100%); pointer-events: none; transition: opacity .3s ease;
}
.video-frame.is-playing::after { opacity: 0; }
.video-frame video { display: block; width: 100%; height: 100%; object-fit: contain; background: #0B0D10; }
.video-frame video:focus-visible { outline: .19rem solid #fff; outline-offset: -.35rem; }
.video-play {
  position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: flex-start; gap: 1rem;
  width: 100%; padding: clamp(1rem, 3vw, 1.6rem); border: 0; color: #fff; font: inherit; text-align: left; cursor: pointer;
  background: linear-gradient(180deg, rgb(11 13 16 / 0%) 40%, rgb(11 13 16 / 78%) 100%);
}
.video-play[hidden] { display: none; }
.vsl-ui .video-play { align-items: center; justify-content: center; background: linear-gradient(180deg, rgb(11 13 16 / 10%), rgb(11 13 16 / 55%)); }
.vsl-ui:has(> .video-play:not([hidden])) .vsl-bar,
.vsl-ui:has(> .vsl-end:not([hidden])) .vsl-bar { display: none; }
.video-frame:has(.vsl-end:not([hidden]))::after { opacity: 0; }
.video-play-icon {
  position: relative; display: grid; place-items: center; flex: none; width: clamp(3.6rem, 7vw, 4.75rem); aspect-ratio: 1;
  border-radius: 50%; background: var(--brand); box-shadow: 0 12px 30px rgb(216 0 0 / 45%);
  transition: transform .25s var(--ease), background-color .2s ease;
}
.video-play-icon::before { content: ""; width: 32%; aspect-ratio: .88; margin-left: 10%; background: #fff; clip-path: polygon(0 0, 100% 50%, 0 100%); }
.video-play-icon::after { content: ""; position: absolute; inset: -.4rem; border: 2px solid rgb(255 255 255 / 55%); border-radius: 50%; opacity: 0; }
.video-play:hover .video-play-icon { transform: scale(1.06); background: var(--brand-strong); }
.video-play:focus-visible { outline: .19rem solid #fff; outline-offset: -.5rem; }
.video-play-text { display: grid; gap: .15rem; padding-bottom: .25rem; text-shadow: 0 1px 14px rgb(0 0 0 / 55%); }
.video-play-text strong { font-size: clamp(1.05rem, .95rem + .5vw, 1.3rem); font-weight: 800; line-height: 1.2; }
.video-play-text span { color: rgb(255 255 255 / 88%); font-size: .9rem; font-weight: 600; }
/* player proprio (sem baixar, sem avancar/voltar) */
.vsl-ui { position: absolute; inset: 0; pointer-events: none; }
.vsl-ui[hidden] { display: none; }
.vsl-ui > *, .vsl-bar > .vsl-btn { pointer-events: auto; }
.video-frame.is-ready video { cursor: pointer; }
.vsl-unmute {
  position: absolute; left: 50%; top: 46%; transform: translate(-50%, -50%);
  display: flex; align-items: center; gap: .8rem; max-width: calc(100% - 2rem);
  padding: .75rem 1.35rem .75rem .75rem; border: 0; border-radius: 999px;
  color: #fff; background: var(--brand); box-shadow: 0 14px 36px rgb(0 0 0 / 40%), 0 0 0 4px rgb(216 0 0 / 25%);
  font: inherit; text-align: left; cursor: pointer;
}
.vsl-unmute[hidden], .vsl-end[hidden] { display: none; }
.vsl-unmute:hover { background: var(--brand-strong); }
.vsl-unmute:focus-visible { outline: .19rem solid #fff; outline-offset: .2rem; }
.vsl-unmute-icon { display: grid; place-items: center; flex: none; width: 2.75rem; aspect-ratio: 1; border-radius: 50%; background: rgb(255 255 255 / 18%); }
.vsl-unmute-icon svg { width: 1.45rem; height: 1.45rem; fill: currentColor; }
.vsl-unmute-text { display: grid; gap: .05rem; line-height: 1.2; }
.vsl-unmute-text small { font-size: .8rem; font-weight: 600; opacity: .92; }
.vsl-unmute-text strong { font-size: clamp(1rem, .9rem + .5vw, 1.2rem); font-weight: 800; }
.vsl-bar {
  position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; gap: .45rem;
  padding: .5rem .6rem .85rem; background: linear-gradient(180deg, rgb(0 0 0 / 0%), rgb(0 0 0 / 55%));
  pointer-events: none;
}
.vsl-btn {
  display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border: 0; border-radius: 50%;
  color: #fff; background: rgb(255 255 255 / 16%); cursor: pointer; transition: background-color .2s ease;
}
.vsl-btn:hover { background: rgb(255 255 255 / 28%); }
.vsl-btn:focus-visible { outline: .19rem solid #fff; outline-offset: .1rem; }
.vsl-btn svg { width: 1.2rem; height: 1.2rem; fill: currentColor; }
.vsl-btn .i-play, .vsl-btn .i-muted { display: none; }
.video-frame:not(.is-playing) [data-video-toggle] .i-pause { display: none; }
.video-frame:not(.is-playing) [data-video-toggle] .i-play { display: block; }
.video-frame.is-muted [data-video-mute] .i-sound { display: none; }
.video-frame.is-muted [data-video-mute] .i-muted { display: block; }
.vsl-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: rgb(255 255 255 / 20%); pointer-events: none; }
.vsl-progress > span { display: block; height: 100%; background: var(--brand); transform: scaleX(0); transform-origin: left center; transition: transform .25s linear; }
.vsl-end {
  position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: .9rem;
  padding: 1rem; text-align: center; background: rgb(11 13 16 / 80%);
}
.vsl-end-title { margin: 0; color: #fff; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.15rem, .95rem + 1vw, 1.65rem); line-height: 1.2; }
.vsl-replay { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .5rem; border: 0; color: #fff; background: none; font: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.vsl-replay svg { width: 1.1rem; height: 1.1rem; fill: currentColor; }
.vsl-replay:focus-visible { outline: .19rem solid #fff; outline-offset: .15rem; }
.video-frame.has-sound .video-play { display: none; }
@media (max-width: 40rem) {
  .vsl-unmute { top: 54%; gap: .55rem; padding: .45rem .95rem .45rem .45rem; }
  .vsl-unmute-icon { width: 2.1rem; }
  .vsl-unmute-icon svg { width: 1.2rem; height: 1.2rem; }
  .vsl-unmute-text { white-space: nowrap; }
  .vsl-unmute-text small { font-size: .72rem; }
  .vsl-unmute-text strong { font-size: .98rem; }
  .vsl-btn { width: 2.3rem; height: 2.3rem; }
  .vsl-end { gap: .55rem; padding: .75rem; }
  .vsl-end .button-lg { padding: .7rem 1.1rem; font-size: .95rem; }
}
.video-figure { display: grid; gap: .9rem; min-width: 0; margin: 0; }
.hero-media figcaption { color: var(--on-ink-muted); font-size: .92rem; line-height: 1.5; }
.video-cta { justify-self: start; }
.video-transcript { color: var(--on-ink-muted); font-size: .94rem; }
.video-transcript summary { width: fit-content; color: #fff; font-weight: 700; cursor: pointer; }
.video-transcript summary:hover { text-decoration: underline; }
.video-transcript p { margin: .75rem 0 0; padding: 1rem 1.15rem; border-radius: var(--radius); background: rgb(255 255 255 / 6%); line-height: 1.7; }
@media (max-width: 40rem) {
  .video-cta { justify-self: stretch; justify-content: center; width: 100%; }
  .video-play-text span { font-size: .82rem; }
}

/* blocos da landing */
.section-head h2.no-dot::after { content: none; }
.lp-proof .trust-num { font-size: clamp(1.75rem, 1.2rem + 1.4vw, 2.5rem); white-space: nowrap; }
.lp-proof .trust-item { align-content: start; }
@media (min-width: 56rem) { .lp-proof .trust-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 55.99rem) {
  .lp-proof .trust-grid { grid-template-columns: minmax(0, 1fr); }
  .lp-proof .trust-item { padding: 1rem 1.25rem; border-right: 0; }
  .lp-proof .trust-item, .lp-proof .trust-item:nth-last-child(-n+2) { border-bottom: 1px solid var(--border); }
  .lp-proof .trust-item:last-child { border-bottom: 0; }
}
/* o botao do WhatsApp fica embaixo do video ("clica no botao aqui embaixo"), sem repetir ao lado do principal */
.page-landing .hero-actions .button-ghost[data-conversion="click_whatsapp"] { display: none; }
/* celular e tablet (mesmo limite do menu do topo): o video e o primeiro impacto, acima do texto */
@media (max-width: 64rem) {
  .page-landing .hero { padding-top: clamp(1.25rem, 4vw, 2.25rem); }
  .page-landing .hero::after { display: none; }
  .page-landing .hero-media { order: -1; margin: 0 0 clamp(2rem, 6vw, 3rem); }
}
@media (max-width: 40rem) { .page-landing .hero-media figcaption { display: none; } }
.lp-note { margin: 1.5rem 0 0 !important; color: var(--muted); font-weight: 600; }
@media (min-width: 40rem) { .lp-analysis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64rem) { .lp-analysis { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.lp-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: clamp(1.75rem, 3vw, 2.25rem); }
.lp-process { display: grid; gap: clamp(1.5rem, 4vw, 3.5rem); }
@media (min-width: 60rem) {
  .lp-process { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; }
  .lp-process .section-head { margin-bottom: 0; }
}
.lp-process .process-steps { max-width: none; }
.lp-process .process-steps li { padding-bottom: 1.5rem; }
@media (max-width: 40rem) {
  .lp-actions > .button { flex: 1 1 100%; justify-content: center; }
}

/* cartao escuro de chamada dentro das grades */
.tile.tile-ink {
  position: relative; overflow: hidden; align-content: center; border-color: transparent; color: var(--on-ink);
  background: url("/assets/images/grao.svg"), radial-gradient(22rem 12rem at 100% 0%, rgb(216 0 0 / 30%), transparent 65%), var(--ink);
}
.tile.tile-ink::before { content: ""; position: absolute; left: 0; top: 0; width: 1.6rem; aspect-ratio: 1; background: var(--brand); clip-path: polygon(0 0, 100% 0, 0 100%); }
.tile.tile-ink h3 { color: #fff; font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; }
.tile.tile-ink p { color: var(--on-ink-muted); }
.tile.tile-ink p + p { margin-top: .9rem; }
.tile.tile-ink:hover { border-color: transparent; }
.tile.tile-ink :focus-visible { outline-color: #fff; }
.lp-fineprint { margin: 1.25rem 0 0; color: var(--on-ink-muted); font-size: .84rem; line-height: 1.5; }
.lp-note .link-arrow { margin-left: .35rem; }

@media (max-width: 22.5rem) {
  .vsl-end-title { font-size: 1rem; }
  .vsl-end .button-lg { padding: .6rem .9rem; font-size: .9rem; }
}
/* celular deitado: aviso de cookies mais baixo e o "Clique para ouvir" acima dele */
@media (max-height: 30rem) {
  .cookie-bar-inner { padding-block: .5rem; }
  .cookie-bar p { font-size: .8rem; line-height: 1.4; }
  .cookie-bar .button { min-height: 2.2rem; padding-block: .4rem; }
  .has-cookie-bar .vsl-unmute { top: 34%; }
}

/* depoimento do Felipe */
.lp-quote-band { display: grid; gap: clamp(1.75rem, 4vw, 3.5rem); }
@media (min-width: 60rem) {
  .lp-quote-band { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; }
  .lp-quote-band .section-head { margin-bottom: 0; }
}
.lp-quote-head .lp-actions { margin-top: 1.75rem; }
.lp-quote { display: grid; gap: 1.4rem; margin: 0; padding-left: clamp(0rem, 3vw, 2.5rem); border-left: 1px solid rgb(255 255 255 / 12%); }
@media (max-width: 59.99rem) { .lp-quote { padding-left: 1.25rem; } }
.lp-quote blockquote { margin: 0; }
.lp-quote blockquote p {
  margin: 0; color: #fff; font-family: var(--font-display); font-weight: 600;
  font-size: clamp(1.4rem, 1rem + 1.5vw, 2.15rem); line-height: 1.22; letter-spacing: -.015em;
}
.lp-quote blockquote p::before { content: "“"; color: var(--brand-on-ink); }
.lp-quote blockquote p::after { content: "”"; color: var(--brand-on-ink); }
.lp-quote figcaption { display: flex; align-items: center; gap: .8rem; color: var(--on-ink-muted); font-weight: 600; }
.lp-quote figcaption::before { content: ""; flex: none; width: 2.5rem; height: 2px; background: var(--brand-on-ink); }
.lp-quote figcaption strong { color: #fff; }

/* "sem pegadinha": o que costuma surpreender e como tratamos */
.truth-grid { display: grid; gap: var(--gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); margin: 0; padding: 0 !important; list-style: none; }
.truth-grid > li { margin: 0 !important; }
.truth {
  position: relative; display: grid; align-content: start; gap: .55rem; height: 100%;
  padding: 1.4rem 1.5rem 1.45rem 1.65rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface);
}
.truth::before { content: ""; position: absolute; left: 0; top: 1.25rem; bottom: 1.25rem; width: 3px; border-radius: 0 3px 3px 0; background: var(--brand); }
.truth h3 { margin: 0; font-size: 1.06rem; }
.truth p { margin: 0; color: var(--muted); font-size: .97rem; line-height: 1.6; }
.truth-ink {
  overflow: hidden; border-color: transparent; color: var(--on-ink);
  background: url("/assets/images/grao.svg"), radial-gradient(24rem 14rem at 100% 0%, rgb(216 0 0 / 30%), transparent 65%), var(--ink);
}
.truth-ink::before { top: 0; bottom: auto; width: clamp(1.6rem, 3vw, 2.2rem); aspect-ratio: 1; border-radius: 0; clip-path: polygon(0 0, 100% 0, 0 100%); }
.truth-ink h3 { color: #fff; }
.truth-ink p { color: var(--on-ink-muted); }
.truth-ink .link-arrow { color: #fff; }
.truth-ink .link-arrow:hover { color: #fff; text-decoration: underline; }
.truth-ink :focus-visible { outline-color: #fff; }
.lp-process-head { display: grid; align-content: start; }
.lp-process-head .lp-actions { margin-top: 1.75rem; }
@media (max-width: 59.99rem) {
  /* no celular os botoes vem depois dos passos */
  .lp-process-head { display: contents; }
  .lp-process > .process-steps { order: 1; }
  .lp-process-head .lp-actions { order: 2; margin-top: 0; }
}
.page-landing .content-flow > section:not(.band):not(.trust-bar) { padding-block: clamp(3rem, 6.5vw, 5.25rem); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .wa-float::before, .wa-float::after { animation: none !important; opacity: 0 !important; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
@media print {
  .site-header, .cta-band, .page-aside, .cookie-panel, .cookie-bar, .wa-float, .scroll-progress, .skip-link, .page-visual, .hero::before, .hero::after { display: none !important; }
  .hero { color: #000; background: none; }
  .hero h1 { color: #000; }
  .reveal { opacity: 1 !important; transform: none !important; }
  .video-play, .video-cta { display: none !important; }
}

:root {
  --brand: #D80000;
  --brand-strong: #9E0000;
  --accent: #3C434A;
  --surface: #FFFFFF;
  --surface-muted: #F2F4F6;
  --text: #1C2024;
  --muted: #596069;
  --border: #DCE0E5;
  --focus: #22272C;
}
