/* -----------------------------------------
   Global Styles
   ----------------------------------------- */
* {
    max-width: 100vw;
}

:root {
    --mfb-brand: #1a3a2a;
    --mfb-brand-hover: #234d35;
}

html, body {
    width: 100%;
    min-height: 100%;
    margin: 0px;
    padding: 0px;
}

/* Only html clips horizontal overflow. Per the CSS overflow spec, pairing a
   non-visible overflow-x with the default visible overflow-y forces that
   axis to compute as auto — if BOTH html and body specified overflow-x:
   hidden here (as this rule used to), both independently became scroll
   containers, nesting two separate scrollports. That breaks position:
   sticky for every descendant (the coin-track sections rely on it) since
   the browser no longer treats the viewport as the single scrolling
   ancestor. Body is left with its default (visible) overflow so it never
   becomes a scroll container of its own. */
html {
    overflow-x: hidden;
}

/* Blocks scrolling for the brief window while the hero heading is still
   playing its intro reveal (see the inline script in <head> that adds
   this, and index.js which removes it once the animation ends). Only
   overflow-y — html already clips overflow-x above, and adding a second
   non-visible axis on top of that here (rather than also touching body)
   keeps this a single-element change, avoiding the dual-scroll-container
   issue documented above.
   overflow-y:hidden alone stops mouse-wheel/keyboard scrolling but mobile
   browsers don't reliably treat it as blocking a touch-swipe drag — the
   page could still be dragged down by finger even with this rule active,
   defeating the lock specifically on mobile (desktop worked fine off
   overflow-y alone). touch-action:none tells the browser not to hand swipe
   gestures on html to its default scroll behavior at all; the touchmove
   listener in index.html is the belt-and-suspenders backup for the mobile
   browsers that only partially honor touch-action. */
html.scroll-locked {
    overflow-y: hidden;
    touch-action: none;
}

/* -----------------------------------------
   Navbar component
   ----------------------------------------- */
.navbar {
    width: 100%;
    position: relative;
    z-index: 20;
}

.navbar header {
    position: relative;
    z-index: 21;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    max-width: 72rem;
    margin: 0 auto;
    padding: 1rem 5vw;
    width: 100%;
    height: auto;
    min-height: 50px;
    box-sizing: border-box;
}

.navbar__logos {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    height: 48px;
    flex-shrink: 0;
}

.navbar__logo {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: auto;
    height: 42px;
    line-height: 0;
    transition: opacity 0.2s ease;
}

.navbar__logo:hover {
    opacity: 0.9;
}

#mfb-logo {
    height: 42px;
    width: auto;
    max-height: 42px;
    object-fit: contain;
    object-position: center;
    display: block;
}

.navbar__consulting-logo {
    display: block;
    height: 48px;
    width: auto;
    max-width: 9rem;
    object-fit: contain;
    object-position: center center;
}

.navbar__desktop {
    display: flex;
    align-items: center;
    margin-left: auto;
}

.navbar__desktop ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.navbar__desktop ul a {
    color: white;
    font-family: 'Poppins', sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
    text-decoration: none;
    padding: 0.5rem 0.65rem;
    border-radius: 6px;
    transition: color 0.2s ease, background-color 0.2s ease;
}

.navbar__desktop ul a:hover,
.navbar__desktop ul a.is-active {
    color: #b8d4c4;
}

.navbar__desktop ul li {
    margin: 0;
    padding: 0;
}

.navbar__mobile {
    display: none;
    position: relative;
    align-items: center;
    flex-shrink: 0;
}

#hamburger-icon {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 6px;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.1);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

#hamburger-icon:active {
    background: rgba(255, 255, 255, 0.1);
}

#hamburger-icon:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

#hamburger-icon .bar1,
#hamburger-icon .bar2,
#hamburger-icon .bar3,
#hamburger-icon span {
    display: block;
    width: 22px;
    height: 2px;
    background-color: white;
    border-radius: 2px;
    margin: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

#hamburger-icon.open .bar1 {
    transform: translateY(8px) rotate(-45deg);
}

#hamburger-icon.open .bar2 {
    opacity: 0;
}

#hamburger-icon.open .bar3 {
    transform: translateY(-8px) rotate(45deg);
}

.mobile-nav-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99990;
    background: transparent;
    cursor: pointer;
    pointer-events: none;
}

body.nav-open .mobile-nav-backdrop {
    display: block;
    pointer-events: auto;
}

.mobile-nav-panel {
    display: none;
    position: fixed;
    top: 4.25rem;
    right: max(1.25rem, 5vw);
    z-index: 99999;
    width: min(20rem, calc(100vw - 2.5rem));
    padding: 1.35rem 1.25rem 1.25rem;
    box-sizing: border-box;
    flex-direction: column;
    gap: 0;
    background: #fff;
    border-radius: 1.25rem;
    box-shadow:
        0 4px 6px rgba(0, 0, 0, 0.04),
        0 12px 28px rgba(0, 0, 0, 0.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px) scale(0.98);
    transform-origin: top right;
    pointer-events: auto;
    transition:
        opacity 0.22s ease,
        visibility 0.22s ease,
        transform 0.22s ease;
}

body.nav-open .mobile-nav-panel {
    display: flex;
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
}

.mobile-nav-panel__links {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    margin: 0;
    padding: 0;
}

.mobile-nav-link {
    display: block;
    padding: 0.65rem 0.5rem;
    color: #1f2937;
    font-family: 'Poppins', sans-serif;
    font-size: 1rem;
    font-weight: 500;
    text-decoration: none;
    border-radius: 0.5rem;
    transition: color 0.2s ease, background-color 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}

.mobile-nav-link.is-active {
    color: var(--mfb-brand, #1a3a2a);
    background-color: rgba(26, 58, 42, 0.06);
}

@media (hover: hover) {
    .mobile-nav-link:hover,
    .mobile-nav-link:focus-visible {
        color: var(--mfb-brand, #1a3a2a);
        background-color: rgba(26, 58, 42, 0.06);
    }
}

.mobile-nav-panel__actions {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e5e7eb;
}

.mobile-nav-panel__actions:empty {
    display: none;
    margin: 0;
    padding: 0;
    border: none;
}

.mobile-nav-btn {
    display: block;
    width: 100%;
    padding: 0.8rem 1.25rem;
    font-family: 'Poppins', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    border-radius: 999px;
    box-sizing: border-box;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
    -webkit-tap-highlight-color: transparent;
}

.mobile-nav-btn:active {
    transform: scale(0.98);
}

.mobile-nav-btn--outline {
    color: var(--mfb-brand, #1a3a2a);
    background: transparent;
    border: 2px solid var(--mfb-brand, #1a3a2a);
}

.mobile-nav-btn--primary {
    color: #fff;
    background: var(--mfb-brand, #1a3a2a);
    border: 2px solid transparent;
    box-shadow: 0 4px 14px rgba(26, 58, 42, 0.25);
}

@media (hover: hover) {
    #hamburger-icon:hover {
        background: rgba(255, 255, 255, 0.18);
    }

    .mobile-nav-btn--outline:hover,
    .mobile-nav-btn--outline:focus-visible {
        background: rgba(26, 58, 42, 0.06);
    }

    .mobile-nav-btn--primary:hover,
    .mobile-nav-btn--primary:focus-visible {
        background: var(--mfb-brand-hover, #234d35);
    }
}

@media only screen and (min-width: 769px) {
    .navbar__logos {
        height: 52px;
    }

    .navbar__consulting-logo {
        height: 52px;
        max-width: 10rem;
    }
}

@media only screen and (max-width: 768px) {
    .navbar__desktop {
        display: none;
    }

    .navbar__mobile {
        display: flex;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mobile-nav-panel {
        transition: opacity 0.15s ease, visibility 0.15s ease;
        transform: none;
    }

    body.nav-open .mobile-nav-panel {
        transform: none;
    }
}

.text-green {
    color: #136F64
}

/* Footer */
.site-footer {
    width: 100%;
    background-color: #1a3a2a;
    padding: 2rem 0 1.5rem;
}

.site-footer__inner {
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 5vw;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.site-footer__main {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    align-items: flex-start;
}

.site-footer__brand {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* Footer logo intro (home page only) — lives between the coin track and
   <footer> (see index.html), not inside the footer itself, specifically so
   it renders against .home-page's animated gradient background rather than
   the footer's solid dark-green one.
   Fallback (JS didn't run, or reduced-motion): .footer-intro has no
   special height and its sticky child is position:static, so
   .site-footer__brand just renders normally, in-flow, at its natural size.
   Enhanced: a scroll runway (shorter than this used to be — 100vh, not
   180vh, the whole reveal doesn't need that much room) with the brand row
   pinned via sticky, centered the entire time, while index.js drives the
   sprout/coin logo's scale and the consulting-logo/wordmark's opacity
   directly off scroll progress each frame — continuously scroll-scrubbed,
   like the coin sections above, rather than a one-shot trigger. Only the
   sprout/coin logo (#footer-intro-logo) scales down from big to its normal
   size; the consulting logo and the wordmark text simply fade in beside it
   once it's settled — the whole group stays centered throughout, it
   doesn't slide over to the footer's normal left-aligned spot. */
.footer-intro {
    position: relative;
}

.footer-intro__sticky {
    position: static;
}

html.footer-intro-enabled .footer-intro {
    /* Must be taller than 100vh or there's zero actual scroll range for
       the progress calculation (getProgress in index.js divides by
       rect.height - innerHeight, which would be exactly 0) — shorter than
       this used to be (180vh), but still enough room to scrub through. */
    height: 140vh;
}

html.footer-intro-enabled .footer-intro__sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    /* Mobile vh-vs-visible-viewport mismatch, same as the coin sections'
       sticky boxes (see home-coins.css) — keeps this pinned box matching
       the real screen instead of the taller address-bar-collapsed one. */
    height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    /* #footer-intro-logo starts scaled up (index.js drives its transform
       off scroll progress) well past this box's own width before shrinking
       down to its normal size — real, wider-than-viewport content during
       that phase, which inflated the page's scrollable width on mobile
       browsers and widened their layout viewport to fit it (the whole page
       rendering "zoomed in", most of it off-screen). Safe to clip
       horizontally here: this element only ever overshoots sideways, never
       taller than the 100dvh box it's centered in, so nothing vertical
       gets cut off. */
    overflow-x: hidden;
}

html.footer-intro-enabled #footer-intro-brand {
    pointer-events: auto;
}

/* .site-footer__name/__tagline and the MFB Consulting logo image are
   styled white for the footer's dark green background — #footer-intro-brand
   now sits on the page's light animated gradient instead (see the comment
   on .footer-intro above for why), where white is nearly unreadable.
   brightness(0) on the logo turns its white pixels solid black the same
   way .site-footer__social-link img already inverts icons the other
   direction for the dark footer, just mirrored. Sizes are bumped up from
   the standalone footer's — this is meant to read as a standalone "reveal"
   moment, not the compact footer credit line it's styled for by default. */
html.footer-intro-enabled #footer-intro-brand .site-footer__name {
    color: var(--mfb-brand);
    font-size: 2rem;
}

html.footer-intro-enabled #footer-intro-brand .site-footer__tagline {
    color: var(--mfb-brand);
    font-size: 1.15rem;
}

html.footer-intro-enabled #footer-intro-brand .site-footer__consulting-logo {
    filter: brightness(0);
    max-height: 4rem;
}

html.footer-intro-enabled #footer-intro-brand .site-footer__logo-slot--consulting {
    height: 4rem;
}

html.footer-intro-enabled #footer-intro-consulting-logo,
html.footer-intro-enabled #footer-intro-brand .site-footer__brand-text {
    opacity: 0;
}

html.footer-intro-enabled #footer-intro-logo {
    flex: 0 0 64px;
    width: 64px;
    height: 64px;
}

html.footer-intro-enabled #footer-intro-logo .site-footer__logo {
    max-width: 64px;
    max-height: 64px;
}

/* At its settled (fully scrolled-through) state, #footer-intro-brand is a
   single nowrap flex row: the sprout logo, the consulting logo, and the
   "Microfinance at Berkeley" wordmark at the enlarged 2rem size above —
   sized for a desktop-width row. On a narrow phone that row's natural
   (unwrapped) width ran past the screen edge with nothing to shrink it
   (flex items don't wrap or shrink below their content's intrinsic width
   by default), so the tail end of the heading was simply cut off past the
   viewport edge. Letting the row wrap and shrinking the two text sizes
   keeps everything on-screen and readable instead. */
@media only screen and (max-width: 640px) {
    html.footer-intro-enabled #footer-intro-brand {
        flex-wrap: wrap;
        justify-content: center;
        max-width: calc(100vw - 3rem);
    }

    html.footer-intro-enabled #footer-intro-brand .site-footer__brand-text {
        min-width: 0;
    }

    html.footer-intro-enabled #footer-intro-brand .site-footer__name {
        font-size: clamp(1.25rem, 6vw, 2rem);
    }

    html.footer-intro-enabled #footer-intro-brand .site-footer__tagline {
        font-size: 0.9rem;
    }
}

