:root {
    --brand-navy: #111b64;
    --brand-magenta: #ed006c;
    --brand-orange: #ff641f;
    --brand-line: rgba(17, 27, 100, .16);
}

.brand--image {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0;
    min-width: 0;
}

.brand--image::after { display: none !important; }
.brand--image picture { display: block; line-height: 0; }
.brand__logo { display: block; width: clamp(225px, 17vw, 290px); height: auto; }

.site-header .brand--image {
    min-width: clamp(225px, 17vw, 290px);
    transform: none;
}

.site-header .primary-nav ul { gap: clamp(12px, 1.25vw, 22px); }
.site-header .primary-nav li { flex: 0 0 auto; }
.site-header .primary-nav a { white-space: nowrap; }
.site-header .language-switcher-item { order: 0 !important; }
.site-header .language-switcher { flex: 0 0 auto; white-space: nowrap; }
.site-header .nav-cta { min-width: 136px; }

.brand-endorsement {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) 1px minmax(220px, 1fr);
    align-items: center;
    gap: clamp(22px, 3vw, 42px);
    margin-bottom: 46px;
    padding: 24px clamp(24px, 4vw, 44px);
    border: 1px solid var(--brand-line);
    border-radius: 14px;
    background: #fff;
    color: #171717;
    box-shadow: 0 12px 34px rgba(17, 27, 100, .06);
}

