:root {
    --primary-green: #A3C356;
    --secondary-green: #C7D218;
    --pink: #E3005F;
    --bright-green: #C3F411;
    --orange: #FC7F08;
    --fusion-heading-font: "Avenir Next", "Nunito Sans", "Segoe UI", sans-serif;
    --fusion-section-title-size: 1.5rem;
    --fusion-card-title-size: 1.3rem;
}

body {
    background-color: #ffffff;
    color: #0f172a;
    font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
    min-height: 100vh;
}

h1,
h2,
h3,
h4,
h5,
h6,
.footer-heading {
    font-family: var(--fusion-heading-font);
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1.15;
}

.fusion-section-title,
.ed-groups-section-title {
    font-family: var(--fusion-heading-font);
    font-size: var(--fusion-section-title-size);
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1.15;
}

.fusion-card-title,
.ed-group-card__title,
.ed-online-banner__title,
.fusion-contact-card__title {
    font-family: var(--fusion-heading-font);
    font-size: var(--fusion-card-title-size);
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1.15;
}

.fusion-gateway-body {
    display: flex;
    flex-direction: column;
    min-height: 200vh;
}

.fusion-gateway-body .fusion-footer {
    margin-top: 0;
}

.fusion-gateway-main {
    flex: 1;
    display: flex;
}

.fusion-referral-bar {
    background: rgba(255, 255, 255, 0.85);
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    padding: 0.5rem 0;
}

.fusion-referral-container {
    display: flex;
    justify-content: flex-end;
}

.fusion-referral-link {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-weight: 600;
    text-decoration: none;
    color: #0f172a;
    background: var(--orange);
    border-radius: 999px;
    padding: 0.45rem 1.1rem;
}

.fusion-referral-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.75);
    color: #0f172a;
}

.fusion-referral-icon svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

.fusion-referral-link:hover,
.fusion-referral-link:focus-visible {
    color: #0f172a;
}

.fusion-gateway {
    flex: 1;
    position: relative;
    display: flex;
    min-height: 0;
    overflow: hidden;
}

.fusion-gateway::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 2px;
    background: rgba(15, 23, 42, 0.25);
    transform: translateX(-50%);
    z-index: 1;
}

.fusion-gateway-panel {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 3rem 2rem;
    color: #0f172a;
    text-align: center;
    background-size: cover;
    background-position: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    z-index: 0;
    --portal-glow: rgba(195, 244, 17, 0.45);
    --portal-accent: rgba(255, 255, 255, 0.75);
}

.fusion-gateway-panel:hover {
    transform: translateY(-8px);
    box-shadow: 0 0 25px var(--portal-glow);
    z-index: 2;
}

.fusion-gateway-panel--lgbt {
    background-image: url("/static/images/lgbt-gateway-img.jpg");
    --portal-glow: rgba(250, 143, 186, 0.55);
    --portal-accent: rgba(255, 220, 233, 0.75);
}

.fusion-gateway-panel--ethnically-diverse {
    background-image: url("/static/images/ethnically-diverse-gateway-img.jpg");
    --portal-glow: rgba(245, 176, 120, 0.55);
    --portal-accent: rgba(255, 240, 222, 0.75);
}

.fusion-gateway-portal {
    position: relative;
    width: min(380px, 75vw);
    height: min(380px, 75vw);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.5rem;
    background: radial-gradient(circle at top, rgba(255, 255, 255, 0.78) 0%, rgba(255, 255, 255, 0.48) 55%, rgba(255, 255, 255, 0.12) 100%);
    border: 2px solid var(--portal-accent);
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.25), 0 0 35px var(--portal-glow);
    backdrop-filter: blur(6px);
    overflow: hidden;
    text-decoration: none;
    cursor: pointer;
}

.fusion-gateway-orbit {
    position: absolute;
    inset: 12%;
    border-radius: 50%;
    border: 1px dashed rgba(15, 23, 42, 0.2);
    box-shadow: 0 0 25px var(--portal-glow);
    animation: orbit-spin 16s linear infinite;
}

.fusion-gateway-orbit--inner {
    inset: 24%;
    border-style: solid;
    border-color: rgba(15, 23, 42, 0.1);
    animation-direction: reverse;
}

