@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Outfit:wght@300;400;500;700&display=swap');

:root {
    --brand-black: #1E1E1D;
    --brand-white: #FFFFFF;
    --brand-orange: #DA5A35;
    --brand-blue: #2C30C5;
    --brand-cyan: #4387A2;

    --primary-black: var(--brand-black);
    --primary-white: var(--brand-white);
    --bg-gray: #F5F5F7;
    --text-muted: #86868b;
    --nav-pill-bg: rgba(255, 255, 255, 0.45);
    /* Light frosted glass */
    --nav-pill-blur: blur(20px);
    --transition-smooth: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    --font-heading: 'Outfit', sans-serif;
    --font-body: 'Inter', sans-serif;
}


* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -webkit-tap-highlight-color: transparent;
}

html {
    margin: 0;
    padding: 0;
}

body {
    font-family: var(--font-body);
    background-color: var(--primary-white);
    color: var(--primary-black);
    line-height: 1.5;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

/* Global Typography Hierarchy */
h1,
h2,
h3 {
    font-family: var(--font-heading);
    color: var(--primary-black);
    line-height: 1.1;
    font-weight: 400;
}

h1 {
    font-size: clamp(32px, 7vw, 84px);
    letter-spacing: -0.05em;
    line-height: 1.1;
    font-weight: 400;
    color: var(--primary-black);
    text-align: left;
    /* Restored to left-aligned */
    margin-bottom: 40px;
    width: 100%;
}

h2 {
    font-size: clamp(32px, 5vw, 60px);
    letter-spacing: -0.04em;
    margin-bottom: 30px;
}

h3 {
    font-size: clamp(24px, 3vw, 32px);
    letter-spacing: -0.03em;
}

/* Meta Labels (Cards, Nav) - Subtle, Uppercase */
.footer-nav-label {
    font-family: var(--font-body);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 600;
    opacity: 0.6;
    margin-bottom: 12px;
    display: block;
    color: var(--primary-black);
}

/* Section Labels (Story, Mission, Team) - Prominent, Medium */
.story-label,
.team-subheading {
    font-family: var(--font-body);
    font-size: 18px;
    font-weight: 500;
    color: var(--brand-black);
    margin-bottom: 16px;
    display: block;
    opacity: 1;
    text-transform: none;
    letter-spacing: normal;
}

/* --- Header & Unified Navbar --- */
header {
    position: fixed;
    top: 16px;
    left: 0;
    width: 100%;
    height: 72px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 20px;
    z-index: 1000;
    pointer-events: none;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

header.scrolled {
    height: 64px;
    top: 10px;
}

/* Re-enable clicks on interactive elements */
.logo-container,
.navbar-pill {
    pointer-events: auto;
}

/* 1. The Unified Navbar Pill (The Button) */
.navbar-pill {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 280px;
    height: 56px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--nav-pill-bg);
    backdrop-filter: var(--nav-pill-blur);
    -webkit-backdrop-filter: var(--nav-pill-blur);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 12px;
    z-index: 1001;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    opacity: 0;
    animation: mobileNavReveal 1s cubic-bezier(0.16, 1, 0.3, 1) forwards 0.4s;
}

/* 2. Primary Nav Dropdown (The Modal) */
.nav-pill-wrapper {
    position: absolute;
    top: calc(100% + 12px);
    left: 50%;
    width: 280px;
    background: var(--nav-pill-bg);
    backdrop-filter: var(--nav-pill-blur);
    -webkit-backdrop-filter: var(--nav-pill-blur);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 12px;
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    opacity: 0;
    visibility: hidden;
    transform: translateX(-50%) translateY(-10px);
    transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 0.4s;
    z-index: 1000;
    overflow: hidden;
    pointer-events: none;
}

.nav-pill-wrapper.active {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
    transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 0s;
}


/* Expanded hit area for better hover intent */
.navbar-pill::before {
    content: '';
    position: absolute;
    top: -12px;
    bottom: -12px;
    left: -12px;
    right: -12px;
    z-index: -1;
}

/* Glass Shimmer on Pill */
.navbar-pill::after {
    content: '';
    position: absolute;
    top: 0;
    left: -150%;
    width: 100%;
    height: 100%;
    background: linear-gradient(to right,
            transparent,
            rgba(255, 255, 255, 0.6),
            transparent);
    transform: skewX(-20deg);
    animation: glassShimmer 6s infinite;
    pointer-events: none;
}

/* Sub-Elements Style */
.logo-container {
    display: flex;
    align-items: center;
    text-decoration: none;
    background: transparent !important;
}

.logo-img {
    height: 24px;
    width: auto;
    display: block;
}

.mobile-menu-toggle {
    display: flex;
    align-items: center;
    gap: 12px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    height: 100%;
}

.menu-text {
    font-family: var(--font-heading);
    color: var(--primary-black);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1;
    margin-top: 1px;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.icon-pill {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    position: relative;
}

.burger-icon,
.close-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.burger-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.burger-icon span {
    display: block;
    width: 16px;
    height: 1.5px;
    background: var(--primary-black);
    border-radius: 1px;
}

.close-icon {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(-45deg) scale(0.6);
}

.close-icon span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 1.5px;
    background: var(--primary-black);
    border-radius: 1px;
}

.close-icon span:first-child {
    transform: translate(-50%, -50%) rotate(45deg);
}

.close-icon span:last-child {
    transform: translate(-50%, -50%) rotate(-45deg);
}

/* Toggle Active States */
.mobile-menu-toggle.active .burger-icon {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(90deg) scale(0.6);
}

.mobile-menu-toggle.active .close-icon {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(0deg) scale(1);
}

/* Dropdown Links */
.nav-pill-wrapper a {
    color: var(--primary-black) !important;
    text-decoration: none;
    font-size: 14.5px;
    font-weight: 500;
    padding: 12px 18px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.nav-pill-wrapper>a:hover,
.nav-pill-wrapper>a.active {
    background: rgba(0, 0, 0, 0.04);
    color: var(--brand-blue) !important;
}

/* Nav Menu Footer */
.nav-footer-links {
    margin-top: 4px;
    padding: 12px 18px 8px;
    border-top: 1px solid rgba(0, 0, 0, 0.04);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.nav-footer-links a {
    color: var(--primary-black) !important;
    opacity: 0.45;
    font-size: 9px !important;
    font-weight: 400;
    text-transform: capitalize;
    letter-spacing: 0.04em;
    padding: 0 !important;
    width: auto !important;
    display: inline-block !important;
    transition: opacity 0.3s ease;
}

.nav-footer-links a:hover {
    opacity: 1;
    background: transparent !important;
}

.nav-footer-links .sep {
    color: var(--primary-black);
    opacity: 0.15;
    font-size: 14px;
    line-height: 1;
    margin-top: -2px;
}

/* --- Responsive Navbar Styles --- */

@media (max-width: 1024px) {

    header,
    header.scrolled {
        width: 100%;
        margin: 0;
        left: 0;
        top: 0;
        height: 76px;
        background: transparent;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        pointer-events: none;
    }

    .navbar-pill {
        left: 32px;
        right: 32px;
        width: auto;
        padding: 0 18px;
        opacity: 1 !important;
        transform: translateY(-50%);
        animation: none;
    }

    .nav-pill-wrapper {
        position: absolute;
        top: calc(100% + 8px);
        left: 32px;
        right: 32px;
        width: auto;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
        z-index: 1000;
        background: var(--nav-pill-bg);
        border-radius: 12px;
        padding: 8px;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 0.4s;
        transform: translateY(-10px);
    }

    .nav-pill-wrapper.active {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
        pointer-events: auto;
        transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 0s;
    }

    .nav-pill-wrapper a {
        font-size: 15px;
        padding: 14px 18px;
        display: flex;
        width: 100%;
        color: var(--primary-black) !important;
    }
}

@media (max-width: 768px) {
    .navbar-pill {
        left: 12px;
        right: 12px;
        padding: 0 14px;
        /* Slightly tighter padding for mobile */
    }

    .nav-pill-wrapper {
        left: 12px;
        right: 12px;
    }

    .logo-img {
        height: 20px;
        /* Refined logo size for mobile */
    }

    section {
        padding: 80px 24px;
    }

    h2 {
        font-size: clamp(32px, 8vw, 42px);
        margin-bottom: 32px;
    }
}

.hero {
    height: 100vh;
    width: 100%;
    background: #ffffff;
    /* Reverted to white background */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 0 20px;
    color: var(--brand-white);
    position: sticky;
    top: 0;
    z-index: 1;
    overflow: hidden;
}

/* Exact mesh gradient recreation - 100% Color Opacity */
.hero::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 15% 15%, rgba(70, 114, 177, 1) 0%, transparent 60%);
    top: 0;
    left: 0;
    filter: blur(60px);
    animation: floatOrb1 40s ease-in-out infinite;
    pointer-events: none;
    z-index: 0;
    will-change: transform;
    backface-visibility: hidden;
    transform: translateZ(0);
    /* Force GPU layer */
}

.hero::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background:
        radial-gradient(circle at 90% 5%, rgba(30, 54, 202, 1) 0%, transparent 60%),
        radial-gradient(circle at 100% 40%, rgba(209, 77, 60, 1) 0%, transparent 60%);
    top: 0;
    right: 0;
    filter: blur(60px);
    animation: floatOrb2 50s ease-in-out infinite;
    pointer-events: none;
    z-index: 0;
    will-change: transform;
    backface-visibility: hidden;
    transform: translateZ(0);
    /* Force GPU layer */
}