.brand-endorsement__hub { display: block; justify-self: end; line-height: 0; }
.brand-endorsement__hub img { display: block; width: min(100%, 290px); height: auto; }
.brand-endorsement__divider { width: 1px; height: 58px; background: var(--brand-line); }
.brand-endorsement__institution { display: flex; align-items: center; gap: 20px; min-width: 0; }
.brand-endorsement__institution span {
    flex: 0 0 92px;
    color: #68635e;
    font-size: .68rem;
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.brand-endorsement__institution img { display: block; width: min(100%, 265px); height: auto; }

.site-footer--launchpad { padding-top: 44px !important; }
.site-footer:not(.site-footer--launchpad) .brand-endorsement { margin-bottom: 52px; }
.site-footer:not(.site-footer--launchpad) .site-footer__grid > div:first-child { max-width: 340px; }
.site-footer:not(.site-footer--launchpad) .site-footer__grid > div:first-child p { margin-top: 0; }

.about-ownership {
    display: grid;
    grid-template-columns: minmax(220px, .85fr) 1px minmax(300px, 1.15fr);
    align-items: center;
    gap: clamp(28px, 5vw, 70px);
    margin: 18px 0 42px;
    padding: clamp(28px, 4vw, 50px);
    border-color: var(--brand-line);
    background: linear-gradient(135deg, #fff 0%, #fff8fb 52%, #fff7f0 100%);
}
.about-ownership__hub img { display: block; width: min(100%, 400px); height: auto; }
.about-ownership__divider { width: 1px; height: 118px; background: var(--brand-line); }
.about-ownership__institution { display: grid; gap: 16px; }
.about-ownership__institution > span {
    color: var(--brand-magenta);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.about-ownership__institution img { display: block; width: min(100%, 430px); height: auto; }
.about-ownership__institution p { max-width: 650px; margin: 0; color: #625d58; }

.portal-brand { display: inline-flex; align-items: center; gap: 14px; color: inherit; text-decoration: none; }
.portal-brand img { display: block; width: 210px; height: auto; }
.portal-brand--compact img { width: 180px; }
.portal-brand__context {
    padding-left: 14px;
    border-left: 1px solid var(--brand-line);
    color: var(--brand-magenta);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.admin-login__card .portal-brand { margin-bottom: 18px; }
.admin-header__identity { display: grid; gap: 20px; }
.admin-detail-header .portal-brand img { width: 165px; }
.admin-detail-header .container { gap: 22px; }
.admin-detail-header .admin-top-actions { margin-left: auto; }
.member-header .portal-brand picture { display: block; line-height: 0; }

@media (max-width: 1180px) {
    .brand__logo { width: 225px; }
    .site-header .brand--image { min-width: 225px; }
    .site-header .primary-nav ul { gap: 11px; }
    .public-mockup-page .nav-search-item { display: none; }
    .public-mockup-page .language-switcher-item { display: list-item; }
    .brand-endorsement__institution { flex-direction: column; align-items: flex-start; gap: 10px; }
    .brand-endorsement__institution span { flex-basis: auto; }
}

@media (max-width: 1020px) {
    .site-header__inner { min-height: 74px; }
    .site-header .nav-toggle { display: block; position: relative; z-index: 102; }
    .site-header .primary-nav {
        display: none;
        position: fixed;
        inset: 74px 0 0;
        padding: 28px;
        overflow-y: auto;
        border-top: 1px solid var(--brand-line);
        background: #fffdf9;
    }
    .nav-open .site-header .primary-nav { display: block; }
    .site-header .primary-nav ul { align-items: stretch; flex-direction: column; gap: 0; }
    .site-header .primary-nav li { border-bottom: 1px solid rgba(17,27,100,.14); }
    .site-header .primary-nav li.language-switcher-item { padding: 14px 4px; }
    .site-header .primary-nav a { display: block; padding: 14px 4px; font-size: 1rem; }
    .site-header .primary-nav a::after { display: none; }
    .site-header .primary-nav .nav-cta { width: 100%; margin-top: 16px; text-align: center; }
    .site-header .nav-search-item { display: none; }
}

@media (max-width: 760px) {
    .brand__logo { width: 54px; max-height: 50px; object-fit: contain; }
    .site-header .brand--image { min-width: 54px; }
    .brand-endorsement,
    .about-ownership {
        grid-template-columns: 1fr;
        justify-items: start;
        gap: 24px;
    }
    .brand-endorsement__hub { justify-self: start; }
    .brand-endorsement__divider,
    .about-ownership__divider { width: 100%; height: 1px; }
    .brand-endorsement__institution { width: 100%; }
    .brand-endorsement__hub img { width: min(100%, 250px); }
    .brand-endorsement__institution img { width: min(100%, 280px); }
    .portal-brand img { width: 170px; }
    .portal-brand__context { font-size: .62rem; }
    .member-header .portal-brand img { width: 50px; max-height: 48px; object-fit: contain; }
    .admin-detail-header .container { flex-wrap: wrap; }
    .admin-detail-header .admin-top-actions { order: 3; width: 100%; margin-left: 0; }
}

/* CP mobile header fix: show full logo and make menu readable */
@media (max-width: 760px) {
    .site-header__inner {
        min-height: 82px;
        gap: 14px;
    }

    .brand__logo {
        width: min(58vw, 220px);
        max-height: 58px;
        object-fit: contain;
    }

    .site-header .brand--image {
        min-width: min(58vw, 220px);
    }

    .site-header .nav-toggle {
        flex: 0 0 64px;
        width: 64px;
        height: 58px;
    }

    .site-header .primary-nav {
        inset: 82px 0 0;
        z-index: 100;
        padding: 24px 28px 36px;
        background: #fffdf9;
    }

    .site-header .primary-nav a {
        white-space: normal;
        font-size: 1.15rem;
        line-height: 1.2;
    }
}

/* Mobile menu fix: full dropdown, visible and scrollable */
@media (max-width: 1020px) {
    body.nav-open {
        overflow: hidden;
    }

    .site-header {
        position: relative;
        z-index: 200;
    }

    .site-header__inner {
        min-height: 82px;
    }

    .brand__logo {
        width: min(58vw, 220px);
        max-height: 58px;
        object-fit: contain;
    }

    .site-header .brand--image {
        min-width: min(58vw, 220px);
    }

    .site-header .primary-nav {
        position: fixed;
        top: 82px;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 190;
        display: none;
        max-height: calc(100vh - 82px);
        padding: 18px 24px 96px;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        background: #fffdf9;
        border-top: 1px solid rgba(17, 27, 100, .14);
    }

    .nav-open .site-header .primary-nav {
        display: block;
    }

    .site-header .primary-nav ul {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    .site-header .primary-nav li {
        border-bottom: 1px solid rgba(17, 27, 100, .14);
    }

    .site-header .primary-nav a {
        display: block;
        padding: 15px 4px;
        white-space: normal;
        font-size: 1rem;
        line-height: 1.2;
    }

    .site-header .primary-nav .nav-cta {
        width: 100%;
        margin-top: 18px;
        text-align: center;
    }
}

@media (max-width: 420px) {
    .site-header .primary-nav {
        padding-bottom: 120px;
    }

    .site-header .primary-nav a {
        padding-block: 13px;
        font-size: .96rem;
    }
}

/* FINAL mobile nav override: fix homepage menu height */
@media (max-width: 1020px) {
    body.nav-open,
    body.home-launchpad-page.nav-open {
        overflow: hidden !important;
    }

    .site-header,
    .home-launchpad-page .site-header--launchpad {
        position: relative !important;
        z-index: 9999 !important;
    }

    .site-header .primary-nav,
    .home-launchpad-page .site-header--launchpad .primary-nav,
    .public-mockup-page .primary-nav {
        position: fixed !important;
        top: 82px !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        inset: 82px 0 0 0 !important;
        display: none !important;
        height: calc(100dvh - 82px) !important;
        max-height: calc(100dvh - 82px) !important;
        min-height: calc(100dvh - 82px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        padding: 18px 24px 120px !important;
        background: #fffdf9 !important;
        border-top: 1px solid rgba(17, 27, 100, .14) !important;
    }

    body.nav-open .site-header .primary-nav,
    body.home-launchpad-page.nav-open .site-header--launchpad .primary-nav,
    body.public-mockup-page.nav-open .primary-nav {
        display: block !important;
    }

    .site-header .primary-nav ul,
    .home-launchpad-page .site-header--launchpad .primary-nav ul,
    .public-mockup-page .primary-nav ul {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0 !important;
    }

    .site-header .primary-nav li,
    .home-launchpad-page .site-header--launchpad .primary-nav li,
    .public-mockup-page .primary-nav li {
        width: 100% !important;
        border-bottom: 1px solid rgba(17, 27, 100, .14) !important;
    }

    .site-header .primary-nav a,
    .home-launchpad-page .site-header--launchpad .primary-nav a,
    .public-mockup-page .primary-nav a {
        display: block !important;
        width: 100% !important;
        padding: 15px 4px !important;
        white-space: normal !important;
        font-size: 1rem !important;
        line-height: 1.25 !important;
    }

    .site-header .primary-nav .nav-cta,
    .home-launchpad-page .site-header--launchpad .nav-cta,
    .public-mockup-page .nav-cta {
        margin-top: 18px !important;
        text-align: center !important;
    }
}