.fusion-gateway-content {
    position: relative;
    max-width: 250px;
    color: #0f172a;
    text-shadow: 0 2px 8px rgba(255, 255, 255, 0.6);
}

.fusion-gateway-content p {
    color: #1f2937;
}

.fusion-gateway-portal:focus-visible {
    outline: 3px solid rgba(15, 23, 42, 0.35);
    outline-offset: 6px;
}

.fusion-gateway-portal:hover .fusion-gateway-cta,
.fusion-gateway-portal:focus-visible .fusion-gateway-cta {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(15, 23, 42, 0.18);
}

.fusion-gateway-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 1.5rem;
    border-radius: 999px;
    font-weight: 600;
    background: rgba(255, 255, 255, 0.75);
    color: #0f172a;
    border: 1px solid rgba(15, 23, 42, 0.15);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.75rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

@keyframes orbit-spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 767.98px) {
    .fusion-gateway {
        flex-direction: column;
    }

    .fusion-gateway-panel {
        min-height: 45vh;
    }

    .fusion-gateway::after {
        display: none;
    }
}

.fusion-navbar {
    background-color: #ffffff;
}

.fusion-brand {
    color: var(--primary-green);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    letter-spacing: 0.2px;
}

.fusion-logo {
    height: 60px;
    width: auto;
}

.fusion-logo--what-centre {
    height: 60px;
    width: auto;
}

