@import url(https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap);


@media screen and (max-width:767px) {
    .pc {
        display: none !important
    }
}

@media screen and (min-width:768px) {
    .sp {
        display: none !important
    }
}

.l-container-contents{
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
}

.l-container-contents img{
    width: auto
}

.stem-container-wrapper {
    background: #02000d
}

.stem-container {
    max-width: 1366px;
    margin-left: auto;
    margin-right: auto;
    position: relative
}

@media screen and (min-width:768px) {
    .stem-container {
       padding: 0 20px;
    }
}

.stem-container::before {
    content: '';
    display: block;
    width: 100%;
    height: 840px;
    position: absolute;
    left: 0;
    top: 0;
    opacity: .6;
    background: url(../../../images/product-detail/episteme/stem/stemscience-top-mask.png) no-repeat center/cover
}

@media screen and (max-width:767px) {
    .stem-container::before {
        height: 400px;
        background: url(../../../images/product-detail/episteme/stem/stemscience-top-mask.sp.png) no-repeat center/cover
    }
}

.stem-container::after {
    content: '';
    display: block;
    width: 100%;
    height: 840px;
    position: absolute;
    left: 0;
    bottom: 0;
    opacity: .6;
    background: url(../../../images/product-detail/episteme/stem/stemscience-bottom-mask.png) no-repeat center/cover;
    z-index: 0
}

@media screen and (max-width:767px) {
    .stem-container::after {
        height: 400px;
        background: url(../../../images/product-detail/episteme/stem/stemscience-bottom-mask.sp.png) no-repeat center/cover
    }
}

.stem-container .column01 {
    padding-top: 120px;
    padding-bottom: 100px;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    
}

@media screen and (max-width:767px) {
    .stem-container .column01 {
        padding-top: 30px;
        padding-bottom: 10px
    }
}

.stem-container .column01 .title {
    text-align: center;
    font-size: 32px;
    color: #fff
}

@media screen and (max-width:767px) {
    .stem-container .column01 .title {
        font-size: 22px
    }
}

.stem-container .column01 .image {
    margin-top: 60px;
    display: flex;
    justify-content: center
}

@media screen and (max-width:767px) {
    .stem-container .column01 .image {
        margin-top: 40px
    }
}

.stem-container .column01 .intro-text {
    text-align: center;
    font-size: 15px;
    color: #fff;
    margin-top: 60px
}

@media screen and (max-width:767px) {
    .stem-container .column01 .intro-text {
        font-size: 14px;
        line-height: calc(2);
        margin-top: 30px
    }
}

.stem-container .column02 {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    
}

@media screen and (min-width:768px) {
    .stem-container .column02 {
        padding-bottom: 80px
    }
}

.stem-container .column02 .features-heading {
    font-weight: 700;
    font-size: 24px;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    width: 650px;
    height: 175px;
    background: url(../../../images/product-detail/episteme/stem/features.png) no-repeat center/cover;
    margin-left: auto;
    margin-right: auto;
    position: relative
}

@media screen and (max-width:767px) {
    .stem-container .column02 .features-heading {
        font-size: 15px;
        width: 100%;
        max-width: 362px;
        height: 98px;
        background-image: url(../../../images/product-detail/episteme/stem/features.sp.png)
    }
}

.stem-container .column02 .features-heading .bar {
    display: block;
    width: 1px;
    height: 40px;
    background-color: #fff;
    margin-top: 15px;
    opacity: .8
}

@media screen and (max-width:767px) {
    .stem-container .column02 .features-heading .bar {
        height: 26px;
        margin-top: 10px
    }
}

.stem-container .column02 .text01 {
    display: flex;
    justify-content: center;
    margin-top: 20px;
    font-size: 32px;
    color: #fff;
    text-align: center
}

@media screen and (max-width:767px) {
    .stem-container .column02 .text01 {
        font-size: 22px
    }
}

@media screen and (min-width:768px) {
    .stem-container .column02 .flex-wrapper {
        display: flex;
        justify-content: center;
        margin-top: 20px
    }
}

@media screen and (max-width:767px) {
    .stem-container .column02 .flex-wrapper {
        max-width: 335px;
        margin-left: auto;
        margin-right: auto
    }
}

.stem-container .column02 .flex-wrapper img{
    width: 100%;
}

@media screen and (min-width:768px) {
    .stem-container .column02 .flex-wrapper .block {
        width: 320px
    }

    .stem-container .column02 .flex-wrapper .block p {
        text-align: center;
        font-size: 14px;
        color: #fff
    }
}

@media screen and (max-width:767px) {
    .stem-container .column02 .flex-wrapper .block01 {
        max-width: 180px
    }

    .stem-container .column02 .flex-wrapper .block01 p {
        text-align: center;
        font-size: 11px;
        color: #fff
    }
}

