@media screen and (max-width: 1750px) {

    .idx_main h2 .txt_main {
        font-size: 3.5vw;
        align-self: flex-end;
    }

    .idx_main h2 .txt_main span.hl .front,
    .idx_main h2 .txt_main span.hl .stroke {
        font-size: 4.6vw;
    }


    .idx_main h2 .txt_main span.hl .front .txt_lg,
    .idx_main h2 .txt_main span.hl .stroke .txt_lg {
        font-size: 7vw;
    }
}

@media screen and (min-width: 751px) and (max-width: 1600px) {

    #top #wrapper {
        overflow: hidden !important;
    }

    .content .inner {
        box-sizing: border-box;
        max-width: 1300px;
        margin: 0 2vw;
    }

    /* header */
    .header .layout_h .h_logo {
        width: 300px;
    }

    .header .layout_h .h_navi {
        width: max-content;
        max-width: 1160px;
        padding: 20px 15px;
    }

    .header .layout_h .h_navi .h_contact02 .btn a {
        width: 200px;
    }

    .header .layout_h .h_navi .h_contact {
        margin-right: 0;
    }

    .header .layout_h .h_navi .gnavi>li>a,
    .header .layout_h .h_navi .gnavi>li>span {
        padding: 0 20px;
    }

    .idx_main h2 {
        width: 60vw;
        padding-right: 0;
    }

    .idx_main h2 .txt_main {
        font-size: 3.6vw;
        align-items: flex-end;
    }

    .idx_main h2 .txt_main .wrap_h2 .bg_decore {
        padding: 15px 20px 20px;
    }

    .idx_main h2 .txt_main .wrap_h2 .bg_decore .txt_decore {
        font-size: 1.8vw;
    }

    .idx_main h2 .txt_sub .sub01 {
        font-size: 2.6vw;
    }

    .idx_main h2 .txt_sub .sub02 {
        font-size: 2.8vw;
    }

    .idx_main h2 .txt_main span.hl:after {
        top: 1vw;
    }

    .idx_main:before {
        left: -10vw;
    }

    .idx_main .mvs_list {
        width: 57vw;
        margin-right: 2vw;
    }

    .sec_bn01 {
        background-size: cover;
    }

    .s03_box02:before {
        left: -2vw;
    }

    .s03_box02:after {
        right: -2vw;
    }

    .s02_col.it03 dl dd {
        padding-left: 8.5vw;
    }

    .s02_col.it01 dl dd {
        padding-left: 5vw;
    }

    #sec03:before {
        left: -11vw;
    }

    #sec03:after {
        right: -11vw;
    }

    #cta:after {
        right: 0;
    }

    #sec06 .s06_ttl {
        width: 50vw;
    }

    #sec06 .s06_content {
        padding-left: 5vw;
        padding-right: 2vw;
    }

    #sec06 .s06_box.box_right .s06_content {
        padding-right: 5vw;
        padding-left: 2vw;
    }

    #sec06 .s06_img {
        height: 100%;
    }

    #sec06 .s06_img img {
        height: 100%;
        object-fit: cover;
        object-position: left;
    }

    .s09_box {
        padding-left: 3vw;
    }

    .s09_left {
        padding-right: 3vw;
    }

    #sec09 h3 span::before {
        font-size: 14px;
    }

    .content .staffArticle .inner {
        margin: 0;
    }
}

@media screen and (min-width: 751px) and (max-width: 1300px) {
    .header .layout_h .h_navi {
        gap: 10px;
    }

    .header .layout_h .h_navi .gnavi>li>a,
    .header .layout_h .h_navi .gnavi>li>span {
        padding: 0 12px;
    }

    .header .layout_h .h_navi .h_contact02 .btn a {
        width: 200px;
    }

    .idx_main {}

    #cta:after {
        right: -5vw;
    }

    #sec05 {
        background-size: 100% 41vw;
    }

    #sec06 .s06_img {
        height: 100%;
    }

    #sec06 .s06_img img {
        height: 100%;
        object-fit: cover;
    }

    #sec06 .s06_box.box_left .s06_ttl h3 {
        right: 2vw;
    }

    #sec06 .s06_box.box_right .s06_ttl h3 {
        left: 2vw;
    }

    #sec09 h3 {
        font-size: 36px
    }

    .idx_main h2 .txt_main span.txt_ro {
        font-size: 6vw;
    }
}


@media screen and (max-width: 1270px) {
    .s09_left {
        width: 511px;
    }

    .s09_map {
        width: calc(100% - 511px);
    }

}