.fusion-navbar.fusion-navbar--lgbtq {
    background: linear-gradient(90deg, #f7a5a5 0%, #f7c7a5 16.6%, #f8f1a6 33.2%, #bfe6c9 49.8%, #b8c8f1 66.4%, #d3b7e8 83%, #f2b6e2 100%);
}

.fusion-navbar.fusion-navbar--ethnically-diverse {
    background: linear-gradient(90deg, #f9efe6 0%, #efdcc6 20%, #e3c2a2 40%, #cfa889 60%, #b58c6e 80%, #9a7057 100%);
}

.navbar .nav-link {
    color: #0f172a;
    font-weight: 500;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus {
    color: var(--pink);
}

.fusion-navbar--ethnically-diverse .fusion-navbar__referral-btn {
    background-color: #f97316;
    border: 1px solid #ea580c;
    color: #111827;
    font-weight: 700;
    border-radius: 999px;
    padding: 0.45rem 1rem;
    line-height: 1.2;
}

.fusion-navbar--ethnically-diverse .fusion-navbar__referral-btn:hover,
.fusion-navbar--ethnically-diverse .fusion-navbar__referral-btn:focus {
    background-color: #fb923c;
    border-color: #ea580c;
    color: #111827;
}

.btn-fusion {
    background-color: var(--primary-green);
    border-color: var(--primary-green);
    color: #ffffff;
    font-weight: 600;
}

.btn-fusion:hover,
.btn-fusion:focus {
    background-color: var(--secondary-green);
    border-color: var(--secondary-green);
    color: #0f172a;
}

.btn-fusion-outline {
    border-color: var(--primary-green);
    color: var(--primary-green);
    font-weight: 600;
}

.btn-fusion-outline:hover,
.btn-fusion-outline:focus {
    background-color: var(--bright-green);
    border-color: var(--bright-green);
    color: #0f172a;
}

.fusion-navbar {
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.08);
}

.site-banner {
    background: #f97316;
    color: #0f172a;
    position: sticky;
    top: 0;
    z-index: 1035;
}

.site-banner__text {
    font-weight: 600;
    padding: 0.5rem 0;
}

.fusion-navbar.border-bottom,
.fusion-footer.border-top {
    border: none !important;
}

.fusion-footer a {
    color: var(--primary-green);
    text-decoration: none;
}

.fusion-footer a:hover,
.fusion-footer a:focus {
    color: var(--orange);
    text-decoration: underline;
}

.fusion-footer .footer-top {
    align-items: flex-start;
}

@media (max-width: 575.98px) {
    .fusion-logo {
        height: 52px;
    }

    .fusion-logo--what-centre {
        height: 44px;
    }

    .fusion-brand {
        gap: 0.4rem;
    }
}

.fusion-footer .footer-bottom {
    border-top: 1px solid rgba(15, 23, 42, 0.1);
}

.fusion-footer .footer-links .nav {
    row-gap: 0.5rem;
}

.fusion-footer .footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.fusion-footer .footer-social-link {
    align-items: center;
    border: 1px solid var(--primary-green);
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.875rem;
    font-weight: 600;
    gap: 0.25rem;
    padding: 0.35rem 0.85rem;
    text-decoration: none;
}

.fusion-footer--lgbtq {
    background: linear-gradient(90deg, #f7a5a5 0%, #f7c7a5 16.6%, #f8f1a6 33.2%, #bfe6c9 49.8%, #b8c8f1 66.4%, #d3b7e8 83%, #f2b6e2 100%);
}

.fusion-footer--ethnically-diverse {
    background: linear-gradient(90deg, #f9efe6 0%, #efdcc6 20%, #e3c2a2 40%, #cfa889 60%, #b58c6e 80%, #9a7057 100%);
}

.fusion-footer--lgbtq .footer-heading,
.fusion-footer--lgbtq .footer-text,
.fusion-footer--lgbtq .footer-meta,
.fusion-footer--ethnically-diverse .footer-heading,
.fusion-footer--ethnically-diverse .footer-text,
.fusion-footer--ethnically-diverse .footer-meta {
    color: #0f172a;
}

.fusion-footer--lgbtq a,
.fusion-footer--ethnically-diverse a {
    color: #0f172a;
}

.fusion-footer--lgbtq .footer-social-link,
.fusion-footer--ethnically-diverse .footer-social-link {
    border-color: rgba(15, 23, 42, 0.4);
}

.fusion-footer--lgbtq a:hover,
.fusion-footer--lgbtq a:focus,
.fusion-footer--ethnically-diverse a:hover,
.fusion-footer--ethnically-diverse a:focus {
    color: #0f172a;
    text-decoration: underline;
}

.fusion-footer .footer-heading {
    color: #0f172a;
    font-family: var(--fusion-heading-font);
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1.15;
    margin-bottom: 0.5rem;
}

.fusion-footer .footer-text {
    color: #334155;
    margin-bottom: 0.25rem;
}

.fusion-footer .footer-meta {
    color: #64748b;
    font-size: 0.875rem;
}

.fusion-footer .footer-partner-logo {
    height: 100px;
    max-width: 100%;
    width: auto;
}

.fusion-footer .footer-map {
    border: 1px solid rgba(15, 23, 42, 0.25);
    border-radius: 0.6rem;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.6);
}

.fusion-footer .footer-map iframe {
    border: 0;
}

.fusion-contact-page,
.fusion-page-shell {
    --groups-ink: #0f172a;
    --groups-soft-ink: #334155;
    --groups-body-text: #334155;
    --groups-meta: #475569;
    --groups-address: #334155;
    --groups-accent: #6d8730;
    --groups-accent-soft: rgba(252, 127, 8, 0.18);
    --groups-card-border: rgba(125, 151, 57, 0.22);
    --groups-hero-start: #f8fbe9;
    --groups-hero-mid: #eef5d2;
    --groups-hero-end: #fde6c9;
    --groups-hero-border: rgba(125, 151, 57, 0.22);
    --groups-hero-shadow: rgba(96, 118, 34, 0.14);
    --groups-hero-orb-one: radial-gradient(circle at center, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0) 72%);
    --groups-hero-orb-two: radial-gradient(circle at center, rgba(252, 127, 8, 0.2) 0%, rgba(252, 127, 8, 0) 74%);
    --groups-badge-start: #88b23f;
    --groups-badge-end: #fc7f08;
}

.fusion-contact-page {
    background:
        radial-gradient(circle at top left, rgba(163, 195, 86, 0.18) 0%, rgba(163, 195, 86, 0) 34%),
        radial-gradient(circle at top right, rgba(252, 127, 8, 0.14) 0%, rgba(252, 127, 8, 0) 30%),
        #ffffff;
}

.fusion-contact-hero__badge {
    box-shadow: 0 8px 20px rgba(109, 135, 44, 0.14);
}

.fusion-contact-hero__title {
    max-width: 12ch;
}

.fusion-contact-section-copy,
.fusion-contact-card__detail,
.fusion-contact-card__address {
    color: #334155;
}

.fusion-contact-hero__subtitle {
    max-width: 58ch;
}

.fusion-contact-section-heading {
    max-width: 42rem;
}

.fusion-contact-section-title {
    color: #0f172a;
}

.fusion-contact-card {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, #f8fafc 100%);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1.25rem;
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.06);
    padding: 1.5rem;
}

.fusion-contact-card--general {
    background: linear-gradient(180deg, rgba(163, 195, 86, 0.18) 0%, rgba(252, 127, 8, 0.12) 100%);
    border-color: rgba(125, 151, 57, 0.24);
    box-shadow: 0 14px 28px rgba(109, 135, 44, 0.12);
}

.fusion-contact-card--lgbt {
    background: linear-gradient(180deg, rgba(255, 241, 246, 0.98) 0%, rgba(231, 242, 255, 0.95) 100%);
    border-color: rgba(121, 99, 188, 0.26);
    box-shadow: 0 14px 28px rgba(85, 63, 153, 0.12);
}

.fusion-contact-card--ethically-diverse {
    background: linear-gradient(180deg, rgba(249, 239, 230, 0.98) 0%, rgba(231, 199, 172, 0.45) 100%);
    border-color: rgba(121, 78, 53, 0.22);
    box-shadow: 0 14px 28px rgba(95, 61, 41, 0.11);
}

.fusion-contact-card__label {
    color: #475569;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fusion-contact-card--general .fusion-contact-card__label {
    color: #4d631e;
}

.fusion-contact-card--lgbt .fusion-contact-card__label {
    color: #6a3ba0;
}

.fusion-contact-card--ethically-diverse .fusion-contact-card__label {
    color: #7f4b2d;
}

.fusion-contact-card__title {
    color: #0f172a;
    margin-bottom: 0.75rem;
}

.fusion-contact-card--general .fusion-contact-card__title,
.fusion-contact-card--general .fusion-contact-card__link {
    color: #365314;
}

.fusion-contact-card--lgbt .fusion-contact-card__title,
.fusion-contact-card--lgbt .fusion-contact-card__link {
    color: #4c3f85;
}

.fusion-contact-card--ethically-diverse .fusion-contact-card__title,
.fusion-contact-card--ethically-diverse .fusion-contact-card__link {
    color: #5a3c2d;
}

.fusion-contact-card__link,
.fusion-contact-card__inline-link {
    color: #0f172a;
    font-weight: 700;
    text-decoration: none;
}

.fusion-contact-card__link {
    font-size: 1.05rem;
    overflow-wrap: anywhere;
}

.fusion-contact-card__link:hover,
.fusion-contact-card__link:focus,
.fusion-contact-card__inline-link:hover,
.fusion-contact-card__inline-link:focus {
    color: var(--orange);
    text-decoration: underline;
}

.fusion-contact-card__address {
    font-style: normal;
    line-height: 1.7;
    margin: 0;
}

.fusion-policy-page {
    background: #ffffff;
}

.fusion-policy-layout {
    margin-bottom: 2rem;
}

.fusion-policy-prose {
    color: #334155;
    margin: 0;
    max-width: 82ch;
    text-align: left;
}

.fusion-policy-section + .fusion-policy-section {
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    margin-top: 2rem;
    padding-top: 2rem;
}

.fusion-policy-section h2 {
    color: #0f172a;
}

.fusion-policy-prose p,
.fusion-policy-prose li {
    line-height: 1.75;
}

.fusion-policy-prose p:last-child,
.fusion-policy-prose ol:last-child,
.fusion-policy-prose ul:last-child {
    margin-bottom: 0;
}

.fusion-policy-prose strong {
    color: #0f172a;
}

.fusion-policy-list,
.fusion-policy-links {
    margin-bottom: 1rem;
    padding-left: 1.25rem;
}

.fusion-policy-sublist {
    list-style: lower-alpha;
}

.fusion-policy-prose a {
    color: #365314;
    overflow-wrap: anywhere;
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 0.2em;
}

.fusion-policy-prose a:hover,
.fusion-policy-prose a:focus {
    color: var(--orange);
}

.ed-groups-page {
    --groups-ink: #2b1f1a;
    --groups-soft-ink: #5f4f46;
    --groups-body-text: #3f332d;
    --groups-meta: #5f4f46;
    --groups-address: #4f3f37;
    --groups-cream: #fff8f2;
    --groups-accent: #9f5f3a;
    --groups-accent-soft: #e6bf9c;
    --groups-card-border: rgba(116, 72, 47, 0.2);
    --groups-hero-start: #fdf5ee;
    --groups-hero-mid: #f3e0ce;
    --groups-hero-end: #e7c7ac;
    --groups-hero-border: rgba(121, 78, 53, 0.16);
    --groups-hero-shadow: rgba(43, 31, 26, 0.12);
    --groups-hero-orb-one: radial-gradient(circle at center, rgba(255, 255, 255, 0.56) 0%, rgba(255, 255, 255, 0) 72%);
    --groups-hero-orb-two: radial-gradient(circle at center, rgba(159, 95, 58, 0.2) 0%, rgba(159, 95, 58, 0) 74%);
    --groups-badge-start: #7f4b2d;
    --groups-badge-end: #aa6c45;
    --groups-card-start: #fffdfa;
    --groups-card-end: #fff8f2;
    --groups-card-shadow: rgba(43, 31, 26, 0.1);
    --groups-card-gloss: linear-gradient(145deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 44%);
    --groups-panel-bg: #ffffff;
    --groups-panel-border: rgba(121, 78, 53, 0.14);
    --groups-chip-border: rgba(121, 78, 53, 0.2);
    --groups-chip-start: #fff6ee;
    --groups-chip-end: #f8e8d7;
    --groups-chip-text: #5a3c2d;
}

.lgbt-groups-page {
    --groups-ink: #222042;
    --groups-soft-ink: #4f4875;
    --groups-body-text: #37315a;
    --groups-meta: #574f82;
    --groups-address: #3f3866;
    --groups-accent: #c9357e;
    --groups-card-border: rgba(108, 84, 182, 0.22);
    --groups-hero-start: #fff1f6;
    --groups-hero-mid: #f4e9ff;
    --groups-hero-end: #e7f2ff;
    --groups-hero-border: rgba(124, 94, 188, 0.26);
    --groups-hero-shadow: rgba(54, 38, 97, 0.18);
    --groups-hero-orb-one: radial-gradient(circle at center, rgba(255, 255, 255, 0.75) 0%, rgba(255, 255, 255, 0) 72%);
    --groups-hero-orb-two: radial-gradient(circle at center, rgba(233, 74, 150, 0.22) 0%, rgba(233, 74, 150, 0) 74%);
    --groups-badge-start: #ff5b9d;
    --groups-badge-end: #7a63f0;
    --groups-card-start: #fff9ff;
    --groups-card-end: #f8fbff;
    --groups-card-shadow: rgba(57, 41, 110, 0.14);
    --groups-card-gloss: linear-gradient(145deg, rgba(255, 255, 255, 0.32) 0%, rgba(255, 255, 255, 0) 46%);
    --groups-panel-bg: rgba(255, 255, 255, 0.95);
    --groups-panel-border: rgba(121, 99, 188, 0.22);
    --groups-chip-border: rgba(121, 99, 188, 0.28);
    --groups-chip-start: #ffeaf5;
    --groups-chip-end: #eaf3ff;
    --groups-chip-text: #4c3f85;
}

.ed-groups-hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(130deg, var(--groups-hero-start) 0%, var(--groups-hero-mid) 55%, var(--groups-hero-end) 100%);
    border-radius: 1.25rem;
    padding: 2rem 1.25rem;
    border: 1px solid var(--groups-hero-border);
    box-shadow: 0 18px 35px var(--groups-hero-shadow);
    min-height: clamp(13rem, 30vh, 18rem);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    isolation: isolate;
}

