.mv {
    margin-top: -4rem;
    margin-left: calc( 48 * 100% / 750 );
    margin-right: calc( 48 * 100% / 750 );
    position: relative;
}
.mv-center {
    position: relative;
}
.mv-center picture,
.mv-center picture img {
    width: 100%;
}
.mv-text {
    width: 100%;
    color: #fff;
    font-size: 1.2rem;
    font-weight: bold;
    letter-spacing: 0.1em;
    text-align: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    -webkit-transform: translateY(-50%) translateX(-50%);
}
.mv-text h1 {
    margin-bottom: 3rem;
    padding-left: 0.5em;
    font-size: 4.5rem;
    line-height: 1;
}
.mv-text h1 span {
    letter-spacing: -0.45em;
}
.mv-text p {
    line-height: 2.2;
}
.mv-text .btn.round {
    width: 162px;
    margin: 2.5rem auto 0;
    font-weight: bold;
    letter-spacing: 0.2em;
}
.mv-text .btn::after {
    width: 1em;
    height: 1em;
}
.mv-right {
    width: 2.4rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: absolute;
    right: -2.4rem;
    bottom: 1.2rem;
}
.mv-right .mixed {
    display: block;
    margin-bottom: 2.5rem;
    font-size: 8px;
    letter-spacing: 0.2em;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
}
.mv-right .sns {
    display: block;
    width: 1.5em;
    height: 1.5em;
    line-height: 1.5rem;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
}
.mv-right .sns:nth-of-type(2) {
    margin: 1rem 0;
}
.mv-right .sns:hover {
    opacity: 0.6;
}
@media print,screen and (min-width: 1025px){
    .mv {
        margin-top: -10rem;
        margin-left: calc( 100 * 100% / 1500 );
        margin-right: calc( 100 * 100% / 1500 );
    }
    .mv-text {
        font-size: 2.1rem;
        letter-spacing: 0.2em;
        top: 75%;
        left: 50%;
        transform: translateY(-75%) translateX(-50%);
        -webkit-transform: translateY(-75%) translateX(-50%);
    }
    .mv-text h1 {
        margin-bottom: 7.5rem;
        font-size: 7rem;
    }
    .mv-text .btn.round {
        width: 292px;
        margin: 5rem auto 0;
        font-size: 2.1rem;
    }
    .mv-right {
        width: 3.5rem;
        right: -5.5rem;
        bottom: 0;
    }
    .mv-right .mixed {
        margin-bottom: 3rem;
        font-size: 1.2rem;
        font-size: clamp(10px, 0.9vw, 12px);
    }
    .mv-right .sns {
        width: 3.5rem;
        height: 3.5rem;
        line-height: 3.5rem;
    }
    .mv-right .sns:nth-of-type(2) {
        margin: 1.2rem 0;
    }
}
@media print,screen and (min-width: 1500px){
    .mv {
        margin-left: calc( ( 100% - 1300px ) / 2 );
        margin-right: calc( ( 100% - 1300px ) / 2 );
    }
}


/* topicks */
.topicks {
    margin: 7rem 0;
    padding: 1.2rem 0;
    background-color: #f8eff4;
    display: flex;
    align-items: center;
}
.topicks-wrap {
    display: flex;
    align-items: center;
    width: 100%;
    margin-left: calc( 48 * 100% / 750 );
    margin-right: calc( 48 * 100% / 750 );
    font-size: 1rem;
}
.topicks-wrap h2 {
    width: 11em;
    font-size: 1rem;
    font-weight: bold;
    line-height: 1.5;
}
.topicks-wrap h2 span {
    display: block;
    font-size: 1.8rem;
    letter-spacing: 0.1em;
}
.news-list {
    width: calc(100% - 11em);
    padding: 8px 0 8px 1.2rem;
    border-left: 0.75px solid #000;
}
.news-list li {
    letter-spacing: 0.1em;
}
.news-list .category {
    display: inline-block;
    margin-right: 1.5rem;
}
.news-list li a {
    display: block;
    margin-top: 1em;
    font-weight: bold;
    letter-spacing: 0.05em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
}
.news-list li a:hover {
    color: #CA8FAC;
}
@media print,screen and (min-width: 1025px){
    .topicks {
        margin: 13rem 0;
        padding: 5rem 0;
    }
    .topicks-wrap {
        margin-left: calc( 250 * 100% / 1500 );
        margin-right: calc( 250 * 100% / 1500 );
        font-size: 1.4rem;
    }
    .topicks-wrap h2 {
        width: min(45%, 350px);
        margin-left: 2.5rem;
        font-size: clamp(16px, 1.5vw, 20px);
        letter-spacing: 0.1em;
    }
    .topicks-wrap h2 span {
        display: inline-block;
        margin-top: -0.25em;
        margin-right: 1em;
        font-size: 3rem;
        font-size: clamp(26px, 2.5vw, 30px);
        vertical-align: middle;
    }
    .news-list {
        width: calc(100% -  min(45%, 350px));
        padding: 1.2rem 0 1.2rem 4.5rem;
        border-left-width: 1px;
    }
    .news-list .category {
        margin-right: 3rem;
    }
    .news-list li a {
        margin-top: 1.2rem;
        font-size: clamp(16px, 1.5vw, 20px);
        letter-spacing: 0.09em;
    }
}
@media print,screen and (min-width: 1500px){
    .topicks-wrap {
        margin-left: calc( ( 100% - 1000px ) / 2 );
        margin-right: calc( ( 100% - 1000px ) / 2 );
    }
}

