.registration-page {
  min-height: 100vh;
  background: linear-gradient(rgba(247,244,238,.9), rgba(247,244,238,.95)), url("assets/hero-layers/responsive/hero-bg-static-desktop-v5.png") center top / cover fixed; background-image: linear-gradient(rgba(247,244,238,.9), rgba(247,244,238,.95)), image-set(url("assets/hero-layers/responsive/hero-bg-static-desktop-v5.webp?v=opt-20260830") type("image/webp") 1x, url("assets/hero-layers/responsive/hero-bg-static-desktop-v5.png") type("image/png") 1x);
}
.registration-shell__header { position: sticky; top: 0; background: rgba(248,246,241,.96); box-shadow: 0 8px 30px rgba(6,43,64,.08); }
.registration-shell__header .brand { border-right-color: rgba(6,43,64,.22); }
.registration-shell__header .header-tools { padding-right: 18px; }
.registration { --registration-border: rgba(6,43,64,.18); width: min(1440px, calc(100% - 48px)); margin: 32px auto 72px; }
.registration__draft, .registration__context { display: flex; align-items: center; justify-content: flex-start; gap: 20px; margin-bottom: 16px; padding: 14px 20px; border: 1px solid rgba(6,43,64,.18); border-radius: 12px; background: rgba(255,255,255,.9); box-shadow: 0 5px 18px rgba(6,43,64,.06); }
.registration__draft[hidden], .registration__context[hidden] { display: none; }
.registration__context { justify-content: flex-start; color: #245d48; border-color: rgba(36,93,72,.25); }
.registration__context > span { display: grid; place-items: center; width: 28px; height: 28px; flex: 0 0 28px; border-radius: 50%; color: white; background: #478b42; font-weight: 900; }
.registration__context p { margin: 0; }
.registration__toolbar { display:flex; justify-content:flex-end; margin: -5px 0 12px; }
.registration__toolbar[hidden] { display:none; }
.registration__toolbar button { padding:8px 2px; border:0; border-bottom:1px solid currentColor; color:#6b2b1b; background:transparent; cursor:pointer; font-weight:800; }
.registration-progress { padding: 28px clamp(22px, 4vw, 66px) 24px; border: 1px solid var(--registration-border); border-radius: 22px 22px 0 0; background: rgba(255,255,255,.91); }
.registration-progress ol { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.registration-progress li { position: relative; display: grid; justify-items: center; gap: 9px; color: #60717b; }
.registration-progress li:not(:last-child)::before { content: ""; position: absolute; z-index: 0; top: 20px; left: calc(50% + 27px); width: calc(100% - 54px); height: 2px; background: repeating-linear-gradient(90deg, #d2c6b8 0 4px, transparent 4px 8px), linear-gradient(#d2c6b8, #d2c6b8); }
.registration-progress li:not(:last-child)::after { content: "||||"; position: absolute; z-index: 1; top: 10px; left: calc(100% - 10px); color: #cbbca9; font: 14px/1 monospace; letter-spacing: -4px; transform: rotate(90deg); }
.registration-progress li span { position: relative; z-index: 2; display: grid; place-items: center; width: 42px; height: 42px; border: 2px solid currentColor; border-radius: 50%; background: #fbfaf7; font-size: 18px; font-weight: 800; }
.registration-progress li strong { font-size: 14px; }
.registration-progress li.is-current { color: var(--orange); }
.registration-progress li.is-current span { color: white; border-color: var(--orange); background: linear-gradient(145deg, #ef5b16, #cc3606); box-shadow: 0 0 0 7px rgba(216,69,13,.1); }
.registration-progress li.is-complete { color: var(--ink); }
.registration-progress li.is-complete span { color: white; border-color: var(--ink); background: var(--ink); }
.registration-progress li.is-complete span::before { content: "✓"; }
.registration-progress li.is-complete span { font-size: 0; }
.registration-progress li.is-complete span::before { font-size: 18px; }
.registration__layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; align-items: start; gap: 28px; padding: 34px clamp(24px, 4vw, 64px) 48px; border: 1px solid var(--registration-border); border-top: 0; border-radius: 0 0 22px 22px; background: rgba(252,250,246,.89); box-shadow: 0 20px 60px rgba(6,43,64,.12); }
.registration-form { grid-column: 1; grid-row: 1; padding: clamp(25px, 3.3vw, 48px); border: 1px solid var(--registration-border); border-radius: 18px; background: rgba(255,255,255,.75); box-shadow: 0 9px 30px rgba(6,43,64,.04); }
.registration-form[hidden], [data-step-aside][hidden], .contact-conditional[hidden] { display: none !important; }
.registration-form__heading { display: flex; gap: 22px; align-items: flex-start; margin-bottom: 34px; }
.registration-form__mark { color: #b9aa99; font-size: 38px; line-height: 1; }
.registration-form__eyebrow { margin: 0 0 5px !important; color: var(--orange); font-size: 12px !important; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.registration-form__heading h1 { margin: 0; font-size: clamp(32px, 3vw, 48px); letter-spacing: -.025em; }
.registration-form__heading p { margin: 8px 0 0; color: #355365; font-size: 17px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 32px; }
.form-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.field { position: relative; min-width: 0; padding: 0; border: 0; margin: 0; }
.field--full { grid-column: 1 / -1; }
.field label, .field legend { display: block; margin-bottom: 9px; color: var(--ink); font-size: 15px; font-weight: 800; }
.field label > span, .field legend > span { color: var(--orange); }
.field input { width: 100%; min-height: 54px; padding: 12px 16px; border: 1.5px solid rgba(6,43,64,.38); border-radius: 9px; color: var(--ink); background: rgba(255,255,255,.82); font: 17px/1.2 inherit; outline: none; }
.field input::placeholder { color: #89959c; }
.field input:focus { border-color: var(--orange); box-shadow: 0 0 0 4px rgba(216,69,13,.12); }
.field.has-error input, .birth-date.has-error input { border-color: #b42318; }
.field__label-line { display: flex; align-items: center; gap: 9px; }
.field__label-line label { margin: 0 0 9px; }
.help-button { display: grid; place-items: center; width: 26px; height: 26px; margin: -8px 0 0; padding: 0; border: 1.5px solid var(--ink); border-radius: 50%; color: var(--ink); background: white; cursor: pointer; font-weight: 800; }
.help-button:focus-visible { outline: 3px solid rgba(216,69,13,.3); outline-offset: 2px; }
.field-help { position: absolute; z-index: 5; top: 82px; left: 31%; width: min(360px, 68%); padding: 18px 20px; border: 1px solid rgba(6,43,64,.22); border-radius: 12px; background: white; box-shadow: 0 15px 35px rgba(6,43,64,.14); }
.field-help[hidden] { display: none; }
.field-help strong, .field-help span { display: block; }
.field-help span { margin-top: 6px; color: #355365; line-height: 1.45; }
.field__hint { margin: 7px 0 0; color: #657680; font-size: 12px; }
.field__error { min-height: 18px; margin: 6px 0 0; color: #a61b12; font-size: 13px; font-weight: 700; }
.field label small { margin-left: 8px; padding: 3px 8px; border: 1px solid #90ad37; border-radius: 99px; color: #638000; font-size: 10px; font-weight: 700; }
.birth-date__inputs { display: flex; align-items: center; gap: 10px; max-width: 590px; }
.birth-date__inputs label { width: 105px; margin: 0; }
.birth-date__inputs .birth-date__year { width: 145px; }
.birth-date__inputs input { text-align: center; }
.birth-date__picker-button { width: 54px; height: 54px; flex: 0 0 54px; border: 1.5px solid rgba(6,43,64,.38); border-radius: 9px; color: var(--ink); background: white; cursor: pointer; font-size: 24px; }
.birth-date__picker-button:hover, .birth-date__picker-button:focus-visible { border-color: var(--orange); }
.birth-date__native { position: absolute; width: 1px !important; height: 1px; min-height: 0 !important; opacity: 0; pointer-events: none; }
.form-errors { margin-bottom: 24px; padding: 15px 18px; border-left: 5px solid #b42318; border-radius: 6px; color: #78160f; background: #fff0ed; }
.form-errors[hidden] { display: none; }
.form-errors strong { display: block; }
.form-errors ul { margin: 6px 0 0; padding-left: 20px; }
.registration-form__actions { display: flex; justify-content: space-between; gap: 18px; margin-top: 36px; padding-top: 25px; border-top: 1px solid rgba(6,43,64,.15); }
.registration-button { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; padding: 13px 28px; border: 1.5px solid var(--ink); border-radius: 10px; text-decoration: none; cursor: pointer; font-weight: 800; }
.registration-button--secondary { min-width: 150px; background: transparent; }
.registration-button--primary { min-width: 270px; border-color: var(--orange); color: white; background: linear-gradient(115deg, #ce3908, #ed5b12); box-shadow: 0 7px 16px rgba(181,55,10,.18); }
.registration-button:hover, .registration-button:focus-visible { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(6,43,64,.14); }
.registration-form__saved { margin: 20px 0 0; padding: 15px 18px; border-radius: 9px; color: #245d48; background: #edf7ec; font-weight: 700; }
.registration-form__saved[hidden] { display: none; }

.verification-code { border: 0; padding: 0; }
.verification-code legend { margin-bottom: 10px; font-weight: 800; }
.verification-code__digits { display: grid; grid-template-columns: repeat(6, minmax(42px, 58px)); gap: 10px; }
.verification-code__digits label { display: block; }
.verification-code__digits input { width: 100%; aspect-ratio: 1; padding: 0; border: 2px solid #c8ced4; border-radius: 10px; background: #fff; color: #17212b; font: 800 1.7rem/1 var(--font-sans, Arial, sans-serif); text-align: center; }
.verification-code__digits input:focus { border-color: #1d694d; outline: 3px solid rgba(29, 105, 77, .18); outline-offset: 1px; }
.verification-countdown { margin: 14px 0 0; color: #4a5661; font-size: .95rem; }
.verification-countdown strong { color: #1d694d; font-variant-numeric: tabular-nums; }
.verification-countdown.is-expired, .verification-countdown.is-expired strong { color: #a32929; }

@media (max-width: 520px) {
  .verification-code__digits { grid-template-columns: repeat(6, minmax(36px, 1fr)); gap: 6px; }
  .verification-code__digits input { border-radius: 8px; font-size: 1.4rem; }
}
.registration-aside { position: sticky; grid-column: 2; grid-row: 1; top: 122px; padding: 30px; border: 1px solid var(--registration-border); border-radius: 18px; background: rgba(255,255,255,.78); box-shadow: 0 9px 30px rgba(6,43,64,.06); }
.registration-aside__icon { display: grid; place-items: center; width: 74px; height: 74px; margin-bottom: 16px; border-radius: 50%; color: var(--orange); background: #fbede7; font-size: 34px; font-weight: 900; }
.registration-aside p { margin: 0 0 6px; font-size: 20px; font-weight: 800; }
.registration-aside [data-step-aside] > strong { color: var(--orange); font-size: 21px; }
.registration-aside hr { margin: 25px 0; border: 0; border-top: 1px solid rgba(6,43,64,.16); }
.registration-aside [data-step-aside="1"] > span { display: block; color: #355365; font-size: 16px; line-height: 1.55; }
.registration-aside [data-step-aside="1"] > small { display: block; margin-top: 24px; color: #657680; }
.contact-section { margin-top: 18px; padding: 24px; border: 1px solid rgba(6,43,64,.15); border-radius: 13px; background: rgba(255,255,255,.46); }
.contact-section + .contact-section { margin-top: 12px; }
.contact-section h2 { margin: 0 0 20px; color: var(--ink); font-size: 14px; letter-spacing: .08em; text-transform: uppercase; }
.choice-group { margin-top: 2px; }
.choice-group legend { margin-bottom: 10px; }
.choice-grid { display: grid; gap: 10px; }
.choice-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.choice-grid--two { grid-template-columns: repeat(2, minmax(0, 220px)); }
.choice-grid--preferred { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.choice-grid label { position: relative; margin: 0; cursor: pointer; }
.choice-grid input { position: absolute; width: 1px; height: 1px; min-height: 0; opacity: 0; }
.choice-grid label > span { min-height: 48px; display: flex; align-items: center; gap: 9px; padding: 10px 13px 10px 42px; border: 1.5px solid rgba(6,43,64,.22); border-radius: 9px; background: rgba(255,255,255,.78); font-size: 13px; font-weight: 700; }
.choice-grid label > span::before { content: ""; position: absolute; left: 13px; width: 18px; height: 18px; border: 1.5px solid #6f7f87; border-radius: 50%; background: white; }
.choice-grid input:checked + span { border-color: var(--orange); color: var(--ink); background: #fff8f4; box-shadow: 0 0 0 2px rgba(216,69,13,.08); }
.choice-grid input:checked + span::before { border: 5px solid var(--orange); }
.choice-grid input:focus-visible + span { outline: 3px solid rgba(216,69,13,.25); outline-offset: 2px; }
.choice-grid input:disabled + span { cursor: not-allowed; opacity: .45; background: #edf0f1; }
.preferred-contact { margin-top: 20px; }
.preferred-contact legend small { color: #657680; font-size: 12px; font-weight: 400; }
.field--checkbox { align-self: start; }
.field__standalone-label { display: block; margin-bottom: 9px; font-size: 15px; font-weight: 800; }
.check-control { min-height: 54px; display: flex !important; align-items: center; gap: 10px; margin: 0 !important; padding: 11px 14px; border: 1.5px solid rgba(6,43,64,.25); border-radius: 9px; background: rgba(255,255,255,.78); cursor: pointer; }
.check-control input { width: 21px; min-height: 21px; flex: 0 0 21px; accent-color: var(--orange); }
.check-control span { color: var(--ink) !important; font-size: 13px; }
.participant-summary > p { margin-bottom: 22px; }
.participant-summary__person { display: flex; align-items: center; gap: 15px; }
.participant-summary__person > span { display: grid; place-items: center; width: 66px; height: 66px; flex: 0 0 66px; border-radius: 50%; color: var(--ink); background: #eee5d9; font-size: 23px; font-weight: 800; }
.participant-summary__person strong, .participant-summary__person small { display: block; }
.participant-summary__person strong { margin-bottom: 5px; font-size: 17px; }
.participant-summary__person small { margin-top: 3px; color: #536873; }
.participant-summary button { border: 0; border-bottom: 1px solid currentColor; padding: 4px 0; color: var(--orange); background: transparent; cursor: pointer; font-weight: 800; }
.field textarea { width: 100%; padding: 14px 16px; resize: vertical; border: 1.5px solid rgba(6,43,64,.38); border-radius: 9px; color: var(--ink); background: rgba(255,255,255,.82); font: 16px/1.5 inherit; outline: none; }
.field textarea:focus { border-color: var(--orange); box-shadow: 0 0 0 4px rgba(216,69,13,.12); }
.section-note { margin: -8px 0 18px; color: #526a76; line-height: 1.45; }
.activity-cards { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.activity-card { position: relative; cursor: pointer; }
.pass-choice { position:relative; }
.activity-card input, .pass-choice input, .activity-help-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.activity-card > span { min-height: 150px; display: flex; flex-direction: column; padding: 19px; border: 1.5px solid rgba(6,43,64,.22); border-radius: 12px; background: rgba(255,255,255,.8); }
.activity-card strong { margin: 18px 0 10px; font-size: 17px; }
.activity-card small { margin-top: 4px; color: #526a76; }
.activity-card em { margin-top: auto; padding-top: 12px; color: #347040; font-size: 12px; font-style: normal; font-weight: 800; }
.activity-card input:checked + span, .pass-choice input:checked + span, .activity-help-choice input:checked + span { border-color: var(--orange); background: #fff7f2; box-shadow: 0 0 0 2px rgba(216,69,13,.08); }
.activity-card input:focus-visible + span, .pass-choice input:focus-visible + span, .activity-help-choice input:focus-visible + span { outline: 3px solid rgba(216,69,13,.25); outline-offset: 2px; }
.activity-help-choice { position: relative; display: block; margin-top: 12px; cursor: pointer; }
.activity-help-choice > span { min-height: 54px; display: flex; align-items: center; padding: 12px 16px 12px 48px; border: 1.5px dashed rgba(6,43,64,.3); border-radius: 10px; background: rgba(255,255,255,.65); font-weight: 800; }
.activity-help-choice > span::before { content:""; position:absolute; left:17px; width:20px; height:20px; border:1.5px solid #6f7f87; border-radius:50%; background:white; }
.activity-help-choice input:checked + span::before { border:6px solid var(--orange); }
.planned-first-class { width: min(420px,100%); margin-top: 24px; }
.pass-choice-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.pass-choice { --pass-mini-accent:#12a8b6; --pass-mini-ink:#071a20; min-width:0; }
.pass-choice[data-variant="regular"] { --pass-mini-accent:#19b8c8; --pass-mini-ink:#fff; }
.pass-choice[data-variant="active"] { --pass-mini-accent:#ff5a18; --pass-mini-ink:#fff; }
.pass-choice[data-variant="flex"] { --pass-mini-accent:#b2c80d; --pass-mini-ink:#fff; }
.pass-choice__toggle { display:block; width:100%; padding:0; border:0; border-radius:15px; color:inherit; background:transparent; cursor:pointer; perspective:1100px; transition:transform .18s ease; }
.pass-choice__toggle:hover { transform:translateY(-3px); }
.pass-choice__toggle:focus-visible { outline:3px solid rgba(216,69,13,.3); outline-offset:3px; }
.pass-choice__inner { position:relative; display:block; width:100%; aspect-ratio:.72; transform-style:preserve-3d; transition:transform .5s cubic-bezier(.2,.8,.2,1); }
.pass-choice.is-flipped .pass-choice__inner { transform:rotateY(180deg); }
.pass-choice__face { position:absolute; inset:0; isolation:isolate; display:block; overflow:hidden; border:2px solid rgba(6,43,64,.18); border-radius:15px; box-shadow:0 9px 22px rgba(6,43,64,.15); backface-visibility:hidden; }
.pass-choice__front { color:var(--pass-mini-ink); background:var(--pass-front-bg,linear-gradient(145deg,#f7f3ea,#dceff0)) center / cover no-repeat; }
.pass-choice__back { color:#fff; background:radial-gradient(circle at 88% 20%,rgba(18,168,182,.22),transparent 21%),repeating-linear-gradient(105deg,transparent 0 27px,rgba(255,255,255,.035) 27px 29px,transparent 29px 56px),linear-gradient(155deg,#06333a,#061b20 66%,#041316); transform:rotateY(180deg); }
.pass-choice__content { position:absolute; z-index:2; inset:10% 9% 10%; display:flex; flex-direction:column; align-items:flex-start; }
.pass-choice__content strong { max-width:100%; margin:0; color:var(--pass-mini-accent); font-family:Oswald,Impact,"Arial Narrow",sans-serif; font-size:clamp(17px,1.8vw,25px); line-height:.95; letter-spacing:.02em; text-transform:uppercase; white-space:nowrap; }
.pass-choice[data-variant="regular"] .pass-choice__content strong,
.pass-choice[data-variant="flex"] .pass-choice__content strong { color:#fff; font-size:clamp(16px,1.65vw,22px); }
.pass-choice__content b { margin-top:auto; font-family:Oswald,Impact,"Arial Narrow",sans-serif; font-size:clamp(34px,4vw,52px); line-height:.9; font-weight:700; white-space:nowrap; }
.pass-choice__facts { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.pass-choice__facts small { padding:5px 7px; color:#fff; background:var(--pass-mini-accent); font-size:9px; font-weight:900; line-height:1; text-transform:uppercase; transform:rotate(-1deg); }
.pass-choice__highlight { position:absolute; z-index:3; top:0; right:0; max-width:58%; padding:7px 9px; border-radius:0 13px 0 9px; color:#fff; background:#ff5a18; font-size:9px; font-style:normal; font-weight:900; letter-spacing:.03em; text-align:center; text-transform:uppercase; }
.pass-choice__flip-hint { position:absolute; z-index:3; right:8%; bottom:3.5%; color:currentColor; font-size:8px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; opacity:.78; }
.pass-choice__back-content { position:absolute; inset:9%; display:flex; flex-direction:column; align-items:flex-start; text-align:left; }
.pass-choice__back-content strong { color:var(--pass-mini-accent); font-family:Oswald,Impact,"Arial Narrow",sans-serif; font-size:clamp(18px,2vw,26px); line-height:1; text-transform:uppercase; }
.pass-choice__back-content > span { display:grid; gap:3px; margin-top:12px; }
.pass-choice__back-content > span b { font-size:11px; text-transform:uppercase; }
.pass-choice__back-content p { margin:12px 0 0; font-size:10px; font-weight:750; line-height:1.3; }
.pass-choice__back-content small { margin-top:8px; color:rgba(255,255,255,.72); font-size:9px; line-height:1.25; }
.pass-choice__back-content em { margin-top:auto; padding-left:7px; border-left:2px solid var(--pass-mini-accent); color:#fff; font-size:8px; font-style:normal; line-height:1.25; }
.pass-choice__back-content i { align-self:center; margin-top:8px; color:var(--pass-mini-accent); font-size:8px; font-style:normal; font-weight:900; text-transform:uppercase; }
.pass-choice__select { position:relative; display:block; margin-top:9px; cursor:pointer; }
.pass-choice__select > span { display:flex; justify-content:center; align-items:center; min-height:42px; padding:8px 10px 8px 29px; border:1.5px solid rgba(6,43,64,.28); border-radius:9px; color:#173f50; background:#fff; font-size:10px; font-weight:900; text-align:center; }
.pass-choice__select > span::before { content:""; position:absolute; left:10px; width:14px; height:14px; border:1.5px solid #6f7f87; border-radius:50%; background:#fff; }
.pass-choice__select input:checked + span { border-color:var(--orange); color:#fff; background:var(--orange); box-shadow:0 0 0 2px rgba(216,69,13,.12); }
.pass-choice__select input:checked + span::before { border:4px solid #fff; background:var(--orange); }
.pass-choice__select input:focus-visible + span { outline:3px solid rgba(216,69,13,.25); outline-offset:2px; }
.pass-choice.is-selected .pass-choice__face { border-color:var(--orange); box-shadow:0 0 0 3px rgba(216,69,13,.18),0 12px 25px rgba(6,43,64,.2); }
.activity-section h2 small { color:#657680; font-size:11px; font-weight:400; text-transform:none; }
.choice-grid--experience { grid-template-columns: repeat(5,minmax(0,1fr)); }
.account-info { margin-top: 22px; padding: 18px 20px; border-left: 4px solid #6e8b00; border-radius: 8px; background: #f2f6df; }
.account-info[hidden] { display:none; }
.account-info p { margin: 7px 0 0; color:#405965; line-height:1.5; }
.registration-summary { grid-column:1 / -1; }
.summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.summary-lead { grid-column:1 / -1; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:18px; align-items:center; padding:22px 24px; border-radius:14px; color:white; background:linear-gradient(135deg,#07364d,#0b526a); box-shadow:0 8px 22px rgba(6,43,64,.14); }
.summary-lead__avatar { display:grid; place-items:center; width:54px; height:54px; border:2px solid rgba(255,255,255,.65); border-radius:50%; background:rgba(255,255,255,.12); font-size:18px; font-weight:900; }
.summary-lead p { margin:0 0 3px; color:#cbe0e8; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.summary-lead h2 { margin:0 0 5px; color:white; font-size:24px; }
.summary-lead div > span { display:block; color:#e3eef2; line-height:1.4; }
.summary-lead > strong { max-width:210px; padding:9px 12px; border:1px solid rgba(255,255,255,.28); border-radius:9px; color:white; background:rgba(255,255,255,.1); font-size:12px; line-height:1.35; text-align:center; }
.summary-card { overflow:hidden; border:1px solid rgba(6,43,64,.16); border-radius:14px; background:#fff; box-shadow:0 4px 14px rgba(6,43,64,.05); }
.summary-card--wide { grid-column:1 / -1; }
.summary-card__head { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:15px 18px; border-bottom:1px solid rgba(6,43,64,.11); background:#f3f0e9; }
.summary-card__head small { display:block; margin-bottom:3px; color:#667983; font-size:10px; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.summary-card__actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.summary-card h2 { margin:0; color:var(--ink); font-size:17px; }
.summary-card button { padding:6px 11px; border:1px solid rgba(205,91,34,.35); border-radius:8px; color:var(--orange); background:white; cursor:pointer; font-weight:800; }
.summary-card button:hover { border-color:var(--orange); background:#fff8f3; }
.summary-card button.summary-card__remove { color:#a12e2e; border-color:rgba(161,46,46,.3); }
.summary-card dl { margin:0; padding:4px 18px 7px; }
.summary-row { display:grid; grid-template-columns:minmax(115px,35%) minmax(0,1fr); gap:16px; align-items:start; padding:11px 0; border-bottom:1px solid rgba(6,43,64,.08); }
.summary-row:last-child { border-bottom:0; }
.summary-card dt { color:#667983; font-size:11px; font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.summary-card dd { overflow-wrap:anywhere; margin:0; color:#173f50; font-weight:650; line-height:1.45; }
.summary-add-participant { display:grid; grid-template-columns:auto 1fr; gap:2px 13px; align-items:center; width:100%; margin-top:18px; padding:17px 20px; border:2px dashed rgba(11,82,106,.35); border-radius:14px; color:#0b526a; background:#f4fafb; cursor:pointer; text-align:left; }
.summary-add-participant[hidden] { display:none; }
.summary-add-participant > span { grid-row:1 / 3; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; color:white; background:#0b526a; font-size:24px; line-height:1; }
.summary-add-participant strong { font-size:15px; }
.summary-add-participant small { color:#59717c; }
.summary-add-participant:hover { border-color:#0b526a; background:#eaf5f7; }
.registration-form--consents, .registration-confirmation { grid-column:1 / -1; }
.consent-section { margin-bottom:18px; padding:24px; border:1px solid rgba(6,43,64,.16); border-radius:14px; background:#fff; box-shadow:0 4px 14px rgba(6,43,64,.04); }
.consent-section__heading { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-bottom:13px; }
.consent-section__heading > div { display:flex; gap:10px; align-items:center; }
.consent-section__heading div > span { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:white; background:var(--ink); font-weight:900; }
.consent-section__heading h2 { margin:0; color:var(--ink); font-size:21px; }
.consent-section__heading > small { padding:5px 9px; border-radius:20px; color:#536873; background:#edf0f1; font-weight:800; }
.terms-section .consent-section__heading > small { color:#8a3c1a; background:#fff0e7; }
.terms-toc { display:flex; flex-wrap:wrap; gap:8px 22px; margin:0 0 15px; padding:11px 14px; border-radius:9px; background:#f3f0e9; }
.terms-toc a { color:#214a5d; font-size:12px; font-weight:750; text-decoration:underline; text-underline-offset:3px; }
.terms-scroll { height:320px; overflow:auto; padding:18px 20px; border:1px solid rgba(6,43,64,.2); border-radius:10px; background:#fffefb; scroll-behavior:smooth; }
.terms-scroll:focus { outline:3px solid rgba(238,102,29,.3); outline-offset:2px; }
.terms-scroll section { scroll-margin-top:15px; }
.terms-scroll h3 { margin:0 0 7px; color:#123f54; font-size:16px; }
.terms-scroll p { margin:0 0 15px; color:#405965; line-height:1.55; }
.terms-scroll-hint { margin:10px 0 0; color:#687b84; font-size:12px; }
.terms-scroll-hint.is-complete { color:#4d7200; font-weight:800; }
.terms-actions { display:flex; gap:18px; align-items:center; margin-top:14px; }
.terms-accept { min-width:250px; border-color:#073e56; color:white; background:#073e56; }
.terms-accept:disabled { border-color:#c9d0d3; color:#78868c; background:#e8ecee; box-shadow:none; cursor:not-allowed; }
.terms-accept.is-accepted { border-color:#567800; color:white; background:#567800; }
.terms-withdraw { border:0; border-bottom:1px solid currentColor; padding:5px 1px; color:#274b5b; background:transparent; cursor:pointer; font-weight:800; }
.terms-accepted { margin:12px 0 0; color:#4d7200; font-size:12px; font-weight:800; }
.terms-accepted[hidden], .terms-withdraw[hidden] { display:none; }
.marketing-section { padding-bottom:8px; }
.marketing-row { display:grid; grid-template-columns:minmax(230px,.95fr) minmax(0,1.4fr); gap:24px; align-items:start; padding:17px 0; border-top:1px solid rgba(6,43,64,.1); }
.marketing-scope { display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:start; color:#173f50; font-weight:750; line-height:1.4; cursor:pointer; }
.marketing-scope input { width:18px; height:18px; margin-top:1px; accent-color:var(--orange); }
.marketing-scope small { grid-column:2; color:#687b84; font-size:11px; font-weight:500; }
.marketing-row fieldset { min-width:0; margin:0; padding:0; border:0; }
.marketing-row legend { margin-bottom:7px; color:#61727b; font-size:11px; font-weight:800; text-transform:uppercase; }
.channel-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.channel-grid label { position:relative; cursor:pointer; }
.channel-grid input { position:absolute; opacity:0; }
.channel-grid span { display:block; padding:9px 6px; border:1px solid rgba(6,43,64,.25); border-radius:8px; color:#254d5e; background:white; font-size:12px; font-weight:800; text-align:center; }
.channel-grid input:checked + span { border-color:#6d8b00; color:#4e6900; background:#f2f7df; box-shadow:inset 0 0 0 1px #6d8b00; }
.channel-grid input:focus-visible + span { outline:3px solid rgba(238,102,29,.3); outline-offset:2px; }
.channel-grid input:disabled + span { border-color:#d7dcde; color:#9aa4a8; background:#eef1f2; cursor:not-allowed; }
.organizational-note { display:flex; gap:8px 16px; align-items:center; margin:4px 0 24px; padding:14px 18px; border-left:4px solid #0b526a; border-radius:8px; color:#284e5f; background:#edf4f6; }
.organizational-note span { line-height:1.4; }
.registration-confirmation { padding:clamp(35px,6vw,75px); text-align:center; }
.confirmation-mark { display:grid; place-items:center; width:76px; height:76px; margin:0 auto 18px; border-radius:50%; color:white; background:#5b7d00; font-size:36px; font-weight:900; box-shadow:0 8px 22px rgba(91,125,0,.22); }
.registration-confirmation h1 { margin:4px 0 12px; font-size:clamp(34px,5vw,54px); }
.registration-confirmation > p { max-width:700px; margin:0 auto 18px; color:#405965; line-height:1.55; }
.confirmation-reference { width:min(420px,100%); margin:24px auto; padding:17px; border:1px solid rgba(6,43,64,.18); border-radius:12px; background:#f3f0e9; }
.confirmation-reference span { display:block; color:#657680; font-size:11px; font-weight:800; text-transform:uppercase; }
.confirmation-reference strong { display:block; margin-top:5px; color:#0b4057; font-size:24px; letter-spacing:.05em; }
.registration-confirmation .registration-form__actions { justify-content:center; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
@media (max-width: 1000px) {
  .registration { width: min(100% - 28px, 900px); margin-top: 20px; }
  .registration__layout { grid-template-columns: 1fr; }
  .registration-aside { position: static; grid-column: 1; grid-row: 1; display: grid; grid-template-columns: auto 1fr; column-gap: 18px; align-items: center; }
  .registration-aside__icon { grid-row: 1 / 4; margin: 0; }
  .registration-aside p, .registration-aside strong { margin: 0; }
  .registration-aside [data-step-aside="1"] hr, .registration-aside [data-step-aside="1"] > span, .registration-aside [data-step-aside="1"] > small { display: none; }
  .registration-form { grid-row: 2; }
  .participant-summary__person > span { width: 48px; height: 48px; flex-basis: 48px; font-size: 17px; }
  .participant-summary hr { display: none; }
  .participant-summary button { margin-top: 10px; }
  .choice-grid--four, .choice-grid--preferred { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .choice-grid--experience { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pass-choice-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .form-grid--three { grid-template-columns: 1fr 1fr; }
  .registration-progress { overflow-x: auto; }
  .registration-progress ol { min-width: 720px; }
}
@media (max-width: 680px) {
  .registration-page { background-attachment: scroll; }
  .registration { width: calc(100% - 16px); margin: 10px auto 36px; }
  .registration__draft { align-items: flex-start; flex-direction: column; gap: 9px; }
  .registration-progress { padding: 18px 15px; border-radius: 14px 14px 0 0; }
  .registration-progress ol { display: flex; min-width: 0; justify-content: space-between; }
  .registration-progress li { gap: 5px; }
  .registration-progress li span { width: 34px; height: 34px; font-size: 14px; }
  .registration-progress li strong { display: none; }
  .registration-progress li.is-current strong { position: absolute; display: block; top: 39px; font-size: 10px; }
  .registration-progress li:not(:last-child)::before { top: 16px; left: calc(50% + 20px); width: calc(100% - 40px); }
  .registration-progress li:not(:last-child)::after { display: none; }
  .registration__layout { gap: 14px; padding: 30px 10px 14px; border-radius: 0 0 14px 14px; }
  .registration-aside { padding: 16px; border-radius: 12px; }
  .registration-aside__icon { width: 48px; height: 48px; font-size: 22px; }
  .registration-aside p, .registration-aside > strong { font-size: 16px; }
  .registration-form { padding: 24px 16px; border-radius: 12px; }
  .registration-form__heading { gap: 10px; margin-bottom: 27px; }
  .registration-form__mark { display: none; }
  .registration-form__heading h1 { font-size: 31px; }
  .registration-form__heading p { font-size: 15px; line-height: 1.4; }
  .form-grid { grid-template-columns: 1fr; gap: 15px; }
  .form-grid--three, .choice-grid--four, .choice-grid--two, .choice-grid--preferred { grid-template-columns: 1fr; }
  .field--full { grid-column: auto; }
  .birth-date__inputs { gap: 5px; }
  .birth-date__inputs label { width: 66px; }
  .birth-date__inputs .birth-date__year { width: 88px; }
  .birth-date__inputs input { padding: 9px 5px; }
  .birth-date__picker-button { width: 48px; height: 54px; flex-basis: 48px; }
  .field-help { left: 0; width: 100%; }
  .registration-form__actions { flex-direction: column-reverse; }
  .registration-button { width: 100%; min-width: 0; }
  .contact-section { padding: 18px 13px; }
  .activity-cards, .choice-grid--experience { grid-template-columns: 1fr; }
  .pass-choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .pass-choice__face { border-radius:12px; }
  .pass-choice__content strong { font-size:clamp(17px,5.3vw,21px); }
  .pass-choice[data-variant="regular"] .pass-choice__content strong,
  .pass-choice[data-variant="flex"] .pass-choice__content strong { font-size:clamp(15px,4.8vw,19px); }
  .pass-choice__content b { font-size:clamp(30px,10vw,40px); }
  .summary-grid { grid-template-columns:1fr; }
  .summary-lead { grid-template-columns:auto 1fr; padding:18px; }
  .summary-lead > strong { grid-column:1 / -1; max-width:none; text-align:left; }
  .summary-card--wide { grid-column:auto; }
  .summary-card__head { align-items:flex-start; flex-direction:column; }
  .summary-card__actions { justify-content:flex-start; }
  .summary-row { grid-template-columns:1fr; gap:3px; }
  .consent-section { padding:18px 13px; }
  .consent-section__heading { align-items:flex-start; }
  .consent-section__heading h2 { font-size:18px; }
  .terms-toc { display:none; }
  .terms-scroll { height:300px; padding:15px; }
  .terms-actions { align-items:stretch; flex-direction:column; gap:8px; }
  .terms-accept { width:100%; min-width:0; }
  .marketing-row { grid-template-columns:1fr; gap:13px; }
  .channel-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .organizational-note { align-items:flex-start; flex-direction:column; }
  .registration-confirmation { padding:35px 18px; }
}