.ed-groups-hero--ethnically-diverse {
    background-image: linear-gradient(140deg, rgba(32, 23, 17, 0.66) 0%, rgba(42, 29, 22, 0.45) 45%, rgba(24, 18, 13, 0.66) 100%), url("/static/images/ed-groups-photo.jpg");
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: scroll;
    border-color: rgba(55, 35, 23, 0.46);
    box-shadow: 0 22px 40px rgba(20, 13, 9, 0.28);
    min-height: clamp(15rem, 38vh, 23rem);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
}

.ed-groups-hero--ethnically-diverse::before,
.ed-groups-hero--ethnically-diverse::after {
    display: none;
}

.ed-groups-hero--ethnically-diverse .ed-groups-hero__badge {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.ed-groups-hero--ethnically-diverse .ed-groups-hero__title,
.ed-groups-hero--ethnically-diverse .ed-groups-hero__subtitle {
    color: #fff8f2;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.ed-groups-hero--ethnically-diverse .ed-groups-hero__subtitle {
    max-width: 58ch;
}

.ed-groups-hero--ethnically-diverse-hub {
    background-image: linear-gradient(140deg, rgba(32, 23, 17, 0.66) 0%, rgba(42, 29, 22, 0.45) 45%, rgba(24, 18, 13, 0.66) 100%), url("/static/images/ed-hub-photo.jpg");
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: scroll;
    border-color: rgba(55, 35, 23, 0.46);
    box-shadow: 0 22px 40px rgba(20, 13, 9, 0.28);
    min-height: clamp(15rem, 38vh, 23rem);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
}

.ed-groups-hero--ethnically-diverse-hub::before,
.ed-groups-hero--ethnically-diverse-hub::after {
    display: none;
}

.ed-groups-hero--ethnically-diverse-hub .ed-groups-hero__badge {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.ed-groups-hero--ethnically-diverse-hub .ed-groups-hero__title,
.ed-groups-hero--ethnically-diverse-hub .ed-groups-hero__subtitle {
    color: #fff8f2;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.ed-groups-hero--ethnically-diverse-hub .ed-groups-hero__subtitle {
    max-width: 58ch;
}

.lgbt-groups-hero {
    background-image: linear-gradient(140deg, rgba(12, 12, 12, 0.66) 0%, rgba(12, 12, 12, 0.45) 45%, rgba(12, 12, 12, 0.66) 100%), url("/static/images/lgbt-groups-photo.jpg");
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: scroll;
    border-color: rgba(28, 28, 28, 0.45);
    box-shadow: 0 22px 40px rgba(0, 0, 0, 0.3);
    min-height: clamp(15rem, 38vh, 23rem);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
}

.lgbt-groups-hero::before,
.lgbt-groups-hero::after {
    display: none;
}

.lgbt-groups-hero__badge {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.lgbt-groups-hero .lgbt-groups-hero__title,
.lgbt-groups-hero .lgbt-groups-hero__subtitle {
    color: #fff;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.lgbt-groups-hero__subtitle {
    max-width: 58ch;
}

.ed-groups-hero::before,
.ed-groups-hero::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    pointer-events: none;
}

.ed-groups-hero::before {
    width: 230px;
    height: 230px;
    right: -40px;
    top: -95px;
    background: var(--groups-hero-orb-one);
}

.ed-groups-hero::after {
    width: 180px;
    height: 180px;
    left: -65px;
    bottom: -95px;
    background: var(--groups-hero-orb-two);
}

.ed-groups-hero > * {
    position: relative;
    z-index: 1;
}

.ed-groups-hero__badge {
    display: inline-block;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #fff;
    background: linear-gradient(120deg, var(--groups-badge-start) 0%, var(--groups-badge-end) 100%);
    border-radius: 999px;
    padding: 0.35rem 0.75rem;
    margin-bottom: 0.85rem;
    font-weight: 700;
}

.ed-groups-hero__title {
    color: var(--groups-ink);
    font-family: var(--fusion-heading-font);
    font-weight: 800;
    letter-spacing: 0.01em;
    margin-bottom: 0.5rem;
}

.ed-groups-hero__subtitle {
    color: var(--groups-soft-ink);
    max-width: 70ch;
    margin-bottom: 0;
}

.ed-groups-section-title {
    color: var(--groups-ink);
}

.ed-group-card {
    position: relative;
    overflow: hidden;
    border-radius: 1.15rem;
    border: 1px solid var(--groups-card-border);
    background: linear-gradient(180deg, var(--groups-card-start) 0%, var(--groups-card-end) 100%);
    padding: 1.15rem;
    box-shadow: 0 12px 26px var(--groups-card-shadow);
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    animation: ed-card-rise 0.45s ease-out both;
}

.ed-group-card::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: var(--groups-card-gloss);
}

.ed-group-card--family {
    animation-delay: 0.08s;
}

.ed-group-card__eyebrow {
    color: var(--groups-accent);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 0.4rem;
}

.ed-group-card__title {
    color: var(--groups-ink);
    margin-bottom: 0.4rem;
}

.ed-group-card__description {
    color: var(--groups-body-text);
    margin-bottom: 0;
}

.ed-group-card__panel {
    background: var(--groups-panel-bg);
    border: 1px solid var(--groups-panel-border);
    border-radius: 0.85rem;
    padding: 0.8rem;
}

.ed-group-card__heading {
    color: var(--groups-ink);
    font-size: 0.9rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.01em;
    line-height: 1.15;
    margin-bottom: 0.55rem;
}

.ed-session-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.84rem;
}

