@charset "utf-8";
@media (min-width:1440px) {
    .block-overview {
        padding: 102px 0 120px
    }

    .c-ttl2 {
        margin-bottom: 48px;
        gap: 11px
    }

    .c-ttl2__en {
        font-size: 7.2rem
    }

    .overview-box {
        padding-left: 273px
    }

    .overview-box .dl {
        display: flex;
        gap: 0 24px
    }

    .overview-box .dl:last-child .dt,
    .overview-box .dl:last-child .dd {
        border-bottom: 1px solid rgba(0, 0, 0, .2)
    }

    .overview-box .dl .dt,
    .overview-box .dl .dd {
        border-top: 1px solid rgba(0, 0, 0, .2);
        padding: 30px 24px 30px 8px
    }

    .overview-box .dl .dt {
        width: 180px;
        flex-shrink: 0;
        font-weight: 600;
        font-size: 1.8rem;
        line-height: 1.4;
        letter-spacing: .2em;
        color: var(--primary-color);
        display: flex;
        align-items: center
    }

    .overview-box .dl .dd {
        flex: 1;
        font-weight: 500;
        letter-spacing: .1em
    }

    .overview-box .dl .dd .address-box {
        margin-bottom: 10px
    }

    .overview-box .dl .dd .address-box .catch {
        font-weight: 600;
        font-size: 1.8rem;
        letter-spacing: .2em
    }

    .overview-box .dl .dd .address-box .image {
        margin-top: 13px
    }

    .overview-box .dl .dd .address-box+.address-box {
        padding-top: 28px;
        margin-top: 40px;
        border-top: 1px solid rgba(0, 0, 0, .2)
    }

    .block-history {
        background-color: var(--foreign-color);
        padding: 102px 0 115px
    }

    .block-history .c-ttl2 {
        margin-bottom: 42px
    }

    .history-box {
        padding-left: 273px
    }

    .schedule-item {
        display: flex
    }

    .schedule-item .year {
        font-family: var(--font-rob);
        font-weight: 300;
        font-style: italic;
        font-size: 4rem;
        line-height: 1;
        letter-spacing: .05em;
        color: var(--primary-color);
        width: 140px;
        flex-shrink: 0
    }

    .schedule-item .text {
        flex: 1;
        padding-left: 58px;
        padding-top: 5px;
        position: relative;
        font-weight: 500;
        letter-spacing: .12em
    }

    .schedule-item .text:before {
        content: "";
        position: absolute;
        top: 14px;
        left: 0;
        width: 11px;
        height: 11px;
        border-radius: 50%;
        background-color: var(--primary-color)
    }

    .schedule-item .txt-image {
        display: flex;
        gap: 24px;
        margin-bottom: 3px
    }

    .schedule-item .txt-image .txt {
        flex: 1
    }

    .schedule-item .txt-image .image {
        width: 240px;
        flex-shrink: 0
    }

    .schedule-item:not(:last-child) .text {
        padding-bottom: 47px
    }

    .schedule-item:not(:last-child) .text:after {
        content: "";
        position: absolute;
        top: 18px;
        left: 5px;
        width: 1px;
        height: 100%;
        background-color: rgba(0, 103, 178, .3)
    }

    .block-certificate {
        padding: 102px 0
    }

    .block-certificate .c-ttl2 {
        margin-bottom: 38px
    }

    .block-certificate .c-ttl2 .notes {
        font-weight: 500;
        font-size: 1.4rem;
        letter-spacing: .2em;
        margin-left: 12px
    }

    .certificate-box {
        padding-left: 273px
    }

    .certificate-box .type-person {
        display: flex;
        gap: 24px;
        font-weight: 500
    }

    .certificate-box .type-person .type {
        width: 258px;
        color: var(--primary-color)
    }

    .certificate-box .type-person .person {
        flex: 1
    }

    .certificate-box .type-person .ttl {
        font-weight: 600;
        font-size: 1.8rem;
        letter-spacing: .2em;
        border-bottom: 2px solid #0067b2;
        padding: 0 0 10px
    }

    .certificate-box .type-person p {
        border-bottom: 1px solid rgba(0, 0, 0, .2);
        padding: 30px 8px
    }

    .block-access {
        padding-bottom: 120px
    }

    .block-access .c-ttl2 {
        margin-bottom: 26px
    }

    .access-box {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 40px
    }

    .access-box .access-item {
        font-weight: 500;
        line-height: 1.6
    }

    .access-box .c-ttl3 {
        margin-bottom: 2px
    }

    .access-box .frame-box {
        margin-top: 7px
    }

    .access-box .frame-box iframe {
        display: block;
        width: 100%;
        height: 350px
    }

    .block-group {
        background-color: var(--primary-color);
        color: #fff;
        padding: 102px 0 120px
    }

    .block-group .c-ttl2__en {
        color: #fff
    }

    .group-box {
        display: grid;
        grid-template-columns: max-content 1fr;
        gap: 20px;
        align-items: center;
    }

    .group-left img {
        height: 200px;
        max-width: 100%;
        display: block;
    }

    .group-box .group-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 32px
    }

    .group-box .c-btn {
        border-radius: 16px;
        border-color: #fff;
        font-size: 2rem;
        height: 79px;
        justify-content: space-between;
        padding: 4px 24px 0
    }

    .group-box .c-btn:after {
        margin-bottom: 0
    }

    @media (hover:hover) {
        .group-box .c-btn:hover {
            background-color: #fff !important;
            color: var(--primary-color) !important
        }
    }
}