/* slogan */
.slogan h2 {
    display: block;
    width: 14em;
    margin: 0 auto;
    color: #bc6499;
    font-size: 1.8rem;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.09em;
}
.slogan-text {
    margin-top: 3.5rem;
    margin-bottom: 3.5rem;
    margin-left: calc( 100 * 100% / 750 );
    margin-right: calc( 100 * 100% / 750 );
    font-size: 1.4rem;
    font-weight: 300;
}
.slogan-text p:not(:last-of-type) {
    margin-bottom: 1.5em;
}
.pic-box {
    position: relative;
}
.slogan .pic-box {
    margin-left: calc( 48 * 100% / 750 );
    margin-right: calc( 48 * 100% / 750 );
}
.slogan .pic-box .plural {
    width: 5rem;
    left: -1.5rem;
    bottom: -1rem;
}
.slogan-wrap + .btn {
    margin: 3.5rem auto 0;
}
@media print,screen and (min-width: 1025px){
    .slogan h2 {
        width: 100%;
        font-size: 3.5rem;
        text-align: center;
    }
    .slogan-wrap {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-top: 7rem;
    }
    .slogan-text {
        margin: 0;
        margin-left: calc( 250 * 100% / 1500 );
        font-size: 1.8rem;
        line-height: 1.9;
        letter-spacing: normal;
    }
    .slogan .pic-box {
        width: min(46%, 700px);
        margin: 0;
    }
    .slogan .pic-box .plural {
        width: 12rem;
        left: -4.5rem;
        bottom: -4.5rem;
    }
    .slogan-wrap + .btn {
        width: 283px;
        margin-top: 13rem;
    }
}
@media print,screen and (min-width: 1500px){
    .slogan-wrap {
        max-width: 1500px;
        margin: auto;
    }
    .slogan-text {
        margin-left: 250px;
    }
}


.lesson {
    display: flex;
    justify-content: space-between;
}
.lesson h3 {
    margin-right: calc( 48 * 100% / 750 );
    font-size: 1.8rem;
    font-weight: bold;
    letter-spacing: 0.09em;
    writing-mode: vertical-rl;
}
.lesson h3 span {
    display: block;
    font-size: 1.2rem;
    font-weight: 600;
}
.lesson-pic {
    position: relative;
}
.lesson-text {
    margin: 3.5rem 0;
    font-size: 1.4rem;
    font-weight: 300;
}

.lesson:first-of-type {
    flex-direction: row-reverse;
    margin-top: 7rem;
}
.lesson:first-of-type .lesson-pic {
    margin-right: 2.5rem;
}
.lesson:first-of-type .lesson-pic .plural {
    width: 4.5rem;
    right: -1rem;
    bottom: -1rem;
}
.lesson:first-of-type .lesson-text {
    margin-left: calc( 48 * 100% / 750 );
}
.lesson:first-of-type + .btn.sp_only {
    margin: 0 auto 7rem;
}
.lesson:nth-of-type(2) h3 {
    margin-left: calc( 48 * 100% / 750 );
    margin-right: 2.4rem;
}
.lesson:nth-of-type(2) .lesson-pic .plural {
    width: 3.5rem;
    left: -1.2rem;
    bottom: -1.5rem;
}
.lesson:nth-of-type(2) .lesson-text {
    margin-right: calc( 48 * 100% / 750 );
}