.ed-session-table thead th {
    color: var(--groups-soft-ink);
    font-size: 0.71rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0 0.2rem 0.5rem;
    border-bottom: 1px solid var(--groups-panel-border);
}

.ed-session-table th,
.ed-session-table td {
    vertical-align: middle;
    padding: 0.55rem 0.2rem;
}

.ed-session-table tbody th {
    color: var(--groups-ink);
    font-size: 0.85rem;
    font-weight: 700;
    padding-left: 0;
    width: 32%;
}

.ed-session-table tbody td {
    color: var(--groups-body-text);
}

.ed-session-table tbody tr + tr th,
.ed-session-table tbody tr + tr td {
    border-top: 1px solid var(--groups-panel-border);
}

.ed-session-table .ed-chip,
.ed-session-table .ed-online-banner__icon-chip {
    white-space: nowrap;
}

.ed-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.45rem;
}

.ed-chip-row:last-child {
    margin-bottom: 0;
}

.ed-chip,
.ed-online-banner__icon-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid var(--groups-chip-border);
    background: linear-gradient(150deg, var(--groups-chip-start) 0%, var(--groups-chip-end) 100%);
    color: var(--groups-chip-text);
    padding: 0.24rem 0.65rem;
    font-size: 0.81rem;
    font-weight: 600;
}