.hero-content {
    max-width: 1000px;
    width: 100%;
    z-index: 2;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
}


.hero h1 {
    font-size: clamp(32px, 7vw, 84px);
    /* Sync with global h1 style */
    line-height: 1.1;
    letter-spacing: -0.05em;
    font-weight: 400;
    color: var(--brand-white);
    text-align: center;
    margin-top: 10px;
    white-space: nowrap;
    opacity: 0;
    animation: fadeIn 1.2s ease forwards 0.4s;
}

.hero-subtext {
    font-size: clamp(15px, 2vw, 22px);
    line-height: 1.5;
    max-width: 800px;
    margin: 0;
    font-weight: 300;
    /* Lighter subtext to match */
    opacity: 0;
    transform: translateY(40px);
    animation: heroRaise 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards 0.5s;
}

@media (max-width: 768px) {
    h1 {
        font-size: clamp(24px, 8vw, 42px) !important;
        letter-spacing: -0.04em !important;
    }

    .hero h1 {
        white-space: normal;
        font-size: clamp(28px, 8vw, 42px) !important;
        text-align: center;
    }

    .hero-subtext {
        white-space: normal;
        /* Allow subtext to wrap on mobile for readability */
        text-align: center;
        max-width: 90vw;
    }
}



.hero-scroll-affordance {
    position: absolute;
    bottom: 60px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    opacity: 0;
    animation: fadeIn 1s ease forwards 1s;
}

.scroll-line {
    width: 1px;
    height: 60px;
    background: linear-gradient(to bottom, var(--brand-white), transparent);
    position: relative;
    overflow: hidden;
}

.scroll-line::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--brand-white);
    animation: scrollLineMove 2s cubic-bezier(0.76, 0, 0.24, 1) infinite;
}

.scroll-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 2px;
    opacity: 0.6;
}

.scroll-line {
    width: 1px;
    height: 60px;
    background: linear-gradient(to bottom, var(--primary-black), transparent);
    position: relative;
    overflow: hidden;
}

.scroll-line::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--primary-black);
    animation: scrollLineMove 2s cubic-bezier(0.76, 0, 0.24, 1) infinite;
}