@media screen and (max-width: 1150px) {
    .idx_main h2 {
        padding-top: 14vw;
    }

    .idx_main h2 .txt_main {
        font-size: 3vw;
        text-align: right;
    }

    .idx_main h2 .txt_main span.hl {
        font-size: 4vw;
    }

    .idx_main h2 .txt_main span.hl .stroke {
        -webkit-text-stroke: 7pt #fff;
    }

    .idx_main h2 .txt_main span.txt_ro {
        font-size: 5vw;
    }

    .idx_main h2 .txt_sub span.txt_bg {
        font-size: 3vw;
    }
}

@media screen and (max-width: 1060px) {

    .idx_main h2 .txt_main span.hl .front,
    .idx_main h2 .txt_main span.hl .stroke {
        font-size: 5vw;
    }



}

@media screen and (min-width: 751px) {
    .pc {}

    .sp {
        display: none !important;
    }

    a[href^="tel:"] {
        pointer-events: none;
        cursor: default;
        text-decoration: none;
        color: inherit;
    }
}

@media screen and (max-width: 1280px) {}

@media screen and (max-width: 750px) {

    .idx_main h2 .txt_main span.hl .front .txt_lg,
    .idx_main h2 .txt_main span.hl .stroke .txt_lg {
        font-size: 11vw;
    }

    .pc {
        display: none !important;
    }

    .sp {
        display: block;
    }

    .sp_none {
        display: none;
    }

    .content .inner,
    .content .inner02 {
        max-width: 100%;
        padding: 0 3.4vw;
    }

    .header {
        height: auto;
        padding-right: 0;
        background: #fff;
    }


    .layout_h {
        position: relative;
        display: flex;
        flex-wrap: wrap;
    }

    .layout_h .logo_top {
        width: 100%;
        margin-bottom: 0;
        padding: 2vw 3vw;
        background: #FF2700;
        color: #fff;
        font-size: 11px;
        font-weight: bold;
        text-align: left;
    }

    .header .layout_h .h_logo {
        position: relative;
        width: 350px;
        padding: 15px 15px;
        text-align: left;
        box-shadow: none;
    }

    .header .layout_h .icon_menu {
        display: block !important;
        position: absolute;
        right: 30px;
        bottom: 33px;
    }

    .icon_menu {
        width: 45px;
        height: 24px;
    }

    .icon_menu span {
        display: block;
        background: #C7C7C7;
        height: 2px;
        position: relative;
        margin: 1px auto 0;
    }

    .icon_menu span:after,
    .icon_menu span:before {
        content: "";
        position: absolute;
        height: 2px;
        width: 100%;
        background: #C7C7C7;
        -webkit-transition: all ease 0.5s;
        -moz-transition: all ease 0.5s;
        -o-transition: all ease 0.5s;
        transition: all ease 0.5s;
        left: 0;
        right: 0;
        margin: 0 auto;
    }

    .icon_menu span:before {
        top: 6px;
    }

    .icon_menu span:after {
        bottom: -12px;
    }

    .icon_menu.active span {
        background: transparent;
    }

    .icon_menu.active span:before {
        -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
        -moz-transform: rotate(-45deg);
        -o-transform: rotate(-45deg);
        transform: rotate(-45deg);
        top: 10px;
    }

    .icon_menu.active span:after {
        -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
        -moz-transform: rotate(45deg);
        -o-transform: rotate(45deg);
        transform: rotate(45deg);
        bottom: -10px;
    }


    .gnavi_sp {
        width: 100%;
        height: calc(100% - 100px);
        position: fixed;
        z-index: 100;
        top: 135px;
        background: #F7F7F7;
        padding: 40px 30px 80px;
        display: none;
        overflow: auto;
    }

    .gnavi_sp p.gnav_ttl {
        text-align: left;
        font-size: 17px;
        font-weight: bold;
        margin-bottom: 15px;
    }

    .gnavi_sp p.gnav_ttl a {
        color: #1D1D1D;
    }

    .gnavi_sp ul {
        margin-bottom: 35px;
        padding: 20px 24px;
        background: #fff;
    }

    .gnavi_sp li {
        text-align: left;
        padding: 8px 0px;
        border-bottom: 2px dotted #fff;
        position: relative;
    }

    .gnavi_sp li a {
        position: relative;
        padding-right: 30px;
        font-size: 14px;
        color: #1D1D1D;
    }

    .gnavi_sp li a:after {
        content: "";
        position: absolute;
        width: 19px;
        height: 19px;
        border-radius: 50%;
        background: url(../images/gnavi_item_ic.png)no-repeat 5px center #FF2700;
        background-size: 10px auto;
        right: 0;
        top: 50%;
        transform: translateY(-50%);

    }

    /*==========================================================================*/
    /*                               MAINVISUAL                                 */
    /*==========================================================================*/
    .idx_main {
        position: relative;
        background: url(../images/main_mvs_bg_sp.png) no-repeat center top #F8F8F6;
        background-size: 100% auto;
        height: 144vw;
        overflow: hidden;
    }

    .idx_main:before {
        width: 175vw;
        height: 145vw;
        bottom: -2vw;
        left: unset;
        right: -65vw;
        background: url(../images/mvs_man_sp.png) no-repeat bottom;
        background-size: contain;
    }

    .idx_main .mvs_circle {
        width: 26vw;
        right: 0;
        left: unset;
        top: 80vw;
    }

    .idx_main h2 {
        width: 100%;
        padding-top: 22vw;
        padding-left: 3vw;
        margin: unset;
        text-align: left;
        align-items: flex-start;
        padding-right: 30px;
    }

    .idx_main h2 .txt_main {
        font-size: 6.5vw;
        margin-bottom: 4vw;
    }

    .idx_main h2 .txt_main span.txt_ro {
        font-size: 9.3vw;
    }

    .idx_main h2 .txt_main span.hl {
        line-height: 1.4em;
        font-size: 7.5vw;
    }

    .idx_main h2 .txt_main span.hl:after {
        top: 2px;
    }

    .idx_main h2 .txt_main span.hl .stroke {
        -webkit-text-stroke: 7pt #fff;
    }

    .idx_main h2 .txt_main.txt02 span.hl {
        font-size: 7.5vw;
    }

    .idx_main h2 .txt_main span.hl.hl_txt01 {
        margin-bottom: 0;
    }

    .idx_main h2 .txt_sub {}

    .idx_main h2 .txt_sub .sub01 {
        line-height: 2;
        font-size: 5vw;
    }

    .idx_main h2 .txt_sub .sub02 {
        line-height: 1.2;
        font-size: 6.9vw;
    }

    .idx_main h2 .txt_sub span.txt_bg {
        padding: 0.7vw 5vw 0.7vw;
        font-size: 5vw;
        line-height: 1.4;
    }

    .mvs_list {
        position: relative;
        z-index: 2;
        padding: 0 2vw 0;
        background: #F8F8F6;
    }

    .mvs_list li {
        position: relative;
        top: -8vw;
        margin-bottom: 2vw;
    }

    /* sec01 */
    #top h3 {
        background: unset;
        border: unset;
    }

    #sec01 {
        padding: 16vw 5.8vw;
    }

    .s01_box {
        flex-direction: column;
    }

    .s01_box h3 {
        width: 100%;
        font-size: 6.2vw;
        margin-bottom: 11.6vw;
    }

    .s01_box h3 span.hl1 {
        font-size: 7.9vw;
    }

    .s01_content {
        width: 100%;
        padding-left: 0;
    }

    .s01_content p {
        font-size: clamp(14px, 3.2vw, 16px);
        line-height: 1.8;
    }

    .s01_content p.last {
        margin-bottom: 0;
    }

    /* Banner 1 */
    .sec_bn01 {
        height: 58vw;
        background-position: center center;
        background: url(../images/idx_bnr01a_sp.jpg) no-repeat center center;
        background-size: cover;
    }

    /* sec02 */
    #sec02 {
        padding: 16vw 0 11vw;
        background: url(../images/sec02_bg01_sp.png)no-repeat center bottom #EBEBEB;
        background-size: 100% auto;
    }

    #sec02 h3 {
        font-size: 5.5vw;
    }

    #sec02 h3 span {
        font-size: 7.2vw;
    }

    .s02_box {
        margin: 6.9vw 0 5vw;
        flex-wrap: wrap;
    }

    .s02_col.it01 {
        order: 1;
        width: 50%;
    }

    .s02_col.it03 {
        order: 2;
        width: 50%;
    }

    .s02_col.it02 {
        order: 3;
        width: 100%;
    }

    .s02_col.it01 dl dd:first-child,
    .s02_col.it01 dl dd {
        padding-left: 0;
        margin-left: 0;
        margin-bottom: 0;
        padding-bottom: 5vw;
        justify-content: center;
    }

    .s02_col.it01 dl dd:first-child {
        margin-bottom: 3vw;
    }

    .s02_col.it01 dl dd,
    .s02_col.it01 dl dd:first-child {
        margin: 0 auto 3vw;
    }

    .s02_col.it03 dl dd {
        padding-left: 0;
        margin: 0 auto 3vw;
        margin-bottom: 0;
        padding-bottom: 5vw;
        justify-content: center;
    }

    .s02_col.it01 dl,
    .s02_col.it03 dl {
        width: 100%;
    }

    .s02_col.it01 dl dd,
    .s02_col.it03 dl dd {
        width: 40vw;
        height: 25.5vw;
        margin-bottom: 3vw;
        font-size: clamp(12px, 2.7vw, 32px);
        background: url(../images/s01_ill01_sp.png)no-repeat center center;
        background-size: contain;
    }

    .s02_col.it03 dl dd {
        background: url(../images/s01_ill02_sp.png)no-repeat center center;
        background-size: contain;
    }

    .s02_col.it03 dl dd:last-child {
        margin-left: auto;
    }

    .s02_col.it02 .s02_img img {
        width: 51vw;
        height: auto;
    }

    .s02_col.it02 .s02_img:before {
        width: 100%;
    }

    #sec02 h3.sub-ttl {
        font-size: 6vw;
    }

    .dot-text span::before {
        width: 1.1vw;
        height: 1.1vw;
    }

    #sec02 h3.sub-ttl:after {
        bottom: -5vw;
    }

    /* sec03 */
    #sec03 {
        padding: 6vw 0;
    }

    #sec03:before {
        width: 34.6vw;
        height: 36vw;
        bottom: -10vw;
        background: url(../images/s03_ill04_sp.png)no-repeat center center;
        background-size: contain;

    }

    #sec03:after {
        width: 34.6vw;
        height: 36vw;
        bottom: -10vw;
        background: url(../images/s03_ill05_sp.png)no-repeat center center;
        background-size: contain;
    }

    #sec03>h3 {
        font-size: 4.1vw;
    }

    #sec03>h3 span {
        font-size: 6.9vw;
    }

    #sec03 .s03_box {
        margin: 0 3.4vw;
    }

    .s03_box h3 {
        font-size: 6vw;
        margin-bottom: 2vw;
    }

    .s03_box h3 span.h3_large {
        font-size: 8vw;
    }

    .s03_box_ct {
        padding-top: 5vw;
        margin: 3vw auto;
    }

    .s03_desc {
        font-size: 3.9vw;
        padding-bottom: 3vw;
    }

    .s03_box_ct ul {
        padding-bottom: 12vw;
    }

    .s03_box_ct ul li {
        width: 41vw;
        min-width: 41vw;
        min-height: 37vw;
        padding: 5vw 4vw;
    }

    .s03_it_img {
        width: 12.7vw;
        height: 12.7vw;
    }

    .s03_it_txt {
        font-size: 3vw;
    }

    .s03_box_ct ul:after {
        width: 7.6vw;
    }

    .s03_box02 {
        width: 100%;
        gap: 0;
        flex-direction: column;
        padding: 6.9vw 0 12vw;
    }

    .s03_box02 .txt p {
        font-size: 3.9vw;
    }

    .s03_box02 .txt p>span {
        font-size: 6.2vw;
    }

    .s03_box02 .price {
        font-size: 9vw;
        padding: 0 0;
        margin-bottom: 0;
    }

    .s03_box02 .price>span {
        width: 34.6vw;
        height: 31.3vw;
    }

    .s03_box02 .price>span img {
        width: 100%;
        height: auto;
    }

    .s03_box02 .price::before {
        content: none;
    }

    .s03_box02 .price .num {
        font-size: 32.5vw;
    }

    .s03_box02:before,
    .s03_box02:after {
        width: 12vw;
        height: 21.8vw;
    }

    .s03_box02:before {
        left: 9vw;
        bottom: 6vw;
        top: unset;
    }

    .s03_box02:after {
        right: 9vw;
        bottom: 6vw;
        top: unset;
    }

    /* sec04 */
    #sec04 {
        padding: 17vw 0px 6vw;
        background-size: cover;
    }

    #sec04 h3 {
        background: url(../images/sec04_h3_ill01.png)no-repeat top center;
        background-size: 11vw auto;
        padding-top: 15vw !important;
        font-size: 4.4vw;
        margin-bottom: 10vw;
    }

    #sec04 h3 span {
        font-size: 8.8vw;
    }


    #sec04 h3 span:before {
        background: url(../images/sec04_h3_ill02.png)no-repeat top center;
        background-size: contain;
        left: -8vw;
        bottom: 12px;
    }

    #sec04 h3 span:after {
        background: url(../images/sec04_h3_ill03.png)no-repeat top center;
        background-size: contain;
        right: -8vw;
        bottom: 12px;
    }

    .s04_price {
        overflow-x: scroll;
    }

    .s04_box .s04_col.ttl,
    .s04_box .s04_col.price01 {
        flex-shrink: 0;
    }

    .s04_note_scroll {
        padding: 1vw 3.4vw 0;
    }

    .s04_note_scroll p {
        text-align: left;
        display: flex;
        gap: 2vw;
        align-items: center;
        margin-bottom: 0;
    }

    .s04_content {
        padding: 8vw 3.4vw;
    }

    .s04_ct_txt {
        flex-direction: column;
    }

    .s04_ct_txt p {
        padding-right: 0;
    }

    .s04_note_scroll p,
    .s04_ct_txt p,
    .s04_ct_txt ul li {
        font-size: clamp(14px, 3vw, 20px);
        line-height: 1.8;
    }

    /* cta */
    #cta {
        padding: 19.7vw 4vw 61vw;
        background: url(../images/cta_bg_sp.png)no-repeat center center;
        background-size: cover;
    }

    #cta:after {
        right: 0;
        width: 100%;
        height: 53vw;
        background-position: center bottom;
        background-size: 51vw auto;
    }

    #cta .inner {
        padding: 0 0;
    }

    .cta_box {
        max-width: 100%;
        margin: 0 0;
    }

    #cta h3 {
        font-size: 6.7vw;
        line-height: 1.8;
        background: none;
        border: none;
    }

    #cta .cta_desc {
        font-size: 3.2vw;
        padding: 3vw 0;
    }

    .cta_contact {
        flex-direction: column;
        align-items: center;
    }

    .cta_contact li {
        width: 100%;
        max-width: 100%;
    }

    .cta_contact li.mail {
        margin-bottom: 3vw;
    }

    .cta_contact li.mail a {
        height: auto;
        padding: 8.1vw 0;
    }

    .cta_contact li.mail a>span {
        font-size: 3.7vw;
    }

    .tel-txt {
        font-size: 12px;
    }

    .tel-ct>span {
        font-size: 5.8vw;
        background-size: 6.9vw auto;
    }

    /* sec05 */
    #sec05 {
        padding: 16vw 0 12.7vw;
        background: url(../images/sec05_bg01_sp.png)no-repeat top center;
        background-size: 100% auto;
    }

    #sec05 .inner02 {
        padding: 0 0;
    }

    #sec05 h3,
    #sec05 .s05_box {
        padding: 0 3.4vw;
    }

    #sec05 h3 {
        background: url(../images/sec05_h3_ill01.png)no-repeat top center;
        background-size: 11vw auto;
        padding-top: 15vw !important;
        font-size: 6vw;
        padding-bottom: 3vw;
        margin-bottom: 2vw;
        margin-left: 3.4vw;
        margin-right: 3.4vw;
        border-bottom: 1px solid #fff;
    }

    #sec05 h3 span:after {
        width: 32vw;
        left: 50%;
        transform: translateX(-50%);
        bottom: -3.1vw;
    }

    #sec05 .s05_ttl_en {
        font-size: 3.2vw;
        margin-bottom: 12vw;
    }

    .s05_box ul {
        flex-direction: column;
        align-items: center;
        margin-bottom: 0;
    }

    .s05_box ul li,
    .s05_box ul.s05_box02 li {
        width: 100%;
        max-width: 540px;
        margin-bottom: 3vw;
    }

    .s05_b01_content .s05_ttl span {
        font-size: 4.4vw;
        padding: 2.5vw 4.4vw;
    }

    .s05_b01_content .s05_txt {
        padding: 0 3.2vw 5vw;
        font-size: 3.2vw;
    }

    .s05_box03:after {
        background: url(../images/sec05_ill01_sp.png)no-repeat;
        background-size: 100% auto;
    }

    .s05_box03 .s05_b03_ttl:before {
        background: url(../images/sec05_ill01_sp.png)no-repeat;
        background-size: 100% auto;
    }

    .s05_box03 .s05_b03_ttl span {
        font-size: clamp(13px, 3.4vw, 20px);
        ;
    }

    .s05_box03 ul {
        max-width: unset;
        width: 81.3vw;
        padding: 3vw 0 5.8vw;
    }

    .s05_box03 ul li {
        font-size: 3.2vw;
        padding: 2vw 2.5vw;
    }

    /* sec06 */
    #sec06 .s06_box {
        flex-direction: column;
    }

    #sec06 .s06_ttl {
        width: 100%;
    }

    #sec06 .s06_ttl h3 {
        width: 100%;
        font-size: 5.1vw;
        text-align: center;
        top: unset;
        transform: unset;
        bottom: 8vw;
        right: unset;
    }

    #sec06 .s06_ttl h3 span.txt_big {
        font-size: 6.9vw;
    }

    #sec06 .s06_ttl h3 span.txt_small {
        padding-right: 0;
    }

    #sec06 .s06_img {
        width: 100%;
        height: 55vw;
    }

    #sec06 .s06_content {
        width: 100%;
        max-width: 100%;
        padding: 3vw 9.3vw;
    }

    #sec06 .s06_content p {
        font-size: 3.2vw;
    }

    #sec06 .s06_box {
        background: #F7F7F7;
        margin-bottom: 0;
    }

    #sec06 .s06_box::after {
        content: none;
    }

    #sec06 .s06_box.box_right {
        flex-direction: column;
    }

    #sec06 .s06_box.box_right .s06_ttl h3 {
        text-align: center;
        left: unset;
    }

    #sec06 .s06_box.box_right .s06_content {
        width: 100%;
        max-width: 100%;
        padding: 3vw 9.3vw;
    }

    .content .s06_box_bot.inner {
        max-width: 100%;
        margin-top: 8.1vw;
    }

    .s06_box_bot .s06_bot {
        max-width: 100%;
    }

    .s06_box_bot .s06_ttl02 {
        width: 81vw;
        margin: 0 auto 9vw;
        padding: 5vw 5vw;
    }

    .s06_box_bot .s06_ttl02 p {
        font-size: 3.9vw;
    }

    .content .s06_box_bot:before {
        top: 8vw;
    }

    .s06_box_bot01 {
        margin-bottom: 2vw;
    }

    .s06_box_bot01,
    .s06_box_bot02 {
        justify-content: center;
        gap: 2vw;
        flex-wrap: wrap;
    }

    .s06_box_bot01 li,
    .s06_box_bot02 li {
        width: 45.3vw;
        height: 28vw;
        margin-bottom: 0;
        border-radius: 10px;
    }

    .s06_box_bot02 li {
        max-width: unset;
    }

    .s06_box_bot01 li p,
    .s06_box_bot02 li p {
        margin-bottom: 0;
    }

    .s06_box_bot01 li span,
    .s06_box_bot02 li span {
        font-size: 3.9vw;
        padding: 1vw 3vw;
    }


    /* sec07 */
    #sec07 {
        padding: 16vw 0 5vw;
    }

    #sec07 h3 {
        background: url(../images/sec07_h3_ill01.png)no-repeat top center;
        background-size: 11vw auto;
        padding-top: 15vw !important;
        font-size: 6vw;
        margin-bottom: 2vw;
        border-bottom: 1px solid #CECECE;
    }

    #sec07 h3 span:after {
        width: 32vw;
        left: 50%;
        transform: translateX(-50%);
        bottom: -2vw;
    }

    #sec07 .s07_ttl_en {
        font-size: 3.2vw;
        margin-bottom: 12vw;
    }

    .s07_box dl dt.q_box {
        padding: 7vw 3vw 3vw;
    }

    .s07_box dl dt.q_box .q_num {
        margin-top: -10vw;
    }

    .s07_box dl dt.q_box .q_num span {
        font-size: 3.2vw;
        padding: 1vw 6vw;
    }

    .s07_box dl dt.q_box>p.ttl {
        font-size: clamp(14px, 3.4vw, 25px);
    }

    .s07_box dl dd.a_box {
        padding: 3vw 5vw;

    }

    .s07_box dl dd.a_box p {
        font-size: 2.8vw;
        font-size: clamp(13px, 2.8vw, 22px);
        line-height: 1.8;
    }

    /* sec08 */
    #sec08 {
        padding: 16vw 0;
    }

    #sec08 h3 {
        background: url(../images/sec08_h3_ill01.png)no-repeat top center;
        background-size: 11vw auto;
        padding-top: 15vw !important;
        font-size: 6vw;
        margin-bottom: 2vw;
        border-bottom: 1px solid #CECECE;
    }

    #sec08 h3 span:after {
        width: 32vw;
        left: 50%;
        transform: translateX(-50%);
        bottom: -2vw;
    }

    #sec08 .s08_ttl_en {
        font-size: 3.2vw;
        margin-bottom: 12vw;
    }

    .s08_desc {
        font-size: clamp(14px, 3.2vw, 24px);
        line-height: 1.8;
        margin-bottom: 15vw;
    }

    .s08_slider {
        height: 50vw;
        background: url(../images/sec08_slider_sp.png) repeat-x center;
        background-size: auto 100%;
        margin-bottom: 0;
        -webkit-animation: slide-bg 30s linear infinite both;
        animation: slide-bg 30s linear infinite both;
        position: relative;
    }

    /* sec09 */
    #sec09 {
        padding: 16vw 0 0;
    }

    #sec09 h3 {
        background: url(../images/sec09_h3_ill01.png)no-repeat top center;
        background-size: 11vw auto;
        padding-top: 15vw !important;
        font-size: 6vw;
        margin-bottom: 2vw;
        border-bottom: 1px solid #CECECE;
        text-align: center;
    }

    #sec09 h3 span:before {
        content: none;
    }

    #sec09 h3 span:after {
        width: 32vw;
        left: 50%;
        transform: translateX(-50%);
        bottom: -2vw;
    }

    #sec09 .s09_ttl_en {
        text-align: center;
        font-size: 3.2vw;
        margin-bottom: 12vw;
    }

    .s09_box {
        width: 100%;
        max-width: 100%;
        flex-direction: column;
        padding-left: 0;
    }

    .s09_left {
        width: 100%;
        padding-right: 0;
        padding: 0 3.4vw;
    }

    .s09_info dl {
        flex-direction: column;
    }

    .s09_info dl dt {
        width: 100%;
        padding: 2.8vw 2vw;
        font-size: clamp(12px, 2.7vw, 20px);
        ;
    }

    .s09_info dl dd {
        width: 100%;
        padding: 2.8vw 2vw;
        text-align: center;
        /* font-size: 3.2vw; */
        font-size: clamp(14px, 3.2vw, 24px);
        ;

    }

    .s09_info {
        padding-bottom: 12vw;
    }

    .s09_map {
        width: 100%;
        height: 64vw;
    }

    .copyright p {
        font-size: clamp(12px, 2.7vw, 32px);
        ;
        padding: 5.8vw 2.8vw 12vw;
    }

    /* .fix_bnr */
    .fix_bnr {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 9;
        opacity: 1;
        transition: all ease 0.3s;
    }

    .fix_bnr.show {
        opacity: 1;
        transform: translateY(0);
    }

    .fix_bnr li {
        width: 50%;
    }

    .fix_bnr li a {
        color: #fff;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 12px 10px 8px;
        height: 9vw;
    }

    .fix_bnr .bnr_mail {
        background: #FF2700;
    }

    .fix_bnr .bnr_mail a img,
    .fix_bnr .bnr_tel a img {
        width: 38px;
    }

    .fix_bnr .bnr_mail a span {
        line-height: 1.1;
        font-size: clamp(14px, 3.7vw, 18px);
        ;
        font-weight: bold;
        font-family: 'Noto Sans JP', sans-serif;
        padding-left: 7vw;
        background: url(../images/cta_mail_ic.png) no-repeat left center;
    }

    .fix_bnr .bnr_tel {
        background: #353535;
    }

    .fix_bnr .bnr_tel a span {
        padding-left: 6vw;
        padding-bottom: 1vw;
        background: url(../images/cta_tel_ic01.png)no-repeat left center;
        font-size: clamp(16px, 5vw, 24px);
        ;
        font-weight: bold;
        font-family: 'Noto Sans JP', sans-serif;
        background-size: 5vw auto;
    }

    /* footer */
    #footer {
        padding: 12vw 2.8vw 10vw;
    }

    .footer_top {
        border-bottom: none;
        padding-bottom: 0;
    }

    .footer_bot {
        display: none;
    }

    /* under */
    .under #mainImage {
        height: calc(55vw + 100px);
    }

    .under #mainImage h2 {
        margin: 0 3vw;
        margin-top: 120px;
        padding-top: 22vw;
        padding-bottom: 6vw;

        background-size: 9vw auto;

        font-size: 6vw;
    }

    .under #mainImage h2 .en {
        font-size: 3vw;
    }

    .idx_main h2 .txt_main {
        align-self: flex-start;
        text-align: left;
    }

    .idx_main h2 .txt_main span.hl .front,
    .idx_main h2 .txt_main span.hl .stroke {
        font-size: 7.5vw;

    }

    .idx_main h2 .txt_main .wrap_h2 {
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
        margin-bottom: 2vw;
    }

    .idx_main h2 .txt_main .wrap_h2 .bg_decore {
        padding: 2.5vw 2.5vw 3vw;
    }

    .idx_main h2 .txt_main .wrap_h2 .bg_decore .txt_decore {
        font-size: 4vw;
        margin-bottom: 1vw;
    }

    .idx_main h2 .txt_sub .bg_sp {
        background: #2b9743;
        display: inline-block;
        border-radius: 36px;
        padding: 0.5vw 2.5vw 0.5vw;
    }

    .idx_main h2 .txt_sub span.txt_bg.txt_bg_cus {
        background: none;
        padding: 0;
    }

    .idx_main h2 .txt_sub span.txt_bg.txt_bg_cus.pad_r {
        padding: 0;
    }

    .idx_main h2 .txt_sub .bg_sp span.hl {
        line-height: 1;
    }

    .idx_main h2 .txt_sub .bg_sp span.hl .front,
    .idx_main h2 .txt_sub .bg_sp span.hl .stroke {
        font-size: 6.5vw;
    }

}