.ed-chip--in-person,
.ed-online-banner__icon-chip {
    gap: 0.34rem;
}

.ed-chip--in-person svg,
.ed-online-banner__icon-chip svg {
    width: 0.84rem;
    height: 0.84rem;
    fill: var(--groups-accent);
    flex-shrink: 0;
}

.ed-group-card__meta {
    color: var(--groups-meta);
    font-size: 0.9rem;
}

.ed-group-card__address {
    color: var(--groups-address);
    line-height: 1.55;
    font-style: normal;
}

.ed-online-banner {
    position: relative;
    overflow: hidden;
    border-radius: 1.15rem;
    border: 1px solid var(--groups-card-border);
    background: linear-gradient(180deg, var(--groups-card-start) 0%, var(--groups-card-end) 100%);
    box-shadow: 0 12px 26px var(--groups-card-shadow);
    padding: 1.15rem;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    animation: ed-card-rise 0.45s ease-out both;
}

.ed-online-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: var(--groups-card-gloss);
}

.ed-online-banner > * {
    position: relative;
    z-index: 1;
}

.ed-online-banner__title {
    color: var(--groups-ink);
    margin-bottom: 0.35rem;
}

.ed-online-banner__icon-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.9rem;
}

.ed-online-banner__cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.62rem;
    margin-top: 0.9rem;
}

