@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Zen+Old+Mincho:wght@400;700&display=swap');
@media screen and (min-width: 0) {
    :root {
        --navy: 0, 73, 123;
        --yellow: 255, 194, 0;
        --gold: rgba(164, 98, 10, 1) 10%, rgba(255, 190, 24, 1) 50%, rgba(238, 173, 21, 1) 60%, rgba(194, 128, 15, 1) 80%, rgba(164, 98, 10, 1) 90%;
        --bgBlue: radial-gradient(circle at center, rgba(0, 227, 255, 0.3) 0%, rgba(0, 227, 255, 0.25) 20%, rgba(0, 227, 255, 0) 75%);
    }

    * {
        box-sizing: border-box;
        font-size: 14px;
        letter-spacing: .04em;
        font-feature-settings: "palt";
    }

    body {
        font-family: "Zen Old Mincho", serif;
        margin: 0;
        max-width: 100vw;
        overflow-x: hidden;
    }

    span {
        font-size: inherit;
        line-height: inherit;
        color: inherit;
    }

    img {
        vertical-align: middle;
    }

    header {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        background: #fff;
        z-index: 100;
    }

    .header-wrap {
        display: flex;
        justify-content: space-between;
        align-items: center;
        height: 60px;
        padding: 6px 10px;
    }

    header .logo {
        max-width: 232px;
        margin: 0;
    }

    .logo a,
    .logo a picture {
        display: block;
        line-height: 1;
    }

    .logo a img {
        width: 100%;
        vertical-align: middle;
    }

    div#hamburger {
        position: absolute;
        top: 0;
        right: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;
        width: 60px;
        height: 60px;
        padding: 10px 15px;
        cursor: pointer;
        transition: 0.3s;
    }

    div#hamburger .inner_line {
        display: block;
        width: 26px;
        height: 3px;
        background: rgb(var(--navy));
        border-radius: 2px;
    }

    .u-active div#hamburger {
        box-shadow: none;
    }

    .btn_cta a {
        display: block;
        max-width: 290px;
        margin: 0 auto;
    }

    .bnr_cta a {
        display: block;
        max-width: 330px;
        margin: 0 auto;
    }

    .btn_cta img,
    .bnr_cta img {
        width: 100%;
        height: auto;
        filter: drop-shadow(0 0 5px rgba(15, 49, 86, .3));
        transform: translateZ(0);
    }

    .hr_gold {
        position: relative;
    }

    .hr_gold::before {
        display: block;
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 100vw;
        height: 4px;
        background-image: linear-gradient(45deg, var(--gold));
    }

    .scroll {
        margin-bottom: 10px;
        line-height: 12px;
        text-align: center;
    }

    .scroll img {
        vertical-align: top;
    }

    .table_wrap {
        overflow-x: scroll;
    }

    .table_wrap table {
        background: #f3f3f3;
        color: rgb(var(--navy));
        border-collapse: collapse;
    }

    table th {
        padding: 20px 15px;
        letter-spacing: 0;
    }

    table td {
        padding: 6px 20px;
        font-family: "Noto Sans JP", sans-serif;
        line-height: 20px;
    }

    table tr:nth-of-type(odd) .table-sticky {
        background: #4b6888;
    }

    table tr:nth-of-type(even) .table-sticky {
        background: #3a597c;
    }

    table th,
    table td {
        border-right: 1px solid #cccccc;
    }

    footer {
        color: rgb(var(--navy));
    }

    footer .wrap {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 30px;
        padding-top: 30px;
    }

    footer p.copyright {
        font-family: "Noto Sans JP", sans-serif;
        padding-bottom: 10px;
        font-size: 12px;
        text-align: center;
        color: #707070;
    }

    .ttl-program {
        gap: 10px;
        padding-left: 10px;
        font-family: "Zen Old Mincho", serif;
        display: inline-flex;
        font-size: 15px;
        line-height: 26px;
        font-weight: bold;
        background: #ffffff;
        border: 1px solid #ffffff;
    }

    .ttl-program span {
        font-size: inherit;
        padding: 0 12px;
    }

    .ttl-program.advanced span {
        background: #cccccc;
    }

    .ttl-program.basic span {
        color: #ffffff;
        background: rgb(var(--navy));
    }

    .txt-bold {
        font-weight: bold !important;
    }

    .txt-justify {
        text-align: left !important;
    }

    .txt-navy {
        display: inline-block;
        margin: 0 .25em;
        padding: 6px 12px;
        background: rgb(var(--navy));
        color: #ffffff;
    }

    .br {
        display: inline-block;
        font-size: inherit;
    }

    .hr_img {
        width: 100%;
        max-width: calc(100vw - 40px);
        margin: 0 auto 40px;
    }

    .hr_img img {
        width: 100%;
        height: auto;
    }
}