.site-footer__logo-link {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    line-height: 0;
    transition: opacity 0.2s ease;
}

.site-footer__logo-link:hover {
    opacity: 0.85;
}

.site-footer__logo-link:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
    border-radius: 4px;
}

.site-footer__logo {
    width: 100%;
    height: 100%;
    max-width: 44px;
    max-height: 44px;
    object-fit: contain;
    object-position: center;
    display: block;
}

.site-footer__name {
    color: #fff;
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 1.05rem;
    margin: 0 0 0.2rem;
    line-height: 1.25;
}

.site-footer__tagline {
    color: #fff;
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 0.8rem;
    line-height: 1.45;
    margin: 0;
    max-width: 22rem;
}

.site-footer__logos {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.75rem;
    height: 48px;
    flex-shrink: 0;
}

.site-footer__logo-slot {
    display: grid;
    place-items: center;
    height: 44px;
    flex-shrink: 0;
}

.site-footer__logo-slot--consulting {
    width: auto;
    height: 48px;
    max-width: 8rem;
}

.site-footer__consulting-logo {
    display: block;
    max-height: 48px;
    width: auto;
    max-width: 8rem;
    margin: 0;
    object-fit: contain;
    object-position: center center;
}

.site-footer__social {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.site-footer__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.08);
    transition: background-color 0.2s ease;
}

.site-footer__social-link img {
    width: 18px;
    height: 18px;
    display: block;
    filter: brightness(0) invert(1);
}

.site-footer__social-link:hover {
    background-color: rgba(255, 255, 255, 0.18);
}

.site-footer__social-link:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

.site-footer__legal {
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.site-footer__legal-text {
    color: #fff;
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 0.7rem;
    line-height: 1.55;
    margin: 0 0 0.65rem;
}

.site-footer__copyright {
    color: #fff;
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 0.68rem;
    margin: 0;
}

@media only screen and (min-width: 640px) {
    .site-footer__main {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        gap: 2rem;
    }

    .site-footer__logos {
        height: 52px;
    }

    .site-footer__logo-link {
        flex: 0 0 48px;
        width: 48px;
        height: 48px;
    }

    .site-footer__logo {
        max-width: 48px;
        max-height: 48px;
    }

    .site-footer__logo-slot--consulting {
        height: 52px;
    }

    .site-footer__consulting-logo {
        max-height: 52px;
        max-width: 9rem;
    }

    /* Home page only — its brand/logo row moved out into #footer-intro
       (see above), so .site-footer__main here holds just the social icons.
       Scoped to this modifier rather than the shared .site-footer__main
       rule, which other pages still use with brand+social both present. */
    .site-footer__main--social-only {
        justify-content: flex-end;
    }

    .site-footer__social {
        flex-shrink: 0;
        justify-content: flex-end;
    }
}

/* -----------------------------------------
   Page 1 - Home Page Styles
   ----------------------------------------- */
.home-page {
    --mfb-brand: #1a3a2a;
    --mfb-brand-hover: #234d35;
    --mfb-brand-dark: #0f2218;
    background-color: #f5f2e9;
    /* Soft color blobs (not a hard linear band) plus a fine grain layer on
       top for texture, in the style of a modern "mesh gradient" — the grain
       is a tiled feTurbulence SVG blended with soft-light so it reads as
       texture, not visible banding. */
    background-image:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.05 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"),
        radial-gradient(38rem 32rem at 12% 18%, rgba(26, 58, 42, 0.16), transparent 65%),
        radial-gradient(34rem 30rem at 88% 12%, rgba(255, 197, 61, 0.28), transparent 62%),
        radial-gradient(40rem 34rem at 82% 88%, rgba(19, 111, 100, 0.16), transparent 65%),
        radial-gradient(34rem 30rem at 10% 88%, rgba(247, 147, 29, 0.18), transparent 60%);
    background-repeat: repeat, no-repeat, no-repeat, no-repeat, no-repeat;
    background-size: 140px 140px, 130% 130%, 130% 130%, 130% 130%, 130% 130%;
    background-attachment: fixed;
    background-blend-mode: soft-light, normal, normal, normal, normal;
    animation: mfb-gradient-flow 32s ease-in-out infinite;
}

@keyframes mfb-gradient-flow {
    0%, 100% {
        background-position: 0 0, 12% 18%, 88% 12%, 82% 88%, 10% 88%;
    }
    50% {
        background-position: 0 0, 22% 30%, 76% 24%, 70% 76%, 22% 76%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-page {
        animation: none;
    }
}

.home-page nav ul a:hover {
    color: #b8d4c4;
}

/* --- Section 1 (Hero) --- */
.home-page .home-s1 {
    display: grid;
    grid-template-rows: auto 1fr;
    align-items: stretch;
    min-height: 100vh;
    min-height: 100dvh;
    height: auto;
    width: 100vw;
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.home-page .home-s1::before,
.home-page .home-s1::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.home-page .home-s1::before {
    z-index: 0;
    background: url('../images/home/sp26groupphoto.jpg') center / cover no-repeat;
    transform: scale(1.08);
    will-change: transform;
    /* Fades the photo out toward the bottom edge so the page's own animated
       background (painted behind this section, see .home-page) shows
       through and carries on seamlessly into the next section — the photo
       dissolves into the page rather than cutting off hard. */
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 78%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 78%, transparent 100%);
}

.home-page .home-s1::after {
    z-index: 1;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.45) 0%,
        rgba(0, 0, 0, 0.2) 12%,
        rgba(0, 0, 0, 0.5) 35%,
        rgba(0, 0, 0, 0.5) 65%,
        rgba(0, 0, 0, 0.25) 100%
    );
    opacity: 0;
}

.home-page .home-s1 #navbar {
    position: relative;
    z-index: 20;
}

.home-page .home-s1-content {
    position: relative;
    z-index: 2;
}

.home-page .home-s1 #navbar {
    grid-row: 1;
    width: 100%;
}

.home-page .home-s1-content {
    grid-row: 2;
    align-self: stretch;
    justify-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0 5vw;
    box-sizing: border-box;
    gap: 1.25rem;
    text-align: center;
}

