/* ==========================================================================
   Contato Indenizações — Componentes v2.0 "Confiança"
   Depende de tokens.css (v2). Prefixo .ct-  ·  BEM
   [novo] = não existia na v1   ·   [v2] = reformulado
   ========================================================================== */

/* ---------- Base --------------------------------------------------------- */
.ct-root {
  font-family: var(--ct-font-body);
  font-weight: var(--ct-weight-regular);
  font-size: var(--ct-fs-body);
  line-height: var(--ct-lh-body);
  color: var(--ct-text);
  background: var(--ct-bg);
  -webkit-font-smoothing: antialiased;
}
.ct-container { width: 100%; max-width: var(--ct-container); margin-inline: auto; padding-inline: var(--ct-gutter); }
.ct-section { padding-block: var(--ct-space-20); }
.ct-section--warm { background: var(--ct-surface-warm); }
.ct-section--subtle { background: var(--ct-surface-subtle); }
.ct-prose { max-width: var(--ct-measure); }
.ct-prose > * + * { margin-top: 1em; }

:where(.ct-root) :focus-visible {
  outline: 3px solid var(--ct-focus-ring);
  outline-offset: 3px;
  box-shadow: 0 0 0 7px var(--ct-focus-halo);
}

/* ---------- Tipografia --------------------------------------------------- */
.ct-display {
  font-family: var(--ct-font-display);
  font-weight: var(--ct-weight-black);
  line-height: var(--ct-lh-display);
  letter-spacing: var(--ct-tracking-display);
  color: var(--ct-text-display);
  text-wrap: balance;
  margin: 0;
}
.ct-title { font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: var(--ct-fs-title-l); line-height: var(--ct-lh-title); color: var(--ct-text-heading); text-wrap: balance; margin: 0; }
.ct-lead  { font-family: var(--ct-font-ui); font-weight: var(--ct-weight-light); font-size: var(--ct-fs-lead); line-height: var(--ct-lh-lead); margin: 0; }
.ct-body-l { font-size: var(--ct-fs-body-l); }
.ct-body-s { font-size: var(--ct-fs-body-s); }
.ct-caption { font-family: var(--ct-font-ui); font-size: var(--ct-fs-caption); color: var(--ct-text-subtle); }
.ct-eyebrow { font-family: var(--ct-font-ui); font-size: var(--ct-fs-caption); font-weight: var(--ct-weight-semi); letter-spacing: var(--ct-tracking-label); text-transform: uppercase; color: var(--ct-text-accent); }

/* Manchete em dois tempos [v2]
   Continua sendo a assinatura. Mudanças: lead em Inter 300 (não 200),
   punch em CAIXA ALTA só com até 4 palavras — acima disso, frase normal.  */
.ct-headline { display: flex; flex-direction: column; gap: var(--ct-space-2); margin: 0; text-wrap: balance; }
.ct-headline__lead {
  font-family: var(--ct-font-ui);
  font-weight: var(--ct-weight-light);
  font-size: var(--ct-fs-lead);
  line-height: var(--ct-lh-lead);
  color: var(--ct-text);
}
.ct-headline__punch {
  font-family: var(--ct-font-display);
  font-weight: var(--ct-weight-black);
  font-size: var(--ct-fs-display-l);
  line-height: var(--ct-lh-display);
  letter-spacing: var(--ct-tracking-display);
  color: var(--ct-text-display);
}
.ct-headline__punch--caps { text-transform: uppercase; }
.ct-headline--section .ct-headline__punch { font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: var(--ct-fs-title-l); color: var(--ct-text-heading); letter-spacing: 0; }
.ct-headline--inverse .ct-headline__lead,
.ct-headline--inverse .ct-headline__punch { color: var(--ct-text-inverse); }

/* ---------- Botões [v2] --------------------------------------------------
   Sólidos, sem gradiente e sem borda em L. Cantos iguais (14 px). 56 px de altura. */