@media screen and (max-width: 640px) {

    #top #wrapper,
    .under #wrapper {
        padding-bottom: 0;
    }

    #cta {
        padding: 19.7vw 1vw 61vw;
    }

    #cta .cta_desc,
    #cta .cta_contact {
        padding-left: 4vw;
        padding-right: 4vw;
    }

    #cta h3 {
        font-size: 6vw;
    }


    .fix_bnr .bnr_mail a span {
        background-size: 6vw auto;
    }

    .fix_bnr .bnr_tel a span {
        background-size: 6vw auto;
    }

    .s03_box_ct ul li {
        width: 42vw;
    }

    .s03_box_ct ul li {
        padding: 5vw 3vw;
    }


    .copyright p {
        padding: 5.8vw 2.8vw 15vw;
    }


}

@media screen and (max-width: 430px) {
    .header .layout_h {
        height: 105px;
    }

    .header .layout_h .h_logo {
        width: 240px;
    }

    .header .layout_h .icon_menu {
        bottom: 20px;
    }

    .gnavi_sp {
        top: 105px;
    }

    .idx_main:before {
        width: 165vw;
        right: -60vw;
    }

    .idx_main .mvs_circle {
        top: 84vw;
    }

    .mvs_list li {
        margin-bottom: 1vw;
    }

    .s01_box h3 {
        margin-bottom: 6vw;
    }

    .fix_bnr li a {
        height: 14vw;
    }


    #sec04 h3 span:before {
        background: url(../images/sec04_h3_ill04.png)no-repeat top center;
        width: 18px;
        height: 31px;
        background-size: contain;
        left: -8vw;
        bottom: 1vw;
    }

    #sec04 h3 span:after {
        background: url(../images/sec04_h3_ill05.png)no-repeat top center;
        width: 18px;
        height: 31px;
        background-size: contain;
        right: -8vw;
        bottom: 1vw;
    }

    #sec07 h3 span:after,
    #sec08 h3 span:after,
    #sec09 h3 span:after {
        bottom: -3vw;
    }

    #cta .cta_desc,
    #cta .cta_contact {
        padding-left: 3vw;
        padding-right: 3vw;
    }

    .copyright p {
        padding: 5.8vw 2.8vw 18vw;
    }

    #totop {
        bottom: 94px;
    }

}

