/* Página "Monte o seu pacote": perguntas à esquerda, valor fixo à direita (celular: barra embaixo). */
.contratar { background: var(--papel); }
.ct-casca { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: 2rem; align-items: start; padding-block: 2rem 4rem; }
.ct-principal { min-width: 0; display: grid; gap: 1.25rem; }
.ct-principal > *, #ct-form > * { min-width: 0; }
.ct-cab h1 { font-family: var(--f-display); font-stretch: 115%; font-weight: 850; font-size: clamp(1.9rem, 5vw, 2.8rem); line-height: 1.05; margin: 0 0 0.5rem; text-wrap: balance; }
.ct-cab p { color: var(--aco); margin: 0 0 1rem; max-width: 60ch; }

.ct-etapas { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.35rem; overflow-x: auto; scrollbar-width: none; counter-reset: et; }
.ct-etapas::-webkit-scrollbar { display: none; }
.ct-etapas li { counter-increment: et; flex: none; font-size: 0.85rem; color: var(--aco); padding: 0.35rem 0.7rem 0.35rem 0.4rem; border-radius: 999px; border: 1px solid var(--linha); background: var(--superficie); display: flex; align-items: center; gap: 0.4rem; white-space: nowrap; }
.ct-etapas li::before { content: counter(et); display: grid; place-items: center; width: 1.35rem; height: 1.35rem; border-radius: 50%; background: var(--papel); font: 700 0.75rem/1 var(--f-texto); }
.ct-etapas li.feita::before { content: "✓"; background: var(--ok); color: var(--superficie); }
.ct-etapas li[aria-current] { color: var(--tinta); border-color: var(--tinta); font-weight: 600; }
.ct-etapas li[aria-current]::before { background: var(--sinal); color: var(--sinal-tinta); }

#ct-form { display: grid; gap: 1rem; }
.ct-bloco { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.4rem 1.4rem 1.6rem; display: grid; gap: 1.15rem; min-width: 0; }
.ct-bloco h2 { font-family: var(--f-display); font-stretch: 110%; font-weight: 800; font-size: 1.45rem; margin: 0; }
.ct-sub { color: var(--aco); margin: -0.6rem 0 0; font-size: 0.97rem; max-width: 62ch; }
.ct-q { display: grid; gap: 0.45rem; min-width: 0; }
.ct-q fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.ct-q legend, .ct-rotulo { font-weight: 600; font-size: 0.98rem; margin: 0 0 0.5rem; padding: 0; }
.ct-q label.ct-rotulo { margin-bottom: 0; }
.ct-q input[type="text"], .ct-q input[type="number"], .ct-q textarea {
  width: 100%; font: 400 1rem/1.4 var(--f-texto); color: var(--tinta); background: var(--papel);
  border: 1px solid var(--linha); border-radius: var(--raio); padding: 0.7rem 0.85rem; }
.ct-q input[type="number"] { max-width: 9rem; }
.ct-q textarea { resize: vertical; min-height: 5.5rem; }
.ct-q input:focus, .ct-q textarea:focus { outline: 2px solid var(--sinal); outline-offset: 1px; border-color: var(--tinta); }
.ct-info { margin: 0; font-size: 0.93rem; color: var(--aco); background: var(--papel); border-left: 3px solid var(--sinal); padding: 0.6rem 0.8rem; border-radius: 0 var(--raio) var(--raio) 0; }

.ct-modulos { display: grid; gap: 0.6rem; }
.ct-modulo { display: flex; gap: 0.85rem; align-items: flex-start; padding: 0.95rem 1rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--papel); cursor: pointer; transition: border-color 0.15s, background-color 0.15s; }
.ct-modulo:hover { border-color: var(--tinta); }
.ct-modulo input { width: 1.25rem; height: 1.25rem; margin-top: 0.15rem; accent-color: var(--tinta); flex: none; }
.ct-modulo:has(input:checked) { border-color: var(--tinta); background: var(--balao-ia); }
.ct-modulo:has(input:focus-visible) { outline: 3px solid var(--sinal); outline-offset: 2px; }
.ct-modulo-corpo { display: grid; gap: 0.2rem; min-width: 0; }
.ct-modulo-corpo strong { font-family: var(--f-display); font-stretch: 108%; font-size: 1.08rem; }
.ct-modulo-corpo span { color: var(--aco); font-size: 0.94rem; }
.ct-modulo-corpo small { font-weight: 600; font-size: 0.86rem; color: var(--tinta); font-variant-numeric: tabular-nums; }

