.membership-main { padding-bottom: 1rem; }
.membership-intro { max-width: 46rem; }
.membership-steps { display: flex; flex-wrap: wrap; gap: .65rem 2.5rem; margin: 1.4rem 0 0; padding-left: 1.5rem; list-style-type: cjk-ideographic; }
html[lang="en"] .membership-steps { list-style-type: decimal; }
.membership-wrap { max-width: 56rem; margin: 0 auto; }
.membership-note { border-left: 4px solid var(--gold, #817142); background: var(--soft, #f4f7f8); padding: 1.1rem 1.4rem; margin: 0 0 2rem; }
.membership-note p:last-child { margin-bottom: 0; }
.membership-form fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
.membership-form .membership-group { border-top: 1px solid #c6d0d5; padding: 1.4rem 0 1.8rem; }
.membership-form legend { float: left; width: 100%; font-size: 1.3rem; color: var(--blue, #103b50); font-weight: 700; margin-bottom: 1.2rem; }
.membership-grid { clear: both; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.3rem 1.5rem; }
.membership-grid > .full { grid-column: 1 / -1; }
.membership-field { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.membership-field.full { grid-column: 1 / -1; }
.membership-field label { font-weight: 650; color: var(--blue, #103b50); }
.membership-field input,.membership-field select,.membership-field textarea { width: 100%; max-width: 100%; box-sizing: border-box; min-height: 48px; padding: .75rem; font: inherit; font-size: 1rem; line-height: 1.5; color: #18333f; background: #fff; border: 1px solid #899da8; border-radius: 3px; }
.membership-field textarea { min-height: 10rem; resize: vertical; }
.membership-field input:focus-visible,.membership-field select:focus-visible,.membership-field textarea:focus-visible,.membership-actions a:focus-visible,.membership-actions button:focus-visible { outline: 3px solid #357a98; outline-offset: 3px; }
.membership-help { font-size: .92rem; line-height: 1.65; color: #4c5d66; margin: 0; }
.membership-field-error { color: #9d2222; font-weight: 600; }
.membership-field-error:empty { display: none; }
.membership-form [aria-invalid="true"] { border-color: #9d2222; outline: 1px solid #9d2222; }
.membership-required { font-size: .86rem; font-weight: 500; color: #4c5d66; margin-left: .35rem; }
.membership-check { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: .4rem .7rem; align-items: start; margin: .9rem 0; }
.membership-check input { width: 20px; height: 20px; margin: .25rem 0 0; accent-color: var(--blue, #103b50); }
.membership-check label { line-height: 1.8; cursor: pointer; }
.membership-check .membership-field-error { grid-column: 2; }
.membership-actions { display: flex; gap: .8rem; flex-wrap: wrap; margin: 1.3rem 0; align-items: center; }
.membership-actions .button { min-height: 48px; }
.membership-errors { padding: 1rem 1.4rem; background: #fff4f2; border: 2px solid #9d2222; margin-bottom: 1.5rem; }
.membership-errors p { font-weight: 700; margin-top: 0; }
.membership-errors a { color: #842020; }
.membership-review { border: 1px solid #c6d0d5; border-top: 4px solid var(--gold, #817142); padding: 1.6rem; margin-top: 2rem; background: #f5f8fa; }
.membership-review h2 { margin-top: 0; }
.membership-review textarea { width: 100%; box-sizing: border-box; min-height: 20rem; padding: 1rem; color: #18333f; background: #fff; border: 1px solid #899da8; font: inherit; font-size: .96rem; line-height: 1.7; resize: vertical; }
.membership-delivery-note { border-left: 4px solid #817142; padding: .8rem 1rem; background: #fff; }
.membership-status { min-height: 1.8rem; line-height: 1.8; font-weight: 600; color: #173e51; }
.membership-privacy-notice summary { cursor: pointer; font-weight: 700; padding: .6rem 0; }
.membership-privacy-notice dt { font-weight: 700; margin-top: 1rem; }
.membership-privacy-notice dd { margin: .4rem 0 1rem; line-height: 1.8; overflow-wrap: anywhere; }
.membership-privacy-notice a { display: inline-block; margin: .3rem .7rem .3rem 0; }
.membership-privacy-status { border-left: 4px solid #817142; padding: .6rem .8rem; font-weight: 700; }
.membership-actions button:disabled { opacity: .6; cursor: not-allowed; }
.membership-verification { clear: both; }
.membership-verification p { clear: both; overflow-wrap: anywhere; }
.membership-verification .membership-field { max-width: 30rem; margin-top: 1rem; }
.membership-verification .button { min-height: 48px; white-space: normal; max-width: 100%; }
.membership-verification button:disabled { opacity: .6; cursor: not-allowed; }
.membership-verification button:focus-visible { outline: 3px solid #357a98; outline-offset: 3px; }
.membership-form [hidden],.membership-review[hidden],.membership-delivery-note[hidden],.membership-errors[hidden] { display: none !important; }
@media (max-width: 680px) {
  .membership-grid { grid-template-columns: minmax(0, 1fr); }
  .membership-steps { display: block; }
  .membership-steps li { margin: .5rem 0; }
  .membership-note,.membership-review { padding: 1rem; }
  .membership-actions { align-items: stretch; flex-direction: column; }
  .membership-actions .button { width: 100%; box-sizing: border-box; }
}
@media print {
  .membership-actions,.membership-status,.membership-errors { display: none !important; }
  .membership-form,.membership-review { break-inside: auto; }
}