@media (prefers-reduced-motion: no-preference) {
    .home-page .home-s1::before {
        animation: home-s1-bg-zoom 2.8s cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    .home-page .home-s1::after {
        animation: home-s1-overlay-in 1.75s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both;
    }

    .home-page .home-s1 #navbar {
        opacity: 0;
        animation: home-s1-nav-in 1.25s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both;
    }

    .home-page .home-s1-title {
        opacity: 0;
        animation: home-s1-reveal-up 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.55s both;
    }

    .home-page .home-s1-tagline {
        opacity: 0;
        animation: home-s1-reveal-up 1.35s cubic-bezier(0.16, 1, 0.3, 1) 0.75s both;
    }

    .home-page .home-s1-btn:nth-child(1) {
        opacity: 0;
        animation: home-s1-btn-reveal 1.25s cubic-bezier(0.16, 1, 0.3, 1) 1s both;
    }

    .home-page .home-s1-btn:nth-child(2) {
        opacity: 0;
        animation: home-s1-btn-reveal 1.25s cubic-bezier(0.16, 1, 0.3, 1) 1.15s both;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-page .home-s1::before {
        transform: scale(1);
    }

    .home-page .home-s1::after {
        opacity: 1;
    }
}

@keyframes home-s1-bg-zoom {
    from { transform: scale(1.08); }
    to { transform: scale(1); }
}

@keyframes home-s1-overlay-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes home-s1-nav-in {
    from {
        opacity: 0;
        transform: translateY(-14px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes home-s1-reveal-up {
    from {
        opacity: 0;
        transform: translateY(32px);
        filter: blur(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0);
    }
}

@keyframes home-s1-btn-reveal {
    from {
        opacity: 0;
        filter: blur(8px);
    }
    to {
        opacity: 1;
        filter: blur(0);
    }
}

.home-page .home-s1-title,
.home-page .home-s1-tagline,
.home-page .home-s1-actions {
    width: 100%;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.home-page .home-s1-title h1 {
    width: 100%;
    color: white;
    font-family: 'Poppins', serif;
    font-weight: 700;
    font-size: 6vw;
    text-align: center;
    margin: 0;
    padding: 0;
    line-height: 1.1;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
}

.home-page .home-s1-tagline p {
    width: 100%;
    max-width: 42rem;
    color: white;
    font-family: 'Roboto', serif;
    font-size: 1.65vw;
    font-weight: 500;
    text-align: center;
    margin: 0;
    padding: 0;
    line-height: 1.4;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

.home-page .home-s1-actions {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}

.home-page .home-s1-btn {
    position: relative;
    z-index: 0;
    display: inline-block;
    text-decoration: none;
    font-family: 'Roboto', sans-serif;
    font-weight: 600;
    font-size: 1.15vw;
    border-radius: 50px;
    padding: 0.65vw 2.25vw;
    color: white;
    background: transparent;
    border: 2px solid transparent;
    box-sizing: border-box;
}

.home-page .home-s1-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    z-index: -1;
    box-sizing: border-box;
    transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.home-page .home-s1-btn-primary::before {
    background-color: var(--mfb-brand);
    border: 2px solid var(--mfb-brand);
}

.home-page .home-s1-btn-primary:hover::before {
    background-color: var(--mfb-brand-hover);
    border-color: var(--mfb-brand-hover);
    transform: scale(1.04);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.home-page .home-s1-btn-secondary::before {
    background-color: rgba(0, 0, 0, 0.2);
    border: 2px solid rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.home-page .home-s1-btn-secondary:hover::before {
    background-color: rgba(0, 0, 0, 0.3);
    border-color: rgba(255, 255, 255, 1);
    transform: scale(1.04);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.home-page .home-s1-btn:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .home-page .home-s1-btn-primary:hover::before,
    .home-page .home-s1-btn-secondary:hover::before {
        transform: none;
        box-shadow: none;
    }
}

.home-page .home-s1 .navbar__desktop ul a,
.home-page .home-s1 #hamburger-icon span {
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

@media only screen and (max-width: 768px) {
    .home-page .home-s1 {
        min-height: 100vh;
        min-height: 100dvh;
        height: auto;
    }
}

@media only screen and (max-width: 480px) {
    .home-page .home-s1-actions {
        max-width: 100%;
    }
}

/* --- Shared scroll reveal (home + about + services) --- */
.home-page .home-reveal,
.about-page .home-reveal,
.services-page .home-reveal,
.team-page .home-reveal,
.join-page .home-reveal,
.intern-page .home-reveal,
.login-page .home-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.home-page .home-reveal.is-visible,
.about-page .home-reveal.is-visible,
.services-page .home-reveal.is-visible,
.team-page .home-reveal.is-visible,
.join-page .home-reveal.is-visible,
.intern-page .home-reveal.is-visible,
.login-page .home-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.home-page .home-reveal--delay-1.is-visible,
.about-page .home-reveal--delay-1.is-visible,
.services-page .home-reveal--delay-1.is-visible,
.team-page .home-reveal--delay-1.is-visible,
.join-page .home-reveal--delay-1.is-visible,
.intern-page .home-reveal--delay-1.is-visible,
.login-page .home-reveal--delay-1.is-visible {
    transition-delay: 0.1s;
}

.home-page .home-reveal--delay-2.is-visible,
.about-page .home-reveal--delay-2.is-visible,
.services-page .home-reveal--delay-2.is-visible,
.team-page .home-reveal--delay-2.is-visible,
.join-page .home-reveal--delay-2.is-visible,
.intern-page .home-reveal--delay-2.is-visible,
.login-page .home-reveal--delay-2.is-visible {
    transition-delay: 0.2s;
}

.home-page .home-reveal--delay-3.is-visible,
.about-page .home-reveal--delay-3.is-visible,
.services-page .home-reveal--delay-3.is-visible,
.team-page .home-reveal--delay-3.is-visible,
.join-page .home-reveal--delay-3.is-visible,
.intern-page .home-reveal--delay-3.is-visible,
.login-page .home-reveal--delay-3.is-visible {
    transition-delay: 0.3s;
}

.home-page .home-reveal--delay-4.is-visible,
.about-page .home-reveal--delay-4.is-visible,
.services-page .home-reveal--delay-4.is-visible,
.team-page .home-reveal--delay-4.is-visible {
    transition-delay: 0.4s;
}

/* --- Section 2 (Statistics) --- */
.home-page .home-s2 {
    padding: 4rem 0 2rem;
    background-color: #fafafa;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.home-page .home-s2__inner {
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 5vw;
}

.home-page .home-s2__header {
    margin-bottom: 1.25rem;
}

.home-page .home-s2__heading {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    line-height: 1.15;
    color: var(--mfb-brand);
    margin: 0;
}

.home-page .home-s3__eyebrow {
    font-family: 'Roboto', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--mfb-brand);
    margin: 0 0 1rem;
}

.home-page .home-s3__heading {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    line-height: 1.15;
    color: var(--mfb-brand);
    margin: 0 0 1.25rem;
}

.home-page .home-s2__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem 2rem;
}

.home-page .home-s2-stat {
    margin: 0;
    padding: 0.5rem 0.25rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.5rem;
    background: transparent;
}

.home-page .home-s2-stat__number {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: clamp(2rem, 3.5vw, 2.75rem);
    line-height: 1;
    color: var(--mfb-brand);
    display: inline-flex;
    align-items: baseline;
    gap: 0.1rem;
    letter-spacing: -0.02em;
}

.home-page .home-s2-square-animated-number {
    line-height: 1;
}

.home-page .home-s2-stat__suffix {
    font-size: inherit;
    font-weight: inherit;
}

.home-page .home-s2-stat__label {
    font-family: 'Roboto', sans-serif;
    font-size: 0.8rem;
    font-weight: 400;
    line-height: 1.35;
    color: rgba(0, 0, 0, 0.45);
    margin: 0;
    letter-spacing: 0.01em;
}

@media only screen and (max-width: 768px) {
    .home-page .home-s2__header {
        text-align: center;
        margin-bottom: 1.75rem;
    }

    .home-page .home-s2__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }

    .home-page .home-s2-stat {
        padding: 1.25rem 0.75rem;
        background: #fff;
        border: 1px solid rgba(26, 58, 42, 0.1);
        border-radius: 12px;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
        min-height: 6.5rem;
    }

    .home-page .home-s2-stat__number {
        font-size: clamp(1.85rem, 7vw, 2.35rem);
    }

    .home-page .home-s2-stat__label {
        font-size: 0.875rem;
        line-height: 1.4;
        color: rgba(0, 0, 0, 0.6);
    }
}

@media only screen and (max-width: 480px) {
    .home-page .home-s2__header {
        margin-bottom: 1.35rem;
    }

    /* Was 1 column down here — four cards stacked in a single tall column.
       Kept at 2 (same as the 768px breakpoint) instead: on the coin-fx
       homepage this section's total height is budgeted against the
       viewport (see FIT_HEIGHT_RATIO/computeFitScale in coin-scene.js), so
       a needlessly tall stack forced a much harder shrink to fit than a
       shorter 2-column block needs, reading as "too small" everywhere,
       numbers included — not just cramped vertically. */
    .home-page .home-s2__grid {
        gap: 0.75rem;
    }

    .home-page .home-s2-stat {
        min-height: auto;
        padding: 1.35rem 1rem;
    }
}

/* --- Section 3 (Who We Are) --- */
.home-page .home-s3 {
    padding: 2rem 0 6rem;
    background-color: #fafafa;
}

.home-page .home-s3__inner {
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 5vw;
}

.home-page .home-s3__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3.5rem;
    align-items: center;
}

.home-page .home-s3__image {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 12px;
    object-fit: cover;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.home-page .home-s3__copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.home-page .home-s3__text {
    font-family: 'Roboto', sans-serif;
    font-size: 1.05rem;
    font-weight: 400;
    line-height: 1.65;
    color: rgba(0, 0, 0, 0.72);
    margin: 0 0 1.5rem;
}

.home-page .home-s3__cta {
    position: relative;
    z-index: 0;
    display: inline-block;
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    padding: 0.75rem 1.75rem;
    border-radius: 50px;
    background: transparent;
    border: 2px solid transparent;
    box-sizing: border-box;
}

.home-page .home-s3__cta::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    z-index: -1;
    box-sizing: border-box;
    background-color: var(--mfb-brand);
    border: 2px solid var(--mfb-brand);
    transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.home-page .home-s3__cta:hover::before {
    background-color: var(--mfb-brand-hover);
    border-color: var(--mfb-brand-hover);
    transform: scale(1.04);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.home-page .home-s3__cta:focus-visible {
    outline: 2px solid var(--mfb-brand);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .home-page .home-reveal,
    .about-page .home-reveal,
    .services-page .home-reveal,
    .team-page .home-reveal,
    .join-page .home-reveal,
    .intern-page .home-reveal,
    .login-page .home-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .home-page .home-s3__cta:hover::before {
        transform: none;
        box-shadow: none;
    }
}

/* --- Section 4 (What We Do) --- */
.home-page .home-s4 {
    position: relative;
    width: 100%;
    padding: 5rem 0;
    background: url('../images/home/berkeley.jpg') center / cover no-repeat;
    isolation: isolate;
}

.home-page .home-s4__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(26, 58, 42, 0.88) 0%,
        rgba(15, 34, 24, 0.82) 100%
    );
    z-index: 0;
}

.home-page .home-s4__inner {
    position: relative;
    z-index: 1;
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 5vw;
}

.home-page .home-s4__header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.65rem;
    margin-bottom: 4rem;
    max-width: 36rem;
    width: 100%;
    text-align: left;
    margin-right: auto;
    margin-left: 0;
}

.home-page .home-s4__heading {
    display: block;
    width: 100%;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    line-height: 1.15;
    color: #fff;
    margin: 0;
}

.home-page .home-s4__subheading {
    display: block;
    width: 100%;
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.78);
    margin: 0;
}

.home-page .home-s4__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    align-items: stretch;
}

/* What we do — card scroll reveal */
.home-page .home-s4-card-reveal {
    opacity: 0;
    transform: translateY(30px);
}

.home-page .home-s4-card-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.home-page .home-s4-card {
    display: flex;
    flex-direction: column;
    background: transparent;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
}

.home-page .home-s4-card.home-s4-card-reveal {
    transition: opacity 0.5s ease-out, transform 0.5s ease-out,
        box-shadow 0.4s ease-out;
}

@media (hover: hover) {
    .home-page .home-s4-card.is-visible:hover {
        box-shadow: 0 14px 36px rgba(0, 0, 0, 0.14);
    }
}

.home-page .home-s4-card__media {
    position: relative;
    height: 240px;
    overflow: hidden;
    border-radius: 12px 12px 0 0;
    background-color: #0f2218;
    line-height: 0;
    flex-shrink: 0;
}

.home-page .home-s4-card__media img {
    width: 100%;
    height: 100%;
    min-height: 240px;
    object-fit: cover;
    object-position: center;
    display: block;
    transform: scale(1.08);
    transform-origin: center center;
    backface-visibility: hidden;
    transition: transform 0.4s ease-out;
}

.home-page .home-s4-card__img--professional {
    object-fit: cover;
    object-position: center 38%;
    transform: scale(1.24);
}

@media (hover: hover) {
    .home-page .home-s4-card.is-visible:hover .home-s4-card__media {
        overflow: hidden;
        border-radius: 12px 12px 0 0;
    }

    .home-page .home-s4-card.is-visible:hover .home-s4-card__media img {
        transform: scale(1.12);
    }

    .home-page .home-s4-card.is-visible:hover .home-s4-card__img--professional {
        transform: scale(1.28);
    }
}

.home-page .home-s4-card__body {
    padding: 1.35rem 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    background: #ffffff;
    border-radius: 0 0 12px 12px;
}

.home-page .home-s4-card__title {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--mfb-brand);
    margin: 0 0 0.65rem;
    line-height: 1.25;
}