.ct-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--ct-space-3);
  min-height: var(--ct-control-h);
  padding: var(--ct-btn-pad);
  font-family: var(--ct-font-body);
  font-size: var(--ct-btn-fs);
  font-weight: var(--ct-btn-weight);
  line-height: 1.2;
  text-decoration: none;
  color: var(--ct-action-text);
  background: var(--ct-action);
  border: 2px solid transparent;
  border-radius: var(--ct-btn-radius);
  box-shadow: var(--ct-shadow-tactile);
  cursor: pointer;
  transition: background-color var(--ct-duration-base) var(--ct-ease), transform var(--ct-duration-fast) var(--ct-ease);
}
.ct-btn:hover  { background: var(--ct-action-hover); }
.ct-btn:active { background: var(--ct-action-pressed); transform: translateY(1px); box-shadow: inset 0 -1px 0 rgba(0,0,0,.2); }
.ct-btn[disabled], .ct-btn[aria-disabled="true"] { background: var(--ct-neutral-200); color: var(--ct-neutral-700); box-shadow: none; cursor: not-allowed; }
.ct-btn svg { width: 1.3em; height: 1.3em; flex: none; fill: currentColor; }
.ct-btn--block { width: 100%; }

/* Secundário: contorno índigo */
.ct-btn--secondary { color: var(--ct-action-secondary); background: var(--ct-surface); border-color: var(--ct-action-secondary); box-shadow: none; }
.ct-btn--secondary:hover { background: var(--ct-action-secondary-soft); }
.ct-btn--secondary:active { background: var(--ct-indigo-100); }
/* Sobre fundo escuro/foto */
.ct-btn--inverse { color: var(--ct-indigo-900); background: var(--ct-neutral-0); box-shadow: inset 0 -3px 0 rgba(23,21,76,.18); }
.ct-btn--inverse:hover { background: var(--ct-indigo-50); }
/* Terciário: texto */
.ct-btn--text { background: transparent; color: var(--ct-text-link); box-shadow: none; padding-inline: var(--ct-space-2); text-decoration: underline; text-underline-offset: 4px; }
.ct-btn--text:hover { background: var(--ct-action-secondary-soft); }

.ct-link { color: var(--ct-text-link); font-weight: var(--ct-weight-semi); text-decoration: underline; text-underline-offset: 3px; }
.ct-link:hover { color: var(--ct-text-link-hover); }

/* WhatsApp flutuante [v2]: ícone + rótulo (só ícone falha para quem lê pouco) */
.ct-whatsapp-float {
  position: fixed; right: var(--ct-space-4); bottom: var(--ct-space-4); z-index: 50;
  display: inline-flex; align-items: center; gap: var(--ct-space-2);
  min-height: var(--ct-control-h); padding: 0 var(--ct-space-5) 0 var(--ct-space-4);
  border-radius: var(--ct-radius-pill);
  background: var(--ct-whatsapp); color: #0B3D1F;
  font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: var(--ct-fs-body-s);
  text-decoration: none; box-shadow: 0 10px 24px -10px rgba(11, 61, 31, .6);
}
.ct-whatsapp-float svg { width: 26px; height: 26px; fill: currentColor; }

/* ---------- Barra de confiança [v2] (substitui a faixa vermelha) -------- */
.ct-trustbar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ct-space-2) var(--ct-space-5);
  padding: var(--ct-space-2) var(--ct-gutter);
  background: var(--ct-surface-inverse);
  color: var(--ct-text-inverse);
  font-family: var(--ct-font-ui);
  font-size: var(--ct-fs-caption);
}
.ct-trustbar a { color: inherit; text-underline-offset: 3px; }
.ct-trustbar__item { display: inline-flex; align-items: center; gap: var(--ct-space-2); }
.ct-trustbar__item svg { width: 16px; height: 16px; fill: currentColor; flex: none; }

/* ---------- Cards -------------------------------------------------------- */
.ct-card { background: var(--ct-surface); border: 1px solid var(--ct-border); border-radius: var(--ct-radius-lg); padding: var(--ct-card-pad); }
.ct-card--raised { border-color: transparent; box-shadow: var(--ct-shadow-card); }

/* Card de frente [v2] (substitui os cards de brilho radial)
   Seguros = vermelho, INSS = índigo — o código de cor da v1 continua. */
.ct-front {
  display: grid; gap: var(--ct-space-4); align-content: start;
  padding: var(--ct-card-pad);
  border-radius: var(--ct-radius-xl);
  background: var(--ct-surface-brand-soft);
}
.ct-front::before { content: ""; width: 48px; height: 10px; border-radius: var(--ct-radius-pill); background: var(--ct-red-500); }
.ct-front--inss { background: var(--ct-surface-institutional-soft); }
.ct-front--inss::before { background: var(--ct-indigo-500); }
.ct-front__title { font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: var(--ct-fs-title-m); line-height: var(--ct-lh-title); color: var(--ct-text); margin: 0; }
.ct-front__list { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--ct-space-2); }
.ct-front__list li { display: grid; grid-template-columns: 24px 1fr; gap: var(--ct-space-2); }
.ct-front__list li::before { content: ""; width: 10px; height: 10px; margin-top: .55em; border-radius: 3px; background: var(--ct-red-500); }
.ct-front--inss .ct-front__list li::before { background: var(--ct-indigo-500); }

