@charset "utf-8";


.mv_catch_wrap {
    position: absolute;
    left: 28%;
    top: 43%;
}
.mv_catch_sub {
    color: #fff;
    font-weight: 700;
    font-size: 24px;
    line-height: 1.7;

    text-shadow: 0 0 10px rgba(0, 0, 0, 0.3);

}
.mv_catch {
    color: #fff;
    font-size: 36px;
    font-weight: 700;
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
    line-height: 1.6;
    margin-bottom: 20px;
}

.mv_fuji {
    position: absolute;
    right: 12%;
    bottom: 60px;
    background: url(./common/img/mv_fuji.png?09) no-repeat center bottom;
    width: 608px;
    height: 216px;
    z-index: 1;
}

.mv_fuji a.mv_fuji_link img{
    display: inline-block;
}
.mv_fuji a.mv_fuji_link:hover {
    opacity: 0.9;
}
.mv_fuji a.mv_fuji_link {
    text-align: center;
    color: #fff;
    font-weight: 700;
    display: block;
    width: fit-content;
    position: absolute;
    bottom: 43px;
    right: 0;
    left: 0;
    margin: 0 auto;
    transition: 0.5s;
}

.mv_fuji_link p {
    border-bottom: solid 1px rgba(255, 255, 255, 0.7);
    position: relative;
    padding-bottom: 2px;
}
.mv_fuji_link p::after {
    content: "";
    background: url(./common/img/right_arrow_w.png) no-repeat right center;
    width: 27px;
    height: 17px;
    position: relative;
    right: 5px;
    transition: 0.5s;
    display: inline-block;
    margin-left: 6px;
}
.mv_fuji_link:hover p::after {
    right: 0;
}

.mainvisual {
    min-height: 915px;
    position: relative;
}

.mv_slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 103%;
    height: 100%;
    opacity: 0;
    z-index: -2;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transform: translateX(0);
    animation: none;
}

@keyframes slidePan {
    0% {
        transform: translateX(0%);
        opacity: 0; /* 最初は透明 */
    }
    15% {
        opacity: 1; /* ふわっとフェードイン */
    }
    80% {
        transform: translateX(-1%);
        opacity: 1; /* 完全に表示された状態で移動 */
    }
    100% {
        transform: translateX(-1%);
        opacity: 0; /* 最後にフェードアウト */
    }
}
.mv_slide.active {
    opacity: 1;
    z-index: -1;
    animation: slidePan 5s linear forwards;
}

.mv_slide01 { background-image: url(./img/slide_pic01.jpg?09); }
.mv_slide02 { background-image: url(./img/slide_pic02.jpg?09); }
.mv_slide03 { background-image: url(./img/slide_pic03.jpg?09); }
.mv_slide04 { background-image: url(./img/slide_pic04.jpg?09); }
.mv_slide05 { background-image: url(./img/slide_pic05.jpg?09); }


/*================================
共通パーツ
================================*/

/*-----------------------------*/


.top_inner {
    max-width: 1040px;
    margin: 0 auto;
    padding: 0 20px;
    width: 98%;
}


/*================================
セクション
===============================*/

/*-----------------------------*/





.greeting {
    background: url(./common/img/logo_bg_item1.png) no-repeat left 5% top 15px;
    padding: 100px 0 150px;
}

.greeting_inner  {
    max-width: 1170px;
}

.greeting .section_ttl01_wrap *{
    text-align: left;
}

.greeting_flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 20px;
}

.greeting_left {
    max-width: 480px;
}

.greeting_pic02 {
    margin-top: 30px;
    position: relative;
    left: -90px;
}



.greeting_txt {
    margin-bottom: 110px;
    font-weight: 500;
}

.greeting_info {
    text-align: left;
    background: url(./common/img/logo_bg_item1.png) no-repeat right 5% bottom  / 196px 196px;
    padding-top: 5px;
    min-height: 196px;
}
.greeting_class {
    font-size: 24px;
    line-height: 1.5;
    text-align: left;
    font-weight: 600;
}

.greeting_name {
    font-size: 30px;
    font-weight: 600;
    margin-bottom: 45px;
}
.feature .section_ttl01_wrap{
    padding-top: 100px;
    margin-bottom: 100px;
    width: fit-content;
    margin-left: 50%;
}