.home-page .home-s4-card__text {
    font-family: 'Roboto', sans-serif;
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.6;
    color: rgba(0, 0, 0, 0.65);
    margin: 0;
}

@media (prefers-reduced-motion: reduce) {
    .home-page .home-s4-card-reveal,
    .home-page .home-s4-card-reveal.is-visible {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .home-page .home-s4-card__media img,
    .home-page .home-s4-card.is-visible:hover .home-s4-card__media img {
        transform: scale(1.08);
        transition: none;
    }

    .home-page .home-s4-card__img--professional,
    .home-page .home-s4-card.is-visible:hover .home-s4-card__img--professional {
        transform: scale(1.24);
        transition: none;
    }

}

@media only screen and (max-width: 768px) {
    .home-page .home-s3__grid {
        grid-template-columns: 1fr;
        gap: 1.75rem;
    }

    .home-page .home-s3__image {
        border-radius: 10px;
    }

    .home-page .home-s3__text {
        margin-bottom: 1.25rem;
    }

    .home-page .home-s4__header {
        max-width: 100%;
        margin-bottom: 2rem;
    }

    .home-page .home-s4__grid {
        grid-template-columns: 1fr;
        gap: 1.15rem;
        max-width: 100%;
        margin-inline: auto;
    }

    .home-page .home-s4-card__media {
        height: 200px;
        overflow: hidden;
        border-radius: 12px 12px 0 0;
    }

    .home-page .home-s4-card__media img,
    .home-page .home-s4-card__img--professional {
        transform: none;
        width: calc(100% + 4px);
        height: calc(100% + 4px);
        min-height: calc(200px + 4px);
        max-width: none;
        margin: -2px 0 0 -2px;
    }

    .home-page .home-s4-card__body {
        padding: 1.2rem 1.15rem 1.35rem;
    }

    .home-page .home-s5-header {
        margin-bottom: 2rem;
        gap: 1.25rem;
    }

    .home-page .home-s5-marquees {
        gap: 1.5rem;
    }

    .home-page .home-s5-marquee-fade {
        width: 3rem;
    }

    .home-page .home-s5-marquee-track {
        gap: 2.25rem;
    }

    .home-page .home-s5-logo {
        font-size: clamp(1.1rem, 4vw, 1.5rem);
    }
}

@media only screen and (max-width: 480px) {
    .home-page .home-s3__cta {
        max-width: 100%;
    }

    .home-page .home-s4__header {
        margin-bottom: 1.5rem;
    }

    .home-page .home-s4-card__media {
        height: 180px;
        overflow: hidden;
        border-radius: 12px 12px 0 0;
    }

    .home-page .home-s4-card__media img,
    .home-page .home-s4-card__img--professional {
        transform: none;
        width: calc(100% + 4px);
        height: calc(100% + 4px);
        min-height: calc(180px + 4px);
        max-width: none;
        margin: -2px 0 0 -2px;
    }

    .home-page .home-s5-marquee-fade {
        width: 2rem;
    }

    .home-page .home-s5-marquee-track {
        gap: 1.75rem;
    }

    .home-page .home-s5-logo {
        font-size: 1rem;
    }
}

/* --- Section 5 (Where We Work) --- */
.home-page .home-s5 {
    padding: 6rem 0;
    overflow: hidden;
    background-color: #fff;
}

.home-page .home-s5-header {
    max-width: 72rem;
    margin: 0 auto 3.5rem;
    padding: 0 5vw;
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: end;
}

.home-page .home-s5-eyebrow {
    font-family: 'Roboto', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--mfb-brand);
    margin: 0 0 1.5rem;
}

.home-page .home-s5-heading {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: clamp(2rem, 5vw, 3.25rem);
    line-height: 1.15;
    color: var(--mfb-brand);
    margin: 0;
}

.home-page .home-s5-heading em {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 400;
}

.home-page .home-s5-header-aside p {
    font-family: 'Roboto', sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: rgba(0, 0, 0, 0.55);
    margin: 0;
}

.home-page .home-s5-marquees {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    width: 100%;
}

.home-page .home-s5-marquee-reveal {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    width: 100%;
}

.home-page .home-s5-marquee-fade {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 6rem;
    z-index: 2;
    pointer-events: none;
}

.home-page .home-s5-marquee-fade--left {
    left: 0;
    background: linear-gradient(to right, #fff, transparent);
}

.home-page .home-s5-marquee-fade--right {
    right: 0;
    background: linear-gradient(to left, #fff, transparent);
}

.home-page .home-s5-marquee-row {
    overflow: hidden;
    width: 100%;
    padding: 0.25rem 0;
}

.home-page .home-s5-marquee-row:hover .home-s5-marquee-track {
    animation-play-state: paused;
}

.home-page .home-s5-marquee-track {
    display: flex;
    align-items: center;
    width: max-content;
    gap: 3.5rem;
    animation: home-s5-marquee var(--marquee-duration, 30s) linear infinite;
    animation-direction: var(--marquee-direction, normal);
}

@keyframes home-s5-marquee {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}

.home-page .home-s5-logo {
    flex-shrink: 0;
    white-space: nowrap;
    font-size: clamp(1.35rem, 2.5vw, 1.875rem);
    color: rgba(0, 0, 0, 0.45);
    filter: grayscale(100%);
    opacity: 0.7;
    transition: color 0.5s ease, opacity 0.5s ease, filter 0.5s ease;
}

.home-page .home-s5-logo:hover {
    color: var(--mfb-brand);
    opacity: 1;
    filter: grayscale(0);
}

/* Logo typography variants (from Alumni marquee) */
.home-page .home-s5-logo--sans-medium {
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    letter-spacing: -0.02em;
}

.home-page .home-s5-logo--sans-semibold {
    font-family: 'Roboto', sans-serif;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.home-page .home-s5-logo--sans-semibold-caps {
    font-family: 'Roboto', sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.14em;
}

.home-page .home-s5-logo--sans-medium-wide {
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    letter-spacing: 0.04em;
}

.home-page .home-s5-logo--sans-bold {
    font-family: 'Roboto', sans-serif;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.home-page .home-s5-logo--sans-bold-spaced {
    font-family: 'Roboto', sans-serif;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.home-page .home-s5-logo--sans-bold-spaced-sm {
    font-family: 'Roboto', sans-serif;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.home-page .home-s5-logo--sans-bold-caps-wide {
    font-family: 'Roboto', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.22em;
}

.home-page .home-s5-logo--sans-bold-lowercase {
    font-family: 'Roboto', sans-serif;
    font-weight: 700;
    text-transform: lowercase;
    letter-spacing: -0.02em;
}

.home-page .home-s5-logo--sans-light {
    font-family: 'Roboto', sans-serif;
    font-weight: 300;
    letter-spacing: -0.02em;
}

.home-page .home-s5-logo--sans-light-italic {
    font-family: 'Roboto', sans-serif;
    font-weight: 300;
    font-style: italic;
    letter-spacing: -0.02em;
}

.home-page .home-s5-logo--display {
    font-family: 'Playfair Display', serif;
    font-weight: 400;
    letter-spacing: -0.02em;
}

.home-page .home-s5-logo--display-italic {
    font-family: 'Playfair Display', serif;
    font-weight: 400;
    font-style: italic;
    letter-spacing: -0.02em;
}

.home-page .home-s5-logo--display-italic-medium {
    font-family: 'Playfair Display', serif;
    font-weight: 500;
    font-style: italic;
    letter-spacing: -0.02em;
}

@media only screen and (min-width: 1024px) {
    .home-page .home-s5-header {
        grid-template-columns: 7fr 4fr;
    }

    .home-page .home-s5-header-aside {
        justify-self: end;
        max-width: 22rem;
    }

    .home-page .home-s5-marquee-fade {
        width: 10rem;
    }

    .home-page .home-s5-marquee-track {
        gap: 5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-page .home-s5-marquee-track {
        animation: none;
    }
}

/* -----------------------------------------
   Shared inner-page hero (photo + overlay)
   ----------------------------------------- */
.about-page .page-hero,
.services-page .page-hero,
.team-page .page-hero,
.join-page .page-hero,
.intern-page .page-hero,
.login-page .page-hero,
.admin-page .page-hero {
    content-visibility: auto;
    contain-intrinsic-size: 60vh;
    display: grid;
    grid-template-rows: 1fr;
    grid-template-columns: 1fr;
    align-items: stretch;
    min-height: 60vh;
    min-height: 60dvh;
    height: auto;
    width: 100%;
    position: relative;
    overflow: visible;
}

.about-page .page-hero::before,
.services-page .page-hero::before,
.team-page .page-hero::before,
.join-page .page-hero::before,
.intern-page .page-hero::before,
.login-page .page-hero::before,
.admin-page .page-hero::before,
.about-page .page-hero::after,
.services-page .page-hero::after,
.team-page .page-hero::after,
.join-page .page-hero::after,
.intern-page .page-hero::after,
.login-page .page-hero::after,
.admin-page .page-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}

.about-page .page-hero::before,
.services-page .page-hero::before,
.team-page .page-hero::before,
.join-page .page-hero::before,
.intern-page .page-hero::before,
.login-page .page-hero::before,
.admin-page .page-hero::before {
    z-index: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.about-page .page-hero::after,
.services-page .page-hero::after,
.team-page .page-hero::after,
.join-page .page-hero::after,
.intern-page .page-hero::after,
.login-page .page-hero::after,
.admin-page .page-hero::after {
    z-index: 1;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.45) 0%,
        rgba(0, 0, 0, 0.2) 12%,
        rgba(0, 0, 0, 0.5) 35%,
        rgba(0, 0, 0, 0.5) 65%,
        rgba(0, 0, 0, 0.25) 100%
    );
}

.about-page .page-hero #navbar,
.services-page .page-hero #navbar,
.team-page .page-hero #navbar,
.join-page .page-hero #navbar,
.intern-page .page-hero #navbar,
.login-page .page-hero #navbar,
.admin-page .page-hero #navbar {
    grid-row: 1;
    grid-column: 1;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 20;
    pointer-events: none;
}

.about-page .page-hero #navbar .navbar,
.services-page .page-hero #navbar .navbar,
.team-page .page-hero #navbar .navbar,
.join-page .page-hero #navbar .navbar,
.intern-page .page-hero #navbar .navbar,
.login-page .page-hero #navbar .navbar,
.admin-page .page-hero #navbar .navbar {
    pointer-events: auto;
}

.about-page .page-hero .title-section,
.services-page .page-hero .title-section,
.team-page .page-hero .title-section,
.join-page .page-hero .title-section,
.intern-page .page-hero .title-section,
.login-page .page-hero .title-section,
.admin-page .page-hero .title-section {
    grid-row: 1 / -1;
    grid-column: 1;
    position: relative;
    z-index: 2;
    display: flex;
    align-items: stretch;
    min-height: 100%;
    pointer-events: none;
}

.about-page .page-hero .title-section .title h1,
.about-page .page-hero .title-section .title a,
.about-page .page-hero .title-section .title button,
.services-page .page-hero .title-section .title h1,
.services-page .page-hero .title-section .title a,
.services-page .page-hero .title-section .title button,
.team-page .page-hero .title-section .title h1,
.team-page .page-hero .title-section .title a,
.team-page .page-hero .title-section .title button,
.join-page .page-hero .title-section .title h1,
.join-page .page-hero .title-section .title a,
.join-page .page-hero .title-section .title button,
.intern-page .page-hero .title-section .title h1,
.intern-page .page-hero .title-section .title a,
.intern-page .page-hero .title-section .title button,
.login-page .page-hero .title-section .title h1,
.login-page .page-hero .title-section .title a,
.login-page .page-hero .title-section .title button {
    pointer-events: auto;
}

.about-page .page-hero .navbar__desktop ul a,
.about-page .page-hero #hamburger-icon span,
.services-page .page-hero .navbar__desktop ul a,
.services-page .page-hero #hamburger-icon span,
.team-page .page-hero .navbar__desktop ul a,
.team-page .page-hero #hamburger-icon span,
.join-page .page-hero .navbar__desktop ul a,
.join-page .page-hero #hamburger-icon span,
.intern-page .page-hero .navbar__desktop ul a,
.intern-page .page-hero #hamburger-icon span,
.login-page .page-hero .navbar__desktop ul a,
.login-page .page-hero #hamburger-icon span,
.admin-page .page-hero .navbar__desktop ul a,
.admin-page .page-hero #hamburger-icon span {
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

.about-page .title,
.services-page .title,
.team-page .title,
.join-page .title,
.intern-page .title,
.login-page .title {
    align-self: stretch;
    justify-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    width: 100%;
    margin: 0;
    padding: 0 5vw;
    box-sizing: border-box;
    text-align: center;
}

.about-page .page-hero::before {
    background-image: url('../images/about/about-background.webp');
}

.services-page .page-hero::before {
    background-image: url('../images/services/services-background.jpg');
    background-position: center 72%;
}

.team-page .page-hero::before {
    background-image: url('../images/team/backround-image-update.JPG');
}

.team-page .page-hero::after {
    background: rgba(0, 0, 0, 0.7) !important;
}

.join-page .page-hero::before {
    background-image: url('../images/join/join-background.jpg');
}

.intern-page .page-hero::before {
    background-image: url('../images/intern/intern-backround.JPG');
    background-position: center 35%;
}

.login-page .page-hero::before {
    background-image: url('../images/login/login-backround.JPG');
    background-position: center 32%;
}

.intern-page .page-hero::after {
    background: rgba(0, 0, 0, 0.7) !important;
}

.login-page .page-hero::after {
    background: rgba(0, 0, 0, 0.7) !important;
}

/* -----------------------------------------
   Shared inner-page typography
   ----------------------------------------- */
.about-page .title h1,
.about-page .title p,
.services-page .title h1,
.team-page .title h1,
.join-page .title h1,
.intern-page .title h1,
.login-page .title h1 {
    width: 100%;
    color: white;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: clamp(2rem, 6vw, 4.5rem);
    text-align: center;
    margin: 0;
    padding: 0;
    line-height: 1.1;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
}

.about-page .about-eyebrow,
.services-page .services-eyebrow,
.team-page .team-eyebrow,
.login-page .login-card__eyebrow {
    font-family: 'Roboto', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--mfb-brand);
    margin: 0 0 1rem;
}

.about-page .about-heading,
.services-page .services-heading,
.team-page .team-heading,
.join-page .join-heading,
.intern-page .intern-heading,
.login-page .login-heading {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    line-height: 1.15;
    color: var(--mfb-brand);
    margin: 0 0 1.5rem;
}

.about-page .about-mission__body,
.about-page .about-history__body,
.about-page .about-values__card-text,
.services-page .services-offer__body,
.services-page .services-clients__lead,
.services-page .services-focus__list,
.team-page .team-section__lead,
.join-page .join-intro__text,
.join-page .join-event__text,
.intern-page .intern-intro__text,
.intern-page .intern-status__text,
.login-page .login-intro__text {
    font-family: 'Roboto', sans-serif;
    font-size: 1.05rem;
    line-height: 1.65;
    color: rgba(0, 0, 0, 0.72);
}

.join-page .join-event__title,
.intern-page .intern-status__title,
.login-page .login-card__title,
.about-page .about-values__card-title,
.services-page .services-focus__card-title {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 1.35rem;
    line-height: 1.25;
    color: var(--mfb-brand);
}

.join-page .join-event__date {
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    font-style: italic;
    line-height: 1.4;
    color: rgba(0, 0, 0, 0.55);
}

.login-page .login-card__subtitle {
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    line-height: 1.5;
    color: rgba(0, 0, 0, 0.55);
}

.intern-page .intern-cta-band__lead,
.join-page .join-cta-band__lead {
    font-family: 'Roboto', sans-serif;
    font-size: 0.875rem;
    line-height: 1.5;
    color: rgba(0, 0, 0, 0.5);
}

/* -----------------------------------------
   Page 2 - About Page Styles
   ----------------------------------------- */
.about-page {
    --mfb-brand: #1a3a2a;
    --mfb-brand-hover: #234d35;
}

.about-page nav ul a:hover {
    color: #b8d4c4;
}

.about-page .about__inner {
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 5vw;
}

/* Mission */
.about-page .about-mission {
    padding: 5rem 0 4rem;
    background-color: #fafafa;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.about-page .about-mission__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3.5rem;
    align-items: center;
}

.about-page .about-mission__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
}

.about-page .about-mission__heading {
    margin: 0 0 1.75rem;
    line-height: 1.2;
}

.about-page .about-mission__body {
    margin: 0;
}

.about-page .about-mission__image {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 12px;
    object-fit: cover;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* History */
.about-page .about-history {
    padding: 5rem 0;
    background-color: #fff;
}

.about-page .about-history__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3.5rem;
    align-items: center;
}

.about-page .about-history__image {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 12px;
    object-fit: cover;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.about-page .about-history__copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
}

.about-page .about-history__heading {
    margin: 0 0 1.75rem;
    line-height: 1.2;
}

.about-page .about-history__lead {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 1.2rem;
    line-height: 1.4;
    color: var(--mfb-brand);
    margin: 0 0 1rem;
}

.about-page .about-history__body {
    margin: 0;
}

/* Core values */
.about-page .about-values {
    padding: 5rem 0;
    background-color: #fafafa;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.about-page .about-values__intro {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    max-width: 36rem;
    margin-bottom: 2.5rem;
}

.about-page .about-values__heading {
    margin: 0;
    line-height: 1.2;
}

.about-page .about-values__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    align-items: stretch;
}

