/* Contratação online — herda variáveis e tipografia do tema pax. */

.pax-ct { padding-top: 40px; }
.pax-ct__head h1 { font-size: clamp(28px, 4vw, 44px); }
.pax-ct__head .muted { max-width: 560px; margin-top: 10px; }

.pax-ct__steps { display: flex; gap: 10px; flex-wrap: wrap; list-style: none; padding: 0; margin: 28px 0; }
.pax-ct__steps li { padding: 8px 16px; border-radius: 999px; background: rgba(0,0,0,.05); color: #667; font-size: 14px; font-weight: 600; }
.pax-ct__steps li.is-active { background: var(--pax-primary, #0a7d5a); color: #fff; }

.pax-ct__alert { padding: 14px 18px; border-radius: 12px; margin-bottom: 20px; font-weight: 500; }
.pax-ct__alert.is-erro { background: #fdecea; color: #b3261e; }
.pax-ct__alert.is-ok { background: #e7f6ec; color: #0a7d3a; }

.pax-ct__panel { background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 18px; padding: 28px; box-shadow: 0 6px 24px rgba(0,0,0,.04); }
.pax-ct__sec { margin: 8px 0 16px; font-size: 18px; }
.pax-ct__deps .pax-ct__sec, .pax-ct__panel > .pax-ct__sec:not(:first-child) { margin-top: 28px; }

.pax-ct__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.pax-ct__col-2 { grid-column: 1 / -1; }
.pax-ct__field { display: flex; flex-direction: column; }
.pax-ct__field label { font-weight: 600; margin-bottom: 6px; font-size: 14px; }
.pax-ct__field input { padding: 12px 14px; border: 1px solid rgba(0,0,0,.14); border-radius: 10px; font-size: 16px; font-family: inherit; }
.pax-ct__field input:focus { outline: none; border-color: var(--pax-primary, #0a7d5a); box-shadow: 0 0 0 3px rgba(10,125,90,.12); }
.pax-ct__cep-status { font-size: 12px; color: #667; margin-top: 4px; min-height: 14px; }

.pax-ct__deps { margin-top: 8px; }
.pax-ct__dep-row { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; padding: 12px; background: rgba(0,0,0,.02); border-radius: 12px; }
.pax-ct__dep-grid { display: grid; grid-template-columns: 2fr 1.3fr 1.2fr 1.2fr; gap: 8px; flex: 1; }
.pax-ct__dep-grid input { padding: 10px 12px; border: 1px solid rgba(0,0,0,.14); border-radius: 8px; font-size: 15px; font-family: inherit; }
.pax-ct__dep-remove { width: 36px; height: 36px; border-radius: 8px; border: 0; background: #fdecea; color: #b3261e; font-size: 20px; cursor: pointer; flex-shrink: 0; }

.pax-ct__ciencia { display: flex; gap: 12px; align-items: flex-start; margin-top: 24px; padding: 16px; background: rgba(10,125,90,.05); border-radius: 12px; cursor: pointer; }
.pax-ct__ciencia input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }
.pax-ct__ciencia span { font-size: 14px; line-height: 1.5; }

.pax-ct__actions { margin-top: 28px; display: flex; justify-content: flex-end; }

.pax-ct__signbox { min-height: 200px; }
.pax-ct__iframe-wrap { margin-top: 18px; border-radius: 14px; overflow: hidden; }
.pax-ct__signed { text-align: center; padding: 40px 20px; }
.pax-ct__signed-badge { display: inline-block; padding: 10px 22px; border-radius: 999px; background: #e7f6ec; color: #0a7d3a; font-weight: 700; margin-bottom: 14px; }

@media (max-width: 720px) {
  .pax-ct__grid { grid-template-columns: 1fr; }
  .pax-ct__dep-grid { grid-template-columns: 1fr 1fr; }
  .pax-ct__panel { padding: 20px; }
}

/* Fallback de assinatura em nova aba (o iframe do ZapSign é recusado em
   contexto de terceiros — ver Configuração → Tela de assinatura). */
.pax-ct__fallback { text-align: center; padding: 36px 24px; }
.pax-ct__fallback-titulo { font-size: 20px; margin: 0 0 10px; }
.pax-ct__fallback p { max-width: 460px; margin: 0 auto 22px; color: #667; line-height: 1.55; }
.pax-ct__fallback .btn { display: inline-block; }
.pax-ct__fallback-espera { margin-top: 22px !important; font-size: 14px; display: flex;
  align-items: center; justify-content: center; gap: 9px; }
.pax-ct__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--pax-primary, #0a7d5a);
  animation: pax-ct-pulse 1.4s ease-in-out infinite; flex-shrink: 0; }
@keyframes pax-ct-pulse { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .pax-ct__dot { animation: none; opacity: .7; } }

.pax-ct__helper { margin-top: 14px; font-size: 14px; text-align: center; color: #667; }
.pax-ct__helper a { color: var(--pax-primary, #0a7d5a); font-weight: 600; }

.pax-ct__fallback-manual { margin-top: 14px !important; }
.pax-ct__link { background: none; border: 0; padding: 0; font: inherit; font-size: 14px;
  color: var(--pax-primary, #0a7d5a); font-weight: 600; text-decoration: underline; cursor: pointer; }
.pax-ct__link:disabled { opacity: .55; cursor: default; }

/* Painel exibido ABAIXO do iframe, como alternativa — o iframe continua ativo
   porque em navegadores que aceitam cookies de terceiros ele funciona. */
.pax-ct__fallback.is-complemento { padding: 24px 20px 8px; margin-top: 18px;
  border-top: 1px solid rgba(0,0,0,.08); }
.pax-ct__fallback.is-complemento .pax-ct__fallback-titulo { font-size: 17px; }

/* Resumo de preço — recalculado conforme dependentes entram e saem. */
.pax-ct__resumo { margin-top: 28px; padding: 18px 20px; border-radius: 12px;
  background: rgba(10,125,90,.05); border: 1px solid rgba(10,125,90,.14); }
.pax-ct__resumo-linha { display: flex; justify-content: space-between; align-items: baseline;
  gap: 16px; padding: 7px 0; font-size: 14px; color: #445; }
.pax-ct__resumo-linha strong { font-variant-numeric: tabular-nums; color: #12241f; }
.pax-ct__resumo-linha--destaque { border-top: 1px solid rgba(10,125,90,.16); margin-top: 4px;
  padding-top: 12px; font-size: 15px; }
.pax-ct__resumo-linha--destaque strong { font-size: 20px; color: var(--pax-primary, #0a7d5a); }

/* ---- etapa 3: pagamento ---- */
.pax-ct__opcoes { display: flex; flex-direction: column; gap: 10px; }
.pax-ct__opcao { display: flex; gap: 12px; align-items: flex-start; padding: 16px 18px;
  border: 1px solid rgba(0,0,0,.12); border-radius: 12px; cursor: pointer; transition: border-color .15s, background .15s; }
.pax-ct__opcao:hover { border-color: rgba(10,125,90,.4); }
.pax-ct__opcao input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }
.pax-ct__opcao span { display: flex; flex-direction: column; gap: 3px; }
.pax-ct__opcao strong { font-size: 15px; }
.pax-ct__opcao em { font-style: normal; font-size: 13.5px; color: #667; line-height: 1.45; }
.pax-ct__opcao:has(input:checked) { border-color: var(--pax-primary, #0a7d5a); background: rgba(10,125,90,.05); }

.pax-ct__subopcoes { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px;
  padding: 16px 18px; background: rgba(0,0,0,.02); border-radius: 12px; }
.pax-ct__subopcoes select { padding: 12px 14px; border: 1px solid rgba(0,0,0,.14);
  border-radius: 10px; font-size: 16px; font-family: inherit; background: #fff; }

.pax-ct__bloco { padding: 8px 0 26px; }
.pax-ct__bloco + .pax-ct__bloco { border-top: 1px solid rgba(0,0,0,.08); padding-top: 26px; }

.pax-ct__pix { display: flex; gap: 26px; align-items: flex-start; flex-wrap: wrap; }
.pax-ct__pix img { border: 1px solid rgba(0,0,0,.1); border-radius: 12px; background: #fff; flex-shrink: 0; }
.pax-ct__pix-lado { flex: 1; min-width: 260px; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.pax-ct__pix-lado textarea { width: 100%; padding: 12px 14px; border: 1px solid rgba(0,0,0,.14);
  border-radius: 10px; font-family: monospace; font-size: 12px; resize: vertical; background: #fafafa; }

@media (max-width: 720px) {
  .pax-ct__subopcoes { grid-template-columns: 1fr; }
  .pax-ct__pix { gap: 18px; }
}

/* Forma de pagamento na etapa 1 */
/* .pax-ct__field define display; sem isto o atributo hidden não esconde o bloco */
.pax-ct__pgobs[hidden], .pax-ct__dias-box[hidden] { display: none; }
.pax-ct__pglabel { margin: 18px 0 10px; font-weight: 600; font-size: 15px; }
.pax-ct__pgobs { margin-top: 12px; max-width: 520px; }
.pax-ct__dias-box { margin-top: 14px; }
.pax-ct__dias { display: flex; flex-wrap: wrap; gap: 10px; }
.pax-ct__dia { position: relative; }
.pax-ct__dia input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.pax-ct__dia span { display: inline-flex; align-items: center; justify-content: center; min-width: 64px; padding: 12px 16px;
  border: 1px solid rgba(0,0,0,.14); border-radius: 10px; font-weight: 600; font-size: 15px; background: #fff; }
.pax-ct__dia input:checked + span { border-color: var(--pax-primary, #0a7d5a); background: rgba(10,125,90,.08); color: var(--pax-primary, #0a7d5a); }
.pax-ct__dia input:focus-visible + span { outline: 2px solid var(--pax-primary, #0a7d5a); outline-offset: 2px; }

/* Parentesco em lista */
.pax-ct__dep-grid select { padding: 10px 12px; border: 1px solid rgba(0,0,0,.14); border-radius: 8px; font-size: 15px;
  font-family: inherit; background: #fff; }
.pax-ct__dep-grid input[hidden] { display: none; }
/* Campos de formulário têm largura mínima padrão (~220px): sem isto, no celular
   duas colunas não cabem e a página rola para o lado. */
.pax-ct__dep-grid { min-width: 0; }
.pax-ct__dep-grid > * { min-width: 0; width: 100%; box-sizing: border-box; }

/* Retomada e sem internet */
.pax-ct__aviso { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between;
  padding: 12px 16px; margin: 0 0 16px; border-radius: 10px; background: rgba(10,125,90,.07);
  border: 1px solid rgba(10,125,90,.25); font-size: 14.5px; }
.pax-ct__aviso[hidden] { display: none; }
.pax-ct__aviso--offline { background: #fff7e6; border-color: #f0c36d; }

/* Continuar em outro aparelho: confirmação ao abrir o link */
.pax-ct__retomar { max-width: 460px; margin: 6px auto 20px; background: #fff; border: 1px solid var(--pax-ink-100, #ecf2ef);
  border-radius: 22px; padding: 26px; box-shadow: 0 8px 24px -8px rgba(11,33,30,.12); box-sizing: border-box; }
.pax-ct__retomar-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .08em; color: var(--pax-teal-600, #11998a); text-transform: uppercase; }
.pax-ct__retomar-titulo { font-size: clamp(21px, 5vw, 24px); margin: 8px 0 6px; line-height: 1.2; }
.pax-ct__retomar-label { display: block; font-weight: 700; font-size: 14px; margin: 14px 0 6px; }
.pax-ct__retomar-input { display: block; width: 100%; box-sizing: border-box; height: 50px; border: 1.5px solid var(--pax-ink-200, #dde6e3);
  border-radius: 14px; padding: 0 14px; font-size: 18px; font-family: inherit; margin-bottom: 12px; }
.pax-ct__retomar-input:focus { border-color: var(--pax-teal-600, #11998a); outline: none; }
.pax-ct__retomar .btn { width: 100%; }
.pax-ct__retomar-erro { color: #a12626; background: #fdecec; border: 1px solid #f3b5b5; border-radius: 10px; padding: 10px 12px; font-size: 14px; margin: 0 0 12px; }
.pax-ct__retomar-erro[hidden], .pax-ct__retomar form[hidden] { display: none; }
.pax-ct__retomar-ajuda { font-size: 13px; color: var(--pax-ink-400, #8a9c97); margin: 16px 0 0; }
.pax-ct__retomar-ajuda a { color: #128c4a; font-weight: 700; }

/* Link e janela "Continuar em outro aparelho" */
.pax-ct__outro { text-align: center; margin: 18px 0 0; font-size: 14px; }
.pax-ct__outro[hidden] { display: none; }
.pax-ct__outro .pax-ct__link { color: var(--pax-teal-700, #0c7d70); font-weight: 700; text-decoration: underline; }
.pax-ct__modal { position: fixed; inset: 0; background: rgba(11,33,30,.55); display: flex; align-items: center; justify-content: center; z-index: 9999; padding: 16px; }
.pax-ct__modal[hidden] { display: none; }
.pax-ct__modal-caixa { background: #fff; border-radius: 22px; padding: 24px; width: 100%; max-width: 440px; box-sizing: border-box;
  box-shadow: 0 20px 50px rgba(0,0,0,.25); max-height: calc(100vh - 32px); overflow: auto; }
.pax-ct__modal-topo { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.pax-ct__modal-topo strong { font-family: var(--font-display, inherit); font-size: 20px; }
.pax-ct__modal-fechar { border: 0; background: none; font-size: 28px; line-height: 1; cursor: pointer; color: var(--pax-ink-500, #5d756f); }
.pax-ct__modal-caixa > p.muted { font-size: 14px; margin: 6px 0 12px; }
.pax-ct__qr { display: flex; justify-content: center; align-items: center; min-height: 200px; margin: 4px 0 8px; }
.pax-ct__qr svg { width: 200px; height: 200px; }
.pax-ct__qr-dica { font-size: 12px; color: var(--pax-ink-500, #5d756f); text-align: center; margin: 0 0 12px; }
.pax-ct__modal-acoes { display: flex; gap: 8px; }
.pax-ct__modal-acoes > * { flex: 1; justify-content: center; text-align: center; padding: 12px 14px; font-size: 15px; }
.pax-ct__btn-wa { background: #128c4a; color: #fff; border: 0; }
.pax-ct__btn-wa[aria-disabled="true"] { opacity: .5; pointer-events: none; }
.pax-ct__qr-rodape { font-size: 12px; color: var(--pax-ink-400, #8a9c97); margin: 12px 0 0; text-align: center; }
@media (max-width: 560px) {
  .pax-ct__modal { align-items: flex-end; padding: 0; }
  .pax-ct__modal-caixa { border-radius: 22px 22px 0 0; max-width: none; }
  .pax-ct__modal-acoes { flex-direction: column; }
}

/* Aviso do Pax Cuidado no resumo (o aceite do regulamento é no agendamento, cláusula 15.1) */
.pax-ct__pc { display: flex; gap: 10px; align-items: flex-start; margin: 12px 0 0; padding: 12px 14px; border-radius: 12px;
  background: #effdf9; border: 1px solid #a8efe0; font-size: 14px; color: #0c4641; }
.pax-ct__pc-i { flex: none; width: 22px; height: 22px; border-radius: 50%; background: #1ab09a; color: #fff; display: grid; place-items: center; font-weight: 800; }
.pax-ct__pc a { color: #0c7d70; font-weight: 700; text-decoration: underline; white-space: nowrap; }

/* Aviso de privacidade abaixo do botão da etapa 1 (LGPD) */
.pax-ct__privacidade { margin-top: 12px; font-size: 13px; color: var(--pax-ink-500, #5b6b68); text-align: center; }
.pax-ct__privacidade a { color: var(--pax-teal-700, #0c7d70); text-decoration: underline; }