@media screen and (max-width:767px) {
    .stem-container .column02 .flex-wrapper .block02 {
        max-width: 195px;
        display: flex;
        flex-direction: column;
        align-items: center;
        margin-left: auto
    }

    .stem-container .column02 .flex-wrapper .block02 .image02 {
        max-width: 180px
    }

    .stem-container .column02 .flex-wrapper .block02 p {
        text-align: center;
        font-size: 11px;
        color: #fff
    }
}


@media screen and (max-width:767px) {
    .stem-container .column02 .flex-wrapper .block03 {
        max-width: 195px
    }

    .stem-container .column02 .flex-wrapper .block03 p {
        text-align: center;
        font-size: 11px;
        color: #fff
    }
}


.stem-container .column03 {
    padding-top: 110px;
    padding-bottom: 120px;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    z-index: 1
}

@media screen and (max-width:767px) {
    .stem-container .column03 {
        padding-top: 70px;
        padding-bottom: 60px
    }
}

.stem-container .column03 .heading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff
}

.stem-container .column03 .heading .top {
    font-size: 32px
}

@media screen and (max-width:767px) {
    .stem-container .column03 .heading .top {
        font-size: 22px
    }
}

.stem-container .column03 .heading .bottom {
    font-size: 18px
}

@media screen and (max-width:767px) {
    .stem-container .column03 .heading .bottom {
        font-size: 14px
    }
}

.stem-container .column03 .intro-text {
    font-weight: 700;
    font-size: 18px;
    text-align: center;
    color: #fff;
    margin-top: 30px
}

@media screen and (max-width:767px) {
    .stem-container .column03 .intro-text {
        font-size: 16px
    }
}

.stem-container .column03 .image {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 25px
}

.stem-container .column03 .image img{
    width: 100%;
}

@media screen and (max-width:767px) {
    .stem-container .column03 .image {
        margin-top: 20px;
        padding-left: calc(20 / 375 * 100%);
        padding-right: calc(20 / 375 * 100%)
    }
}

.stem-container .column03 .note {
    color: #fff;
    margin-top: 40px
}

@media screen and (min-width:768px) {
    .stem-container .column03 .note {
        margin-left: auto;
        margin-right: auto;
        font-size: 12px
    }
}

@media screen and (max-width:767px) {
    .stem-container .column03 .note {
        font-size: 10px;
        padding-left: calc(20 / 375 * 100%);
        padding-right: calc(20 / 375 * 100%)
    }
}

.stem-container .column03 .note p:not(:first-of-type) {
    margin-top: 1em
}

@media screen and (min-width:768px) {
    .ch-top .mv {
        width: 100%;
        background: #27124d url(../img/ch/top/mv.jpg) no-repeat center;
        background-size: 1366px
    }
}

@media screen and (max-width:767px) {
    .ch-top .mv {
        position: relative;
        padding-top: 40px;
        background: url(../img/ch/top/mv.sp.jpg) no-repeat center/cover
    }
}

@media screen and (min-width:768px) {
    .ch-top .mv .inner {
        max-width: 1000px;
        margin-left: auto;
        margin-right: auto;
        display: flex;
        justify-content: flex-end;
        align-items: center;
        height: 570px
    }
}

@media screen and (max-width:767px) {
    .ch-top .mv .inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        height: 460px
    }
}

.ch-top .mv .inner .mv-heading {
    font-size: 38px;
    color: #fff;
    display: flex;
    align-items: center
}

@media screen and (max-width:767px) {
    .ch-top .mv .inner .mv-heading {
        justify-content: center;
        font-size: 22px
    }
}

.ch-top .mv .inner .mv-heading picture {
    margin-left: 10px
}

.ch-top .mv .inner .border {
    width: 400px;
    height: 1px;
    background: url(../img/ch/top/border.png) no-repeat center/cover;
    margin-top: 15px;
    margin-bottom: 30px
}

@media screen and (max-width:767px) {
    .ch-top .mv .inner .border {
        width: 295px;
        margin-bottom: 20px
    }
}

.ch-top .mv .inner .text {
    color: #fff;
    text-align: center
}

@media screen and (min-width:768px) {
    .ch-top .mv .inner .text {
        font-size: 20px;
        line-height: calc(34 / 20)
    }
}

@media screen and (max-width:767px) {
    .ch-top .mv .inner .text {
        font-size: 14px;
        line-height: calc(23 /14)
    }
}

@media screen and (min-width:768px) {
    .ch-top .top-inner-care .visual-bg {
        background: #14034e
    }
}