.about-page .about-values__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    background: #fff;
    border: none;
    border-top: 3px solid #1a3a2a;
    border-radius: 0 0 12px 12px;
    padding: 1.75rem 1.5rem;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.09);
    transition: box-shadow 0.35s ease-out, transform 0.35s ease-out,
        border-top-color 0.35s ease-out;
}

.about-page .about-values__card.home-reveal.is-visible {
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.35s ease-out,
        box-shadow 0.35s ease-out,
        border-top-color 0.35s ease-out;
}

@media (hover: hover) {
    .about-page .about-values__card.is-visible:hover {
        transform: translateY(-6px);
        box-shadow: 0 14px 36px rgba(26, 58, 42, 0.14);
        border-top-color: var(--mfb-brand-hover);
    }

    .about-page .about-values__card.is-visible:hover .about-values__card-title {
        color: var(--mfb-brand-hover);
    }
}

.about-page .about-values__card-title {
    margin: 0 0 0.75rem;
    transition: color 0.35s ease-out;
}

.about-page .about-values__card-text {
    margin: 0;
}

.about-page .about-values__cta {
    margin-top: 2.5rem;
    text-align: left;
}

.about-page .about-values__cta-lead {
    font-family: 'Roboto', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.5;
    color: rgba(0, 0, 0, 0.5);
    margin: 0 0 0.75rem;
}

.about-page .about-cta {
    position: relative;
    z-index: 0;
    display: inline-block;
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    padding: 0.75rem 1.75rem;
    border-radius: 50px;
    background: transparent;
    border: 2px solid transparent;
    box-sizing: border-box;
}

