/* Gerado por assets/scripts/montar-paginas.py (empacotar): estilo + componentes + icones + movimento.
   Não editar à mão: edite os arquivos de origem e rode o montador. ADR 0025. */

/* ===== estilo.css ===== */
/*
  Planos BH — folha de estilo global
  Tokens de cor aprovados em 2026-10-13 (paleta 10 "Lavanda clara", rodada 3).
  Fonte da verdade: assets/docs/marca/identidade-visual.md
  Tipografia e componentes entram nas próximas fases.
*/

:root {
  /* Paleta aprovada */
  --cor-profunda: #2B2A6B;   /* campos escuros grandes, rodapé */
  --cor-principal: #5E59EE;  /* identidade: logo, títulos, links */
  --cor-acento: #7FEBC6;     /* ação e destaque: botão primário, marcadores */
  --cor-suave: #ECEBFF;      /* superfícies, seções alternadas, cartões */
  --cor-fundo: #FAFAFF;      /* fundo da página */
  --cor-texto: #1E1C4F;      /* corpo de texto */

  /* Derivadas (contraste verificado sobre --cor-fundo) */
  --cor-texto-secundario: #55538A;  /* 6,75:1 */
  --cor-principal-hover: #4C47D6;   /* branco sobre ela: 6,60:1 */
  --cor-acento-hover: #5FDDB2;      /* texto sobre ela: 9,35:1 */
  --cor-borda: #D6D5F0;
  --cor-branco: #FFFFFF;

  /* Semânticas */
  --cor-sucesso: #0F6E56;    /* 5,96:1 */
  --cor-aviso: #8A5A00;      /* 5,70:1 */
  --cor-erro: #B42318;       /* 6,32:1; branco sobre ela: 6,57:1 */
  --cor-whatsapp: #128C7E;   /* usar só em ícone; como fundo de botão exige texto grande (4,14:1) */

  /* Escala tonal da principal (OKLCH), para estados e gráficos */
  --principal-50: color-mix(in oklch, var(--cor-principal) 8%, white);
  --principal-100: color-mix(in oklch, var(--cor-principal) 18%, white);
  --principal-200: color-mix(in oklch, var(--cor-principal) 32%, white);
  --principal-300: color-mix(in oklch, var(--cor-principal) 50%, white);
  --principal-400: color-mix(in oklch, var(--cor-principal) 72%, white);
  --principal-500: var(--cor-principal);
  --principal-600: color-mix(in oklch, var(--cor-principal) 85%, black);
  --principal-700: color-mix(in oklch, var(--cor-principal) 68%, black);
  --principal-800: color-mix(in oklch, var(--cor-principal) 52%, black);
  --principal-900: color-mix(in oklch, var(--cor-principal) 36%, black);

  /* Papéis semânticos usados pelos componentes */
  --fundo-pagina: var(--cor-fundo);
  --fundo-superficie: var(--cor-suave);
  --fundo-escuro: var(--cor-profunda);
  --texto-padrao: var(--cor-texto);
  --texto-secundario: var(--cor-texto-secundario);
  --texto-sobre-escuro: var(--cor-branco);
  --acao-primaria: var(--cor-acento);
  --acao-primaria-texto: var(--cor-texto);
  --acao-secundaria: var(--cor-principal);
  --acao-secundaria-texto: var(--cor-branco);
  --link: var(--cor-principal);
  --foco: var(--cor-principal);

  /* Gradientes de marca */
  --gradiente-marca: linear-gradient(135deg, var(--cor-profunda) 0%, var(--cor-principal) 55%, var(--cor-acento) 100%);
  --gradiente-escuro: linear-gradient(200deg, var(--cor-principal) 0%, var(--cor-profunda) 70%);
  --gradiente-superficie: linear-gradient(180deg, var(--cor-suave), var(--cor-fundo));
}

/* Regras de uso (ver identidade-visual.md):
   - Acento (#7FEBC6) nunca recebe texto branco: usar --cor-texto.
   - Acento só em botão, marcador e ícone; nunca em campo grande.
   - Principal sobre fundo passa como texto (4,88:1); sobre a profunda, não: usar branco ou suave.
   - Cor nunca é o único sinal: estados têm ícone ou texto. */

::selection { background: var(--cor-acento); color: var(--cor-texto); }
:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; }

/* ---------------------------------------------------------------
   Tipografia aprovada em 2026-10-13 (par T12, rodada 3)
   Títulos: Readex Pro (variável 500–700). Texto: Albert Sans (variável 400–600).
   Arquivos em assets/fonts/ (subconjunto latino, licença OFL).
   --------------------------------------------------------------- */
@font-face {
  font-family: "Readex Pro";
  src: url("../fonts/readex-pro-latin.woff2") format("woff2");
  font-weight: 500 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Albert Sans";
  src: url("../fonts/albert-sans-latin.woff2") format("woff2");
  font-weight: 400 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --fonte-titulo: "Readex Pro", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fonte-texto: "Albert Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  /* Escala: base 16 px, razão 1,25 (terça maior), arredondada */
  --t-xs: 0.75rem;     /* 12 px: metadados, rodapé legal */
  --t-sm: 0.875rem;    /* 14 px: legendas, "Revisado em" */
  --t-base: 1rem;      /* 16 px: corpo */
  --t-lg: 1.125rem;    /* 18 px: parágrafo de destaque, hero */
  --t-xl: 1.25rem;     /* 20 px: H4, rótulo de bloco */
  --t-2xl: 1.5rem;     /* 24 px: H3 */
  --t-3xl: 1.875rem;   /* 30 px: H2 */
  --t-4xl: 2.375rem;   /* 38 px: H1 interno */
  --t-5xl: clamp(2.5rem, 1.9rem + 2.4vw, 3.5rem); /* 40 a 56 px: H1 da home */

  --peso-texto: 400;
  --peso-texto-medio: 500;
  --peso-texto-forte: 600;
  --peso-titulo: 600;
  --peso-titulo-forte: 700;

  --entrelinha-texto: 1.55;
  --entrelinha-titulo: 1.1;
  --entrelinha-sobre-escuro: 1.65;
  --tracking-titulo: -0.02em;
  --medida-texto: 65ch;
}

html { font-size: 100%; }
body {
  font-family: var(--fonte-texto);
  font-weight: var(--peso-texto);
  font-size: var(--t-base);
  line-height: var(--entrelinha-texto);
  color: var(--texto-padrao);
  background: var(--fundo-pagina);
  -webkit-text-size-adjust: 100%;
}
h1, h2, h3, h4 {
  font-family: var(--fonte-titulo);
  font-weight: var(--peso-titulo-forte);
  line-height: var(--entrelinha-titulo);
  letter-spacing: var(--tracking-titulo);
  color: var(--cor-profunda);
  text-wrap: balance;
  margin: 0 0 0.5em;
}
h1 { font-size: var(--t-4xl); }
h2 { font-size: var(--t-3xl); }
h3 { font-size: var(--t-2xl); font-weight: var(--peso-titulo); }
h4 { font-size: var(--t-xl); font-weight: var(--peso-titulo); letter-spacing: 0; }
p { margin: 0 0 1em; max-width: var(--medida-texto); }
small, .texto-pequeno { font-size: var(--t-sm); color: var(--texto-secundario); }
.numero { font-family: var(--fonte-titulo); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }

/* ===== componentes.css ===== */
/*
  Planos BH — componentes e blocos de seção (UI kit, ADR 0008)
  Sobre os tokens de estilo.css. Fonte da verdade documentada em assets/docs/marca/ui-kit.md
  e renderizada em assets/docs/marca/ui-kit.html. Máscaras dos ícones em icones.css (gerado).
  Composição aprovada: V5 Varanda com o hero da home da V8 Trilho.
*/

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; }
img, svg { display: block; max-width: 100%; }
a { color: var(--link); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--cor-principal-hover); }
ul, ol { padding-left: 1.2em; }
li { margin-bottom: 0.35em; }
table { border-collapse: collapse; width: 100%; font-size: var(--t-sm); }
th, td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--cor-borda); vertical-align: top; }
th { font-family: var(--fonte-titulo); font-weight: 600; color: var(--cor-profunda); font-size: var(--t-xs); text-transform: uppercase; letter-spacing: 0.04em; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--cor-fundo); }
::-webkit-scrollbar-thumb { background: var(--cor-borda); border-radius: 999px; border: 3px solid var(--cor-fundo); }
::-webkit-scrollbar-thumb:hover { background: var(--principal-300); }
input, select, textarea, button { font: inherit; color: inherit; caret-color: var(--cor-principal); }