@media screen and (min-width:768px) {
    .ch-top .top-inner-care .visual-image {
        max-width: 1366px;
        margin-left: auto;
        margin-right: auto;
        height: 500px;
        background: url(../img/ch/top/inner.png) no-repeat center/cover;
        display: flex;
        align-items: center
    }
}

@media screen and (max-width:767px) {
    .ch-top .top-inner-care .visual-image::before {
        content: '';
        display: block;
        width: 100%;
        padding-top: calc(200 / 375 * 100%);
        background: url(../img/ch/top/inner.sp.png) no-repeat center/cover
    }
}

@media screen and (min-width:768px) {
    .ch-top .top-stem .visual-bg {
        background: #000
    }
}

@media screen and (min-width:768px) {
    .ch-top .top-stem .visual-image {
        max-width: 1366px;
        margin-left: auto;
        margin-right: auto;
        height: 500px;
        background: url(../img/ch/top/stem.png) no-repeat center/cover;
        display: flex;
        align-items: center
    }
}

@media screen and (max-width:767px) {
    .ch-top .top-stem .visual-image::before {
        content: '';
        display: block;
        width: 100%;
        padding-top: calc(200 / 375 * 100%);
        background: url(../img/ch/top/stem.sp.png) no-repeat center/cover
    }
}