@media screen and (max-width: 375px) {
    .header .layout_h .icon_menu {
        right: 20px;
    }

    .gnavi_sp {
        padding: 30px 15px 80px;
    }

    .under #mainImage h2 {
        padding-top: 26vw;
        padding-bottom: 13vw;
    }

    .under #mainImage h2 .jp {
        padding-bottom: 20px;
    }

    .fix_bnr .bnr_tel a span {
        margin-left: 0;
        padding-left: 6.8vw;
        font-size: clamp(17px, 5vw, 24px);
        background-size: 6.8vw auto;
    }

    .idx_main:before {
        width: 155vw;
        right: -57vw;
        bottom: 0;
    }

    .idx_main .mvs_circle {
        top: 85vw;
    }



    .idx_main h2 .txt_main span.hl .stroke {
        -webkit-text-stroke: 4pt rgb(255, 255, 255);
    }

    .s03_box h3 span.h3_large {
        font-size: 8vw;
    }

    .s03_it_txt {
        font-size: clamp(12px, 3vw, 24px);
    }

    .s03_box_ct ul li {
        padding: 5vw 2vw;
    }

    .s05_b01_content .s05_txt,
    #sec06 .s06_content p {
        font-size: clamp(14px, 3.2vw, 24px);
    }

    .cta_contact li.mail a>span {
        font-size: 5vw;
    }

    .tel-ct>span {
        font-size: 8vw;
        background-size: 10vw auto;
        padding-left: 12vw;
    }
}

@media screen and (max-width: 320px) {

    #sec07 h3 span:after,
    #sec08 h3 span:after,
    #sec09 h3 span:after {
        bottom: -4vw;
    }
}