/* Card de situação com foto [v2]: foto real + texto FORA da foto */
.ct-situation { display: grid; gap: var(--ct-space-3); text-decoration: none; color: inherit; }
.ct-situation__img { aspect-ratio: 4 / 3; max-width: 100%; width: 100%; object-fit: cover; border-radius: var(--ct-radius-lg); }
.ct-situation__title { font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: var(--ct-fs-body-l); color: var(--ct-text-heading); line-height: 1.3; }
.ct-situation__text { font-size: var(--ct-fs-body-s); color: var(--ct-text-muted); }
.ct-situation:hover .ct-situation__title { text-decoration: underline; text-underline-offset: 4px; }

/* ---------- Escolha grande (rádio em card) [novo] ------------------------ */
.ct-choice-group { display: grid; gap: var(--ct-space-3); border: 0; padding: 0; margin: 0; }
.ct-choice {
  position: relative;
  display: flex; align-items: center; gap: var(--ct-space-4);
  min-height: var(--ct-control-h);
  padding: var(--ct-space-3) var(--ct-space-5);
  border: 2px solid var(--ct-border-input);
  border-radius: var(--ct-radius-md);
  background: var(--ct-surface);
  font-size: var(--ct-fs-body);
  font-weight: var(--ct-weight-semi);
  cursor: pointer;
  transition: border-color var(--ct-duration-fast), background-color var(--ct-duration-fast);
}
.ct-choice input { position: absolute; opacity: 0; inset: 0; cursor: pointer; margin: 0; }
.ct-choice__mark { flex: none; width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--ct-border-input); display: grid; place-items: center; background: var(--ct-surface); }
.ct-choice:hover { border-color: var(--ct-indigo-500); background: var(--ct-indigo-50); }
.ct-choice:has(input:checked) { border-color: var(--ct-indigo-500); background: var(--ct-indigo-50); }
.ct-choice:has(input:checked) .ct-choice__mark { border-color: var(--ct-indigo-500); background: radial-gradient(circle, var(--ct-indigo-500) 0 6px, transparent 7px); }
.ct-choice:has(input:focus-visible) { outline: 3px solid var(--ct-focus-ring); outline-offset: 3px; }
.ct-choice__hint { display: block; font-weight: var(--ct-weight-regular); font-size: var(--ct-fs-body-s); color: var(--ct-text-muted); }

/* ---------- Verificador de direitos [novo] -------------------------------
   Uma pergunta por tela · Sim / Não / Não sei · pode sair a qualquer momento */
.ct-checker { display: grid; gap: var(--ct-space-6); padding: var(--ct-card-pad); background: var(--ct-surface); border-radius: var(--ct-radius-xl); box-shadow: var(--ct-shadow-raised); }
.ct-checker__top { display: flex; justify-content: space-between; align-items: center; gap: var(--ct-space-4); font-family: var(--ct-font-ui); font-size: var(--ct-fs-caption); color: var(--ct-text-subtle); }
.ct-checker__progress { height: 8px; border-radius: var(--ct-radius-pill); background: var(--ct-surface-sunken); overflow: hidden; }
.ct-checker__progress > span { display: block; height: 100%; background: var(--ct-indigo-500); border-radius: inherit; transition: width var(--ct-duration-slow) var(--ct-ease); }
.ct-checker__q { font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: var(--ct-fs-title-m); line-height: var(--ct-lh-title); color: var(--ct-text); margin: 0; text-wrap: balance; }
.ct-checker__why { font-size: var(--ct-fs-body-s); color: var(--ct-text-muted); }
.ct-checker__nav { display: flex; flex-wrap: wrap; gap: var(--ct-space-3); justify-content: space-between; align-items: center; }
.ct-result { display: grid; gap: var(--ct-space-3); padding: var(--ct-space-4) var(--ct-space-5); border-radius: var(--ct-radius-md); background: var(--ct-surface-subtle); border-left: 5px solid var(--ct-indigo-500); }
.ct-result--seguro { border-left-color: var(--ct-red-500); }
.ct-result__title { font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: var(--ct-fs-body-l); margin: 0; }

