:root {
    --ink: #173b68;
    --muted: #5e6f84;
    --brand: #2463ad;
    --brand-dark: #164f91;
    --orange: #ff6900;
    --green: #218600;
    --cream: #f4f8fd;
    --white: #fff;
    --line: #d9ded9;
    font-family: "Aptos", "Segoe UI", ui-sans-serif, system-ui, -apple-system, sans-serif;
    color: var(--ink);
    background: radial-gradient(circle at 8% 8%, #fff4e9 0, transparent 28%), var(--cream);
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; }

.page-shell {
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto;
    min-height: 100vh;
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: clamp(40px, 7vw, 96px);
    align-items: center;
    padding: 64px 0;
}

.intro { max-width: 430px; }
.brand-logo { display: block; width: min(100%, 380px); height: auto; margin-bottom: 42px; }
.eyebrow, .step { color: var(--orange); font-size: .77rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
h1 { font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif; font-size: clamp(3.5rem, 7vw, 6rem); font-weight: 600; line-height: .93; letter-spacing: -.055em; margin: 20px 0 28px; text-wrap: balance; }
.intro > p { color: var(--muted); font-size: 1.08rem; line-height: 1.75; }
.trust-note { display: flex; gap: 10px; margin-top: 36px; color: #445048; font-size: .9rem; }
.trust-note span { color: var(--green); font-weight: 900; }

.form-card { background: var(--white); border-radius: 24px; border-top: 5px solid var(--orange); padding: clamp(26px, 5vw, 52px); box-shadow: 0 24px 70px rgba(36, 99, 173, .13); }
.form-heading { margin-bottom: 30px; }
.step { margin: 0 0 8px; }
h2 { font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif; font-size: clamp(2rem, 4vw, 2.6rem); line-height: 1.05; letter-spacing: -.025em; font-weight: 600; margin: 0; }
.form-intro { color: var(--muted); margin: 10px 0 0; font-size: .91rem; }
.grid { display: grid; gap: 22px; }
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
label { display: grid; gap: 8px; color: #2f4560; font-size: .82rem; font-weight: 700; letter-spacing: .015em; }
.field-label { display: inline-flex; align-items: baseline; gap: 4px; width: fit-content; color: #2f4560; white-space: nowrap; }
.field-label > span { color: #b74434; }
input, select, textarea { width: 100%; min-height: 48px; border: 1px solid #cfdae6; border-radius: 10px; background: #fbfdff; color: var(--ink); padding: 13px 14px; font: inherit; font-size: .96rem; font-weight: 400; letter-spacing: 0; outline: none; transition: border-color .2s, box-shadow .2s, background .2s; }
input:focus, select:focus, textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(36, 99, 173, .12); }
.full-width { grid-column: 1 / -1; }
.payment-summary { margin: 30px 0 24px; padding: 20px; border: 1px solid #d8e4f1; border-radius: 14px; background: #f7faff; }
.payment-summary div { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 8px 0; color: var(--muted); font-size: .9rem; }
.payment-summary strong { color: var(--ink); font-variant-numeric: tabular-nums; }
.payment-summary .summary-heading { padding-top: 0; color: var(--brand); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.payment-summary .total { border-top: 1px solid #d8e4f1; margin-top: 8px; padding-top: 16px; color: var(--ink); font-size: 1rem; }
.payment-summary .total strong { color: var(--brand); font-size: 1.2rem; }
.consent-control { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 14px; margin: 0 0 24px; padding: 16px; border: 1px solid #d8e4f1; border-radius: 12px; background: #fff; cursor: pointer; }
.consent-control input { position: absolute; width: 1px; height: 1px; min-height: 0; opacity: 0; pointer-events: none; }
.consent-control .toggle { position: relative; width: 44px; height: 24px; border-radius: 999px; background: #aebdca; transition: background .2s, box-shadow .2s; }
.consent-control .toggle::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(23, 59, 104, .25); transition: transform .2s; }
.consent-control input:checked + .toggle { background: var(--green); }
.consent-control input:checked + .toggle::after { transform: translateX(20px); }
.consent-control input:focus-visible + .toggle { box-shadow: 0 0 0 3px rgba(36, 99, 173, .2); }
.consent-copy { color: var(--muted); font-size: .82rem; font-weight: 500; line-height: 1.55; letter-spacing: 0; }
.consent-copy strong { color: var(--brand); }
.consent-copy em { display: block; color: #b74434; font-size: .72rem; font-style: normal; font-weight: 700; margin-top: 2px; }
button { width: 100%; min-height: 50px; border: 1px solid var(--brand); border-radius: 8px; background: var(--brand); color: var(--white); padding: 13px 18px; font: inherit; font-size: .94rem; font-weight: 700; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 9px; transition: background-color .15s, border-color .15s; }
button span { font-size: 1.08rem; font-weight: 500; line-height: 1; }
button:hover { background: var(--brand-dark); border-color: var(--brand-dark); }
button:focus-visible { outline: 3px solid rgba(36, 99, 173, .24); outline-offset: 3px; }
button:active { background: #123f75; border-color: #123f75; }
.fine-print { margin: 14px 0 0; color: #818981; text-align: center; font-size: .76rem; }
.alert { background: #fff1ef; border: 1px solid #efc6c0; color: #8b2f23; border-radius: 9px; padding: 14px 18px; margin-bottom: 24px; font-size: .87rem; }
.alert ul { margin: 8px 0 0; padding-left: 20px; }
.trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 820px) {
    .page-shell { grid-template-columns: 1fr; padding: 46px 0; gap: 36px; }
    .intro { max-width: 620px; }
    h1 { font-size: clamp(3.3rem, 15vw, 5.5rem); }
}

@media (max-width: 560px) {
    .page-shell { width: min(100% - 20px, 1120px); padding: 30px 0; }
    .grid.two { grid-template-columns: 1fr; }
    .form-card { border-radius: 16px; }
}