@media screen and (min-width:768px) {
    .ch-top .top-cli .visual-bg {
        background: linear-gradient(-90deg, #5e5d5d 0, #aaa 100%)
    }
}

@media screen and (min-width:768px) {
    .ch-top .top-cli .visual-image {
        max-width: 1366px;
        margin-left: auto;
        margin-right: auto;
        height: 500px;
        background: url(../img/ch/top/cli.png) no-repeat center/cover;
        display: flex;
        align-items: center
    }
}

@media screen and (max-width:767px) {
    .ch-top .top-cli .visual-image::before {
        content: '';
        display: block;
        width: 100%;
        padding-top: calc(200 / 375 * 100%);
        background: url(../img/ch/top/cli.sp.png) no-repeat center/cover
    }
}

@media screen and (max-width:767px) {
    .counseling-page .container-header-title {
        background: url(../img/common/blue_pt.sp.png), linear-gradient(#382f77 0, #271262 100%);
        background-size: cover;
        color: #fff
    }
}

@media screen and (min-width:768px) {
    .counseling-page .container-header-title {
        background: url(../img/common/blue_pt.sp.png), linear-gradient(#382f77 0, #271262 100%);
        background-size: cover;
        color: #fff
    }
}

.counseling-page .intro {
    position: relative;
    padding-top: 80px;
    padding-bottom: 80px
}

@media screen and (max-width:767px) {
    .counseling-page .intro {
        padding-top: 40px;
        padding-bottom: 60px
    }
}

.counseling-page .intro::before {
    content: '';
    display: block;
    width: 780px;
    height: 584px;
    background: url(../img/counseling/shape.png) no-repeat center/cover;
    position: absolute;
    right: 0;
    top: 0
}

@media screen and (max-width:767px) {
    .counseling-page .intro::before {
        width: 100%;
        height: 200px;
        background: url(../img/counseling/shape.sp.png) no-repeat center/cover
    }
}

.counseling-page .intro .inner {
    position: relative;
    
}

@media screen and (max-width:767px) {
    .counseling-page .intro .inner {
        padding-left: calc(20 / 375 * 100%);
        padding-right: calc(20 / 375 * 100%)
    }
}

.counseling-page .intro .inner > .text {
    text-align: center
}

.counseling-page .intro .inner > .text:not(:first-of-type) {
    margin-top: 30px
}

.counseling-page .intro .inner .heading {
    font-size: 20px;
    text-align: center;
    margin-top: 30px
}

@media screen and (max-width:767px) {
    .counseling-page .intro .inner .heading {
        font-size: 16px
    }
}

.counseling-page .intro .inner .anchor-list {
    display: flex;
    justify-content: center;
    margin-top: 60px
}

@media screen and (max-width:767px) {
    .counseling-page .intro .inner .anchor-list {
        margin-top: 40px
    }
}

.counseling-page .intro .inner .anchor-list .item {
    position: relative;
    box-shadow: 0 8px 20px rgba(23, 23, 30, .1);
    border-radius: 4px;
    background: #fff;
    cursor: pointer
}

@media screen and (min-width:768px) {
    .counseling-page .intro .inner .anchor-list .item {
        width: 440px;
        padding-top: 30px;
        padding-bottom: 55px;
        padding-left: 75px;
        padding-right: 75px
    }

    .counseling-page .intro .inner .anchor-list .item:not(:first-of-type) {
        margin-left: 40px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .intro .inner .anchor-list .item {
        width: calc(162 / 335 * 100%);
        padding-top: 6px;
        padding-bottom: 30px;
        padding-left: calc(7 / 335 * 100%);
        padding-right: calc(7 / 335 * 100%)
    }

    .counseling-page .intro .inner .anchor-list .item:not(:first-of-type) {
        margin-left: calc(11 / 335 * 100%)
    }
}

.counseling-page .intro .inner .anchor-list .item .title {
    font-weight: 700;
    font-size: 17px;
    text-align: center;
    margin-top: 20px
}

@media screen and (max-width:767px) {
    .counseling-page .intro .inner .anchor-list .item .title {
        font-size: 13px;
        line-height: calc(18 / 13);
        margin-top: 10px
    }
}

.counseling-page .intro .inner .anchor-list .item .text {
    margin-top: 10px;
    font-size: 13px;
    text-align: center
}

@media screen and (max-width:767px) {
    .counseling-page .intro .inner .anchor-list .item .text {
        display: none
    }
}

.counseling-page .intro .inner .anchor-list .item .icon-arrow {
    display: block;
    transform: rotate(180deg);
    width: 24px;
    height: 24px;
    font-size: 24px;
    position: absolute;
    right: 0;
    left: 0;
    bottom: 15px;
    margin: auto;
    color: #453d7d
}

@media screen and (max-width:767px) {
    .counseling-page .intro .inner .anchor-list .item .icon-arrow {
        width: 18px;
        height: 18px;
        font-size: 18px;
        bottom: 6px
    }
}

.counseling-page .shop-counseling {
    background: #fff;
    filter: drop-shadow(0px 8px 20px rgba(23, 23, 30, .1));
    margin-bottom: 40px
}

@media screen and (min-width:768px) {
    .counseling-page .shop-counseling {
        padding-top: 100px;
        padding-bottom: 100px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .shop-counseling {
        padding-top: 60px
    }
}

.counseling-page .shop-counseling .heading {
    font-size: 30px;
    text-align: center;
    position: relative;
    padding-bottom: 20px
}

@media screen and (max-width:767px) {
    .counseling-page .shop-counseling .heading {
        font-size: 24px
    }
}

.counseling-page .shop-counseling .heading::before {
    content: '';
    display: block;
    width: 42px;
    height: 1px;
    background: #453d7d;
    position: absolute;
    right: 0;
    left: 0;
    bottom: 0;
    margin: auto
}

@media screen and (min-width:768px) {
    .counseling-page .shop-counseling .intro-text {
        text-align: center;
        margin-top: 40px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .shop-counseling .intro-text {
        margin-top: 30px;
        padding-left: calc(20 / 375 * 100%);
        padding-right: calc(20 / 375 * 100%)
    }
}

@media screen and (min-width:768px) {
    .counseling-page .shop-counseling .image {
        width: 600px;
        margin-left: auto;
        margin-right: auto;
        margin-top: 40px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .shop-counseling .image {
        padding-left: calc(20 / 375 * 100%);
        padding-right: calc(20 / 375 * 100%);
        margin-top: 30px
    }
}

@media screen and (min-width:768px) {
    .counseling-page .shop-counseling .step-list-wrapper {
        max-width: 1000px;
        margin-left: auto;
        margin-right: auto;
        margin-top: 40px;
        padding-left: 170px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .shop-counseling .step-list-wrapper {
        padding-left: calc(40 / 375 * 100%);
        padding-right: calc(20 / 375 * 100%);
        margin-top: 20px
    }
}

@media screen and (min-width:768px) {
    .counseling-page .shop-counseling .shop-banner {
        max-width: 1100px;
        height: 240px;
        margin-left: auto;
        margin-right: auto;
        margin-top: 80px;
        background: url(../img/counseling/shop.jpg) no-repeat center/cover
    }
}

@media screen and (max-width:767px) {
    .counseling-page .shop-counseling .shop-banner {
        margin-top: 60px;
        height: 200px;
        background: url(../img/counseling/shop.sp.jpg) no-repeat center/cover
    }
}

.counseling-page .shop-counseling .shop-banner .link {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center
}

.counseling-page .shop-counseling .shop-banner .link .text-area {
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center
}

.counseling-page .shop-counseling .shop-banner .link .text-area .banner-heading {
    font-size: 30px
}

@media screen and (max-width:767px) {
    .counseling-page .shop-counseling .shop-banner .link .text-area .banner-heading {
        font-size: 26px
    }
}

.counseling-page .shop-counseling .shop-banner .link .text-area p {
    margin-top: 10px
}

.counseling-page .shop-counseling .shop-banner .link .text-area .link-border {
    color: #fff;
    font-size: 12px
}

.counseling-page .shop-counseling .shop-banner .link .text-area .link-border::before {
    background: #fff
}

.counseling-page .online-wrapper {
    filter: drop-shadow(0px 8px 20px rgba(23, 23, 30, .1))
}

.counseling-page .online-counseling {
    background: #fff
}

@media screen and (min-width:768px) {
    .counseling-page .online-counseling {
        padding-top: 100px;
        padding-bottom: 80px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .online-counseling {
        padding-top: 60px;
        padding-bottom: 20px
    }
}

.counseling-page .online-counseling .heading {
    font-size: 30px;
    text-align: center;
    position: relative;
    padding-bottom: 20px
}

@media screen and (max-width:767px) {
    .counseling-page .online-counseling .heading {
        font-size: 26px
    }
}

.counseling-page .online-counseling .heading::before {
    content: '';
    display: block;
    width: 42px;
    height: 1px;
    background: #453d7d;
    position: absolute;
    right: 0;
    left: 0;
    bottom: 0;
    margin: auto
}

@media screen and (min-width:768px) {
    .counseling-page .online-counseling .intro-text {
        text-align: center
    }

    .counseling-page .online-counseling .intro-text:nth-of-type(1) {
        margin-top: 40px
    }

    .counseling-page .online-counseling .intro-text:nth-of-type(2) {
        margin-top: 30px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .online-counseling .intro-text {
        margin-top: 30px;
        padding-left: calc(20 / 375 * 100%);
        padding-right: calc(20 / 375 * 100%)
    }
}

@media screen and (min-width:768px) {
    .counseling-page .online-counseling .image {
        width: 600px;
        margin-left: auto;
        margin-right: auto;
        margin-top: 40px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .online-counseling .image {
        margin-top: 30px;
        padding-left: calc(20 / 375 * 100%);
        padding-right: calc(20 / 375 * 100%)
    }
}

.counseling-page .online-counseling .image-title {
    display: flex;
    justify-content: center
}

@media screen and (min-width:768px) {
    .counseling-page .online-counseling .image-title {
        margin-top: 60px
    }

    .counseling-page .online-counseling .image-title img {
        width: 299px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .online-counseling .image-title {
        margin-top: 30px
    }

    .counseling-page .online-counseling .image-title img {
        width: 276px
    }
}

.counseling-page .online-counseling .feature-heading {
    text-align: center;
    font-size: 24px;
    line-height: calc(30 / 24)
}

@media screen and (max-width:767px) {
    .counseling-page .online-counseling .feature-heading {
        font-size: 20px;
        line-height: calc(28 / 20)
    }
}

@media screen and (min-width:768px) {
    .counseling-page .online-counseling .feature-list {
        display: flex;
        justify-content: center;
        margin-top: 40px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .online-counseling .feature-list {
        margin-top: 20px;
        padding-left: calc(40 / 375 * 100%);
        padding-right: calc(40 / 375 * 100%)
    }
}

@media screen and (min-width:768px) {
    .counseling-page .online-counseling .feature-list li {
        width: 340px;
        height: 230px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: space-between
    }

    .counseling-page .online-counseling .feature-list li:nth-child(2) {
        border-left: 1px solid #d9d9e8;
        border-right: 1px solid #d9d9e8
    }

    .counseling-page .online-counseling .feature-list li:nth-child(2) .title {
        padding-top: 20px
    }

    .counseling-page .online-counseling .feature-list li:nth-child(2) .text {
        padding-bottom: 15px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .online-counseling .feature-list li {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding-top: 40px;
        padding-bottom: 40px
    }

    .counseling-page .online-counseling .feature-list li:not(:first-of-type) {
        border-top: 1px solid #d9d9e8
    }
}

.counseling-page .online-counseling .feature-list li .title {
    text-align: center;
    font-size: 20px;
    line-height: calc(28 / 20);
    color: #453d7d
}

@media screen and (max-width:767px) {
    .counseling-page .online-counseling .feature-list li .title {
        font-size: 18px
    }
}

.counseling-page .online-counseling .feature-list li .icon {
    width: 60px
}

@media screen and (max-width:767px) {
    .counseling-page .online-counseling .feature-list li .icon {
        margin-top: 15px
    }
}

.counseling-page .online-counseling .feature-list li .text {
    font-size: 14px;
    text-align: center
}

@media screen and (max-width:767px) {
    .counseling-page .online-counseling .feature-list li .text {
        margin-top: 10px
    }
}

.counseling-page .online-counseling .feature-list li .note {
    display: block;
    font-size: 10px
}

.counseling-page .flow-counseling {
    position: relative;
    background-color: #fff
}

@media screen and (min-width:768px) {
    .counseling-page .flow-counseling {
        padding-top: 80px;
        padding-bottom: 90px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .flow-counseling {
        padding-top: 60px;
        padding-bottom: 60px
    }
}

.counseling-page .flow-counseling::before {
    content: '';
    display: block;
    width: 100%;
    height: 390px;
    background: linear-gradient(#f8f9fd 0, #fff 100%);
    position: absolute;
    left: 0;
    top: 0
}

@media screen and (max-width:767px) {
    .counseling-page .flow-counseling::before {
        height: 240px
    }
}

.counseling-page .flow-counseling .inner {
    position: relative;
    
}

.counseling-page .flow-counseling .inner > .heading {
    text-align: center;
    font-size: 24px
}

@media screen and (max-width:767px) {
    .counseling-page .flow-counseling .inner > .heading {
        font-size: 20px
    }
}

@media screen and (min-width:768px) {
    .counseling-page .flow-counseling .flow-wrapper {
        max-width: 1000px;
        margin-left: auto;
        margin-right: auto;
        padding-left: 190px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .flow-counseling .flow-wrapper {
        padding-left: calc(40 / 375 * 100%);
        padding-right: calc(20 / 375 * 100%)
    }
}

@media screen and (min-width:768px) {
    .counseling-page .flow-counseling .step-list {
        margin-top: 60px;
        max-width: 670px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .flow-counseling .step-list {
        margin-top: 50px
    }
}

.counseling-page .flow-counseling .step-list .item {
    position: relative
}

.counseling-page .flow-counseling .step-list .item .image {
    position: absolute;
    right: 0;
    top: 0;
    width: 256px
}

@media screen and (max-width:767px) {
    .counseling-page .flow-counseling .step-list .item .image {
        width: 125px
    }
}

.counseling-page .lesson-menu {
    position: relative;
    background: linear-gradient(#e6e6e6 0, #fafafa 27.54%, #f7f7f7 100%)
}

@media screen and (min-width:768px) {
    .counseling-page .lesson-menu {
        padding-top: 80px;
        padding-bottom: 80px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .lesson-menu {
        padding-top: 50px;
        padding-bottom: 40px;
        padding-left: calc(20 / 375 * 100%);
        padding-right: calc(20 / 375 * 100%)
    }
}

.counseling-page .lesson-menu::before {
    content: '';
    display: block;
    width: 100%;
    height: 600px;
    background: url(../img/counseling/menu_bg.png) no-repeat center/cover;
    position: absolute;
    left: 0;
    top: 0
}

@media screen and (max-width:767px) {
    .counseling-page .lesson-menu::before {
        height: 640px;
        background: url(../img/counseling/menu_bg.sp.png) no-repeat center/cover
    }
}

.counseling-page .lesson-menu .inner {
    position: relative;
    
}

.counseling-page .lesson-menu .heading {
    text-align: center;
    font-size: 24px
}

@media screen and (max-width:767px) {
    .counseling-page .lesson-menu .heading {
        font-size: 22px
    }
}

.counseling-page .lesson-menu .menu-list {
    background: #fff;
    border-radius: 4px
}

@media screen and (min-width:768px) {
    .counseling-page .lesson-menu .menu-list {
        max-width: 860px;
        margin-left: auto;
        margin-right: auto;
        padding: 15px 50px;
        margin-top: 40px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .lesson-menu .menu-list {
        margin-top: 30px;
        padding-left: calc(20 / 335 * 100%);
        padding-right: calc(20 / 335 * 100%);
        padding-bottom: 20px
    }
}

@media screen and (min-width:768px) {
    .counseling-page .lesson-menu .menu-list li {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-top: 30px;
        padding-bottom: 30px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .lesson-menu .menu-list li {
        padding-top: 20px;
        padding-bottom: 20px
    }
}

.counseling-page .lesson-menu .menu-list li:not(:first-of-type) {
    border-top: 1px solid #d9d9e8
}

@media screen and (max-width:767px) {
    .counseling-page .lesson-menu .menu-list li .title-wrapper {
        display: flex;
        align-items: flex-end;
        justify-content: space-between
    }
}

.counseling-page .lesson-menu .menu-list li .title {
    font-size: 16px;
    font-weight: 700
}

@media screen and (max-width:767px) {
    .counseling-page .lesson-menu .menu-list li .title {
        font-size: 15px
    }
}

.counseling-page .lesson-menu .menu-list li .text {
    margin-top: 10px
}

@media screen and (max-width:767px) {
    .counseling-page .lesson-menu .menu-list li .text {
        font-size: 13px
    }
}

@media screen and (min-width:768px) {
    .counseling-page .lesson-menu .menu-list li .image {
        flex-shrink: 0;
        width: 85px;
        margin-left: 40px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .lesson-menu .menu-list li .image {
        width: 55px
    }
}

.counseling-page .consultant {
    position: relative;
    background: #fff
}

@media screen and (min-width:768px) {
    .counseling-page .consultant {
        padding-top: 80px;
        padding-bottom: 80px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .consultant {
        padding-top: 60px;
        padding-bottom: 60px
    }
}

.counseling-page .consultant:before {
    content: '';
    display: block;
    width: 100%;
    height: 370px;
    position: absolute;
    left: 0;
    top: 0;
    background: linear-gradient(#f8f9fd 0, #fff 100%)
}

@media screen and (max-width:767px) {
    .counseling-page .consultant:before {
        height: 290px
    }
}

.counseling-page .consultant .inner {
    position: relative;
    
}

@media screen and (max-width:767px) {
    .counseling-page .consultant .inner {
        padding-left: calc(20 / 375 * 100%);
        padding-right: calc(20 / 375 * 100%)
    }
}

@media screen and (min-width:768px) {
    .counseling-page .consultant .heading {
        font-size: 22px;
        line-height: calc(30 / 22);
        text-align: center
    }
}

@media screen and (max-width:767px) {
    .counseling-page .consultant .heading {
        line-height: calc(28 / 20);
        font-size: 20px
    }
}

.counseling-page .consultant .intro-text {
    margin-top: 30px
}

@media screen and (min-width:768px) {
    .counseling-page .consultant .intro-text {
        text-align: center
    }
}

.counseling-page .consultant .btn-wrapper {
    display: flex;
    justify-content: center;
    margin-top: 80px
}

@media screen and (max-width:767px) {
    .counseling-page .consultant .btn-wrapper {
        margin-top: 40px
    }
}

.counseling-page .consultant .consultant-list {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 40px;
    border-top: 1px solid #d9d9e8
}

.counseling-page .consultant .consultant-list .consultant-list-item {
    padding-top: 40px;
    padding-bottom: 40px;
    display: flex;
    border-bottom: 1px solid #d9d9e8
}

@media screen and (max-width:767px) {
    .counseling-page .consultant .consultant-list .consultant-list-item {
        padding-left: calc(20 / 375 * 100%);
        padding-right: calc(20 / 375 * 100%)
    }
}

.counseling-page .consultant .consultant-list .consultant-list-item .pc-thumb {
    width: 130px;
    flex-shrink: 0;
    margin-right: 60px
}

.counseling-page .consultant .consultant-list .consultant-list-item .pc-thumb p {
    text-align: center;
    font-size: 14px;
    margin-top: 5px
}

.counseling-page .consultant .consultant-list .consultant-list-item .sp-thumb {
    width: 87px;
    flex-shrink: 0;
    margin-right: 18px
}

.counseling-page .consultant .consultant-list .consultant-list-item .sp-thumb p {
    text-align: center;
    font-size: 12px;
    margin-top: 5px
}

@media screen and (max-width:767px) {
    .counseling-page .consultant .consultant-list .consultant-list-item .sp-wrapper {
        display: flex
    }
}

.counseling-page .consultant .consultant-list .consultant-list-item .info li:not(:first-child) {
    margin-top: 5px
}

@media screen and (min-width:768px) {
    .counseling-page .consultant .consultant-list .consultant-list-item .info li dl {
        display: flex
    }
}

.counseling-page .consultant .consultant-list .consultant-list-item .info li dl dt {
    color: #453d7d;
    font-weight: 700
}

@media screen and (min-width:768px) {
    .counseling-page .consultant .consultant-list .consultant-list-item .info li dl dt {
        width: 70px;
        margin-right: 10px
    }
}

.counseling-page .consultant .consultant-list .consultant-list-item .message {
    background: #f8f9fd;
    padding: 30px;
    margin-top: 20px
}

@media screen and (max-width:767px) {
    .counseling-page .consultant .consultant-list .consultant-list-item .message {
        padding-top: 30px;
        padding-bottom: 30px;
        padding-left: calc(20 / 335 * 100%);
        padding-right: calc(20 / 335 * 100%)
    }
}

.counseling-page .consultant .consultant-list .consultant-list-item .message .title {
    font-size: 16px;
    color: #453d7d;
    margin-bottom: 10px
}

.counseling-page .consultant .consultant-list .consultant-list-item .flex-wrapper {
    display: flex;
    justify-content: flex-end;
    margin-top: 20px
}

.counseling-page .consultant .consultant-list .consultant-list-item .flex-wrapper .bookmark {
    width: auto;
    height: auto;
    display: flex;
    align-items: center
}

.counseling-page .consultant .consultant-list .consultant-list-item .flex-wrapper .bookmark::before {
    content: 'お気に入り登録';
    display: inline-block;
    color: #9b9baa;
    font-size: 10px;
    font-weight: 700;
    margin-right: 8px
}

.counseling-page .consultant .consultant-list .consultant-list-item .flex-wrapper .bookmark span {
    width: 30px;
    height: 30px
}

.counseling-page .consultant .consultant-list .consultant-list-item .flex-wrapper .bookmark .icon-heart {
    font-size: 30px;
    width: 30px;
    height: 30px
}

.counseling-page .consultant .consultant-list .consultant-list-item .flex-wrapper .bookmark .icon-heart-active {
    font-size: 30px;
    width: 30px;
    height: 30px
}

.counseling-page .consultant .consultant-list .consultant-list-item .flex-wrapper .color-blue-btn {
    width: 165px;
    height: 37px;
    font-size: 13px;
    margin-left: 20px
}

.counseling-page .white-space-wrapper {
    padding-top: 80px;
    padding-bottom: 80px;
    background: #fff;
    display: flex;
    justify-content: center
}

@media screen and (max-width:767px) {
    .counseling-page .white-space-wrapper {
        padding-top: 40px;
        padding-bottom: 40px
    }
}

.counseling-page .counseling-btn {
    width: 380px;
    height: 58px
}

@media screen and (max-width:767px) {
    .counseling-page .counseling-btn {
        width: 295px;
        height: 85px
    }

    .counseling-page .counseling-btn .link {
        padding-left: 28px;
        padding-right: 21px
    }
}

.counseling-page .counseling-btn .text::before {
    content: 'カウンセリングのご予約はこちら'
}

@media screen and (max-width:767px) {
    .counseling-page .counseling-btn .text::before {
        content: 'オンラインカウンセリングのご予約はこちら';
        line-height: calc(19 / 14)
    }
}

@media screen and (min-width:768px) {
    .counseling-page .counseling-btn .icon {
        width: 26px;
        height: 26px;
        background: url(../img/counseling/icon.png) no-repeat center/cover;
        margin-right: 10px
    }
}

@media screen and (max-width:767px) {
    .counseling-page .counseling-btn .icon {
        flex-shrink: 0;
        display: block;
        width: 42px;
        height: 42px;
        background: url(../img/counseling/icon.sp.png) no-repeat center/cover;
        margin-right: 10px
    }
}

.counseling-page .counseling-btn .icon-arrow-right {
    font-size: 18px
}

@media screen and (min-width:768px) {
    .counseling-page .counseling-btn .icon-arrow-right {
        width: 18px;
        height: 18px;
        position: absolute;
        right: 20px;
        top: 0;
        bottom: 0;
        margin: auto
    }
}

@media screen and (max-width:767px) {
    .counseling-page .counseling-btn .icon-arrow-right {
        display: inline;
        position: relative;
        top: 3px
    }
}

.counseling-page .step-list {
    position: relative
}

.counseling-page .step-list::before {
    content: '';
    display: block;
    width: 1px;
    height: calc(100% - 20px);
    position: absolute;
    left: -30px;
    top: 20px;
    background: #d9d9e8
}

@media screen and (max-width:767px) {
    .counseling-page .step-list::before {
        left: -15px
    }
}

.counseling-page .step-list .item:not(:first-of-type) {
    margin-top: 30px
}

@media screen and (max-width:767px) {
    .counseling-page .step-list .item:not(:first-of-type) {
        margin-top: 20px
    }
}

.counseling-page .step-list .item .step {
    display: flex;
    align-items: flex-end;
    line-height: 1;
    color: rgba(155, 155, 170, .4);
    position: relative
}

.counseling-page .step-list .item .step::before {
    content: '';
    display: block;
    width: 9px;
    height: 9px;
    background: #aca6c5;
    border-radius: 50%;
    position: absolute;
    left: -34px;
    top: 20px
}

@media screen and (max-width:767px) {
    .counseling-page .step-list .item .step::before {
        left: -19px
    }
}

.counseling-page .step-list .item .step .txt {
    font-size: 30px;
    letter-spacing: 0
}

@media screen and (max-width:767px) {
    .counseling-page .step-list .item .step .txt {
        font-size: 24px
    }
}

.counseling-page .step-list .item .step .number {
    display: block;
    font-size: 44px;
    margin-left: 15px;
    position: relative;
    top: 3px
}

@media screen and (max-width:767px) {
    .counseling-page .step-list .item .step .number {
        font-size: 38px
    }
}

.counseling-page .step-list .item .title {
    font-size: 20px;
    margin-top: 10px
}

.counseling-page .step-list .item .desp {
    margin-top: 10px
}