/* ---------- "A Contato nunca…" (antigolpe) [novo] ------------------------ */
.ct-never { display: grid; gap: var(--ct-space-4); padding: var(--ct-card-pad); border-radius: var(--ct-radius-lg); background: var(--ct-surface); border: 2px solid var(--ct-text); }
.ct-never__title { display: flex; align-items: center; gap: var(--ct-space-3); font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: var(--ct-fs-title-m); margin: 0; }
.ct-never__title svg { width: 32px; height: 32px; flex: none; fill: var(--ct-danger); }
.ct-never__list { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--ct-space-3); }
.ct-never__list li { display: grid; grid-template-columns: 32px 1fr; gap: var(--ct-space-3); align-items: start; font-size: var(--ct-fs-body); }
.ct-never__list li::before { content: "✕"; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--ct-danger-bg); color: var(--ct-danger); font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: .875rem; }

/* Canais oficiais [novo] */
.ct-official { display: grid; gap: 0; border: 1px solid var(--ct-border); border-radius: var(--ct-radius-lg); overflow: hidden; background: var(--ct-surface); }
.ct-official__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--ct-space-4); align-items: center; padding: var(--ct-space-4) var(--ct-space-5); border-bottom: 1px solid var(--ct-border); }
.ct-official__row:last-child { border-bottom: 0; }
.ct-official__label { font-family: var(--ct-font-ui); font-size: var(--ct-fs-caption); color: var(--ct-text-subtle); display: block; }
.ct-official__value { font-weight: var(--ct-weight-semi); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.ct-verified { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: var(--ct-radius-pill); background: var(--ct-success-bg); color: var(--ct-success); font-family: var(--ct-font-ui); font-size: var(--ct-fs-caption); font-weight: var(--ct-weight-semi); white-space: nowrap; }

/* ---------- Transparência de custo [novo] -------------------------------- */
.ct-cost { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-radius: var(--ct-radius-lg); overflow: hidden; border: 1px solid var(--ct-border); }
.ct-cost__col { padding: var(--ct-card-pad); display: grid; gap: var(--ct-space-3); align-content: start; }
.ct-cost__col--free { background: var(--ct-surface-subtle); }
.ct-cost__col--us { background: var(--ct-surface); border-left: 1px solid var(--ct-border); }
.ct-cost__label { font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: var(--ct-fs-body-l); margin: 0; }
.ct-cost__price { font-family: var(--ct-font-display); font-weight: var(--ct-weight-black); font-size: var(--ct-fs-display-m); line-height: 1; color: var(--ct-text-heading); }
@media (max-width: 640px) { .ct-cost { grid-template-columns: 1fr; } .ct-cost__col--us { border-left: 0; border-top: 1px solid var(--ct-border); } }

/* ---------- Linha do tempo [novo] ---------------------------------------- */
.ct-timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: ct-t; }
.ct-timeline__item { position: relative; display: grid; grid-template-columns: 48px 1fr; gap: var(--ct-space-4); padding-bottom: var(--ct-space-6); counter-increment: ct-t; }
.ct-timeline__item::before {
  content: counter(ct-t);
  display: grid; place-items: center; width: 44px; height: 44px;
  border-radius: var(--ct-radius-md);
  background: var(--ct-indigo-500); color: #fff;
  font-family: var(--ct-font-display); font-weight: var(--ct-weight-black); font-size: 1.125rem;
  z-index: 1;
}
.ct-timeline__item::after { content: ""; position: absolute; left: 21px; top: 44px; bottom: 0; width: 2px; background: var(--ct-border); }
.ct-timeline__item:last-child { padding-bottom: 0; }
.ct-timeline__item:last-child::after { display: none; }
.ct-timeline__title { font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: var(--ct-fs-body-l); line-height: 1.3; }
.ct-timeline__when { display: inline-block; margin-top: var(--ct-space-1); font-family: var(--ct-font-ui); font-size: var(--ct-fs-caption); font-weight: var(--ct-weight-semi); color: var(--ct-text-heading); background: var(--ct-info-bg); padding: 2px 10px; border-radius: var(--ct-radius-pill); }
.ct-timeline__text { color: var(--ct-text-muted); font-size: var(--ct-fs-body-s); margin-top: var(--ct-space-2); }