:root {
  --raio-sm: 10px;
  --raio: 16px;
  --raio-lg: 24px;
  --raio-xl: 32px;
  --sombra-sm: 0 1px 2px rgba(30, 28, 79, 0.06), 0 2px 8px rgba(30, 28, 79, 0.06);
  --sombra: 0 6px 18px -6px rgba(30, 28, 79, 0.18), 0 2px 6px rgba(30, 28, 79, 0.06);
  --sombra-lg: 0 24px 48px -16px rgba(43, 42, 107, 0.28), 0 6px 14px -6px rgba(43, 42, 107, 0.12);
  --largura: 1200px;
  --margem: clamp(16px, 4vw, 40px);
  --secao: 64px;
  --transicao: 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.visualmente-oculto { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } /* !important: utilitário de acessibilidade */
.container { width: min(100%, var(--largura)); margin-inline: auto; }
/* Estreito: mesma coluna (e mesma borda esquerda) do .container; só a medida do conteúdo diminui. Nunca centralizado (ui-kit 6: alinhamento à esquerda). */
.container--estreito { width: min(100%, var(--largura)); margin-inline: auto; }
.container--estreito > :not(p) { max-width: 820px; }
/* Quem dá a margem lateral é o bloco de página, não o container */
.secao, .cabecalho, .rodape, main > .container, main > nav, .bloco-pagina { padding-left: 16px; padding-right: 16px; }
@media (min-width: 720px) { .secao, .cabecalho, .rodape, main > .container, main > nav, .bloco-pagina { padding-left: 40px; padding-right: 40px; } }
.secao { padding-top: 64px; padding-bottom: 64px; }
@media (min-width: 900px) { .secao { padding-top: 104px; padding-bottom: 104px; } }
.secao--suave { background: var(--fundo-superficie); }
.secao--suave a:not(.botao):not(.chip):not(.cartao__link), .faixa-form__lado a:not(.botao):not(.operadora) { color: var(--cor-principal-hover); } /* principal pura dá 4,3:1 sobre a suave (ui-kit.md, tokens) */
.secao--escura { background: var(--fundo-escuro); color: var(--texto-sobre-escuro); line-height: var(--entrelinha-sobre-escuro); }
.secao--escura h2, .secao--escura h3 { color: #fff; }
.secao--escura p, .secao--escura .texto-pequeno, .secao--escura .secao__cabeca p { color: #C9C7F2; }
.secao--escura a { color: var(--cor-acento); }
.secao--escura .botao--primario { color: var(--acao-primaria-texto); }
.secao__cabeca { max-width: 62ch; margin-bottom: clamp(28px, 4vw, 48px); }
.secao__cabeca p { font-size: var(--t-lg); color: var(--texto-secundario); }
.secao__cabeca.centro { margin-inline: auto; text-align: center; }
.secao__cabeca.centro p { margin-inline: auto; }

/* Ícones (SVG mascarado com a cor do texto; as máscaras .ic-* estão em icones.css, gerado) */
.icone { display: inline-block; width: 1.25em; height: 1.25em; flex: none; background: currentColor; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; vertical-align: -0.3em; }
.icone--grande { width: 28px; height: 28px; }

/* Botões */
.botao { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 22px; border-radius: 999px; border: 2px solid transparent; font-family: var(--fonte-titulo); font-weight: 600; font-size: var(--t-base); line-height: 1; text-decoration: none; cursor: pointer; white-space: nowrap; transition: background var(--transicao), color var(--transicao), transform var(--transicao), box-shadow var(--transicao), border-color var(--transicao); }
.botao:hover { translate: 0 -1px; }
.botao:active { transform: translateY(0); }
.botao:focus-visible { outline-offset: 3px; }
.botao--primario { background: var(--acao-primaria); color: var(--acao-primaria-texto); box-shadow: 0 8px 20px -10px rgba(95, 221, 178, 0.9); }
.botao--primario:hover { background: var(--cor-acento-hover); color: var(--acao-primaria-texto); }
.botao--secundario { background: var(--acao-secundaria); color: var(--acao-secundaria-texto); }
.botao--secundario:hover { background: var(--cor-principal-hover); color: #fff; }
.botao--contorno { background: transparent; border-color: var(--cor-borda); color: var(--cor-profunda); }
.botao--contorno:hover { border-color: var(--cor-principal); color: var(--cor-principal); background: #fff; }
.botao--claro { background: #fff; color: var(--cor-profunda); }
.botao--claro:hover { background: var(--cor-suave); color: var(--cor-profunda); }
.botao--sobre-escuro { background: transparent; border-color: rgba(255, 255, 255, 0.35); color: #fff; }
.botao--sobre-escuro:hover { border-color: #fff; background: rgba(255, 255, 255, 0.08); color: #fff; }
.botao .ic-whatsapp { color: var(--cor-whatsapp); }
.botao--primario .ic-whatsapp, .botao--secundario .ic-whatsapp { color: currentColor; }
.botao--grande { min-height: 56px; padding: 0 30px; font-size: var(--t-lg); }
.botao--pequeno { min-height: 40px; padding: 0 16px; font-size: var(--t-sm); }
.botao--largo { width: 100%; }
.acoes { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* Cabeçalho */
.cabecalho { position: sticky; top: 0; z-index: 50; background: rgba(250, 250, 255, 0.86); backdrop-filter: saturate(160%) blur(10px); border-bottom: 1px solid var(--cor-borda); }
.cabecalho__barra { display: flex; align-items: center; gap: 24px; min-height: 76px; }
.cabecalho__logo { flex: none; }
.cabecalho__logo img { height: 36px; width: auto; max-width: none; }
/* Menu: painel abaixo da barra até 1199 px (abre com o hambúrguer, navegacao.js); em linha com submenus suspensos a partir de 1200 px */
.cabecalho__nav { display: none; position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100vh - 72px); overflow-y: auto; padding: 8px 16px 24px; background: var(--cor-fundo); border-bottom: 1px solid var(--cor-borda); box-shadow: 0 16px 32px -20px rgba(30, 28, 79, 0.35); }
.cabecalho--aberto .cabecalho__nav { display: block; }
.cabecalho__menu { display: flex; flex-direction: column; gap: 2px; list-style: none; padding: 0; margin: 0; }
.cabecalho__menu a { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; padding: 12px; border-radius: 999px; color: var(--texto-padrao); text-decoration: none; font-weight: 500; font-size: 16px; }
.cabecalho__menu a:hover { background: var(--cor-suave); color: var(--cor-profunda); }
.cabecalho__menu .icone { width: 14px; height: 14px; opacity: 0.6; }
.tem-submenu { display: flex; flex-wrap: wrap; align-items: center; }
.cabecalho__item-botao { display: inline-flex; align-items: center; gap: 4px; padding: 12px; border: 0; border-radius: 999px; background: transparent; color: var(--texto-padrao); font: inherit; font-weight: 500; font-size: 16px; cursor: pointer; }
.cabecalho__item-botao:hover, .tem-submenu.aberto > .cabecalho__item-botao { background: var(--cor-suave); color: var(--cor-profunda); }
.cabecalho__item-botao .icone { transition: transform 200ms var(--saida, ease-out), translate 200ms var(--saida, ease-out), scale 200ms var(--saida, ease-out); }
.tem-submenu.aberto > .cabecalho__item-botao .icone { transform: rotate(180deg); }
.submenu__botao { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 999px; background: transparent; color: var(--cor-profunda); cursor: pointer; }
.submenu__botao:hover { background: var(--cor-suave); }
.submenu__botao .icone { transition: transform 200ms var(--saida, ease-out), translate 200ms var(--saida, ease-out), scale 200ms var(--saida, ease-out); }
.tem-submenu.aberto > .submenu__botao .icone { transform: rotate(180deg); }
.submenu { display: none; flex-basis: 100%; list-style: none; margin: 0 0 8px; padding: 4px 0 4px 12px; }
.tem-submenu.aberto > .submenu { display: grid; }
.submenu a { padding: 8px 12px; font-size: 15px; white-space: normal; }
.submenu li { margin: 0; }
/* Mega menu de operadoras (2 grupos) e de modalidades (ícone + descrição). No painel: grupos empilhados, operadoras em 2 colunas. */
.submenu--mega { gap: 4px; }
.submenu__grupo ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.submenu__titulo { margin: 10px 12px 4px; font-size: var(--t-xs, 12px); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--texto-secundario); }
.cabecalho__menu .submenu__grupo a { display: block; }
.submenu small { display: block; font-size: 12px; font-weight: 400; color: var(--texto-secundario); }
.cabecalho__menu .submenu__chamada { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; margin: 10px 0 0; padding: 12px 14px; border-radius: 14px; background: var(--cor-suave); color: var(--cor-profunda); white-space: normal; font-size: 14px; transition: background 200ms var(--saida, ease-out); }
.submenu__chamada strong { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; }
.cabecalho__menu .submenu__chamada:hover { background: var(--cor-borda); }
.cabecalho__menu .submenu__chamada .icone { opacity: 1; transition: transform 200ms var(--saida, ease-out), translate 200ms var(--saida, ease-out), scale 200ms var(--saida, ease-out); }
.submenu__chamada:hover .icone { translate: 3px 0; }
.cabecalho__menu .submenu--modalidades a { display: flex; align-items: flex-start; gap: 12px; white-space: normal; border-radius: 12px; }
.submenu--modalidades strong { display: block; font-size: 15px; font-weight: 600; color: var(--cor-profunda); }
.cabecalho__menu .submenu--modalidades .icone { flex: none; width: 20px; height: 20px; margin-top: 2px; opacity: 1; color: var(--cor-principal); }
@keyframes submenu-entra { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (min-width: 600px) { .submenu--modalidades, .submenu--planos, .submenu--mega { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; } .submenu--mega .submenu__grupo ul { grid-template-columns: 1fr; } .submenu--hospitais .submenu__grupo:first-child ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cabecalho--aberto ~ .cta-whatsapp-fixa { display: none; }
.cabecalho__nav-acoes { margin-top: 16px; display: grid; gap: 10px; }
.cabecalho__acoes { display: none; gap: 10px; }
.cabecalho__cotacao-mobile { margin-left: auto; display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 14px; border-radius: 999px; background: var(--acao-primaria); color: var(--acao-primaria-texto); font-family: var(--fonte-titulo); font-size: 0.8125rem; font-weight: 700; line-height: 1; text-decoration: none; white-space: nowrap; box-shadow: 0 6px 14px -6px rgba(30, 28, 79, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.45); transition: background var(--transicao), transform var(--transicao); }
.cabecalho__cotacao-mobile:hover { background: var(--cor-acento-hover); color: var(--acao-primaria-texto); }
.cabecalho__cotacao-mobile:active { transform: translateY(1px); }
.cabecalho__hamburguer { margin-left: auto; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--cor-borda); background: #fff; color: var(--cor-profunda); cursor: pointer; }
@media (max-width: 1199px) {
  .cabecalho__barra { gap: 8px; }
  .cabecalho__hamburguer { margin-left: 0; flex: none; }
}
@media (max-width: 430px) { .cabecalho__logo img { height: 28px; } .cabecalho__hamburguer { width: 40px; height: 40px; } }
@media (max-width: 359px) { .cabecalho__logo img { height: 24px; } .cabecalho__cotacao-mobile { padding: 0 10px; font-size: 0.75rem; } }
/* Entre 1200 e 1279 px a barra tem 1120 px: menu um pouco mais justo para o logo caber inteiro. */
@media (min-width: 1200px) and (max-width: 1279px) { .cabecalho .cabecalho__menu a, .cabecalho .cabecalho__item-botao { padding-inline: 7px; font-size: 14px; } }
@media (min-width: 1200px) {
  .cabecalho__nav { display: block; position: static; max-height: none; overflow: visible; padding: 0; margin-left: auto; background: none; border: 0; box-shadow: none; }
  .cabecalho__barra { gap: 24px; }
  .cabecalho__menu { flex-direction: row; gap: 2px; }
  .cabecalho__menu a, .cabecalho__item-botao { padding: 10px 10px; font-size: 15px; letter-spacing: 0.005em; }
  .cabecalho__acoes { margin-left: 0; padding-left: 16px; border-left: 1px solid var(--cor-borda); }
  /* O logo não pode ceder espaço ao menu (2026-10-16): no desktop o WhatsApp do cabeçalho fica só com o ícone; o flutuante e o hero mantêm o texto. */
  .cabecalho__whats-rotulo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .cabecalho__acoes .cabecalho__whats { padding-inline: 12px; }
  .cabecalho__nav-acoes { display: none; }
  .cabecalho__acoes { display: flex; }
  .cabecalho__cotacao-mobile { display: none; }
  .cabecalho__hamburguer { display: none; }
  .tem-submenu { position: relative; flex-wrap: nowrap; }
  .tem-submenu > a { padding-right: 2px; }
  .submenu__botao { width: 28px; height: 36px; margin-left: -4px; }
  .submenu { position: absolute; top: calc(100% + 6px); left: 0; z-index: 60; min-width: 240px; margin: 0; padding: 8px; background: #fff; border: 1px solid var(--cor-borda); border-radius: 16px; box-shadow: 0 18px 40px -18px rgba(30, 28, 79, 0.35); }
  .submenu::before { content: ""; position: absolute; left: 0; right: 0; top: -8px; height: 8px; }
  .submenu--mega { width: 520px; padding: 12px 16px 16px; column-gap: 24px; }
  .submenu--hospitais { width: 600px; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
  .submenu--modalidades { width: 600px; padding: 12px; gap: 2px 8px; }
  .submenu--planos { width: 620px; padding: 12px; gap: 2px 8px; }
  .cabecalho__menu .submenu--planos a { white-space: normal; }
  @media (prefers-reduced-motion: no-preference) {
    .tem-submenu:hover > .submenu, .tem-submenu:focus-within > .submenu, .tem-submenu.aberto > .submenu { animation: submenu-entra 220ms var(--saida, ease-out); }
  }
  .tem-submenu:hover > .submenu, .tem-submenu:focus-within > .submenu { display: grid; }
  .submenu a { display: block; border-radius: 10px; }
}

/* Pular para o conteúdo (aparece só com foco do teclado) */
.pular-conteudo { position: absolute; left: 16px; top: -100px; z-index: 100; padding: 12px 18px; border-radius: 999px; background: var(--cor-profunda); color: #fff; font-weight: 600; text-decoration: none; }
.pular-conteudo:focus { top: 12px; }

/* Breadcrumb */
.migalhas { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 14px 0; margin: 0; list-style: none; font-size: var(--t-sm); color: var(--texto-secundario); }
.migalhas a { color: var(--texto-secundario); text-decoration: none; }
.migalhas a:hover { color: var(--cor-principal); text-decoration: underline; }
.migalhas li + li::before { content: "›"; margin-right: 6px; opacity: 0.6; }
.migalhas li:last-child { color: var(--cor-profunda); font-weight: 500; }

/* Hero base */
.sobrelinha { display: inline-block; margin: 0 0 14px; font-family: var(--fonte-titulo); font-weight: 500; font-size: var(--t-sm); letter-spacing: 0.02em; color: var(--cor-principal); }
.hero__texto { font-size: var(--t-lg); color: var(--texto-secundario); max-width: 58ch; }
.prova { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 24px 0 0; padding: 0; list-style: none; font-size: var(--t-sm); color: var(--texto-secundario); }
.prova li { display: inline-flex; align-items: center; gap: 8px; }
.prova .icone { color: var(--cor-sucesso); width: 18px; height: 18px; }

/* Em resumo */
.resumo { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); padding: clamp(20px, 3vw, 32px); box-shadow: var(--sombra-sm); }
.resumo h2 { font-size: var(--t-xl); margin-bottom: 10px; display: flex; align-items: center; gap: 10px; }
.resumo h2 .icone { color: var(--cor-principal); }
.resumo p { max-width: 64ch; }
.resumo .revisado { margin: 12px 0 0; font-size: var(--t-sm); color: var(--texto-secundario); display: inline-flex; align-items: center; gap: 8px; }
.resumo .revisado .icone { color: var(--cor-sucesso); width: 16px; height: 16px; }

/* Formulário de cotação (referência: captura do usuário, traduzida para a paleta) */
.cotacao { color: var(--texto-padrao); line-height: var(--entrelinha-texto); background: #fff; border-radius: var(--raio-lg); padding: clamp(20px, 3vw, 32px); box-shadow: var(--sombra-lg); border: 1px solid var(--cor-borda); }
.cotacao__titulo { font-size: var(--t-2xl); margin-bottom: 4px; }
.cotacao__sub { color: var(--texto-secundario); margin-bottom: 20px; font-size: var(--t-sm); }
.cotacao__campos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cotacao__campos .campo--largo { grid-column: 1 / -1; }
.campo { position: relative; }
.campo input, .campo select, .campo textarea { width: 100%; min-height: 52px; padding: 0 16px; border: 1.5px solid var(--cor-borda); border-radius: 12px; background: #fff; color: var(--texto-padrao); transition: border-color var(--transicao), box-shadow var(--transicao); appearance: none; }
.campo select { padding-right: 40px; cursor: pointer; }
.campo .ic-chevron { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; color: var(--texto-secundario); pointer-events: none; }
.campo textarea { min-height: 128px; padding: 14px 16px; resize: vertical; line-height: 1.5; font: inherit; }
.campo input::placeholder, .campo textarea::placeholder { color: var(--texto-secundario); opacity: 1; }
.campo input:hover, .campo select:hover, .campo textarea:hover { border-color: var(--principal-300); }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--cor-principal); box-shadow: 0 0 0 4px var(--principal-100); }
.campo input:user-invalid, .campo textarea:user-invalid, .campo [aria-invalid="true"] { border-color: var(--cor-erro); }
.campo__erro { display: none; margin: 6px 0 0 4px; font-size: var(--t-xs); color: var(--cor-erro); }
.campo input:user-invalid + .campo__erro, .campo [aria-invalid="true"] + .campo__erro { display: block; }
.campo[hidden] { display: none; }
/* Campo isca contra robôs (ADR 0030): escondido como o texto só para leitores de tela (visualmente-oculto) e fora da ordem de foco; pessoas nunca o preenchem. */
.campo-isca input { width: 1px; min-height: 0; height: 1px; padding: 0; border: 0; }
.cotacao__faixas-cabeca { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 22px 0 10px; }
.cotacao__faixas-cabeca h3 { font-size: var(--t-base); margin: 0; font-weight: 600; color: var(--texto-padrao); }
.cotacao__total { font-family: var(--fonte-titulo); font-weight: 600; font-size: var(--t-sm); color: var(--cor-principal); font-variant-numeric: tabular-nums; white-space: nowrap; }
.faixas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .faixas { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.faixa { background: var(--cor-suave); border-radius: 12px; padding: 10px 6px 8px; text-align: center; }
.faixa__rotulo { display: block; font-size: var(--t-xs); font-weight: 500; color: var(--cor-profunda); margin-bottom: 6px; }
.contador { display: flex; align-items: center; justify-content: space-between; gap: 2px; }
.contador button { width: 28px; height: 28px; border-radius: 8px; border: 0; background: #fff; color: var(--cor-profunda); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: var(--sombra-sm); transition: background var(--transicao), color var(--transicao); }
.contador button:hover { background: var(--cor-principal); color: #fff; }
.contador button:disabled { opacity: 0.4; cursor: default; background: #fff; color: var(--cor-profunda); }
.contador button .icone { width: 12px; height: 12px; }
.contador output { font-family: var(--fonte-titulo); font-weight: 700; font-size: var(--t-base); min-width: 1.5ch; text-align: center; font-variant-numeric: tabular-nums; }
.cotacao__consentimento { display: flex; gap: 10px; align-items: flex-start; margin: 16px 0; font-size: var(--t-xs); color: var(--texto-secundario); }
.cotacao__consentimento input { margin: 3px 0 0; width: 16px; height: 16px; accent-color: var(--cor-principal); flex: none; }
.cotacao__enviar { width: 100%; min-height: 56px; padding: 12px 20px; font-size: var(--t-lg); white-space: normal; line-height: 1.25; text-align: center; }
@media (max-width: 480px) { .cotacao__enviar { font-size: var(--t-base); } }
.cotacao__garantias { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; margin: 14px 0 0; padding: 0; list-style: none; font-size: var(--t-xs); color: var(--texto-secundario); }
.cotacao__garantias li { display: inline-flex; align-items: center; gap: 6px; }
.cotacao__garantias .icone { width: 14px; height: 14px; color: var(--cor-sucesso); }
.cotacao__mensagem { display: none; margin-top: 14px; padding: 14px 16px; border-radius: 12px; font-size: var(--t-sm); }
.cotacao__mensagem.sucesso { display: block; background: #E6F6F0; color: var(--cor-sucesso); }
.cotacao__mensagem.erro { display: block; background: #FBEAE8; color: var(--cor-erro); }
@media (max-width: 720px) { .cotacao__campos { grid-template-columns: 1fr; } }
@media (max-width: 639px) {
  /* Duas linhas de campos e dez faixas distribuídas em 3 + 3 + 4. */
  .cotacao { padding: 20px; }
  .cotacao__titulo { font-size: var(--t-lg); margin-bottom: 2px; }
  .cotacao__sub { margin-bottom: 8px; font-size: var(--t-xs); }
  .cotacao__campos { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 5px; }
  .cotacao__campos .campo { grid-column: span 2; }
  .cotacao__campos .campo:nth-child(-n + 2) { grid-column: span 3; }
  .cotacao__campos .campo--largo { grid-column: span 2; }
  .campo input, .campo select { min-height: 44px; padding-inline: 10px; font-size: var(--t-sm); }
  .campo select { padding: 0 20px 0 8px; font-size: 0.6875rem; }
  .campo .ic-chevron { right: 9px; }
  .cotacao__faixas-cabeca { margin: 12px 0 6px; }
  .cotacao__faixas-cabeca h3 { font-size: var(--t-sm); }
  .faixas { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 5px; }
  .faixa { grid-column: span 3; border-radius: 10px; padding: 6px 3px 5px; }
  .faixa:nth-child(-n + 6) { grid-column: span 4; }
  .faixa__rotulo { margin-bottom: 4px; font-size: 0.625rem; white-space: nowrap; }
  .contador { gap: 0; }
  .contador button { width: 28px; height: 28px; border-radius: 7px; }
  .contador button .icone { width: 12px; height: 12px; }
  .contador output { font-size: var(--t-sm); }
  .cotacao__consentimento { margin: 8px 0; font-size: 0.625rem; }
  .cotacao__enviar { min-height: 48px; padding: 10px 14px; }
  .cotacao__garantias { display: none; }
}
@media (max-width: 359px) {
  .pagina-cotacao { padding-inline: 8px; }
  .cotacao { padding: 12px; }
  .cotacao__titulo { font-size: var(--t-xl); }
}

/* Pílula de operadora (lugar reservado à logo oficial) */
.operadora { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px; border-radius: 12px; background: #fff; border: 1px solid var(--cor-borda); font-family: var(--fonte-titulo); font-weight: 600; font-size: 15px; color: var(--cor-profunda); white-space: nowrap; text-decoration: none; }
a.operadora:hover { border-color: var(--cor-principal); color: var(--cor-principal-hover); }
.operadora small { font-weight: 400; font-size: var(--t-xs); color: var(--texto-secundario); margin-left: 8px; font-family: var(--fonte-texto); }

/* Listas com ícone */
.lista-check { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
/* Respiro entre lista e o parágrafo seguinte (listas do kit têm margem zero) */
:is(ul, ol, .tabela-rolagem) + p { margin-top: 1.25em; }
p + :is(.lista-check, .passos, .fatores-lista, .tabela-rolagem) { margin-top: 1em; }
.artigo ul:not([class]) li::marker, .artigo ol:not([class]) li::marker { color: var(--cor-principal); }
.lista-check li { display: flex; gap: 12px; align-items: flex-start; }
.lista-check .icone { color: var(--cor-sucesso); margin-top: 3px; width: 20px; height: 20px; }

/* Passos */
.passos { counter-reset: passo; list-style: none; padding: 0; margin: 0; display: grid; gap: 20px; }
.passos li { position: relative; padding-left: 60px; }
.passos li::before { counter-increment: passo; content: counter(passo); position: absolute; left: 0; top: 0; width: 44px; height: 44px; border-radius: 50%; background: var(--cor-profunda); color: #fff; font-family: var(--fonte-titulo); font-weight: 700; display: grid; place-items: center; }
.passos strong { display: block; font-family: var(--fonte-titulo); color: var(--cor-profunda); margin-bottom: 4px; }

/* FAQ */
.faq { display: grid; gap: 10px; }
.faq details { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 0 22px; transition: border-color var(--transicao), box-shadow var(--transicao); }
.faq details[open] { border-color: var(--principal-300); box-shadow: var(--sombra-sm); }
.faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 18px 0; font-family: var(--fonte-titulo); font-weight: 600; color: var(--cor-profunda); font-size: var(--t-base); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .icone { color: var(--cor-principal); transition: transform var(--transicao); }
.faq details[open] summary .icone { transform: rotate(180deg); }
.faq details p { padding-bottom: 18px; margin: 0; color: var(--texto-secundario); max-width: 64ch; }

/* Fontes consultadas */
.fontes { font-size: var(--t-sm); color: var(--texto-secundario); }
.fontes ul { margin: 8px 0 0; }

/* Rodapé: compacto. Marca e contato em uma faixa no topo; links abaixo em dropdowns no celular, 3 colunas no tablet e 6 no desktop. */
.rodape { background: var(--fundo-escuro); color: #C9C7F2; padding-top: 40px; padding-bottom: 20px; /* laterais vêm da regra comum de .secao/.rodape */ line-height: 1.5; font-size: var(--t-sm); }
.rodape a { color: #fff; text-decoration: none; }
.rodape a:hover { color: var(--cor-acento); text-decoration: underline; }
.rodape__grade { display: grid; gap: 0; grid-template-columns: 1fr; }
.rodape__grupo { border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.rodape__grupo summary { min-height: 44px; }
.rodape__grupo .rodape__titulo { margin: 0; }
.rodape .rodape__grupo ul { padding: 2px 0 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
.rodape__marca { padding-bottom: 14px; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.rodape__marca { grid-column: 1 / -1; display: grid; gap: 8px 40px; align-items: start; }
.rodape__marca p { font-size: 0.8125rem; }
.rodape__marca img { height: 28px; width: auto; margin-bottom: 0; }
.rodape__marca p { max-width: 52ch; margin: 0; }
.rodape h3, .rodape__titulo { margin: 0 0 10px; color: #fff; font-size: var(--t-xs); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }
.rodape ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 5px; font-size: 0.8125rem; line-height: 1.35; }
/* Grupos de links: dropdown no celular (<details>), colunas fixas a partir de 720 px (navegacao.js mantém aberto). */
.rodape__grupo summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; }
.rodape__grupo summary::-webkit-details-marker { display: none; }
.rodape__grupo summary .icone { color: var(--cor-acento); transition: transform var(--transicao); }
.rodape__grupo[open] summary .icone { transform: rotate(180deg); }
.rodape__grupo summary:focus-visible { outline: 2px solid var(--cor-acento); outline-offset: 2px; }
.rodape__legal { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, 0.14); font-size: 0.6875rem; line-height: 1.5; display: grid; gap: 6px; }
.rodape__legal p { margin: 0; max-width: none; }
.rodape__legal p a { text-decoration: underline; text-underline-offset: 2px; }
.rodape__contato { display: flex; flex-wrap: wrap; gap: 6px 20px; font-size: 0.8125rem; }
.rodape__contato a, .rodape__contato span { display: inline-flex; align-items: center; gap: 6px; }
@media (min-width: 720px) {
  .rodape__grade { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 20px; }
  .rodape__marca { padding-bottom: 0; border-bottom: 0; }
  .rodape__marca img { height: 32px; }
  .rodape__grupo { border-bottom: 0; }
  .rodape__grupo summary { min-height: 0; cursor: default; pointer-events: none; }
  .rodape__grupo summary .icone { display: none; }
  /* Os 10 px entre título e lista ficam no padding da lista: como margem do título, entram na caixa do <summary> e o encostam
     no primeiro link (alvo de toque pequeno colado em outro, reprovado em "target-size" do PageSpeed). */
  .rodape__grupo .rodape__titulo { margin: 0; }
  .rodape .rodape__grupo ul { padding: 10px 0 0; grid-template-columns: 1fr; gap: 5px; }
  .rodape__marca { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "logo contato" "texto contato"; align-items: center; }
  .rodape__marca img { grid-area: logo; }
  .rodape__marca p { grid-area: texto; }
  .rodape__contato { grid-area: contato; display: grid; gap: 6px; }
}
@media (min-width: 1100px) { .rodape__grade { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

/* CTA fixa no celular: um único chamado que leva à cotação online. */
.cta-whatsapp-fixa { display: none; }
@media (max-width: 719px) {
  .rodape { padding-bottom: calc(20px + 76px + env(safe-area-inset-bottom)); }
  .cta-whatsapp-fixa { position: fixed; right: 0; bottom: 0; left: 0; z-index: 60; display: block; padding: 8px 16px calc(8px + env(safe-area-inset-bottom)); background: var(--cor-profunda); box-shadow: 0 -12px 28px -20px rgba(30, 28, 79, 0.75); }
  .cta-whatsapp-fixa a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; color: #fff; text-decoration: none; transition: transform var(--transicao); }
  .cta-whatsapp-fixa a:active { transform: translateY(1px); }
  .cta-whatsapp-fixa a:focus-visible { outline: 3px solid #fff; outline-offset: 3px; border-radius: var(--raio); }
  .cta-whatsapp-fixa__texto { display: grid; gap: 3px; min-width: 0; }
  .cta-whatsapp-fixa__texto strong { font-family: var(--fonte-titulo); font-size: 1rem; font-weight: 700; line-height: 1.2; }
  .cta-whatsapp-fixa__texto small { font-size: 0.75rem; line-height: 1.3; color: rgba(255, 255, 255, 0.78); }
  .cta-whatsapp-fixa__botao { flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--acao-primaria); color: var(--acao-primaria-texto); font-family: var(--fonte-titulo); font-size: 0.875rem; font-weight: 700; line-height: 1; white-space: nowrap; box-shadow: 0 6px 14px -6px rgba(0, 0, 0, 0.5); transition: background var(--transicao); }
  .cta-whatsapp-fixa a:hover .cta-whatsapp-fixa__botao { background: var(--cor-acento-hover); }
  .cta-whatsapp-fixa__botao .icone { width: 16px; height: 16px; }
}

/* Grades e cartões utilitários */
.grade { display: grid; gap: 20px; }
.grade--2 { grid-template-columns: minmax(0, 1fr); }
.grade--3 { grid-template-columns: 1fr; }
.grade--4 { grid-template-columns: 1fr 1fr; }
@media (min-width: 720px) { .grade--2 { grid-template-columns: 1fr 1fr; } .grade--3 { grid-template-columns: repeat(3, 1fr); } .grade--4 { grid-template-columns: repeat(4, 1fr); } }
.cartao { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); padding: 24px; }
.cartao--suave { background: var(--cor-suave); border-color: transparent; }
.cartao__link { color: var(--cor-principal); font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; font-family: var(--fonte-titulo); font-size: var(--t-sm); }
.cartao__link:hover { gap: 10px; }
.secao--suave .cartao__link, .cartao--suave .cartao__link { color: var(--cor-principal-hover); } /* 4,5:1 sobre a suave */
.foto { border-radius: var(--raio-lg); object-fit: cover; width: 100%; height: 100%; }
.credito-foto { font-size: 11px; color: var(--texto-secundario); }
.hero__palco .credito-foto { margin: 10px 4px 0; line-height: 1.4; }
.credito-foto a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* Blog e leitura */
/* .artigo limita a medida dos filhos, não a largura do bloco: combinado com .container--estreito continua alinhado à esquerda */
.artigo:not(.container):not(.container--estreito) { max-width: var(--medida-texto); }
:is(.container, .container--estreito).artigo > :not(.tabela-rolagem):not(.carencias) { max-width: var(--medida-texto); }
.numerais + * { margin-top: 32px; }
.artigo h2 { margin-top: 1.6em; }
.artigo h3 { margin-top: 1.3em; }
.artigo blockquote { margin: 1.5em 0; padding: 18px 24px; background: var(--cor-suave); border-radius: var(--raio); font-size: var(--t-lg); color: var(--cor-profunda); }
.artigo figure { margin: 2em 0; }
.artigo figcaption { font-size: var(--t-sm); color: var(--texto-secundario); margin-top: 8px; }
.meta-post { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: var(--t-sm); color: var(--texto-secundario); align-items: center; }
.meta-post .autor { display: inline-flex; align-items: center; gap: 8px; }
.meta-post__item { display: inline-flex; align-items: center; gap: 6px; }
.meta-post__item .icone { width: 15px; height: 15px; opacity: 0.8; }
.post-card .meta-post { gap: 6px 14px; font-size: var(--t-xs); }
.avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--cor-principal); color: #fff; display: inline-grid; place-items: center; font-family: var(--fonte-titulo); font-weight: 600; font-size: 13px; }
.tag { display: inline-block; padding: 4px 10px; border-radius: 999px; background: var(--cor-suave); color: var(--cor-profunda); font-size: var(--t-xs); font-weight: 500; text-decoration: none; }
.tag:hover { background: var(--principal-100); }

/* Reduzir movimento */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; } /* !important: respeita preferência do sistema */
  html { scroll-behavior: auto; }
}

/* ================= Utilitários ================= */
.centro { text-align: center; }
.acoes--centro { justify-content: center; }
.prova--centro { justify-content: center; }
.texto-grande { font-size: var(--t-lg); }
.t-xl { font-size: var(--t-xl); margin-top: 32px; }
.secao--curta { padding-top: 40px; padding-bottom: 40px; }
@media (min-width: 900px) { .secao--curta { padding-top: 56px; padding-bottom: 56px; } }

/* Chips */
.chips { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 0; }
.chips--centro { justify-content: center; }
.chips--tags { margin-top: 8px; }
.chip { display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border-radius: 999px; background: #fff; border: 1px solid var(--cor-borda); color: var(--cor-profunda); font-weight: 500; font-size: var(--t-sm); text-decoration: none; transition: border-color var(--transicao), background var(--transicao); }
.chip:hover { border-color: var(--cor-principal); background: var(--cor-suave); color: var(--cor-profunda); }
.chip--mais { background: var(--cor-suave); border-color: transparent; }
.aviso { display: flex; gap: 10px; align-items: flex-start; max-width: 70ch; margin: 24px 0 0; padding: 14px 18px; border-radius: var(--raio); background: var(--cor-suave); color: var(--cor-profunda); font-size: var(--t-sm); }
.aviso.centro { margin-inline: auto; }
.aviso + * { margin-top: 20px; }
.aviso .icone { color: var(--cor-principal); margin-top: 2px; }

/* ================= Blocos de seção ================= */
/* Hero da home (V8): texto à esquerda, mosaico 2 × 2 à direita */
.hero-mosaico { padding: clamp(32px, 5vw, 72px) 16px clamp(40px, 6vw, 80px); }
@media (min-width: 720px) { .hero-mosaico { padding-left: 40px; padding-right: 40px; } }
.hero-mosaico__grade { display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 1024px) { .hero-mosaico__grade { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: 64px; } }
.hero-mosaico h1 { font-size: clamp(2.75rem, 2rem + 3.2vw, 4.75rem); letter-spacing: -0.03em; margin-bottom: 18px; }
.hero-mosaico--compacto h1 { font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.5rem); }
.hero-mosaico .hero__texto { margin-bottom: 28px; }
.hero-mosaico__duvidas-titulo { margin: 32px 0 10px; font-size: var(--t-sm); color: var(--texto-secundario); font-weight: 500; }
.duvidas { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.duvidas a { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border-radius: 999px; background: var(--cor-suave); color: var(--cor-profunda); font-size: var(--t-sm); font-weight: 500; text-decoration: none; transition: background var(--transicao), color var(--transicao); }
.duvidas a:hover { background: var(--cor-profunda); color: #fff; }
.duvidas .icone { width: 16px; height: 16px; color: var(--cor-principal-hover); }
.duvidas a:hover .icone { color: var(--cor-acento); }
.hero-mosaico__texto .duvidas { margin-top: 20px; }
.hero-mosaico__foto { margin: 0; position: relative; aspect-ratio: 5 / 4; }
.hero-mosaico__foto .foto { border-radius: var(--raio-xl); }
.hero-mosaico__logo { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 22px; }

/* Mosaico 2 × 2 de modalidades com foto */
.mosaico { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(180px, 22vw); gap: 14px; }
@media (min-width: 1024px) { .mosaico { grid-auto-rows: 250px; } }
.mosaico__cel { position: relative; display: block; border-radius: var(--raio-lg); overflow: hidden; background: var(--cor-profunda); text-decoration: none; transition: transform var(--transicao), box-shadow var(--transicao); }
.mosaico__cel:hover { translate: 0 -3px; box-shadow: var(--sombra-lg); }
.mosaico__cel .foto { position: absolute; inset: 0; border-radius: 0; }
.mosaico__cel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(43, 42, 107, 0) 40%, rgba(43, 42, 107, 0.82) 100%); }
.mosaico__rotulo { position: absolute; left: 18px; bottom: 16px; z-index: 1; display: inline-flex; align-items: center; gap: 8px; color: #fff; font-family: var(--fonte-titulo); font-weight: 600; font-size: var(--t-lg); }
.mosaico__rotulo .icone { color: var(--cor-acento); width: 22px; height: 22px; }
.mosaico__seta { position: absolute; right: 14px; top: 14px; z-index: 1; width: 36px; height: 36px; border-radius: 50%; background: #fff; color: var(--cor-profunda); display: grid; place-items: center; }

/* Mosaico: cada célula entra em escala pela coreografia do hero (data-passo) */
.mosaico__cel { isolation: isolate; }
.mosaico__cel .foto { transition: transform 900ms var(--saida), translate 900ms var(--saida), scale 900ms var(--saida); }
.mosaico__cel:hover .foto { transform: scale(1.05); }
.mosaico__seta { transition: transform 300ms var(--saida), translate 300ms var(--saida), scale 300ms var(--saida), background 300ms var(--saida), color 300ms var(--saida); }
.mosaico__cel:hover .mosaico__seta { translate: 2px -2px; background: var(--cor-acento); color: var(--cor-texto); }

/* Tiles sobre foto com paralaxe */
.tiles-foto { overflow: hidden; }
.tiles-foto > .foto { inset: -8% 0; height: 116%; }

/* Tiles sobre foto */
.tiles-foto { position: relative; min-height: 280px; display: flex; align-items: center; padding: 48px 16px; overflow: hidden; background: var(--cor-profunda); }
@media (min-width: 720px) { .tiles-foto { padding-left: 40px; padding-right: 40px; } }
.tiles-foto > .foto { position: absolute; inset: 0; border-radius: 0; opacity: 0.55; }
.tiles-foto::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(43, 42, 107, 0.92), rgba(43, 42, 107, 0.55)); }
.tiles { position: relative; z-index: 1; display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tile { background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.22); border-radius: var(--raio-lg); padding: 22px 24px; color: #fff; display: grid; gap: 6px; }
.tile strong { font-size: clamp(2rem, 1.5rem + 2vw, 3rem); line-height: 1; color: #fff; }
.tile strong::after { content: ""; display: block; width: 28px; height: 4px; border-radius: 2px; background: var(--cor-acento); margin-top: 10px; }
.tile span { font-size: var(--t-sm); color: #DCDBF5; }
.tiles--coluna { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) and (max-width: 1023px) { .tiles--coluna { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tile--claro { background: var(--cor-suave); border-color: transparent; color: var(--cor-profunda); }
.tile--claro strong { color: var(--cor-profunda); }
.tile--claro span { color: var(--texto-secundario); }
.tiles--coluna .texto-pequeno { grid-column: 1 / -1; margin: 0; }

/* Formulário ao lado de foto */
.form-foto { display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
@media (min-width: 1024px) { .form-foto { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 40px; } }
.form-foto__foto { margin: 0; position: relative; min-height: 320px; border-radius: var(--raio-xl); overflow: hidden; background: var(--cor-profunda); }
.form-foto__foto .foto { position: absolute; inset: 0; border-radius: 0; }
.form-foto__foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(43, 42, 107, 0) 35%, rgba(43, 42, 107, 0.9) 100%); }
.form-foto__foto figcaption { position: absolute; left: 24px; right: 24px; bottom: 22px; z-index: 1; display: grid; gap: 12px; justify-items: start; }
.form-foto__frase { margin: 0; color: #fff; font-family: var(--fonte-titulo); font-weight: 600; font-size: var(--t-xl); line-height: 1.3; max-width: 28ch; }

/* Muro de operadoras */
.muro { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 540px) { .muro { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .muro { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.muro__cel { display: grid; gap: 8px; align-content: center; justify-items: center; padding: 20px; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); background: #fff; text-align: center; text-decoration: none; color: var(--texto-padrao); transition: border-color var(--transicao), box-shadow var(--transicao); }
.muro__cel:hover { border-color: var(--cor-principal); box-shadow: var(--sombra); color: var(--texto-padrao); }
.muro__cel .operadora { justify-self: center; white-space: normal; text-align: center; }
.muro__marca { display: grid; min-height: 56px; place-items: center; }
.muro__titulo { font-family: var(--fonte-titulo); font-size: var(--t-base); line-height: 1.2; color: var(--cor-profunda); }
.muro__cel small { color: var(--texto-secundario); font-size: var(--t-xs); }
.muro__cel p { margin: 0; font-size: var(--t-sm); color: var(--texto-secundario); }
/* Muro seguido de texto na mesma seção (ex.: /plano-odontologico/): respiro antes do conteúdo seguinte. */
.muro--seguido { margin-bottom: 40px; }

/* Hospitais em duas colunas, chips grandes */
.hospitais-2col { display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 900px) { .hospitais-2col { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 64px; } }
.chips--grandes .chip { min-height: 52px; padding: 0 22px; font-size: var(--t-base); border-radius: 14px; }

/* Passos sobre índigo */
.passos-escuro { display: grid; gap: 40px; align-items: center; grid-template-columns: 1fr; }
@media (min-width: 900px) { .passos-escuro { grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: 64px; } }
.passos--claro li::before { background: var(--cor-acento); color: var(--cor-texto); }
.passos--claro strong { color: #fff; }
.passos--claro li { color: #C9C7F2; }
.acoes--escuro { margin-top: 32px; }
.acoes--escuro .botao--contorno { border-color: rgba(255, 255, 255, 0.35); color: #fff; }
.acoes--escuro .botao--contorno:hover { background: rgba(255, 255, 255, 0.08); border-color: #fff; color: #fff; }
.acoes--escuro .botao--contorno .ic-whatsapp { color: var(--cor-acento); }
.passos-escuro__foto { margin: 0; position: relative; aspect-ratio: 4 / 5; max-height: 520px; }

/* Duas colunas, fatores, região */
.duas-colunas { display: grid; gap: 48px; grid-template-columns: 1fr; }
@media (min-width: 900px) { .duas-colunas { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; } }
.fatores { list-style: none; padding: 0; margin: 0 0 24px; counter-reset: fator; display: grid; gap: 12px; }
.fatores li { position: relative; padding: 14px 16px 14px 48px; background: var(--cor-suave); border-radius: var(--raio); }
.fatores li::before { counter-increment: fator; content: counter(fator); position: absolute; left: 16px; top: 15px; font-family: var(--fonte-titulo); font-weight: 700; color: var(--cor-principal-hover); }
.fatores h3 { font-size: var(--t-base); margin: 0 0 2px; }
.fatores p { margin: 0; font-size: var(--t-sm); color: var(--texto-secundario); }
.regiao { display: grid; gap: 32px; grid-template-columns: 1fr; align-items: center; }
@media (min-width: 900px) { .regiao { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; } }
.regiao__foto { margin: 0; position: relative; aspect-ratio: 16 / 10; }
.regiao .chips { margin-top: 18px; }

/* Fatores, melhor, região */
.fatores-lista { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 10px; }
.fatores-lista li { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--cor-borda); font-size: var(--t-sm); }
.fatores-lista strong { font-family: var(--fonte-titulo); color: var(--cor-profunda); }
.fatores-lista span { color: var(--texto-secundario); }
.melhor { display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 900px) { .melhor { grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: 64px; } }
.melhor__ordem { display: grid; gap: 10px; }
.melhor__ordem span { display: flex; align-items: center; gap: 14px; background: #fff; border-radius: 14px; padding: 14px 18px; font-family: var(--fonte-titulo); font-weight: 600; color: var(--cor-profunda); }
.melhor__ordem b { width: 30px; height: 30px; border-radius: 50%; background: var(--cor-profunda); color: #fff; display: grid; place-items: center; font-size: var(--t-sm); }
.regiao { display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 900px) { .regiao { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; } }
.regiao .chips { margin-top: 18px; }
.regiao__foto { margin: 0; position: relative; aspect-ratio: 4 / 3; }

/* Carências e tabelas */
.carencias { display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); margin: 20px 0 28px; }
@media (min-width: 720px) { .carencias { grid-template-columns: repeat(4, 1fr); } }
.carencias div { background: var(--cor-suave); border-radius: var(--raio); padding: 18px; display: grid; gap: 4px; }
.carencias strong { font-size: var(--t-2xl); color: var(--cor-principal-hover); }
.carencias span { font-size: var(--t-sm); color: var(--texto-secundario); }
.tabela-rolagem { overflow-x: auto; border: 1px solid var(--cor-borda); border-radius: var(--raio); margin: 16px 0; padding: 4px 8px; }
/* Só tabelas com 4+ colunas forçam largura e rolam no celular; as de 2 ou 3 colunas quebram linha */
.tabela-rolagem table:has(tr > :nth-child(4)) { min-width: 560px; }
/* A 1ª coluna (nomes: hospital, linha, operadora) nunca parte palavra; as demais podem, para a tabela caber sem rolar */
.tabela-rolagem td, .tabela-rolagem th { overflow-wrap: anywhere; }
.tabela-rolagem :is(td, th):first-child { overflow-wrap: break-word; }
.tabela-rolagem tbody tr:last-child td { border-bottom: 0; }
.tabela-rolagem td small { display: block; color: var(--texto-secundario); font-size: var(--t-sm); }
.cartao--modalidade { display: block; text-decoration: none; color: var(--texto-padrao); }
.cartao--modalidade h3 { font-size: var(--t-xl); }
.cartao--modalidade p { color: var(--texto-secundario); font-size: var(--t-sm); }
.cartao--modalidade:hover { color: var(--texto-padrao); box-shadow: var(--sombra); }
.cartao--suave .cartao__link, .vitrine__card--destaque .cartao__link, .bento__item--individual .cartao__link, .bento__item--adesao .cartao__link, .aviso .icone { color: var(--cor-principal-hover); }

/* Marquee de operadoras (pausa no hover) */
.marquee { overflow: hidden; -webkit-mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee__faixa { display: flex; gap: 12px; list-style: none; padding: 4px 0; margin: 0; width: max-content; animation: marquee 60s linear infinite; }
.marquee:hover .marquee__faixa { animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee__faixa { animation: none; flex-wrap: wrap; justify-content: center; width: auto; } }

/* Zigue-zague de modalidades */
.zigs { display: grid; gap: clamp(32px, 5vw, 64px); }
.zig { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 800px) { .zig { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 56px; } .zig--inv .zig__foto { order: 2; } }
.zig__foto { display: block; aspect-ratio: 4 / 3; border-radius: var(--raio-xl); }
.zig__foto .foto { border-radius: var(--raio-xl); }
.zig__texto h3 { font-size: var(--t-3xl); margin-bottom: 10px; }
.zig__texto h3 a { color: inherit; text-decoration: none; }
.zig__texto h3 a:hover { color: var(--cor-principal-hover); }
.zig__texto p { color: var(--texto-secundario); font-size: var(--t-lg); }
/* Mapa do site (gerado pelo montador): grupos separados, lista colada ao título */
.mapa-site { display: grid; gap: clamp(40px, 5vw, 56px); }
.mapa-site h2 { margin: 0; font-size: var(--t-2xl); }
.mapa-site .lista-links { margin-top: 16px; }
.lista-links { list-style: none; padding: 0; margin: clamp(32px, 5vw, 56px) 0 0; display: grid; gap: 10px; }
@media (min-width: 800px) { .lista-links { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.lista-links a { display: grid; grid-template-columns: minmax(0, 1fr) 20px; gap: 4px 12px; padding: 20px 22px; background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); text-decoration: none; color: var(--texto-padrao); transition: border-color var(--transicao), transform 300ms var(--saida), translate 300ms var(--saida), scale 300ms var(--saida); }
.lista-links a:hover { border-color: var(--cor-principal); translate: 0 -2px; color: var(--texto-padrao); }
.lista-links strong { font-family: var(--fonte-titulo); color: var(--cor-profunda); font-size: var(--t-xl); }
.lista-links span { grid-column: 1; font-size: var(--t-sm); color: var(--texto-secundario); }
.lista-links .icone { grid-column: 2; grid-row: 1; color: var(--cor-principal-hover); }

/* O que comparar em numerais grandes */
.numerais { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; border-top: 1px solid var(--cor-borda); }
.numerais li { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 16px; align-items: start; padding: 22px 0; border-bottom: 1px solid var(--cor-borda); }
@media (min-width: 720px) { .numerais li { grid-template-columns: 120px minmax(0, 1fr); padding: 28px 0; } }
.numerais__n { font-family: var(--fonte-titulo); font-weight: 700; font-size: clamp(2.5rem, 2rem + 2vw, 4rem); line-height: 1; color: var(--cor-principal-hover); letter-spacing: -0.04em; }
.numerais h3 { font-size: var(--t-2xl); margin-bottom: 4px; }
.numerais p { margin: 0; color: var(--texto-secundario); max-width: 52ch; }

/* Hospitais em duas colunas, passos com foto, duas colunas */
.hospitais-2col { display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 900px) { .hospitais-2col { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 64px; } }
.passos-foto { display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 900px) { .passos-foto { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 64px; } }
.passos-foto__foto { margin: 0; aspect-ratio: 4 / 5; max-height: 560px; border-radius: var(--raio-xl); }
.passos-foto__foto .foto { border-radius: var(--raio-xl); }
.passos-foto .acoes { margin-top: 28px; }
.melhor-2col { display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 900px) { .melhor-2col { grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: 64px; } }
.ordem { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.ordem li { display: flex; align-items: center; gap: 14px; background: #fff; border-radius: 14px; padding: 14px 18px; font-family: var(--fonte-titulo); font-weight: 600; color: var(--cor-profunda); }
.ordem b { width: 30px; height: 30px; border-radius: 50%; background: var(--cor-profunda); color: #fff; display: grid; place-items: center; font-size: var(--t-sm); }

/* Afirmações (por que a Planos BH), sem cartões */
.afirmacoes { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; border-top: 1px solid var(--cor-borda); }
@media (min-width: 720px) { .afirmacoes { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 64px; } }
.afirmacoes li { padding: 24px 0; border-bottom: 1px solid var(--cor-borda); }
.afirmacoes h3 { font-size: var(--t-xl); margin-bottom: 6px; }
.afirmacoes p { margin: 0; color: var(--texto-secundario); }

/* Faixa de foto (herdada da v4 com paralaxe) */
.banda { position: relative; isolation: isolate; color: #fff; padding: 72px 16px; background: var(--cor-profunda); overflow: hidden; }
@media (min-width: 720px) { .banda { padding: 104px 40px; } }
.banda__foto { position: absolute; inset: -8% 0; width: 100%; height: 116%; object-fit: cover; z-index: -2; opacity: 0.5; }
.banda::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(43, 42, 107, 0.94) 0%, rgba(43, 42, 107, 0.7) 60%, rgba(43, 42, 107, 0.45) 100%); }
.banda--regiao::before { background: linear-gradient(270deg, rgba(43, 42, 107, 0.95) 0%, rgba(43, 42, 107, 0.7) 60%, rgba(43, 42, 107, 0.35) 100%); }
.banda h2 { color: #fff; }
.banda p { color: #DCDBF5; }
.banda__metade { max-width: 60ch; }
.banda--regiao .banda__metade { margin-left: auto; }
.banda .chips { margin-top: 18px; }
.chip--claro { background: rgba(255, 255, 255, 0.12); border-color: rgba(255, 255, 255, 0.3); color: #fff; }
.chip--claro:hover { background: #fff; color: var(--cor-profunda); border-color: #fff; }

/* Hero (V5): texto à esquerda, foto em moldura à direita */
.hero { padding: clamp(24px, 4vw, 56px) 16px clamp(40px, 6vw, 80px); }
@media (min-width: 720px) { .hero { padding-left: 40px; padding-right: 40px; } }
.hero__grade { display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 1024px) { .hero__grade { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: 72px; } }
.hero h1 { font-size: clamp(2.75rem, 2rem + 3.2vw, 4.75rem); letter-spacing: -0.03em; margin-bottom: 18px; }
.hero--compacto h1 { font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.5rem); }
.hero .hero__texto { margin-bottom: 28px; }
.hero .duvidas { margin-top: 24px; }
.hero .operadora--grande { margin-bottom: 20px; box-shadow: var(--sombra-sm); }
.hero__palco { position: relative; }
.hero__moldura { position: relative; aspect-ratio: 4 / 5; max-height: 640px; border-radius: var(--raio-xl); overflow: hidden; background: var(--cor-suave); }
.hero__moldura .foto { position: absolute; inset: 0; border-radius: 0; }
.hero--foto-larga .hero__moldura { aspect-ratio: 5 / 4; }

/* Cartões flutuantes de prova */
.flutua { position: absolute; z-index: 1; display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; align-items: center; padding: 14px 18px; background: #fff; border-radius: 16px; box-shadow: var(--sombra-lg); min-width: 180px; }
.flutua .icone { grid-row: span 2; width: 28px; height: 28px; color: var(--cor-principal-hover); }
.flutua strong { font-family: var(--fonte-titulo); font-size: var(--t-xl); color: var(--cor-profunda); line-height: 1.1; }
.flutua span { font-size: var(--t-xs); color: var(--texto-secundario); }
.flutua--1 { left: -12px; top: 12%; animation: flutua 7s ease-in-out infinite; }
.flutua--2 { right: -12px; top: 44%; animation: flutua 8s ease-in-out 1s infinite; }
.flutua--3 { left: 8%; bottom: 8%; animation: flutua 9s ease-in-out 2s infinite; }
@media (min-width: 1024px) { .flutua--1 { left: -40px; } .flutua--2 { right: -40px; } }
@keyframes flutua { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
@media (prefers-reduced-motion: reduce) { .flutua { animation: none; } }
@media (max-width: 480px) { .flutua { min-width: 0; padding: 10px 12px; } .flutua strong { font-size: var(--t-base); } }

/* Ficha ao lado (operadora) */
.ficha { display: grid; gap: 12px; margin: 0; }
.ficha div { padding: 20px 24px; background: var(--cor-suave); border-radius: var(--raio-lg); display: grid; gap: 4px; }
.ficha dt { font-size: var(--t-xs); text-transform: uppercase; letter-spacing: 0.05em; color: var(--texto-secundario); font-family: var(--fonte-titulo); font-weight: 600; }
.ficha dd { margin: 0; color: var(--cor-profunda); font-weight: 500; }

/* Faixa do formulário */
.faixa-form { background: var(--cor-suave); padding: 64px 16px; overflow: hidden; }
@media (min-width: 720px) { .faixa-form { padding: 96px 40px; } }
.faixa-form__grade { display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 1024px) { .faixa-form__grade { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 64px; align-items: start; } .faixa-form__lado { position: sticky; top: 112px; } }
.faixa-form__lado h2 { font-size: var(--t-3xl); }
.faixa-form__lado p { color: var(--texto-secundario); font-size: var(--t-lg); margin-bottom: 28px; }
.faixa-form .marquee { margin-inline: calc(-1 * 16px); }
.faixa-form .operadora { white-space: nowrap; }

/* Página de cotação */
.pagina-cotacao { display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr); padding: clamp(24px, 4vw, 48px) 16px 64px; align-items: start; }
@media (min-width: 720px) { .pagina-cotacao { padding-left: 40px; padding-right: 40px; } }
@media (min-width: 1024px) { .pagina-cotacao { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 72px; } }
.pagina-cotacao__lado h1 { font-size: clamp(2.25rem, 1.6rem + 2.6vw, 3.5rem); }
.pagina-cotacao__lado .t-xl { margin-top: 32px; }
.pagina-cotacao__lado .lista-check--garantias { margin-top: 28px; }
.pagina-cotacao__form { position: sticky; top: 96px; }

/* ================= Blog e post ================= */
/* Blog */
.post-card { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); overflow: hidden; text-decoration: none; color: var(--texto-padrao);
  transition: translate 320ms var(--saida, ease-out), box-shadow 320ms var(--saida, ease-out), border-color 320ms var(--saida, ease-out); }
.post-card__capa { display: block; overflow: hidden; aspect-ratio: 1200 / 630; background: var(--cor-suave); }
.post-card .foto { display: block; height: 100%; border-radius: 0; transition: scale 700ms var(--saida, ease-out); }
.post-card__texto { flex: 1; padding: 22px; display: flex; flex-direction: column; gap: 10px; }
.post-card h3, .post-card h2 { margin: 0; font-size: var(--t-xl); transition: color 320ms var(--saida, ease-out); }
.post-card__resumo { display: block; margin: 0; color: var(--texto-secundario); font-size: var(--t-sm); }
.post-card .tag { align-self: flex-start; }
.post-card__rodape { margin-top: auto; padding-top: 6px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.post-card__ler { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-sm); font-weight: 600; color: var(--cor-principal); }
.post-card__ler .icone { width: 16px; height: 16px; transition: translate 320ms var(--saida, ease-out); }
.post-card:hover, .post-card:focus-visible { translate: 0 -6px; box-shadow: var(--sombra-lg); border-color: color-mix(in oklch, var(--cor-principal) 35%, white); color: var(--texto-padrao); }
.post-card:hover .foto, .post-card:focus-visible .foto { scale: 1.06; }
.post-card:hover :is(h2, h3), .post-card:focus-visible :is(h2, h3) { color: var(--cor-principal); }
.post-card:hover .post-card__ler .icone, .post-card:focus-visible .post-card__ler .icone { translate: 4px 0; }
@media (prefers-reduced-motion: reduce) { .post-card, .post-card .foto, .post-card__ler .icone { transition: color 1ms, border-color 1ms; } .post-card:hover, .post-card:focus-visible { translate: none; } .post-card:hover .foto { scale: 1; } }
.post-card--grande { grid-template-columns: 1fr; }
@media (min-width: 900px) { .post-card--grande { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); } .post-card--grande .post-card__capa { aspect-ratio: auto; height: 100%; } }
.post-card--grande .post-card__texto { padding: clamp(24px, 4vw, 48px); align-content: center; }
.post-card--grande h2 { font-size: var(--t-3xl); }
.post-card--grande p { font-size: var(--t-base); }
.posts-grid { display: grid; gap: 20px; grid-template-columns: 1fr; margin-bottom: 20px; }
@media (min-width: 720px) { .posts-grid { grid-template-columns: repeat(3, 1fr); } }
.chamada-cotacao { display: grid; gap: 24px; align-items: center; grid-template-columns: minmax(0, 1fr); background: var(--cor-suave); border-radius: var(--raio-xl); padding: 28px; }
@media (min-width: 720px) { .chamada-cotacao { padding: 56px; } }
@media (min-width: 900px) { .chamada-cotacao { grid-template-columns: 1fr auto; } }
.chamada-cotacao p { margin: 0; }

/* Blog: destaque no hero */
.destaque { position: relative; display: block; min-height: 380px; border-radius: var(--raio-xl); overflow: hidden; background: var(--cor-profunda); text-decoration: none; }
.destaque .foto { position: absolute; inset: 0; border-radius: 0; }
.destaque::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(43, 42, 107, 0.05) 20%, rgba(43, 42, 107, 0.92) 100%); }
.destaque__texto { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 28px; display: grid; gap: 8px; justify-items: start; }
.destaque__texto h2 { color: #fff; font-size: var(--t-2xl); margin: 0; }
.destaque__texto p { margin: 0; color: #DCDBF5; font-size: var(--t-sm); }
.destaque__texto .meta-post { color: #C9C7F2; }

/* Post */
.post { padding-inline: var(--margem); }
.post__cabeca { padding: clamp(24px, 4vw, 48px) 0 24px; }
.post__cabeca h1 { font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem); margin-top: 14px; }
.post__capa { margin: 0 auto; aspect-ratio: 21 / 9; position: relative; }
.post__corpo { display: grid; gap: 40px; grid-template-columns: 1fr; padding: clamp(32px, 5vw, 64px) 0 0; }
@media (min-width: 1024px) { .post__corpo { grid-template-columns: 240px minmax(0, 1fr); gap: 72px; } }
.post__sumario { position: sticky; top: 96px; align-self: start; }
/* No celular o sumário de 10+ itens empurra o "Em resumo" para baixo da dobra: some abaixo de 1024 px (o resumo é a resposta direta). */
@media (max-width: 1023px) { .post__sumario { display: none; } }
.post__sumario ol { padding-left: 1.2em; margin: 0; font-size: var(--t-sm); display: grid; gap: 8px; }
.post__sumario a { color: var(--texto-secundario); text-decoration: none; }
.post__sumario a:hover { color: var(--cor-principal); text-decoration: underline; }
.post__autor { display: flex; gap: 14px; align-items: flex-start; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--cor-borda); }
.post__autor .avatar { width: 48px; height: 48px; font-size: var(--t-base); flex: none; }
.post__autor p { margin: 4px 0 0; }


/* ===== Diagramas e variações de seção (ui-kit.md, seção "Diagramas"). Toda página de conteúdo usa pelo menos 2. ===== */

/* Paletas de seção além de branco, suave e escura */
.secao--menta { background: color-mix(in oklch, var(--cor-acento) 20%, white); }
.secao--gradiente { background: linear-gradient(165deg, var(--cor-suave) 0%, var(--cor-fundo) 55%, color-mix(in oklch, var(--cor-acento) 16%, white) 100%); }
.secao--menta a:not(.botao):not(.chip):not(.cartao__link), .secao--gradiente a:not(.botao):not(.chip):not(.cartao__link) { color: var(--cor-principal-hover); }

/* Fluxo: etapas ligadas por uma linha que se desenha ao rolar. Uso: ol.fluxo[data-entra-filhos][style="--passos:5"] > li > .fluxo__marca + div > h3 + p */
.fluxo { --passos: 4; position: relative; display: grid; gap: 22px; list-style: none; margin: 0; padding: 0; counter-reset: fluxo; }
.fluxo > li { position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; align-items: start; margin: 0; counter-increment: fluxo; }
.fluxo::before { content: ""; position: absolute; left: 27px; top: 28px; bottom: 28px; width: 2px; background: linear-gradient(var(--cor-principal), var(--cor-acento)); transform-origin: top; transition: transform 1200ms var(--saida, ease-out), translate 1200ms var(--saida, ease-out), scale 1200ms var(--saida, ease-out); }
.fluxo__marca { position: relative; z-index: 1; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 18px; background: #fff; border: 1px solid var(--cor-borda); color: var(--cor-principal); box-shadow: var(--sombra-sm); transition: transform 260ms var(--saida, ease-out), translate 260ms var(--saida, ease-out), scale 260ms var(--saida, ease-out), background 260ms var(--saida, ease-out), color 260ms var(--saida, ease-out); }
.fluxo__marca .icone { width: 26px; height: 26px; }
.fluxo__marca::after { content: counter(fluxo); position: absolute; top: -7px; right: -7px; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--cor-acento); color: var(--cor-texto); font-size: 12px; font-weight: 700; }
/* Etiqueta de prazo com 96 px: cabe "300 dias" na fonte de título sem vazar da caixa */
.fluxo--prazos > li { grid-template-columns: 96px minmax(0, 1fr); }
.fluxo--prazos .fluxo__marca { width: 96px; font-family: var(--fonte-titulo); font-weight: 700; font-size: 16px; color: var(--cor-profunda); white-space: nowrap; }
.fluxo--prazos::before { left: 47px; }
.fluxo--prazos .fluxo__marca::after { content: none; }
.fluxo > li:hover .fluxo__marca { translate: 0 -3px; background: var(--cor-principal); color: #fff; }
.fluxo--prazos > li:hover .fluxo__marca { background: var(--cor-acento); color: var(--cor-texto); }
.fluxo h3 { margin: 4px 0 4px; font-size: var(--t-lg); }
.fluxo p { margin: 0; font-size: var(--t-sm); color: var(--texto-secundario); }
@media (min-width: 900px) {
  .fluxo { grid-template-columns: repeat(var(--passos), minmax(0, 1fr)); gap: 24px; }
  .fluxo > li, .fluxo--prazos > li { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .fluxo::before { top: 27px; bottom: auto; left: 28px; right: calc((100% - (var(--passos) - 1) * 24px) / var(--passos) - 28px); width: auto; height: 2px; background: linear-gradient(90deg, var(--cor-principal), var(--cor-acento)); transform-origin: left; }
  .fluxo--prazos::before { left: 48px; right: calc((100% - (var(--passos) - 1) * 24px) / var(--passos) - 48px); }
}
html.js .fluxo:not(.entrou)::before { transform: scaleY(0); }
@media (min-width: 900px) { html.js .fluxo:not(.entrou)::before { transform: scaleX(0); } }
html.js.js-revelado .fluxo::before { transform: none; }
.secao--escura .fluxo__marca { background: var(--cor-profunda); border-color: rgba(255, 255, 255, 0.28); color: var(--cor-acento); box-shadow: none; }
.secao--escura .fluxo--prazos .fluxo__marca { color: #fff; }
.secao--escura .fluxo p { color: #C9C7F2; }

/* Barras: comparação ou ordem de prioridade em barras horizontais que crescem ao rolar.
   Uso: ol.barras[data-entra-filhos] > li[style="--v:80"] > .barras__rotulo + .barras__valor (opcional) + .barras__trilho > span */
.barras { display: grid; gap: 16px; list-style: none; margin: 0; padding: 0; }
.barras > li { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "rotulo valor" "trilho trilho"; gap: 6px 12px; align-items: end; margin: 0; }
.barras__rotulo { grid-area: rotulo; font-weight: 600; color: var(--cor-profunda); }
.barras__rotulo small { display: block; font-weight: 400; font-size: var(--t-sm); color: var(--texto-secundario); }
.barras__valor { grid-area: valor; font-family: var(--fonte-titulo); font-weight: 700; color: var(--cor-principal-hover); }
.barras__trilho { grid-area: trilho; height: 12px; border-radius: 999px; background: var(--cor-suave); overflow: hidden; }
.barras__trilho > span { display: block; height: 100%; width: calc(var(--v, 50) * 1%); border-radius: inherit; background: linear-gradient(90deg, var(--cor-principal), var(--principal-300)); transform-origin: left; transition: transform 1100ms var(--saida, ease-out), translate 1100ms var(--saida, ease-out), scale 1100ms var(--saida, ease-out); }
html.js .barras > li:not(.entrou) .barras__trilho > span { transform: scaleX(0); }
html.js.js-revelado .barras__trilho > span { transform: none; }
.secao--suave .barras__trilho, .secao--gradiente .barras__trilho, .secao--menta .barras__trilho { background: #fff; }

/* Cartões com ícone: grade de itens curtos, com elevação no hover. Variante --nao para o que fica de fora. */
.cartoes-icone { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0; }
@media (min-width: 640px) { .cartoes-icone { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .cartoes-icone--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cartoes-icone--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.cartao-icone { display: grid; gap: 10px; align-content: start; margin: 0; padding: 24px; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); background: #fff; transition: transform 320ms var(--saida, ease-out), translate 320ms var(--saida, ease-out), scale 320ms var(--saida, ease-out), box-shadow 320ms var(--saida, ease-out), border-color 320ms var(--saida, ease-out); }
.cartao-icone:hover { translate: 0 -4px; box-shadow: var(--sombra-lg); border-color: var(--principal-300); }
.cartao-icone__marca { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--cor-suave); color: var(--cor-principal); transition: background 320ms var(--saida, ease-out), color 320ms var(--saida, ease-out), transform 320ms var(--saida, ease-out), translate 320ms var(--saida, ease-out), scale 320ms var(--saida, ease-out); }
.cartao-icone__marca .icone { width: 24px; height: 24px; }
.cartao-icone:hover .cartao-icone__marca { background: var(--cor-principal); color: #fff; transform: rotate(-6deg); }
.cartao-icone h3 { margin: 4px 0 0; font-size: var(--t-lg); }
.cartao-icone p { margin: 0; font-size: var(--t-sm); color: var(--texto-secundario); }
.cartao-icone--nao .cartao-icone__marca { background: color-mix(in oklch, var(--cor-erro) 10%, white); color: var(--cor-erro); }
.cartao-icone--nao:hover .cartao-icone__marca { background: var(--cor-erro); color: #fff; }
.secao--escura .cartao-icone { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.16); }
.secao--escura .cartao-icone:hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(127, 235, 198, 0.5); box-shadow: none; }
.secao--escura .cartao-icone__marca { background: rgba(127, 235, 198, 0.14); color: var(--cor-acento); }
.secao--escura .cartao-icone p { color: #C9C7F2; }

/* Relato: o que a equipe vê no atendimento (experiência real, sem caso inventado nem cliente identificado) */
.relato { position: relative; margin: 0; padding: 28px; border-radius: var(--raio-lg); background: var(--cor-profunda); color: #fff; overflow: hidden; }
.relato::before { content: "\201C"; position: absolute; right: 18px; top: -18px; font-family: var(--fonte-titulo); font-size: 140px; line-height: 1; color: rgba(127, 235, 198, 0.22); }
.relato blockquote { position: relative; margin: 0; }
.relato p { margin: 0; font-size: var(--t-lg); line-height: 1.5; color: #fff; }
.relato figcaption { display: flex; align-items: center; gap: 8px; margin-top: 16px; font-size: var(--t-sm); color: var(--cor-acento); font-weight: 600; }

/* Lado a lado: texto + diagrama, cartão ou foto. Uso: .lado-a-lado > .lado-a-lado__texto + .lado-a-lado__visual */
.lado-a-lado { display: grid; gap: 32px; align-items: center; }
@media (min-width: 960px) { .lado-a-lado { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: 56px; } .lado-a-lado--inverso .lado-a-lado__visual { order: -1; } }
.lado-a-lado__texto > :last-child { margin-bottom: 0; }
.lado-a-lado__visual .foto { border-radius: var(--raio-xl); box-shadow: var(--sombra-lg); }

/* Sumário lateral para páginas longas (políticas, termos): âncoras internas da própria página */
.com-sumario { display: grid; gap: 32px; }
@media (min-width: 1024px) { .com-sumario { grid-template-columns: 260px minmax(0, 1fr); gap: 56px; align-items: start; } }
.sumario-lateral { padding: 20px; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); background: #fff; }
@media (min-width: 1024px) { .sumario-lateral { position: sticky; top: 96px; } }
.sumario-lateral p { margin: 0 0 8px; font-size: var(--t-xs); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--texto-secundario); }
.sumario-lateral ol { display: grid; gap: 2px; list-style: none; margin: 0; padding: 0; counter-reset: sumario; }
.sumario-lateral li { margin: 0; counter-increment: sumario; }
.sumario-lateral a { display: flex; gap: 10px; padding: 8px 10px; border-radius: 10px; font-size: var(--t-sm); color: var(--texto-padrao); text-decoration: none; transition: background 200ms var(--saida, ease-out), color 200ms var(--saida, ease-out); }
.sumario-lateral a::before { content: counter(sumario, decimal-leading-zero); font-weight: 600; color: var(--cor-principal-hover); }
.sumario-lateral a:hover, .sumario-lateral a.ativo { background: var(--cor-suave); color: var(--cor-profunda); }
.com-sumario .artigo h2 { scroll-margin-top: 96px; }
.com-sumario .artigo h2:not(:first-child) { margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--cor-borda); }

/* Elevação no hover em cartões já existentes */
.cartao, .muro__cel { transition: transform 320ms var(--saida, ease-out), translate 320ms var(--saida, ease-out), scale 320ms var(--saida, ease-out), box-shadow 320ms var(--saida, ease-out), border-color 320ms var(--saida, ease-out); }
a.cartao:hover, .muro__cel:hover { translate: 0 -4px; }
@media (prefers-reduced-motion: reduce) { .cartao-icone:hover, a.cartao:hover, .muro__cel:hover, .fluxo > li:hover .fluxo__marca, .lista-links a:hover, .mosaico__cel:hover, .post-card:hover { translate: none; } .cartao-icone:hover .cartao-icone__marca { transform: none; } .muro__cel:hover .logo-op { scale: none; } }
/* Fluxo sempre vertical (dentro de coluna estreita, como em .lado-a-lado__visual) */
@media (min-width: 900px) {
  .fluxo--vertical { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .fluxo--vertical > li { grid-template-columns: 56px minmax(0, 1fr); gap: 16px; }
  .fluxo--vertical::before { top: 28px; bottom: 28px; left: 27px; right: auto; width: 2px; height: auto; background: linear-gradient(var(--cor-principal), var(--cor-acento)); transform-origin: top; }
  html.js .fluxo--vertical:not(.entrou)::before { transform: scaleY(0); }
}
.lado-a-lado__visual .cartao { padding: clamp(20px, 3vw, 32px); box-shadow: var(--sombra); }
/* Hero interno com fundo próprio: brilho lavanda e menta e trama de pontos à direita (nunca fundo chapado) */
.hero--compacto { position: relative; overflow: hidden; background: radial-gradient(640px 320px at 92% 0%, color-mix(in oklch, var(--cor-acento) 30%, transparent), transparent 70%), radial-gradient(720px 380px at 0% 110%, var(--principal-100), transparent 70%), var(--cor-fundo); border-bottom: 1px solid var(--cor-borda); }
.hero--compacto::after { content: ""; position: absolute; top: 0; right: 0; width: 42%; height: 100%; background-image: radial-gradient(var(--principal-300) 1.2px, transparent 1.6px); background-size: 22px 22px; -webkit-mask: linear-gradient(90deg, transparent, #000 60%); mask: linear-gradient(90deg, transparent, #000 60%); opacity: 0.5; pointer-events: none; }
.hero--compacto > .container { position: relative; z-index: 1; }

/* Modalidades: o texto continua legível, com uma imagem editorial como contraponto visual. */
.hero--modalidade .hero__grade, .hero--hospital .hero__grade { gap: 28px; }
.hero--modalidade .hero__conteudo, .hero--hospital .hero__conteudo { max-width: 62ch; }
.hero--modalidade .hero__palco, .hero--hospital .hero__palco { width: min(100%, 440px); justify-self: center; }
.hero--modalidade .hero__moldura, .hero--hospital .hero__moldura { aspect-ratio: 4 / 5; max-height: 460px; box-shadow: var(--sombra-lg); border: 1px solid rgba(255, 255, 255, 0.75); }
.hero--modalidade .hero__moldura .foto, .hero--hospital .hero__moldura .foto { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1024px) {
  .hero--modalidade .hero__grade, .hero--hospital .hero__grade { grid-template-columns: minmax(0, 1.14fr) minmax(320px, 0.86fr); gap: clamp(40px, 6vw, 80px); }
  .hero--modalidade .hero__palco, .hero--hospital .hero__palco { justify-self: end; }
}

/* Logos de operadora (ADR 0013): monocromáticas na paleta pelo filtro #tinta-marca (injetado pelo montador) e
   coloridas no hover do link. Marcador {{logo:slug:Nome}}; sem arquivo, vira .logo-op--texto. */
.logo-op { display: block; width: auto; max-width: 100%; height: min(var(--logo-hmax, 40px), calc(var(--logo-base, 48px) / sqrt(var(--r, 3)))); object-fit: contain; filter: url(#tinta-marca); opacity: 0.9; transition: opacity 260ms var(--saida, ease-out); }
a:hover .logo-op, a:focus-visible .logo-op { filter: none; opacity: 1; }
.logo-op--texto { height: auto; filter: none; font-family: var(--fonte-titulo); font-weight: 700; font-size: 17px; letter-spacing: -0.01em; color: var(--cor-profunda); white-space: nowrap; }
.operadora--logo { min-height: 60px; padding: 0 22px; background: #fff; }
.operadora--logo .logo-op { --logo-base: 50px; --logo-hmax: 40px; }
.muro__cel .logo-op { --logo-base: 66px; --logo-hmax: 56px; margin-bottom: 6px; }
.submenu__grupo a { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; min-height: 50px; }
.submenu__grupo .logo-op { --logo-base: 48px; --logo-hmax: 40px; }
@media (prefers-reduced-motion: reduce) { .logo-op { transition: none; } }

/* ===== Correções de 2026-10-15 (ui-kit.md 4.2, "Erros que não podem voltar") ===== */
/* Hover sempre com translate/scale, nunca transform: as entradas ao rolar (movimento.css) usam transform com
   seletor mais forte (html.js [data-entra-filhos] > .entrou) e anulariam o hover. */

/* Muro de operadoras: cada cartão anima no hover (sobe, faixa de cor no topo, logo colorida e maior) */
.muro__cel { position: relative; overflow: hidden; }
.muro__cel::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 4px; background: linear-gradient(90deg, var(--cor-principal), var(--cor-acento)); transform: scaleX(0); transform-origin: left; transition: transform 420ms var(--saida, ease-out); }
.muro__cel:hover { translate: 0 -5px; box-shadow: var(--sombra-lg); }
.muro__cel:hover::before { transform: scaleX(1); }
.muro__cel .logo-op { transform-origin: center; transition: opacity 260ms var(--saida, ease-out), scale 420ms var(--saida, ease-out); }
.muro__cel:hover .logo-op { scale: 1.06; }

/* Diagramas: etapas alinhadas pelo topo e respiro antes do que vem depois */
.fluxo > li { align-content: start; }
:is(.fluxo, .barras, .cartoes-icone, .lado-a-lado, .muro, .relato, .lista-links, .galeria, .tabela-rolagem, .hospitais-grade, .passos, .grade, .posts-grid, .carencias) + :is(p, div, ul, ol, figure, h2, h3, .acoes) { margin-top: clamp(32px, 4vw, 48px); }
.barras + figcaption { margin-top: 24px; font-size: var(--t-xs); color: var(--cor-texto-secundario); }
.secao--escura .cartao { color: var(--cor-texto); }
.secao--escura .cartao :is(h2, h3) { color: var(--cor-profunda); }
/* O mesmo respiro quando uma grade fecha um container e o texto abre outro na mesma seção.
   A regra cobre listas, tabelas e diagramas: eles são frequentemente inseridos pelo montador
   antes de um novo bloco de texto, como acontece nas modalidades da inicial. */
.duas-colunas + :is(.container, .container--estreito),
:is(.lista-links, .galeria, .tabela-rolagem, .fluxo, .barras, .cartoes-icone, .muro, .relato, .hospitais-grade, .passos, .grade, .posts-grid, .carencias) + :is(.container, .container--estreito),
:is(.container, .container--estreito):has(> :is(.fluxo, .barras, .cartoes-icone, .muro, .lista-links, .hospitais-grade, .galeria, .tabela-rolagem, .passos, .grade, .posts-grid, .carencias):last-child) + :is(.container, .container--estreito) { margin-top: clamp(32px, 4vw, 48px); }

/* Cartões com ícone dentro de coluna estreita (lado a lado): uma coluna, ícone à esquerda, compactos */
:is(.lado-a-lado__visual.cartoes-icone, .lado-a-lado__visual > .cartoes-icone) { grid-template-columns: minmax(0, 1fr); gap: 12px; }
:is(.lado-a-lado__visual.cartoes-icone, .lado-a-lado__visual > .cartoes-icone) .cartao-icone { grid-template-columns: 44px minmax(0, 1fr); gap: 2px 16px; padding: 16px 20px; align-items: start; }
:is(.lado-a-lado__visual.cartoes-icone, .lado-a-lado__visual > .cartoes-icone) .cartao-icone__marca { grid-row: span 2; width: 44px; height: 44px; border-radius: 12px; }
:is(.lado-a-lado__visual.cartoes-icone, .lado-a-lado__visual > .cartoes-icone) .cartao-icone h3 { margin: 0; font-size: var(--t-base); }
:is(.lado-a-lado__visual.cartoes-icone, .lado-a-lado__visual > .cartoes-icone) .cartao-icone p { grid-column: 2; }
:is(.lado-a-lado__visual.cartoes-icone, .lado-a-lado__visual > .cartoes-icone) .cartao-icone:hover { translate: 4px 0; }

/* Lista de links: é cartão, não leva o sublinhado do .cartao__link; em coluna estreita, uma por linha */
.lista-links .cartao__link::after { content: none; }
.lado-a-lado .lista-links { grid-template-columns: minmax(0, 1fr); margin-top: 28px; }
.lista-links a .icone { transition: translate 300ms var(--saida, ease-out); }
.lista-links a:hover .icone { translate: 4px 0; }

/* Sem hover (toque): logos sempre com a cor oficial */
@media (hover: none) { .logo-op { filter: none; opacity: 1; } }
/* Cartões com ícone dentro do texto do artigo (ex.: políticas com sumário lateral): colunas de no mínimo 260 px */
.artigo .cartoes-icone, .artigo .cartoes-icone:is(.cartoes-icone--3, .cartoes-icone--4) { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); margin-block: 24px; }

/* Grade de hospitais (/hospitais/): cartão com foto ou capa colorida, nome, bairro e operadoras do catálogo */
.hospitais-grade { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); list-style: none; margin: 0; padding: 0; }
.hospital-card { position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden; background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); color: var(--cor-texto); text-decoration: none; transition: translate 260ms var(--saida, ease-out), box-shadow 260ms var(--saida, ease-out), border-color 260ms var(--saida, ease-out); }
.hospital-card:hover { translate: 0 -4px; border-color: var(--cor-principal); box-shadow: 0 22px 40px -24px rgba(30, 28, 79, 0.45); }
.hospital-card__capa { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, var(--cor-principal), var(--cor-profunda)); color: #fff; }
.hospital-card__capa img { width: 100%; height: 100%; object-fit: cover; transition: scale 600ms var(--saida, ease-out); }
.hospital-card:hover .hospital-card__capa img { scale: 1.05; }
.hospital-card__capa .icone { width: 44px; height: 44px; opacity: 0.9; }
.hospitais-grade > li:nth-child(3n+2) .hospital-card__capa--cor { background: linear-gradient(135deg, var(--cor-profunda) 10%, var(--cor-principal)); }
.hospitais-grade > li:nth-child(3n) .hospital-card__capa--cor { background: linear-gradient(135deg, var(--cor-acento), var(--cor-acento-hover)); color: var(--cor-profunda); }
.hospital-card__selo { position: absolute; left: 14px; bottom: 14px; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, 0.94); color: var(--cor-profunda); font-size: var(--t-xs); font-weight: 600; }
.hospital-card__corpo { display: grid; gap: 4px; padding: 18px 20px 20px; }
.hospital-card__corpo strong { font-size: var(--t-lg); line-height: 1.25; color: var(--cor-profunda); }
.hospital-card__corpo small { color: var(--cor-texto-secundario); font-size: var(--t-sm); }
.hospital-card__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.hospital-card__tags span { padding: 3px 10px; border-radius: 999px; background: var(--cor-suave); color: var(--cor-profunda); font-size: var(--t-xs); font-weight: 500; }
.hospital-card__tags span.dest { background: color-mix(in oklch, var(--cor-acento) 45%, white); }
.hospital-card__seta { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, 0.94); color: var(--cor-principal); transition: translate 260ms var(--saida, ease-out); }
.hospital-card:hover .hospital-card__seta { translate: 3px 0; }
@media (prefers-reduced-motion: reduce) { .hospital-card, .hospital-card__capa img, .hospital-card__seta { transition: none; } .hospital-card:hover { translate: none; } }

/* Faixa panorâmica com crédito (foto larga dentro do conteúdo) */
.faixa-foto { margin: 0; border-radius: var(--raio-lg); overflow: hidden; background: var(--cor-suave); }
.faixa-foto img { display: block; width: 100%; aspect-ratio: 21 / 6; object-fit: cover; }
.faixa-foto figcaption { padding: 10px 16px; font-size: var(--t-xs); color: var(--cor-texto-secundario); }

/* Galeria (ADR 0018): substitui as listas em tabela de "nome | descrição". Um cartão por item, com logo da operadora
   ou foto do hospital quando houver. Uso: figure.galeria > figcaption + ul.galeria__grade > li.galeria__item.
   O link do título cobre o cartão inteiro (::after). Tabela de verdade (números comparados) é .tabela-rolagem[data-tabela="dados"]. */
.galeria { margin: 20px 0 8px; }
.galeria figcaption { margin-bottom: 14px; color: var(--texto-secundario); font-size: var(--t-sm); }
.galeria__grade { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); list-style: none; margin: 0; padding: 0; }
.galeria--estreita .galeria__grade { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.galeria__item { position: relative; display: flex; flex-direction: column; overflow: hidden; margin: 0; background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); transition: translate 260ms var(--saida, ease-out), box-shadow 260ms var(--saida, ease-out), border-color 260ms var(--saida, ease-out); }
.galeria__item:has(a):hover { translate: 0 -4px; border-color: var(--cor-principal); box-shadow: 0 22px 40px -24px rgba(30, 28, 79, 0.45); }
.galeria__midia { display: grid; place-items: center; overflow: hidden; background: var(--cor-suave); }
.galeria__midia--logo { place-items: center; height: 76px; padding: 0 20px; background: var(--cor-fundo); border-bottom: 1px solid var(--cor-borda); }
.galeria__midia--logo .logo-op { --logo-base: 56px; --logo-hmax: 40px; }
.galeria__midia--foto { aspect-ratio: 16 / 9; }
.galeria__midia--foto img { width: 100%; height: 100%; object-fit: cover; transition: scale 600ms var(--saida, ease-out); }
.galeria__item:hover .galeria__midia--foto img { scale: 1.05; }
.galeria__midia--vazia { aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--cor-principal), var(--cor-profunda)); color: #fff; }
.galeria__midia--vazia .icone { width: 40px; height: 40px; opacity: 0.9; }
.galeria__item:hover .logo-op { filter: none; opacity: 1; }
.galeria__corpo { display: grid; align-content: start; gap: 6px; padding: 18px 20px 20px; flex: 1; }
/* Onde a galeria representa operadoras, marca e informações formam uma unidade
   visual: permanecem centralizadas dentro de cada cartão, inclusive quando os
   cards da mesma linha têm alturas diferentes. */
.galeria__item:has(> .galeria__midia--logo) .galeria__corpo { align-content: center; justify-items: center; text-align: center; }
.galeria__item:has(> .galeria__midia--logo) .galeria__dados { justify-items: center; }
.galeria__titulo { font-family: var(--fonte-titulo); font-size: var(--t-lg); font-weight: 600; line-height: 1.25; color: var(--cor-profunda); overflow-wrap: break-word; }
.galeria__titulo a { color: inherit; text-decoration: none; }
.galeria__titulo a::after { content: ""; position: absolute; inset: 0; }
.galeria__titulo a:hover { color: var(--cor-principal-hover); }
.galeria__sub { color: var(--texto-secundario); font-size: var(--t-sm); }
.galeria__corpo > p { margin: 4px 0 0; font-size: var(--t-sm); line-height: 1.5; color: var(--texto-padrao); }
.galeria__corpo :is(p, dd) a:not(.galeria__ligacao) { position: relative; z-index: 1; }
.galeria__ligacao { color: inherit; text-decoration: none; font-weight: 600; }
.galeria__ligacao::after { content: ""; position: absolute; inset: 0; }
.galeria__dados { display: grid; gap: 10px; margin: 6px 0 0; }
.galeria__dados dt { color: var(--texto-secundario); font-size: var(--t-xs); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.galeria__dados dd { margin: 2px 0 0; font-size: var(--t-sm); line-height: 1.5; }
.galeria__dados small { display: block; }
.galeria__seta { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: rgba(255, 255, 255, 0.94); color: var(--cor-principal); transition: translate 260ms var(--saida, ease-out); }
.galeria__item:hover .galeria__seta { translate: 3px 0; }
.galeria__seta .icone { width: 16px; height: 16px; }
.secao--suave .galeria__titulo a:hover { color: var(--cor-principal-hover); }
:is(.container, .container--estreito).artigo > .galeria { max-width: none; }
@media (prefers-reduced-motion: reduce) { .galeria__item, .galeria__midia--foto img, .galeria__seta { transition: none; } .galeria__item:has(a):hover { translate: none; } .galeria__item:hover .galeria__midia--foto img { scale: none; } }

/* ================= Pop-up de contato do WhatsApp (assets/js/rastreio.js, ADR 0023) ================= */
.popup-contato { width: min(440px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 0; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); background: #fff; color: var(--texto-padrao); box-shadow: var(--sombra-lg); overflow: auto; }
.popup-contato::backdrop { background: rgba(43, 42, 107, 0.55); }
.popup-contato__form { position: relative; display: grid; gap: 14px; padding: clamp(24px, 5vw, 32px); }
.popup-contato h2 { margin: 0; padding-right: 36px; font-size: var(--t-2xl); color: var(--cor-profunda); }
.popup-contato__texto { margin: 0; color: var(--texto-secundario); font-size: var(--t-sm); }
.popup-contato__fechar { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: var(--texto-secundario); cursor: pointer; }
.popup-contato__fechar:hover { background: var(--cor-suave); color: var(--cor-profunda); }
.popup-contato__fechar .icone { width: 18px; height: 18px; }
.popup-contato__erro { margin: 0; font-size: var(--t-sm); color: var(--cor-erro); }
.popup-contato__erro:empty { display: none; }
.popup-contato__pular { justify-self: center; padding: 6px 10px; border: 0; background: transparent; color: var(--texto-secundario); font: inherit; font-size: var(--t-xs); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.popup-contato__pular:hover { color: var(--cor-principal); }
.popup-contato__nota { margin: 0; font-size: var(--t-xs); color: var(--texto-secundario); text-align: center; }


/* Rede credenciada e regras de contratação vindas dos dados abertos das operadoras (ADR 0032) */
.dados-operadora { display: grid; gap: 14px; margin-top: 18px; }
.dados-operadora__resumo { margin: 0; max-width: 70ch; font-size: var(--t-lg); color: var(--cor-profunda); }
.dados-operadora__data { margin: 0; display: inline-flex; align-items: center; gap: 8px; font-size: var(--t-sm); font-weight: 600; color: var(--cor-sucesso); }
.dados-operadora__data .icone { width: 16px; height: 16px; }
.dados-operadora .tabela-rolagem { max-height: 520px; overflow: auto; }
.dados-secao { border: 1px solid var(--cor-borda); border-radius: 12px; background: #fff; }
.dados-secao + .dados-secao { margin-top: 8px; }
.dados-secao summary { padding: 14px 18px; cursor: pointer; font-family: var(--fonte-titulo); font-weight: 600; color: var(--cor-profunda); }
.dados-secao summary:hover { color: var(--cor-principal); }
.dados-secao[open] summary { border-bottom: 1px solid var(--cor-suave); }
.dados-secao__corpo { padding: 14px 18px 18px; font-size: var(--t-sm); overflow-x: auto; }
.dados-secao__corpo p { margin: 0 0 10px; max-width: 75ch; }
.dados-secao__corpo ul, .dados-secao__corpo ol { margin: 0 0 10px; padding-left: 20px; max-width: 75ch; }
.dados-operadora > p { max-width: 75ch; }
.dados-secao__corpo table { border-collapse: collapse; font-size: var(--t-xs); }
.dados-secao__corpo th, .dados-secao__corpo td { padding: 6px 8px; border: 1px solid var(--cor-suave); text-align: left; vertical-align: top; }
.dados-secao__corpo td p, .dados-secao__corpo th p { margin: 0; }

/* Prévia borrada da tela de valores (ADR 0033): cartões de exemplo, sem valor real, com o aviso por cima */
.previa-valores { position: relative; margin-top: 18px; border: 1px solid var(--cor-borda); border-radius: 20px; background: var(--cor-suave); overflow: hidden; }
.previa-valores__tela { padding: 18px; filter: blur(5px); opacity: 0.85; pointer-events: none; user-select: none; }
.previa-valores__filtros { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.previa-valores__filtros span { padding: 10px 16px; border: 1.5px solid var(--cor-borda); border-radius: 12px; background: #fff; font-size: var(--t-sm); font-weight: 600; color: var(--cor-profunda); }
.previa-valores__lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.previa-card { display: flex; flex-direction: column; gap: 8px; padding: 16px; border: 1px solid var(--cor-borda); border-radius: 16px; background: #fff; }
.previa-card__op { margin: 0; min-height: 28px; display: flex; align-items: center; }
.previa-card__op .logo-op { max-height: 28px; width: auto; }
.previa-card__plano { display: block; width: 62%; height: 16px; border-radius: 6px; background: var(--cor-borda); }
.previa-card__dados { display: grid; grid-template-columns: auto 1fr; margin: 0; border-top: 1px solid var(--cor-suave); font-size: var(--t-sm); }
.previa-card__dados dt, .previa-card__dados dd { margin: 0; padding: 6px 0; border-bottom: 1px solid var(--cor-suave); }
.previa-card__dados dt { padding-right: 12px; color: var(--texto-secundario); }
.previa-card__dados dd { text-align: right; font-weight: 600; color: var(--cor-profunda); }
.previa-card__preco { margin: 4px 0 0; display: grid; gap: 2px; }
.previa-card__valor { font-family: var(--fonte-titulo); font-size: var(--t-3xl); font-weight: 700; line-height: 1.1; color: var(--cor-profunda); }
.previa-card__valor::before { content: "R$ 000,00"; }
.previa-card__preco small { font-size: var(--t-sm); color: var(--texto-secundario); }
.previa-card__botao { display: block; padding: 10px; border-radius: 999px; background: var(--cor-acento); font-family: var(--fonte-titulo); font-weight: 600; text-align: center; color: var(--cor-texto); }
.previa-valores__aviso { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 20px; text-align: center; background: rgba(250, 250, 255, 0.78); }
.previa-valores__aviso > p:not(.previa-valores__titulo) { max-width: 52ch; margin: 0; font-size: var(--t-sm); color: var(--cor-texto); }
.previa-valores__titulo { margin: 0; font-family: var(--fonte-titulo); font-size: var(--t-2xl); font-weight: 700; color: var(--cor-profunda); }
.previa-valores__cadeado { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--cor-acento); color: var(--cor-texto); }
.previa-valores__cadeado .icone { width: 24px; height: 24px; }
@media (max-width: 560px) {
  /* Celular: um cartão borrado que se apaga para baixo e o convite logo abaixo, sem cobrir nada (ADR 0035) */
  .previa-valores__tela { max-height: 200px; padding: 12px 12px 0; overflow: hidden; -webkit-mask-image: linear-gradient(#000 45%, transparent); mask-image: linear-gradient(#000 45%, transparent); }
  .previa-valores__filtros { display: none; }
  .previa-valores__lista { grid-template-columns: 1fr; }
  .previa-card:nth-child(n+2) { display: none; }
  .previa-card { min-width: 0; }
  .previa-valores__aviso { position: static; padding: 4px 16px 20px; background: transparent; }
}

/* Convite compacto para ver os valores (ADR 0035): logo depois do "Em resumo" */
.convite-valores { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; margin: 18px 0 0; padding: 16px 20px; border: 1px solid var(--cor-borda); border-radius: 16px; background: #fff; }
.convite-valores__icone { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; background: var(--cor-acento); color: var(--cor-texto); }
.convite-valores__icone .icone { width: 22px; height: 22px; }
.convite-valores__texto { flex: 1 1 280px; }
.convite-valores__texto p { margin: 0; max-width: 62ch; font-size: var(--t-sm); color: var(--texto-secundario); }
.convite-valores__texto .convite-valores__titulo { margin-bottom: 2px; font-family: var(--fonte-titulo); font-size: var(--t-lg); font-weight: 700; color: var(--cor-profunda); }
.convite-valores__acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.convite-valores__link { font-weight: 600; font-size: var(--t-sm); }
@media (max-width: 560px) { .convite-valores { padding: 14px; } .convite-valores__icone { display: none; } .convite-valores__acoes { width: 100%; } .convite-valores__acoes .botao { flex: 1 1 auto; } }

/* ===== icones.css ===== */
/* Gerado por assets/scripts/gerar-icones.py a partir de assets/img/icones/*.svg. Não editar à mão. */
.ic-alerta { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%204l9%2015.5H3z%22/%3E%3Cpath%20d=%22M12%2010v4M12%2017h.01%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%204l9%2015.5H3z%22/%3E%3Cpath%20d=%22M12%2010v4M12%2017h.01%22/%3E%3C/svg%3E"); }
.ic-atualizar { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M4%2012a8%208%200%200%201%2014-5.3L20%209%22/%3E%3Cpath%20d=%22M20%204v5h-5%22/%3E%3Cpath%20d=%22M20%2012a8%208%200%200%201-14%205.3L4%2015%22/%3E%3Cpath%20d=%22M4%2020v-5h5%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M4%2012a8%208%200%200%201%2014-5.3L20%209%22/%3E%3Cpath%20d=%22M20%204v5h-5%22/%3E%3Cpath%20d=%22M20%2012a8%208%200%200%201-14%205.3L4%2015%22/%3E%3Cpath%20d=%22M4%2020v-5h5%22/%3E%3C/svg%3E"); }
.ic-balanca { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%204v16M7%2020h10M5%208h14%22/%3E%3Cpath%20d=%22M5%208l-2.5%206a3%203%200%200%200%205%200zM19%208l-2.5%206a3%203%200%200%200%205%200z%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%204v16M7%2020h10M5%208h14%22/%3E%3Cpath%20d=%22M5%208l-2.5%206a3%203%200%200%200%205%200zM19%208l-2.5%206a3%203%200%200%200%205%200z%22/%3E%3C/svg%3E"); }
.ic-cadeado { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Crect%20x=%225%22%20y=%2210.5%22%20width=%2214%22%20height=%2210%22%20rx=%222.5%22/%3E%3Cpath%20d=%22M8%2010.5V8a4%204%200%200%201%208%200v2.5M12%2014.5v2.5%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Crect%20x=%225%22%20y=%2210.5%22%20width=%2214%22%20height=%2210%22%20rx=%222.5%22/%3E%3Cpath%20d=%22M8%2010.5V8a4%204%200%200%201%208%200v2.5M12%2014.5v2.5%22/%3E%3C/svg%3E"); }
.ic-calendario { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Crect%20x=%223.5%22%20y=%225%22%20width=%2217%22%20height=%2215.5%22%20rx=%222.5%22/%3E%3Cpath%20d=%22M8%203v4M16%203v4M3.5%2010h17%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Crect%20x=%223.5%22%20y=%225%22%20width=%2217%22%20height=%2215.5%22%20rx=%222.5%22/%3E%3Cpath%20d=%22M8%203v4M16%203v4M3.5%2010h17%22/%3E%3C/svg%3E"); }
.ic-chat { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M4%206.5A2.5%202.5%200%200%201%206.5%204h11A2.5%202.5%200%200%201%2020%206.5v7a2.5%202.5%200%200%201-2.5%202.5H10l-5%204v-4H6.5A2.5%202.5%200%200%201%204%2013.5z%22/%3E%3Cpath%20d=%22M8%209h8M8%2012.5h5%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M4%206.5A2.5%202.5%200%200%201%206.5%204h11A2.5%202.5%200%200%201%2020%206.5v7a2.5%202.5%200%200%201-2.5%202.5H10l-5%204v-4H6.5A2.5%202.5%200%200%201%204%2013.5z%22/%3E%3Cpath%20d=%22M8%209h8M8%2012.5h5%22/%3E%3C/svg%3E"); }
.ic-check { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M5%2012.5l4.5%204.5L19%207.5%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M5%2012.5l4.5%204.5L19%207.5%22/%3E%3C/svg%3E"); }
.ic-chevron-baixo, .ic-chevron { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M6%209l6%206%206-6%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M6%209l6%206%206-6%22/%3E%3C/svg%3E"); }
.ic-coracao { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%2020.5s-7.5-4.6-7.5-10.2A4.3%204.3%200%200%201%2012%207.6a4.3%204.3%200%200%201%207.5%202.7c0%205.6-7.5%2010.2-7.5%2010.2z%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%2020.5s-7.5-4.6-7.5-10.2A4.3%204.3%200%200%201%2012%207.6a4.3%204.3%200%200%201%207.5%202.7c0%205.6-7.5%2010.2-7.5%2010.2z%22/%3E%3C/svg%3E"); }
.ic-data-post, .ic-data { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M8%202v4%22/%3E%3Cpath%20d=%22M16%202v4%22/%3E%3Crect%20width=%2218%22%20height=%2218%22%20x=%223%22%20y=%224%22%20rx=%222%22/%3E%3Cpath%20d=%22M3%2010h18%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M8%202v4%22/%3E%3Cpath%20d=%22M16%202v4%22/%3E%3Crect%20width=%2218%22%20height=%2218%22%20x=%223%22%20y=%224%22%20rx=%222%22/%3E%3Cpath%20d=%22M3%2010h18%22/%3E%3C/svg%3E"); }
.ic-dente { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M8%203.5c2%200%202.5%201%204%201s2-1%204-1c2.5%200%203.5%202.5%203.5%204.5%200%203-1.5%204.5-2%207.5-.4%202.5-.8%205-2%205s-1.7-3-2.5-4.5c-.5-1-1.5-1-2%200C10.2%2018%209.7%2021%208.5%2021s-1.6-2.5-2-5c-.5-3-2-4.5-2-7.5C4.5%206%205.5%203.5%208%203.5z%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M8%203.5c2%200%202.5%201%204%201s2-1%204-1c2.5%200%203.5%202.5%203.5%204.5%200%203-1.5%204.5-2%207.5-.4%202.5-.8%205-2%205s-1.7-3-2.5-4.5c-.5-1-1.5-1-2%200C10.2%2018%209.7%2021%208.5%2021s-1.6-2.5-2-5c-.5-3-2-4.5-2-7.5C4.5%206%205.5%203.5%208%203.5z%22/%3E%3C/svg%3E"); }
.ic-documento { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M7%203h7l5%205v11.5A1.5%201.5%200%200%201%2017.5%2021h-10A1.5%201.5%200%200%201%206%2019.5v-15A1.5%201.5%200%200%201%207.5%203z%22/%3E%3Cpath%20d=%22M14%203v5h5M9%2013h6M9%2017h6%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M7%203h7l5%205v11.5A1.5%201.5%200%200%201%2017.5%2021h-10A1.5%201.5%200%200%201%206%2019.5v-15A1.5%201.5%200%200%201%207.5%203z%22/%3E%3Cpath%20d=%22M14%203v5h5M9%2013h6M9%2017h6%22/%3E%3C/svg%3E"); }
.ic-email { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Crect%20x=%223%22%20y=%225%22%20width=%2218%22%20height=%2214%22%20rx=%223%22/%3E%3Cpath%20d=%22M3.5%207.5L12%2013l8.5-5.5%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Crect%20x=%223%22%20y=%225%22%20width=%2218%22%20height=%2214%22%20rx=%223%22/%3E%3Cpath%20d=%22M3.5%207.5L12%2013l8.5-5.5%22/%3E%3C/svg%3E"); }
.ic-empresa { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Crect%20x=%223%22%20y=%228%22%20width=%2218%22%20height=%2212%22%20rx=%222.5%22/%3E%3Cpath%20d=%22M9%208V5.5A1.5%201.5%200%200%201%2010.5%204h3A1.5%201.5%200%200%201%2015%205.5V8M3%2013h18%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Crect%20x=%223%22%20y=%228%22%20width=%2218%22%20height=%2212%22%20rx=%222.5%22/%3E%3Cpath%20d=%22M9%208V5.5A1.5%201.5%200%200%201%2010.5%204h3A1.5%201.5%200%200%201%2015%205.5V8M3%2013h18%22/%3E%3C/svg%3E"); }
.ic-escudo { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%203l7.5%203v5.5c0%204.5-3.2%208-7.5%209.5-4.3-1.5-7.5-5-7.5-9.5V6L12%203z%22/%3E%3Cpath%20d=%22M9%2012l2%202%204-4%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%203l7.5%203v5.5c0%204.5-3.2%208-7.5%209.5-4.3-1.5-7.5-5-7.5-9.5V6L12%203z%22/%3E%3Cpath%20d=%22M9%2012l2%202%204-4%22/%3E%3C/svg%3E"); }
.ic-estrela { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%203.5l2.6%205.4%205.9.8-4.3%204.1%201.1%205.9L12%2016.9l-5.3%202.8%201.1-5.9-4.3-4.1%205.9-.8z%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%203.5l2.6%205.4%205.9.8-4.3%204.1%201.1%205.9L12%2016.9l-5.3%202.8%201.1-5.9-4.3-4.1%205.9-.8z%22/%3E%3C/svg%3E"); }
.ic-familia { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%228%22%20cy=%227%22%20r=%222.6%22/%3E%3Ccircle%20cx=%2216.5%22%20cy=%228%22%20r=%222.2%22/%3E%3Cpath%20d=%22M3.5%2019v-2.5a4.5%204.5%200%200%201%209%200V19M12.5%2019v-2a4%204%200%200%201%208%200v2%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%228%22%20cy=%227%22%20r=%222.6%22/%3E%3Ccircle%20cx=%2216.5%22%20cy=%228%22%20r=%222.2%22/%3E%3Cpath%20d=%22M3.5%2019v-2.5a4.5%204.5%200%200%201%209%200V19M12.5%2019v-2a4%204%200%200%201%208%200v2%22/%3E%3C/svg%3E"); }
.ic-fechar { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M6%206l12%2012M18%206L6%2018%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M6%206l12%2012M18%206L6%2018%22/%3E%3C/svg%3E"); }
.ic-grafico { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M4%2020h16%22/%3E%3Cpath%20d=%22M6%2016v-4M10%2016V8M14%2016v-6M18%2016V5%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M4%2020h16%22/%3E%3Cpath%20d=%22M6%2016v-4M10%2016V8M14%2016v-6M18%2016V5%22/%3E%3C/svg%3E"); }
.ic-hora-post, .ic-hora { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%2210%22/%3E%3Cpolyline%20points=%2212%206%2012%2012%2016%2014%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%2210%22/%3E%3Cpolyline%20points=%2212%206%2012%2012%2016%2014%22/%3E%3C/svg%3E"); }
.ic-hospital { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Crect%20x=%224%22%20y=%224%22%20width=%2216%22%20height=%2216%22%20rx=%222.5%22/%3E%3Cpath%20d=%22M12%208v6M9%2011h6M9%2020v-3h6v3%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Crect%20x=%224%22%20y=%224%22%20width=%2216%22%20height=%2216%22%20rx=%222.5%22/%3E%3Cpath%20d=%22M12%208v6M9%2011h6M9%2020v-3h6v3%22/%3E%3C/svg%3E"); }
.ic-info { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%228.5%22/%3E%3Cpath%20d=%22M12%2011v5M12%208v.5%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%228.5%22/%3E%3Cpath%20d=%22M12%2011v5M12%208v.5%22/%3E%3C/svg%3E"); }
.ic-lapis { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M15.5%204.5l4%204L9%2019H5v-4z%22/%3E%3Cpath%20d=%22M13%207l4%204%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M15.5%204.5l4%204L9%2019H5v-4z%22/%3E%3Cpath%20d=%22M13%207l4%204%22/%3E%3C/svg%3E"); }
.ic-lupa { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2211%22%20cy=%2211%22%20r=%226.5%22/%3E%3Cpath%20d=%22M16%2016l4.5%204.5%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2211%22%20cy=%2211%22%20r=%226.5%22/%3E%3Cpath%20d=%22M16%2016l4.5%204.5%22/%3E%3C/svg%3E"); }
.ic-mais { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%205v14M5%2012h14%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%205v14M5%2012h14%22/%3E%3C/svg%3E"); }
.ic-mapa { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%2021s-6.5-6-6.5-11a6.5%206.5%200%200%201%2013%200c0%205-6.5%2011-6.5%2011z%22/%3E%3Ccircle%20cx=%2212%22%20cy=%2210%22%20r=%222.3%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M12%2021s-6.5-6-6.5-11a6.5%206.5%200%200%201%2013%200c0%205-6.5%2011-6.5%2011z%22/%3E%3Ccircle%20cx=%2212%22%20cy=%2210%22%20r=%222.3%22/%3E%3C/svg%3E"); }
.ic-menos { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M5%2012h14%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M5%2012h14%22/%3E%3C/svg%3E"); }
.ic-menu { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M4%207h16M4%2012h16M4%2017h16%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M4%207h16M4%2012h16M4%2017h16%22/%3E%3C/svg%3E"); }
.ic-moeda { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%228.5%22/%3E%3Cpath%20d=%22M12%207.5v9M14.5%209.5c-.4-.9-1.3-1.3-2.5-1.3-1.5%200-2.5.8-2.5%201.8%200%202.4%205%201.4%205%203.9%200%201-1%201.8-2.5%201.8-1.2%200-2.1-.5-2.5-1.3%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%228.5%22/%3E%3Cpath%20d=%22M12%207.5v9M14.5%209.5c-.4-.9-1.3-1.3-2.5-1.3-1.5%200-2.5.8-2.5%201.8%200%202.4%205%201.4%205%203.9%200%201-1%201.8-2.5%201.8-1.2%200-2.1-.5-2.5-1.3%22/%3E%3C/svg%3E"); }
.ic-pessoa { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%228%22%20r=%223.5%22/%3E%3Cpath%20d=%22M5%2020v-1.5a5.5%205.5%200%200%201%205.5-5.5h3a5.5%205.5%200%200%201%205.5%205.5V20%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%228%22%20r=%223.5%22/%3E%3Cpath%20d=%22M5%2020v-1.5a5.5%205.5%200%200%201%205.5-5.5h3a5.5%205.5%200%200%201%205.5%205.5V20%22/%3E%3C/svg%3E"); }
.ic-rede { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%225%22%20r=%222%22/%3E%3Ccircle%20cx=%225%22%20cy=%2218%22%20r=%222%22/%3E%3Ccircle%20cx=%2219%22%20cy=%2218%22%20r=%222%22/%3E%3Cpath%20d=%22M12%207v4M12%2011l-5.5%205.5M12%2011l5.5%205.5%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%225%22%20r=%222%22/%3E%3Ccircle%20cx=%225%22%20cy=%2218%22%20r=%222%22/%3E%3Ccircle%20cx=%2219%22%20cy=%2218%22%20r=%222%22/%3E%3Cpath%20d=%22M12%207v4M12%2011l-5.5%205.5M12%2011l5.5%205.5%22/%3E%3C/svg%3E"); }
.ic-relogio { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%228.5%22/%3E%3Cpath%20d=%22M12%207.5V12l3%202%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%228.5%22/%3E%3Cpath%20d=%22M12%207.5V12l3%202%22/%3E%3C/svg%3E"); }
.ic-seta-direita, .ic-seta { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M5%2012h14M13%206l6%206-6%206%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M5%2012h14M13%206l6%206-6%206%22/%3E%3C/svg%3E"); }
.ic-verificado { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%228.5%22/%3E%3Cpath%20d=%22M8.5%2012.5l2.5%202.5%204.5-5%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%228.5%22/%3E%3Cpath%20d=%22M8.5%2012.5l2.5%202.5%204.5-5%22/%3E%3C/svg%3E"); }
.ic-whatsapp { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M4%2020l1.3-4.2A8.5%208.5%200%201%201%208.6%2019L4%2020z%22/%3E%3Cpath%20d=%22M9.2%209.3c.2%202.4%202.9%205.1%205.3%205.3l.9-1.3-1.8-.8-.8.8c-.9-.4-1.9-1.4-2.3-2.3l.8-.8-.8-1.8-1.3.9z%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22currentColor%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M4%2020l1.3-4.2A8.5%208.5%200%201%201%208.6%2019L4%2020z%22/%3E%3Cpath%20d=%22M9.2%209.3c.2%202.4%202.9%205.1%205.3%205.3l.9-1.3-1.8-.8-.8.8c-.9-.4-1.9-1.4-2.3-2.3l.8-.8-.8-1.8-1.3.9z%22/%3E%3C/svg%3E"); }

/* ===== movimento.css ===== */
/*
  Planos BH — movimento (UI kit, ADR 0008). Estados iniciais só valem com html.js (movimento.js carregado
  e sem prefers-reduced-motion); sem JS, tudo fica visível. Saída exponencial, uma coreografia por página.
*/
html.js, html.js body { overflow-x: clip; } /* deslocamentos de entrada não criam rolagem lateral */
:root { --saida: cubic-bezier(0.16, 1, 0.3, 1); --dur: 720ms; }

/* Entradas ao rolar */
html.js [data-entra], html.js [data-entra-filhos] > * { opacity: 0; transform: translateY(22px); transition: opacity var(--dur) var(--saida), transform var(--dur) var(--saida); }
/* Cartão de post: a entrada ao rolar não pode apagar a transição do hover (sobe, sombra e borda). */
html.js [data-entra-filhos] > .post-card { transition: opacity var(--dur) var(--saida), transform var(--dur) var(--saida), translate 320ms var(--saida), box-shadow 320ms var(--saida), border-color 320ms var(--saida); }
html.js [data-entra].entrou, html.js [data-entra-filhos] > .entrou, html.js.js-revelado [data-entra], html.js.js-revelado [data-entra-filhos] > * { opacity: 1; transform: none; }
html.js [data-entra="esquerda"] { transform: translateX(-28px); }
html.js [data-entra="direita"] { transform: translateX(28px); }
html.js [data-entra="zoom"] { transform: scale(0.96); }
html.js [data-entra="esquerda"].entrou, html.js [data-entra="direita"].entrou, html.js [data-entra="zoom"].entrou { transform: none; }

/* Hero: itens com data-passo entram em sequência na carga. Só CSS (keyframes, sem esperar o JS do fim do body);
   "backwards" só segura o estado inicial durante o atraso.
   Texto e botões (todo passo que não é foto: sem data-escala nem data-sobe) só deslizam, sem animar opacidade: o Chrome
   anima opacidade no compositor e só registra o LCP quando a thread principal repinta, ou seja, perto do fim da animação
   (era 3 s no celular, ADR 0025); e o conteúdo aparece completo no primeiro quadro (Speed Index). Fotos entram com fade e escala. */
@keyframes hero-entra { from { opacity: 0; transform: var(--hero-de, translateY(18px)); } }
@keyframes hero-sobe { from { transform: translateY(14px); } }
@media (prefers-reduced-motion: no-preference) {
  [data-hero] [data-passo] { animation: hero-sobe 640ms var(--saida) backwards; }
  /* propriedades individuais (não o atalho): o atalho zeraria animation-delay, que as regras por passo definem com menos especificidade */
  [data-hero] [data-passo][data-escala], [data-hero] [data-passo][data-sobe] { animation-name: hero-entra; animation-duration: 760ms; }
  [data-hero] [data-passo][data-sobe] { --hero-de: translateY(40px); }
  [data-hero] [data-passo][data-escala] { --hero-de: scale(0.94); }
  [data-hero] [data-passo="1"] { animation-delay: 60ms; }
  [data-hero] [data-passo="2"] { animation-delay: 120ms; }
  [data-hero] [data-passo="3"] { animation-delay: 240ms; }
  [data-hero] [data-passo="4"] { animation-delay: 340ms; }
  [data-hero] [data-passo="5"] { animation-delay: 440ms; }
  [data-hero] [data-passo="6"] { animation-delay: 540ms; }
}

/* Cabeçalho que encolhe */
.cabecalho { transition: box-shadow 240ms var(--saida), background 240ms var(--saida); }
.cabecalho__barra { transition: min-height 240ms var(--saida); }
.cabecalho--compacto .cabecalho__barra { min-height: 60px; }
.cabecalho--compacto { box-shadow: 0 6px 24px -14px rgba(30, 28, 79, 0.25); }
.cabecalho__logo img { transition: height 240ms var(--saida); }
.cabecalho--compacto .cabecalho__logo img { height: 30px; }

/* Fotos de fundo com paralaxe */
[data-paralaxe] { will-change: transform; transform: scale(1.08); }

/* Formulário vivo */
.campo--ativo input, .campo--ativo select { border-color: var(--cor-principal); }
.cotacao__total.pulsa { animation: pulsa 420ms var(--saida); }
@keyframes pulsa { 0% { transform: scale(1); } 40% { transform: scale(1.18); color: var(--cor-principal-hover); } 100% { transform: scale(1); } }
.contador button { transition: background 160ms var(--saida), color 160ms var(--saida), transform 160ms var(--saida); }
.contador button:active { transform: scale(0.88); }
.botao--primario { transition: background var(--transicao), translate 260ms var(--saida), box-shadow 260ms var(--saida); }
.botao--primario:hover { translate: 0 -2px; box-shadow: 0 14px 28px -12px rgba(95, 221, 178, 0.9); }

/* Imagens: leve zoom no cartão em foco */
.zoom-foto { overflow: hidden; }
.zoom-foto .foto { transition: transform 900ms var(--saida); }
.zoom-foto:hover .foto { transform: scale(1.04); }

/* Sublinhado que cresce em links de cartão */
.cartao__link { position: relative; }
.cartao__link::after { content: ""; position: absolute; left: 0; right: 0; bottom: -3px; height: 2px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform 320ms var(--saida); }
.cartao__link:hover::after { transform: scaleX(1); }

@media (prefers-reduced-motion: reduce) { [data-paralaxe] { transform: none; } }
