@charset "utf-8";

.wrapper {
    padding-left: 5%;
    padding-right: 5%;
}

main h2 .fv_font {
    font-family: 'Playfair Display', sans-serif;
    font-weight: normal;
}

.top_fv {
    position: relative;
    z-index: 5;
    background-color: #96DBE0;
    /* height: 100vh; */
    min-height: 100vh;
    color: #FEFDFA;
    padding-top: 15%;
    padding-left: 5%;
    padding-bottom: 100px;
    overflow: hidden;
}

.top_fv P .none {
    display: none;
}

.top_fv h2 {
    font-size: 2.4rem;
    text-shadow: 0 2px 4px rgba(59, 72, 124, 0.3);
    position: absolute;
    top: 10%;
    z-index: 15;
}

.top_fv h2 .fv_fontsanserif {
    padding-top: 2%;
    font-size: 1.3rem;
    font-weight: normal;
    display: block;
    line-height: 1.2;
    z-index: 15;
}

.top_fv .ayakapicture {
    width: 75%;
    position: absolute;
    top: 11%;
    right: 0;
    z-index: 10;
}

.top_fv .top_fv_copy {
    font-family: 'Playfair Display', sans-serif;
    position: absolute;
    right: 5%;
    top: 82%;
    font-size: 1.3rem;
}

.top_fv_pc1,
.top_fv_pc2 {
    display: none;
}


/* ABOUTのセクション↓ */

main .about {
    background-color: #FEFDFA;
    padding-top: 15%;
    padding-bottom: 5%;

}

.about .title {
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    letter-spacing: .2rem;
    font-size: 1.2rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /* 自身の幅・高さ分戻して中央寄せ(レフトとトップは一番左端も文字が基準になったりして微妙に右にずれたり、下にずれたりするから） */
    margin: 0;
    color: #FEFDFA;
    text-transform: uppercase;
}

.about .aboutheadingimg {
    width: 70%;
    max-width: 300px;
    position: relative;
    margin: 0 auto;
    margin-bottom: 5%;
}

.about .aboutheadingimg img {
    width: 100%;
    display: block;
}

/* 最初は透明で、少し下に下げておく */
.fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1.5s, transform 1.5s ease;
    /* 1秒かけて変化 */
}

/* 画面内に入って 'show' クラスがついた時の状態 */
.fade-in.show {
    opacity: 1;
    transform: translateY(0);
}

.subtitle .diamond {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    background-color: #042660;
    transform: rotate(45deg);
    margin-right: 0.5rem;
    vertical-align: middle;
}

.subtitle {
    text-align: center;
    padding-bottom: 1rem;
}

.about .abouttext {
    text-align: center;
    font-size: .8rem;
}

.about .abouttext p {
    padding-bottom: 1rem;
}

.topcontact .contactlink {
    display: inline-block;
    position: relative;
    /* 括弧の基準にする */
    padding: 3px 20px;
    /* 括弧と文字の間の余白 */
    color: #FEFDFA;
    font-weight: bold;
    margin-bottom: 5%;
    text-shadow: 0 2px 4px rgba(59, 72, 124, 0.3);
    z-index: 2;
    font-size: 1.2rem;
    letter-spacing: .3rem;
}

.contactlink::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 7px;
    /* 括弧の横の長さ */
    height: 7px;
    /* 括弧の縦の長さ */
    border-top: 3px solid #FEFDFA;
    /* 上の線 */
    border-left: 3px solid #FEFDFA;
    /* 左の線 */
}

/* 右下の括弧 */
.contactlink::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 7px;
    height: 7px;
    border-bottom: 3px solid #FEFDFA;
    /* 下の線 */
    border-right: 3px solid #FEFDFA;
    /* 右の線 */
}

.topcontact .contactlink span::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 7px;
    height: 7px;
    border-top: 3px solid #FEFDFA;
    /* 上の線 */
    border-right: 3px solid #FEFDFA;
    /* 右の線 */
}

/* 左下の括弧 (spanの::afterを使う) */
.topcontact .contactlink span::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 7px;
    height: 7px;
    border-bottom: 3px solid #FEFDFA;
    /* 下の線 */
    border-left: 3px solid #FEFDFA;
    /* 左の線 */
}

.topcontact {
    position: relative;
    width: 100%;
    max-width: none;
    margin: 0 auto;
    /* 上下に余白を作る */
    overflow: hidden;
}