/* ---------- Pessoa / atendente [novo] ------------------------------------ */
.ct-person { display: grid; grid-template-columns: auto 1fr; gap: var(--ct-space-4); align-items: center; }
.ct-person__photo { width: 88px; height: 88px; border-radius: var(--ct-radius-xl); object-fit: cover; background: var(--ct-surface-sunken); display: grid; place-items: center; font-family: var(--ct-font-display); font-weight: var(--ct-weight-black); font-size: 1.75rem; color: var(--ct-text-heading); }
.ct-person__name { font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: var(--ct-fs-body-l); line-height: 1.2; }
.ct-person__role { font-size: var(--ct-fs-body-s); color: var(--ct-text-muted); }

/* ---------- Equipe em avatares [novo] -----------------------------------
   Círculos sobrepostos com fotos reais. O anel usa a cor do fundo da seção:
   defina --ct-avatars-ring no contêiner quando o fundo não for branco. */
.ct-avatars { display: flex; align-items: center; margin: 0; padding: 0 0 0 16px; list-style: none; }
.ct-avatars li { margin-left: -16px; }
.ct-avatars img { display: block; width: 64px; height: 64px; border-radius: 50%; object-fit: cover; background: var(--ct-surface-sunken); border: 3px solid var(--ct-avatars-ring, var(--ct-surface)); box-shadow: var(--ct-shadow-card); transition: transform var(--ct-duration-base) var(--ct-ease); }
.ct-avatars li:hover img { transform: translateY(-4px); }
.ct-avatars--lg img { width: 80px; height: 80px; }
.ct-team { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ct-space-4) var(--ct-space-6); }
.ct-team__text { margin: 0; max-width: 30ch; font-family: var(--ct-font-ui); font-weight: var(--ct-weight-semi); font-size: var(--ct-fs-body-l); line-height: 1.35; color: var(--ct-text); }

