@charset "utf-8";
@media (min-width:1280px),
print {
    .message__box {
        display: flex;
        margin-top: -8px
    }

    .message__boxLeft {
        flex-shrink: 0;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        width: 335px;
        margin-right: 95px
    }

    .message__boxLeft .title {
        margin-bottom: 15px;
        font-size: 3.2rem;
        font-weight: 400;
        line-height: 1.8;
        letter-spacing: .03em
    }

    .message__boxRight {
        width: 100%
    }

    .message__boxRight .txt {
        line-height: 2.6
    }

    .message__boxRight .txt+.txt {
        margin-top: 42px
    }

    .profile__box {
        display: flex
    }

    .profile__photo {
        flex-shrink: 0;
        width: 320px;
        margin-right: 100px
    }

    .profile__photo img {
        width: 100%
    }

    .profile__photo .capt {
        margin-top: 20px;
        font-size: 1.8rem;
        line-height: 1.8;
        letter-spacing: .05em
    }

    .profile__history {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: 4px 0;
        width: 100%
    }

    .profile__history .item {
        display: flex;
        padding: 23px 32px 25px;
        background-color: #fff
    }

    .profile__history .item__year {
        flex-shrink: 0;
        width: 52px;
        margin-right: 34px;
        color: var(--primary-color);
        font-family: var(--font-en);
        font-size: 1.8rem;
        font-weight: 300;
        line-height: 1.6;
        letter-spacing: .03em
    }

    .profile__history .item__content .month-group__ct .page-listDot {
        padding-left: 10px
    }

    .profile__history .item__content .month-group+.month-group {
        margin-top: 3px
    }
}

@media (min-width:768px) and (max-width:1279px) {
    .message__box {
        display: flex;
        margin-top: -.63vw
    }

    .message__boxLeft {
        flex-shrink: 0;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        width: 26.17vw;
        margin-right: 7.42vw
    }

    .message__boxLeft .title {
        margin-bottom: 1.17vw;
        font-size: 2.5vw;
        font-weight: 400;
        line-height: 1.8;
        letter-spacing: .03em
    }

    .message__boxRight {
        width: 100%
    }

    .message__boxRight .txt {
        line-height: 2.6
    }

    .message__boxRight .txt+.txt {
        margin-top: 3.28vw
    }

    .profile__box {
        display: flex
    }

    .profile__photo {
        flex-shrink: 0;
        width: 25vw;
        margin-right: 7.81vw
    }

    .profile__photo img {
        width: 100%
    }

    .profile__photo .capt {
        margin-top: 1.56vw;
        font-size: 1.41vw;
        line-height: 1.8;
        letter-spacing: .05em
    }

    .profile__history {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: .31vw 0;
        width: 100%
    }

    .profile__history .item {
        display: flex;
        padding: 1.8vw 2.5vw 1.95vw;
        background-color: #fff
    }

    .profile__history .item__year {
        flex-shrink: 0;
        width: 4.06vw;
        margin-right: 2.66vw;
        color: var(--primary-color);
        font-family: var(--font-en);
        font-size: 1.41vw;
        font-weight: 300;
        line-height: 1.6;
        letter-spacing: .03em
    }

    .profile__history .item__content .month-group__ct .page-listDot {
        padding-left: .78vw
    }

    .profile__history .item__content .month-group+.month-group {
        margin-top: .23vw
    }
}

@media only screen and (max-width:767px) {
    .message__box {
        margin-top: -2.05vw
    }

    .message__boxLeft {
        margin-bottom: 6.41vw
    }

    .message__boxLeft:last-child {
        margin-bottom: 0
    }

    .message__boxLeft .title {
        margin-bottom: 5.38vw;
        font-size: 6.67vw;
        font-weight: 400;
        line-height: 1.8;
        letter-spacing: .03em
    }

    .message__boxRight {
        width: 100%
    }

    .message__boxRight .txt {
        line-height: 2.6
    }

    .message__boxRight .txt+.txt {
        margin-top: 8.46vw
    }

    .profile__box {
        padding-top: 1.28vw
    }

    .profile__photo {
        width: 67.95vw;
        margin: 0 auto 10.26vw
    }

    .profile__photo img {
        width: 100%
    }

    .profile__photo .capt {
        padding-left: 1.28vw;
        margin-top: 6.15vw;
        font-size: 4.1vw;
        line-height: 1.8;
        letter-spacing: .05em
    }

    .profile__history {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: 1.03vw 0;
        width: 100%
    }

    .profile__history .item {
        padding: 4.1vw 6.15vw 3.85vw;
        background-color: #fff
    }

    .profile__history .item__year {
        margin-bottom: 2.05vw;
        color: var(--primary-color);
        font-family: var(--font-en);
        font-size: 4.62vw;
        font-weight: 300;
        line-height: 1.6;
        letter-spacing: .03em
    }

    .profile__history .item__content .month-group__ct .page-listDot {
        padding-left: 2.05vw
    }

    .profile__history .item__content .month-group+.month-group {
        margin-top: 5.13vw
    }
}

