.registration-terms {
    line-height: 1.7;
    overflow-wrap: anywhere;
}
.registration-submit {
    min-height: 44px;
    padding: .65rem 1rem;
    border-radius: .5rem;
    background: var(--fp-brand);
    color: #fff;
    font-weight: 600;
}
.registration-submit:hover:not(:disabled) { background: var(--fp-brand-deep); }
.registration-submit:focus-visible { outline: 3px solid #60a5fa; outline-offset: 3px; }
.registration-submit:disabled { background: #e2e8f0; color: #475569; cursor: not-allowed; }
.dark .registration-submit:disabled { background: #334155; color: #cbd5e1; }

.reg-page { max-width: 60rem; display: grid; gap: 1.75rem; }
.reg-page h1 { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 750; line-height: 1.3; }
.reg-page h2 { font-size: 1.2rem; font-weight: 700; line-height: 1.4; }
.reg-page p { line-height: 1.6; }
.reg-page section[id] { scroll-margin-top: 6rem; }
.reg-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-top: 1rem; }
.reg-actions a:not(.fp-btn), .reg-payment-help a { text-decoration: underline; text-underline-offset: .2em; }
.reg-actions .material-symbols-outlined { font-size: 1.1rem; vertical-align: middle; }
.reg-checklist > p { margin: .5rem 0 1rem; color: var(--fp-muted); }
.reg-checklist__steps { margin: 0; padding: 0; list-style: none; }
.reg-checklist__step { padding: .9rem 0; border-bottom: 1px solid var(--fp-line); }
.reg-checklist__heading { display: flex; align-items: center; gap: .75rem; }
.reg-checklist__heading h3 { min-width: 0; margin: 0; font-weight: 650; }
.reg-checklist__number { display: grid; place-items: center; flex: 0 0 1.75rem; height: 1.75rem; border-radius: 8px; background: var(--fp-raised); color: var(--fp-muted); font-variant-numeric: tabular-nums; }
.reg-checklist__step.is-current .reg-checklist__number { background: var(--fp-brand); color: #fff; }
.reg-checklist__step.is-done .reg-checklist__number { background: var(--fp-success-bg, #dcfce7); color: #166534; }
.reg-checklist__step.is-done { padding-block: .55rem; }
.reg-checklist__status { margin-left: auto; color: var(--fp-muted); font-size: .875rem; }
.reg-checklist__body { margin: .6rem 0 .25rem 2.5rem; max-width: 46rem; }
.reg-checklist__body p { margin: 0 0 .75rem; }
.reg-checklist__body iframe { max-width: 100%; }
.reg-phone-form { margin-top: 1rem; }
.reg-phone-form .phone-verification { margin: 0; padding: 0; border: 0; background: transparent; }
.reg-phone-form .phone-heading, .reg-phone-form [data-phone-help] { display: none; }
.reg-payment-help { padding-top: 1rem; border-top: 1px solid var(--fp-line); color: var(--fp-muted); font-size: .9375rem; }
.reg-payment-help p + p { margin-top: .5rem; }
.reg-public-terms, .reg-faq { scroll-margin-top: 6rem; }
.reg-public-terms > p { color: var(--fp-muted); margin: .25rem 0 .75rem; }
.reg-faq h2 { margin-bottom: .75rem; }
.reg-faq .fp-reg-fold + .fp-reg-fold { margin-top: .5rem; }
.reg-return-details { padding: 1.25rem 0; border-block: 1px solid var(--fp-line); }
.reg-return-details h2 { margin-bottom: 1rem; }
.season-invitation { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.75rem; padding: 1.5rem; border-radius: 16px; background: var(--fp-brand-deep); color: #fff; }
.season-invitation__copy { min-width: 0; }
.season-invitation h2 { margin: 0 0 .4rem; color: #fff; font-size: clamp(1.25rem, 2.5vw, 1.75rem); font-weight: 750; line-height: 1.3; }
.season-invitation p { margin: .35rem 0 0; color: #dbeafe; line-height: 1.5; }
.season-invitation .fp-btn { flex-shrink: 0; background: #fff; color: var(--fp-brand-deep); }
.season-invitation .fp-btn:hover { background: #dbeafe; }
@media (max-width: 639px) {
    .season-invitation { flex-direction: column; align-items: stretch; padding: 1.25rem; gap: 1rem; }
    .season-invitation .fp-btn { width: 100%; }
    .reg-checklist__body { margin-left: 0; padding-left: 0; }
    .reg-actions > .fp-btn { flex: 1 1 auto; }
    .reg-page .fp-reg-summary dl { grid-template-columns: 1fr; gap: .65rem; }
    .reg-page .fp-reg-summary dl > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
    .reg-page .fp-reg-summary dt { font-size: .9375rem; }
    .reg-page .fp-reg-summary dd { flex-shrink: 0; font-size: 1.375rem; }
    .reg-page .fp-reg-summary dl > div:last-child { border-top: 1px solid var(--fp-line); padding-top: .65rem; }
}