/* ---------- Conversa no WhatsApp [novo] ---------------------------------- */
.ct-chat { display: grid; gap: var(--ct-space-3); padding: var(--ct-space-5); border-radius: var(--ct-radius-lg); background: #ECE5DD; font-family: var(--ct-font-ui); font-size: var(--ct-fs-body-s); color: #111B21; }
.ct-chat__head { display: flex; align-items: center; gap: var(--ct-space-3); padding-bottom: var(--ct-space-3); border-bottom: 1px solid rgba(0,0,0,.08); }
.ct-chat__avatar { width: 40px; height: 40px; border-radius: 50%; background: #fff; display: grid; place-items: center; overflow: hidden; }
.ct-chat__avatar img { width: 36px; }
.ct-chat__name { font-weight: var(--ct-weight-semi); display: flex; align-items: center; gap: 6px; }
.ct-chat__name svg { width: 16px; height: 16px; fill: #1D9BF0; }
.ct-chat__bubble { max-width: 85%; padding: var(--ct-space-2) var(--ct-space-3); border-radius: 10px; background: #fff; box-shadow: 0 1px 1px rgba(0,0,0,.08); line-height: 1.45; }
.ct-chat__bubble--out { justify-self: end; background: #D9FDD3; }
.ct-chat__meta { display: block; font-size: .75rem; color: #54656F; margin-top: 2px; }
.ct-chat__ai { display: inline-flex; align-items: center; gap: 6px; justify-self: center; padding: 3px 10px; border-radius: var(--ct-radius-pill); background: #FFF3C4; color: #5B4600; font-size: .75rem; font-weight: var(--ct-weight-semi); }
.ct-chat__replies { display: flex; flex-wrap: wrap; gap: var(--ct-space-2); }
.ct-chat__reply { min-height: 44px; padding: 0 var(--ct-space-4); border-radius: var(--ct-radius-pill); border: 1px solid #00A884; color: #007A62; background: #fff; font: inherit; font-weight: var(--ct-weight-semi); cursor: pointer; }

/* ---------- Explicação em áudio [novo] ----------------------------------- */
.ct-audio { display: grid; gap: var(--ct-space-3); padding: var(--ct-space-4) var(--ct-space-5); border-radius: var(--ct-radius-lg); background: var(--ct-surface-institutional-soft); }
.ct-audio__row { display: flex; align-items: center; gap: var(--ct-space-4); }
.ct-audio__play { flex: none; width: 56px; height: 56px; border-radius: 50%; border: 0; background: var(--ct-indigo-500); color: #fff; display: grid; place-items: center; cursor: pointer; }
.ct-audio__play svg { width: 22px; height: 22px; fill: currentColor; margin-left: 3px; }
.ct-audio__title { font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); line-height: 1.3; }
.ct-audio__wave { height: 28px; flex: 1; background: repeating-linear-gradient(90deg, var(--ct-indigo-300) 0 3px, transparent 3px 7px); mask: linear-gradient(0deg, #000 30%, transparent 30% 70%, #000 70%); opacity: .9; border-radius: 4px; }
.ct-audio details summary { cursor: pointer; font-family: var(--ct-font-ui); font-weight: var(--ct-weight-semi); color: var(--ct-text-link); min-height: var(--ct-target-min); display: flex; align-items: center; }

/* ---------- Depoimento [v2] ---------------------------------------------- */
.ct-testimonial { display: grid; gap: var(--ct-space-4); padding: var(--ct-card-pad); border-radius: var(--ct-radius-lg); background: var(--ct-surface-warm); }
.ct-testimonial__quote { margin: 0; font-size: var(--ct-fs-body-l); line-height: 1.5; }
.ct-testimonial__video { position: relative; aspect-ratio: 9 / 16; max-width: 100%; max-height: 420px; border-radius: var(--ct-radius-lg); overflow: hidden; background: var(--ct-neutral-800); }
.ct-testimonial__video img { width: 100%; height: 100%; object-fit: cover; }
.ct-testimonial__caption { position: absolute; left: 12px; right: 12px; bottom: 16px; padding: 6px 10px; border-radius: 8px; background: rgba(0,0,0,.72); color: #fff; font-family: var(--ct-font-ui); font-size: .9375rem; font-weight: var(--ct-weight-semi); line-height: 1.35; text-align: center; }

/* Avaliação [v2]
   .ct-stars mostra nota fracionada (--nota: 4.5 → 4 estrelas e meia).
   .ct-rating--badge = selo com fundo, para usar sobre foto ou como destaque. */
.ct-stars { position: relative; display: inline-block; width: max-content; justify-self: start; font-size: 1.25rem; line-height: 1; letter-spacing: 0; white-space: nowrap; color: var(--ct-star-empty); }
.ct-stars::before { content: "★★★★★"; }
.ct-stars::after { content: "★★★★★"; position: absolute; top: 0; left: 0; bottom: 0; width: calc(var(--nota, 5) / 5 * 100%); overflow: hidden; color: var(--ct-star); }
.ct-rating { display: inline-flex; align-items: center; gap: var(--ct-space-3); font-family: var(--ct-font-ui); }
.ct-rating__score { font-weight: var(--ct-weight-heavy); font-size: 2rem; line-height: 1; color: var(--ct-text-heading); font-variant-numeric: tabular-nums; }
.ct-rating__body { display: grid; gap: 4px; }
.ct-rating__meta { font-size: var(--ct-fs-caption); color: var(--ct-text-subtle); }
.ct-rating--badge { --ct-star-empty: rgba(255, 255, 255, .3); padding: var(--ct-space-3) var(--ct-space-5); border-radius: var(--ct-radius-lg); background: var(--ct-surface-inverse); color: var(--ct-text-inverse); box-shadow: var(--ct-shadow-raised); }
.ct-rating--badge .ct-rating__score { color: var(--ct-text-inverse); }
.ct-rating--badge .ct-rating__meta { color: var(--ct-indigo-100); }
.ct-rating--badge a { color: inherit; }

/* Texto só para leitor de tela */
.ct-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- FAQ [v2]: alvos maiores, pergunta em 18/600 ------------------ */
.ct-faq { border-top: 1px solid var(--ct-border-strong); }
.ct-faq__item { border-bottom: 1px solid var(--ct-border-strong); }
.ct-faq__q { display: flex; align-items: center; justify-content: space-between; gap: var(--ct-space-4); min-height: 64px; padding: var(--ct-space-4) 0; font-weight: var(--ct-weight-semi); font-size: var(--ct-fs-body); cursor: pointer; list-style: none; }
.ct-faq__q::-webkit-details-marker { display: none; }
.ct-faq__q::after { content: ""; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--ct-info-bg) center/14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M6 0h2v14H6zM0 6h14v2H0z' fill='%233E4095'/%3E%3C/svg%3E"); transition: transform var(--ct-duration-base) var(--ct-ease); }
.ct-faq__item[open] .ct-faq__q { color: var(--ct-text-heading); }
.ct-faq__item[open] .ct-faq__q::after { transform: rotate(45deg); }
.ct-faq__a { padding-bottom: var(--ct-space-6); color: var(--ct-text-muted); max-width: var(--ct-measure); }

/* ---------- Unidade [v2]: com botão "Como chegar" ------------------------ */
.ct-unit { display: grid; gap: var(--ct-space-3); padding: var(--ct-card-pad); border: 1px solid var(--ct-border); border-radius: var(--ct-radius-lg); background: var(--ct-surface); }
.ct-unit__city { font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: var(--ct-fs-body-l); color: var(--ct-text-heading); }
.ct-unit__address { font-size: var(--ct-fs-body-s); color: var(--ct-text-muted); font-style: normal; }

/* ---------- Formulário [v2] ---------------------------------------------- */
.ct-field { display: grid; gap: var(--ct-space-2); }
.ct-field__label { font-family: var(--ct-font-ui); font-weight: var(--ct-weight-semi); font-size: var(--ct-fs-body-s); }
.ct-field__why { font-size: var(--ct-fs-caption); color: var(--ct-text-subtle); font-family: var(--ct-font-ui); }
.ct-field__input { min-height: var(--ct-control-h); padding: 0 var(--ct-space-4); font: var(--ct-weight-regular) var(--ct-fs-body)/1.4 var(--ct-font-body); color: var(--ct-text); background: var(--ct-surface); border: 2px solid var(--ct-border-input); border-radius: var(--ct-radius-sm); }
.ct-field__input:focus { outline: 3px solid var(--ct-focus-ring); outline-offset: 2px; }
.ct-field__error { display: flex; gap: var(--ct-space-2); font-family: var(--ct-font-ui); font-size: var(--ct-fs-caption); font-weight: var(--ct-weight-semi); color: var(--ct-danger); }
.ct-field--error .ct-field__input { border-color: var(--ct-danger); }

/* ---------- Aviso [v2] --------------------------------------------------- */
.ct-notice { display: grid; grid-template-columns: auto 1fr; gap: var(--ct-space-3); padding: var(--ct-space-4) var(--ct-space-5); border-radius: var(--ct-radius-md); background: var(--ct-info-bg); font-size: var(--ct-fs-body-s); line-height: 1.55; }
.ct-notice__icon { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ct-info); color: #fff; font-family: var(--ct-font-ui); font-weight: var(--ct-weight-heavy); font-size: .875rem; }
.ct-notice--warning { background: var(--ct-warning-bg); }
.ct-notice--warning .ct-notice__icon { background: var(--ct-warning); }

.ct-chip { display: inline-flex; align-items: center; gap: var(--ct-space-2); min-height: 32px; padding: 0 var(--ct-space-3); border-radius: var(--ct-radius-pill); font-family: var(--ct-font-ui); font-size: var(--ct-fs-caption); font-weight: var(--ct-weight-semi); background: var(--ct-info-bg); color: var(--ct-text-heading); }
.ct-chip--seguro { background: var(--ct-danger-bg); color: var(--ct-text-accent); }

/* ---------- Seletor de leitura [novo] ------------------------------------ */
.ct-reading { display: inline-flex; flex-wrap: wrap; gap: var(--ct-space-2); align-items: center; font-family: var(--ct-font-ui); font-size: var(--ct-fs-caption); }
.ct-reading button { min-height: 40px; min-width: 44px; padding: 0 var(--ct-space-3); border-radius: var(--ct-radius-pill); border: 1.5px solid var(--ct-border-input); background: var(--ct-surface); color: var(--ct-text); font: inherit; font-weight: var(--ct-weight-semi); cursor: pointer; }
.ct-reading button[aria-pressed="true"] { background: var(--ct-text); color: var(--ct-bg); border-color: var(--ct-text); }

/* ---------- Rodapé [v2]: sólido, com canais oficiais --------------------- */
.ct-footer { background: var(--ct-surface-inverse); color: var(--ct-text-inverse); padding-block: var(--ct-space-16) var(--ct-space-8); font-family: var(--ct-font-ui); }
.ct-footer a { color: inherit; }
.ct-footer__legal { font-size: var(--ct-fs-caption); opacity: .9; }

@media (prefers-reduced-motion: reduce) {
  .ct-btn, .ct-choice, .ct-faq__q::after, .ct-checker__progress > span { transition: none; }
}
