/* Formal application additions: inherit the existing deep-blue/gold editorial system. */
.organizer-branding { min-width: 0; }
.organizer-logos.institution-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.institution-logos figure { min-width: 0; padding: 10px; border: 0; border-radius: 8px; }
.institution-logo-frame { height: 82px; display: flex; align-items: center; justify-content: center; }
.institution-logos .institution-logo-frame img { display: block; width: 100%; max-width: 140px; height: 82px; max-height: 82px; object-fit: contain; }
.institution-logos figcaption { padding-top: 8px; font-size: 12px; line-height: 1.5; color: #4f5a64; }
.institution-name { display: block; min-height: 36px; font-weight: 500; }
.institution-role { display: block; font-size: 10px; color: #67777d; font-weight: 400; letter-spacing: .08em; }

.register { background: linear-gradient(115deg, #204b5a, #102d43); }
.register-intro { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 9vw; align-items: end; margin-bottom: 32px; }
.register-intro .register-copy { max-width: 520px; }
.register-intro .button-ghost { padding-left: 0; }
.formal-registration-shell { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .45fr); gap: 24px; align-items: start; }
.formal-registration { max-width: none; min-width: 0; }
.formal-registration .form-heading { gap: 18px; align-items: flex-start; }
.formal-registration .form-heading > div { display: grid; gap: 4px; }
.formal-registration .form-heading small { display: block; }
.form-policy-version { flex: 0 0 auto; color: var(--red); font-size: 11px; font-weight: 700; letter-spacing: .06em; }
.registration-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 0 0 23px; padding: 0; list-style: none; }
.registration-steps li { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 8px 0; color: #75818a; border-bottom: 2px solid rgba(10,26,41,.13); font-size: 12px; }
.registration-steps b { display: grid; width: 22px; height: 22px; flex: 0 0 auto; place-items: center; color: #596a71; border: 1px solid currentColor; border-radius: 50%; font-size: 11px; }
.registration-steps .is-active { color: var(--red); border-bottom-color: var(--red); font-weight: 700; }
.registration-steps .is-complete { color: #285b4d; border-bottom-color: #5d8e78; }
.registration-steps .is-active b, .registration-steps .is-complete b { color: white; background: currentColor; }
.registration-step > h3 { margin: 0 0 7px; color: var(--ink); font-family: var(--sans); font-size: 23px; font-weight: 650; }
.step-intro { margin: 0 0 17px; color: #53636b; font-size: 13px; line-height: 1.75; }
.phone-row { grid-template-columns: 145px minmax(0, 1fr); }
.phone-row .phone-field { grid-column: 2; }
.phone-row .country-code-other:not([hidden]) + .phone-field { grid-column: auto; }
.registration-form select { width: 100%; margin-top: 5px; padding: 10px 0; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid rgba(10,26,41,.25); outline: 0; font-size: 13px; }
.registration-form select:focus { border-bottom-color: var(--red); }
.form-step-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 24px; }
.button-outline { color: var(--ink); background: transparent; border-color: rgba(10,26,41,.35); }
.button-outline:hover { color: var(--ink); border-color: var(--ink); background: #eee7d8; }
.formal-party-summary { margin: 0 0 16px; padding: 11px 13px; color: #294956; background: #eef0eb; border-left: 3px solid var(--gold); font-size: 13px; line-height: 1.65; }
.formal-member-list { display: grid; gap: 12px; margin-top: 14px; }
.formal-member-card { padding: 15px; background: rgba(238,231,216,.62); border-left: 3px solid var(--gold); }
.formal-member-card h4 { margin: 0 0 7px; color: var(--red); font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: .05em; }
.child-data-row { grid-template-columns: minmax(0, 1.2fr) minmax(105px, .45fr) minmax(0, 1.15fr); }
.formal-plan-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 7px; }
.registration-form .formal-plan-choice { color: #4e5f68; font-size: 11px; }
.formal-plan-warning { margin: 15px 0 0; padding: 11px 13px; color: #714837; background: #fbf1d5; border-left: 3px solid #c3843b; font-size: 13px; line-height: 1.65; }
.registration-disclosure { margin-top: 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.registration-disclosure summary { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 1px; color: var(--ink); cursor: pointer; font-size: 13px; font-weight: 700; }
.registration-disclosure summary span { color: var(--red); font-size: 18px; transition: transform .2s; }
.registration-disclosure[open] summary span { transform: rotate(45deg); }
.registration-disclosure > div { padding: 0 1px 11px; }
.registration-disclosure p { margin: 0 0 11px; color: #3e5560; font-size: 12px; line-height: 1.8; }
.check-label.optional { color: #596a71; }
.website-trap { position: absolute; left: -9999px; width: 1px !important; height: 1px; opacity: 0; }
.formal-status { min-height: 1.7em; margin-top: 15px; color: #38515d; font-size: 13px; line-height: 1.65; }
.formal-status.is-error { padding: 11px 13px; color: #7a342b; background: #faece7; border-left: 3px solid var(--red); }
.formal-success { margin-top: 15px; padding: 15px; color: #1e4d3d; background: #e7f0e8; border-left: 3px solid #4a8963; font-size: 13px; line-height: 1.75; }
.formal-success strong { display: block; margin-bottom: 5px; font-size: 16px; }
.formal-success p { margin: 5px 0 0; }
.plan-preview-fold { align-self: start; color: var(--ink); background: rgba(255,253,248,.92); border: 1px solid rgba(255,255,255,.2); box-shadow: 10px 10px 0 rgba(5,15,23,.14); }
.plan-preview-fold > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 17px; color: var(--ink); cursor: pointer; font-size: 14px; font-weight: 700; list-style: none; }
.plan-preview-fold > summary::-webkit-details-marker { display: none; }
.plan-preview-fold > summary span { color: var(--red); font-size: 19px; }
.plan-preview-fold[open] > summary span { transform: rotate(45deg); }
.plan-preview-fold > div { padding: 0 17px 17px; border-top: 1px solid var(--line); }
.plan-preview-fold > div > p { margin: 13px 0; color: #50616a; font-size: 12px; line-height: 1.7; }
.registration-preview { padding: 18px; box-shadow: none; border: 1px solid var(--line); }
.payment-info .bank-details > p { margin: 12px 0 0; color: rgba(255,255,255,.78); font-size: 12px; line-height: 1.7; }

@media (max-width: 980px) {
  .register-intro, .formal-registration-shell { grid-template-columns: 1fr; gap: 24px; }
  .register-intro { margin-bottom: 25px; }
  .plan-preview-fold { box-shadow: none; }
}

@media (max-width: 560px) {
  .organizer-logos.institution-logos { gap: 8px; }
  .institution-logos figure { padding: 8px 6px; }
  .institution-logo-frame, .institution-logos .institution-logo-frame img { height: 72px; max-height: 72px; }
  .registration-steps { gap: 3px; }
  .registration-steps li { gap: 5px; font-size: 10px; }
  .registration-steps b { width: 20px; height: 20px; }
  .form-policy-version { font-size: 10px; }
  .phone-row, .phone-row .phone-field, .phone-row .country-code-other:not([hidden]) + .phone-field, .child-data-row, .formal-plan-grid { grid-template-columns: 1fr; }
  .phone-row .phone-field { grid-column: auto; }
  .formal-member-card { padding: 13px; }
  .form-step-actions { align-items: stretch; flex-direction: column-reverse; }
  .form-step-actions .button { width: 100%; }
  .formal-registration .form-heading { flex-direction: column; gap: 5px; }
}

/* Keep hidden steps and optional fields hidden despite inherited display rules. */
.formal-registration [hidden], .formal-success[hidden] { display: none !important; }
.registration-steps .is-active b { background: var(--red); color: #fff; }
.registration-steps .is-complete b { background: #285b4d; color: #fff; }
@media (max-width: 560px) {
  .formal-registration input, .formal-registration select, .formal-registration textarea { font-size: 16px; }
}

.formal-count-controls { display: flex; flex-wrap: wrap; gap: 12px; margin: 14px 0; }
.formal-count-controls > div { display: flex; align-items: center; gap: 10px; color: var(--ink); }
.formal-count-controls span { font-weight: 600; font-size: 14px; }
.formal-count-controls button { min-width: 44px; min-height: 44px; border: 1px solid #bbc5c8; background: #f5f1e6; color: var(--ink); font-size: 20px; cursor: pointer; }
.formal-count-controls button:disabled { opacity: .4; cursor: default; }
.formal-count-controls output { min-width: 20px; text-align: center; font-weight: 700; }

/* The introduction contains one copy block: do not reserve an empty second column. */
.register-intro { grid-template-columns: 1fr; gap: 0; }
.register-intro .register-copy { max-width: 780px; }