@media (min-width:768px) and (max-width:1439px) {
    .block-overview {
        padding: 7.08vw 0 8.33vw
    }

    .c-ttl2 {
        margin-bottom: 3.33vw;
        gap: .76vw
    }

    .c-ttl2__en {
        font-size: 5vw
    }

    .overview-box {
        padding-left: 18.96vw
    }

    .overview-box .dl {
        display: flex;
        gap: 0 1.67vw
    }

    .overview-box .dl:last-child .dt,
    .overview-box .dl:last-child .dd {
        border-bottom: 1px solid rgba(0, 0, 0, .2)
    }

    .overview-box .dl .dt,
    .overview-box .dl .dd {
        border-top: 1px solid rgba(0, 0, 0, .2);
        padding: 2.08vw 1.67vw 2.08vw .56vw
    }

    .overview-box .dl .dt {
        width: 12.5vw;
        flex-shrink: 0;
        font-weight: 600;
        font-size: 1.25vw;
        line-height: 1.4;
        letter-spacing: .2em;
        color: var(--primary-color);
        display: flex;
        align-items: center
    }

    .overview-box .dl .dd {
        flex: 1;
        font-weight: 500;
        letter-spacing: .1em
    }

    .overview-box .dl .dd .address-box {
        margin-bottom: .69vw
    }

    .overview-box .dl .dd .address-box .catch {
        font-weight: 600;
        font-size: 1.25vw;
        letter-spacing: .2em
    }

    .overview-box .dl .dd .address-box .image {
        margin-top: .9vw
    }

    .overview-box .dl .dd .address-box+.address-box {
        padding-top: 1.94vw;
        margin-top: 2.78vw;
        border-top: 1px solid rgba(0, 0, 0, .2)
    }

    .block-history {
        background-color: var(--foreign-color);
        padding: 7.08vw 0 7.99vw
    }

    .block-history .c-ttl2 {
        margin-bottom: 2.92vw
    }

    .history-box {
        padding-left: 18.96vw
    }

    .schedule-item {
        display: flex
    }

    .schedule-item .year {
        font-family: var(--font-rob);
        font-weight: 300;
        font-style: italic;
        font-size: 2.78vw;
        line-height: 1;
        letter-spacing: .05em;
        color: var(--primary-color);
        width: 9.72vw;
        flex-shrink: 0
    }

    .schedule-item .text {
        flex: 1;
        padding-left: 4.03vw;
        padding-top: .35vw;
        position: relative;
        font-weight: 500;
        letter-spacing: .12em
    }

    .schedule-item .text:before {
        content: "";
        position: absolute;
        top: .97vw;
        left: 0;
        width: .76vw;
        height: .76vw;
        border-radius: 50%;
        background-color: var(--primary-color)
    }

    .schedule-item .txt-image {
        display: flex;
        gap: 1.67vw;
        margin-bottom: .21vw
    }

    .schedule-item .txt-image .txt {
        flex: 1
    }

    .schedule-item .txt-image .image {
        width: 16.67vw;
        flex-shrink: 0
    }

    .schedule-item:not(:last-child) .text {
        padding-bottom: 3.26vw
    }

    .schedule-item:not(:last-child) .text:after {
        content: "";
        position: absolute;
        top: 1.25vw;
        left: .35vw;
        width: 1px;
        height: 100%;
        background-color: rgba(0, 103, 178, .3)
    }

    .block-certificate {
        padding: 7.08vw 0
    }

    .block-certificate .c-ttl2 {
        margin-bottom: 2.64vw
    }

    .block-certificate .c-ttl2 .notes {
        font-weight: 500;
        font-size: .97vw;
        letter-spacing: .2em;
        margin-left: .83vw
    }

    .certificate-box {
        padding-left: 18.96vw
    }

    .certificate-box .type-person {
        display: flex;
        gap: 1.67vw;
        font-weight: 500
    }

    .certificate-box .type-person .type {
        width: 17.92vw;
        color: var(--primary-color)
    }

    .certificate-box .type-person .person {
        flex: 1
    }

    .certificate-box .type-person .ttl {
        font-weight: 600;
        font-size: 1.25vw;
        letter-spacing: .2em;
        border-bottom: .14vw solid #0067b2;
        padding: 0 0 .69vw
    }

    .certificate-box .type-person p {
        border-bottom: 1px solid rgba(0, 0, 0, .2);
        padding: 2.08vw .56vw
    }

    .block-access {
        padding-bottom: 8.33vw
    }

    .block-access .c-ttl2 {
        margin-bottom: 1.81vw
    }

    .access-box {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 2.78vw
    }

    .access-box .access-item {
        font-weight: 500;
        line-height: 1.6
    }

    .access-box .c-ttl3 {
        margin-bottom: .14vw
    }

    .access-box .frame-box {
        margin-top: .49vw
    }

    .access-box .frame-box iframe {
        display: block;
        width: 100%;
        height: 24.31vw
    }

    .block-group {
        background-color: var(--primary-color);
        color: #fff;
        padding: 7.08vw 0 8.33vw
    }

    .block-group .c-ttl2__en {
        color: #fff
    }

    .group-box {
        padding-left: 18.4vw
    }

    .group-box .group-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 2.22vw
    }

    .group-box .c-btn {
        border-radius: 1.11vw;
        border-color: #fff;
        font-size: 1.39vw;
        height: 5.49vw;
        justify-content: space-between;
        padding: .28vw 1.67vw 0
    }

    .group-box .c-btn:after {
        margin-bottom: 0
    }

    @media (hover:hover) {
        .group-box .c-btn:hover {
            background-color: #fff !important;
            color: var(--primary-color) !important
        }
    }
}

