:root{--navy:#17324d;--blue:#2367a6;--ink:#1f2937;--muted:#64748b;--line:#dbe4ec;--soft:#f4f8fb}.tfc-main{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;color:var(--ink);line-height:1.75}.tfc-shell{width:min(1120px,calc(100% - 32px));margin:auto}.tfc-hero{padding:72px 0;background:linear-gradient(135deg,#eef6fb,#fff)}.tfc-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:48px;align-items:center}.tfc-kicker{font-size:.78rem;font-weight:800;letter-spacing:.14em;color:var(--blue);margin:0 0 10px}.tfc-hero h1{font-size:clamp(2rem,5vw,3.7rem);line-height:1.18;color:var(--navy);margin:0 0 20px}.tfc-lead{font-size:1.08rem}.tfc-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.tfc-btn{display:inline-flex;padding:13px 22px;border-radius:999px;font-weight:700;text-decoration:none!important}.tfc-btn.primary{background:var(--blue);color:#fff!important}.tfc-btn.secondary{border:1px solid var(--blue);color:var(--blue)!important;background:#fff}.tfc-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:0 12px 35px rgba(23,50,77,.08)}.tfc-section{padding:72px 0}.tfc-section.soft{background:var(--soft)}.tfc-section h2{font-size:clamp(1.7rem,3vw,2.5rem);color:var(--navy)}.tfc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.tfc-card{border:1px solid var(--line);border-radius:16px;padding:24px;color:var(--ink)!important;text-decoration:none!important;background:#fff}.tfc-card h3{color:var(--navy)}.tfc-card span{font-weight:700;color:var(--blue)}.tfc-page{padding:56px 0 90px}.tfc-content{max-width:860px;margin:auto}.tfc-content h2,.tfc-content h3{color:var(--navy);margin-top:1.8em}.tfc-notice{background:var(--soft);border-left:4px solid var(--blue);padding:18px;margin:24px 0}.tfc-mobile-cta{display:none}@media(max-width:760px){.tfc-hero{padding:44px 0}.tfc-grid,.tfc-cards{grid-template-columns:1fr;gap:20px}.tfc-section{padding:48px 0}.tfc-mobile-cta{display:block;position:fixed;z-index:9999;left:14px;right:14px;bottom:12px;background:var(--blue);color:#fff!important;text-align:center;padding:14px;border-radius:999px;font-weight:800;text-decoration:none!important;box-shadow:0 8px 28px rgba(0,0,0,.22)}body{padding-bottom:76px}}

/* =========================================================
   TFC Header normalization
   ========================================================= */

#header {
    background: #fff;
    border-bottom: 1px solid #dbe4ec;
}

#header > .container-fluid {
    max-width: 1200px;
    margin: 0 auto;
    padding-left: 24px;
    padding-right: 24px;
}

#header > .container-fluid > .row {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    min-height: 82px;
}

#header .logo {
    flex: 0 0 280px;
    max-width: 280px;
    padding: 10px 15px;
    text-align: left;
}

#header .site-logo,
#header .custom-logo-link {
    display: block;
    margin: 0;
    padding: 0;
}

#header .custom-logo {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 58px;
    height: auto;
}

#header .site-title {
    margin: 2px 0 0;
    line-height: 1.25;
}

#header .site-title a {
    color: #17324d;
    font-size: 20px;
    font-weight: 700;
    text-decoration: none;
}

#header .site-description {
    margin: 3px 0 0;
    color: #64748b;
    font-size: 12px;
    line-height: 1.4;
}

#header .menu-top {
    flex: 1 1 auto;
    max-width: none;
    padding: 0 15px;
}

#header .menu-top > .container {
    width: 100%;
    max-width: none;
    padding: 0;
}

#header .menu-section {
    width: 100%;
}

#header .main-menu-navigation > ul {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

#header .main-menu-navigation > ul > li {
    display: block;
    float: none;
    margin: 0;
    padding: 0;
}

#header .main-menu-navigation > ul > li > a {
    display: block;
    padding: 12px 10px;
    color: #17324d;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
    white-space: nowrap;
}

#header .main-menu-navigation > ul > li > a:hover,
#header .main-menu-navigation > ul > li.current-menu-item > a {
    color: #2367a6;
}

#header .responsive-menu {
    display: none;
}


/* Tablet / mobile */
@media (max-width: 991px) {

    #header > .container-fluid {
        padding-left: 16px;
        padding-right: 16px;
    }

    #header > .container-fluid > .row {
        min-height: 70px;
        flex-wrap: wrap;
    }

    #header .logo {
        flex: 1 1 auto;
        max-width: calc(100% - 64px);
        width: auto;
        padding: 8px 0;
    }

    #header .custom-logo {
        max-height: 48px;
    }

    #header .menu-top {
        flex: 0 0 54px;
        width: 54px;
        max-width: 54px;
        padding: 0;
        margin-left: auto;
    }

    #header .menu-section {
        position: static;
    }

    #header .toggle-menu.responsive-menu {
        display: flex;
        align-items: center;
        justify-content: flex-end;
    }

    #header .mobile-menu {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 46px;
        height: 46px;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 8px;
        background: #2367a6;
        color: #fff;
        font-size: 20px;
    }

    #header .sidenav {
        height: 100%;
        width: 0;
        position: fixed;
        z-index: 100000;
        top: 0;
        right: 0;
        left: auto;
        overflow-x: hidden;
        background: #fff;
        box-shadow: -8px 0 30px rgba(0,0,0,.14);
    }

    #header .sidenav #primary-site-navigation {
        padding: 70px 22px 30px;
    }

    #header .main-menu-navigation > ul {
        display: block;
    }

    #header .main-menu-navigation > ul > li {
        display: block;
        width: 100%;
        border-bottom: 1px solid #e5edf3;
    }

    #header .main-menu-navigation > ul > li > a {
        display: block;
        padding: 14px 4px;
        white-space: normal;
        font-size: 15px;
    }

    #header .sidenav .closebtn {
        display: block;
        position: absolute;
        top: 18px;
        right: 20px;
        font-size: 28px;
        color: #17324d;
    }
}


@media (max-width: 480px) {

    #header .site-title a {
        font-size: 16px;
    }

    #header .site-description {
        display: none;
    }

    #header .custom-logo {
        max-height: 42px;
    }

}
