/* TFC responsive foundation
   Desktop: 1024px and up
   Tablet: 768px to 1023px
   Mobile: 767px and below (verify at 390px first)
   Use 480px only for a documented form or long-label exception. */

.tfc-container {
    width: min(calc(100% - 40px), var(--tfc-max));
    margin-inline: auto;
}

.tfc-narrow {
    max-width: var(--tfc-narrow);
}

@media (min-width: 1024px) {
    .tfc-site-header > .tfc-container > .tfc-button--small {
        min-width: 96px;
        padding-inline: 14px;
        font-size: .82rem;
    }
}

@media (max-width: 1023px) {
    .tfc-container {
        width: min(calc(100% - 40px), var(--tfc-max));
    }
}

/* WordPress admin-bar height changes at this width. It is not a site layout breakpoint. */
@media (max-width: 782px) {
    body.admin-bar .tfc-site-header {
        top: 46px;
    }
}

.tfc-main h1,
.tfc-main h2,
.tfc-main h3,
.tfc-site-header,
.tfc-button{
    font-weight:800;
}
.tfc-site-header{
    border-bottom:0;
    box-shadow:none;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(10px);
}
.tfc-global-nav{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:4px;
    margin-left:auto;
}
.tfc-global-nav a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:0 12px;
    border-radius:999px;
    color:#34465c;
    font-size:.9rem;
    font-weight:800;
    line-height:1;
    text-decoration:none;
}
.tfc-global-nav a:hover,
.tfc-global-nav a:focus-visible{
    background:#f3f6fb;
    color:var(--tfc-ink);
}
.tfc-global-nav__item{
    position:relative;
}
.tfc-global-nav__submenu{
    position:absolute;
    left:50%;
    top:calc(100% + 8px);
    z-index:30;
    display:grid;
    min-width:154px;
    padding:10px;
    border:1px solid rgba(0,35,135,.14);
    border-radius:10px;
    background:#fff;
    box-shadow:0 16px 34px rgba(0,35,135,.14);
    opacity:0;
    visibility:hidden;
    transform:translate(-50%,6px);
    transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
}
.tfc-global-nav__item:hover .tfc-global-nav__submenu,
.tfc-global-nav__item:focus-within .tfc-global-nav__submenu{
    opacity:1;
    visibility:visible;
    transform:translate(-50%,0);
}
.tfc-global-nav .tfc-global-nav__submenu-link{
    justify-content:flex-start;
    min-height:40px;
    padding:0 12px;
    border-radius:6px;
}
.tfc-global-nav__submenu-link--entrepreneur{color:var(--tfc-entrepreneur)!important}
.tfc-global-nav__submenu-link--collaboration{color:var(--tfc-collaboration)!important}
.tfc-global-nav__submenu-link--research{color:var(--tfc-research)!important}
.tfc-site-header .tfc-button--small{
    background:var(--tfc-ink);
    border-color:var(--tfc-ink);
    color:#fff;
}
.tfc-circle-link{
    display:inline-flex;
    align-items:center;
    gap:.72rem;
    color:var(--tfc-ink);
    font-weight:800;
    line-height:1.2;
    text-decoration:none;
}
.tfc-circle-link__icon{
    display:inline-grid;
    flex:0 0 auto;
    place-items:center;
    width:42px;
    height:42px;
    border-radius:50%;
    background:rgba(0,35,135,.08);
    color:inherit;
    transition:background-color .2s ease;
}
.tfc-circle-link__icon::before{
    content:">";
    display:block;
    font-size:.9rem;
    line-height:1;
    transition:transform .2s ease;
}
.tfc-circle-link:hover .tfc-circle-link__icon,
.tfc-circle-link:focus-visible .tfc-circle-link__icon{
    background:rgba(0,35,135,.16);
}
.tfc-circle-link:hover .tfc-circle-link__icon::before,
.tfc-circle-link:focus-visible .tfc-circle-link__icon::before{
    transform:translateX(4px);
}
.tfc-main{
    background:#f5f6f8;
}

