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




    /*メインビジュアル*/
    #keyimg {
        height: 50vw;
    }

    #keyimg .rap {
        width: 100%;
    }

    #keyimg #slider {
        width: 100% !important;
    }

    #keyimg #slider img {
        aspect-ratio: 320 / 165;
        object-fit: cover;
        width: 100%;

    }


    /**/
    main {
        border-top: none;
    }

    main #top_icons {
        margin-top: 0;
        width: 100%;
    }

    /*共通パーツ タイトル*/
    #s01 h2,
    #s03 h2,
    .setcourse h3,
    #s04 h2,
    #s07 h2 {
        width: auto;
        font-size: 18px;
        border-left: 5px solid #8CC11F;
        height: 35px;
        font-weight: 600;
        line-height: 1.5;
    }

    /*共通パーツ サイド余白*/
    #top_icons,
    #s01,
    #s03,
    .setcourse,
    #s04,
    #s05,
    #s07 {
        padding-inline: 3%;
    }


    /**/
    #s01 {
        margin-bottom: 60px;
        width: 100%;
    }

    #s01 p {
        margin-bottom: 20px;
        font-size: 16px;
    }

    #s01 ul {
        display: grid;
        gap: 20px;
        grid-template-columns: repeat(1, 1fr);

    }




    /**/
    #s03 {
        margin-bottom: 50px;
        width: 100%;
    }

    #s03 .box_rap ul {
        margin-inline: auto;
        max-width: 540px;
        width: 100%;
    }

    #s03 p.text01 {
        margin-bottom: 20px;
        font-size: 16px;
    }




    /**/

    .setcourse p {
        width: 100%;
        margin-bottom: 20px;
        font-size: 16px;
    }

    .setcourse ul {
        display: grid;
        gap: 20px;
        grid-template-columns: repeat(1, 1fr);
        width: 100%;
    }



    /**/

    #s04 {
        margin-bottom: 140px;
        width: 100%;
    }

    #s04 .box_rap .box h3 {
        display: flex;
        align-items: center;
        font-size: 18px;
        line-height: 1.5;
    }

    #s04 .box_rap .box .f15 {
        display: block;
    }

    #s04 .box_rap .box h3 .title {
        float: none;
        font-size: 32px;
        height: auto;
        line-height: 1.5;
        font-weight: 600;
    }

    #s04 .box_rap .box {
        width: 100%;
    }

    #s04 .box_rap .n08 img {
        float: none;
        margin: 0 auto 15px;
        display: block;
        max-width: 115px !important;
        padding: 0;
    }

    /**/
    #s05 {
        padding-bottom: 40px;
        margin-bottom: 50px;
    }

    #s05 h2 {
        margin-inline: auto;
        max-width: 300px;
        width: 55vw;
        margin-bottom: 60px;
    }

    #s05 .box_rap .box+.box {
        margin-top: 60px;
    }

    #s05 .box_rap {
        display: block;
        width: 100%;
    }

    #s05 .box_rap .box {
        width: 100%;
    }

    /**/

    #s07 {
        width: 100%;
    }

    #s07 .box {
        margin-bottom: 25px;
        width: 100%;
        border: 1px solid #bbb;
    }

    #s07 .box figcaption {
        padding: 5%;
    }

    #s07 .box img {
        border: none;
    }

    #s07 .box a {
        margin-bottom: 30px;
        padding: 10px;
        max-width: 210px;
        width: 100%;
        height: auto;
        font-size: 16px;
        background: #59B200;
    }

}