.ed-online-banner__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid transparent;
    background: linear-gradient(120deg, var(--groups-badge-start) 0%, var(--groups-badge-end) 100%);
    color: #fff;
    text-decoration: none;
    padding: 0.45rem 0.85rem;
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1.3;
}

.ed-online-banner__cta:hover,
.ed-online-banner__cta:focus {
    color: #fff;
    filter: brightness(0.94);
}

.ed-online-banner__cta:disabled,
.ed-online-banner__cta[aria-disabled="true"] {
    opacity: 0.55;
    filter: none;
    cursor: not-allowed;
    pointer-events: none;
}

.ed-online-banner__notice {
    display: inline-flex;
    align-items: center;
    gap: 0.38rem;
    color: #7a3c23;
    background: #fff3e8;
    border: 1px solid #efc4a5;
    border-radius: 0.65rem;
    padding: 0.35rem 0.5rem;
    font-size: 0.83rem;
    font-weight: 600;
}

.ed-online-banner__notice svg {
    width: 0.88rem;
    height: 0.88rem;
    fill: #b85f36;
    flex-shrink: 0;
}

.ed-policy-modal .modal-content {
    border-radius: 1rem;
    border: 1px solid var(--groups-panel-border);
}

.ed-policy-modal .modal-title {
    color: var(--groups-ink);
    font-weight: 800;
}

