@charset "UTF-8";


@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho+B1&family=Shippori+Mincho:wght@400;500;600;700;800&family=Zen+Kaku+Gothic+Antique:wght@300;400;500;700;900&display=swap');





@media screen and (max-width:768px) {

    .sp_none {
        display: none;
    }

    body {
        font-family: "Shippori Mincho", serif;
        padding: 0;
        margin: 0;
    }

    img {
        max-width: 100%;
    }



    .fv {
        background: url(img/fv_bg_sp_v2.jpg);
        height: 100vh;
        background-size: cover;
        background-position: center;
        margin: 0 0 40px;
    }

    .fv_inr01 {
        max-width: 1000px;
        margin: 0 auto;
        height: 70vh;
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        align-content: end;
    }

    .fv_inr01_box_txt01 {
        font-size: clamp(26px, 3vw, 40px);
        position: relative;
        width: fit-content;
        transform: rotate(-8deg) translateX(24px);
        margin: 0 0 8px;
        text-shadow: 0 0 4px #d7dcd1;
        color: #291209;
    }

    .fv_inr01_box_txt01::before {
        content: "";
        position: absolute;
        left: -0.4em;
        height: 100%;
        width: 1px;
        background: #291209;
        transform: rotate(-20deg);
        box-shadow: 0 0 4px #d7dcd1;
    }

    .fv_inr01_box_txt01::after {
        content: "";
        position: absolute;
        right: -0.4em;
        height: 100%;
        width: 1px;
        background: #291209;
        transform: rotate(20deg);
        box-shadow: 0 0 4px #d7dcd1;
    }

    .fv_inr01_box_txt02 {
        font-size: 12px;
        text-align: center;
        margin: 0 auto 16px;
    }



    .fv_inr_box_ttl {
        font-size: clamp(38px, 5vw, 54px);
        text-align: center;
        letter-spacing: 4px;
        color: #291209;
        text-shadow: 0 0 4px #d7dcd1;
    }

    .fv_inr_box_ttl > span {
        position: relative;
        z-index: 1;
    }

    .fv_inr_box_ttl > span::before {
        content: "";
        width: 100%;
        height: 1em;
        position: absolute;
        bottom: 0;
        left: 50%;
        display: block;
        z-index: -1;
        background: linear-gradient(90deg, #fff 0%, #F0F3F5 80%, transparent 100%);
        transform: translateX(-50%);
    }

    .fv_inr_box_ttl span span {
        font-size: 74%;
    }

    .fv_inr_box_ttl span strong {
        position: relative;
        font-weight: normal;
    }

    .fv_inr_box_ttl strong::after {
        content: "・・・・";
        position: absolute;
        left: 0;
        top: -0.8em;
    }

    img.fv_img01 {
        width: 94%;
        margin: 0 auto;
        display: block;
        box-shadow: 1vw 1vw 0 0 rgba(0, 0, 0, 0.4);
    }








    .fv_inr02 {
        max-width: 1280px;
        margin: 0 auto;
        height: 30vh;
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        align-content: center;
        padding: 0 20px;
    }

    .fv_inr02_box {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        grid-gap: 20px;
    }



    a.insta_btn {
        text-align: center;
        position: relative;
        text-decoration: none;
        color: #fff;
        line-height: 1.2em;
        display: grid;
        grid-template-columns: 10% 1fr 8%;
        align-items: center;
        border-radius: 5em;
        height: 70px;
        background: linear-gradient(-20deg, rgba(254, 212, 117, 1) 0%, rgba(229, 61, 93, 1) 46%, rgba(194, 49, 134, 1) 70%, rgba(156, 56, 187, 1) 100%);
        font-family: sans-serif;
        padding: 0 20px;
        font-size: 16px;
        max-width: 310px;
        margin: 0 auto;
    }


    a.line_btn {
        background: #2dad38;
        text-align: center;
        position: relative;
        text-decoration: none;
        color: #fff;
        line-height: 1.2em;
        display: grid;
        grid-template-columns: 10% 1fr 8%;
        align-items: center;
        border-radius: 5em;
        height: 70px;
        font-family: sans-serif;
        padding: 0 20px;
        font-size: 16px;
        max-width: 310px;
        margin: 0 auto;
    }

    a.insta_btn span,
    a.line_btn span {
        display: block;
        width: fit-content;
        text-align: left;
        margin: 0 auto;
    }


















    section#s01 {
        background: url(img/s01_bg00.png);
        background-repeat: no-repeat;
        background-position: center top;
        background-size: 360%;
        padding-top: 150px;
        margin: 0 0 14vw;
    }



    .s01_inr {
        max-width: 1280px;
        padding: 0 20px;
        margin: 0 auto;
        position: relative;
    }


    .s01_inr::after {
        position: absolute;
    }


    h2.s01_inr_ttl {
        font-size: clamp(22px, 4vw, 40px);
        margin: 0 0 30px;
        font-weight: normal;
        padding-left: 4vw;
        height: 4em;
        display: flex;
        align-items: center;
        line-height: 1.4em;
    }

    h2.s01_inr_ttl::before {
        content: "";
        width: 4em;
        height: 4em;
        background: #d8ded3;
        position: absolute;
        left: 0;
        z-index: -1;
    }

    h2.s01_inr_ttl span strong {
        font-size: 120%;
        font-weight: normal;
        vertical-align: text-bottom;
    }

    .s01_inr_box {
        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 2vw;
        max-width: 1280px;
        margin: 0 auto;
    }

    .s01_inr_box_blc_element {
        position: relative;
        width: fit-content;
        margin: 0 auto;
    }

    .s01_inr_box_blc_element::before {
        content: "";
        width: 80px;
        height: 1px;
        background: #222;
        position: absolute;
        animation: 0;
        left: -20px;
        top: 20px;
        transform: rotate(-45deg);
    }

    .s01_inr_box_blc_element img {
        width: 100%;
        margin: 0 0 0 auto;
        display: block;
    }

    .call_to_action_wrap {
        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 10px;
    }

    p.s01_inr_box_blc_txt02 {
        font-size: clamp(16px, 2.2vw, 22px);
        letter-spacing: 1px;
        margin: 0 0 40px;
    }

    p.s01_inr_box_blc_txt02 strong {
        padding: 4px;
        background: linear-gradient(#fff 0%, #fff 50%, #d9e0d5 50%, #d9e0d5 100%);
    }


























    section#s02 {
        background: url(img/s02_bg00.png);
        background-repeat: no-repeat;
        background-position: center top;
        background-size: 360%;
        padding-top: 150px;
        margin: 0 0 14vw;
    }



    .s02_inr {
        max-width: 1280px;
        padding: 0 20px;
        margin: 0 auto;
        position: relative;
    }


    .s02_inr::after {
        position: absolute;
    }


    h2.s02_inr_ttl {
        font-size: clamp(24px, 4vw, 40px);
        margin: 0 0 30px;
        font-weight: normal;
        padding-left: 4vw;
        height: 4em;
        display: flex;
        align-items: center;
        line-height: 1.4em;
    }

    h2.s02_inr_ttl::before {
        content: "";
        width: 4em;
        height: 4em;
        background: #d8ded3;
        position: absolute;
        left: 0;
        z-index: -1;
    }

    h2.s02_inr_ttl span strong {
        font-size: 120%;
        font-weight: normal;
        vertical-align: text-bottom;
    }


    .s02_inr_box {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        grid-gap: 4vw;
    }

    .s02_inr_box_blc_txt01 {
        font-size: 24px;
    }

    .s02_inr_box_blc_txt02 {
        font-size: clamp(22px, 2.6vw, 32px);
        line-height: 1.4em;
        margin: 0 0 30px;
        padding: 0 0 2vw;
        position: relative;
    }

    .s02_inr_box_blc_txt02::before {
        content: "";
        width: 200px;
        height: 2px;
        position: absolute;
        left: 0;
        bottom: -6px;
        background: #222;
    }

    .s02_inr_box_blc_txt02::after {
        content: "";
        width: 200px;
        height: 4px;
        position: absolute;
        left: 0;
        bottom: 0;
        background: #222;
    }

    .s02_inr_box_blc_txt03 {
        font-family: sans-serif;
        font-size: clamp(16px, 2vw, 18px);
        text-align: justify;
        margin-bottom: 5vw;
    }

    .s02_inr_box_blc_img00 {
        position: relative;
    }

    .s02_inr_box_blc_img00::before {
        content: "";
        width: 80px;
        height: 1px;
        background: #222;
        position: absolute;
        animation: 0;
        left: -20px;
        top: 20px;
        transform: rotate(-45deg);
    }














    section#s03 {
        background: url(img/s03_bg00.png);
        background-repeat: no-repeat;
        background-position: center top;
        background-size: 360%;
        padding-top: 150px;
        margin: 0 0 14vw;
    }



    .s03_inr01,
    .s03_inr02,
    .s03_inr03 {
        max-width: 1280px;
        padding: 0 20px;
        margin: 0 auto 4vw;
        position: relative;
    }


    .s03_inr01::after {
        position: absolute;
    }


    h2.s03_inr01_ttl {
        font-size: clamp(24px, 4vw, 40px);
        margin: 0 0 8vw;
        font-weight: normal;
        padding-left: 4vw;
        height: 4em;
        display: flex;
        align-items: center;
        line-height: 1.4em;
    }

    h2.s03_inr01_ttl::before {
        content: "";
        width: 4em;
        height: 4em;
        background: #d8ded3;
        position: absolute;
        left: 0;
        z-index: -1;
    }

    h2.s03_inr01_ttl span strong {
        font-size: 120%;
        font-weight: normal;
        letter-spacing: 4px;
        vertical-align: text-bottom;
    }





    .table_container table {
        width: 600px;
        margin: 0 auto;
        text-align: center;
        border-spacing: 0
    }

    .table_container table * {
        padding: 14px;
        line-height: 1.4em;
        height: 40px;
        font-family: sans-serif;
    }

    .table_container table tr *:first-child {
        text-align: left;
    }

    .bg_ptn01 {
        background: #4b5949;
        color: #fff;
        border-top: solid 1.4vw;
    }

    .bg_ptn02 {
        background: #d9e0d5;
        font-size: clamp(16px, 2vw, 18px);
    }

    .bg_ptn03 {
        background: #f5dfd3;
        font-size: clamp(16px, 2vw, 18px);
    }

    .bg_ptn04 {
        background: #f1ba95;
        font-size: clamp(16px, 2vw, 18px);
    }

    .bg_ptn05 {
        background: #e25a18;
        color: #fff;
        font-size: clamp(16px, 2vw, 18px);
    }

    .color_e25a18 {
        color: #e25a18;
        font-size: 160%;
        font-weight: bold;
    }



    .s03_inr02_head,
    .s03_inr03_head {
        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 2vw;
        align-items: center;
        font-family: sans-serif;
        margin: 0 0 4vw;
    }

    .s03_inr02_ttl,
    .s03_inr03_ttl {
        font-size: clamp(22px, 4vw, 28px);
    }


    .s03_inr02_box {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        text-align: center;
        grid-gap: 2vw;
        margin: 0 0 4vw;
    }

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

    .s03_inr02_box_blc h3 {
        grid-column: 1 / 3;
        margin: 0;
    }

    .s03_inr02_box_blc p {
        font-family: sans-serif;
        margin: 0;
    }

    .s03_inr03_box {
        max-width: 990px;
        margin: 0 auto;
    }

    .s03_inr03_box_blc {
        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 40px;
        margin: 0 0 40px;
        background: #f1f1f1;
        padding: 20px;
    }

    .s03_inr03_box_blc strong {
        padding: 4px;
        background: linear-gradient(#f1f1f1 0%, #f1f1f1 50%, #d9e0d5 50%, #d9e0d5 100%);
    }

    .s03_inr03_box_blc_line {
        height: 25%;
        width: 2px;
        background: #222;
        margin: 0 auto;
        position: relative;
        display: none;
    }

    .s03_inr03_box_blc_line::before {}

    .s03_inr03_box_blc_line::after {}

    .s03_inr03_box_blc h3 {
        font-size: clamp(16px, 2vw, 18px);
        font-family: sans-serif;
        margin: 0 0 1vw;
        padding-left: 1vw;
        border-left: solid 4px;
    }

    .s03_inr03_box_blc p {
        font-family: sans-serif;
        line-height: 1.6em;
        text-align: justify;
    }














    section#s04 {
        background: url(img/s04_bg00.png);
        background-repeat: no-repeat;
        background-position: center top;
        background-size: 360%;
        padding-top: 150px;
        margin: 0 0 14vw;
    }



    .s04_inr {
        max-width: 1280px;
        padding: 0 20px;
        margin: 0 auto;
        position: relative;
    }


    .s04_inr::after {
        position: absolute;
    }


    h2.s04_inr_ttl {
        font-size: clamp(24px, 4vw, 40px);
        margin: 0 0 30px;
        font-weight: normal;
        padding-left: 4vw;
        height: 4em;
        display: flex;
        align-items: center;
        line-height: 1.4em;
    }

    h2.s04_inr_ttl::before {
        content: "";
        width: 4em;
        height: 4em;
        background: #d8ded3;
        position: absolute;
        left: 0;
        z-index: -1;
    }

    p.s04_inr_txt01 {
        display: block;
        margin: 0 0 2vw auto;
        font-family: sans-serif;
        line-height: 1.6em;
        max-width: calc(1280px + 300px - 32%);
    }

    h2.s04_inr_ttl span strong {
        font-size: 120%;
        font-weight: normal;
        letter-spacing: 4px;
        vertical-align: text-bottom;
    }

    .s04_inr_box {
        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 2vw;
        max-width: 1280px;
        margin: 0 auto;
    }

    .s04_inr_box_blc_element {
        position: relative;
        width: fit-content;
        margin: 0 auto;
    }

    .s04_inr_box_blc_element::before {
        content: "";
        width: 80px;
        height: 1px;
        background: #222;
        position: absolute;
        animation: 0;
        left: -20px;
        top: 20px;
        transform: rotate(-45deg);
    }

    .s04_inr_box_blc_element img {
        width: 100%;
        margin: 0 0 0 auto;
        display: block;
    }

    .s04_inr_box_blc ul {
        font-size: clamp(20px, 2.4vw, 30px);
        line-height: 2em;
        margin: 20px 0 40px;
        list-style: none;
        position: relative;
        padding: 0;
        letter-spacing: -1px;
    }

    .s04_inr_box_blc ul li {
        position: relative;
        padding-left: 32px;
    }

    .s04_inr_box_blc ul li::before {
        content: url(img/s04_inr_box_blc_ul_marker.png);
        position: absolute;
        top: 50%;
        left: -22px;
        transform: scale(0.3) translateY(-160%);
    }
















    section#s05 {
        background: url(img/s05_bg00.png);
        background-repeat: no-repeat;
        background-position: center top;
        background-size: 360%;
        padding-top: 150px;
        margin: 0 0 14vw;
    }



    .s05_inr01 {
        max-width: 1280px;
        padding: 0 20px;
        margin: 0 auto 4vw;
        position: relative;
    }


    .s05_inr01::after {
        position: absolute;
    }


    h2.s05_inr01_ttl {
        font-size: clamp(24px, 4vw, 40px);
        margin: 0 0 30px;
        font-weight: normal;
        padding-left: 4vw;
        height: 4em;
        display: flex;
        align-items: center;
        line-height: 1.4em;
    }

    h2.s05_inr01_ttl::before {
        content: "";
        width: 4em;
        height: 4em;
        background: #d8ded3;
        position: absolute;
        left: 0;
        z-index: -1;
    }


    .s05_inr01_txt {
        font-size: clamp(22px, 4vw, 28px);
        font-family: sans-serif;
        margin: 4vw 0 2vw;
    }

    .s05_inr01_box {
        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 16px;
        margin: 0 0 30px;
    }

    .s05_inr01_box_blc {
        display: grid;
        grid-template-columns: 1fr;
        background: #f7f8e7;
        border-radius: 1vw;
        padding: 12px;
        height: 100%;
        box-sizing: border-box;
        align-items: center;
        font-family: sans-serif;
        border: solid 2px #f7f8e7;
        font-size: 14px;
    }

    .s05_inr01_box_blc ul {
        padding-left: 1em;
        font-size: 14px;
    }

    .s05_inr01_box_blc.all_course {
        align-self: center;
        display: block;
        align-content: center;
        background: none;
        border: solid 2px #ccc;
    }





    .s05_inr01_box_blc_tag {
        background: #4b5949;
        color: #fff;
        line-height: 1em;
        padding: 5px 14px;
        width: fit-content;
        border-radius: 2em;
        font-size: 14px;
        margin: 0 0 10px;
    }

    .s05_inr01_box_blc h2 {
        margin: 1vw 0;
        font-family: sans-serif;
        line-height: 1.2em;
        letter-spacing: 1px;
    }

    .s05_inr01_box_blc_price {
        font-size: clamp(24px, 3vw, 36px);
        font-weight: bold;
        font-family: "Zen Kaku Gothic Antique", sans-serif;
    }

    .s05_inr01_box_blc_price span {
        font-size: 60%;
    }

    .ninki_tag_parent {
        border: solid 4px #f08719;
        position: relative;
        padding: 30px 12px 20px;
    }

    img.ninki_tag {
        position: absolute;
        top: -8px;
        left: -4px;
        width: 80px;
    }














    section#s06 {
        font-family: sans-serif;
        max-width: 900px;
        margin: 0 auto;
        padding: 0 20px;
    }



    .s06_inr01 {
        margin: 0 auto 4vw;
        position: relative;
    }

    .s06_inr01_txt {
        font-size: clamp(22px, 4vw, 28px);
        margin: 4vw 0 2vw;
    }

    /*アコーディオン全体*/
    .accordion-area {
        list-style: none;
        margin: 0 auto;
        padding: 0;
    }

    .accordion-area li {
        margin: 10px 0;
    }

    .accordion-area section {
        border: 1px solid #ccc;
    }

    /*アコーディオンタイトル*/
    .title {
        position: relative;
        /*+マークの位置基準とするためrelative指定*/
        cursor: pointer;
        font-size: 1rem;
        font-weight: normal;
        padding: 0 30px;
        transition: all .5s ease;
    }

    /*アイコンの＋と×*/
    .title::before,
    .title::after {
        position: absolute;
        content: '';
        width: 15px;
        height: 2px;
        background-color: #333;

    }

    .title::before {
        top: 48%;
        right: 15px;
        transform: rotate(0deg);

    }

    .title::after {
        top: 48%;
        right: 15px;
        transform: rotate(90deg);

    }

    /*　closeというクラスがついたら形状変化　*/
    .title.close::before {
        transform: rotate(45deg);
    }

    .title.close::after {
        transform: rotate(-45deg);
    }

    /*アコーディオンで現れるエリア*/
    .box {
        display: none;
        /*はじめは非表示*/
        background: #f3f3f3;
        padding: 1px 20px 1px 30px;
    }


    span.qanda_q {
        position: absolute;
        left: 10px;
        top: auto;
    }

    span.qanda_a {
        position: absolute;
        left: 10px;
        top: auto;
    }


    .call_to_action_wrap.w100 {
        max-width: 100%;
        margin-bottom: 4vw;
    }

    a.line_btn.center {}







    footer {
        background: #4b5949;
        text-align: center;
        padding: 10px;
    }

    .footer_logo {
        width: 40px;
    }

}




















































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


    .pc_none {
        display: none;
    }

    body {
        font-family: "Shippori Mincho", serif;
        padding: 0;
        margin: 0;
    }

    img {
        max-width: 100%;
    }



    .fv {
        background: url(img/fv_bg.jpg);
        height: 100vh;
        background-size: 2600px;
        background-position: center;
        margin: 0 0 6vw;
    }

    .fv_inr01 {
        max-width: 1000px;
        margin: 0 auto;
        height: 68vh;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        align-content: end;
    }

    .fv_inr01_box_txt01 {
        font-size: clamp(22px, 3vw, 40px);
        position: relative;
        width: fit-content;
        transform: rotate(-8deg);
        margin: 0 0 1vw;
    }

    .fv_inr01_box_txt01::before {
        content: "";
        position: absolute;
        left: -0.4em;
        height: 100%;
        width: 1px;
        background: #291209;
        transform: rotate(-20deg);
    }

    .fv_inr01_box_txt01::after {
        content: "";
        position: absolute;
        right: -0.4em;
        height: 100%;
        width: 1px;
        background: #291209;
        transform: rotate(20deg);
    }

    .fv_inr01_box_txt02 {
        font-size: 11px;
        text-align: center;
        margin: 0 auto 2vw;
    }



    .fv_inr_box_ttl {
        font-size: clamp(30px, 5vw, 54px);
        text-align: center;
        letter-spacing: 4px;
        color: #291209;
    }

    .fv_inr_box_ttl > span {
        position: relative;
        z-index: 1;
    }

    .fv_inr_box_ttl > span::before {
        content: "";
        width: 100%;
        height: 1em;
        position: absolute;
        bottom: 0;
        left: 50%;
        display: block;
        z-index: -1;
        background: linear-gradient(90deg, #fff 0%, #F0F3F5 80%, transparent 100%);
        transform: translateX(-50%);
    }

    .fv_inr_box_ttl span span {
        font-size: 74%;
    }

    .fv_inr_box_ttl span strong {
        position: relative;
        font-weight: normal;
    }

    .fv_inr_box_ttl strong::after {
        content: "・・・・";
        position: absolute;
        left: 0;
        top: -0.8em;
    }

    img.fv_img01 {
        width: 80%;
        margin: 0 auto;
        display: block;
        box-shadow: 1vw 1vw 0 0 rgba(0, 0, 0, 0.4);
    }








    .fv_inr02 {
        max-width: 1280px;
        margin: 0 auto;
        height: 32vh;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        align-content: center;
        padding: 0 25px;
    }

    .fv_inr02_box {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 20px;
    }



    a.insta_btn {
        text-align: center;
        position: relative;
        text-decoration: none;
        color: #fff;
        line-height: 1.2em;
        display: grid;
        grid-template-columns: 10% 1fr 8%;
        align-items: center;
        border-radius: 5em;
        height: 70px;
        background: linear-gradient(-20deg, rgba(254, 212, 117, 1) 0%, rgba(229, 61, 93, 1) 46%, rgba(194, 49, 134, 1) 70%, rgba(156, 56, 187, 1) 100%);
        font-family: sans-serif;
        padding: 0 20px;
        font-size: clamp(10px, 1.2vw, 16px);
        max-width: 310px;
        margin: 0 0 0 auto;
    }


    a.line_btn {
        background: #2dad38;
        text-align: center;
        position: relative;
        text-decoration: none;
        color: #fff;
        line-height: 1.2em;
        display: grid;
        grid-template-columns: 10% 1fr 8%;
        align-items: center;
        border-radius: 5em;
        height: 70px;
        font-family: sans-serif;
        padding: 0 20px;
        font-size: clamp(10px, 1.2vw, 16px);
        max-width: 310px;
        margin: 0 0 0 auto;
    }

    a.insta_btn span,
    a.line_btn span {
        display: block;
        width: fit-content;
        text-align: left;
        margin: 0 auto;
    }


















    section#s01 {
        background: url(img/s01_bg00.png);
        background-repeat: no-repeat;
        background-position: center top;
        background-size: 220vw;
        padding-top: 24vw;
        margin: 0 0 14vw;
    }



    .s01_inr {
        max-width: 1280px;
        padding: 0 25px;
        margin: 0 auto;
        position: relative;
    }


    .s01_inr::after {
        position: absolute;
    }


    h2.s01_inr_ttl {
        font-size: clamp(24px, 4vw, 40px);
        margin: 0 0 2vw;
        font-weight: normal;
        padding-left: 4vw;
        height: 4em;
        display: flex;
        align-items: center;
        line-height: 1.4em;
    }

    h2.s01_inr_ttl::before {
        content: "";
        width: 4em;
        height: 4em;
        background: #d8ded3;
        position: absolute;
        left: 0;
        z-index: -1;
    }

    h2.s01_inr_ttl span strong {
        font-size: 120%;
        font-weight: normal;
        letter-spacing: 4px;
        vertical-align: text-bottom;
    }

    .s01_inr_box {
        display: grid;
        grid-template-columns: 32% 1fr;
        grid-gap: 2vw;
        max-width: 1280px;
        margin: 0 auto;
    }

    .s01_inr_box_blc_element {
        position: relative;
        width: fit-content;
        margin: 0 0 0 auto;
    }

    .s01_inr_box_blc_element::before {
        content: "";
        width: 80px;
        height: 1px;
        background: #222;
        position: absolute;
        animation: 0;
        left: -20px;
        top: 20px;
        transform: rotate(-45deg);
    }

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

    .call_to_action_wrap {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        max-width: 615px;
        grid-gap: 20px;
        margin: 0 0 0 auto;
    }

    p.s01_inr_box_blc_txt02 {
        font-size: clamp(16px, 2.2vw, 22px);
        letter-spacing: 1px;
        margin: 0 0 4vw;
    }

    p.s01_inr_box_blc_txt02 strong {
        padding: 4px;
        background: linear-gradient(#fff 0%, #fff 50%, #d9e0d5 50%, #d9e0d5 100%);
    }


























    section#s02 {
        background: url(img/s02_bg00.png);
        background-repeat: no-repeat;
        background-position: center top;
        background-size: 220vw;
        padding-top: 24vw;
        margin: 0 0 14vw;
    }



    .s02_inr {
        max-width: 1280px;
        padding: 0 25px;
        margin: 0 auto;
        position: relative;
    }


    .s02_inr::after {
        position: absolute;
    }


    h2.s02_inr_ttl {
        font-size: clamp(24px, 4vw, 40px);
        margin: 0 0 2vw;
        font-weight: normal;
        padding-left: 4vw;
        height: 4em;
        display: flex;
        align-items: center;
        line-height: 1.4em;
    }

    h2.s02_inr_ttl::before {
        content: "";
        width: 4em;
        height: 4em;
        background: #d8ded3;
        position: absolute;
        left: 0;
        z-index: -1;
    }

    h2.s02_inr_ttl span strong {
        font-size: 120%;
        font-weight: normal;
        letter-spacing: 4px;
        vertical-align: text-bottom;
    }


    .s02_inr_box {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-gap: 4vw;
    }

    .s02_inr_box_blc_txt01 {
        font-size: 24px;
    }

    .s02_inr_box_blc_txt02 {
        font-size: clamp(22px, 2.6vw, 32px);
        line-height: 1.4em;
        margin: 0 0 2vw;
        padding: 0 0 2vw;
        position: relative;
    }

    .s02_inr_box_blc_txt02::before {
        content: "";
        width: 200px;
        height: 2px;
        position: absolute;
        left: 0;
        bottom: -6px;
        background: #222;
    }

    .s02_inr_box_blc_txt02::after {
        content: "";
        width: 200px;
        height: 4px;
        position: absolute;
        left: 0;
        bottom: 0;
        background: #222;
    }

    .s02_inr_box_blc_txt03 {
        font-family: sans-serif;
        font-size: clamp(16px, 2vw, 18px);
        text-align: justify;
        margin-bottom: 5vw;
    }

    .s02_inr_box_blc_img00 {
        position: relative;
    }

    .s02_inr_box_blc_img00::before {
        content: "";
        width: 80px;
        height: 1px;
        background: #222;
        position: absolute;
        animation: 0;
        left: -20px;
        top: 20px;
        transform: rotate(-45deg);
    }














    section#s03 {
        background: url(img/s03_bg00.png);
        background-repeat: no-repeat;
        background-position: center top;
        background-size: 220vw;
        padding-top: 24vw;
        margin: 0 0 14vw;
    }



    .s03_inr01,
    .s03_inr02,
    .s03_inr03 {
        max-width: 1280px;
        padding: 0 25px;
        margin: 0 auto 4vw;
        position: relative;
    }


    .s03_inr01::after {
        position: absolute;
    }


    h2.s03_inr01_ttl {
        font-size: clamp(24px, 4vw, 40px);
        margin: 0 0 8vw;
        font-weight: normal;
        padding-left: 4vw;
        height: 4em;
        display: flex;
        align-items: center;
        line-height: 1.4em;
    }

    h2.s03_inr01_ttl::before {
        content: "";
        width: 4em;
        height: 4em;
        background: #d8ded3;
        position: absolute;
        left: 0;
        z-index: -1;
    }

    h2.s03_inr01_ttl span strong {
        font-size: 120%;
        font-weight: normal;
        letter-spacing: 4px;
        vertical-align: text-bottom;
    }





    .table_container table {
        max-width: 1000px;
        width: 100%;
        margin: 0 auto;
        text-align: center;
        border-spacing: 0
    }

    .table_container table * {
        padding: 14px;
        line-height: 1.4em;
        height: 40px;
        font-family: sans-serif;
    }

    .table_container table tr *:first-child {
        text-align: left;
    }

    .bg_ptn01 {
        background: #4b5949;
        color: #fff;
        border-top: solid 1.4vw;
    }

    .bg_ptn02 {
        background: #d9e0d5;
        font-size: clamp(16px, 2vw, 18px);
    }

    .bg_ptn03 {
        background: #f5dfd3;
        font-size: clamp(16px, 2vw, 18px);
    }

    .bg_ptn04 {
        background: #f1ba95;
        font-size: clamp(16px, 2vw, 18px);
    }

    .bg_ptn05 {
        background: #e25a18;
        color: #fff;
        font-size: clamp(16px, 2vw, 18px);
    }

    .color_e25a18 {
        color: #e25a18;
        font-size: 160%;
        font-weight: bold;
    }



    .s03_inr02_head,
    .s03_inr03_head {
        display: grid;
        grid-template-columns: auto 1fr auto;
        grid-gap: 2vw;
        align-items: center;
        font-family: sans-serif;
        margin: 0 0 4vw;
    }

    .s03_inr02_ttl,
    .s03_inr03_ttl {
        font-size: clamp(22px, 4vw, 28px);
    }


    .s03_inr02_box {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        text-align: center;
        grid-gap: 2vw;
        margin: 0 0 4vw;
    }

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

    .s03_inr02_box_blc h3 {
        grid-column: 1 / 3;
        margin: 0;
    }

    .s03_inr02_box_blc p {
        font-family: sans-serif;
        margin: 0;
    }

    .s03_inr03_box {
        max-width: 990px;
        margin: 0 auto;
    }

    .s03_inr03_box_blc {
        display: grid;
        grid-template-columns: 230px 50px 1fr;
        grid-gap: 4vw;
        margin: 0 0 4vw;
    }

    .s03_inr03_box_blc strong {
        padding: 4px;
        background: linear-gradient(#fff 0%, #fff 50%, #d9e0d5 50%, #d9e0d5 100%);
    }

    .s03_inr03_box_blc_line {
        height: 25%;
        width: 2px;
        background: #222;
        margin: 0 auto;
        position: relative;
    }

    .s03_inr03_box_blc_line::before {
        content: "";
        position: absolute;
        top: 100%;
        width: 2px;
        height: 60%;
        background: #222;
        transform: rotate(45deg);
        transform-origin: top;
    }

    .s03_inr03_box_blc_line::after {
        content: "";
        position: absolute;
        top: 150%;
        width: 2px;
        height: 230%;
        background: #222;
    }

    .s03_inr03_box_blc h3 {
        font-size: clamp(16px, 2vw, 18px);
        font-family: sans-serif;
        margin: 0 0 1vw;
        padding-left: 1vw;
        border-left: solid 4px;
    }

    .s03_inr03_box_blc p {
        font-family: sans-serif;
        line-height: 1.6em;
        text-align: justify;
    }














    section#s04 {
        background: url(img/s04_bg00.png);
        background-repeat: no-repeat;
        background-position: center top;
        background-size: 220vw;
        padding-top: 24vw;
        margin: 0 0 14vw;
    }



    .s04_inr {
        max-width: 1280px;
        padding: 0 25px;
        margin: 0 auto;
        position: relative;
    }


    .s04_inr::after {
        position: absolute;
    }


    h2.s04_inr_ttl {
        font-size: clamp(24px, 4vw, 40px);
        margin: 0 0 2vw;
        font-weight: normal;
        padding-left: 4vw;
        height: 4em;
        display: flex;
        align-items: center;
        line-height: 1.4em;
    }

    h2.s04_inr_ttl::before {
        content: "";
        width: 4em;
        height: 4em;
        background: #d8ded3;
        position: absolute;
        left: 0;
        z-index: -1;
    }

    p.s04_inr_txt01 {
        display: block;
        margin: 0 0 2vw auto;
        font-family: sans-serif;
        line-height: 1.6em;
        max-width: calc(1280px + 300px - 32%);
    }

    h2.s04_inr_ttl span strong {
        font-size: 120%;
        font-weight: normal;
        letter-spacing: 4px;
        vertical-align: text-bottom;
    }

    .s04_inr_box {
        display: grid;
        grid-template-columns: 32% 1fr;
        grid-gap: 2vw;
        max-width: 1280px;
        margin: 0 auto;
    }

    .s04_inr_box_blc_element {
        position: relative;
        width: fit-content;
        margin: 0 0 0 auto;
    }

    .s04_inr_box_blc_element::before {
        content: "";
        width: 80px;
        height: 1px;
        background: #222;
        position: absolute;
        animation: 0;
        left: -20px;
        top: 20px;
        transform: rotate(-45deg);
    }

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

    .s04_inr_box_blc ul {
        font-size: clamp(18px, 2.4vw, 30px);
        line-height: 2em;
        margin: 0 0 4vw;
        list-style: none;
        position: relative;
        padding: 0;
    }

    .s04_inr_box_blc ul li {
        position: relative;
        padding-left: 64px;
    }

    .s04_inr_box_blc ul li::before {
        content: url(img/s04_inr_box_blc_ul_marker.png);
        position: absolute;
        top: 50%;
        left: 0;
        transform: scale(0.5) translateY(-86%);
    }
















    section#s05 {
        background: url(img/s05_bg00.png);
        background-repeat: no-repeat;
        background-position: center top;
        background-size: 220vw;
        padding-top: 24vw;
        margin: 0 0 14vw;
    }



    .s05_inr01 {
        max-width: 1280px;
        padding: 0 25px;
        margin: 0 auto 4vw;
        position: relative;
    }


    .s05_inr01::after {
        position: absolute;
    }


    h2.s05_inr01_ttl {
        font-size: clamp(24px, 4vw, 40px);
        margin: 0 0 2vw;
        font-weight: normal;
        padding-left: 4vw;
        height: 4em;
        display: flex;
        align-items: center;
        line-height: 1.4em;
    }

    h2.s05_inr01_ttl::before {
        content: "";
        width: 4em;
        height: 4em;
        background: #d8ded3;
        position: absolute;
        left: 0;
        z-index: -1;
    }


    .s05_inr01_txt {
        font-size: clamp(22px, 4vw, 28px);
        font-family: sans-serif;
        margin: 4vw 0 2vw;
    }

    .s05_inr01_box {
        display: grid;
        grid-template-columns: 2fr 1fr;
        grid-gap: 1vw;
        margin: 0 0 2vw;
    }

    .s05_inr01_box_blc {
        display: grid;
        grid-template-columns: 1fr 2fr;
        background: #f7f8e7;
        border-radius: 1vw;
        padding: 20px;
        height: 100%;
        box-sizing: border-box;
        align-items: center;
        font-family: sans-serif;
        border: solid 2px #f7f8e7;
    }

    .s05_inr01_box_blc ul {
        padding-left: 1.4em;
    }

    .s05_inr01_box_blc.all_course {
        grid-column: 2 / 3;
        grid-row: 1 / 5;
        align-self: center;
        display: block;
        align-content: center;
        background: none;
        border: solid 2px #ccc;
    }





    .s05_inr01_box_blc_tag {
        background: #4b5949;
        color: #fff;
        line-height: 1em;
        padding: 5px 14px;
        width: fit-content;
        border-radius: 2em;
        font-size: 14px;
    }

    .s05_inr01_box_blc h2 {
        margin: 1vw 0;
        font-family: sans-serif;
        line-height: 1.2em;
        letter-spacing: 1px;
    }

    .s05_inr01_box_blc_price {
        font-size: clamp(24px, 3vw, 36px);
        font-weight: bold;
        font-family: "Zen Kaku Gothic Antique", sans-serif;
    }

    .s05_inr01_box_blc_price span {
        font-size: 60%;
    }

    .ninki_tag_parent {
        border: solid 4px #f08719;
        position: relative;
    }

    img.ninki_tag {
        position: absolute;
        top: -8px;
        left: -4px;
        width: 120px;
    }














    section#s06 {
        font-family: sans-serif;
        max-width: 900px;
        margin: 0 auto;
        padding: 0 25px;
    }



    .s06_inr01 {
        margin: 0 auto 4vw;
        position: relative;
    }

    .s06_inr01_txt {
        font-size: clamp(22px, 4vw, 28px);
        margin: 4vw 0 2vw;
    }


    /*アコーディオン全体*/
    .accordion-area {
        list-style: none;
        margin: 0 auto;
        padding: 0;
    }

    .accordion-area li {
        margin: 10px 0;
    }

    .accordion-area section {
        border: 1px solid #ccc;
    }

    /*アコーディオンタイトル*/
    .title {
        position: relative;
        /*+マークの位置基準とするためrelative指定*/
        cursor: pointer;
        font-size: 1rem;
        font-weight: normal;
        padding: 0 3% 0 50px;
        transition: all .5s ease;
    }

    /*アイコンの＋と×*/
    .title::before,
    .title::after {
        position: absolute;
        content: '';
        width: 15px;
        height: 2px;
        background-color: #333;

    }

    .title::before {
        top: 48%;
        right: 15px;
        transform: rotate(0deg);

    }

    .title::after {
        top: 48%;
        right: 15px;
        transform: rotate(90deg);

    }

    /*　closeというクラスがついたら形状変化　*/
    .title.close::before {
        transform: rotate(45deg);
    }

    .title.close::after {
        transform: rotate(-45deg);
    }

    /*アコーディオンで現れるエリア*/
    .box {
        display: none;
        /*はじめは非表示*/
        background: #f3f3f3;
        padding: 1px 5%;
    }


    span.qanda_q {
        position: absolute;
        left: 10px;
        top: auto;
    }

    span.qanda_a {
        position: absolute;
        left: 10px;
        top: auto;
    }


    .call_to_action_wrap.w100 {
        max-width: 100%;
        margin-bottom: 4vw;
    }

    a.line_btn.center {
        margin: 0;
    }







    footer {
        background: #4b5949;
        text-align: center;
        padding: 20px;
    }

    .footer_logo {
        width: 60px;
    }

}
