/* Bounded Membership composition. Shared public chrome remains in main.css. */

.membership-main {
    min-width: 0;
    padding: 0;
    background: #fff;
}

.membership-main > .public-breadcrumbs,
.membership-frame {
    width: min(1280px, calc(100% - var(--public-gutter-total)));
    margin-inline: auto;
}

.membership-main > .public-breadcrumbs {
    margin-block: 0;
    padding-block: 0.55rem;
}

.membership-page,
.membership-page * {
    min-width: 0;
}

.membership-page {
    overflow: clip;
    background: #fff;
}

.membership-page :is(p, h1, h2, h3, a, strong, small, dt, dd, th, td) {
    overflow-wrap: anywhere;
}

.membership-hero {
    border-top: 1px solid #efeff3;
    background: linear-gradient(115deg, #fff, #fbfaf7 67%, #f5f1ec);
}

.membership-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(25rem, 0.92fr);
    min-height: clamp(25rem, 33vw, 31rem);
}

.membership-hero__content {
    display: grid;
    align-content: center;
    gap: 1rem;
    padding: clamp(3.5rem, 6vw, 5.5rem) clamp(2.25rem, 5vw, 5.5rem) clamp(3.5rem, 6vw, 5.5rem) 0;
}

.membership-hero h1 {
    max-width: 16ch;
    color: var(--color-primary-deep);
    font-family: var(--font-serif);
    font-size: clamp(3rem, 4.8vw, 4.75rem);
    font-weight: 400;
    letter-spacing: -0.045em;
    line-height: 0.98;
}

.membership-hero__summary {
    max-width: 54ch;
    color: var(--color-text-muted);
    font-size: clamp(1rem, 1.35vw, 1.2rem);
    line-height: 1.75;
}

.membership-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    align-items: center;
}

.membership-actions .btn {
    min-width: 12.75rem;
    min-height: 44px;
}

.membership-hero__actions {
    margin-top: 0.65rem;
}