.about-page .about-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    z-index: -1;
    box-sizing: border-box;
    background-color: var(--mfb-brand);
    border: 2px solid var(--mfb-brand);
    transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.about-page .about-cta:hover::before {
    background-color: var(--mfb-brand-hover);
    border-color: var(--mfb-brand-hover);
    transform: scale(1.04);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.about-page .about-cta:focus-visible {
    outline: 2px solid var(--mfb-brand);
    outline-offset: 3px;
}

@media only screen and (max-width: 768px) {
    .about-page .about-mission__grid,
    .about-page .about-history__grid {
        grid-template-columns: 1fr;
        gap: 1.75rem;
    }

    .about-page .about-mission__image,
    .about-page .about-history__image {
        border-radius: 10px;
    }

    .about-page .about-values__grid {
        grid-template-columns: 1fr;
        gap: 1.15rem;
    }

    .about-page .about-values__card {
        padding: 1.5rem 1.25rem;
    }

    .about-page .about-values__cta {
        margin-top: 2rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
}

@media only screen and (max-width: 480px) {
    .about-page .about-mission__grid,
    .about-page .about-history__grid {
        gap: 1.35rem;
    }

    .about-page .about-values__card {
        padding: 1.35rem 1.15rem;
    }

    .about-page .about-cta {
        max-width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .about-page .about-values__card,
    .about-page .about-values__card.is-visible:hover {
        transform: none;
        transition: none;
    }

    .about-page .about-values__card-title,
    .about-page .about-values__card.is-visible:hover .about-values__card-title {
        transition: none;
    }

    .about-page .about-cta:hover::before {
        transform: none;
        box-shadow: none;
    }
}

/* -----------------------------------------
   Page 3 - Services Page Styles
   ----------------------------------------- */
.services-page {
    --mfb-brand: #1a3a2a;
    --mfb-brand-hover: #234d35;
}

.services-page nav ul a:hover {
    color: #b8d4c4;
}

.services-page .services-hero__tagline {
    max-width: 36rem;
    color: rgba(255, 255, 255, 0.92);
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: clamp(0.95rem, 2vw, 1.15rem);
    line-height: 1.5;
    margin: 0;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}

.services-page .services__inner {
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 5vw;
}

.services-page .services-inline-link {
    color: var(--mfb-brand);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
    transition: color 0.2s ease;
}

.services-page .services-inline-link:hover {
    color: var(--mfb-brand-hover);
}

/* Consulting & microloans */
.services-page .services-offer {
    padding: 4rem 0;
    background-color: #fff;
}

.services-page .services-offer--consulting {
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.services-page .services-offer--microloans {
    background-color: #fafafa;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.services-page .services-offer__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3.5rem;
    align-items: center;
}

.services-page .services-offer__image {
    width: 100%;
    height: auto;
    aspect-ratio: 609 / 406;
    display: block;
    border-radius: 12px;
    object-fit: cover;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.services-page .services-offer__copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
}

.services-page .services-offer__heading {
    margin: 0 0 1.75rem;
    line-height: 1.2;
}

.services-page .services-offer__body {
    margin: 0 0 1rem;
}

.services-page .services-offer__body:last-child {
    margin-bottom: 0;
}

/* Areas of focus */
.services-page .services-focus {
    padding: 5rem 0;
    background-color: #fafafa;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.services-page .services-focus__intro {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    max-width: 36rem;
    margin-bottom: 2.5rem;
}

.services-page .services-focus__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    align-items: stretch;
}

.services-page .services-focus__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    background: #fff;
    border: none;
    border-top: 3px solid #1a3a2a;
    border-radius: 0 0 12px 12px;
    padding: 1.75rem 1.5rem;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.09);
    transition: box-shadow 0.35s ease-out, transform 0.35s ease-out,
        border-top-color 0.35s ease-out;
}

.services-page .services-focus__card.home-reveal.is-visible {
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.35s ease-out,
        box-shadow 0.35s ease-out,
        border-top-color 0.35s ease-out;
}

@media (hover: hover) {
    .services-page .services-focus__card.is-visible:hover {
        transform: translateY(-6px);
        box-shadow: 0 14px 36px rgba(26, 58, 42, 0.14);
        border-top-color: var(--mfb-brand-hover);
    }

    .services-page .services-focus__card.is-visible:hover .services-focus__card-title {
        color: var(--mfb-brand-hover);
    }
}

.services-page .services-focus__icon {
    width: 48px;
    height: 48px;
    object-fit: contain;
    margin-bottom: 1rem;
}

.services-page .services-focus__card-title {
    margin: 0 0 0.75rem;
    transition: color 0.35s ease-out;
}

.services-page .services-focus__list {
    margin: 0;
    padding-left: 1.1rem;
}

.services-page .services-focus__list li {
    margin-bottom: 0.35rem;
}

.services-page .services-focus__list li:last-child {
    margin-bottom: 0;
}

/* Past clients */
.services-page .services-clients {
    padding: 5rem 0;
    background-color: #fff;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.services-page .services-clients__intro {
    margin-bottom: 2rem;
}

.services-page .services-clients__lead {
    margin: 1rem 0 0;
    max-width: 36rem;
}

.services-page .services-clients__media {
    display: flex;
    justify-content: center;
}

.services-page .services-clients__image {
    width: 100%;
    max-width: 68rem;
    height: auto;
    display: block;
}

/* Business inquiries */
.services-page .services-inquiries {
    padding: 5rem 0;
    background-color: #fafafa;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.services-page .services-inquiries__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 36rem;
    margin: 0 auto;
}

.services-page .services-inquiries__lead {
    font-family: 'Roboto', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.5;
    color: rgba(0, 0, 0, 0.5);
    margin: 1rem 0 1rem;
}

.services-page .services-cta {
    position: relative;
    z-index: 0;
    display: inline-block;
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    padding: 0.75rem 1.75rem;
    border-radius: 50px;
    background: transparent;
    border: 2px solid transparent;
    box-sizing: border-box;
}

.services-page .services-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    z-index: -1;
    box-sizing: border-box;
    background-color: var(--mfb-brand);
    border: 2px solid var(--mfb-brand);
    transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.services-page .services-cta:hover::before {
    background-color: var(--mfb-brand-hover);
    border-color: var(--mfb-brand-hover);
    transform: scale(1.04);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.services-page .services-cta:focus-visible {
    outline: 2px solid var(--mfb-brand);
    outline-offset: 3px;
}

@media only screen and (max-width: 768px) {
    .services-page .services-offer__grid,
    .services-page .services-offer__grid--reverse {
        grid-template-columns: 1fr;
        gap: 1.75rem;
    }

    .services-page .services-offer__grid--reverse .services-offer__media {
        order: 1;
    }

    .services-page .services-offer__grid--reverse .services-offer__copy {
        order: 2;
    }

    .services-page .services-offer__image {
        border-radius: 10px;
    }

    .services-page .services-focus__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.15rem;
    }

    .services-page .services-focus__card {
        padding: 1.5rem 1.25rem;
    }

    .services-page .services-clients__image {
        max-width: 100%;
    }

    .services-page .services-inquiries__content {
        max-width: 100%;
        gap: 0.25rem;
    }
}

@media only screen and (max-width: 560px) {
    .services-page .services-focus__grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
}

@media only screen and (max-width: 480px) {
    .services-page .services-inline-link {
        word-break: break-word;
    }

    .services-page .services-offer__grid,
    .services-page .services-offer__grid--reverse {
        gap: 1.35rem;
    }

    .services-page .services-focus__card {
        padding: 1.35rem 1.15rem;
    }

    .services-page .services-focus__icon {
        width: 40px;
        height: 40px;
        margin-bottom: 0.85rem;
    }

    .services-page .services-cta {
        max-width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .services-page .services-focus__card,
    .services-page .services-focus__card.is-visible:hover {
        transform: none;
        transition: none;
    }

    .services-page .services-focus__card-title,
    .services-page .services-focus__card.is-visible:hover .services-focus__card-title {
        transition: none;
    }

    .services-page .services-cta:hover::before {
        transform: none;
        box-shadow: none;
    }
}

/* -----------------------------------------
   Page 4 - Team Page Styles
   ----------------------------------------- */


.team-page {
    --mfb-brand: #1a3a2a;
    --mfb-brand-hover: #234d35;
    --team-card-width: 260px;
    --team-card-height: 347px;
}

.team-page nav ul a:hover {
    color: #b8d4c4;
}

.team-page .team-hero__tagline {
    max-width: 36rem;
    color: rgba(255, 255, 255, 0.92);
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: clamp(0.95rem, 2vw, 1.15rem);
    line-height: 1.5;
    margin: 0;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}

.team-page .team__inner {
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 5vw;
}

.team-page .team-section__header {
    margin-bottom: 2.5rem;
    text-align: center;
}

.team-page .team-section__lead {
    margin: 1rem 0 0;
    max-width: 36rem;
}

.team-page .team-main {
    display: block;
}

.team-page .team-status {
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    color: rgba(0, 0, 0, 0.55);
    text-align: center;
    margin: 0;
    padding: 1.5rem 5vw 0;
}

.team-page .team-status--error {
    color: #8b2e2e;
}

.team-page .team-status[hidden] {
    display: none;
}

.team-page .team-section {
    padding: 5rem 0;
}

.team-page .team-section--exec {
    background-color: #fff;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.team-page .team-section--pm {
    background-color: #fafafa;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.team-page .team-section--board {
    background-color: #fff;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.team-page .team-section--chair {
    background-color: #fff;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.team-page .team-section--advisor {
    background-color: #fafafa;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.team-page .team-section--member {
    background-color: #fff;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.team-page .team-empty {
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    color: rgba(0, 0, 0, 0.5);
    text-align: center;
    margin: 0;
}

.team-page .team-empty[hidden] {
    display: none;
}

/* Grids */
.team-page .team-grid {
    display: grid;
    gap: 2rem 1.5rem;
    justify-content: center;
    justify-items: center;
}

.team-page .team-grid--leadership {
    grid-template-columns: repeat(auto-fit, minmax(var(--team-card-width), var(--team-card-width)));
    justify-content: center;
}

/* Cards */
.team-page .team-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
    max-width: var(--team-card-width);
}

.team-page .team-card__name {
    font-family: 'Poppins', sans-serif;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--mfb-brand);
    margin: 0;
    line-height: 1.3;
}

.team-page .team-card__title {
    font-family: 'Roboto', sans-serif;
    font-size: 0.9rem;
    color: rgba(0, 0, 0, 0.6);
    margin: 0.35rem 0 0;
}

/* Portrait images */
.team-page .team-portrait-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    background-color: #e8e8e8;
}

.team-page .team-portrait-img--missing {
    object-fit: contain;
    opacity: 0.45;
}

/* Leadership photos (exec + board) — color fade overlay */
.team-page .team-leader-photo {
    position: relative;
    width: 100%;
    max-width: var(--team-card-width);
    height: var(--team-card-height);
    margin-bottom: 1rem;
    cursor: pointer;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.09);
    background-color: #e8e8e8;
    transform: translateZ(0);
    backface-visibility: hidden;
}

.team-page .team-leader-photo:focus-visible {
    outline: 2px solid var(--mfb-brand);
    outline-offset: 3px;
}

.team-page .team-leader-photo .team-portrait-img {
    transition: opacity 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: opacity;
    transform: translateZ(0);
    backface-visibility: hidden;
}

.team-page .team-leader-photo__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    box-sizing: border-box;
    background-color: rgba(26, 58, 42, 0.88);
    opacity: 0;
    transition: opacity 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: opacity;
    transform: translateZ(0);
    backface-visibility: hidden;
    pointer-events: none;
}

.team-page .team-leader-photo.is-active .team-leader-photo__overlay {
    opacity: 1;
    pointer-events: auto;
}

.team-page .team-leader-photo.is-active .team-portrait-img {
    opacity: 0.2;
}

@media (hover: hover) {
    .team-page .team-leader-photo:hover .team-leader-photo__overlay {
        opacity: 1;
        pointer-events: auto;
    }

    .team-page .team-leader-photo:hover .team-portrait-img {
        opacity: 0.2;
    }
}

.team-page .team-leader-photo__detail {
    font-family: 'Roboto', sans-serif;
    font-size: 0.875rem;
    line-height: 1.5;
    color: #fff;
    margin: 0 0 0.65rem;
    text-align: center;
}

.team-page .team-leader-photo__socials {
    display: flex;
    gap: 0.65rem;
    margin-top: 0.5rem;
    pointer-events: auto;
}

.team-page .team-leader-photo__icon {
    width: 24px;
    height: 24px;
    transition: transform 0.2s ease;
}

.team-page .team-leader-photo__socials a:hover .team-leader-photo__icon {
    transform: scale(1.12);
}

@media only screen and (max-width: 768px) {
    .team-page {
        --team-card-width: 220px;
        --team-card-height: 293px;
    }

    .team-page .team-heading {
        margin-bottom: 0;
    }

    .team-page .team-grid {
        gap: 1.5rem 1rem;
    }

    .team-page .team-grid--leadership {
        grid-template-columns: repeat(auto-fit, minmax(200px, 200px));
        justify-content: center;
    }

    .team-page .team-leader-photo {
        max-width: 100%;
    }

    .team-page .team-leader-photo__detail {
        font-size: 0.825rem;
    }

    .team-page .team-card__name {
        font-size: 1rem;
    }
}

@media only screen and (max-width: 560px) {
    .team-page {
        --team-card-width: 240px;
        --team-card-height: 320px;
    }

    .team-page .team-grid--leadership {
        grid-template-columns: 1fr;
        gap: 1.75rem;
    }

    .team-page .team-leader-photo {
        width: 100%;
        max-width: 280px;
        margin-left: auto;
        margin-right: auto;
    }
}