.tfc-brand{display:inline-flex;flex-direction:row;align-items:center;flex:0 0 auto}
.tfc-brand__logo{width:46px;height:46px;flex:0 0 46px;object-fit:contain}
.tfc-brand__copy{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.tfc-brand{gap:0}
.tfc-brand__main{
    color:var(--tfc-ink);
    font-stretch:condensed;
    white-space:nowrap;
}
.tfc-brand__sub{font-weight:700;line-height:1.2}

.tfc-brand__logo{display:none!important}
.tfc-site-header__inner{min-height:90px;gap:20px}
.tfc-brand{min-width:310px}
.tfc-brand__main{
    font-family:var(--tfc-font-display);
    font-size:clamp(1.4rem,1.7vw,1.65rem);
    font-weight:700;
    line-height:1;
    letter-spacing:.055em;
}
.tfc-brand__sub{margin-top:7px;font-size:.7rem;letter-spacing:.015em}
.tfc-global-nav a{white-space:nowrap;word-break:keep-all}
.tfc-global-nav .tfc-button{flex:0 0 auto;min-width:104px}
.tfc-site-header__inner > .tfc-button{flex:0 0 auto;min-width:104px;white-space:nowrap;word-break:keep-all}


.tfc-site-header{
    position:fixed;
    top:0;
    right:0;
    left:0;
    width:100%;
    z-index:100;
}
body.admin-bar .tfc-site-header{top:32px}
body.tfc-project-page .tfc-main{padding-top:90px}

.tfc-site-footer{
    padding:50px 0 24px;
    border:0;
    background:#f3f6fa;
    color:var(--tfc-color-text);
}
.tfc-site-footer__inner{
    display:grid;
    grid-template-columns:minmax(240px,.8fr) minmax(320px,1.2fr);
    gap:clamp(32px,6vw,90px);
    align-items:start;
}
.tfc-site-footer__brand{
    color:var(--tfc-color-heading);
    font-family:var(--tfc-font-display);
    font-size:1.35rem;
    font-weight:700;
    letter-spacing:.055em;
    line-height:1.2;
}
.tfc-site-footer__note{
    margin-top:8px!important;
    color:var(--tfc-color-text-secondary);
    font-size:.82rem;
}
.tfc-site-footer__label{
    margin:0 0 6px;
    color:var(--tfc-color-text-muted);
    font-size:.75rem;
    font-weight:700;
}
.tfc-site-footer__operator-name{
    color:var(--tfc-color-heading);
    font-size:1rem;
    font-weight:800;
}
.tfc-site-footer address{
    display:grid;
    gap:2px;
    margin-top:12px;
    color:var(--tfc-color-text-secondary);
    font-size:.78rem;
    font-style:normal;
    line-height:1.65;
}
.tfc-site-footer a{color:inherit;text-underline-offset:3px}
.tfc-site-footer__copyright{
    margin-top:36px;
    color:var(--tfc-color-text-muted);
    font-size:.7rem;
}

/* Shared section rhythm used by portal and detail pages. */
body.tfc-project-page .tfc-main{overflow:hidden;background:#fff;font-size:1rem}
body.tfc-project-page .tfc-section{padding:clamp(58px,6.5vw,88px) 0;border-top:0}
body.tfc-project-page .tfc-section--soft{background:#f4f6f8}
body.tfc-project-page .tfc-section > .tfc-container > .tfc-section-kicker{
    margin:0 0 10px;
    color:var(--tfc-color-text-muted);
    font-size:.7rem;
    letter-spacing:.08em;
    text-align:center;
}
body.tfc-project-page .tfc-section > .tfc-container > h2{
    margin:0 0 clamp(30px,4vw,46px);
    padding:0;
    border:0;
    color:var(--tfc-color-heading);
    font-size:clamp(2rem,3.4vw,2.75rem);
    line-height:1.35;
    letter-spacing:0;
    text-align:center;
    text-wrap:balance;
}
body.tfc-project-page .tfc-section > .tfc-container > h2::before,
body.tfc-project-page .tfc-section > .tfc-container > h2::after{display:none;content:none}

/* Shared content-card foundation: story and supporter cards provide their own layout details. */
.tfc-content-card{
    position:relative;
    min-width:0;
}
.tfc-content-card h2,
.tfc-content-card h3{
    padding:0;
    border:0;
    color:var(--tfc-color-text);
    letter-spacing:0;
    text-align:left;
}
.tfc-content-card h2::before,
.tfc-content-card h2::after,
.tfc-content-card h3::before,
.tfc-content-card h3::after{
    display:none;
    content:none;
}

.tfc-section-kicker{font-size:.75rem;letter-spacing:.14em;font-weight:800;color:var(--tfc-ink-2)}

.tfc-section-caption{max-width:760px;margin:-12px 0 32px;font-size:1rem;line-height:1.9;color:var(--tfc-muted)}

@media (max-width: 1023px) {
    .tfc-site-header__inner {
        flex-wrap: wrap;
        padding: 12px 0;
    }

    .tfc-global-nav {
        order: 3;
        width: 100%;
        max-width: none;
        justify-content: flex-start;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .tfc-global-nav::-webkit-scrollbar {
        display: none;
    }

    .tfc-global-nav__submenu {
        display: none;
    }

    .tfc-brand {
        min-width: 0;
    }

    .tfc-brand__main {
        font-size: 1.05rem;
    }

    .tfc-brand__sub {
        font-size: .62rem;
    }
}

@media (max-width: 767px) {
    .tfc-container {
        width: min(calc(100% - 28px), var(--tfc-max));
    }

    .tfc-button,
    .tfc-circle-link {
        min-height: 44px;
    }

    .tfc-site-header__inner {
        min-height: 72px;
    }

    .tfc-brand__main {
        font-size: .9rem;
    }

    .tfc-global-nav a {
        min-height: 38px;
        padding: 0 10px;
        font-size: .82rem;
    }

    .tfc-site-footer {
        padding-top: 38px;
    }

    .tfc-site-footer__inner {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .tfc-site-footer__copyright {
        margin-top: 28px;
    }
}
