/* Registration addition: the existing VFH artwork and landing styles are retained. */
.landing-actions { display:flex; gap:14px; width:min(100%,560px); margin-top:28px; }
.landing-actions .shop-button { flex:1; width:auto; margin:0; }
.register-button { display:inline-flex; flex:1; align-items:center; justify-content:center; gap:16px; min-height:70px; padding:0 24px; border:1.5px solid #e2bc6a; border-radius:999px; background:rgba(8,18,14,.72); color:#fffdf9; font-family:inherit; font-size:clamp(1.06rem,1.35vw,1.25rem); font-weight:800; cursor:pointer; transition:background .16s ease,transform .16s ease; }
.register-button:hover { background:rgba(8,18,14,.94); transform:translateY(-2px); }
.register-button span { font-size:1.35em; font-weight:400; }
.landing-page { overflow-y:auto; }
.landing-page > .scene-bg, .landing-page > .landing-wash { position:fixed; }
.landing-content { height:auto; min-height:100%; transform:none; }

.registration-dialog { --ink:#172a22; --muted:#56635c; --line:#d8ddd7; --paper:#fafaf6; color-scheme:light; padding:0; width:min(880px,calc(100vw - 40px)); max-height:calc(100dvh - 48px); margin:auto; border:1px solid rgba(219,215,202,.6); border-radius:18px; color:var(--ink); background:var(--paper); box-shadow:0 24px 90px #0007; overscroll-behavior:contain; }
.registration-dialog::backdrop { background:rgba(4,12,8,.8); }
.registration-dialog [hidden] { display:none!important; }
.registration-dialog button, .registration-dialog input, .registration-dialog select { font:inherit; }
.registration-dialog button { cursor:pointer; }
.registration-dialog :is(button,a,input,select):focus-visible { outline:3px solid #997125; outline-offset:3px; }
.registration-shell { padding:24px 44px 32px; }
.registration-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.registration-logo { display:block; flex-shrink:0; width:64px; height:auto; }
.close-registration { display:grid; place-items:center; width:44px; height:44px; padding:0 0 3px; border:1px solid var(--line); border-radius:50%; color:var(--ink); background:transparent; font:300 29px/1 Arial,sans-serif!important; }
.close-registration:hover { background:#e9ede7; }
.registration-intro { padding-top:28px; }
.form-kicker { margin:0 0 9px; color:#7c5b21; font-size:11px; line-height:1.4; font-weight:750; letter-spacing:.16em; text-transform:uppercase; }
.registration-dialog h2 { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(29px,3.8vw,40px); font-weight:500; line-height:1.12; letter-spacing:-.025em; }
.registration-intro > p:last-child { max-width:600px; margin:12px 0 24px; color:var(--muted); font-size:15px; line-height:1.6; }
.registration-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; list-style:none; margin:0 0 28px; padding:0; }
.registration-steps li { display:flex; gap:8px; align-items:center; padding-bottom:13px; border-bottom:2px solid var(--line); color:var(--muted); font-size:12px; font-weight:650; }
.registration-steps .step-number { display:grid; place-items:center; width:24px; height:24px; flex-shrink:0; border:1px solid #adb7ae; border-radius:50%; font-size:11px; }
.registration-steps .step-label { display:block; line-height:1.4; }
.registration-steps .step-label small { display:block; margin-top:3px; font-size:10px; font-weight:400; color:#657167; }
.registration-steps li[aria-current="step"] { color:var(--ink); border-color:#8d6827; }
.registration-steps li[aria-current="step"] .step-number { background:var(--ink); border-color:var(--ink); color:#fff; }
.registration-steps li.is-complete { border-color:#7f9786; }
.step-heading { display:flex; justify-content:space-between; gap:20px; align-items:baseline; margin-bottom:10px; }
.step-heading h3 { margin:0; font-size:19px; font-weight:650; letter-spacing:-.02em; }
.step-heading p { margin:0; font-size:12px; color:var(--muted); }
.field-help { margin:0 0 20px; color:var(--muted); font-size:13px; line-height:1.5; }
.form-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px 22px; }
.form-field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.form-field.full-width { grid-column:1/-1; }
.form-field label { color:var(--ink); font-size:13px; font-weight:650; line-height:1.4; }
.form-field label span { color:var(--muted); font-weight:400; }
.form-field input, .form-field select { width:100%; min-width:0; height:48px; padding:10px 12px; border:1px solid #aeb9af; border-radius:6px; background:#fff; color:#172a22; font-size:16px; box-shadow:none; }
.form-field input[readonly] { color:var(--muted); background:#f0f2ed; }
.form-field input::placeholder { color:#7e877f; opacity:1; }
.form-field input[aria-invalid="true"], .form-field select[aria-invalid="true"] { border-color:#a03228; }
.form-field small { color:var(--muted); font-size:12px; line-height:1.5; }
.veteran-section, .mailing-section { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.form-check { display:flex; align-items:flex-start; gap:12px; color:var(--ink); font-size:14px; line-height:1.55; cursor:pointer; }
.form-check input { flex:0 0 20px; width:20px; height:20px; margin:1px 0 0; accent-color:#294b3a; }
.conditional-fields { margin:17px 0 0; padding:0; border:0; min-width:0; }
.conditional-fields legend { padding:0; margin-bottom:14px; font-size:15px; font-weight:650; }
.registration-review { margin:16px 0 22px; }
.review-group { padding:16px 0; border-bottom:1px solid var(--line); }
.review-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.review-heading h4 { margin:0; font-size:14px; }
.review-edit { padding:5px 0 5px 12px; border:0; color:#546d5e; background:none; font-size:13px!important; text-decoration:underline; text-underline-offset:3px; }
.review-group dl { display:grid; grid-template-columns:minmax(120px,1fr) minmax(0,2fr); gap:7px 22px; margin:0; font-size:13px; line-height:1.5; }
.review-group dt { color:var(--muted); }
.review-group dd { margin:0; overflow-wrap:anywhere; white-space:pre-line; }
.privacy-note { padding:18px 20px; margin:24px 0 22px; border-left:3px solid #a1844e; background:#eef1ea; }
.privacy-note h4 { margin:0 0 7px; font-size:14px; }
.privacy-note p { margin:7px 0 0; color:#43574b; font-size:13px; line-height:1.6; }
.privacy-note a { color:inherit; overflow-wrap:anywhere; text-underline-offset:3px; }
.consent-options { display:grid; gap:17px; }
.consent-options .form-check { font-size:13px; }
.form-navigation { display:flex; align-items:center; gap:16px; padding-top:24px; margin-top:26px; border-top:1px solid var(--line); }
.form-navigation p { margin:0 auto 0 0; color:var(--muted); font-size:12px; }
.form-next { display:inline-flex; align-items:center; justify-content:center; gap:22px; padding:14px 24px; min-height:48px; border:1px solid #243e30; border-radius:999px; background:#243e30; color:#fff; font-size:14px!important; font-weight:650!important; text-decoration:none; }
.form-next:hover { background:#172b20; }
.form-back { min-height:44px; padding:0; border:0; background:none; color:var(--ink); font-size:14px!important; }
.registration-dialog button:disabled { opacity:.6; cursor:wait; }
.form-status { margin:20px 0 0; padding:12px 15px; background:#f6e8e4; border-left:3px solid #a03228; color:#84281f; font-size:13px; line-height:1.6; }
.registration-success { padding:55px 18px 40px; text-align:center; }
.success-mark { display:grid; place-items:center; width:60px; height:60px; margin:0 auto 22px; border-radius:50%; background:#e3ebdf; color:#294b3a; font-size:28px; }
.registration-success > p:not(.form-kicker) { max-width:420px; margin:18px auto; color:var(--muted); line-height:1.65; }
.registration-success .success-note { font-size:13px; }
.registration-success .form-next { margin-top:16px; }
@media (max-width:760px) { .landing-actions { margin-top:24px; } .register-button { min-height:60px; padding:0 20px; font-size:1.04rem; } }
@media (max-width:520px) {
  .landing-actions { flex-direction:column; gap:12px; width:min(100%,380px); }
  .landing-actions .shop-button { width:100%; }
  .register-button { flex:auto; }
  .landing-content { padding-bottom:30px; }
  .registration-dialog { width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; }
  .registration-shell { padding:max(12px,env(safe-area-inset-top)) 22px max(28px,env(safe-area-inset-bottom)); }
  .registration-header { padding-bottom:14px; }
  .registration-logo { width:52px; }
  .registration-intro { padding-top:24px; }
  .registration-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:23px; }
  .registration-steps li { gap:6px; font-size:10px; }
  .registration-steps .step-number { width:21px; height:21px; }
  .form-grid { grid-template-columns:minmax(0,1fr); gap:18px; }
  .form-navigation { flex-wrap:wrap; gap:14px; }
  .form-next { padding:14px 20px; }
  .review-group dl { grid-template-columns:minmax(98px,1fr) minmax(0,1.6fr); gap:7px 14px; }
  .privacy-note { padding:16px; }
}

.registration-progress { display:grid; gap:9px; margin:0 0 24px; }
.registration-progress > span { justify-self:end; font-size:12px; font-weight:650; }
.registration-progress progress { appearance:none; display:block; width:100%; height:6px; border:0; border-radius:8px; overflow:hidden; background:#dfe5dc; color:#51694d; }
.registration-progress progress::-webkit-progress-bar { background:#dfe5dc; }
.registration-progress progress::-webkit-progress-value { background:#51694d; }
.registration-progress progress::-moz-progress-bar { background:#51694d; }
.good-to-know { padding:17px 19px; margin:18px 0 24px; background:#eef1ea; border-left:3px solid #a1844e; }
.good-to-know h4 { margin:0 0 6px; font-size:14px; }
.good-to-know p { margin:0; color:#43574b; font-size:14px; line-height:1.6; }
.birth-date-fields { margin:0 0 24px; padding:0; min-width:0; border:0; }
.birth-date-fields legend { margin-bottom:10px; padding:0; font-size:13px; font-weight:650; }
.birth-date-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr) minmax(0,1fr); gap:14px; }
.birth-date-grid label { font-weight:400; color:var(--muted); }
.birth-date-fields > small { display:block; margin-top:9px; color:var(--muted); font-size:12px; line-height:1.5; }
.veteran-consent-copy { margin:16px 0 0; color:#43574b; font-size:14px; line-height:1.65; }
.address-heading { margin:0 0 18px; font-size:20px; font-weight:500; }
.review-disclosure { margin:17px 0 27px; padding:14px 0; border-block:1px solid var(--line); }
.review-disclosure summary { cursor:pointer; color:var(--ink); font-size:14px; font-weight:650; }
.full-consent { gap:26px; }
.full-consent .form-check { font-size:14px; line-height:1.7; }
.optional-label { color:var(--muted); font-size:12px; white-space:nowrap; }
.electronic-signature-copy { margin:23px 0 0; font-size:14px; line-height:1.7; font-weight:650; }
.email-submission-consent { margin-top:25px; padding-top:23px; border-top:1px solid var(--line); }
.email-submission-consent .form-check { font-size:13px; }
.submission-note { color:var(--muted); font-size:12px; line-height:1.6; margin:17px 0 0; }
.shipping-choice { margin-top:22px; }
.registration-dialog button:disabled { cursor:not-allowed; }
@media (max-width:520px) {
  .registration-steps li { font-size:11px; }
  .birth-date-grid { gap:9px; }
  .birth-date-grid input,.birth-date-grid select { padding-inline:8px; }
  .form-navigation .form-next { flex:1 1 100%; }
}

.registration-captcha { margin: 1.25rem 0; }
