.registration-page { background: #f5f3ef; color: #111827; }
.form-header {
  height: 84px; display: flex; align-items: center; justify-content: space-between;
  padding: 12px clamp(20px, 5vw, 76px); background: #06142f; color: #fff;
}
.registration-layout { min-height: calc(100svh - 84px); display: grid; grid-template-columns: minmax(300px, .72fr) minmax(600px, 1.28fr); }
.registration-intro {
  position: sticky; top: 0; height: calc(100svh - 84px); align-self: start;
  padding: clamp(50px, 8vw, 120px) clamp(28px, 6vw, 90px);
  color: #fff; background:
    linear-gradient(0deg, rgba(5,17,43,.96), rgba(5,17,43,.25)),
    url("../img/14-hero-background.jpg") center / cover no-repeat;
}
.registration-intro h1 { margin: 0; font-size: clamp(64px, 8vw, 124px); line-height: .93; }
.registration-intro > p:not(.eyebrow) { max-width: 460px; font-size: clamp(20px, 1.6vw, 25px); line-height: 1.7; font-weight: 600; }
.period-card { margin-top: 52px; padding: 20px 0; border-block: 1px solid rgba(255,255,255,.35); }
.period-card small { display: block; color: #aab7d5; font: 700 10px Arial, sans-serif; letter-spacing: .17em; }
.period-card strong { display: block; margin-top: 8px; font: 800 20px Arial, sans-serif; }
.form-panel { padding: clamp(42px, 6vw, 90px) clamp(24px, 6vw, 100px); background: #fff; }
.form-heading { padding-bottom: 34px; border-bottom: 1px solid #dfe3e9; }
.form-heading h2 { margin: 0; font-size: clamp(46px, 5.4vw, 76px); line-height: 1.05; font-weight: 800; }
fieldset { margin: 0; padding: 38px 0; border: 0; border-bottom: 1px solid #dfe3e9; }
fieldset[hidden] { display: none; }
fieldset:disabled { opacity: .6; }
legend { margin-bottom: 22px; padding: 0; font-size: clamp(21px, 1.5vw, 25px); font-weight: 800; }
.choice-grid { display: grid; gap: 12px; }
.choice-grid-3 { grid-template-columns: repeat(3, 1fr); }
.choice-card { position: relative; cursor: pointer; }
.choice-card input { position: absolute; opacity: 0; pointer-events: none; }
.choice-card span {
  min-height: 104px; display: flex; flex-direction: column; justify-content: center;
  padding: 18px; border: 1px solid #ccd2dc; background: #fff; transition: border .2s, box-shadow .2s, transform .2s;
}
.choice-card strong { font-size: 19px; }
.choice-card small { margin-top: 5px; color: #697386; }
.choice-card input:checked + span { border: 2px solid #06142f; box-shadow: inset 0 -4px 0 var(--choice-color, #ff5a1f); transform: translateY(-2px); }
.choice-card input:focus-visible + span { outline: 3px solid #ff5a1f55; outline-offset: 3px; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px 18px; }
.finisher-shirt{margin-top:26px;padding:22px;background:#f5f3ef;border-left:4px solid #ff5a1f}.finisher-shirt[hidden]{display:none}.finisher-shirt h3{margin:0 0 18px;font-size:21px}.finisher-shirt h3 small{display:block;margin-top:4px;color:#697386;font-size:13px;font-weight:500}
.shirt-measurements { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-self: end; }
.shirt-measurements span { padding: 12px 14px; border: 1px solid #d8dde5; background: #f7f8fa; color: #626d80; font-size: 13px; font-weight: 600; }
.shirt-measurements strong { display: block; margin-top: 3px; color: #06142f; font: 800 24px Arial, sans-serif; }
.span-2 { grid-column: span 2; }
.form-grid label { font-size: 16px; line-height: 1.5; font-weight: 700; }
input, select, textarea {
  width: 100%; margin-top: 8px; padding: 13px 12px; border: 1px solid #cbd2dd; border-radius: 0;
  background: #fff; color: #111827; font: inherit; font-size: 17px; font-weight: 500;
}
input:focus, select:focus, textarea:focus { outline: 2px solid #ff5a1f; outline-offset: 1px; border-color: transparent; }
label > small { display: block; margin-top: 7px; color: #6d7687; font-size: 13px; line-height: 1.5; font-weight: 500; }
.field-error { display: block; margin: 7px 0 0; color: #a91429; font-size: 14px; font-weight: 700; }
.field-error[hidden] { display: none; }
input[aria-invalid="true"] { border-color: #a91429; background: #fff8f8; }
.field-hint { display: block; margin: 7px 0 0; color: #687386; font-size: 13px; font-weight: 500; line-height: 1.45; }
.consent-group label { display: block; margin: 12px 0; font-weight: 500; }
.consent-group input { width: auto; margin: 0 8px 0 0; }
.consent-group .consent-check{display:flex;align-items:flex-start;gap:4px}.rules-open{margin:0 0 14px 30px;padding:0;border:0;background:transparent;color:#c63f1c;font:700 15px/1.5 inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.rules-dialog{width:min(760px,calc(100% - 32px));max-height:min(88vh,900px);padding:0;border:0;background:transparent;color:#101827}.rules-dialog::backdrop{background:rgba(2,12,31,.78);backdrop-filter:blur(4px)}.rules-dialog-shell{display:flex;max-height:min(88vh,900px);flex-direction:column;overflow:hidden;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.35)}.rules-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:25px 28px 20px;border-bottom:1px solid #e0e3e8}.rules-dialog-header .eyebrow{margin:0 0 5px}.rules-dialog-header h2{margin:0;font-size:clamp(25px,4vw,38px);line-height:1.2}.rules-close{flex:0 0 auto;width:44px;height:44px;border:1px solid #cfd4dc;background:#fff;color:#06142f;font:400 30px/1 Arial,sans-serif;cursor:pointer}.rules-dialog-content{overflow-y:auto;padding:8px 28px 24px;overscroll-behavior:contain}.rules-dialog-content section{padding:18px 0;border-bottom:1px solid #e5e7eb}.rules-dialog-content section:last-child{border-bottom:0}.rules-dialog-content h3{margin:0 0 10px;font-size:20px}.rules-dialog-content ul{margin:0;padding-left:24px}.rules-dialog-content li{margin:7px 0;line-height:1.75}.rules-dialog-actions{display:flex;justify-content:flex-end;gap:12px;padding:18px 28px;border-top:1px solid #e0e3e8;background:#f7f6f2}.rules-dialog-actions .button{margin:0}
@media(max-width:600px){.rules-dialog{width:100%;max-width:none;max-height:94dvh;margin:auto 0 0}.rules-dialog-shell{max-height:94dvh}.rules-dialog-header{padding:20px 18px 16px}.rules-dialog-content{padding:4px 18px 18px}.rules-dialog-actions{display:grid;grid-template-columns:1fr;padding:14px 18px}.rules-dialog-actions .button{width:100%;text-align:center}.rules-open{margin-left:29px}}
.submit-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 36px; }
.submit-row small { display: block; color: #717a8b; }
.submit-row strong { font-size: 30px; }
.form-alert { margin: 24px 0 0; padding: 16px 18px; border-left: 4px solid; }
.form-alert.error { color: #8a1525; background: #fff0f2; border-color: #c92035; }
.form-alert.notice { color: #704900; background: #fff7dd; border-color: #e6a700; }
.form-alert.test-mode { color: #51206d; background: #f7eaff; border-color: #b548d2; }
.success-page { min-height: 100svh; display: grid; place-items: center; padding: 24px; background: linear-gradient(135deg, #06142f, #173b74); }
.success-card { width: min(660px, 100%); padding: clamp(34px, 7vw, 78px); text-align: center; background: #fff; color: #111827; box-shadow: 0 30px 90px rgba(0,0,0,.35); }
.success-card h1 { margin: 0; font-size: clamp(42px, 8vw, 72px); line-height: 1.05; }
.success-icon { width: 70px; height: 70px; display: grid; place-items: center; margin: 0 auto 28px; border-radius: 50%; background: #14804a; color: #fff; font-size: 34px; }
.success-icon.error { background: #bc1c2f; }
.registration-number { display: block; margin: 10px 0 24px; color: #ff5a1f; font: 800 clamp(24px, 5vw, 40px) Arial, sans-serif; letter-spacing: .05em; }
.success-card .muted { color: #747d8d; font-size: 13px; }
.success-card .button { margin-top: 20px; }

@media (max-width: 980px) {
  .registration-layout { grid-template-columns: 1fr; }
  .registration-intro { position: relative; height: auto; min-height: 520px; }
}
@media (max-width: 660px) {
  .form-header { height: 70px; }
  .registration-layout { min-height: calc(100svh - 70px); }
  .registration-intro { min-height: 440px; }
  .choice-grid-3, .form-grid { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .submit-row { align-items: stretch; flex-direction: column; }
  .submit-row .button { width: 100%; }
}