.ed-policy-modal .modal-header,
.ed-policy-modal .modal-footer {
    border-color: var(--groups-panel-border);
}

.ed-policy-modal__intro {
    color: var(--groups-body-text);
    font-size: 0.9rem;
}

.ed-policy-modal__scrollbox {
    max-height: 24rem;
    overflow-y: auto;
    border: 1px solid var(--groups-panel-border);
    border-radius: 0.75rem;
    background: #fff;
    padding: 0.85rem;
}

.ed-policy-modal__scrollbox h6 {
    color: var(--groups-ink);
    font-size: 0.9rem;
    font-weight: 800;
    margin: 1rem 0 0.45rem;
}

.ed-policy-modal__scrollbox h6:first-child {
    margin-top: 0;
}

.ed-policy-modal__scrollbox p {
    color: var(--groups-body-text);
    font-size: 0.86rem;
    margin-bottom: 0.6rem;
}

.ed-policy-modal__list {
    margin: 0 0 0.7rem;
    padding-left: 1.18rem;
}

.ed-policy-modal__list li {
    color: var(--groups-body-text);
    font-size: 0.86rem;
    margin-bottom: 0.36rem;
}

.ed-policy-modal__agreement .form-check-label {
    color: var(--groups-body-text);
    font-size: 0.85rem;
}

@keyframes ed-card-rise {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 575.98px) {
    .ed-groups-hero {
        padding: 1.4rem 1rem;
        min-height: 12rem;
    }

    .ed-groups-hero--ethnically-diverse {
        min-height: 13rem;
    }

    .ed-groups-hero--ethnically-diverse-hub {
        min-height: 13rem;
    }

    .lgbt-groups-hero {
        min-height: 13rem;
    }

    .ed-group-card {
        padding: 1rem;
    }

    .fusion-card-title,
    .ed-group-card__title,
    .ed-online-banner__title,
    .fusion-contact-card__title {
        font-size: 1.15rem;
    }

    .ed-policy-modal__scrollbox {
        max-height: 18rem;
    }

    .ed-session-table thead {
        display: none;
    }

    .ed-session-table,
    .ed-session-table tbody,
    .ed-session-table tr,
    .ed-session-table th,
    .ed-session-table td {
        display: block;
        width: 100%;
    }

    .ed-session-table tr {
        padding: 0.55rem 0;
    }

    .ed-session-table tr + tr {
        border-top: 1px solid var(--groups-panel-border);
    }

    .ed-session-table tbody tr + tr th,
    .ed-session-table tbody tr + tr td {
        border-top: 0;
    }

    .ed-session-table tbody th {
        width: 100%;
        padding: 0;
        margin-bottom: 0.35rem;
        border-top: 0;
    }

    .ed-session-table td {
        display: flex;
        align-items: flex-start;
        gap: 0.45rem;
        padding: 0.18rem 0;
    }

    .ed-session-table td::before {
        content: attr(data-label);
        min-width: 4rem;
        color: var(--groups-soft-ink);
        font-size: 0.7rem;
        font-weight: 700;
        letter-spacing: 0.04em;
        text-transform: uppercase;
    }
}