.topcontact .bg-img {

    /* 画面の横幅いっぱい */
    margin-left: 50%;
    transform: translateX(-50%);
    /* 画面の中央に強制配置 */
    height: 300px;
    /* 高さを固定 */
    object-fit: cover;
    /* 比率を保ってフィットさせる */
    opacity: 0.6;
    display: block;
    width: 100vw;

}

.contactcontent {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    /* 画像の幅に対して何％使うか */
    text-align: center;
    max-width: 400px;

}

.contactbtn a {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FEFDFA;
    border-radius: 5px;
    padding: 10px;
    margin-bottom: 10px;
    font-size: 0.9rem;
    border: 1px solid #FEFDFA;
    text-transform: uppercase;

}

.btn-line {
    background-color: #70d6a3;
}

.btn-line:hover {
    background-color: #2FAE5F;
    transition-duration: .8s;

}

.btn-mail {
    background-color: #d67070;
}

.btn-mail:hover {
    background-color: #F9373E;
    transition-duration: .8s;
}

.contactcontent img {
    width: 18px;
    margin-right: 8px;
    background-color: #FEFDFA;
    border-radius: 50%;
    padding: 2px;
}

.topcontact {
    position: relative;
    z-index: 1;
}

.topcontact .contactcontent .deco_img {
    width: 18%;
    position: absolute;
    top: -11%;
    left: 53%;
    transform: translateX(-50%);
    background-color: transparent;
    z-index: 1;
}




/* LESSONのセクション */
main .lesson {
    background-color: #FEFDFA;
    padding-top: 10%;
}

.lesson .subtitle {
    padding-top: 1rem;
}

.lesson .title {
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    letter-spacing: .2rem;
    font-size: 1.2rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /* 自身の幅・高さ分戻して中央寄せ(レフトとトップは一番左端も文字が基準になったりして微妙に右にずれたり、下にずれたりするから） */
    margin: 0;
    color: #FEFDFA;
    text-transform: uppercase;
}

/* .lesson .lessonimg {
    width: 70%;
    margin: 0 auto;
} */


.lesson img {
    width: 100%;
    max-width: 400px;
    display: block;
    margin: 0 auto;
}

.lesson .lessonheadingimg {
    width: 70%;
    max-width: 300px;
    position: relative;
    margin: 0 auto;
    margin-bottom: 5%;
}

.lesson .lessonheadingimg img {
    width: 100%;
    display: block;
}

.lesson .lessontext {
    text-align: center;
    font-size: .8rem;
    padding-bottom: 1rem;
}

.lesson .lessonflow {
    width: 90%;
    background-color: #042660;
    padding: 10px 0;
    margin: 5% auto;
}

.lesson .lessonflow p {
    width: 90%;
    margin: 0 auto;
    border-top: 2px solid #FEFDFA;
    /* 上線：太さ、スタイル、色 */
    border-bottom: 2px solid #FEFDFA;
    /* 下線：太さ、スタイル、色 */
    padding: 1px 0;
    color: #FEFDFA;
    text-align: center;
}


/* PERFORMANCEのセクション*/
main .performance {
    background-color: #D1F1E6;
    padding-top: 5%;
    margin-top: 10%;
    padding-bottom: 5%;
}

.performance .title {
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    letter-spacing: .2rem;
    font-size: 1.2rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /* 自身の幅・高さ分戻して中央寄せ(レフトとトップは一番左端も文字が基準になったりして微妙に右にずれたり、下にずれたりするから） */
    margin: 0;
    color: #FEFDFA;
    text-transform: uppercase;
}

.performance .performanceheadingimg {
    width: 70%;
    max-width: 300px;
    position: relative;
    margin: 0 auto;
    margin-bottom: 5%;
}

.performance .performanceheadingimg img {
    width: 100%;
    display: block;
}

.performance .performancetext {
    text-align: center;
    font-size: .8rem;
    padding-bottom: 1rem;
}

.performance .performancedeco {
    display: block;
    /* inline-block から変更 */
    width: fit-content;
    /* 中身の幅に合わせる（重要！） */
    margin: 0 auto;
    position: relative;
    padding: 3px 50px;
}

.performance .performancedeco span::before {
    content: "";
    position: absolute;
    top: 30%;
    left: 0;
    width: 15px;
    height: 7px;
    border-top: 3px solid #02225F;
}

.performance .performancedeco span::after {
    content: "";
    position: absolute;
    top: 30%;
    right: 0;
    width: 15px;
    height: 7px;
    border-top: 3px solid #02225F;
}

.performance .performanceflow {
    width: 90%;
    background-color: #042660;
    padding: 10px 0;
    margin: 5% auto;
}