.feature_scroll_wrapper {
    max-height: 952px;
    overflow: hidden;
    position: relative;
  }

.feature_inner {
    /* margin-top: 100px; */
}

.feature {
    background: url(./img/logo_bg_item_w.png) no-repeat right -50px top -90px /344px 344px #79beda;
    border-top-right-radius: 100px;
    border-bottom-right-radius: 100px;
    position: relative;
    max-width: 1542px;
    min-height: 952px;
    width: 90% !important;
        padding-bottom: 180px;
    /* padding-left: 10%; */
}

.feature::before {
    content: "";
    position: absolute;
    bottom: 96%;
    left: 15%;
    background: url(./img/greeting_sub01.png) no-repeat bottom;
    width: 361px;
    height: 318px;
    z-index: 1;
}

.feature::after {
    content: "";
    position: absolute;
    bottom: -2%;
    right: 2%;
    background: url(./img/feature_sub01.png) no-repeat bottom;
    width: 260px;
    height: 181px;
    z-index: 0;
}


.feature .section_ttl01_eng{
    color: #fff;
    letter-spacing: 2px;
}
.feature_num {
    font-size: 100px;
    color: #fff;
    line-height: 1;
    text-align: left;
    margin: 20px 0;
    text-shadow: 0 0 10px #79beda;
    position: relative;
}

.feature_num::after {
    content: "";
    background: url(./img/feature_bg_item01.png) no-repeat right top ;
    width: 178px;
    height: 161px;
    display: block;
    position: absolute;
    right: -20px;
    top: -45px;
    z-index: -1;
}

.feature_txt_wrap {
    padding-right: 50px;
}
.feature_01 .feature_num::after {
    /* background-size: 100px; */
}
.feature_02 .feature_num::after {
    background-image: url(./img/feature_bg_item02.png) ;
    width: 135px;
    height: 168px;
}
.feature_03 .feature_num::after {
    background-image: url(./img/feature_bg_item03.png) ;
    width: 145px;
    height: 159px;
}
.feature_04 .feature_num::after {
    background-image: url(./img/feature_bg_item04.png) ;
    width: 130px;
    height: 130px;
}

.feature_txt_w {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.7;
    text-align: left;
    color: #fff;
    text-shadow: 0 0 10px #79beda;
}

.feature_txt {
    font-size: 18px;
    color: #333;
    line-height: 2;
    font-weight: 500;
    max-width: 340px;
}


.feature_item {
  flex: 0 0 80%;
  /* 実際の幅に応じて調整可（例：50%、auto など） */
}

.feature_items {
    display: flex;
    gap: 20px 70px;
    padding-left: 80px;

  padding-right: 10%;
  position: relative;
}

.feature_items::after {
      /* 右側の余白のための要素 */
    content: "";
    display: block;
    width: 7vw; /* 画面幅の10%相当、もしくは適宜調整 */
    flex-shrink: 0; /* 必ず表示されるようにする */
  }

.feature_flex {
    display: flex;
    gap: 20px 40px;
    justify-content: center;

}

.feature_inner .btn_link {
    background-color: #79beda;
    border-color: #fff;
    margin: 50px auto 0;
    display: block;
    width: fit-content;
}

.feature_inner .btn_link .txt_color_w {
    transition: 0.5s;
}
.feature_inner .btn_link:hover .txt_color_w {
        color: #333 !important;
}
.feature_inner .btn_link:hover {
    text-shadow: none;
    color: #79beda;
    background-color: #fff;
}

.feature_inner .btn_link:hover::after {
    /* background-image:  url(./common/img/right_arrow_w.png); */
}

.services {
    margin-top: 110px;
    background: 
    url(./common/img/logo_bg_item3.png) no-repeat left 5% top 0,
    url(./common/img/logo_bg_item3.png) no-repeat right 5% bottom 20% / 288px 286px;
}

.services_head {
    display: flex;
        justify-content: center;
    align-items: flex-start;
    gap: 40px;
    flex-wrap: wrap;
}

.services_head_link .txt{
    letter-spacing: 1px;
    font-weight: 500;
}
.services_head_link:hover {
    background-color: rgba(190, 230, 246, 0.9)
}
.services_head_link {
    border: 1px solid #bee6f6;
    border-radius: 20px;
    background-color: #ffffff;
    max-width: 429px;
    min-height: 158px;
    padding: 20px 30px 15px;
    display: block;
    position: relative;
    margin-top: -40px;
    /* top: -40px; */
    left: -20px;
    transition: 0.5s;
}