@media only screen and (max-width: 480px) {
    .team-page .team-leader-photo {
        max-width: 100%;
    }

    .team-page .team-leader-photo__overlay {
        padding: 1rem;
    }

    .team-page .team-leader-photo__detail {
        font-size: 0.8rem;
        line-height: 1.45;
    }

    .team-page .team-empty {
        padding: 0 0.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .team-page .team-leader-photo .team-portrait-img,
    .team-page .team-leader-photo__overlay {
        transition: none;
    }
}

/* -----------------------------------------
   Page 5 - Join Page Styles
   ----------------------------------------- */
.join-page {
    --mfb-brand: #1a3a2a;
    --mfb-brand-hover: #234d35;
}

.join-page nav ul a:hover {
    color: #b8d4c4;
}

.join-page .title {
    gap: 0.75rem;
}

.join-page .join-hero__tagline {
    max-width: 36rem;
    color: rgba(255, 255, 255, 0.92);
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: clamp(0.95rem, 2vw, 1.15rem);
    line-height: 1.5;
    margin: 0;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}

.join-page .join__inner {
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 5vw;
}

.join-page .join-heading {
    text-align: left;
}

.join-page .join-inline-link {
    color: var(--mfb-brand);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
    transition: color 0.2s ease;
}

.join-page .join-inline-link:hover {
    color: var(--mfb-brand-hover);
}

/* CTAs */
.join-page .join-cta {
    position: relative;
    z-index: 0;
    display: inline-block;
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    padding: 0.75rem 1.75rem;
    border-radius: 50px;
    background: transparent;
    border: 2px solid transparent;
    box-sizing: border-box;
}

.join-page .join-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    z-index: -1;
    box-sizing: border-box;
    background-color: var(--mfb-brand);
    border: 2px solid var(--mfb-brand);
    transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.join-page .join-cta:hover::before {
    background-color: var(--mfb-brand-hover);
    border-color: var(--mfb-brand-hover);
    transform: scale(1.04);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.join-page .join-cta:focus-visible {
    outline: 2px solid var(--mfb-brand);
    outline-offset: 3px;
}

.join-page .join-cta--hero {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0.7rem 2rem;
    min-height: 2.75rem;
    min-width: 10.5rem;
    font-size: 0.95rem;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
    color: var(--mfb-brand);
    flex-shrink: 0;
}

.join-page .join-cta--hero::before {
    background-color: #fff;
    border-color: #fff;
}

.join-page .join-cta--hero:hover {
    color: var(--mfb-brand);
}

.join-page .join-cta--hero:hover::before {
    background-color: rgba(255, 255, 255, 0.92);
    border-color: rgba(255, 255, 255, 0.92);
}

.join-page .join-cta--hero:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

.join-page .join-cta--small {
    font-size: 0.875rem;
    padding: 0.6rem 1.35rem;
    margin-top: 0.5rem;
}

/* Intro */
.join-page .join-intro {
    padding: 4rem 0;
    background-color: #fafafa;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.join-page .join-intro .join__inner {
    text-align: center;
}

.join-page .join-intro .join-heading {
    text-align: center;
}

.join-page .join-intro__text {
    margin: 0 auto 1rem;
    max-width: 48rem;
    text-align: center;
}

.join-page .join-intro__actions {
    margin: 1.75rem 0 0;
}

.join-page .join-intro__text a {
    color: var(--mfb-brand);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.join-page .join-intro__text a:hover {
    color: var(--mfb-brand-hover);
}

/* Recruitment events */
.join-page .join-events {
    padding: 4rem 0 5rem;
    background-color: #fff;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.join-page .join-events .join__inner {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

.join-page .join-event {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: 2.5rem;
    align-items: center;
}

.join-page .join-event--reverse {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
}

.join-page .join-event--reverse .join-event__media {
    order: 2;
}

.join-page .join-event--reverse .join-event__body {
    order: 1;
}

.join-page .join-event__media {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.09);
    background-color: #e8e8e8;
    aspect-ratio: 4 / 3;
}

.join-page .join-event__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.join-page .join-event__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
}

.join-page .join-event__title {
    margin: 0 0 0.35rem;
}

.join-page .join-event__date {
    margin: 0 0 0.75rem;
}

.join-page .join-event__text {
    margin: 0;
}

.join-page .join-event__text strong {
    font-weight: 600;
    color: var(--mfb-brand);
}

/* Bottom CTA */
.join-page .join-cta-band {
    padding: 4rem 0 5rem;
    background-color: #fafafa;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.join-page .join-cta-band__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.75rem;
}

.join-page .join-cta-band__lead {
    margin: 0;
}

@media only screen and (max-width: 768px) {
    .join-page .page-hero .title-section .title {
        gap: 1rem;
    }

    .join-page .join-intro__actions .join-cta {
        width: 100%;
        max-width: 14rem;
        padding: 0.75rem 1.5rem;
    }

    .join-page .join-events {
        padding-bottom: 3rem;
    }

    .join-page .join-event,
    .join-page .join-event--reverse {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .join-page .join-event--reverse .join-event__media,
    .join-page .join-event--reverse .join-event__body {
        order: unset;
    }

    .join-page .join-events .join__inner {
        gap: 2.25rem;
    }

    .join-page .join-cta--small {
        width: 100%;
        max-width: 16rem;
        text-align: center;
        padding: 0.75rem 1.35rem;
        font-size: 0.9rem;
    }

    .join-page .join-cta-band__inner {
        gap: 1rem;
    }
}

@media only screen and (max-width: 480px) {
    .join-page .join-intro__actions .join-cta {
        max-width: 100%;
    }

    .join-page .join-intro__text:nth-of-type(2) {
        line-height: 1.75;
    }

    .join-page .join-intro__text a,
    .join-page .join-inline-link {
        word-break: break-word;
    }

    .join-page .join-events .join__inner {
        gap: 2rem;
    }

    .join-page .join-event__media {
        border-radius: 10px;
    }

    .join-page .join-cta--small {
        max-width: 100%;
    }

    .join-page .join-cta-band__lead {
        padding: 0 0.25rem;
    }

    .join-page .join-cta-band .join-cta {
        max-width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .join-page .join-cta:hover::before {
        transform: none;
        box-shadow: none;
    }
}

/* -----------------------------------------
   Intern Page
   ----------------------------------------- */
.intern-page {
    --mfb-brand: #1a3a2a;
    --mfb-brand-hover: #234d35;
}

.intern-page nav ul a:hover {
    color: #b8d4c4;
}

.intern-page .intern__inner {
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 5vw;
}

.intern-page .intern-intro {
    padding: 4rem 0;
    background-color: #fafafa;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
    text-align: center;
}

.intern-page .intern-intro .intern-heading {
    text-align: center;
}

.intern-page .intern-intro__text {
    margin: 0 auto 1rem;
    max-width: 48rem;
    text-align: center;
}

.intern-page .intern-intro__text:last-child {
    margin-bottom: 0;
}

.intern-page .intern-intro__text a {
    color: var(--mfb-brand);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.intern-page .intern-intro__text a:hover {
    color: var(--mfb-brand-hover);
}

.intern-page .intern-status {
    padding: 0 0 4rem;
    background-color: #fafafa;
}

.intern-page .intern-status__card {
    max-width: 40rem;
    margin: 0 auto;
    padding: 2.5rem 2rem;
    text-align: center;
    background: #fff;
    border: 1px solid rgba(26, 58, 42, 0.1);
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
}

.intern-page .intern-status__badge {
    display: inline-block;
    font-family: 'Roboto', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--mfb-brand);
    background: rgba(26, 58, 42, 0.08);
    padding: 0.35rem 0.85rem;
    border-radius: 50px;
    margin: 0 0 1rem;
}

.intern-page .intern-status__title {
    margin: 0 0 1rem;
}

.intern-page .intern-status__text {
    margin: 0;
}

.intern-page .intern-cta {
    position: relative;
    z-index: 0;
    display: inline-block;
    font-family: 'Roboto', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    padding: 0.75rem 1.75rem;
    border-radius: 50px;
    background: transparent;
    border: 2px solid transparent;
    box-sizing: border-box;
}

.intern-page .intern-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    z-index: -1;
    box-sizing: border-box;
    background-color: var(--mfb-brand);
    border: 2px solid var(--mfb-brand);
    transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.intern-page .intern-cta:hover::before {
    background-color: var(--mfb-brand-hover);
    border-color: var(--mfb-brand-hover);
    transform: scale(1.04);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.intern-page .intern-cta:focus-visible {
    outline: 2px solid var(--mfb-brand);
    outline-offset: 3px;
}

.intern-page .intern-cta-band {
    padding: 4rem 0 5rem;
    background-color: #fafafa;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
}

.intern-page .intern-cta-band__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.75rem;
}

.intern-page .intern-cta-band__lead {
    margin: 0;
}

@media only screen and (max-width: 768px) {
    .intern-page .intern-status__card {
        width: 100%;
        padding: 2rem 1.5rem;
        border-radius: 14px;
        box-sizing: border-box;
    }

    .intern-page .intern-cta-band__inner {
        gap: 1rem;
    }
}

@media only screen and (max-width: 480px) {
    .intern-page .intern-intro__text:last-child {
        line-height: 1.75;
    }

    .intern-page .intern-intro__text a {
        word-break: break-word;
    }

    .intern-page .intern-status__card {
        padding: 1.5rem 1.15rem;
        border-radius: 12px;
    }

    .intern-page .intern-status__badge {
        margin-bottom: 0.85rem;
    }

    .intern-page .intern-status__title {
        margin-bottom: 0.75rem;
    }

    .intern-page .intern-cta-band__lead {
        padding: 0 0.25rem;
    }

    .intern-page .intern-cta {
        max-width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .intern-page .intern-cta:hover::before {
        transform: none;
        box-shadow: none;
    }
}

/* -----------------------------------------
   Login Page
   ----------------------------------------- */
.login-page {
    --mfb-brand: #1a3a2a;
    --mfb-brand-hover: #234d35;
}

.login-page nav ul a:hover {
    color: #b8d4c4;
}

.login-page .login__inner {
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 5vw;
}

.login-page .login-heading {
    text-align: center;
}

.login-page .login-intro {
    padding: 4rem 0 2rem;
    background-color: #fafafa;
    border-top: 1px solid rgba(26, 58, 42, 0.08);
    text-align: center;
}

.login-page .login-intro__text {
    margin: 0 auto;
    max-width: 48rem;
    text-align: center;
}

.login-page .login-panel {
    padding: 0 0 5rem;
    background-color: #fafafa;
}

.login-page .login-panel__inner {
    display: flex;
    justify-content: center;
}

.login-page .login-card {
    width: 100%;
    max-width: 26rem;
    background: #fff;
    border: 1px solid rgba(26, 58, 42, 0.1);
    border-radius: 16px;
    padding: 2.25rem 2rem 2rem;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
    box-sizing: border-box;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.login-page .login-card.ready {
    opacity: 1;
    transform: translateY(0);
}

.login-page .login-card__eyebrow {
    margin: 0 0 0.75rem;
    text-align: center;
}

.login-page .login-card__title {
    margin: 0 0 0.5rem;
    text-align: center;
}

.login-page .login-card__subtitle {
    margin: 0 0 1.75rem;
    text-align: center;
}

.login-page .btn-google {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 0.7rem 1rem;
    background: #fff;
    color: rgba(0, 0, 0, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 50px;
    font-family: 'Roboto', sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.login-page .btn-google:hover {
    background: #fafafa;
    border-color: rgba(26, 58, 42, 0.25);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.login-page .btn-google:focus-visible {
    outline: 2px solid var(--mfb-brand);
    outline-offset: 2px;
}

.login-page .btn-google-icon {
    width: 1.125rem;
    height: 1.125rem;
    flex-shrink: 0;
}

.login-page .login-card__divider {
    display: flex;
    align-items: center;
    margin: 1.5rem 0;
    color: rgba(0, 0, 0, 0.4);
    font-family: 'Roboto', sans-serif;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.login-page .login-card__divider::before,
.login-page .login-card__divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: rgba(26, 58, 42, 0.15);
}

.login-page .login-card__divider span {
    padding: 0 0.75rem;
}

.login-page .login-card__fields label {
    display: block;
    font-family: 'Roboto', sans-serif;
    font-size: 0.8rem;
    font-weight: 500;
    color: rgba(0, 0, 0, 0.65);
    margin-bottom: 0.35rem;
}

.login-page .login-card__fields input {
    width: 100%;
    padding: 0.7rem 0.85rem;
    border: 1px solid rgba(26, 58, 42, 0.2);
    border-radius: 8px;
    font-family: 'Roboto', sans-serif;
    font-size: 0.9rem;
    box-sizing: border-box;
    background: #fff;
    margin-bottom: 1rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.login-page .login-card__fields input:focus {
    outline: none;
    border-color: var(--mfb-brand);
    box-shadow: 0 0 0 3px rgba(26, 58, 42, 0.12);
}

.login-page .login-card__fields input::placeholder {
    color: rgba(0, 0, 0, 0.35);
}

.login-page .login-card__btn {
    width: 100%;
    padding: 0.7rem 1.25rem;
    border-radius: 50px;
    font-family: 'Roboto', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.login-page .login-card__btn--primary {
    margin-top: 0.25rem;
    border: 2px solid var(--mfb-brand);
    background-color: var(--mfb-brand);
    color: #fff;
}

.login-page .login-card__btn--primary:hover {
    background-color: var(--mfb-brand-hover);
    border-color: var(--mfb-brand-hover);
}

.login-page .login-card__btn--secondary {
    margin-top: 0.5rem;
    border: 2px solid rgba(26, 58, 42, 0.35);
    background-color: transparent;
    color: var(--mfb-brand);
}

.login-page .login-card__btn--secondary:hover {
    background-color: rgba(26, 58, 42, 0.06);
    border-color: var(--mfb-brand);
}

.login-page .login-card__btn:focus-visible {
    outline: 2px solid var(--mfb-brand);
    outline-offset: 2px;
}

.login-page .login-card__helper {
    font-family: 'Roboto', sans-serif;
    font-size: 0.8rem;
    line-height: 1.5;
    color: rgba(0, 0, 0, 0.5);
    margin: 1.25rem 0 0;
    text-align: center;
}

.login-page .login-card__status {
    margin: 1rem 0 0;
    font-family: 'Roboto', sans-serif;
    font-size: 0.85rem;
    text-align: center;
    min-height: 1.25rem;
    color: rgba(0, 0, 0, 0.55);
}

.login-page .login-card__status--error {
    color: #b91c1c;
}

.login-page .login-card__status--success {
    color: var(--mfb-brand);
}

@media (prefers-reduced-motion: reduce) {
    .login-page .login-card,
    .login-page .login-card.ready {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* -----------------------------------------
   Mobile consistency (≤768px)
   Shared typography & spacing — inner pages + home
   ----------------------------------------- */
@media only screen and (max-width: 768px) {
    /* Page heroes (inner pages) */
    .about-page .page-hero,
    .services-page .page-hero,
    .team-page .page-hero,
    .join-page .page-hero,
    .intern-page .page-hero,
    .login-page .page-hero {
        min-height: 58vh;
        min-height: 58dvh;
        overflow: hidden;
    }

    /* Fit hero photos by height on narrow screens — less aggressive crop than cover */
    .home-page .home-s1::before,
    .about-page .page-hero::before,
    .services-page .page-hero::before,
    .team-page .page-hero::before,
    .join-page .page-hero::before,
    .intern-page .page-hero::before,
    .login-page .page-hero::before {
        background-size: auto 100%;
        background-position: center center;
        transform: none;
        animation: none;
    }

    .home-page .home-s4 {
        background-color: #0f2218;
        background-size: auto 100%;
        background-position: center center;
    }

    .about-page .title h1,
    .services-page .title h1,
    .team-page .title h1,
    .join-page .title h1,
    .intern-page .title h1,
    .login-page .title h1 {
        font-size: clamp(1.75rem, 7vw, 2.5rem);
        line-height: 1.15;
        padding: 0 0.5rem;
    }

    .about-page .page-hero .title-section .title,
    .services-page .page-hero .title-section .title,
    .team-page .page-hero .title-section .title,
    .join-page .page-hero .title-section .title,
    .intern-page .page-hero .title-section .title,
    .login-page .page-hero .title-section .title {
        padding-top: 3.25rem;
        padding-bottom: 1.5rem;
    }

    /* Home hero */
    .home-page .home-s1-content {
        padding-left: max(1.25rem, 5vw);
        padding-right: max(1.25rem, 5vw);
        padding-bottom: 2rem;
        gap: 1rem;
    }

    .home-page .home-s1-title h1 {
        font-size: clamp(1.75rem, 7vw, 2.5rem);
        line-height: 1.15;
    }

    .home-page .home-s1-tagline p,
    .team-page .team-hero__tagline,
    .join-page .join-hero__tagline {
        font-size: 1rem;
        line-height: 1.6;
        max-width: 100%;
    }

    .home-page .home-s1-actions {
        flex-direction: column;
        width: 100%;
        max-width: 18rem;
        gap: 0.65rem;
    }

    .home-page .home-s1-btn {
        width: 100%;
        font-size: 0.95rem;
        padding: 0.8rem 1.5rem;
        text-align: center;
    }

    /* Content gutters */
    .about-page .about__inner,
    .services-page .services__inner,
    .team-page .team__inner,
    .join-page .join__inner,
    .intern-page .intern__inner,
    .login-page .login__inner,
    .home-page .home-s2__inner,
    .home-page .home-s3__inner,
    .home-page .home-s4__inner {
        padding-left: max(1.25rem, 5vw);
        padding-right: max(1.25rem, 5vw);
    }

    .home-page .home-s5-header {
        padding-left: max(1.25rem, 5vw);
        padding-right: max(1.25rem, 5vw);
    }

    .team-page .team-status {
        padding: 1.25rem max(1.25rem, 5vw) 0;
        font-size: 0.9rem;
    }

    /* Section vertical padding */
    .about-page .about-mission,
    .about-page .about-history,
    .about-page .about-values,
    .services-page .services-offer,
    .services-page .services-focus,
    .services-page .services-clients,
    .services-page .services-inquiries,
    .team-page .team-section,
    .join-page .join-intro,
    .join-page .join-events,
    .join-page .join-cta-band,
    .intern-page .intern-intro,
    .intern-page .intern-status,
    .intern-page .intern-cta-band,
    .login-page .login-intro,
    .login-page .login-panel,
    .home-page .home-s2,
    .home-page .home-s3,
    .home-page .home-s4,
    .home-page .home-s5 {
        padding-top: 2.5rem;
        padding-bottom: 2.5rem;
    }

    .about-page .about-mission {
        padding-bottom: 2.5rem;
    }

    .intern-page .intern-status {
        padding-top: 0;
    }

    .login-page .login-intro {
        padding-bottom: 1.5rem;
    }

    /* Section headings (h2) */
    .about-page .about-heading,
    .services-page .services-heading,
    .team-page .team-heading,
    .join-page .join-heading,
    .intern-page .intern-heading,
    .login-page .login-heading,
    .home-page .home-s2__heading,
    .home-page .home-s3__heading,
    .home-page .home-s4__heading,
    .home-page .home-s5-heading {
        font-size: clamp(1.5rem, 5vw, 2rem);
        line-height: 1.15;
        margin-bottom: 1.25rem;
    }

    .about-page .about-mission__heading,
    .about-page .about-history__heading,
    .services-page .services-offer__heading {
        margin-bottom: 1.25rem;
    }

    .team-page .team-section__header {
        margin-bottom: 1.25rem;
    }

    .home-page .home-s2__header {
        text-align: center;
        margin-bottom: 1.25rem;
    }

    .home-page .home-s4__header {
        margin-bottom: 1.25rem;
    }

    .home-page .home-s5-eyebrow {
        margin-bottom: 0.75rem;
    }

    /* Eyebrows */
    .about-page .about-eyebrow,
    .services-page .services-eyebrow,
    .home-page .home-s3__eyebrow,
    .home-page .home-s5-eyebrow {
        font-size: 0.7rem;
        margin-bottom: 0.75rem;
    }

    /* Body text */
    .about-page .about-mission__body,
    .about-page .about-history__body,
    .about-page .about-history__lead,
    .about-page .about-values__card-text,
    .services-page .services-offer__body,
    .services-page .services-clients__lead,
    .services-page .services-focus__list,
    .team-page .team-section__lead,
    .join-page .join-intro__text,
    .join-page .join-event__text,
    .intern-page .intern-intro__text,
    .intern-page .intern-status__text,
    .login-page .login-intro__text,
    .home-page .home-s3__text,
    .home-page .home-s4-card__text,
    .home-page .home-s4__subheading,
    .home-page .home-s5-header-aside p {
        font-size: 1rem;
        line-height: 1.6;
        max-width: 100%;
    }

    /* Card / subheadings (h3) */
    .join-page .join-event__title,
    .intern-page .intern-status__title,
    .about-page .about-values__card-title,
    .services-page .services-focus__card-title,
    .home-page .home-s4-card__title {
        font-size: 1.2rem;
        line-height: 1.25;
    }

    /* Secondary / meta text */
    .join-page .join-event__date,
    .login-page .login-card__subtitle,
    .intern-page .intern-cta-band__lead,
    .join-page .join-cta-band__lead,
    .services-page .services-inquiries__lead {
        font-size: 0.9rem;
        line-height: 1.55;
    }

    /* Primary CTAs — shared tap size */
    .about-page .about-cta,
    .services-page .services-cta,
    .intern-page .intern-cta,
    .join-page .join-cta-band .join-cta,
    .home-page .home-s3__cta {
        width: 100%;
        max-width: 22rem;
        padding: 0.85rem 1.5rem;
        font-size: 0.95rem;
        text-align: center;
        box-sizing: border-box;
    }

    .login-page .login-card {
        padding: 1.75rem 1.35rem 1.5rem;
        box-sizing: border-box;
    }
}
