.wizard-page { min-height: 100dvh; background: #f7f6f2; }
.wizard-page .header-inner { grid-template-columns: 1fr auto; }
.wizard-home { color: #414b5f; font-size: 12px; font-weight: 750; text-decoration: none; }
.wizard-home:hover { text-decoration: underline; text-underline-offset: 4px; }
.wizard-shell { display: grid; grid-template-columns: minmax(0, .73fr) minmax(0, 1.27fr); align-items: start; gap: 8%; width: min(100% - 64px, 1180px); margin: 0 auto; padding: 76px 0 105px; }
.wizard-aside { position: sticky; top: 108px; padding-top: 36px; }
.wizard-aside h1 { max-width: 420px; margin: 20px 0 22px; font-size: clamp(49px, 5vw, 72px); line-height: 1.04; letter-spacing: -.075em; }
.wizard-aside>p:not(.eyebrow):not(.wizard-help) { max-width: 370px; margin: 0; color: #5d6678; font-size: 15px; line-height: 1.7; }
.wizard-offer { display: grid; gap: 5px; max-width: 370px; margin-top: 48px; padding: 22px 0; border-block: 1px solid #d9dce6; }
.wizard-offer span { color: #04246B; font-size: 10px; font-weight: 800; letter-spacing: .11em; }
.wizard-offer strong { margin-top: 7px; font-family: Fraunces, Georgia, serif; font-size: 41px; font-weight: 500; letter-spacing: -.06em; }
.wizard-offer small { color: #666f84; font-size: 11px; line-height: 1.5; }
.wizard-help { margin-top: 27px; color: #666f84; font-size: 12px; line-height: 1.6; }
.wizard-help strong { color: #1b2438; font-weight: 700; }
.wizard-content { min-width: 0; padding: clamp(27px, 3.4vw, 49px); border: 1px solid #dee1e9; background: #fffefa; box-shadow: 0 18px 50px rgba(27, 36, 56, .06); }
.wizard-progress { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding-bottom: 28px; margin-bottom: 35px; border-bottom: 1px solid #d9dde8; }
.wizard-progress span { display: grid; gap: 7px; color: #81899d; font-size: 11px; font-weight: 750; white-space: nowrap; }
.wizard-progress b { font-family: Fraunces, Georgia, serif; font-size: 21px; font-weight: 550; letter-spacing: -.05em; }
.wizard-progress span[aria-current="step"] { color: #015DF7; }
.wizard-step h2,.wizard-payment h2,.wizard-result h2 { max-width: 540px; margin: 16px 0 17px; font-size: clamp(37px, 3.9vw, 56px); line-height: 1.08; font-weight: 650; letter-spacing: -.065em; }
.wizard-intro { max-width: 530px; margin: 0 0 28px; color: #5f687c; font-size: 14px; line-height: 1.65; }
.required-hint { margin: 0 0 18px; color: #015DF7; font-size: 11px; font-weight: 700; }
.wizard-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px 17px; }
.wizard-grid label { display: block; min-width: 0; color: #2d374b; font-size: 12px; font-weight: 750; }
.wizard-grid label span { color: #015DF7; }
.wizard-grid label.full { grid-column: 1 / -1; }
.wizard-grid input,.wizard-grid select { display: block; width: 100%; min-height: 46px; margin-top: 8px; padding: 10px 12px; border: 1px solid #c9cfdd; border-radius: 2px; outline: 0; background: #fff; color: #1b2438; font: inherit; font-size: 13px; font-weight: 450; }
.wizard-grid input::placeholder { color: #8f97a9; }
.wizard-grid input:focus,.wizard-grid select:focus { border-color: #015DF7; box-shadow: 0 0 0 2px rgba(1, 93, 247, .14); }
.wizard-grid input[aria-invalid="true"],.wizard-grid select[aria-invalid="true"] { border-color: #015DF7; }
.wizard-actions { display: flex; align-items: center; justify-content: flex-end; gap: 16px; margin-top: 35px; padding-top: 24px; border-top: 1px solid #dee1e9; }
.wizard-actions .button,.wizard-payment .button,.wizard-result .button { min-height: 49px; padding: 13px 21px; font-size: 12px; font-weight: 800; text-decoration: none; }
.wizard-back { border: 0; background: transparent; color: #374152; font-size: 12px; font-weight: 750; text-decoration: underline; text-underline-offset: 4px; }
.wizard-error { padding: 12px 14px; margin: 24px 0 0; background: #f8e8e3; color: #913e2c; font-size: 12px; line-height: 1.5; }
.wizard-error[hidden],[hidden] { display: none !important; }
.wizard-review { display: grid; gap: 16px; padding: 20px 0; border-top: 1px solid #dee1e9; }
.wizard-review>div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 14px; font-size: 13px; line-height: 1.55; }
.wizard-review span { color: #626b80; }
.wizard-review strong { font-weight: 700; white-space: pre-line; overflow-wrap: anywhere; }
.service-summary { margin: 24px 0; padding-top: 22px; border-top: 1px solid #dee1e9; }
.service-summary h3 { margin: 0 0 15px; font-size: 18px; font-weight: 750; letter-spacing: -.035em; }
.service-summary ul { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 22px; padding: 0; margin: 0; list-style: none; }
.service-summary li { position: relative; padding-left: 17px; font-size: 12px; line-height: 1.55; }
.service-summary li::before { content: '✓'; position: absolute; left: 0; color: #015DF7; font-weight: 850; }
.service-summary p { margin: 19px 0 0; padding: 13px 0 0; border-top: 1px solid #dee1e9; color: #5f687c; font-size: 12px; line-height: 1.6; }
.service-summary p strong { color: #1b2438; }
.review-price,.payment-summary { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 20px 0; border-block: 1px solid #ccd2e1; }
.review-price span,.payment-summary span { font-size: 13px; font-weight: 750; }
.review-price strong,.payment-summary strong { font-family: Fraunces, Georgia, serif; font-size: 29px; font-weight: 500; white-space: nowrap; }
.wizard-step[data-wizard-step="3"] .wizard-intro:last-child { margin: 21px 0 0; font-size: 12px; }
.wizard-step[data-wizard-step="3"] .required-hint { margin: 23px 0 10px; }
.wizard-acceptance { display: grid; gap: 13px; }
.wizard-acceptance label { display: flex; align-items: flex-start; gap: 10px; color: #323c50; font-size: 12px; line-height: 1.55; cursor: pointer; }
.wizard-acceptance input { flex: 0 0 auto; width: 17px; height: 17px; margin: 1px 0 0; accent-color: #015DF7; }
.wizard-acceptance input[aria-invalid="true"] { outline: 2px solid #015DF7; outline-offset: 2px; }
.wizard-acceptance a,.wizard-legal-note a { color: #04246B; font-weight: 750; text-decoration: underline; text-underline-offset: 2px; }
.wizard-acceptance b { color: #015DF7; }
.wizard-legal-note { margin: 11px 0 0; color: #5f687c; font-size: 11px; line-height: 1.55; }
.wizard-payment,.wizard-result { min-height: 420px; }
.wizard-payment .payment-summary { margin: 30px 0 28px; }
.wizard-payment .button,.wizard-result .button { display: inline-flex; align-items: center; justify-content: center; margin-right: 16px; }
.wizard-payment .wizard-back { display: inline-block; min-height: 44px; }
.payment-footnote { max-width: 500px; margin-top: 30px; color: #677086; font-size: 12px; line-height: 1.65; }
.wizard-result .button { margin-top: 20px; }
@media (max-width: 900px) { .wizard-shell { grid-template-columns: 1fr; gap: 35px; width: min(100% - 38px, 700px); padding-top: 45px; } .wizard-aside { position: static; padding: 0; } .wizard-aside h1 { max-width: 600px; margin: 13px 0; font-size: 48px; } .wizard-offer { margin-top: 25px; } .wizard-help { margin: 18px 0 0; } }
@media (max-width: 560px) { .service-summary ul { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .wizard-shell { width: min(100% - 24px, 500px); gap: 19px; padding-top: 20px; } .wizard-page .header-inner { padding-right: 13px; } .wizard-home { font-size: 10px; } .wizard-aside h1 { max-width: 335px; margin: 8px 0 10px; font-size: 36px; } .wizard-aside>p:not(.eyebrow):not(.wizard-help) { display: none; } .wizard-offer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 15px; padding: 12px 0; } .wizard-offer span { max-width: 125px; line-height: 1.5; } .wizard-offer strong { margin: 0; font-size: 25px; white-space: nowrap; } .wizard-offer small { display: none; } .wizard-help { margin: 8px 0 0; font-size: 10px; } .wizard-content { padding: 20px 18px; } .wizard-progress { gap: 3px; margin-bottom: 23px; padding-bottom: 17px; } .wizard-progress span { font-size: 9px; } .wizard-progress b { font-size: 16px; } .wizard-step h2,.wizard-payment h2,.wizard-result h2 { font-size: 37px; } .wizard-grid { grid-template-columns: 1fr; gap: 16px; } .wizard-grid label.full { grid-column: auto; } .wizard-review>div { grid-template-columns: 95px minmax(0, 1fr); font-size: 11px; } .review-price strong,.payment-summary strong { font-size: 25px; } .wizard-actions { gap: 8px; } .wizard-actions .button { padding-inline: 15px; } }

.wizard-grid label small { display: block; margin-top: 8px; color: #5f687c; font-size: 11px; font-weight: 500; line-height: 1.55; }
.wizard-grid input[type="file"] { padding: 8px 10px; cursor: pointer; }
.wizard-grid input[type="file"]::file-selector-button { margin: 0 10px 0 0; padding: 8px 15px; border: 0; border-radius: 999px; background: #04246b; color: #fff; font: inherit; font-size: 12px; font-weight: 750; cursor: pointer; }
.wizard-step h2[tabindex="-1"]:focus,.wizard-payment h2[tabindex="-1"]:focus,.wizard-result h2[tabindex="-1"]:focus { outline: none; }