@media print,screen and (min-width: 1025px){
    .lesson {
        align-items: flex-start;
        margin-right: calc( 100 * 100% / 1500 );
        margin-left: calc( 100 * 100% / 1500 );
    }
    .lesson h3 {
        margin-right: 0;
        font-size: 3.5rem;
    }
    .lesson h3 span {
        font-size: 1.6rem;
    }
    .lesson > div {
        display: flex;
        align-items: flex-start;
    }
    .lesson-pic {
        width: min(55%, 698px);
        margin-right: 0;
    }
    .lesson-pic figure {
        width: 100%;
    }
    .lesson-text {
        margin: 0;
        font-size: 1.8rem;
    }
    .lesson-text a.btn.pink {
        width: 283px;
        margin-top: 3.5rem;
    }

    .lesson:first-of-type {
        margin-top: 13rem;
        margin-bottom: 13rem;
    }
    .lesson:first-of-type h3 span {
        margin-left: 1.5em;
    }
    .lesson:first-of-type .lesson-pic {
        margin: 0;
    }
    .lesson:first-of-type .lesson-pic .plural {
        width: 7.5rem;
        right: -1rem;
        bottom: 1rem;
    }
    .lesson:first-of-type .lesson-text {
        margin-right: min(4%, 50px);
        margin-left: min(4%, 50px);
    }
    .lesson:nth-of-type(2) > div {
        flex-direction: row-reverse;
    }
    .lesson:nth-of-type(2) h3 {
        margin: 0;
    }
    .lesson:nth-of-type(2) h3 span {
        margin-right: 1.5em;
    }
    .lesson:nth-of-type(2) .lesson-pic .plural {
        width: 8.5rem;
        left: auto;
        right: -4rem;
        bottom: -2.5rem;
    }
    .lesson:nth-of-type(2) .lesson-text {
        margin-left: min(2%, 25px);
        margin-right: min(3%, 40px);
    }
}
@media print,screen and (min-width: 1500px){
    .lesson {
        margin-left: calc( ( 100% - 1300px ) / 2 );
        margin-right: calc( ( 100% - 1300px ) / 2 );
    }
}


.What-is {
    margin-top: 3.5rem;
    margin-bottom: 7rem;
    padding-bottom: 2rem;
    background-color: #F8EFF4;
}
.What-is h2 {
    margin-bottom: 3rem;
    background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 50%, rgba(248,239,244,1) 50%, rgba(248,239,244,1) 100%);
    color: #CA8FAC;
    font-size: 1.8rem;
    font-weight: bold;
    letter-spacing: 0.09em;
    text-align: center;
}
.What-is > p {
    padding-left: calc( 48 * 100% / 750 );
    padding-right: calc( 48 * 100% / 750 );
    font-size: 1.4rem;
    font-weight: 300;
}
.What-is > p:not(:last-of-type) {
    margin-bottom: 1em;
}
.btn-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-column-gap: 1.5rem;
    align-items: center;
    justify-content: center;
    margin: 3.5rem 0;
    padding-left: calc( 80 * 100% / 750 );
    padding-right: calc( 80 * 100% / 750 );
}
.btn-list .btn.pink {
    width: min(100%, 140px);
}
.delayScroll {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-column-gap: 2rem;
    grid-row-gap: 2.8rem;
    margin-left: calc( 48 * 100% / 750 );
    margin-right: calc( 48 * 100% / 750 );
}
.card {
    background-color: #fff;
    text-align: center;
}
.card > div {
    padding: 0 1.2rem 1rem;
}
.card .title {
    margin: 1.4rem 0;
    color: #ca8fac;
    font-size: 1.2rem;
    font-weight: bold;
    line-height: 1;
    letter-spacing: 0.09em;
}
.card .address {
    margin-bottom: 1em;
    line-height: 1.4;
}
.card .address span {
    display: block;
}
.card .open-time {
    margin-bottom: 1.5rem;
    line-height: 1.4;
}
.card div a {
    display: block;
    padding: 0.25em 0;
    background-color: #E0ADC7;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 500;
    transition: all 0.3s;
}
.card div a:hover {
    opacity: 0.6;
}
@media print,screen and (min-width: 1025px){
    .What-is {
        margin: 13rem 0;
        padding-bottom: 5.5rem;
    }
    .What-is h2 {
        margin-bottom: 5.5rem;
        font-size: 4rem;
    }
    .What-is > p {
        padding: 0;
        font-size: 1.6rem;
        text-align: center;
    }
    .What-is > p:not(:last-of-type) {
        margin-bottom: 2em;
    }
    .btn-list {
        display: grid;
        grid-template-columns: repeat(2, 283px);
        grid-column-gap: 5.5rem;
        margin: 5.5rem 0 7rem;
        padding: 0;
    }
    .btn-list .btn.pink {
        width: 100%;
    }
    .delayScroll {
        grid-template-columns: repeat(3, 1fr);
        grid-column-gap: 4rem;
        grid-row-gap: 5.5rem;
        margin-left: calc( 250 * 100% / 1500 );
        margin-right: calc( 250 * 100% / 1500 );
    }
    .card > div {
        padding: 0 2.5rem 1rem;
    }
    .card .title {
        margin: 3rem 0;
        font-size: 2rem;
        letter-spacing: 0.04em;
    }
    .card .address,
    .card .open-time {
        font-size: 1.4rem;
    }
    .card .open-time {
        margin-bottom: 3rem;
    }
    .card div a {
        font-size: 1.6rem;
    }
}
@media print,screen and (min-width: 1500px){
    .What-is {
        max-width: 1500px;
        margin-right: auto;
        margin-left: auto;
    }
    .delayScroll {
        margin-left: calc( ( 100% - 1000px ) / 2 );
        margin-right: calc( ( 100% - 1000px ) / 2 );
    }
}