.services_head_p {
    font-size: 30px;
    color: #333;
    font-weight: bold;
    line-height: 1.36;
    text-align: left;
    position: relative;
    border-bottom: solid 1px #333;
    padding-bottom: 10px;
    margin-bottom: 10px;
}

.services_head_link:hover .services_head_p::after {
    right: 0;
}
.services_head_p::after {
    content: "";
    background: url(./common/img/right_arrow.png) no-repeat right center;
    width: 27px;
    height: 17px;
    position: absolute;
    right: 7px;
    top: 29%;
    transition: 0.5s;
    display: inline-block;
    margin-left: 6px;
}

.services_link_wrap {
    display: flex;
    justify-content: space-between;
    gap: 30px 20px;
    max-width: 980px;
    margin: 90px auto 200px;
    flex-wrap: wrap;
}

.services_link .services_name{
    font-size: 18px;
    color: #333;
    text-align: center;
    padding-bottom: 20px;
    font-weight: 700;
}
.services_link img{
    margin: 0 auto;
}
.services_link:hover {
    opacity: 0.6;
}
.services_link {
    border-radius: 20px;
    background-color: #bee6f6;
    max-width: 180px;
    width: 48%;
    min-height: 180px;
    position: relative;
    display: grid;
    align-items: end;
    justify-content: center;
    transition: 0.5s;
}

.case_wrap {
    border-radius: 20px;
    background: url(./img/case_pic01.png?09) -1px #fff no-repeat;
    width: 100%;
    position: relative;
    max-width: 720px;
    min-height: 180px;
    display: grid;
    border: solid 1px #333;
    margin: 0 auto 100px;
}

.case_txt {
    display: grid;
    align-items: center;
    text-align: center;
    justify-content: center;
    width: 50%;
    margin-left: auto;
}

.case_txt_p span{
    color: #3da7d1;
}

.case_wrap:hover .case_txt_p::after {
    right: -3px;
}


.case_txt_p::after {
    content: "";
    background: url(./common/img/right_arrow.png) no-repeat right center;
    width: 27px;
    height: 17px;
    position: relative;
    display: inline-block;
    margin-left: 6px;
    transition: 0.5s;
    right: 0;
}
.case_txt_p {
    font-size: 24px;
    color: #333;
    border-bottom: solid 1px #333;
    position: relative;
    font-weight: 700;
    padding-bottom: 5px;
}

.parallax_bg {
    position: relative;
}
.parallax_bg::before {
    content: "";
    position: absolute;
    bottom: 96%;
    left: 15%;
    /* left: 20px; */
    background: url(./img/parallax_sub.png) no-repeat bottom;
    width: 229px;
    height: 229px;
    z-index: 1;
}
.parallax_inner::after {
    content: "";
    position: absolute;
    bottom: -35%;
    right: -8%;
    background: url(./common/img/logo_bg_item2.png) no-repeat;
    width: 344px;
    height: 344px;
    z-index: 1;
}

.parallax_inner {
    max-width: 1570px;
    min-height: 300px;
    width: 96%;
    background: url(./img/parallax_bg.png?09) no-repeat center;
    position: relative;
    border-top-right-radius: 20px;
    border-bottom-right-radius: 20px;

}

/*================================

　ここからPC適用

================================*/
@media(min-width: 1700px) {
    .feature {
        width: 95% !important;
        max-width: 1700px;
    }
}

/*================================

　ここからPC適用

================================*/
@media(min-width: 897px) {
}




/*================================
TABLET横 1700px
================================*/
@media (max-width: 1700px) {

    .feature {
        background-size: 300px;
    }


    .parallax_bg::before {
        left: 5%;
    }
    .parallax_inner {
        width: 90%;
    }
}

/*================================
TABLET横 1360px～0px
================================*/
@media (max-width: 1360px) {
        .parallax_bg::before {
            left: 60px;
            background-size: 100%;
            width: 140px;
            bottom: 80%;
        }

        .parallax_inner::after {
            background-size: 100%;
            bottom: -60%;
            width: 204px;
        }

        .services_link_wrap {
            justify-content: space-around;
            gap: 20px 10px;
        }

        .feature_flex {
            gap: 20px;
        }
        .feature_txt_w {
            font-size: 22px;
        }
        .feature_txt_wrap {
            padding-right: 15px;
            background-size: 100px;
            background-position: right 35% top 7%;
        }
}


