/* Membership follows the institutional type, colour and spacing system. */
.brand img,.auth-intro img {border-radius:12px}
.maintenance-top .brand {border-radius:14px;overflow:hidden}
.membership-hero {background:var(--forest);color:#fff}
.membership-hero .eyebrow {color:var(--gold)}
.membership-hero .breadcrumb,.membership-hero .breadcrumb a {color:#dce6dd}
.membership-hero p {color:#dce6dd}
.membership-hero .button-row {margin-top:30px;gap:24px;align-items:center}
.membership-hero-link {display:inline-flex;gap:18px;align-items:center;min-height:48px;color:#fff;font-size:1rem}
.membership-categories {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 36px}
.membership-categories article {display:flex;flex-direction:column;border-top:1px solid #bacbbb;padding:30px 0 38px;min-width:0}
.membership-categories .eyebrow {color:#526755;margin-bottom:15px}
.membership-categories h3 {font-family:'Source Serif 4',Georgia,serif;font-size:1.875rem;line-height:1.25;font-weight:500;letter-spacing:-.025em}
.membership-categories p {font-size:1.125rem;line-height:1.75;color:var(--muted);margin:18px 0 20px}
.membership-categories .inline-link {align-self:flex-start;margin-top:auto}
.section-membership_apply {background:var(--paper)}
.membership-next {display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:10%;align-items:center}
.membership-next .prose {margin-top:25px;max-width:650px}
.membership-next>div:last-child {justify-self:end}
.membership-next .button {gap:24px}
.application-hero {padding-block:48px 52px}
.application-hero h1 {max-width:1000px;font-size:clamp(2.8rem,4.2vw,4.5rem)}
.application-hero p {max-width:750px}
.application-section {padding-top:60px}
.application-layout {display:grid;grid-template-columns:250px minmax(0,1fr);gap:7%;align-items:start}
.application-guide {position:sticky;top:30px;min-width:0}
.application-guide h2 {font-family:'DM Sans',Arial,sans-serif;font-size:1.125rem;line-height:1.4;letter-spacing:-.01em}
.application-jump>summary {display:none}
.application-guide ol {list-style:none;counter-reset:application;display:grid;gap:0;padding:20px 0}
.application-guide li {counter-increment:application;border-bottom:1px solid var(--line)}
.application-guide li a {display:flex;align-items:center;gap:12px;padding:12px 0;min-height:48px;font-size:.9375rem;color:#4f6355;text-decoration:none}
.application-guide li a:before {content:counter(application,decimal-leading-zero);font-size:.875rem;color:#4f6355;flex-shrink:0}
.application-guide li a:hover {color:var(--forest);text-decoration:underline;text-underline-offset:4px}
.application-help {border-top:1px solid var(--line);padding-top:24px}
.application-help strong {font-size:1rem;display:block}
.application-help>a {font-size:1rem;display:block;min-height:44px;padding-block:8px}
.application-help p {font-size:.9375rem;line-height:1.7;color:#4f6355}
.application-required {font-size:.9375rem;color:#4f6355;margin:0 0 32px}
.application-fieldset {min-width:0;border:0;border-top:1px solid #b8cab9;padding:30px 0 36px;margin:0}
.application-fieldset>legend {padding:0 0 0 0;float:left;width:100%;font-size:1.375rem;font-weight:500;line-height:1.4;display:flex;gap:20px;align-items:baseline;margin:0 0 22px}
.application-fieldset>legend>span {font-size:.875rem;color:#4f6355;letter-spacing:.08em}
.application-fieldset>legend+* {clear:both}
.fieldset-intro {font-size:1.0625rem;line-height:1.75;color:#4f6355;margin:0 0 26px;max-width:820px}
.membership-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 28px}
.membership-fields>* {min-width:0}
.membership-field>label,.membership-fields>label {font-size:1rem;line-height:1.5;font-weight:500;color:var(--ink);display:block}
.membership-field>input,.membership-field>select,.membership-field>textarea {margin-top:8px}
.membership-field.full {grid-column:1/-1}
.membership-field .field-help,.membership-documents .field-help {display:block;font-size:.875rem;margin:8px 0 0;color:#4f6355;line-height:1.6;font-weight:400}
.membership-fields input,.membership-fields select,.membership-fields textarea {font-size:1rem;min-height:52px}
.membership-fields textarea {min-height:135px}
.choice-field {border:0;min-width:0;padding:0}
.choice-field>legend {font-size:1rem;font-weight:500;margin-bottom:15px;line-height:1.5}
.membership-choices {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 24px}
.membership-form .check {font-size:1rem;line-height:1.6;align-items:flex-start;gap:12px;font-weight:400;max-width:100%;margin:0}
.membership-form .check input {width:24px;height:24px;min-height:24px;margin-top:1px;flex-shrink:0}
.membership-form .check span {min-width:0}
.membership-form #application-declaration>.check {margin:26px 0}
.membership-form .application-fieldset>.check+.check {margin-top:22px}
.membership-documents {display:grid;gap:25px}
.membership-documents>label {font-size:1rem;font-weight:500;border-bottom:1px solid var(--line);padding-bottom:25px;margin:0}
.membership-documents>label:last-child {border-bottom:0;padding-bottom:0}
.membership-documents input[type=file] {font-size:1rem;padding:8px;max-width:100%;margin-top:12px;background:#f6f8f4;border-color:#7b907f}
.membership-documents input[type=file]::file-selector-button {font:inherit;border:1px solid #7b907f;padding:8px 12px;margin-right:12px;background:#fff;color:var(--forest);border-radius:3px;cursor:pointer}
.application-terms {font-size:1.0625rem;line-height:1.8;color:#4f6355}
.membership-form .optional-label {font-size:.875rem;color:#4f6355}
.application-submit {border-top:1px solid #b8cab9;padding-top:28px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.application-submit p {font-size:.9375rem;line-height:1.7;color:#4f6355;max-width:350px;margin:0}
.application-submit .button {gap:28px;flex-shrink:0}
.field-invalid>input,.field-invalid>select,.field-invalid>textarea {border-color:#a1372b}
.field-error {font-size:.9375rem;line-height:1.6;color:#8b3527;margin:9px 0 0}
.application-errors {margin:0 0 30px}
.application-errors ul {margin:15px 0;padding-left:24px}
.application-errors a {text-decoration:underline}
.application-errors p {margin-top:15px;font-size:1rem}
.application-receipt {max-width:800px;padding-bottom:30px}
.application-receipt h2 {font-size:clamp(2.25rem,4vw,3.25rem);line-height:1.2}
.application-receipt>p {font-size:1.125rem;line-height:1.8;margin-top:25px}
.application-reference {border-block:1px solid #bacbbb;padding:24px 0;margin:32px 0;display:grid;gap:8px}
.application-reference span {font-size:.9375rem;color:#4f6355}
.application-reference strong {font-size:1.4rem;font-weight:500;letter-spacing:.03em}
@media(max-width:1080px) {
 .membership-categories {grid-template-columns:repeat(2,minmax(0,1fr));gap:0 30px}
 .application-layout {grid-template-columns:210px minmax(0,1fr);gap:5%}
 .membership-choices {grid-template-columns:1fr}
 .application-submit {align-items:flex-start;flex-direction:column}
}
@media(max-width:760px) {
 .membership-categories {grid-template-columns:1fr}
 .membership-categories h3 {font-size:1.75rem}
 .membership-categories p {font-size:1.0625rem}
 .membership-next {grid-template-columns:1fr;gap:25px}
 .membership-next>div:last-child {justify-self:start}
 .application-hero {padding-block:30px 38px}
 .application-hero h1 {font-size:clamp(2.25rem,7vw,3rem)}
 .application-section {padding-top:35px}
 .application-layout {grid-template-columns:1fr;gap:35px}
 .application-guide {position:static}
 .application-guide>h2 {display:none}
 .application-jump>summary {display:list-item;font-size:1rem;min-height:48px;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer}
 .application-layout {gap:24px}
 .application-guide ol {grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;padding-bottom:0}
 .application-guide li a {font-size:.9375rem}
 .application-help {display:none}
 .membership-fields {grid-template-columns:1fr;gap:23px}
 .membership-field.full {grid-column:auto}
 .application-fieldset {padding-block:25px 32px}
 .application-fieldset>legend {font-size:1.25rem;gap:14px}
 .fieldset-intro,.application-terms,.application-receipt>p {font-size:1.0625rem}
 .membership-documents input[type=file]::file-selector-button {margin-right:8px;padding:8px}
 .application-submit .button {width:100%;justify-content:space-between}
 .membership-hero .button-row {align-items:flex-start;gap:15px}
}