.membership-route {
    display: grid;
    align-content: center;
    gap: 1.25rem;
    margin-right: calc((100vw - min(1280px, calc(100vw - var(--public-gutter-total)))) / -2);
    padding: clamp(3rem, 5vw, 5rem) max(2.75rem, calc((100vw - 1280px) / 2)) clamp(3rem, 5vw, 5rem) clamp(2.25rem, 5vw, 5rem);
    background:
        radial-gradient(circle at 84% 20%, rgb(65 54 132 / 38%), transparent 38%),
        linear-gradient(135deg, #17133e, #080848 78%, #19105e);
    color: #fff;
}

.membership-route h2 {
    color: #fff;
    font-family: var(--font-serif);
    font-size: clamp(2rem, 3vw, 2.8rem);
    font-weight: 400;
    line-height: 1.12;
}

.membership-route ol {
    display: grid;
    margin: 0;
    padding: 0;
    list-style: none;
}

.membership-route li {
    display: grid;
    grid-template-columns: 3.5rem minmax(0, 1fr);
    gap: 1.2rem;
    align-items: start;
    padding: 1.1rem 0;
    border-top: 1px solid rgb(255 255 255 / 28%);
}

.membership-route li:first-child {
    border-top: 0;
    padding-top: 0;
}

.membership-route__number {
    display: grid;
    width: 3.25rem;
    height: 3.25rem;
    place-items: center;
    border: 1px solid #fff;
    border-radius: 50%;
    font-family: var(--font-serif);
    font-size: 1.75rem;
}

.membership-route h3 {
    color: #fff;
    font-family: var(--font-serif);
    font-size: 1.2rem;
    font-weight: 400;
}

.membership-route p {
    margin-top: 0.35rem;
    color: #e4e2f1;
    font-size: 0.92rem;
    line-height: 1.55;
}

.membership-local-nav {
    position: sticky;
    top: 7rem;
    z-index: 20;
    border-block: 1px solid var(--color-border);
    background: rgb(255 255 255 / 96%);
    backdrop-filter: blur(12px);
}

.membership-local-nav ul {
    display: grid;
    grid-template-columns: repeat(6, minmax(9rem, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
}

.membership-local-nav a {
    position: relative;
    display: grid;
    min-height: 58px;
    place-items: center;
    padding: 0.65rem 1rem;
    color: var(--color-primary-deep);
    font-size: 0.86rem;
    font-weight: 750;
    text-align: center;
    text-decoration: none;
}

.membership-local-nav a::after {
    position: absolute;
    right: 22%;
    bottom: -1px;
    left: 22%;
    height: 2px;
    background: transparent;
    content: "";
}

.membership-local-nav a:hover::after,
.membership-local-nav a:focus-visible::after {
    background: var(--color-primary);
}

.membership-section {
    scroll-margin-top: 11rem;
    border-bottom: 1px solid #ececf0;
}

.membership-section > .membership-frame {
    padding-block: clamp(2.75rem, 5vw, 4.75rem);
}

.membership-section__heading {
    display: grid;
    max-width: 58rem;
    gap: 0.7rem;
    margin-bottom: 2rem;
}

.membership-section__heading h2,
.membership-document h3,
.membership-final-cta h3 {
    color: var(--color-primary-deep);
    font-family: var(--font-serif);
    font-weight: 400;
    letter-spacing: -0.025em;
}

.membership-section__heading h2 {
    font-size: clamp(2rem, 3.3vw, 3rem);
    line-height: 1.08;
}

.membership-section__heading > p:not(.eyebrow),
.membership-section p,
.membership-type__body > p,
.membership-document p {
    color: var(--color-text-muted);
}

.membership-eligibility {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.5rem;
    margin-inline: clamp(0rem, 4vw, 4rem);
}

.membership-eligibility__item {
    display: grid;
    grid-template-columns: 4rem minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
    padding: 0.5rem 1.5rem 0.5rem 0;
}

.membership-eligibility__item + .membership-eligibility__item {
    border-left: 1px solid var(--color-border);
    padding-left: 2.5rem;
}

.membership-eligibility h3,
.membership-value h3 {
    color: var(--color-primary);
    font-family: var(--font-serif);
    font-size: 1.25rem;
    font-weight: 400;
}

.membership-eligibility p,
.membership-value p {
    margin-top: 0.4rem;
    line-height: 1.65;
}

.membership-icon {
    position: relative;
    display: block;
    width: 3.5rem;
    height: 3.5rem;
    border: 2px solid var(--color-primary);
    color: var(--color-primary);
}

.membership-eligibility__item--juristic .membership-icon {
    border-top: 0;
}

.membership-eligibility__item--juristic .membership-icon::before,
.membership-eligibility__item--juristic .membership-icon::after {
    position: absolute;
    bottom: 0;
    width: 1.4rem;
    height: 2.65rem;
    border: 2px solid currentcolor;
    background: #fff;
    content: "";
}

.membership-eligibility__item--juristic .membership-icon::before { left: 0.2rem; }
.membership-eligibility__item--juristic .membership-icon::after { right: 0.2rem; height: 2rem; }

.membership-eligibility__item--natural .membership-icon {
    border: 0;
    border-radius: 50%;
}

.membership-eligibility__item--natural .membership-icon::before {
    position: absolute;
    top: 0;
    left: 1rem;
    width: 1.4rem;
    height: 1.4rem;
    border: 2px solid currentcolor;
    border-radius: 50%;
    content: "";
}

.membership-eligibility__item--natural .membership-icon::after {
    position: absolute;
    right: 0.45rem;
    bottom: 0;
    left: 0.45rem;
    height: 1.7rem;
    border: 2px solid currentcolor;
    border-bottom: 0;
    border-radius: 2rem 2rem 0 0;
    content: "";
}

.membership-notice {
    display: grid;
    grid-template-columns: 1.75rem minmax(0, 1fr);
    gap: 0.75rem;
    align-items: center;
    margin: 2.25rem clamp(0rem, 4vw, 4rem) 0;
    padding: 0.85rem 1rem;
    border: 1px solid #cfc9ef;
    background: #fbfaff;
}

.membership-notice > span {
    display: grid;
    width: 1.5rem;
    height: 1.5rem;
    place-items: center;
    border-radius: 50%;
    background: var(--color-primary);
    color: #fff;
    font-family: var(--font-serif);
    font-weight: 700;
}

.membership-notice p {
    color: var(--color-primary);
    font-size: 0.92rem;
    font-weight: 650;
}

.membership-section--membership-types {
    background: linear-gradient(110deg, #fff, #faf9f7);
}

.membership-types {
    display: grid;
    border: 1px solid var(--color-border);
    background: #fff;
}

.membership-type {
    border-bottom: 1px solid var(--color-border);
}

.membership-type:last-child {
    border-bottom: 0;
}

.membership-type summary {
    display: grid;
    grid-template-columns: 1.5rem minmax(0, 1fr);
    gap: 0.8rem;
    min-height: 64px;
    align-items: center;
    padding: 0.8rem 1rem;
    cursor: pointer;
    list-style: none;
}

.membership-type summary::-webkit-details-marker { display: none; }

.membership-type summary::after {
    grid-column: 3;
    color: var(--color-primary);
    content: "+";
    font-size: 1.5rem;
}

.membership-type[open] summary::after { content: "−"; }

.membership-type[open] summary {
    background: linear-gradient(105deg, #413684, #5526bb);
    color: #fff;
}

.membership-type__marker {
    width: 1.25rem;
    height: 1.25rem;
    border: 1px solid currentcolor;
    border-radius: 50%;
}

.membership-type[open] .membership-type__marker::after {
    display: block;
    width: 0.55rem;
    height: 0.55rem;
    margin: 0.3rem;
    border-radius: 50%;
    background: currentcolor;
    content: "";
}

.membership-type summary strong,
.membership-type summary small {
    display: block;
}

.membership-type summary strong {
    font-size: 1.05rem;
}

.membership-type summary small {
    margin-top: 0.15rem;
    color: var(--color-primary);
    font-size: 0.78rem;
}

.membership-type[open] summary small { color: #ece8ff; }

.membership-type__body {
    display: grid;
    gap: 1rem;
    padding: 1.5rem;
}

.membership-type__body h3 {
    color: var(--color-primary);
    font-family: var(--font-serif);
    font-size: 2rem;
    font-weight: 400;
}

.membership-rights {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-block: 1px solid var(--color-border);
}

.membership-rights > div {
    padding: 1rem;
    border-left: 1px solid var(--color-border);
}

.membership-rights > div:first-child { border-left: 0; }
.membership-rights dt { font-size: 0.8rem; font-weight: 750; }
.membership-rights dd { color: var(--color-primary); font-size: 0.88rem; font-weight: 750; }

.membership-type__eligibility strong { font-size: 0.82rem; }
.membership-type__eligibility p { margin-top: 0.25rem; }

.membership-section--member-value > .membership-frame {
    padding-block: 0;
}

.membership-section__heading--visually-contained {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.membership-values {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-inline: 1px solid var(--color-border);
}

.membership-value {
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    padding: 1.75rem;
    border-left: 1px solid var(--color-border);
}

.membership-value:first-child { border-left: 0; }
.membership-value .membership-icon { width: 2.8rem; height: 2.8rem; border-radius: 50%; }
.membership-value p { font-size: 0.84rem; }

.membership-fees__title-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    align-items: center;
}

.membership-status {
    display: inline-flex;
    min-height: 1.75rem;
    align-items: center;
    padding: 0.25rem 0.65rem;
    background: #f4c15d;
    color: #352000;
    font-size: 0.72rem;
    font-weight: 800;
}

.membership-status--confirmed { background: #166534; color: #fff; }

.membership-fees__confirmed {
    margin-bottom: 0.75rem;
    font-weight: 650;
}

.membership-fees {
    width: 100%;
    border: 1px solid var(--color-border);
    border-collapse: collapse;
    font-size: 0.9rem;
}

.membership-fees th,
.membership-fees td {
    padding: 0.85rem 1rem;
    border: 1px solid var(--color-border);
    text-align: left;
    vertical-align: top;
}

.membership-fees thead th { background: #f8f7fb; color: var(--color-primary-deep); }
.membership-fees td small { display: block; margin-top: 0.25rem; color: var(--color-text-muted); }

.membership-fees-unconfirmed {
    display: grid;
    grid-template-columns: 3.5rem minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: 1.5rem;
    border: 1px solid #efca8c;
    background: #fffaf1;
}

.membership-fees-unconfirmed > span {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border: 2px solid #d78a08;
    border-radius: 50%;
    color: #b66e00;
    font-family: var(--font-serif);
    font-size: 1.6rem;
}

.membership-fees-unconfirmed a { min-height: 44px; align-content: center; font-weight: 750; }

.membership-document-guidance,
.membership-document-guidance__pending {
    margin-top: 1.5rem;
    padding: 1.25rem;
    border: 1px solid #d9d5ec;
    background: #fbfaff;
}

.membership-document-guidance h3 {
    color: var(--color-primary-deep);
    font-family: var(--font-serif);
    font-size: 1.35rem;
    font-weight: 400;
}

.membership-document-guidance dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.membership-document-guidance dt { color: var(--color-primary); font-weight: 750; }
.membership-document-guidance dd { margin-top: 0.3rem; color: var(--color-text-muted); }

.membership-process {
    position: relative;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
}

.membership-process::before {
    position: absolute;
    top: 1.2rem;
    right: 8%;
    left: 8%;
    height: 2px;
    background: var(--color-primary);
    content: "";
}

.membership-process li {
    position: relative;
    display: grid;
    justify-items: center;
    gap: 0.7rem;
    padding-inline: 0.75rem;
    text-align: center;
}

.membership-process li > span {
    z-index: 1;
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border-radius: 50%;
    background: var(--color-primary);
    color: #fff;
    font-weight: 800;
}

.membership-process h3 { font-size: 0.9rem; line-height: 1.35; }
.membership-process p { margin-top: 0.35rem; font-size: 0.78rem; line-height: 1.45; }
.membership-notice--process { margin-inline: 0; }

.membership-document {
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 1fr) minmax(12rem, 14rem);
    gap: 1.5rem;
    align-items: center;
    padding: 1.5rem;
    border: 1px solid var(--color-border);
}

.membership-document__icon {
    display: grid;
    width: 4.75rem;
    height: 5.5rem;
    place-items: end center;
    padding-bottom: 0.5rem;
    border: 2px solid var(--color-primary-deep);
    color: var(--color-accent);
    font-size: 0.75rem;
    font-weight: 900;
}

.membership-document__eyebrow {
    color: var(--color-primary) !important;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.membership-document h3 { margin-top: 0.2rem; font-size: clamp(1.75rem, 3vw, 2.5rem); }
.membership-document__actions { display: grid; gap: 0.65rem; }
.membership-document__actions .btn { min-height: 44px; }

.membership-final-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2rem;
    align-items: center;
    margin-top: clamp(2.75rem, 5vw, 4.75rem);
    margin-inline: calc((100vw - min(1280px, calc(100vw - var(--public-gutter-total)))) / -2);
    padding: 2rem max(2.75rem, calc((100vw - 1280px) / 2));
    background: linear-gradient(105deg, #17133e, #080848);
    color: #fff;
}

.membership-final-cta .eyebrow { color: var(--color-gold); }
.membership-final-cta h3 { color: #fff; font-size: clamp(2rem, 3vw, 2.8rem); }
.membership-final-cta p:not(.eyebrow) { color: #e5e3ef; }
.membership-final-cta .btn-secondary {
    border-color: #fff;
    background: transparent;
    color: #fff;
}

.membership-final-cta .btn-secondary:hover {
    border-color: #fff;
    background: #fff;
    color: var(--color-primary-deep);
}

.membership-page :is(a, summary):focus-visible {
    outline: 3px solid var(--color-focus);
    outline-offset: 3px;
}

@media (min-width: 56.25rem) {
    .membership-types.is-enhanced {
        --membership-types-menu-width: max(15rem, 32%);
        position: relative;
        overflow: hidden;
        grid-template-columns: var(--membership-types-menu-width) minmax(0, 1fr);
        grid-template-rows: repeat(4, minmax(0, 1fr));
        height: clamp(32rem, 42vw, 35rem);
        align-items: stretch;
    }

    .membership-types.is-enhanced .membership-type {
        grid-column: 1;
        min-width: 0;
    }
    .membership-types.is-enhanced .membership-type:nth-child(1) { grid-row: 1; }
    .membership-types.is-enhanced .membership-type:nth-child(2) { grid-row: 2; }
    .membership-types.is-enhanced .membership-type:nth-child(3) { grid-row: 3; }
    .membership-types.is-enhanced .membership-type:nth-child(4) { grid-row: 4; }
    .membership-types.is-enhanced .membership-type summary {
        height: 100%;
        border-bottom: 1px solid var(--color-border);
    }
    .membership-types.is-enhanced .membership-type__body {
        position: absolute;
        z-index: 1;
        top: 0;
        right: 0;
        bottom: 0;
        left: var(--membership-types-menu-width);
        overflow: auto;
        align-content: center;
        padding: clamp(2rem, 4vw, 4rem);
        border-left: 1px solid var(--color-border);
        background: #fff;
    }
    .membership-types.is-enhanced .membership-type:not([open]) .membership-type__body { display: none; }
    .membership-types.is-enhanced .membership-type summary::after { display: none; }
}

@media (max-width: 73.75rem) {
    .membership-hero__layout { grid-template-columns: minmax(0, 1fr) minmax(23rem, 0.9fr); }
    .membership-route { margin-right: -26px; padding-right: 26px; }
    .membership-value { grid-template-columns: 2.6rem minmax(0, 1fr); padding: 1.25rem; }
    .membership-final-cta { margin-inline: -26px; padding-inline: 26px; }
}

@media (max-width: 61.24rem) {
    .membership-local-nav { top: 78px; }
}

@media (max-width: 56.24rem) {
    .membership-hero__layout { grid-template-columns: 1fr; }
    .membership-hero__content { padding: 3.25rem 0; }
    .membership-route { margin: 0 -26px; padding: 2.75rem 26px; }
    .membership-local-nav .membership-frame { width: 100%; overflow-x: auto; scrollbar-width: thin; }
    .membership-local-nav ul { width: max-content; min-width: 100%; grid-template-columns: repeat(6, minmax(8rem, 1fr)); }
    .membership-eligibility { margin-inline: 0; }
    .membership-values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .membership-value:nth-child(3) { border-left: 0; }
    .membership-value:nth-child(n+3) { border-top: 1px solid var(--color-border); }
    .membership-rights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .membership-rights > div:nth-child(odd) { border-left: 0; }
    .membership-rights > div:nth-child(n+3) { border-top: 1px solid var(--color-border); }
    .membership-process { grid-template-columns: 1fr; gap: 0; }
    .membership-process::before { top: 1.25rem; bottom: 1.25rem; left: 1.2rem; width: 2px; height: auto; }
    .membership-process li { grid-template-columns: 2.5rem minmax(0, 1fr); justify-items: stretch; gap: 1rem; padding: 0 0 1.5rem; text-align: left; }
    .membership-process li > div { padding-top: 0.45rem; }
    .membership-process h3 { font-size: 1rem; }
    .membership-process p { font-size: 0.88rem; }
    .membership-document { grid-template-columns: 4.75rem minmax(0, 1fr); }
    .membership-document__actions { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .membership-final-cta { grid-template-columns: 1fr; }
}

@media (max-width: 43.75rem) {
    .membership-main > .public-breadcrumbs { display: none; }
    .membership-hero__content { gap: 0.8rem; padding: 2.5rem 0 2rem; }
    .membership-hero h1 { font-size: clamp(2.4rem, 12vw, 3.35rem); }
    .membership-hero__summary { font-size: 1rem; }
    .membership-actions { display: grid; grid-template-columns: 1fr; }
    .membership-actions .btn { width: 100%; }
    .membership-route { margin-inline: -18px; padding: 2rem 18px; }
    .membership-route h2 { font-size: 1.8rem; }
    .membership-route li { grid-template-columns: 2.8rem minmax(0, 1fr); gap: 0.85rem; }
    .membership-route__number { width: 2.65rem; height: 2.65rem; font-size: 1.35rem; }
    .membership-local-nav { top: 72px; }
    .membership-local-nav ul { grid-template-columns: repeat(6, minmax(6.5rem, 1fr)); }
    .membership-local-nav a { min-height: 48px; padding-inline: 0.55rem; font-size: 0.78rem; }
    .membership-section { scroll-margin-top: 8.5rem; }
    .membership-section > .membership-frame { padding-block: 2.35rem; }
    .membership-section__heading { margin-bottom: 1.4rem; }
    .membership-section__heading h2 { font-size: 2rem; }
    .membership-eligibility { grid-template-columns: 1fr; gap: 0; }
    .membership-eligibility__item { grid-template-columns: 3.5rem minmax(0, 1fr); padding: 1rem 0; }
    .membership-eligibility__item + .membership-eligibility__item { border-top: 1px solid var(--color-border); border-left: 0; padding-left: 0; }
    .membership-notice { margin: 1.35rem 0 0; }
    .membership-type summary { min-height: 56px; }
    .membership-type__body { padding: 1.15rem; }
    .membership-rights { grid-template-columns: 1fr; }
    .membership-rights > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; border-top: 1px solid var(--color-border); border-left: 0; }
    .membership-rights > div:first-child { border-top: 0; }
    .membership-values { border: 1px solid var(--color-border); }
    .membership-value {
        min-height: 8rem;
        grid-template-columns: 2.15rem minmax(0, 1fr);
        gap: 0.65rem;
        padding: 1rem;
        border-left: 0;
    }
    .membership-value .membership-icon { width: 2.15rem; height: 2.15rem; }
    .membership-value h3 { font-size: 1.1rem; overflow-wrap: normal; word-break: normal; }
    .membership-value:nth-child(even) { border-left: 1px solid var(--color-border); }
    .membership-fees thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }
    .membership-fees,
    .membership-fees tbody,
    .membership-fees tr,
    .membership-fees th,
    .membership-fees td { display: block; width: 100%; }
    .membership-fees tr { border-top: 1px solid var(--color-border); }
    .membership-fees tr:first-child { border-top: 0; }
    .membership-fees th,
    .membership-fees td { display: grid; grid-template-columns: minmax(7rem, 0.42fr) minmax(0, 0.58fr); gap: 1rem; border: 0; border-top: 1px solid #eeeeF2; }
    .membership-fees th::before,
    .membership-fees td::before { color: var(--color-text-muted); content: attr(data-label); font-weight: 650; }
    .membership-fees-unconfirmed { grid-template-columns: 2.75rem minmax(0, 1fr); }
    .membership-fees-unconfirmed > span { width: 2.5rem; height: 2.5rem; }
    .membership-fees-unconfirmed a { grid-column: 1 / -1; }
    .membership-document-guidance dl { grid-template-columns: 1fr; }
    .membership-document { grid-template-columns: 3.75rem minmax(0, 1fr); padding: 1rem; }
    .membership-document__icon { width: 3.5rem; height: 4.25rem; }
    .membership-document__actions { grid-template-columns: 1fr; }
    .membership-final-cta { margin: 2.35rem -18px -2.35rem; padding: 1.75rem 18px; }
}

@media (max-width: 22.4375rem) {
    .membership-route { margin-inline: -14px; padding-inline: 14px; }
    .membership-local-nav ul { grid-template-columns: repeat(6, minmax(6rem, 1fr)); }
    .membership-value { grid-template-columns: 1fr; gap: 0.65rem; padding: 1rem; }
    .membership-final-cta { margin-inline: -14px; padding-inline: 14px; }
}

@media (prefers-reduced-motion: reduce) {
    .membership-page *,
    .membership-page *::before,
    .membership-page *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