/*================================
TABLET縦 1024px～0px
================================*/
@media (max-width: 1200px) {
    .mv_fuji::after {
        content: "";
        background: url(./img/mv_sub_tab.png) center bottom / 100% no-repeat;
        width: 203px;
        height: 147px;
        display: block;
        z-index: 1;
        position: absolute;
        bottom: -40px;
        left: -12%;

    }
    .mv_fuji {
        bottom: -1px;
        right: 0;
        left: 0;
        margin: auto;
        background-image: url(./common/img/mv_fuji_tabsp.png);
    }

    .mainvisual{
        background: url(./common/img/wave_w.png) left bottom -1px no-repeat;

    }

    
    .greeting_flex {
        justify-content: center;
    }

    .greeting_inner {
        padding: 0;
    }
    
    
    .feature_inner {
        /* margin-top: 50px; */
    }

    .feature::before {
        width: 200px;
        height: 200px;
        background-size: 100%;
    }

    .feature::after {
        background-size: 100%;
        width: 180px;
        right: -5%;
    }

    .feature {
        min-height: 850px;
        background-size: 200px;
        padding-bottom: 50px;
    }

    .feature .section_ttl01_wrap {
        padding-top: 30px;
        margin-bottom: 50px;
    }

    .feature_txt_wrap {

        /* padding-right: 20px; */
    }

    .feature_item {
        /* flex: 0 0 100%; */
    }
}
/*================================
TABLET縦 1024px～0px
================================*/
@media (max-width: 1024px) {

    .mv_catch_wrap {
        left: 0;
        right: 0;
        margin: 0 auto;
        width: fit-content;
    }

    .mv_fuji::after {
        
        left: -6%;
    }
    .greeting {
        background-position-y: 100px;
    }

    .greeting_txt {
        margin-bottom: 30px;
    }

    .greeting_name {
        margin-bottom: 20px;
    }

    .greeting_right {
        position: relative;
        padding-bottom: 50px;
    }

    .greeting_pic02 {
        left: -100px;
        /* margin: 20px auto 0; */
        position: absolute;
        bottom: 0;
    }

    
    .feature_item {
        flex: 0 0 100%;
    }

    .feature .section_ttl01_wrap {
        margin-left: 25%;
        /* margin-bottom: 15px; */
    }

    .feature {
        width: 98%!important;
        /* min-height: auto; */
        min-height: auto;
        padding-bottom: 150px;
    }

    .feature_items {
        padding-left: 0;
        padding-right: 0;
    }

    .feature::before {
        background-size: 100%;
        height: 128px;
        width: 145px;
        bottom: 99.5%;
    }

    .feature::after {
        right: 0;
    }

    .feature_pic img {
        height: 200px;
        width: auto;
    }

    .feature_flex {
        flex-wrap: wrap;
        gap: 5px 20px;
    }

    .feature_num {
        font-size: 70px;
        margin: 10px 0;
    }

    .feature_txt_wrap {
        background-position: right top;
    }

    .feature_txt_w {
        font-size: 20px;
        line-height: 1.5;
    }

    .feature_inner .btn_link {
        margin-top: 10px;
    }
    
    .services_link .services_name {
        font-size: 16px;
    }


}



/*================================

　ここからTABLET・SP適用

================================*/
@media(max-width: 896px) {
    
    .services_link {
        max-width: 130px;
        min-height: 130px;
    }
    
    .services_link img {
        max-width: 60px;
    }

    .feature .feature_num::after {
        background-size: 90%;
        background-position: right top 15px;
    }
    
    .feature .section_ttl01_wrap {
        margin-bottom: 30px;
    }
    
    .feature_items {
        flex-wrap: wrap;
        gap: 40px;
    }

    .case_wrap {
        /* padding-top: 220px;
        padding-bottom: 40px;
        background: url(./img/case_pic01.png) top center  #fff no-repeat;
        max-width: 360px;
        background-size: 101%; */
    }

    .case_txt {
        /* width: 100%;
        margin: 0 auto; */
    }
}


