/* TOTTORI FIELD CHALLENGE — type bundle. Page-scoped source; keep selectors local to this template group. */
* { box-sizing: border-box; }

body.tfc-project-page {
    margin: 0;
    color: var(--tfc-ink);
    background: #fff;
    line-height: 1.75;
}

.tfc-site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.tfc-brand {
    color: inherit;
    text-decoration: none;
    line-height: 1.25;
}

.tfc-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 24px;
    border: 1px solid currentColor;
    color: var(--tfc-ink);
    background: #fff;
    text-decoration: none;
    font-weight: 700;
}

.tfc-button--primary {
    background: var(--tfc-ink);
    color: #fff;
    border-color: var(--tfc-ink);
}

.tfc-button--small {
    min-height: 40px;
    padding-inline: 18px;
    font-size: 14px;
}

.tfc-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
}

.tfc-chip {
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 13px;
}

.tfc-section {
    border-top: 1px solid var(--tfc-line);
}

.tfc-section h2 {
    margin: 0 0 36px;
    font-size: clamp(30px, 4vw, 52px);
    line-height: 1.25;
}

.tfc-cta-box {
    margin-top: 48px;
    padding: 28px;
    border: 1px solid var(--tfc-line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.tfc-faq-list {
    border-top: 1px solid var(--tfc-line);
}

.tfc-faq {
    border-bottom: 1px solid var(--tfc-line);
}

.tfc-faq summary {
    cursor: pointer;
    padding: 20px 4px;
    font-weight: 800;
}

.tfc-faq__answer {
    padding: 0 4px 22px;
}

.tfc-site-footer p {
    margin: 0;
}

@media (max-width: 767px) {
    .tfc-cta-box {
        align-items: stretch;
        flex-direction: column;
    }

    .tfc-button--small {
        padding-inline: 14px;
    }
}

.tfc-project-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.tfc-project-card{overflow:hidden;border:1px solid rgba(0,0,0,.1);background:#fff;transition:transform .2s ease,box-shadow .2s ease}
.tfc-project-card:hover{transform:translateY(-3px)}
.tfc-project-card__link{color:inherit;text-decoration:none}
.tfc-project-card__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#eef0ed}
.tfc-project-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.tfc-project-card:hover .tfc-project-card__media img{transform:scale(1.025)}
.tfc-project-card__placeholder{display:flex;height:100%;align-items:center;justify-content:center;padding:24px;text-align:center;font-size:.75rem;letter-spacing:.12em}
.tfc-project-card__status{position:absolute;top:12px;right:12px;padding:7px 11px;border-radius:999px;font-size:.75rem;font-weight:700}
.tfc-project-card__body{padding:20px}
.tfc-project-card__body h2{margin:12px 0;font-size:1.28rem;line-height:1.45}
.tfc-project-card__summary{margin:0 0 18px;line-height:1.75}
.tfc-project-card__meta{margin:0 0 18px;padding-top:14px;border-top:1px solid rgba(0,0,0,.08)}
.tfc-project-card__meta div{display:grid;grid-template-columns:72px 1fr;gap:10px;margin:5px 0}
.tfc-project-card__meta dt{font-size:.76rem;font-weight:700}
.tfc-project-card__meta dd{margin:0;font-size:.86rem}
.tfc-project-card__more{font-size:.88rem;font-weight:700}
@media (max-width: 1023px){
 .tfc-project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 767px){
 .tfc-project-card-grid{grid-template-columns:1fr}
}
.tfc-type-switch{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}
.tfc-type-switch a{padding:8px 14px;border:1px solid rgba(0,0,0,.14);border-radius:999px;text-decoration:none;color:inherit}
.tfc-type-switch a.is-current{color:#fff}
.tfc-type-suitable{max-width:820px}
.tfc-roadmap-five{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.tfc-roadmap-five strong,.tfc-roadmap-five span{display:block}.tfc-roadmap-five span{margin-top:12px}
.tfc-story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.tfc-story-card{background:#fff}
.tfc-story-card a{color:inherit;text-decoration:none}
.tfc-story-card__image{overflow:hidden}.tfc-story-card__image img{display:block;width:100%;height:100%;object-fit:cover}.tfc-story-card__body h3{line-height:1.55}.tfc-story-person{font-size:.82rem;color:var(--tfc-muted)}
@media (max-width: 1023px){
 .tfc-story-grid{grid-template-columns:1fr 1fr}
 .tfc-roadmap-five{grid-template-columns:1fr 1fr}
}
@media (max-width: 767px){
 .tfc-story-grid,.tfc-roadmap-five{grid-template-columns:1fr}
}

.tfc-menu-toggle{
    display:none;
}

@media (max-width: 1023px){
    .tfc-site-header__inner{
        display:grid;
        grid-template-columns:minmax(0,1fr) auto auto;
        align-items:center;
        gap:8px;
        min-height:72px;
        padding:10px 0;
    }
    .tfc-brand{
        grid-column:1;
        grid-row:1;
        min-width:0;
        gap:7px;
    }
    .tfc-brand__logo{
        width:36px;
        height:36px;
        flex-basis:36px;
    }
    .tfc-brand__copy{
        min-width:0;
    }
    .tfc-brand__main{
        overflow:hidden;
        font-size:.76rem;
        line-height:1.25;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
    .tfc-brand__sub{
        overflow:hidden;
        margin-top:2px;
        font-size:.54rem;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
    .tfc-site-header > .tfc-container > .tfc-button--small{
        grid-column:2;
        grid-row:1;
        min-width:0;
        min-height:38px;
        padding-inline:12px;
        font-size:.74rem;
        white-space:nowrap;
    }
    .tfc-menu-toggle{
        display:inline-grid;
        grid-column:3;
        grid-row:1;
        place-items:center;
        width:42px;
        height:42px;
        padding:0;
        border:1px solid rgba(0,35,135,.16);
        border-radius:50%;
        background:#fff;
        color:var(--tfc-ink);
        cursor:pointer;
    }
    .tfc-menu-toggle__icon{
        display:grid;
        gap:4px;
    }
    .tfc-menu-toggle__icon i{
        display:block;
        width:18px;
        height:2px;
        border-radius:2px;
        background:currentColor;
        transition:transform .18s ease,opacity .18s ease;
    }
    .tfc-menu-toggle__label{
        position:absolute;
        width:1px;
        height:1px;
        overflow:hidden;
        clip:rect(0 0 0 0);
        white-space:nowrap;
    }
    .tfc-menu-toggle[aria-expanded="true"] .tfc-menu-toggle__icon i:nth-child(1){transform:translateY(6px) rotate(45deg)}
    .tfc-menu-toggle[aria-expanded="true"] .tfc-menu-toggle__icon i:nth-child(2){opacity:0}
    .tfc-menu-toggle[aria-expanded="true"] .tfc-menu-toggle__icon i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

    .tfc-site-header .tfc-global-nav{
        display:none!important;
        grid-column:1 / -1;
        grid-row:2;
        width:100%;
        max-width:none;
        max-height:none;
        margin:2px 0 0;
        padding:8px 0 4px;
        border-top:1px solid rgba(0,35,135,.12);
        overflow:visible;
    }
    .tfc-site-header .tfc-global-nav.is-open{
        display:grid!important;
        grid-template-columns:1fr;
        gap:0;
    }
    .tfc-global-nav > a,
    .tfc-global-nav__item > a{
        justify-content:flex-start;
        min-height:42px;
        padding:0 8px;
        border-radius:0;
        font-size:.9rem;
    }
    .tfc-global-nav__item{
        display:grid;
    }
    .tfc-site-header .tfc-global-nav__submenu{
        position:static;
        display:grid!important;
        grid-template-columns:repeat(3,minmax(0,1fr));
        min-width:0;
        padding:0 0 8px;
        border:0;
        border-radius:0;
        background:transparent;
        box-shadow:none;
        opacity:1;
        visibility:visible;
        transform:none;
    }
    .tfc-global-nav .tfc-global-nav__submenu-link{
        justify-content:center;
        min-height:38px;
        padding:0 6px;
        border-radius:4px;
        font-size:.82rem;
    }
}
.tfc-cta-box h3{
    margin:0 0 10px;
    color:#fff;
    font-size:clamp(1.3rem,2vw,1.7rem);
    line-height:1.45;
}
.tfc-cta-box h3 + p{margin:0}
.tfc-story-card__series{margin:0 0 10px;color:var(--tfc-muted);font-size:.8rem;font-weight:800;letter-spacing:.08em}
.tfc-story-card .tfc-circle-link{margin-top:18px}
.tfc-type-roadmap .tfc-section-caption{margin-inline:auto;text-align:center}
.tfc-type-roadmap .tfc-roadmap-five{margin-top:34px}
.tfc-type-roadmap .tfc-roadmap-five small{display:block;margin:6px 0 12px;color:var(--tfc-muted);font-size:.75rem;font-weight:700}
.tfc-type-page .tfc-roadmap-five article:after{background:var(--tfc-type-color)}
.tfc-faq summary{
    display:grid;
    list-style:none;
}
.tfc-faq summary::-webkit-details-marker{display:none}
.tfc-faq summary::before{content:"Q";font-size:1.5rem;font-weight:800;line-height:1}
.tfc-faq summary::after{content:"+";color:var(--tfc-ink);font-size:1.5rem;font-weight:400;line-height:1}
.tfc-faq[open] summary::after{content:"−"}
.tfc-faq__category{padding:4px 8px;border-radius:999px;font-size:.7rem;font-weight:800;line-height:1.3;white-space:nowrap}
.tfc-faq__category--system{background:#eaf1ff;color:#244d94}
.tfc-faq__category--work{background:#e5f5ef;color:#007b63}
.tfc-faq__category--life{background:#fff1df;color:#b75b00}
.tfc-faq__category--selection{background:#f0eaff;color:#6540ad}
.tfc-faq__category--family-sidejob{background:#fee9ed;color:#b44759}
.tfc-faq__category--after-term{background:#e7f0f2;color:#32697a}
.tfc-faq__question{min-width:0}
@media (max-width: 767px){
    .tfc-faq summary{grid-template-columns:auto minmax(0,1fr) auto;gap:10px}
    .tfc-faq__category{grid-column:2 / 3;justify-self:start;grid-row:1}
    .tfc-faq__question{grid-column:2 / 3;grid-row:2}
    .tfc-faq summary::before{grid-column:1;grid-row:1 / span 2}
    .tfc-faq summary::after{grid-column:3;grid-row:1 / span 2}
}

.tfc-project-card{border-radius:var(--tfc-radius);border-color:var(--tfc-line);box-shadow:none}
.tfc-project-card:hover{box-shadow:0 14px 30px rgba(23,52,74,.10)}
.tfc-project-card__status{background:var(--tfc-ink);color:#fff}
.tfc-chip{border:1px solid var(--tfc-line);background:transparent;color:var(--tfc-ink)}

.tfc-roadmap-five{border:0;background:transparent;gap:0}
.tfc-roadmap-five article{position:relative;min-height:210px;padding:26px 20px 26px 28px;border-top:1px solid var(--tfc-line);border-bottom:1px solid var(--tfc-line);background:#fff}
.tfc-roadmap-five article+article{border-left:1px solid var(--tfc-line)}
.tfc-roadmap-five strong{font-size:.9rem;color:var(--tfc-ink-2)}
.tfc-roadmap-five span{font-size:1rem;line-height:1.7}
.tfc-roadmap-five article:after{content:"→";position:absolute;right:-11px;top:50%;z-index:2;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--tfc-ink);color:#fff;font-size:.72rem;transform:translateY(-50%)}
.tfc-roadmap-five article:last-child:after{display:none}

.tfc-story-grid{gap:18px}
.tfc-story-card{border:1px solid var(--tfc-line);border-radius:var(--tfc-radius);overflow:hidden}
.tfc-story-card__image{aspect-ratio:4/3}
.tfc-story-card__body{padding:22px}
.tfc-story-card__body h3{font-size:1.22rem}
.tfc-story-person{padding-top:12px;border-top:1px solid var(--tfc-line)}

@media (max-width: 1023px){
    .tfc-roadmap-five{grid-template-columns:1fr 1fr}
    .tfc-roadmap-five article:after{display:none}
}
@media (max-width: 767px){
    .tfc-main{font-size:1rem}
    .tfc-section{padding:56px 0}
    .tfc-roadmap-five,.tfc-story-grid{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        transition-duration:.01ms!important;
        scroll-behavior:auto!important;
    }
}
:root{
    --tfc-ink:#002387;
    --tfc-ink-2:#00377d;
    --tfc-surface:#f5f6f8;
    --tfc-paper:#fff;
    --tfc-sand:#f5f6f8;
    --tfc-entrepreneur:#00856f;
    --tfc-collaboration:#c75a00;
    --tfc-research:#3f35d5;
}

.tfc-project-card__more.tfc-circle-link{
    margin-top:14px;
}
.tfc-main{
    background:#f5f6f8;
}
.tfc-type-page h1,
.tfc-type-page .tfc-section h2{
    color:var(--tfc-ink);
}
.tfc-type-page{
    --tfc-type-color:var(--tfc-ink);
    --tfc-type-soft:rgba(0,35,135,.10);
}
.tfc-type-page--entrepreneur{
    --tfc-type-color:var(--tfc-entrepreneur);
    --tfc-type-soft:rgba(0,133,111,.12);
}
.tfc-type-page--collaboration{
    --tfc-type-color:var(--tfc-collaboration);
    --tfc-type-soft:rgba(199,90,0,.12);
}
.tfc-type-page--research{
    --tfc-type-color:var(--tfc-research);
    --tfc-type-soft:rgba(63,53,213,.12);
}
.tfc-type-page .tfc-type-switch a.is-current,
.tfc-type-page h1{
    color:var(--tfc-type-color);
}
.tfc-type-hero{
    padding:clamp(56px,7vw,96px) 0;
}
.tfc-type-switch a.is-current{
    background:#fff;
    border-color:currentColor;
}
.tfc-type-hero-card{
    position:relative;
    display:grid;
    background:#fff;
    overflow:hidden;
}
.tfc-type-hero-card::after{
    content:"";
    position:absolute;
    right:clamp(24px,4vw,54px);
    top:clamp(22px,4vw,46px);
    width:130px;
    height:130px;
    border:10px solid var(--tfc-type-soft);
    border-radius:32px;
    transform:rotate(-8deg);
    pointer-events:none;
}
.tfc-type-page--entrepreneur .tfc-type-hero-card::after{
    border-radius:50% 50% 42% 58%;
}
.tfc-type-page--research .tfc-type-hero-card::after{
    border-radius:18px;
    transform:rotate(45deg);
}
.tfc-type-intro{
    max-width:640px;
    color:#162234;
}
.tfc-type-summary{
    position:relative;
    z-index:1;
    display:grid;
}
.tfc-type-summary article{
    border-left:6px solid var(--tfc-type-color);
}
.tfc-type-summary h2{
    color:var(--tfc-type-color);
}
.tfc-type-summary p{
    margin:0;
    color:#202b38;
}
.tfc-type-suitable{
    border-left-color:var(--tfc-type-color);
}
.tfc-type-page .tfc-button--primary{
    background:var(--tfc-type-color);
    border-color:var(--tfc-type-color);
}

@media (max-width: 1023px){
    .tfc-global-nav{
        max-width:58vw;
        overflow-x:auto;
        scrollbar-width:none;
    }
    .tfc-global-nav::-webkit-scrollbar{display:none}
}
@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;
    }
    .tfc-global-nav__submenu{
        display:none;
    }
    .tfc-type-hero-card{
        grid-template-columns:1fr;
    }
}
@media (max-width: 767px){
    .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-type-hero-card{
        padding:26px 20px;
        box-shadow:8px 8px 0 var(--tfc-type-soft);
    }
    .tfc-type-summary article{
        padding:18px;
    }
}
.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}

@media (max-width: 1023px){
    .tfc-brand__main{font-size:.9rem}
    .tfc-brand__logo{width:40px;height:40px;flex-basis:40px}
}
.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-project-card__status--inline{position:static;display:inline-flex;margin:0 0 12px;background:var(--tfc-ink);color:#fff}

@media (max-width: 1023px){
    .tfc-brand{min-width:0}
    .tfc-brand__main{font-size:1.05rem}
    .tfc-brand__sub{font-size:.62rem}
}
.tfc-brand__logo{display:none!important}
.tfc-site-header__inner{min-height:90px;gap:20px}
.tfc-brand{min-width:310px}
.tfc-brand__main{
    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-type-summary article{
    border-top:0;
    border-right:0;
}
.tfc-type-summary h2{border-top:0}


body.tfc-project-page,
.tfc-main{color:var(--tfc-color-text)}

.tfc-main h1,
.tfc-main h2{color:var(--tfc-color-heading)}

.tfc-main h3,
.tfc-main h4,
.tfc-project-card h3,
.tfc-story-card h3,
.tfc-faq__question{color:var(--tfc-color-text)}
.tfc-type-page h1,
.tfc-type-summary h2{color:var(--tfc-type-color)}

.tfc-type-intro,
.tfc-type-summary p,
.tfc-project-card__summary,
.tfc-story-card__body p,
.tfc-faq__answer{color:var(--tfc-color-text)}

.tfc-section-caption,
.tfc-project-card__body p:not(.tfc-project-card__summary),
.tfc-project-card__meta{color:var(--tfc-color-text-secondary)}

.tfc-brand__sub{color:var(--tfc-color-text-muted)}
.tfc-type-hero-card{
    grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
    gap:clamp(28px,4vw,52px);
    padding:clamp(28px,4vw,48px);
    box-shadow:10px 10px 0 var(--tfc-type-soft);
}

.tfc-type-hero-card::after{display:none}

.tfc-type-hero-card__lead{
    position:relative;
    min-width:0;
    padding-top:4px;
}

.tfc-type-hero-card__icon{
    position:absolute;
    top:0;
    right:0;
    z-index:0;
    display:block;
    width:clamp(88px,9vw,128px);
    height:clamp(88px,9vw,128px);
    color:var(--tfc-type-color);
    opacity:.13;
    pointer-events:none;
}

.tfc-type-hero-card__icon svg{display:block;width:100%;height:100%}

.tfc-type-hero h1{
    position:relative;
    z-index:1;
    max-width:calc(100% - clamp(82px,10vw,142px));
    margin:0 0 20px;
    font-size:clamp(2.8rem,5.1vw,4.8rem);
    line-height:1.06;
}

.tfc-type-intro{
    position:relative;
    z-index:1;
    margin:0 0 24px;
    font-size:clamp(1.05rem,1.45vw,1.24rem);
    font-weight:700;
    line-height:1.65;
}

.tfc-type-suitable{
    margin:0 0 24px;
    padding:14px 16px;
    border-left:4px solid var(--tfc-type-color);
    background:transparent;
}

.tfc-type-suitable span{
    display:block;
    margin-bottom:6px;
    color:var(--tfc-type-color);
    font-size:.9rem;
    font-weight:800;
    letter-spacing:.04em;
}

.tfc-type-suitable p{margin:0;line-height:1.65}

.tfc-type-summary{
    gap:0;
    border-top:1px solid rgba(0,35,135,.14);
}

.tfc-type-summary article{
    padding:18px 0 19px;
    border:0;
    border-bottom:1px solid rgba(0,35,135,.14);
    background:transparent;
    box-shadow:none;
}

.tfc-type-summary h2{
    margin:0 0 7px;
    font-size:1rem;
    line-height:1.45;
}

.tfc-type-summary p{
    font-size:clamp(.98rem,1.15vw,1.08rem);
    line-height:1.72;
}

@media (max-width: 1023px){
    .tfc-type-hero-card{grid-template-columns:1fr}
}

@media (max-width: 767px){
    .tfc-type-hero-card{padding:26px 20px;box-shadow:7px 7px 0 var(--tfc-type-soft)}
    .tfc-type-hero-card__icon{width:82px;height:82px}
    .tfc-type-hero h1{max-width:calc(100% - 72px);font-size:clamp(2.35rem,12vw,3.1rem);margin-bottom:16px}
    .tfc-type-intro{margin-bottom:20px;font-size:1.02rem}
    .tfc-type-suitable{margin-bottom:20px;padding:12px 14px}
    .tfc-type-summary article{padding:16px 0}
}

@media (max-width: 767px){
    .tfc-faq summary{grid-template-columns:40px minmax(0,1fr) 32px}
    .tfc-faq .tfc-faq__answer,
    body.tfc-project-page .tfc-faq .tfc-faq__answer{padding-left:40px}
}
.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-main .tfc-section{scroll-margin-top:122px}
.tfc-faq__panel{
    overflow:hidden;
    transition:height .3s ease,opacity .24s ease;
}
.tfc-faq__answer{padding-top:0}

.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-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;
}

@media (max-width: 1023px){
    body.tfc-project-page .tfc-main{padding-top:78px}
    .tfc-main .tfc-section{scroll-margin-top:124px}
}

@media(prefers-reduced-motion:reduce){
    .tfc-faq__panel{transition:none}
}
.tfc-project-card{
    display:flex;
    flex-direction:column;
}
.tfc-project-card__link{
    display:block;
    height:auto;
    flex:0 0 auto;
}
.tfc-project-card__body{
    display:flex;
    flex:1;
    flex-direction:column;
}
.tfc-project-card__body h2 a,
.tfc-project-card__body h3 a{
    color:inherit;
    text-decoration:none;
}
.tfc-project-card__body .tfc-project-card__more{margin-top:auto}
.tfc-chip--link{
    position:relative;
    color:var(--tfc-color-heading);
    text-decoration:none;
    transition:background-color .2s ease,color .2s ease;
}
.tfc-chip--link:hover,
.tfc-chip--link:focus-visible{
    background:rgba(0,35,135,.1);
    color:var(--tfc-color-heading);
}
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 > 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;
}

body.tfc-project-page .tfc-cta-box{
    max-width:980px;
    margin:48px auto 0;
    border:0;
    border-radius:4px;
    background:var(--tfc-color-heading);
    color:#fff;
}

body.tfc-project-page .tfc-cta-box h3,
body.tfc-project-page .tfc-cta-box p{
    color:#fff;
}

body.tfc-project-page .tfc-cta-box h3{
    font-size:1.35rem;
}

body.tfc-project-page .tfc-cta-box p{
    margin:5px 0 0;
    opacity:.84;
    font-size:.82rem;
}

body.tfc-project-page .tfc-cta-box .tfc-button{
    border-color:#fff;
    background:#fff;
    color:var(--tfc-color-heading);
}

body.tfc-project-page .tfc-faq summary{
    position:relative;
    padding:19px 48px 19px 4px;
    color:var(--tfc-color-text);
    font-size:.92rem;
    line-height:1.65;
    list-style:none;
}

body.tfc-project-page .tfc-faq summary::-webkit-details-marker{
    display:none;
}

body.tfc-project-page .tfc-faq summary::after{
    position:absolute;
    top:50%;
    right:8px;
    color:var(--tfc-color-heading);
    font-size:1.35rem;
    font-weight:400;
    line-height:1;
    transform:translateY(-50%);
    content:"+";
}

body.tfc-project-page .tfc-faq[open] summary::after{
    content:"−";
}

body.tfc-project-page .tfc-faq__answer{
    padding:0 4px 22px;
    color:var(--tfc-color-text-secondary);
    font-size:.88rem;
    line-height:1.85;
}

@media (max-width: 767px){
    body.tfc-project-page .tfc-section{
        padding:48px 0;
    }
    body.tfc-project-page .tfc-section > .tfc-container > h2{
        margin-bottom:25px;
        font-size:clamp(1.72rem,8vw,2.1rem);
    }
    body.tfc-project-page .tfc-cta-box{
        margin-top:36px;
        padding:24px 20px;
    }
    body.tfc-project-page .tfc-cta-box .tfc-button{
        width:100%;
    }
}
.tfc-type-page .tfc-type-cta .tfc-button,
.tfc-cta-box .tfc-button{
    min-height:60px !important;
    padding-inline:32px !important;
    font-size:1rem !important;
    font-weight:800;
}

@media (max-width: 767px){
    .tfc-type-page .tfc-type-cta .tfc-button,
    .tfc-cta-box .tfc-button{
        min-height:56px !important;
        padding-inline:24px !important;
    }
}
.tfc-faq .tfc-faq__answer,
body.tfc-project-page .tfc-faq .tfc-faq__answer{
    position:relative;
}

.tfc-faq .tfc-faq__answer::before{
    content:"A";
    font-size:1.5rem;
    font-weight:800;
    line-height:1.25;
}

.tfc-faq .tfc-faq__answer > :first-child{
    margin-top:0;
}

@media (max-width: 767px){
    .tfc-faq .tfc-faq__answer,
    body.tfc-project-page .tfc-faq .tfc-faq__answer{
        padding-left:44px;
    }
}
body.tfc-project-page #page_top{
    right:24px!important;
    bottom:100px!important;
    display:grid!important;
    width:44px!important;
    height:44px!important;
    place-items:center;
    border:1px solid #cfdbef!important;
    border-radius:50%!important;
    background:#fff!important;
    box-shadow:0 6px 18px rgba(0,35,135,.1);
    color:#002387!important;
    z-index:39!important;
}

body.tfc-project-page #page_top:hover{
    border-color:#002387!important;
    background:#eef4ff!important;
}

@media (max-width: 767px){
    body.tfc-project-page #page_top{
        right:12px!important;
        bottom:calc(86px + env(safe-area-inset-bottom))!important;
        width:40px!important;
        height:40px!important;
    }
}
@media(min-width: 1024px){
    .tfc-site-header > .tfc-container.tfc-site-header__inner{
        width:min(calc(100% - 64px),1280px);
    }
}
.tfc-type-projects .tfc-project-card-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:stretch;
    gap:clamp(18px,2vw,26px);
}

.tfc-type-projects .tfc-project-card{
    display:flex;
    min-width:0;
    overflow:hidden;
    flex-direction:column;
    border:0;
    border-radius:6px;
    background:#fff;
    box-shadow:0 10px 26px rgba(20,43,76,.07);
    transition:transform .22s ease,box-shadow .22s ease;
}

.tfc-type-projects .tfc-project-card:hover{
    transform:translateY(-3px);
    box-shadow:0 16px 34px rgba(20,43,76,.11);
}

.tfc-type-projects .tfc-project-card__media{
    height:auto;
    aspect-ratio:16/9;
    overflow:hidden;
    background:#e9edf3;
}

.tfc-type-projects .tfc-project-card__media img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.tfc-type-projects .tfc-project-card__body{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:20px 20px 22px;
}

.tfc-type-projects .tfc-project-card__body h2,
.tfc-type-projects .tfc-project-card__body h3{
    margin:12px 0 11px;
    padding:0;
    border:0;
    color:var(--tfc-color-text);
    font-size:1.16rem;
    line-height:1.52;
    letter-spacing:0;
    text-align:left;
}

.tfc-type-projects .tfc-project-card__body h2::before,
.tfc-type-projects .tfc-project-card__body h2::after,
.tfc-type-projects .tfc-project-card__body h3::before,
.tfc-type-projects .tfc-project-card__body h3::after{
    display:none;
    content:none;
}

.tfc-type-projects .tfc-project-card__summary{
    margin:0 0 17px;
    color:var(--tfc-color-text-secondary);
    font-size:.86rem;
    line-height:1.75;
}

.tfc-type-projects .tfc-project-card__meta{
    margin:0 0 18px;
    padding-top:12px;
    border-top:1px solid rgba(20,43,76,.1);
}

.tfc-type-projects .tfc-project-card__more{
    margin-top:auto;
}

.tfc-type-stories .tfc-story-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:stretch;
    gap:clamp(24px,2.6vw,34px) clamp(20px,2.5vw,30px);
}

.tfc-type-stories .tfc-story-card{
    overflow:visible;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    transition:transform .22s ease;
}

.tfc-type-stories .tfc-story-card > a{
    display:flex;
    height:100%;
    flex-direction:column;
    color:inherit;
    text-decoration:none;
}

.tfc-type-stories .tfc-story-card__image{
    height:auto;
    aspect-ratio:16/10;
    overflow:hidden;
    border-radius:3px;
    background:#e7ebef;
}

.tfc-type-stories .tfc-story-card__image img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .35s ease;
}

.tfc-story-card__placeholder{
    display:grid;
    width:100%;
    height:100%;
    place-items:center;
    color:#66758a;
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.08em;
}

.tfc-type-stories .tfc-story-card__body{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:16px 2px 0;
}

.tfc-type-stories .tfc-story-card__series{
    margin:0 0 8px;
    padding:0;
    background:transparent;
    color:var(--tfc-color-heading);
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.04em;
    line-height:1.5;
}

.tfc-type-stories .tfc-story-card h2,
.tfc-type-stories .tfc-story-card h3{
    margin:0 0 14px;
    font-size:1.2rem;
    line-height:1.55;
    text-wrap:balance;
}

.tfc-type-stories .tfc-story-person{
    margin:auto 0 0;
    padding:12px 0 0;
    border-top:1px solid rgba(32,42,53,.12);
    color:var(--tfc-color-text-secondary);
    font-size:.78rem;
    line-height:1.65;
}

.tfc-type-stories .tfc-story-card .tfc-circle-link{
    margin-top:15px;
    color:var(--tfc-color-heading);
    font-size:.82rem;
}

.tfc-type-stories .tfc-story-card:hover{
    transform:translateY(-3px);
}

.tfc-type-stories .tfc-story-card:hover .tfc-story-card__image img{
    transform:scale(1.025);
}

@media (max-width: 1023px){
    .tfc-type-projects .tfc-project-card-grid,
    .tfc-type-stories .tfc-story-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media (max-width: 767px){
    .tfc-type-projects .tfc-project-card-grid,
    .tfc-type-stories .tfc-story-grid{
        grid-template-columns:1fr;
        gap:18px;
    }

    .tfc-type-projects .tfc-project-card__body{
        padding:18px 18px 20px;
    }

    .tfc-type-stories .tfc-story-card__body{
        padding-top:14px;
    }
}
.tfc-faq summary{
    grid-template-columns:48px minmax(0,1fr) 40px;
    gap:0;
    align-items:start;
}

.tfc-faq summary::before{
    grid-column:1;
    grid-row:1;
    padding-top:2px;
    color:var(--tfc-color-heading);
}

.tfc-faq summary::after{
    grid-column:3;
    grid-row:1;
    align-self:center;
    justify-self:end;
}

.tfc-faq__question{
    grid-column:2;
    grid-row:1;
}

.tfc-faq .tfc-faq__answer::before{
    top:4px;
    left:0;
    color:var(--tfc-color-heading);
}

@media (max-width: 767px){
    .tfc-faq summary{
        grid-template-columns:40px minmax(0,1fr) 32px;
    }

    .tfc-faq .tfc-faq__answer,
    body.tfc-project-page .tfc-faq .tfc-faq__answer{
        padding-left:40px !important;
    }
}
.tfc-faq .tfc-faq__answer,
body.tfc-project-page .tfc-faq .tfc-faq__answer{
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    gap:0;
    min-height:0;
    padding:4px 0 24px !important;
}

.tfc-faq .tfc-faq__answer::before{
    position:static;
    grid-column:1;
    grid-row:1;
    align-self:start;
    margin:0;
    padding:0;
}

.tfc-faq .tfc-faq__answer > *{
    grid-column:2;
    min-width:0;
    margin-top:0;
}

@media (max-width: 767px){
    .tfc-faq .tfc-faq__answer,
    body.tfc-project-page .tfc-faq .tfc-faq__answer{
        grid-template-columns:40px minmax(0,1fr);
        padding-left:0 !important;
    }
}

body.tfc-project-page .tfc-cta-box{
    margin-top:34px;
    padding:22px 26px;
}
.tfc-type-page .tfc-type-cta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin-top:0;
    padding:clamp(24px,3vw,34px) clamp(26px,4vw,46px);
    border:0;
    border-radius:4px;
    background:var(--tfc-type-color);
    color:#fff;
}

.tfc-type-page .tfc-type-cta__content{
    min-width:0;
}

.tfc-type-page .tfc-type-cta .tfc-type-cta__title{
    margin:0;
    padding:0;
    border:0;
    color:#fff;
    background:transparent;
    font-size:clamp(1.45rem,2.5vw,2.05rem);
    font-weight:800;
    line-height:1.35;
    letter-spacing:0;
    text-align:left;
}

.tfc-type-page .tfc-type-cta .tfc-type-cta__title::before,
.tfc-type-page .tfc-type-cta .tfc-type-cta__title::after{
    display:none;
    content:none;
}

.tfc-type-page .tfc-type-cta .tfc-button{
    flex:0 0 auto;
    min-width:min(100%,270px);
    justify-content:center;
    border-color:#fff;
    background:#fff;
    color:var(--tfc-type-color);
    white-space:nowrap;
}

@media (max-width: 767px){
    .tfc-type-page .tfc-type-cta{
        align-items:stretch;
        flex-direction:column;
        gap:16px;
        padding:22px 20px;
    }

    .tfc-type-page .tfc-type-cta .tfc-type-cta__title{
        font-size:1.32rem;
    }

    .tfc-type-page .tfc-type-cta .tfc-button{
        width:100%;
        min-width:0;
    }
}
body.tfc-project-page{
    --tfc-project-content:1080px;
    --tfc-project-border:#dce3ed;
    --tfc-project-soft:#f4f7fb;
    --tfc-project-accent:#002387;
}

.tfc-company-invite{
    background:linear-gradient(180deg,#fff 0%,#f7f8fb 100%);
}

.tfc-company-invite__intro{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:clamp(24px,4vw,56px);
    align-items:end;
    padding:clamp(28px,4vw,46px);
    border:1px solid rgba(199,90,0,.18);
    border-radius:12px;
    background:#fff;
    box-shadow:0 18px 40px rgba(24,44,75,.08);
}

.tfc-company-invite__intro h2{
    margin:0 0 16px;
    color:var(--tfc-collaboration);
    font-size:clamp(1.9rem,4vw,3.1rem);
    letter-spacing:-.02em;
    line-height:1.18;
    text-align:left;
}

.tfc-company-invite__intro h2::before,
.tfc-company-invite__intro h2::after{
    display:none;
    content:none;
}

.tfc-company-invite__intro p{
    margin:0;
    max-width:68ch;
    color:var(--tfc-color-text-secondary);
    font-size:1rem;
    line-height:1.9;
}

.tfc-company-invite__intro .tfc-button{
    min-width:260px;
}

.tfc-company-roadmap{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    margin-top:18px;
}

.tfc-company-roadmap article{
    position:relative;
    min-height:100%;
    padding:22px;
    border:1px solid rgba(23,52,74,.14);
    border-radius:12px;
    background:#fff;
}

.tfc-company-roadmap article::after{
    position:absolute;
    top:30px;
    right:-15px;
    z-index:1;
    display:grid;
    width:28px;
    height:28px;
    place-items:center;
    border-radius:50%;
    background:var(--tfc-collaboration);
    color:#fff;
    font-size:.74rem;
    font-weight:800;
    content:"→";
}

.tfc-company-roadmap article:last-child::after{
    display:none;
}

.tfc-company-roadmap span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:42px;
    height:30px;
    margin-bottom:18px;
    border-radius:999px;
    color:var(--tfc-collaboration);
    background:rgba(199,90,0,.10);
    font-size:.78rem;
    font-weight:800;
    line-height:1;
}

.tfc-company-roadmap h3{
    margin:0 0 12px;
    color:var(--tfc-color-text);
    font-size:1.08rem;
    line-height:1.45;
}

.tfc-company-roadmap p{
    margin:0;
    color:var(--tfc-color-text-secondary);
    font-size:.88rem;
    line-height:1.85;
}

@media (max-width: 1023px){
    .tfc-company-invite__intro{
        grid-template-columns:1fr;
        align-items:start;
    }

    .tfc-company-invite__intro .tfc-button{
        width:max-content;
        min-width:240px;
    }

    .tfc-company-roadmap{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .tfc-company-roadmap article::after{
        display:none;
    }
}

@media (max-width: 767px){
    .tfc-company-invite__intro{
        padding:24px 20px;
        border-radius:10px;
    }

    .tfc-company-invite__intro h2{
        font-size:1.72rem;
    }

    .tfc-company-invite__intro .tfc-button{
        width:100%;
        min-width:0;
    }

    .tfc-company-roadmap{
        grid-template-columns:1fr;
        gap:12px;
    }

    .tfc-company-roadmap article{
        padding:20px;
    }
}