.performance .performanceflow p {
    width: 90%;
    margin: 0 auto;
    border-top: 2px solid #FEFDFA;
    /* 上線：太さ、スタイル、色 */
    border-bottom: 2px solid #FEFDFA;
    /* 下線：太さ、スタイル、色 */
    padding: 1px 0;
    color: #FEFDFA;
    text-align: center;
}


@media screen and (min-width: 430px) {

    .top_fv_pc1,
    .top_fv_pc2 {
        display: none;
    }

    .top_fv h2 {
        position: absolute;
        top: 40%;
        font-size: 2.5rem;
    }

    .top_fv .ayakapicture {
        width: 75%;
        /* 横並びにするため少し小さめに（調整可） */
        max-width: 390px;
    }

    .top_fv .top_fv_copy {
        position: absolute;
        top: 93%;
        left: 6%;
        z-index: 15;
    }

    .subtitle {
        padding-bottom: 1.2rem;
    }

    /* ここからABOUTセクション430 */


    .about .aboutheadingimg {
        width: 70%;
        max-width: 400px;
        /* position: relative;
    margin: 0 auto; */
    }

    .about .title {
        letter-spacing: .2rem;
        font-size: 2rem;
    }

    .about .subtitle .diamond {
        width: 1.12rem;
        height: 1.12rem;

    }

    .about .subtitle {
        font-size: 1.12rem;
    }

    .about .abouttext {
        font-size: 1rem;
    }

    /* ここからLESSONのセクション430 */
    .lesson .lessonheadingimg {
        width: 70%;
        max-width: 400px;
        /* position: relative;
    margin: 0 auto; */
    }

    .lesson .title {
        letter-spacing: .2rem;
        font-size: 2rem;
    }

    .lesson .lessontext {
        font-size: 1rem;
    }

    .lesson .lessonflow {
        margin-top: 5%;
    }

    /* ここからPERFORMANCEセクション430 */
    .performance .performanceheadingimg {
        width: 70%;
        max-width: 400px;
        /* position: relative;
    margin: 0 auto; */
    }

    .performance .title {
        letter-spacing: .2rem;
        font-size: 2rem;
    }

    .performance .subtitle .diamond {
        width: 1.12rem;
        height: 1.12rem;

    }

    .performance .subtitle {
        font-size: 1.12rem;
    }

    .performance .performancetext {
        font-size: 1rem;
    }

    .performance .performancetext .none {
        display: none;
    }

    .performance .performanceflow {
        margin-top: 5%;
    }


}

@media screen and (min-width: 1025px) {
    .top_fv h2 {
        position: absolute;
        top: 20%;
        left: 15%;
        font-size: 3rem;
        text-align: center;
    }

    .top_fv h2 .fv_fontsanserif {
        padding-top: 2%;
        font-size: 1.8rem;
        font-weight: normal;
        display: block;
        line-height: 2;
        z-index: 15;
    }

    .top_fv h2 .fv_fontsanserif .none {
        display: none;
    }

    .top_fv .ayakapicture {
        width: 100%;
        /* 横並びにするため少し小さめに（調整可） */
        max-width: 310px;
        position: absolute;
        right: 13%;
        top: 20%;
    }

    .top_fv_pc1 {
        display: block;
        width: 30%;
        max-width: 250px;
        position: absolute;
        top: 58%;
        left: 5%;
    }

    .top_fv_pc2 {
        display: block;
        width: 30%;
        max-width: 250px;
        position: absolute;
        top: 58%;
        left: 30%;
    }

    .top_fv .top_fv_copy {
        font-family: 'Playfair Display', sans-serif;
        position: absolute;
        top: 95%;
        font-size: 2rem;
        letter-spacing: .1rem;
        background-color: #57B6CF;
        color: #ADE7F6;
        left: 0;
        width: 100%;
        text-align: center;

    }

    .top_fv .top_fv_copy .none {
        display: inline;
    }

    /* ここからABOUTセクション1025 */

    .about .abouttext .none {
        display: none;
    }

    /* ここからLESSONのセクション1025 */
    .lesson .lessontext .none {
        display: none;
    }

    .lesson .lessonflow {
        max-width: 830px;
    }

    .lesson .lessonflow p {
        font-size: 1.2rem;
        padding: 10px 0;
    }

    /* ここからPERFORMANCEのセクション1025 */
    .performance .performanceflow {
        max-width: 830px;
    }

    .performance .performanceflow p {
        font-size: 1.2rem;
        padding: 10px 0;
    }

}