.member-page { background:#f5f3ef; color:#253d3c; }
.member-shell { width:92%; max-width:1100px; width:min(1100px,92%); margin:2.5rem auto 4rem; }
.member-shell.narrow { max-width:780px; }
.member-shell h1 { font-size:2.5rem; font-size:clamp(2rem,5vw,3.3rem); margin:.5rem 0 1.25rem; }
.member-shell h2 { font-size:1.65rem; margin:0 0 1rem; }
.member-shell h3 { font-size:1.15rem; margin:.7rem 0; }
.member-card { border:1px solid #dadfd8; background:#fff; border-radius:12px; padding:1.5rem; padding:clamp(1.2rem,4vw,2.25rem); margin:1.4rem 0; }
.member-nav,.dashboard-tabs,.wizard-steps { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.member-nav a,.dashboard-tabs a,.wizard-steps a { padding:.65rem .2rem; }
.member-nav form { margin:0; }
.dashboard-tabs,.wizard-steps { padding:.8rem 0; border-bottom:1px solid #cbd8d3; margin-bottom:1.25rem; }
.dashboard-tabs a { min-height:44px; display:inline-flex; align-items:center; }
.dashboard-status { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; margin:.5rem 0 1rem; }
.dashboard-status strong { font-weight:600; }
.dashboard-review-status { border-left:3px solid #a8793b; background:#faf5e9; padding:.85rem 1rem; margin:1rem 0; }
.member-card[id] { scroll-margin-top:1rem; }
.wizard-steps a[aria-current],.dashboard-tabs a[aria-current] { font-weight:700; border-bottom:3px solid #315c51; }
.member-form { display:flex; flex-direction:column; gap:1.1rem; margin:1.1rem 0; }
.member-form label { display:flex; flex-direction:column; gap:.45rem; font-weight:600; }
.member-form input,.member-form select,.member-form textarea { width:100%; font:inherit; padding:.75rem; border:1px solid #849a91; border-radius:5px; background:#fff; color:#253d3c; }
.member-form textarea { resize:vertical; }
.member-form .check { flex-direction:row; align-items:flex-start; font-weight:400; }
.member-form .check input { width:1.2rem; height:1.2rem; margin:.15rem .5rem 0 0; flex-shrink:0; }
.training-declarations { min-width:0; margin:0; padding:14px 16px; border:1px solid #cbd8d3; }
.training-declarations legend { padding:0 6px; font-weight:600; }
.training-declarations > label.check { display:flex; align-items:flex-start; gap:.65rem; font-weight:400; }
.training-declarations > label.check input { width:1.2rem; min-width:1.2rem; height:1.2rem; padding:0; margin:.15rem 0 0; accent-color:#315c51; }
.training-declarations > label:not(.check) { margin:.8rem 0; }
.member-form .button { align-self:flex-start; }
.member-form small { font-weight:400; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.member-shell summary { cursor:pointer; padding:.75rem 0; font-weight:600; }
.member-shell small { display:block; font-size:.85rem; overflow-wrap:anywhere; }
.member-shell a { overflow-wrap:anywhere; }
.application-row { padding:1rem 0; border-bottom:1px solid #dce3de; }
.application-row:last-child { border-bottom:0; }
.request-message { padding:1rem; border-left:4px solid #a8793b; background:#faf5e9; margin:1rem 0; }
.application-data { margin:1rem 0; }
.application-data div { margin:1rem 0; }
.application-data dt { font-weight:700; }
.application-data dd { margin:.3rem 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.snapshot { white-space:pre-wrap; overflow-wrap:anywhere; font-size:.85rem; padding:1rem; background:#f5f3ef; }
.member-photo { width:140px; height:140px; object-fit:cover; border-radius:8px; }
.member-shell .button { min-height:44px; }
.member-shell .button:disabled { opacity:.5; cursor:not-allowed; }
.member-shell :focus,.member-nav :focus,.member-shell :focus-visible,.member-nav :focus-visible { outline:3px solid #a86f28; outline-offset:4px; }
.member-footer { width:auto; max-width:none; margin:0; font-size:.78rem; }
.document-list li { margin:.8rem 0; }
@media(max-width:650px) { .form-grid { grid-template-columns:1fr; }.member-page .site-header { flex-wrap:wrap; gap:1rem; }.member-nav { width:100%; gap:.7rem; }.dashboard-tabs { display:grid; align-items:start; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.35rem .8rem; }.dashboard-tabs a { align-self:start; padding:.65rem 0; }.wizard-steps { display:block; }.wizard-steps a { display:block; }.member-shell .button-row { display:flex; flex-wrap:wrap; } }
.member-nav button.text-link { border:0; background:transparent; font:inherit; cursor:pointer; min-height:44px; padding:.5rem 0; color:inherit; }

/* Membership information follows the public site's paper, ochre and olive palette. */
.membership-content { width:min(1060px,90%); margin:0 auto; }
.membership-intro { max-width:780px; padding:64px 0 45px; }
.membership-intro h1 { font-size:clamp(2.7rem,5vw,4.2rem); line-height:1.07; letter-spacing:-.035em; margin:16px 0 25px; }
.membership-intro .lead { max-width:690px; font-size:1.15rem; }
.membership-welcome { color:var(--muted); font-size:.9rem; }
.membership-explanation { max-width:840px; margin:0 0 38px; }
.membership-content .membership-explanation h2 { font-size:1.55rem; line-height:1.3; margin:0 0 14px; }
.membership-explanation p { max-width:790px; margin:0 0 12px; font-size:.94rem; line-height:1.65; }
.membership-explanation .membership-explanation-note { margin:18px 0 0; color:var(--muted); font-size:.88rem; }
.membership-content h2 { font-size:clamp(1.8rem,3vw,2.25rem); line-height:1.2; margin:10px 0 18px; }
.membership-section-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; }
.membership-section-heading > p { max-width:310px; color:var(--muted); font-size:.9rem; }
.fee-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin:24px 0 15px; }
.fee-card { background:var(--white); border:1px solid var(--line); border-top:3px solid var(--ochre); padding:26px 32px; border-radius:4px; }
.fee-card h3 { font-weight:500; font-size:1.05rem; margin:0; }
.fee-amount { margin:8px 0 18px; color:var(--ochre-dark); }
.fee-amount span:first-child { font:2.9rem var(--serif); letter-spacing:-.03em; }
.fee-amount span + span { color:var(--muted); font-size:.85rem; }
.fee-card dl { font-size:.88rem; margin:0; }
.fee-card dl div { display:flex; justify-content:space-between; gap:16px; padding:7px 0; }
.fee-card dd { margin:0; font-variant-numeric:tabular-nums; text-align:right; }
.fee-card .fee-total { margin-top:12px; padding-top:16px; border-top:1px solid var(--line); font-weight:600; }
.fee-note { color:var(--muted); font-size:.83rem; max-width:790px; }
.membership-detail { border-bottom:1px solid var(--line); }
.membership-detail summary { cursor:pointer; padding:20px 0; font-size:.95rem; font-weight:500; }
.membership-detail summary::marker { color:var(--ochre); }
.detail-copy { max-width:810px; padding:0 0 18px 20px; color:var(--muted); font-size:.91rem; }
.detail-copy strong { color:var(--ink); font-weight:600; }
.membership-process { padding:50px 0 38px; }
.membership-stages { list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; padding:18px 0 0; margin:0; }
.membership-stages li { position:relative; }
.membership-stages li:not(:last-child)::after { content:""; position:absolute; top:24px; left:65px; right:0; border-top:1px solid var(--line); }
.stage-icon { width:48px; height:48px; display:grid; place-items:center; background:var(--paper-deep); border-radius:50%; color:var(--olive); }
.stage-icon svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.membership-stages h3 { margin:18px 0 7px; font-weight:500; font-size:1rem; }
.membership-stages h3 span { margin-right:7px; color:var(--ochre-dark); font-size:.75rem; }
.membership-stages p { color:var(--muted); font-size:.85rem; margin:0; max-width:210px; }
.membership-apply { display:flex; align-items:center; gap:36px; justify-content:space-between; padding:30px 34px; margin:14px 0 50px; color:var(--white); background:var(--olive); border-radius:4px; }
.membership-apply .eyebrow { color:#e3c9a5; }
.membership-apply h2 { margin-bottom:12px; }
.membership-apply p:last-child { max-width:560px; font-size:.9rem; margin-bottom:0; }
.membership-apply .button { flex-shrink:0; background:var(--white); color:var(--ink); border-color:var(--white); }
.membership-apply .button:hover { background:var(--paper-deep); }
.membership-boundary { max-width:840px; margin:25px 0 0; font-size:.85rem; color:var(--muted); }
.membership-governance { display:grid; grid-template-columns:1fr 1fr; gap:50px; margin:48px 0 65px; padding-top:32px; border-top:1px solid var(--line); }
.membership-governance p { color:var(--muted); font-size:.9rem; }
.membership-content :focus-visible { outline:3px solid var(--ochre); outline-offset:5px; }
.requirements-list { padding-left:1.3rem; }
.requirements-list li { padding:3px 0; }
.wizard-heading h1 { margin-bottom:.6rem; }
.wizard-pathway { color:var(--ochre-dark); font-weight:600; margin-top:0; }
.wizard-progress { display:flex; align-items:center; gap:16px; margin:25px 0 5px; font-size:.82rem; }
.wizard-progress progress { flex:1; height:6px; border:0; border-radius:8px; background:#dadfd8; accent-color:var(--olive); }
.wizard-progress progress::-webkit-progress-bar { background:#dadfd8; border-radius:8px; }
.wizard-progress progress::-webkit-progress-value { background:var(--olive); border-radius:8px; }
.wizard-guidance { padding:18px 22px; margin:20px 0; border-left:3px solid var(--ochre); background:var(--paper); font-size:.9rem; }
.wizard-guidance h3 { margin-top:0; }
.wizard-guidance p:last-child { margin-bottom:0; }
.wizard-page .wizard-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; align-items:stretch; }
.wizard-page .wizard-steps a { font-size:.8rem; line-height:1.5; }
.wizard-page .button-row { display:flex; gap:12px; flex-wrap:wrap; }
.wizard-return { display:flex; justify-content:space-between; gap:20px; margin:24px 0; font-size:.9rem; }
@media(max-width:1100px) { .site-nav { gap:18px; font-size:.78rem; } }
@media(max-width:760px) {
  .membership-intro { padding:42px 0 30px; }
  .membership-section-heading { display:block; }
  .membership-section-heading > p { max-width:none; }
  .membership-stages { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 24px; }
  .membership-stages li:nth-child(2)::after { display:none; }
  .membership-apply { display:block; padding:26px; }
  .membership-apply .button { margin-top:24px; }
  .membership-governance { grid-template-columns:1fr; gap:10px; }
}
@media(max-width:520px) {
  .fee-grid { grid-template-columns:1fr; gap:16px; }
  .fee-card { padding:24px; }
  .membership-process { padding-top:36px; }
  .membership-content h2 { font-size:1.8rem; }
  .wizard-page .wizard-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wizard-return { flex-direction:column; gap:10px; }
}
.agreement-list { display:flex; flex-direction:column; }
.agreement-entry { padding:.8rem 0; border-bottom:1px solid #dce3de; }
.agreement-entry:first-child { padding-top:0; }
.agreement-entry:last-child { padding-bottom:0; border-bottom:0; }
.agreement-title-line { display:flex; flex-wrap:wrap; align-items:baseline; gap:.35rem .75rem; margin:.2rem 0; }
.agreement-title { font-weight:600; }
.agreement-read-link { color:#315c51; font-size:.86rem; font-weight:600; text-underline-offset:.18em; }
.agreement-disclosure > summary { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .65rem; min-height:44px; padding:.35rem 0; cursor:pointer; font-weight:600; list-style:none; }
.agreement-disclosure > summary::-webkit-details-marker { display:none; }
.agreement-disclosure > summary::marker { content:""; }
.agreement-chevron { width:.55rem; height:.55rem; flex:0 0 .55rem; margin-right:.1rem; border-top:2px solid var(--ochre); border-right:2px solid var(--ochre); transform:rotate(45deg); transition:transform .18s ease; }
.agreement-disclosure[open] > summary .agreement-chevron { transform:rotate(135deg); }
.agreement-disclosure > summary small { font-weight:400; }
.agreement-copy { padding:0 0 .35rem 1.45rem; font-size:.9rem; line-height:1.6; }
.agreement-copy p { margin:.45rem 0; }
.agreement-copy p:last-child { margin-bottom:0; }
@media(prefers-reduced-motion:reduce) { .agreement-chevron { transition:none; } }