.ct-sim { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.98rem; cursor: pointer; }
.ct-sim input { width: 1.2rem; height: 1.2rem; margin-top: 0.15rem; accent-color: var(--tinta); flex: none; }
.ct-sim b { margin-left: auto; white-space: nowrap; font-size: 0.9rem; font-variant-numeric: tabular-nums; }
.ct-confirma .ct-sim { background: var(--papel); border: 1px solid var(--linha); border-radius: var(--raio); padding: 0.8rem 0.9rem; font-size: 0.94rem; }
.ct-cores { display: flex; flex-wrap: wrap; gap: 0.8rem 1.2rem; align-items: center; }
.ct-cores > label:not(.ct-sim) { display: flex; gap: 0.5rem; align-items: center; font-size: 0.93rem; }
.ct-cores input[type="color"] { width: 2.6rem; height: 2.2rem; border: 1px solid var(--linha); border-radius: var(--raio); padding: 2px; background: var(--papel); cursor: pointer; }
.ct-bloco .grupo-tipo { display: contents; }
.ct-bloco .grupo-tipo[hidden] { display: none !important; }
.ct-bloco .subtitulo-campos { grid-column: 1 / -1; margin: 0.4rem 0 0; font-weight: 700; }
.ct-bloco .ajuda { font-weight: 400; color: var(--aco); font-size: 0.86rem; }
.ct-bloco .contrato-rolagem { max-height: 55vh; }
.ct-bloco .aceite input:disabled + span { color: var(--aco); }

.ct-navegacao { display: flex; gap: 0.75rem; justify-content: space-between; flex-wrap: wrap; }
.ct-navegacao #ct-avancar { margin-left: auto; min-width: 10rem; }
#ct-avancar[aria-disabled="true"] { opacity: 0.55; }
.ct-fim { border-color: var(--ok); }

.ct-resumo { position: sticky; top: calc(env(safe-area-inset-top, 0px) + 5rem); min-width: 0; }
.ct-resumo-caixa { background: var(--tinta); color: var(--papel); border-radius: var(--raio); padding: 1.25rem 1.3rem; }
.ct-resumo-alternar { display: none; }
.ct-resumo-corpo h2 { font-family: var(--f-display); font-stretch: 110%; font-size: 1.2rem; margin: 0 0 0.8rem; color: var(--sinal); }
.ct-itens { list-style: none; margin: 0 0 0.9rem; padding: 0; display: grid; gap: 0.6rem; }
.ct-itens li { display: flex; justify-content: space-between; gap: 0.8rem; font-size: 0.92rem; line-height: 1.35; }
.ct-itens li b { white-space: nowrap; font-variant-numeric: tabular-nums; }
.ct-itens li.vazio { opacity: 0.75; }
.ct-totais { margin: 0; display: grid; gap: 0.4rem; border-top: 1px solid color-mix(in srgb, var(--papel) 25%, transparent); padding-top: 0.8rem; }
.ct-totais div { display: flex; justify-content: space-between; gap: 0.8rem; font-size: 0.92rem; }
.ct-totais dt, .ct-totais dd { margin: 0; }
.ct-totais dd { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ct-totais .desc dd { color: var(--sinal); }
.ct-totais .total { font-family: var(--f-display); font-size: 1.3rem; font-weight: 800; }
.ct-nota { font-size: 0.84rem; opacity: 0.85; margin: 0.9rem 0 0; line-height: 1.45; }
.ct-aviso { opacity: 1; padding: 0.55rem 0.7rem; border-radius: 8px; background: color-mix(in srgb, var(--sinal) 18%, transparent); border-left: 3px solid var(--sinal); }
.ct-cupom { margin: 0.9rem 0 0; }
.ct-cupom label { display: block; font-size: 0.84rem; font-weight: 600; margin-bottom: 0.3rem; }
.ct-cupom-linha { display: flex; gap: 0.5rem; }
.ct-cupom-linha input { flex: 1; min-width: 0; padding: 0.5rem 0.6rem; border-radius: 8px; border: 1px solid color-mix(in srgb, var(--papel) 35%, transparent); background: transparent; color: inherit; font: inherit; text-transform: uppercase; }
.ct-cupom .estado { margin: 0.35rem 0 0; font-size: 0.82rem; min-height: 0; }
.ct-cupom .estado.ok { color: var(--sinal); }
/* No escuro, a caixa do resumo usa a superfície para não virar um bloco claro */
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ct-resumo-caixa { background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); } }
:root[data-theme="dark"] .ct-resumo-caixa { background: var(--superficie); color: var(--tinta); border: 1px solid var(--linha); }