@keyframes heroRaise {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes navReveal {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes mobileNavReveal {
    from {
        opacity: 0;
        transform: translate(-50%, calc(-50% - 20px));
    }

    to {
        opacity: 1;
        transform: translate(-50%, -50%);
    }
}

@keyframes glassShimmer {
    0% {
        left: -150%;
    }

    33% {
        left: 150%;
    }

    100% {
        left: 150%;
    }
}

@keyframes glassShimmerMobile {
    0% {
        transform: skewX(-20deg) translateX(-150%);
    }

    33% {
        transform: skewX(-20deg) translateX(150%);
    }

    100% {
        transform: skewX(-20deg) translateX(150%);
    }
}

@keyframes scrollLineMove {
    0% {
        transform: translateY(-100%);
    }

    50% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(100%);
    }
}

@keyframes fadeIn {
    to {
        opacity: 1;
    }
}

@keyframes gradientFlow {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

@keyframes floatOrb1 {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    30% {
        transform: translate(12%, 18%) scale(1.12);
    }

    65% {
        transform: translate(-8%, 8%) scale(0.92);
    }
}

@keyframes floatOrb2 {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    35% {
        transform: translate(-14%, -12%) scale(1.15);
    }

    70% {
        transform: translate(8%, -6%) scale(0.88);
    }
}

@media (max-width: 768px) {
    /* Hero overrides removed to maintain single-line fit-to-viewport look */
}



/* Standard Section Overlap - General fallback */
section:not(.hero):not(.get-involved-section):not(.advocacy-terminal-section):not(.team-section):not(.about-intro):not(.story-section):not(.legal-hero):not(.legal-content-section) {
    position: relative;
    z-index: 5;
    background: #fff;
    padding: 160px 66px 0 66px;
}

/* Specific Section Depths to ensure 'Reveal from behind' */
.hero {
    z-index: 1;
}

/* Consistently styled Team section */
.team-scroll-height-container {
    z-index: 15;
    position: relative;
    background: #fff;
    height: auto;
}

.team-sticky-wrapper {
    position: relative;
    top: auto;
    height: auto;
    width: 100%;
    overflow: visible;
    display: flex;
    flex-direction: column;
    justify-content: center;
    z-index: 15;
}

.team-section {
    position: relative;
    overflow: hidden;
    padding: 160px 66px 0 66px;
    background: #fff;
    z-index: 15;
    width: 100%;
}

.team-header-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    margin-bottom: 0;
}



.team-section h1 {
    margin-bottom: 0;
}

.legal-nav.team-nav-dropdown {
    margin: 16px -12px 40px !important;
    width: max-content;
}

.team-subheading {
    margin-bottom: 24px;
}

/* Force visibility of inner container in case observer is blocked */
.team-section .container-wide {
    opacity: 1 !important;
    transform: none !important;
}



.involved-reveal-container {
    position: relative;
    z-index: 20;
    background: #fff;
    /* Covers the Hero background */
    padding: 0 30px 40px;
    /* Surrounding space for the rounding to be visible */
}





.container-wide {
    max-width: 1300px;
    margin: 0 auto;
}

/* Global h2 override if specific spacing is needed, otherwise inherits global h2 */


/* Redesigned About Section */
.about-intro {
    text-align: center;
    padding: 160px 66px 160px 66px;
    background: var(--primary-white);
    position: relative;
    z-index: 5;
}


.about-intro h2 {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: clamp(28px, 5vw, 54px);
    line-height: 1.3;
    max-width: 1100px;
    margin: 0 auto;
    letter-spacing: -1px;
    color: #1a1a1a;
}

.about-eyebrow {
    margin-bottom: 28px;
}


.btn-pill-dark {
    display: inline-block;
    background: var(--nav-pill-bg);
    backdrop-filter: var(--nav-pill-blur);
    -webkit-backdrop-filter: var(--nav-pill-blur);
    color: var(--primary-white);
    padding: 18px 40px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
    font-size: clamp(14px, 1.2vw, 16px);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.btn-pill-dark:hover {
    background: var(--primary-black);
}



.story-section {
    padding: 160px 66px 0 66px;
    border-top: 1px solid #eee;
    background: var(--primary-white);
    position: relative;
    z-index: 10;
    /* Ensure it stays above hero */
}

.story-grid {
    display: grid;
    grid-template-columns: 350px 1fr;
    gap: 80px;
    max-width: 1300px;
    margin: 0 auto;
    align-items: flex-start;
    /* Required for sticky children */
}



.mission-text {
    font-family: var(--font-body);
    font-size: clamp(20px, 2.6vw, 32px);
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: -0.03em;
    color: #a1a1a6;
    /* Base color for mission text */
}

.mission-text p {
    margin-bottom: 2em;
}

.mission-text p:last-child {
    margin-bottom: 0;
}

.reveal-text span {
    color: #a1a1a6;
    /* All words start muted - darkened for readability */
    opacity: 0.3;
    /* Start translucent */
    transform: translateY(15px);
    /* Start slightly lower for raise effect */
    transition: color 0.8s ease, opacity 0.8s ease, transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
    display: inline-block;
    margin-right: 0.25em;
    will-change: transform, opacity, color;
}

.reveal-text span.active {
    color: var(--primary-black);
    opacity: 1;
    transform: translateY(0);
    /* Glide to natural position */
}

/* Typing Fade Effect - Scroll-driven reveal */
.typing-fade span {
    color: #888;
    /* Slightly darker grey for better visibility */
    opacity: 0.6;
    /* Increased opacity for original state */
    transition: color 0.4s ease, opacity 0.4s ease;
    display: inline-block;
    margin-right: 0;
    will-change: opacity, color;
}

.typing-fade .word {
    display: inline-block;
}

.typing-fade span.active {
    color: var(--primary-black);
    opacity: 1;
}



@media (max-width: 1024px) {
    .story-section {
        padding: 100px 32px;
    }

    .story-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}

@media (max-width: 768px) {
    .story-section {
        padding: 80px 24px;
    }
}

/* Advocacy Section — Modern Redesign */
.advocacy-terminal-section {
    position: relative;
    background: #fff;
    padding: 160px 66px 0 66px;
    z-index: 10;
}

.advocacy-image-title {
    margin: 0 0 80px 0;
}

/* 3-column card grid */
.advocacy-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.advocacy-card {
    position: relative;
    padding: 48px;
    background: #FFFFFF;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 24px;
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}



.advocacy-icon-wrapper {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.advocacy-icon {
    width: 28px;
    height: 28px;
    transition: transform 0.5s ease;
}



/* Color Themes */
.card-blue .advocacy-icon-wrapper {
    background: rgba(44, 48, 197, 0.08);
    color: var(--brand-blue);
}



.card-orange .advocacy-icon-wrapper {
    background: rgba(218, 90, 53, 0.08);
    color: var(--brand-orange);
}



.card-cyan .advocacy-icon-wrapper {
    background: rgba(67, 135, 162, 0.08);
    color: var(--brand-cyan);
}





.advocacy-item-title,
.involved-card h3 {
    font-size: clamp(24px, 2vw, 28px);
    line-height: 1.1;
    font-family: var(--font-heading);
    font-weight: 400;
    letter-spacing: -0.03em;
    color: var(--primary-black);
    margin-bottom: 16px;
}

.advocacy-item-text,
.involved-card p {
    font-size: clamp(14px, 1.2vw, 16px);
    line-height: 1.6;
    color: #555;
    margin: 0;
}

/* Tablet */
@media (max-width: 1024px) {
    .advocacy-terminal-section {
        padding: 100px 32px;
    }

    .advocacy-cards-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .advocacy-card {
        padding: 40px;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .advocacy-terminal-section {
        padding: 80px 24px;
    }

    .advocacy-image-title {
        font-size: clamp(28px, 8vw, 38px);
        letter-spacing: -1.5px;
        margin-bottom: 48px;
    }

    .advocacy-card {
        padding: 32px;
    }

    .advocacy-item-title,
    .involved-card h3 {
        font-size: clamp(20px, 6vw, 26px);
        letter-spacing: -0.8px;
    }
}

/* ── Team Slider: Viewport + Track Architecture ── */

/* Clipping viewport — never scrolls, never overflows */
.team-slider-container {
    position: relative;
    /* required: overflow:hidden only clips transformed children when position is set */
    overflow: hidden;
    /* Edge-to-edge bleed */
    margin-left: -66px;
    margin-right: -66px;
}

@media (max-width: 1024px) {
    .team-slider-container {
        margin-left: -32px;
        margin-right: -32px;
    }
}

@media (max-width: 768px) {
    .team-slider-container {
        margin-left: -24px;
        margin-right: -24px;
    }
}

/* Moving flex row — JS applies translateX here */
.team-slides-track {
    display: flex;
    gap: 24px;
    padding-left: 66px;
    padding-right: 66px;
    padding-bottom: 40px;
    will-change: transform;
}

@media (max-width: 1024px) {
    .team-slides-track {
        gap: 16px;
        padding-left: 32px;
        padding-right: 32px;
    }
}

@media (max-width: 768px) {
    .team-slides-track {
        gap: 16px;
        padding-left: 24px;
        padding-right: 24px;
    }
}

/* Slider controls */
.slider-controls {
    display: flex;
    gap: 2px;
    background: var(--nav-pill-bg);
    backdrop-filter: var(--nav-pill-blur);
    -webkit-backdrop-filter: var(--nav-pill-blur);
    border: 1px solid rgba(255, 255, 255, 0.12);
    padding: 4px;
    border-radius: 4px;
    pointer-events: auto;
    position: relative;
    overflow: hidden;
}

/* Slider Controls Container */
.slider-footer-row {
    display: flex;
    justify-content: flex-end;
    margin-top: 32px;
    padding-right: 0;
    position: relative;
    z-index: 5;
    pointer-events: none;
}

.slider-controls {
    display: flex;
    gap: 12px;
    padding: 8px;
    background: var(--nav-pill-bg);
    backdrop-filter: var(--nav-pill-blur);
    -webkit-backdrop-filter: var(--nav-pill-blur);
    border: 1px solid rgba(0, 0, 0, 0.08);
    /* Darker border for light theme */
    border-radius: 12px;
    pointer-events: auto;
    position: relative;
    overflow: hidden;
}

.slider-btn {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: transparent;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
    color: var(--primary-black);
    /* Changed to black for contrast */
}

.slider-btn svg {
    width: 20px;
    height: 20px;
}

.slider-btn:hover:not(:disabled) {
    background: rgba(0, 0, 0, 0.05);
}

.slider-btn:disabled {
    opacity: 0.2;
    cursor: default;
    background: transparent !important;
}

/* Individual Slide */
.member-slide {
    flex: 0 0 auto;
    width: 60%;
    transition: all 0.3s ease;
}

/* Focus Effect: Hide text on inactive cards */
.member-slide .slide-overlay-text {
    opacity: 1;
    /* Container visible, children hidden */
}

.member-slide .slide-overlay-text span {
    opacity: 0;
    transition: opacity 0s;
    /* Reverse Typing (Un-type from end) when becoming inactive */
    transition-delay: calc((var(--n) - var(--i)) * 0.02s);
}

/* Caption: hidden on inactive slides */
.member-slide .slide-role {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

/* Active State */
.member-slide.active .slide-overlay-text span {
    opacity: 1;
    transition: opacity 0.01s;
    transition-delay: calc(var(--i) * 0.04s);
    /* Typing delay */
}

/* Caption: revealed when slide is active */
.member-slide.active .slide-role {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.15s,
        transform 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.15s;
}

.slide-visual {
    width: 100%;
    height: 420px;
    background: #9ca3af;
    border-radius: 32px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 10px;
    padding: 28px;
    box-sizing: border-box;
}

/* Member 1 Specific Color */
.member-slide:nth-child(1) .slide-visual {
    background: #7c8a99;
}

.member-slide:nth-child(2) .slide-visual {
    background: #8e8e93;
}

.member-slide:nth-child(3) .slide-visual {
    background: #a2aab3;
}

.member-slide:nth-child(4) .slide-visual {
    background: #949ca5;
}

.member-slide:nth-child(5) .slide-visual {
    background: #b0b8c1;
}


.slide-overlay-text {
    position: relative;
    z-index: 2;
    font-family: var(--font-heading);
    font-size: clamp(24px, 3vw, 36px);
    line-height: 1.1;
    color: #fff;
    font-weight: 400;
    letter-spacing: -0.04em;
}

.slide-bg-initial {
    position: absolute;
    right: -20px;
    bottom: -40px;
    font-family: var(--font-heading);
    font-size: 240px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.15);
    line-height: 1;
    user-select: none;
    pointer-events: none;
}

.slide-name {
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 400;
    margin-bottom: 2px;
    color: var(--primary-black);
}

.slide-role {
    position: relative;
    z-index: 2;
    font-family: var(--font-body);
    font-size: clamp(14px, 1.2vw, 16px);
    font-weight: 400;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.75);
    margin: 0;
    max-width: 55%;
}



/* Tablet Spacing */
@media (max-width: 1024px) {
    .team-section {
        padding: 100px 32px;
    }

    /* Team Section Dropdown: Full-width tablet optimization */
    .legal-nav.team-nav-dropdown {
        width: calc(100% + 64px) !important;
        margin: 0 -32px 32px !important;
        border-radius: 0;
    }
}

/* Responsive */
@media (max-width: 1024px) {
    .member-slide {
        width: 320px;
    }

    .slide-visual {
        height: 300px;
        padding: 24px;
    }

    .slide-overlay-text {
        font-size: clamp(22px, 4vw, 32px);
    }

    .slide-role {
        max-width: 85%;
    }
}

@media (max-width: 768px) {
    .team-section {
        padding: 80px 24px;
    }

    /* Expand team dropdown to full width on mobile */
    .legal-nav.team-nav-dropdown {
        width: calc(100% + 48px) !important;
        margin-left: -24px !important;
        margin-right: -24px !important;
        margin-bottom: 24px !important;
    }

    .team-header-row {
        flex-direction: column;
        align-items: flex-start !important;
        text-align: left;
    }

    .team-subheading {
        font-size: clamp(15px, 4vw, 18px);
        margin-top: 0;
    }






    .member-slide {
        width: 85vw;
        max-width: none;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }





    .slide-details {
        text-align: left;
    }

    .slider-footer-row {
        margin-top: 32px !important;
        /* Move below cards instead of overlapping */
        justify-content: center !important;
        /* Center buttons on mobile */
    }

    .slide-visual {
        height: 260px;
        border-radius: 20px;
    }



    .slide-overlay-text {
        font-size: clamp(20px, 6vw, 28px);
    }

    .slide-bg-initial {
        font-size: 180px;
        right: -10px;
        bottom: -20px;
    }

    .slide-role {
        max-width: 94%;
    }

    .legal-nav.team-nav-dropdown {
        margin-bottom: 24px !important;
    }

}

/* Get Involved Reveal Container (Stack Effects) */
/* Get Involved Section — Modern Grid Redesign */
.get-involved-section {
    position: relative;
    background: #fff;
    padding: 160px 66px 160px 66px;
    z-index: 10;
}

.involved-title {
    margin: 0 0 80px 0;
}

.involved-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.involved-card {
    position: relative;
    padding: 48px;
    background: #F8F8F9;
    border-radius: 24px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.involved-icon-wrapper {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 32px;
}

/* Color themed icons for Get Involved */
.involved-card.card-blue .involved-icon-wrapper {
    background: rgba(44, 48, 197, 0.1);
    color: var(--brand-blue);
}

.involved-card.card-orange .involved-icon-wrapper {
    background: rgba(218, 90, 53, 0.1);
    color: var(--brand-orange);
}

.involved-card.card-cyan .involved-icon-wrapper {
    background: rgba(67, 135, 162, 0.1);
    color: var(--brand-cyan);
}

/* Unmanaged card styles handled in unified typography section */

/* Tablet */
@media (max-width: 1024px) {
    .get-involved-section {
        padding: 100px 32px 160px 32px;
    }

    .involved-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .involved-card {
        padding: 40px;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .get-involved-section {
        padding: 80px 24px 120px 24px;
    }

    .involved-title {
        font-size: clamp(28px, 8vw, 38px);
        letter-spacing: -1.5px;
        margin-bottom: 48px;
    }

    .involved-card {
        padding: 32px;
    }
}

.involved-cta-row {
    margin-top: 64px;
    display: flex;
    justify-content: center;
}

.involved-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 40px;
    background: var(--nav-pill-bg);
    backdrop-filter: var(--nav-pill-blur);
    -webkit-backdrop-filter: var(--nav-pill-blur);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 12px;
    text-decoration: none;
    color: var(--primary-black);
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 500;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
    cursor: pointer;
    border: 1px solid rgba(0, 0, 0, 0.08);
    /* Restore the subtle border */
}

.involved-btn:hover {
    background: rgba(0, 0, 0, 0.04);
}

@media (max-width: 768px) {
    .involved-cta-row {
        margin-top: 48px;
    }

    .involved-btn {
        padding: 16px 24px;
        font-size: 15px;
        width: auto;
    }
}


/* Cinematic Footer Styles */
.site-footer {
    position: relative;
    z-index: 5;
    margin-top: 80px;
    padding: 80px 0 0 0;
    background: var(--primary-white);
    color: var(--primary-black);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.site-footer .container-wide {
    max-width: none;
    position: relative;
    z-index: 5;
    padding: 0 66px 0;
    /* Moved from footer to container */
}

.site-footer::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 132px;
    background: linear-gradient(90deg,
            #2C30C5 0%,
            #2C30C5 50%,
            /* Blue Dominance (~75%) */
            #4387A2 85%,
            /* Cyan (~20%) */
            #DA5A35 100%
            /* Orange (~5%) */
        );
    mask-image: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 100%);
    -webkit-mask-image: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 100%);
    pointer-events: none;
    z-index: 1;
    opacity: 0.8;
}

.footer-main {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 40px;
    /* Increased to give CTA more room */
    gap: 80px;
}

.footer-left {
    max-width: 480px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}

/* Footer slogan */
.footer-slogan {
    font-family: var(--font-heading);
    font-size: clamp(24px, 2.5vw, 28px);
    font-weight: 400;
    line-height: 1.25;
    letter-spacing: -0.03em;
    color: var(--primary-black);
    margin: 0;
}

.footer-cta-subtext {
    font-size: 14px;
    color: var(--text-muted);
    margin: 0 0 12px 0;
}

.footer-btn {
    display: inline-block;
    background: var(--nav-pill-bg);
    backdrop-filter: var(--nav-pill-blur);
    -webkit-backdrop-filter: var(--nav-pill-blur);
    color: var(--primary-white);
    padding: 10px 20px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.footer-btn:hover {
    background: rgba(0, 0, 0, 0.7);
    opacity: 1;
}

/* Status Button Tooltip Restore */
.status-btn[data-tooltip]::after,
.footer-legal-link[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: calc(100% + 12px);
    right: 0;
    /* Align right edge with button's right edge */
    left: auto;
    transform: translateY(8px);
    background: var(--nav-pill-bg);
    backdrop-filter: var(--nav-pill-blur);
    -webkit-backdrop-filter: var(--nav-pill-blur);
    color: #fff;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.15));
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    text-transform: none;
    letter-spacing: 0;
    z-index: 100;
    pointer-events: none;
}

.status-btn:hover[data-tooltip]::after,
.footer-legal-link:hover[data-tooltip]::after {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.status-button-wrapper {
    display: flex;
    align-items: center;
    gap: 24px;
}

.footer-legal-link {
    color: var(--text-muted);
    text-decoration: none;
    font-size: 14px;
    text-transform: none;
    letter-spacing: normal;
    transition: color 0.2s ease;
    position: relative;
    display: inline-block;
}

.footer-legal-link:hover {
    color: var(--primary-black);
}

.status-btn {
    background: var(--nav-pill-bg);
    backdrop-filter: var(--nav-pill-blur);
    -webkit-backdrop-filter: var(--nav-pill-blur);
    color: var(--primary-white);
    border: none;
    padding: 10px 20px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.2s ease;
    font-family: var(--font-heading);
    text-transform: none;
    letter-spacing: 0;
    position: relative;
}

.status-btn:hover {
    background: rgba(0, 0, 0, 0.7);
}

@media (max-width: 768px) {

    .status-btn[data-tooltip]::after,
    .footer-legal-link[data-tooltip]::after {
        bottom: auto;
        top: 50%;
        left: calc(100% + 12px);
        right: auto;
        transform: translateY(-50%) translateX(-10px);
    }

    .status-btn:hover[data-tooltip]::after,
    .footer-legal-link:hover[data-tooltip]::after {
        transform: translateY(-50%) translateX(0);
    }
}

.footer-right {
    display: flex;
    gap: 60px;
    margin-right: 8vw;
    /* Nudge left to align with 'D' in BAND */
}

.footer-nav-col {
    border-left: 1px solid #eee;
    padding-left: 16px;
    display: flex;
    flex-direction: column;
    align-self: flex-start;
}

.footer-nav-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 16px;
    color: var(--text-muted);
    /* Faded for labels */
    line-height: 1;
    margin-top: 0;
}

.footer-nav-col a {
    display: block;
    color: var(--primary-black);
    /* Dark links */
    text-decoration: none;
    font-size: 14px;
    margin-bottom: 10px;
    transition: opacity 0.2s;
    line-height: 1.5;
}

.footer-nav-col a:last-child {
    margin-bottom: 0;
    line-height: 1;
}

.footer-nav-col a:hover {
    opacity: 0.7;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 0;
    padding-bottom: 38px;
    /* Minimal spacing above gradient */
    margin-top: 40px;
    /* Balanced separation */
    border-top: none;
}

.footer-bottom>div:first-child {
    font-size: 14px;
    color: var(--text-muted);
    text-transform: none;
    letter-spacing: normal;
}

@media (max-width: 1024px) {
    .footer-main {
        flex-direction: column;
        gap: 60px;
    }

    .footer-right {
        width: 100%;
        justify-content: space-between;
    }
}

@media (max-width: 768px) {
    .site-footer {
        padding: 40px 0 0 0;
        margin-top: 40px;
        position: relative;
        z-index: 20;
    }

    .site-footer .container-wide {
        padding: 0 24px 8px;
    }

    .footer-left {
        display: flex;
        width: 100%;
        max-width: 100%;
        margin-bottom: 12px;
    }

    .footer-slogan {
        font-size: clamp(20px, 6vw, 26px);
        max-width: 260px;
    }

    .footer-right {
        flex-direction: column;
        justify-content: flex-start;
        gap: 40px;
        width: 100%;
    }

    .footer-nav-col {
        border-left: 1px solid rgba(0, 0, 0, 0.1);
        padding-left: 16px;
        padding-top: 0;
        border-top: none;
        width: 100%;
    }

    .footer-brand-massive {
        margin-bottom: 24px;
    }

    .footer-bottom {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
        flex-wrap: wrap;
        /* Ensure it wraps if screen is very narrow */
    }

    .status-button-wrapper {
        order: 0;
    }
}

/* Footer Wordmark Logo - Scaled down for better hierarchy */
.footer-logo-wordmark {
    width: 60%;
    max-width: 800px;
    height: auto;
    display: block;
    margin: 60px 0 40px 0;
    /* Left aligned */
    opacity: 1;
}

@media (max-width: 1024px) {

    .team-section,
    .advocacy-terminal-section,
    .get-involved-section {
        padding: 100px 32px 0 32px;
    }

    .about-intro {
        padding: 100px 32px 100px 32px;
    }

    .about-intro h2 {
        margin-bottom: 0;
        letter-spacing: -0.5px;
        line-height: 1.4;
    }

    .story-section {
        padding: 100px 32px 0 32px;
    }

    .footer-logo-wordmark {
        width: 75%;
        margin: 40px 0;
    }
}

@media (max-width: 768px) {

    .team-section,
    .advocacy-terminal-section,
    .get-involved-section {
        padding: 80px 24px 0 24px;
    }

    .about-intro {
        padding: 80px 24px 80px 24px;
    }

    .about-intro h2 {
        margin-bottom: 0;
        letter-spacing: -0.2px;
        line-height: 1.4;
    }

    .story-section {
        padding: 80px 24px 0 24px;
    }

    .footer-logo-wordmark {
        width: 100%;
        max-width: 480px;
        margin: 30px 0 50px 0;
    }
}

/* Legal Page Styles */
.legal-hero {
    padding: 200px 66px 100px;
    background: var(--primary-white);
    position: relative;
    z-index: 100;
    /* Higher than sidebar cover to prevent clipping */
    opacity: 0;
    transform: translateY(30px);
    animation: heroRaise 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards 0.4s;
}

.legal-title {
    font-family: var(--font-heading);
    font-size: clamp(40px, 6vw, 84px);
    letter-spacing: -0.05em;
    font-weight: 400;
    color: var(--primary-black);
    margin-bottom: 16px;
    line-height: 1;
}

.legal-last-updated {
    font-size: clamp(12px, 1.2vw, 14px);
    color: var(--text-muted);
    font-family: var(--font-body);
    margin-top: 8px;
    margin-bottom: 0;
}

.legal-hero-text {
    max-width: 800px;
    font-family: var(--font-body);
    font-size: clamp(15px, 1.4vw, 20px);
    line-height: 1.6;
    color: var(--text-muted);
    margin-top: 32px;
}

.legal-hero-text p:last-child {
    margin-bottom: 0;
}

.legal-content-section {
    padding: 0 66px 160px;
    background: var(--primary-white);
    opacity: 0;
    transform: translateY(40px);
    animation: heroRaise 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards 0.5s;
}

.legal-grid {
    display: grid;
    grid-template-columns: 350px 1fr;
    gap: 80px;
    max-width: 1300px;
    margin: 0 auto;
    align-items: flex-start;
}

.legal-label {
    font-family: var(--font-body);
    font-size: clamp(15px, 1.3vw, 18px);
    font-weight: 500;
    color: var(--brand-black);
    margin-bottom: 16px;
    display: block;
    opacity: 1;
    text-transform: none;
    letter-spacing: normal;
    padding-top: 5px;
}

.legal-sidebar {
    position: sticky;
    top: 140px;
    padding-top: 5px;
    z-index: 100;
}

.legal-nav {
    display: flex;
    flex-direction: column;
    gap: 2px;
    cursor: pointer;
    position: relative;
    user-select: none;
    padding: 8px;
    margin: -8px -12px;
    width: fit-content;
    transition: gap 0.3s ease;
}

.legal-nav a {
    text-decoration: none;
    color: var(--text-muted);
    font-size: clamp(14px, 1.2vw, 16px);
    font-family: var(--font-heading);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    display: none;
    /* Hidden by default */
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 8px;
    white-space: nowrap;
}

.legal-nav a.active {
    display: flex;
    color: var(--primary-black);
    order: -1;
    /* Ensure active is always top when closed/opened */
}

/* The "v" arrow next to titles - Reduced size */
.legal-nav a.active::after {
    content: '';
    display: inline-block;
    width: 6.5px;
    height: 6.5px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    margin-left: 6px;
    margin-top: -3px;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    opacity: 0.6;
}

@media (max-width: 1024px) {
    .legal-nav a.active::after {
        margin-left: auto;
        /* Push dropdown icon to the right on mobile */
    }
}

.legal-nav.is-open {
    gap: 4px;
}

@media (max-width: 1024px) {

    /* Chevron rotation when open */
    .legal-nav.is-open a.active::after {
        transform: rotate(-135deg);
        margin-top: 3px;
    }
}

/* Show all links when the nav is open (click) */
.legal-nav.is-open a {
    display: flex;
}

/* On desktop, also expand on hover */
@media (min-width: 1025px) {
    .legal-nav:hover a {
        display: flex;
    }
}

.legal-nav.is-open a.active::after {
    transform: rotate(-135deg);
    margin-top: 3.5px;
}

@media (min-width: 1025px) {
    .legal-nav:hover a.active::after {
        transform: rotate(-135deg);
        margin-top: 3.5px;
    }
}

.legal-nav a:hover {
    color: var(--primary-black);
}

.legal-body-text {
    font-family: var(--font-body);
    font-size: clamp(15px, 1.3vw, 18px);
    line-height: 1.7;
    color: #444;
    max-width: 800px;
}

.legal-body-text p {
    margin-bottom: 24px;
}

.legal-section-title {
    font-family: var(--font-heading);
    font-size: clamp(18px, 2vw, 24px);
    font-weight: 400;
    color: var(--primary-black);
    margin: 0 0 20px;
    padding-top: 5px;
    letter-spacing: -0.03em;
}

.legal-subsection-title {
    font-family: var(--font-heading);
    font-size: clamp(15px, 1.4vw, 18px);
    font-weight: 500;
    color: var(--primary-black);
    margin: 40px 0 16px;
    letter-spacing: -0.02em;
}

.legal-doc-content-wrapper {
    margin-top: 24px;
}

.legal-body-text ul {
    margin-bottom: 24px;
    padding-left: 20px;
}

.legal-body-text li {
    margin-bottom: 12px;
}

.legal-tab-section {
    display: none;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.legal-tab-section.active {
    display: block;
}

/* Hide navigation buttons when EXCO tab is active (only 1 card) */
#exco.active~.slider-footer-row {
    display: none;
}

.legal-tab-section.tab-enter {
    opacity: 1;
    transform: translateY(0);
}

/* Optional exit state if we want more control */
.legal-tab-section.tab-exit {
    opacity: 0;
    transform: translateY(-10px);
}

@keyframes tabFadeIn {
    from {
        opacity: 0;
        transform: translateY(4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Download button — same width as the nav dropdown */
.legal-nav-download-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    margin-top: 16px;
    padding: 11px 16px;
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.03);
    border: 1px solid rgba(0, 0, 0, 0.06);
    color: var(--primary-black);
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    box-sizing: border-box;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.legal-nav-download-btn:hover {
    background: rgba(0, 0, 0, 0.06);
}

.legal-download-container {
    margin-top: 60px;
    padding-top: 40px;
}

.download-button {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--nav-pill-bg);
    backdrop-filter: var(--nav-pill-blur);
    -webkit-backdrop-filter: var(--nav-pill-blur);
    border: 1px solid rgba(0, 0, 0, 0.08);
    color: var(--primary-black);
    padding: 14px 28px;
    border-radius: 12px;
    text-decoration: none;
    font-size: 15px;
    font-weight: 500;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05);
}

.download-button:hover {
    background: rgba(0, 0, 0, 0.04);
}

.download-button svg {
    width: 18px;
    height: 18px;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

@media (max-width: 1024px) {

    .legal-hero {
        padding-left: 32px;
        padding-right: 32px;
        padding-top: 140px;
        padding-bottom: 48px;
    }

    .legal-content-section {
        padding-left: 32px;
        padding-right: 32px;
        padding-top: 16px;
        padding-bottom: 100px;
    }

    .legal-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .legal-sidebar {
        position: sticky;
        top: 66px;
        z-index: 50;
        background: #fff;
        margin-left: -32px;
        margin-right: -32px;
        padding: 12px 32px;
        border-bottom: 1px solid rgba(0, 0, 0, 0.06);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.02);
        transition: top 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        width: auto;
        /* Let it span the negative margins */
    }

    .download-card {
        flex-direction: column;
        align-items: flex-start;
        gap: 28px;
        padding: 24px;
    }

    .download-button {
        width: 100%;
        justify-content: center;
        padding: 16px 28px;
    }

    /* Sidebar download card hidden on tablet/mobile — nav button takes over */
    .sidebar-download {
        display: none;
    }



    /* The 'Curtain': Covers text scrolling up behind/above the sticky bar.
       We use a large height to ensure full coverage up to the header. */
    .legal-sidebar::before {
        content: '';
        display: block;
        position: absolute;
        bottom: 100%;
        left: 0;
        width: 100%;
        height: 120px;
        background: #fff;
        pointer-events: none;
        z-index: -1;
        /* Sits behind sidebar text but above body text */
    }

    /* Mobile sticky nav: Span full width of viewport */
    .legal-nav {
        flex-direction: column;
        flex-wrap: nowrap;
        width: calc(100% + 64px) !important;
        margin: 12px -32px !important;
        background: transparent;
        border: none;
        border-radius: 0;
        box-shadow: none;
        overflow: visible;
        gap: 0;
        /* Remove gaps for seamless stacking */
    }

    /* On mobile, download btn hidden until dropdown opens, but same style as desktop */
    .legal-nav-download-btn {
        display: none;
        width: 100%;
        justify-content: center;
        margin-top: 16px;
    }

    .legal-sidebar.is-open .legal-nav-download-btn {
        display: flex;
    }

    .legal-nav a {
        font-size: 16px;
        padding: 14px 32px !important;
        /* Padding matches sidebar desktop/tablet-large padding */
        border: none;
        width: 100% !important;
        display: none !important;
        /* Hidden until open/active */
        justify-content: space-between !important;
        /* Push chevron to far right */
        align-items: center;
        background: #fff !important;
    }

    /* Override hidden state for active/open dropdown */
    .legal-nav.is-open a,
    .legal-nav a.active {
        display: flex !important;
    }

    .legal-nav a.active {
        background: #fff;
        font-weight: 500;
    }

    /* Standard chevron behavior for mobile pills */
    .legal-nav a.active::after {
        content: '';
        width: 10px;
        height: 10px;
        border-right: 2px solid #000;
        border-bottom: 2px solid #000;
        transform: rotate(45deg);
        transition: transform 0.4s ease;
        flex-shrink: 0;
        margin-top: -4px;
    }

    .legal-nav.is-open a.active::after {
        transform: rotate(-135deg);
        margin-top: 5px;
    }

    .legal-nav a:hover {
        color: var(--primary-black);
        background: #f8f8f8;
    }

    /* Buffer so body text never scrolls behind the sticky sidebar.
       Sidebar height ≈ 50px (12px padding × 2 + ~26px link).
       Extra 8px breathing room. */
    .legal-body-text {
        padding-top: 0;
    }

    /* Keep section titles clear of navbar + sticky sidebar when scrolled-to */
    .legal-tab-section {
        scroll-margin-top: 130px;
    }

    .legal-section-title {
        margin-top: 0;
        padding-top: 0;
    }

    .legal-label {
        margin-bottom: 10px;
    }
}

@media (max-width: 768px) {

    .legal-hero {
        padding-left: 24px;
        padding-right: 24px;
        padding-top: 120px;
        padding-bottom: 40px;
    }

    .legal-content-section {
        padding-left: 24px;
        padding-right: 24px;
        padding-top: 16px;
        padding-bottom: 80px;
    }

    .legal-sidebar {
        margin-left: -24px;
        margin-right: -24px;
        padding-left: 24px;
        padding-right: 24px;
    }

    /* Sync mobile nav edges to 768px padding */
    .legal-nav {
        width: calc(100% + 48px) !important;
        margin-left: -24px !important;
        margin-right: -24px !important;
    }

    .legal-nav a {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    .legal-title {
        font-size: clamp(28px, 8vw, 38px);
        letter-spacing: -1.5px;
    }
}

/* --- Modal Styles (Join Mission) --- */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    backdrop-filter: blur(0px);
    /* Initialize blur */
    -webkit-backdrop-filter: blur(0px);
    transition: opacity 0.4s ease, visibility 0.4s, backdrop-filter 0.4s ease;
}

.modal-overlay.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

.modal-content.nav-pill-style {
    width: 500px;
    background: var(--nav-pill-bg);
    backdrop-filter: var(--nav-pill-blur);
    -webkit-backdrop-filter: var(--nav-pill-blur);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 12px;
    padding: 56px 32px 44px 32px;
    position: relative;
    transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1), transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.modal-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--primary-black);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.modal-close:hover {
    background: rgba(0, 0, 0, 0.04);
}

.modal-inner {
    padding-top: 8px;
}

.modal-header-top {
    padding: 0 12px 28px 12px;
}

.modal-sublabel {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.05em;
    color: var(--primary-black);
    opacity: 0.4;
    margin-bottom: 12px;
}

.modal-email-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.modal-big-email {
    font-size: 28px;
    font-weight: 700;
    color: var(--primary-black);
    text-decoration: none;
    letter-spacing: -0.03em;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
}

.copy-status {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: 20px;
    height: 20px;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    color: currentColor;
    opacity: 0.15;
    /* Always subtly visible to indicate feature */
    transform: translateX(0);
    overflow: hidden;
}

.modal-big-email:hover .copy-status {
    opacity: 0.45;
}

.copy-icon {
    position: absolute;
    left: 0;
    opacity: 1;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.copy-text {
    position: absolute;
    left: 0;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.01em;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    white-space: nowrap;
}

/* Success State Active — Enhanced visibility */
.modal-big-email.is-copied {
    color: var(--brand-blue) !important;
}

.modal-big-email.is-copied .copy-status {
    opacity: 1 !important;
    width: 65px;
}

.modal-big-email.is-copied .copy-icon {
    opacity: 0;
    transform: translateY(-10px);
}

.modal-big-email.is-copied .copy-text {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.modal-big-email:hover {
    opacity: 0.7;
}

.modal-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 24px;
    border-top: 1px solid rgba(0, 0, 0, 0.04);
}

.modal-list-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    text-decoration: none;
    border-radius: 12px;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.modal-list-item:hover {
    background: rgba(0, 0, 0, 0.04);
}

.item-title {
    font-size: 17px;
    font-weight: 700;
    color: var(--primary-black);
    margin-bottom: 2px;
}

.item-subtitle {
    font-size: 14px;
    color: var(--primary-black);
    opacity: 0.4;
    font-weight: 500;
}

.item-icon-wrapper {
    color: var(--primary-black);
    opacity: 0.15;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.modal-list-item:hover .item-icon-wrapper {
    opacity: 0.4;
}

.item-icon-wrapper.is-small {
    padding-right: 2px;
}

.modal-footer-address {
    margin-top: 24px;
    padding: 20px 24px 0 24px;
    border-top: 1px solid rgba(0, 0, 0, 0.04);
    color: var(--primary-black);
    opacity: 0.35;
    font-size: 10px;
    font-weight: 400;
    text-align: center;
    letter-spacing: 0.02em;
}

@media (max-width: 768px) {
    .modal-content.nav-pill-style {
        width: 94%;
        max-width: 480px;
        padding: 48px 24px 24px 24px;
    }

    .modal-big-email {
        font-size: 20px;
    }
}