/* R29: página "Revisar" mais simples — prévia + ação principal; o resto em "Personalizar (opcional)". */
.r29-review { font-size: 1.0625rem; line-height: 1.5; }
.r29-review .hint, .r29-review .field label, .r29-review label, .r29-review small { font-size: max(1rem, 16px); }
.r29-review .hint { color: #4f4a42; }
.r29-review .kicker { font-size: 1rem; color: #5c4a2e; }
.r29-review .r29-head h1 { font-size: clamp(1.9rem, 6vw, 2.6rem); margin-bottom: 6px; }
.r29-review .r29-head .lede { font-size: 1.15rem; color: #2f2a24; margin: 0; }
.r29-review .r29-head { margin-bottom: 8px; }

/* Ação principal grande. */
.r29-cta { margin: 18px 0 8px; }
.r29-review .btn-r29-main,
.r29-review .review-bar .btn {
  min-height: 56px; font-size: 1.125rem; font-weight: 700; padding: 12px 24px;
}
.r29-review .btn-r29-main { width: 100%; justify-content: center; }
.r29-review .btn-r29-main:focus-visible, .r29-review .review-bar .btn:focus-visible,
.customize-summary:focus-visible { outline: 3px solid #1f4fbf; outline-offset: 3px; }

/* Barra fixa no rodapé em todas as larguras, respeitando a safe-area. */
.r29-review .preview-submit .review-bar {
  position: fixed; z-index: 30; left: 0; right: 0; bottom: 0; margin: 0;
  display: flex; align-items: center; justify-content: flex-end; gap: 12px; flex-wrap: nowrap;
  padding: 10px max(14px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));
  background: rgba(253, 250, 246, .98); border-top: 1px solid var(--line);
  box-shadow: 0 -10px 30px rgba(40, 24, 12, .12);
}
.r29-review .review-bar-info { display: grid; margin: 0; min-width: 0; flex: 1 1 auto; line-height: 1.2; max-width: 640px; }
.r29-review .review-bar-label { font-size: 1rem; color: #4f4a42; }
.r29-review .review-bar-total { font-size: 1.25rem; color: var(--ink); white-space: nowrap; }
.r29-review .review-bar-info small { font-size: 1rem; color: #4f4a42; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.r29-has-bar { padding-bottom: calc(var(--r29-bar-h, 80px) + 12px); }
body.r29-has-bar .toasts { bottom: calc(var(--r29-bar-h, 80px) + 12px); }

/* Prévia sempre visível; botão só esconde se a pessoa quiser. */
.r29-review .layout-live { margin-top: 12px; }
.r29-review .preview-toggle { display: inline-flex; justify-content: center; min-height: 44px; width: 100%; margin: 4px 0 12px; font-size: 1rem; }
.r29-review .preview-jump { display: none; }

/* Bloco recolhido "Personalizar (opcional)". */
.customize { margin: 14px 0 0; border: 1px solid var(--line, #e2d8c8); border-radius: 16px; background: #fffdf9; }
.customize-summary {
  list-style: none; cursor: pointer; min-height: 56px; padding: 14px 52px 14px 18px; position: relative;
  display: grid; gap: 2px; border-radius: 16px;
}
.customize-summary::-webkit-details-marker { display: none; }
.customize-summary::after {
  content: ""; position: absolute; right: 22px; top: 50%; width: 12px; height: 12px; margin-top: -9px;
  border-right: 3px solid #3a2f22; border-bottom: 3px solid #3a2f22; transform: rotate(45deg); transition: transform .15s;
}
.customize[open] > .customize-summary::after { transform: rotate(-135deg); margin-top: -3px; }
.customize-title { font-size: 1.2rem; font-weight: 700; color: #1f1a14; }
.customize-hint { font-size: 1rem; color: #4f4a42; }
.customize-body { padding: 4px 16px 18px; }
.customize-sec + .customize-sec { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line, #e2d8c8); }
.customize-sec-title { font-size: 1.3rem; margin: 6px 0 10px; }
.customize .layout-picker { margin-top: 0; }

/* Alvos de toque >= 44px dentro da página. */
.r29-review input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]),
.r29-review select, .r29-review .btn, .r29-review textarea { min-height: 44px; font-size: max(1rem, 16px); }
.r29-review .palette-swatch, .r29-review .layout-card { min-height: 44px; }
.r29-review .discard-form .btn { min-height: 44px; }

/* Sem rolagem lateral em 360/390. */
.r29-review, .r29-review * { min-width: 0; }
.r29-review { overflow-wrap: anywhere; }
.r29-review .preview-doc { max-width: 100%; overflow-x: auto; }

@media (min-width: 1180px) {
  .page-wrap.preview-layout.r29-review {
    grid-template-areas: "journey journey" "notice notice" "head live" "cta live" "form live" "submit live";
    grid-template-rows: auto auto auto auto auto 1fr;
  }
  .r29-review > .r29-head { grid-area: head; }
  .r29-review > .r29-cta { grid-area: cta; }
  .r29-review > .layout-live { margin-top: 0; }
  .r29-review .preview-toggle { display: none; }
}
@media (max-width: 1179px) {
  .r29-review .review-bar .btn { flex: 0 1 auto; padding-left: 16px; padding-right: 16px; }
}
@media (max-width: 400px) {
  .r29-review .review-bar .btn { font-size: 1.125rem; padding-left: 14px; padding-right: 14px; }
  .customize-body { padding: 4px 10px 14px; }
}

/* R29b: especificidade acima das regras antigas da barra/botões. */
.r29-review .btn.btn-r29-main,
.r29-review .preview-submit .review-bar .btn.btn-gold {
  min-height: 56px; font-size: 1.125rem; font-weight: 700;
}
.r29-review .journey-label, .r29-review .journey-dot { font-size: 1rem; }
.r29-review .layout-card > span, .r29-review .layout-card em { font-size: 1rem; }
.r29-review .opt-switch { width: 72px; height: 44px; }
.r29-review .opt-switch span { top: 4px; left: 4px; width: 34px; height: 34px; }
.r29-review .opt-switch[aria-checked="true"] span { transform: translateX(28px); }
/* Texto mínimo de 16px em tudo que a pessoa lê/toca nesta página (a prévia do papel fica como o PDF). */
.r29-review .customize :is(span, button, b, em, small, label, p, a, strong, legend, td, th, li),
.r29-review .review-bar :is(span, b, small) { font-size: max(1rem, 1em); }