@media screen and (max-width: 768px) {
    .header-wrap {
        padding-right: 0;
    }

    div.hamburger div#nav_wrap {
        position: fixed;
        top: 60px;
        left: 0;
        right: 0;
        bottom: 100%;
        width: 100vw;
        padding: 0;
        background: rgba(252, 252, 252, .95);
        font-weight: bold;
        font-size: 14px;
        line-height: 1.25;
        text-align: center;
        overflow: hidden;
        transition: .4s;
        pointer-events: none;
    }

    div.hamburger div#nav_wrap.active {
        bottom: 0;
        z-index: 50;
        pointer-events: all;
    }

    div.hamburger div#hamburger span {
        position: absolute;
        left: 50%;
        translate: -50% -50%;
        transition: 0.6s;
    }

    div.hamburger div#hamburger span:first-of-type {
        top: 22px;
    }

    div.hamburger div#hamburger span:nth-of-type(2) {
        top: 50%;
    }

    div.hamburger div#hamburger span:last-of-type {
        top: 38px;
    }

    div.hamburger div#hamburger span#line1.line_1 {
        top: 50%;
        rotate: 45deg;
    }

    div.hamburger div#hamburger span#line2.line_2 {
        opacity: 0;
    }

    div.hamburger div#hamburger span#line3.line_3 {
        top: 50%;
        rotate: -45deg;
    }

    ul.menu-page li a {
        position: relative;
        display: block;
        padding: min(6.4vw, 24px) 20px;
        font-family: "Noto Sans JP", sans-serif;
        text-align: left;
        border-bottom: 1px solid #cccccc;
    }

    ul.menu-page li a::after {
        position: absolute;
        top: 50%;
        right: min(6.4vw, 24px);
        display: block;
        content: "\f105";
        font-family: "Font Awesome 6 Free";
        color: #cccccc;
        font-size: 12px;
        line-height: 1;
        translate: 0 -50%;
    }

    ul.menu-page li.btn_contact a {
        padding: 0;
        text-align: center;
        border-bottom: none;
    }

    li.btn_contact {
        max-width: 280px;
        margin: 0 auto;
        margin-top: min(8vw, 30px);
    }

    ul.menu-page li.btn_contact a::after {
        display: none;
    }

    ul.menu-page li.btn_contact a img {
        width: 100%;
        height: auto;
    }

    .tab .tab__menu {
        display: flex;
        gap: 12px 16px;
        justify-content: center;
        flex-wrap: wrap;
        margin-bottom: 30px;
    }

    .tab .tab__menu .tab__menu-item {
        flex: 1;
        flex-basis: 33%;
        max-width: calc((100% - 16px) / 2);
        padding: 14px 16px;
        font-size: 18px;
        line-height: 1;
        text-align: center;
        cursor: pointer;
        border: 1px solid #ffffff;
        border-radius: 30px;
        opacity: .3;
        transition: .4s;
    }

    .tab .tab__menu .tab__menu-item.is-active {
        opacity: 1;
    }

    .tab .tab__menu .tab__menu-item.advanced {
        color: rgb(var(--navy));
        background: #cccccc;
    }

    .tab .tab__menu .tab__menu-item.basic {
        color: #ffffff;
        background-color: rgb(var(--navy));
    }

    .tab__panel {
        position: relative;
        width: 100%;
        height: auto;
        aspect-ratio: 16/9;
        overflow: hidden;
    }

    .tab__panel-box {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        border: 0;
        opacity: 0;
        pointer-events: none;
        transition: 1.2s;
    }

    .tab__panel-box.is-show {
        opacity: 1;
        pointer-events: all;
    }

    .pc {
        display: none !important;
    }
}

@media screen and (min-width: 769px) {
    header .logo {
        max-width: 310px;
    }

    .header-wrap {
        gap: min(1.17vw, 16px);
        max-width: 1366px;
        height: 76px;
        margin: 0 auto;
        padding: 0 min(1.46vw, 20px);
    }

    .hamburger {
        flex: 1;
        max-width: 900px;
    }

    ul.menu-page {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        gap: 7px;
        font-family: "Noto Sans JP", sans-serif;
    }

    ul.menu-page li a {
        padding: 7px;
        font-size: min(1.17vw, 16px);
        line-height: 1;
        white-space: nowrap;
    }

    .hr_img {
        width: calc(100vw - 40px);
        max-width: 818px;
        margin: 0 auto 60px;
    }

    .btn_cta a {
        max-width: 450px;
    }

    .bnr_cta a {
        max-width: 900px;
    }

    .table_wrap {
        margin-right: auto;
    }

    .table_wrap table {
        margin-left: auto;
        margin-right: auto;
    }

    table th {}

    table td {
        padding: 20px;
    }

    footer .wrap {
        justify-content: space-between;
        align-items: center;
        max-width: 1180px;
        margin: 0 auto;
        padding: 40px 20px;
    }

    footer p.copyright {
        font-size: 14px;
        color: #707070;
        padding: 0;
    }

    .sp {
        display: none !important;
    }
}

/* 下から */
.fadeUpTrigger {
    opacity: 0;
}

.fadeUp {
    animation-name: fadeUpAnime;
    animation-duration: 1.8s;
    animation-fill-mode: forwards;
}

@keyframes fadeUpAnime {
    from {
        opacity: 0;
        transform: translateY(100px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}