@media (max-width: 900px) {
  .ct-casca { grid-template-columns: minmax(0, 1fr); padding-block: 1.25rem 7rem; }
  .ct-bloco { padding: 1.1rem 1rem 1.3rem; }
  .ct-resumo { position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 25; }
  .ct-resumo-caixa { border-radius: 14px 14px 0 0; padding: 0 16px calc(0.6rem + env(safe-area-inset-bottom, 0px)); box-shadow: 0 -6px 24px rgba(0, 0, 0, 0.18); }
  .ct-resumo-alternar { display: flex; width: 100%; justify-content: space-between; align-items: center; background: none; border: 0; color: inherit; font: 600 1rem var(--f-texto); padding: 0.85rem 0 0.25rem; cursor: pointer; }
  .ct-resumo-alternar strong { font-family: var(--f-display); font-size: 1.2rem; font-variant-numeric: tabular-nums; }
  .ct-resumo-alternar::after { content: "▴"; margin-left: 0.5rem; }
  .ct-resumo-alternar[aria-expanded="true"]::after { content: "▾"; }
  .ct-resumo-corpo { display: none; max-height: 55vh; overflow-y: auto; padding-bottom: 0.4rem; }
  .ct-resumo.aberto .ct-resumo-corpo { display: block; }
  .ct-resumo-corpo h2 { display: none; }
  .contratar .ajuda-abrir { bottom: calc(5.2rem + env(safe-area-inset-bottom, 0px)); }
  .contratar .ajuda-painel { bottom: calc(9.5rem + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) { .ct-modulo { transition: none; } }
.contratar:has(.ct-resumo.aberto) .ajuda-abrir { display: none; }
.ct-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem 0.9rem; }
.ct-link { display: grid; gap: 0.3rem; font-weight: 600; font-size: 0.93rem; min-width: 0; }
.ct-link input { width: 100%; font: 400 1rem/1.4 var(--f-texto); color: var(--tinta); background: var(--papel); border: 1px solid var(--linha); border-radius: var(--raio); padding: 0.65rem 0.8rem; }
.ct-link input:focus { outline: 2px solid var(--sinal); outline-offset: 1px; border-color: var(--tinta); }
.ct-ler-acoes { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: center; margin-top: 0.3rem; }
.ct-ler-acoes .estado { margin: 0; }
.ct-entendemos { background: var(--balao-ia); border: 1px solid var(--linha); border-radius: var(--raio); padding: 0.9rem 1rem; }
.ct-entendemos ul { margin: 0 0 0.6rem; padding-left: 1.1rem; display: grid; gap: 0.25rem; font-size: 0.95rem; }
.ct-entendemos .ct-sub { margin: 0; }
.ct-ia-titulo { margin: 0.4rem 0 -0.3rem; font-family: var(--f-display); font-weight: 800; font-size: 1.05rem; border-top: 1px solid var(--linha); padding-top: 1rem; }
@media (max-width: 560px) { .ct-links { grid-template-columns: 1fr; } }
.ct-popular { display: block; font-size: 0.72rem; font-weight: 600; opacity: 0.75; margin-top: 0.1rem; }
.ci-itens li, .ci-totais div { color: var(--tinta); }
.ci-totais { border-top-color: var(--linha); }

/* Passo a passo dentro do questionário (ex.: criar a conta do Google Ads) */
.ct-guia { display: grid; gap: 0.6rem; padding: 1rem 1.1rem; background: var(--papel); border: 1px solid var(--linha); border-radius: var(--raio); }
.ct-guia p { margin: 0; }
.ct-guia ol { margin: 0; padding-left: 1.3rem; display: grid; gap: 0.45rem; }
.ct-guia li { line-height: 1.5; }