/*================================

　ここからSP適用

================================*/
@media(max-width: 700px) {

    .mv_fuji {
        background-size: 100%;
        max-width: 100%;
        padding-top: 40%;
        height: auto;
        right: 0;
    }

    .mv_fuji a.mv_fuji_link {
        bottom: 7%;
        text-shadow: 0 0 5px #3da7d1;
    }

    .mv_fuji::after {
        width: 120px;
        height: 107px;
        bottom: -80px;
        left: 10px;
    }

    .greeting_pic02 {
        left: -5%;
        max-width: 60vw;
    }

    .feature .feature_num::after {
        background-size: 65%;
        background-position: right top 45px;
        z-index: 0;
    }

    .feature_txt_w {
        font-size: 19px;
        position: relative;
    }

    .feature_txt {
        font-size: 16px;
    }

    .feature::before {
        height: 128px;
        width: 140px;
        bottom: 99%;
    }

    .feature_pic img {
        height: 200px;
        width: auto;
    }

    .case_wrap::before {
        content: "";
        background: url(./img/case_pic01.png) #fff no-repeat;
        width: 180px;
        height: 90px;
        background-size: 100%;
    }
    .case_wrap {
        background: none;
        overflow: hidden;
        display: flex;
        min-height: 90px;
    }

    .case_txt{
        flex: 1;
    }
    .case_txt_p {
        font-size: 20px;
    }

}

/*================================

　ここからSP適用

================================*/
@media(max-width: 480px) {

    .mainvisual {
        /* min-height: 600px; */
        min-height: 450px;
        background-position: center bottom -20px;
        background-size: 200%;
        /* background: none; */
    }

    .mv_fuji {
        bottom: 0;
        top: 95%;
        right: -35%;
        padding: 0;
        width: 350px;
        height: 150px;
    }

    /* .mainvisual::after{
        content: "";
        background: url(./common/img/wave_w.png) center top / cover no-repeat;
        width: 100vw;
        height: 101px;
        display: block;
        z-index: -1;
        position: absolute;
        bottom: -1px;
    } */
    .mv_fuji::after {
        bottom: 0;
        left: unset;
        right: 80%;
    }

    .mv_fuji a.mv_fuji_link {
        font-size: 12px;
        line-height: 1;
    }

    .mv_catch_wrap {
        top: 28%;
    }

    .mv_catch {
        font-size: 22px;
    }

    .mv_catch_sub {
        font-size: 16px;
    }

    main {
        /* padding-top: 130px; */
    }

    .greeting {
        padding: 100px 20px 30px;
        margin-bottom: 120px;
    }

    .feature {
        background-position: right -80px top 80px;
        padding-bottom: 70px;
    }

    .feature::before {
        height: 118px;
        width: 120px;
        left: 20px;

    }

    .feature::after {
        bottom: -70px;
    }

    .feature_pic img {
        height: 210px;
    }

    .feature_items {
        padding-left: 0px;
    }

    .feature .section_ttl01_wrap {
        margin: 0 auto 20px;
    }
    .feature_txt_wrap {
        max-width: 90%;
        background-size: 70px;
    }

    .services {
        margin-top: 150px;
    }

    .services_inner {
        padding: 0;
    }

    .services_head {
        padding: 0 20px;
    }

    .services_head_p {
        font-size: 20px;
    }

    .services_head_link {
        left: -10px;
        padding: 10px 15px 15px;
    }

    .services_head_p::after {
        top: 7px;
    }

    .services_link {
        max-width: 140px;
        min-height: 140px;
    }

    .services_link_wrap {
        margin: 50px auto;
        justify-content: center;

        gap: 10px 15px;
    }

    .case_txt_p {
        font-size: 14px;
    }

    .case_wrap {
        /* padding-top: 60%;
        padding-bottom: 15%;
        width: 96%; */
    }

    .parallax_bg::before {
        width: 100px;
        bottom: 90%;
        height: 110px;
    }

    .parallax_inner {
        background-size: cover;
        background-position: 50%;
        min-height: 100px;
        width: 98%;
    }

    .parallax_inner::after {
        background-size: 100%;
        width: 121px;
        height: 200px;
        bottom: -10px;
        right: 0;
    }
    .parallax_bg {
        padding-bottom: 50px;
        margin-top: 120px;
    }
}