@media (max-width:767px) {
    .block-overview {
        padding: 12.05vw 0 14.36vw
    }

    .c-ttl2 {
        margin-bottom: 12.82vw
    }

    .overview-box .dl {
        border-top: 1px solid rgba(0, 0, 0, .2);
        padding: 6.92vw 2.05vw 5.64vw
    }

    .overview-box .dl:last-child {
        border-bottom: 1px solid rgba(0, 0, 0, .2)
    }

    .overview-box .dl .dt {
        font-weight: 600;
        font-size: 3.85vw;
        line-height: 1.4;
        letter-spacing: .2em;
        color: var(--primary-color);
        margin-bottom: 3.59vw
    }

    .overview-box .dl .dd {
        font-weight: 500;
        letter-spacing: .1em
    }

    .overview-box .dl .dd .address-box {
        margin-bottom: 2.56vw
    }

    .overview-box .dl .dd .address-box .catch {
        font-weight: 600;
        font-size: 3.85vw;
        letter-spacing: .2em
    }

    .overview-box .dl .dd .address-box .image {
        margin-top: 2.56vw
    }

    .overview-box .dl .dd .address-box+.address-box {
        padding-top: 5.64vw;
        margin-top: 8.21vw;
        border-top: 1px solid rgba(0, 0, 0, .2)
    }

    .block-history {
        background-color: var(--foreign-color);
        padding: 12.05vw 0 14.36vw
    }

    .block-history .c-ttl2 {
        margin-bottom: 12.31vw
    }

    .schedule-item {
        display: flex
    }

    .schedule-item .year {
        font-family: var(--font-rob);
        font-weight: 300;
        font-style: italic;
        font-size: 6.41vw;
        line-height: 1;
        letter-spacing: .05em;
        color: var(--primary-color);
        width: 17.95vw;
        flex-shrink: 0
    }

    .schedule-item .text {
        flex: 1;
        padding-left: 4.62vw;
        padding-top: .51vw;
        position: relative;
        font-weight: 500;
        letter-spacing: .12em
    }

    .schedule-item .text:before {
        content: "";
        position: absolute;
        top: 2.31vw;
        left: 0;
        width: 1.79vw;
        height: 1.79vw;
        border-radius: 50%;
        background-color: var(--primary-color)
    }

    .schedule-item .txt-image {
        margin-bottom: .77vw
    }

    .schedule-item .txt-image .image {
        width: 67.18vw;
        margin-top: 3.85vw
    }

    .schedule-item:not(:last-child) .text {
        padding-bottom: 8.46vw
    }

    .schedule-item:not(:last-child) .text:after {
        content: "";
        position: absolute;
        top: 3.85vw;
        left: .77vw;
        width: 1px;
        height: 100%;
        background-color: rgba(0, 103, 178, .3)
    }

    .block-certificate {
        padding: 12.05vw 0
    }

    .block-certificate .c-ttl2 {
        margin-bottom: 10.77vw
    }

    .block-certificate .c-ttl2 .notes {
        font-weight: 500;
        font-size: 3.08vw;
        letter-spacing: .2em;
        margin-left: 1.03vw
    }

    .certificate-box .type-person {
        display: flex;
        gap: 4.1vw;
        font-weight: 500
    }

    .certificate-box .type-person .type {
        width: 48.72vw;
        color: var(--primary-color)
    }

    .certificate-box .type-person .person {
        flex: 1
    }

    .certificate-box .type-person .ttl {
        font-weight: 600;
        font-size: 3.85vw;
        letter-spacing: .2em;
        border-bottom: .51vw solid #0067b2;
        padding: 0 0 3.33vw
    }

    .certificate-box .type-person p {
        border-bottom: 1px solid rgba(0, 0, 0, .2);
        padding: 5.9vw 1.03vw 5.64vw;
        letter-spacing: .1em
    }

    .block-access {
        padding-bottom: 14.36vw
    }

    .block-access .c-ttl2 {
        margin-bottom: 11.79vw
    }

    .access-box .access-item {
        font-weight: 500;
        line-height: 1.6
    }

    .access-box .access-item+.access-item {
        margin-top: 13.33vw
    }

    .access-box .c-ttl3 {
        margin-bottom: 1.03vw
    }

    .access-box .frame-box {
        margin-top: 2.31vw
    }

    .access-box .frame-box iframe {
        display: block;
        width: 100%;
        height: 57.18vw
    }

    .block-group {
        background-color: var(--primary-color);
        color: #fff;
        padding: 12.05vw 0 14.36vw
    }

    .block-group .c-ttl2__en {
        color: #fff
    }

    .group-box .group-item+.group-item {
        margin-top: 7.18vw
    }

    .group-box .c-btn {
        border-radius: 2.56vw;
        border-color: #fff;
        width: 76.92vw;
        justify-content: space-between
    }
}