@media (min-width:1280px),
print {
    .txt-ttl {
        font-size: 20px;
        font-weight: 600;
    }

    .tt {
        line-height: 2.6;
    }

    .features {
        background: #ebebeb;
        padding: 137px 0 140px
    }

    .features .top-title {
        text-align: center
    }

    .features .top-sub {
        text-align: center
    }

    .features__list {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: 24px;
        margin-top: 42px;
        counter-reset: number
    }

    .features__item {
        display: flex;
        background: #fff;
        min-height: 240px
    }

    .features-info {
        width: 240px;
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        border-right: 1px solid rgba(51, 51, 51, .1)
    }

    .features-info__img {
        width: 100px;
        height: 100px
    }

    .features-info__caption {
        font-family: var(--font-en);
        font-weight: 400;
        font-size: 1.2rem;
        line-height: 1.2;
        letter-spacing: .05em;
        margin-top: 14px
    }

    .features-content {
        flex: 1;
        padding: 58px 40px 53px
    }

    .features-content__title {
        font-weight: 500;
        font-size: 2rem;
        line-height: 1.8;
        letter-spacing: .05em;
        margin-bottom: 21px
    }

    .features-content__title:before {
        counter-increment: number;
        content: counter(number, decimal-leading-zero);
        font-family: var(--font-en);
        font-weight: 400;
        font-size: 1.2rem;
        line-height: 1.2;
        letter-spacing: .05em;
        color: var(--primary-color);
        display: block
    }
}

@media (min-width:768px) and (max-width:1279px) {
    .txt-ttl {
        font-size: 20px;
        font-weight: 600;
    }

    .features {
        background: #ebebeb;
        padding: 10.7vw 0 10.94vw
    }

    .features .top-title {
        text-align: center
    }

    .features .top-sub {
        text-align: center
    }

    .features__list {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: 1.88vw;
        margin-top: 7.19vw;
        counter-reset: number
    }

    .features__item {
        display: flex;
        background: #fff;
        min-height: 18.75vw
    }

    .features-info {
        width: 18.75vw;
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        border-right: 1px solid rgba(51, 51, 51, .1)
    }

    .features-info__img {
        width: 7.81vw;
        height: 7.81vw
    }

    .features-info__caption {
        font-family: var(--font-en);
        font-weight: 400;
        font-size: .94vw;
        line-height: 1.2;
        letter-spacing: .05em;
        margin-top: 1.09vw
    }

    .features-content {
        flex: 1;
        padding: 4.53vw 3.13vw 4.14vw
    }

    .features-content__title {
        font-weight: 500;
        font-size: 1.56vw;
        line-height: 1.8;
        letter-spacing: .05em;
        margin-bottom: 1.64vw
    }

    .features-content__title:before {
        counter-increment: number;
        content: counter(number, decimal-leading-zero);
        font-family: var(--font-en);
        font-weight: 400;
        font-size: .94vw;
        line-height: 1.2;
        letter-spacing: .05em;
        color: var(--primary-color);
        display: block
    }

}

@media only screen and (max-width:767px) {
    .message__boxRight .txt.txt-ttl {
        font-size: 17px;
        font-weight: 600;
        line-height: 2;
    }

    .tt {
        line-height: 2.6;
    }

    .features {
        background: #ebebeb;
        padding: 20vw 0 20.77vw
    }

    .features .top-title {
        text-align: center
    }

    .features__list {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: 5.13vw;
        margin-top: 14.62vw;
        counter-reset: number
    }

    .features__item {
        background: #fff;
        position: relative
    }

    .features-info {
        position: absolute;
        top: 6.15vw;
        left: 5.13vw;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column
    }

    .features-info__img {
        width: 25.64vw;
        height: 25.64vw
    }

    .features-info__caption {
        font-family: var(--font-en);
        font-weight: 400;
        font-size: 3.08vw;
        line-height: 1.2;
        letter-spacing: .05em;
        margin-top: 3.59vw
    }

    .features-content__title {
        font-weight: 500;
        font-size: 4.62vw;
        line-height: 1.6;
        letter-spacing: .05em;
        padding: 9.23vw 5.13vw 8.46vw 35.9vw;
        border-bottom: 1px solid rgba(51, 51, 51, .1);
        display: flex;
        align-items: center;
        height: 158px;
    }

    .features-content__title span {
        position: relative;
        display: block
    }

    .features-content__title span:before {
        content: attr(data-text);
        font-family: var(--font-en);
        font-weight: 400;
        font-size: 3.08vw;
        line-height: 1.2;
        letter-spacing: .05em;
        color: #333;
        display: block;
        margin-bottom: 1.79vw;
        padding-left: 5.64vw
    }

    .features-content__title span:after {
        counter-increment: number;
        content: counter(number, decimal-leading-zero);
        font-family: var(--font-en);
        font-weight: 400;
        font-size: 3.08vw;
        line-height: 1.2;
        letter-spacing: .05em;
        color: var(--primary-color);
        display: block;
        position: absolute;
        top: 0;
        left: 0
    }

    .features-content__txt {
        padding: 7.69vw 5.13vw 8.46vw
    }
}

@media (min-width: 1280px),
print {
    .group {
        padding: 0 40px min(9.2259577795vw, 118px);
    }
}

.book {
    background: #f4f4f4;
}

.c-program {
    margin-top: 1.5em;
}