html {
    font-size: 62.5%; /* 10px */
    height: -webkit-fill-available;
}
body {
    width:100%;
    min-height: 100vh;
    /* mobile viewport bug fix */
    min-height: -webkit-fill-available;
    font-family: 'Roboto', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
    font-weight:500;
    font-size: 1.6rem;/* 16px */
    color: #4d4d4d;
    line-height: 1.5;
    background: linear-gradient(to left,#f2f2f2 30%, #f9f9f9 0, #f9f9f9 70%, #f2f2f2 0);
}
input {
    -webkit-appearance: none;
    border-radius: 0;
}
@media screen and (max-width:768px){
    body {
        font-size: 1.5rem;/* 15px */
    }
}
a {
    text-decoration: none;
}
.mt10 {
    margin-top:min(0.8vw ,10px);
}
.mt20 {
    margin-top:min(1.6vw ,20px);
}
.mt30 {
    margin-top:clamp(15px,4vw ,30px);
}
.mt40 {
    margin-top:clamp(20px,4vw ,40px);
}
.mt50 {
    margin-top:min(4vw ,50px);
}
.mt60 {
    margin-top:min(5vw ,60px);
}
.mt70 {
    margin-top:min(5.5vw ,70px);
}
.mb20 {
    margin-bottom:min(1.6vw ,20px);
}
.mb50 {
    margin-bottom:clamp(30px,4.8vw ,50px);
}
.pt10 {
    padding-top:min(1.2vw ,10px);
}
.pt20 {
    padding-top:min(1.6vw ,20px);
}
.pt70 {
    padding-top:min(5.5vw ,70px);
}
.ctr {
    text-align: center;
}
/*--------------------fade-up用----------------------*/
.effect-fade {
	opacity: 0;
	transform: translate(0, 100px); /* フェードインで動く高さを指定 */
	transition: all 700ms; /* フェードインにかかる時間を指定 */
}
.effect-scroll {
	opacity: 1;
	transform: translate(0, 0);
}
/*--------------------タイトル----------------------*/
.title2 {
    font-size:min(4vw,5rem);
    letter-spacing: .3rem;
    color: #4169e1;
    text-align: center;
}
.title3 {
    font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
    font-size:min(1.8vw,2rem);
    letter-spacing: .3rem;
    text-align: center;
    margin-top:-10px;
}
.title2_b {
    font-size:min(4vw,5rem);
    letter-spacing: .3rem;
    color: #fff;
    text-align: center;
}
/*--------------------タイトルレスポンシブ----------------------*/
@media screen and (max-width:768px){
    .title2 {
        font-size:clamp(3rem,4.5vw,5rem);
        letter-spacing: .15rem;
        line-height: 1.1;
    }
    .title3 {
        font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
        font-size:clamp(1.4rem,1.4vw,1.5rem);
        letter-spacing: .3rem;
        text-align: center;
        margin-top:0px;
    }
    .title2_b {
        font-size:clamp(3rem,4.5vw,5rem);
        letter-spacing: .15rem;
        color: #fff;
        text-align: center;
    }
}
/*-----------------------フローティングボタン------------------------*/
#top_btn{
    width: 60px;
    height: 60px;
    position: fixed;
    right: 25px;
    bottom: 25px;
    background-color:#4169e1;
    border-radius: 50%;
    border:1px solid #fff;
    z-index: 99;
  }
  #top_btn a{
    position: relative;
    display: block;
    width: 60px;
    height: 60px;
    text-decoration: none;
  }
  #top_btn a::before{
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    content: '\f077';
    font-size: 20px;
    color: #fff;
    position: absolute;
    width: 20px;
    height: 20px;
    top: -10px;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
    text-align: center;
  }

/*-----------------------------------------------*/
#wrap {
    width:100%;
}
/*--------------------header----------------------*/
header {
    width:100%;
    position: fixed;
    padding-top: min(1.2vw,15px);
    padding-bottom: min(1.2vw,15px);
    padding-left: min(3.5vw,45px);
    padding-right: min(3.5vw,45px);
    display: flex;
    align-items: center;
    background-color:rgba(255,255,255,0);
    z-index: 100;
    transition: all 1s;
}
header a {
    color: #fff;
}
.change_opacity {
    background-color:rgba(255,255,255,0.7);
}
.change_opacity a {
    color:#4169e1;
}
.f_item:first-child{
    margin-right: auto;
}
#logo h1 {
    color:#fff;
    font-size: 2.8rem;
    letter-spacing: 0.15rem;
    margin-right: auto;
    font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
}
nav ul {
    display: flex;
    position: relative;
}
nav ul li {
    list-style-type: none;
}
nav ul li a {
    position:relative;
    display: block;
    text-decoration: none;
    color: #fff;
    font-weight: 700;
    font-size:1.6rem;
    letter-spacing: 0.05rem;
    margin-right: 40px;
    transition: all .5s;
}
nav ul li a:hover {
    color:rgb(135,206,250);
}

/*==2階層目の設定*/
nav ul ul{
    display: block;
}
nav ul li li a{
    padding:20px 0;
}
/*==2階層目以降の画像設定*/
nav ul li.has-child img{
    max-width: 100%;
    height: auto;
    transition: all .5s;
    vertical-align: bottom;
}
nav ul li.has-child img:hover{
    transform: scale(1.2);
}
nav ul li.has-child dt{
    overflow: hidden;
    /*height: 100px;*/
}
@media screen and (max-width:1200px){
    nav ul li.has-child dt{
      height: 14vw;
      max-height:150px;
    }
    nav ul li.has-child dd{
        font-size:1.4rem;
      }
    nav li.has-child ul li{
        width:300px;
    }
}
    
/*== 2層目の設定 */
nav li.has-child ul{
    /*絶対配置で位置を指定*/
    position: absolute;
    right:2%;
    top:65px;
    z-index: 4;
    /*子要素を横並びに*/    
    display: flex;
    justify-content: space-between;
    /*flex-wrap: wrap;*/
    /*形状を指定*/
    background:rgb(255, 255, 255,0.7);
    width:83.333vw;
    max-width:1000px;
    /*はじめは非表示*/
    visibility: hidden;
    opacity: 0;
    /*アニメーション設定*/
    transition: all .3s;
}
/*hoverしたら表示*/
nav li.has-child:hover > ul{
    visibility: visible;
    opacity: 1;
}
/*各ナビゲーション横幅*/
nav li.has-child ul li{
    width:330px;
}
/*ナビゲーションaタグの形状*/
nav li.has-child ul li a{
    color:#4169e1;
}
nav li.has-child ul li a:hover,
nav li.has-child ul li a:active{
    color:rgb(135,206,250);
}
    
/*--------------------headerレスポンシブ----------------------*/
@media screen and (max-width:768px){
    header {
        padding-top: min(3vw,10px);
        padding-bottom: min(1vw,10px);
        padding-left: min(3vw,30px);
        padding-right: min(3vw,30px);
    }
    #logo h1 {
        color:#fff;
        font-size: 2.4rem;
        letter-spacing: 0.15rem;
        margin-right: auto;
        font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
    }
    nav.f_item {
        display: none;
    }
}

/*--------------------main----------------------*/
main {
    width:100%;
    height:100%;
}
.main_image_wrap {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
}
#slider {
    width: 100%;
    height: 100vh;/*スライダー全体の縦幅を画面の高さいっぱい（100vh）にする*/
    z-index: 1;
}
#main_image {
    height:100%;
    position: absolute;
    top:0;
    left: 0;
    /*right: 0;
    margin: auto;*/
    z-index: 1;
    object-fit: cover;
}
.main-fadeup {
    animation-name: fadeup;
    animation-duration: 1s;
    /*animation-iteration-count: infinite;*/
}
@keyframes fadeup {
    from {
        opacity: 0;
        /*transform: translateY(0));*/
    }
    to {
        opacity: 1;
        /*transform: translateY(-30px);*/
    }
}
#catch {
    position: absolute;
    top:0;
    left: 0;
    width:100%;
    height:100%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2;
}
#catch img {
    max-width:230px;
    min-width:150px;
    width:17.05vw;
}
#top_text {
    position: absolute;
    left:45px;
    /*bottom:2.2vw;*/
    bottom:5%;
    /*bottom:30px;*/
    z-index: 10;
    font-size:clamp(2.2rem,2.7vw,3.3rem);
    line-height:1.4;
    letter-spacing: .6rem;
    color:#fff;
}
.blue_box {
    position: absolute;
    left:0;
    bottom: -4.1vw;
    /*bottom: -75px;*/
    width: 50%;
    height:13vw;
    max-height: 180px;
    z-index: 5;
    background: rgb(135,206,250);
    background: -moz-linear-gradient(left,  rgba(135,206,250,1) 0%, rgba(65,105,225,1) 100%);
    background: -webkit-linear-gradient(left,  rgba(135,206,250,1) 0%,rgba(65,105,225,1) 100%);
    background: linear-gradient(to right,  rgba(135,206,250,1) 0%,rgba(65,105,225,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#87cefa', endColorstr='#4169e1',GradientType=1 );
    mix-blend-mode: multiply;
}

/*--------------------mainレスポンシブ----------------------*/
@media screen and (max-width:768px){   
    #top_text {
        position: absolute;
        bottom:5%;
        left: 50%;
        transform: translateX(-50%);
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        z-index: 10;
        font-size:clamp(1.8rem,2.7vw,3rem);
        line-height:1.2;
        letter-spacing: .3rem;
        color:#fff;
        width:auto;
        text-align: center;
    }
    .blue_box {
        display: none;
    }
}

/*--------------------top_about----------------------*/
section#top_about {
    margin-top:min(16vw ,200px);
    width:100%;
}
.top_about_header {
    width:100%;
    height:min(27vw ,350px);
    background-image: url("../images/about_back.jpg");
    background-repeat: no-repeat;
    background-position: top center;
    background-size: cover;
    position: relative;
    color:#fff;
    text-align: center;
    display: flex;
    justify-content: flex-end;
}
.top_about_header::before {
    content: '';
    background: -moz-linear-gradient(left,  rgba(135,206,250,1) 0%, rgba(65,105,225,1) 100%);
    background: -webkit-linear-gradient(left,  rgba(135,206,250,1) 0%,rgba(65,105,225,1) 100%);
    background: linear-gradient(to right,  rgba(135,206,250,1) 0%,rgba(65,105,225,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#87cefa', endColorstr='#4169e1',GradientType=1 );
    mix-blend-mode: multiply;
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width:37%;
}
.top_about_inner {
    width:37%;
    height:min(27vw ,350px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 10;
}
.top_about_inner h2 {
    font-size:min(4vw,5rem);
    letter-spacing: .3rem;
}
.top_about_inner h3 {
    font-size:min(1.8vw,2rem);
    letter-spacing: .3rem;
    margin-top:-10px;
}
.top_about_text {
    width:88%;
    max-width:1280px;
    margin: -60px auto 0;
    background-color: #fff;
    padding-top:min( 4.6vw,60px);
    padding-bottom:min( 4.6vw,60px);
    padding-right:min( 9vw,120px);
    padding-left:min( 9vw,120px);
    z-index: 20;
    position: relative;
    font-family: YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
}
.top_about_text h3 {
    text-align: center;
    color: #4169e1;
    font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
    font-size:clamp(2.2rem,2.8vw,3rem);
    font-weight: 700;
    letter-spacing: .05em;
}
.top_about_text h3 {
    text-align: center;
    color: #4169e1;
    font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
    font-size:clamp(2.2rem,2.8vw,3rem);
    font-weight: 700;
    letter-spacing: .05em;
}
.top_about_text h4 {
    color: #fff;
    font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
    font-size:clamp(1.5rem,2vw,2rem);
    font-weight: 700;
    letter-spacing: .05em;
    background: -moz-linear-gradient(left,  rgba(65,105,225,1) 0%, rgba(135,206,250,1) 100%);
    background: -webkit-linear-gradient(left,  rgba(65,105,225,1) 0%,rgba(135,206,250,1) 100%);
    background: linear-gradient(to right,  rgba(65,105,225,1) 0%,rgba(135,206,250,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#87cefa', endColorstr='#4169e1',GradientType=1 );
    mix-blend-mode: multiply;
    /*background-color: rgb(65, 105, 225 ,0.5);*/
    padding:4px 10px;
    border-left:10px solid #4169e1;
}
.top_about_text p {
    margin-top:min( 3.5vw ,50px);
    line-height: 1.8;
}
section#top_about2 {
    margin-top:min(8vw ,100px);
    width:100%;
}
.blue_back {
    background-color: rgba(115, 206, 255, 0.15) !important;
}
.top_about2_box {
    display: flex;
    justify-content: space-between;
}
.top_about2_box01 {
    width:50%;
}
.top_about2_box02 {
    width:40%;
    max-width: 400px;
}
.top_about2_box02 img {
    width:100%;
}
.back-h3 {
    background-image:url("../images/top-h2-back.jpg");
    background-repeat: no-repeat;
    background-position: top center;
    background-size: cover;
    color:#fff !important;
    padding: 30px 20px;
}
.top_about2_marker {
    background: linear-gradient(transparent 70%, rgba(255, 240, 127) 70%);
}
/*--------------------aboutレスポンシブ----------------------*/
@media screen and (max-width:768px){   
    section#top_about {
        margin-top:12vw;
        width:100%;
    }
    .top_about_header {
        width:100%;
        height:min(50vw ,350px);
        background-image: url("../images/about_back.jpg");
        background-repeat: no-repeat;
        background-position: top center;
        background-size: cover;
        position: relative;
        color:#fff;
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: baseline;
    }
    .top_about_header::before {
        content: '';
        background: -moz-linear-gradient(left,  rgba(135,206,250,1) 0%, rgba(65,105,225,1) 100%);
        background: -webkit-linear-gradient(left,  rgba(135,206,250,1) 0%,rgba(65,105,225,1) 100%);
        background: linear-gradient(to right,  rgba(135,206,250,1) 0%,rgba(65,105,225,1) 100%);
        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#87cefa', endColorstr='#4169e1',GradientType=1 );
        mix-blend-mode: multiply;
        position: absolute;
        top:auto;
        right: 0;
        bottom: 0;
        width:100%;
        height:60%;
    }
    .top_about_inner {
        width:100%;
        height:60%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        z-index: 10;
        position:absolute;
        bottom:0;
    }
    .top_about_inner h2 {
        font-size:clamp(3rem,4.5vw,5rem);
        letter-spacing: .15rem;
    }
    .top_about_inner h3 {
        font-size:clamp(1.4rem,1.4vw,1.5rem);
        letter-spacing: .3rem;
        margin-top:-0.5rem;
    }
    .top_about_text {
        width:88%;
        max-width:1280px;
        margin: -3% auto 0;
        background-color: #fff;
        padding-top:min( 6vw,60px);
        padding-bottom:min( 6vw,60px);
        padding-right:min( 9vw,120px);
        padding-left:min( 9vw,120px);
        z-index: 20;
        position: relative;
        font-family: YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
    }
    .top_about_text h3 {
        /*text-align: left;*/
        color: #4169e1;
        font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
        font-size:clamp(1.7rem,2.4vw,2.5rem);
        font-weight: 700;
        letter-spacing: .05em;
    }
    .top_about_text p {
        margin-top:min( 3.5vw ,50px);
        line-height: 1.8;
    }
    .top_about2_box {
        flex-direction: column;
        align-items: center;
    }
    .top_about2_box01{
        order: 2;
        width:100%;
    }
    .top_about2_box02{
        order: 1;
        width:80%;
    }
}

/*--------------------top_service----------------------*/
#top_service {
    width:100%;
    margin-top:min( 9vw,120px);
    margin-right:auto;
    margin-left:auto;
}
.top_service_wrap {
    width:100%;
    height:68vw;
    max-height:800px;
    position:relative;
}
.top_service_box {
    width:88%;
    max-width:1280px;
    height:43vw;
    max-height:550px;
    margin:0 auto;
}
.top_service_inner {
    width:100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
}
.top_service_inner_l {
    /*width:569px;
    height:470px;
    width:42.179vw;*/
    width:49%;
    height:34.841vw;
    max-height:470px;
    overflow: hidden;
}
.top_service_inner_l img {
    width:100%;
}
.top_service_inner_r {
    position:relative;
    width:51%;
    height:34.841vw;
    max-height:470px;
}
.top_service_img02 {
    position: absolute;
    /*left:100px;*/
    left:13%;
    bottom:0;
    width:20.703vw;
    height:26.016vw;
    max-width:265px;
    max-height:333px;
    z-index: 2;
}
.top_service_img03 {
    position: absolute;
    right:0;
    top:0;
    width:28.594vw;
    height:21.328vw;
    max-width:366px;
    max-height:273px;
    z-index: 0;
}
.top_service_img02 img, .top_service_img03 img{
    width:100%;
}
.blue_wrap {
    width:100%;
    max-width: 1500px;
    margin-top: max(-10%, -140px);
    margin-bottom: 0;
    margin-right: auto;
    margin-left: auto;
    position:relative;
}
.top_service_txt_blue {
    position: absolute;
    right: 0;
    width:60%;
    z-index: 10;
    background: rgb(135,206,250);
    background: -moz-linear-gradient(left,  rgba(135,206,250,1) 0%, rgba(65,105,225,1) 100%);
    background: -webkit-linear-gradient(left,  rgba(135,206,250,1) 0%,rgba(65,105,225,1) 100%);
    background: linear-gradient(to right,  rgba(135,206,250,1) 0%,rgba(65,105,225,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#87cefa', endColorstr='#4169e1',GradientType=1 );
    /*mix-blend-mode :multiply;*/
    display:flex;
    align-items: center;
}
.top_service_txt_inner {
    position: relative;
    /*padding:100px 70px 100px 80px;*/
    padding-top: min(7vw, 100px);
    padding-bottom: min(7vw, 100px);
    padding-right: min(7vw, 100px);
    padding-left: min(6.2vw, 80px);
    width:85%;
    z-index: 6;
    color:#fff;
    transition: all 0.5s 0s ease;
}
.top_service_txt_inner::after {
    content: "";
    background-image: url("../images/arrow_wh.svg");
    background-repeat: no-repeat;
    display: inline-block;
    height: 10rem;
    width: 3rem;
    position:absolute;
    right:0;
    top:40%;
}
.top_service_txt_inner h2 {
    font-size:clamp(1.8rem,3.5vw,3.3rem);
    font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
}
.top_service_txt_inner h3 {
    font-size: 1.5rem;
    letter-spacing: .2rem;
}
.blue_wrap a{
    transition: all 3s;
}
.blue_wrap a:hover .top_service_txt_blue {
    mix-blend-mode: multiply;
}
.blue_wrap a:hover .top_service_txt_blue::after {
    content: '';
    background-color:#4169e1;
    opacity:0.7;
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width:100%;
}
/*--------------------serviceレスポンシブ----------------------*/
@media screen and (max-width:768px){   
    #top_service {
        width:100%;
        margin-top:15vw;
        margin-right:auto;
        margin-left:auto;
    }
    .top_service_wrap {
        width:100%;
        height:135vw;
        max-height:1000px;
        min-height:800px;
        position:relative;
    }
    .top_service_box {
        width:96%;
        max-width:1280px;
        height:95vw;
        max-height:800px;
        margin:0 auto;
    }
    .top_service_inner {
        width:100%;
        margin: 0 auto;
        height:auto;
        max-height:auto;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    .top_service_inner_l {
        width:96%;
        height:60vw;
        max-height:auto;
        overflow: hidden;
    }
    .top_service_inner_l img {
        width:100%;
    }
    .top_service_inner_r {
        position:relative;
        width:100%;
        height:40vw;
        max-height:auto;
        margin-top:-10vw;
        overflow: hidden;
    }
    .top_service_img02 {
        position: absolute;
        left:25%;
        bottom:0;
        width:34.505vw;
        height:30vw;
        z-index: 2;
        overflow:hidden;
    }
    .top_service_img03 {
        position: absolute;
        right:0;
        top:0;
        width:47.656vw;
        height:35.547vw;
        z-index: 0;
    }
    .top_service_img02 img, .top_service_img03 img{
        width:100%;
    }
    .blue_wrap {
        width:100%;
        height:100%;
        max-width: auto;
        margin-top: 0;
        margin-bottom: 0;
        margin-right: auto;
        margin-left: auto;
        position:relative;
    }
    .top_service_txt_blue {
        position: absolute;
        right: 0;
        width:96%;
        z-index: 10;
        background: rgb(135,206,250);
        background: -moz-linear-gradient(left,  rgba(135,206,250,1) 0%, rgba(65,105,225,1) 100%);
        background: -webkit-linear-gradient(left,  rgba(135,206,250,1) 0%,rgba(65,105,225,1) 100%);
        background: linear-gradient(to right,  rgba(135,206,250,1) 0%,rgba(65,105,225,1) 100%);
        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#87cefa', endColorstr='#4169e1',GradientType=1 );
        /*mix-blend-mode :multiply;*/
        display:flex;
        align-items: center;
    }
    .top_service_txt_inner {
        position: relative;
        /*padding:100px 70px 100px 80px;*/
        padding-top: min(7vw, 100px);
        padding-bottom: min(7vw, 100px);
        padding-right: min(10vw, 100px);
        padding-left: min(6.2vw, 80px);
        width:96%;
        z-index: 6;
        color:#fff;
        transition: all 0.5s 0s ease;
    }
    .top_service_txt_inner::after {
        content: "";
        background-image: url("../images/arrow_wh.svg");
        background-repeat: no-repeat;
        display: inline-block;
        height: 5rem;
        width: 2rem;
        position:absolute;
        right:0;
        top:40%;
    }
    .top_service_txt_inner h2 {
        font-size:clamp(1.8rem,3.2vw,3.5rem);
        font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
    }
    .top_service_txt_inner h3 {
        font-size: 1.5rem;
        letter-spacing: .2rem;
    }
    .blue_wrap a{
        transition: all 3s;
    }
    .blue_wrap a:hover .top_service_txt_blue {
        mix-blend-mode: multiply;
    }
    .blue_wrap a:hover .top_service_txt_blue::after {
        content: '';
        background-color:#4169e1;
        opacity:0.7;
        position: absolute;
        right: 0;
        top: 0;
        bottom: 0;
        width:100%;
    }
}
@media screen and (max-width:575px){ 
    .top_service_wrap {
        width:100%;
        height:160vw;
        max-height:780px;
        min-height:auto;
        position:relative;
    }
    .blue_wrap {
        width:100%;
        height:auto;
        max-width: auto;
        max-height: 600px;
        margin-top: 0;
        margin-bottom: 0;
        margin-right: auto;
        margin-left: auto;
        position:relative;
    }
}
@media screen and (max-width:376px){ 
    .top_service_wrap {
        width:100%;
        height:170vw;
        max-height:1000px;
        min-height:auto;
        position:relative;
    }
}

/*--------------------top_information----------------------*/
#top_information {
    width:100%;
    margin-top:min( 12vw,120px);
    margin-bottom:min( 9vw,120px);
    margin-right:auto;
    margin-left:auto;
    height:50px;
}
.top_information_text {
    width:88%;
    max-width:1280px;
    margin: 30px auto 0;
    background-color: #fff;
    padding-top: min(4.7vw, 60px);
    padding-bottom: min(4.7vw, 60px);
    padding-right: min(9.4vw, 120px);
    padding-left: min(9.4vw, 120px);
    z-index: 20;
    position: relative;
    font-family: YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
}
.top_information_text dl {
    display: flex;
    flex-wrap: wrap;
}
.top_information_text dl dt {
    width: 15%;
    padding: 20px 0;
    border-bottom:1px solid #ccc;
}
.top_information_text dl dd {
    width: 85%;
    padding: 20px 0;
    border-bottom:1px solid #ccc;
}
.top_information_text a:hover {
    color:#4d4d4d;
}
.btn_blue,
a.btn_blue {
  color: #fff;
  background-color: #4169e1;
  border:2px solid #4169e1;
  padding-top: min(1.5vw, 20px);
  padding-bottom: min(1.5vw, 20px);
  padding-right: min(6.3vw, 80px);
  padding-left: min(6.3vw, 80px);
  font-family: 'Roboto', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
  letter-spacing: .3rem;
  transition: all .5s;
}
.btn_blue:hover,
a.btn_blue:hover {
  color: #4169e1;
  background: #fff;
  border:2px solid #4169e1;
  cursor: pointer;
}
/*--------------------infomationレスポンシブ----------------------*/
@media screen and (max-width:768px){   
    #top_information {
        width:100%;
        margin-top:12vw;
        margin-bottom:12vw;
        margin-right:auto;
        margin-left:auto;
    }
    .top_information_text {
        width:88%;
        max-width:1280px;
        margin: 30px auto 0;
        background-color: #fff;
        padding-top: min(4.7vw, 60px);
        padding-bottom: min(4.7vw, 60px);
        padding-right: min(9.4vw, 120px);
        padding-left: min(9.4vw, 120px);
        z-index: 20;
        position: relative;
        font-family: YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
    }
    .top_information_text dl {
        display: flex;
        flex-direction: column;
        flex-wrap: no-wrap;
    }
    .top_information_text dl dt {
        width: auto;
        padding: 2vw 0 0;
        border-bottom:none;
    }
    .top_information_text dl dd {
        width: auto;
        padding: 0 0 2vw;
        border-bottom:1px solid #ccc;
    }
    .top_information_text a:hover {
        color:#4d4d4d;
    }
}

/*--------------------top_contact----------------------*/
#top_contact {
    width:100%;
    height:30vw;
    max-height:390px;
    background-image: url(../images/contact_back.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    color: #fff;
    text-align: center;
}
#top_contact a {
    display: block;
    width:100%;
    height:100%;
    color:#fff;
    transition: all .5s;
}
#top_contact a:hover {
    background-color: rgba(0,0,0,.3);
}
.contact_wrap {
    width:100%;
    height:100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items:center;
    position: relative;
}
.contact_wrap::after {
    content: "";
    background-image: url("../images/arrow_wh.svg");
    background-repeat: no-repeat;
    display: inline-block;
    height: 10rem;
    width: 3rem;
    position:absolute;
    right:10%;
    top:45%;
}
/*--------------------infomationレスポンシブ----------------------*/
@media screen and (max-width:768px){
    #top_contact {
        width:100%;
        height:30vw;
        min-height:200px;
        background-image: url(../images/contact_back.jpg);
        background-repeat: no-repeat;
        background-size: cover;
        color: #fff;
        text-align: center;
    }
    #top_contact a {
        display: block;
        width:100%;
        height:100%;
        color:#fff;
        transition: all .5s;
    }
    #top_contact a:hover {
        background-color: rgba(0,0,0,.3);
    }
    .contact_wrap {
        width:100%;
        height:100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items:center;
        position: relative;
        font-size:1.4rem;
    }
    .contact_wrap::after {
        content: "";
        background-image: url("../images/arrow_wh.svg");
        background-repeat: no-repeat;
        display: inline-block;
        height: 7rem;
        width: 2rem;
        position:absolute;
        right:5%;
        top:45%;
    }
}

/*--------------------footer----------------------*/
footer {
    width:100%;
    background-color: #4169e1;
    color: #fff;
    padding-top:min( 6vw ,75px);
    padding-bottom:min(7.8vw ,100px);
}
#footer_inner {
    width:88%;
    max-width:1280px;
    margin:0 auto;
    display: flex;
    justify-content:space-between;
}
.footer_logo {
    width:100px;
}
.footer_logo img {
    width:100%;
}
.footer_address {
    width:300px;
    padding-left: min(2vw ,30px);
}
.footer_address h2 {
    font-size: min(2vw, 2.6rem);
    letter-spacing: .2rem;
}
.footer_address dl {
    display: flex;
    flex-wrap: wrap;
    font-size: min(1.3vw ,1.4rem);
    margin-top:min(1.2vw ,15px);
    width:100%;
}
.footer_address dl dt {
    width: 15%;
    padding: 5px 0;
}
.footer_address dl dd {
    width: 85%;
    padding: 5px 0;
}
nav.footer_nav {
    width:11vw;
    max-width:150px;
}
ul.footer_nav_list {
    display: flex;
    flex-direction: column;
}
ul.footer_nav_list li {
    margin-bottom:15px;
}
ul.footer_nav_list li a {
    color: #fff;
    font-weight:700;
    letter-spacing: .1rem;
}
ul.footer_nav_list li a:hover {
    opacity: .7;
}
.googlemap iframe {
    /*width:595px;
    height:406px;*/
    width:44vw;
    height:30vw;
    max-width: 600px;
    max-height: 464px;
}
#copyright {
    margin-top:min(7.8vw ,100px);
    text-align: center;
    font-size: 1.2rem;
    letter-spacing: .2em;
}
/*-----------------footerレスポンシブ-------------------*/
@media screen and (max-width: 1279px) {
    .footer_nav {
        display: none;
    }
}
@media screen and (max-width:768px){
    footer {
        width:100%;
        background-color: #4169e1;
        color: #fff;
        padding-top:min( 6vw ,75px);
        padding-bottom:min(10vw ,100px);
    }
    #footer_inner {
        width:88%;
        max-width:auto;
        margin:0 auto;
        display: flex;
        flex-direction: column;
        justify-content:center;
    }
    .footer_logo {
        width:100px;
        order: 2;
        margin: 8vw auto;
    }
    .footer_logo img {
        width:100%;
    }
    .footer_address {
        width:100%;
        margin: 0 auto;
        padding:5vw 0;
        order: 3;
        border-top:1px solid #87cefa;
        border-bottom:1px solid #87cefa;
    }
    .footer_address h2 {
        font-size: clamp(2rem, 2.6vw,2.2rem);
        letter-spacing: .2rem;
        text-align: center;
    }
    .footer_address dl {
        display: flex;
        flex-wrap: wrap;
        font-size: clamp(1.3rem, 1.5vw,1.4rem);
        margin-top:min(1.2vw ,15px);
        width:100%;
    }
    .footer_address dl dt {
        width: 15%;
        padding: 5px 0;
    }
    .footer_address dl dd {
        width: 85%;
        padding: 5px 0;
    }
    nav.footer_nav {
        width:11vw;
        max-width:150px;
    }
    ul.footer_nav_list {
        display: flex;
        flex-direction: column;
    }
    ul.footer_nav_list li {
        margin-bottom:15px;
    }
    ul.footer_nav_list li a {
        color: #fff;
        font-weight:700;
        letter-spacing: .1rem;
    }
    ul.footer_nav_list li a:hover {
        opacity: .7;
    }
    .googlemap {
        width:100%;
        margin: 0 auto;
        order: 1;
    }
    .googlemap iframe {
        width:100%;
        margin: auto;
        height:60vw;
        max-width: auto;
        max-height: 450px;
    }
    #copyright {
        margin-top:min(7.8vw ,100px);
        text-align: center;
        font-size: 1.2rem;
        letter-spacing: .05em;
    }
}

/*--------------------サブページ共通----------------------------------------------*/
.sub_image_wrap {
    position: relative;
    width: 100%;
    height: 50vh;
    overflow: hidden;
}
#sub_image {
    height:100%;
    position: absolute;
    top:0;
    left: 0;
    /*right: 0;
    margin: auto;*/
    z-index: 1;
    object-fit: cover;
}
#sub_page_title {
    position: absolute;
    top:0;
    left: 0;
    width:100%;
    height:100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 2;
    font-size:min(4.5vw,5.5rem);
    letter-spacing: .3rem;
    color: #fff;
    line-height:1.2;
}
#sub_page_title span {
    font-size:min(1.8vw,2rem);
    letter-spacing: .3rem;
}
.sub_page_h2 {
    font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
    text-align: center;
    color: #4169e1;
    font-size:min(3vw,3.2rem);
}
.sub_page_h3 {
    font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
    text-align: center;
    color: #4169e1;
    font-size:min(2.5vw,2.8rem);
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}
.sub_page_h3::before, .sub_page_h3::after{
    border-top: 1px solid #4169e1;
    content: "";
    width: 1em; /* 線の長さ */
}
.sub_page_h3::before {
    margin-right: .4em; /* 文字の右隣 */
}
.sub_page_h3::after {
    margin-left: .4em; /* 文字の左隣 */
}
.btn_white,
a.btn_white {
  color: #4169e1;
  font-size:2.5rem;
  letter-spacing: .1em;
  background-color: #fff;
  padding-top: min(1.5vw, 20px);
  padding-bottom: min(1.5vw, 20px);
  padding-right: min(6.3vw, 80px);
  padding-left: min(6.3vw, 80px);
  font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
  letter-spacing: .3rem;
  transition: all .5s;
  border:none;
}
.btn_white:hover,
a.btn_white:hover {
  color: #4169e1;
  background: #87cefa;
  cursor: pointer;
  border:none;
}

/*--------------------サブページ共通レスポンシブ----------------------------------------------*/
@media screen and (max-width:768px){
    .sub_image_wrap {
        position: relative;
        width: 100%;
        height: 40vh;
        overflow: hidden;
    }
    #sub_image {
        height:100%;
        position: absolute;
        top:0;
        left: 0;
        z-index: 1;
        object-fit: cover;
    }
    #sub_page_title {
        position: absolute;
        top:0;
        left: 0;
        width:100%;
        height:100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        z-index: 2;
        font-size:clamp(3rem,3.8vw,3.5rem);
        letter-spacing: .3rem;
        color: #fff;
        line-height:1.2;
        text-align: center;
    }
    #sub_page_title span {
        font-size:clamp(1.4rem,1.7vw,1.6rem);
        letter-spacing: .2rem;
    }
    .sub_page_h2 {
        font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
        text-align: left;
        color: #4169e1;
        font-size:clamp(2rem,3vw,2.5rem);
    }
    .sub_page_h3 {
        font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
        text-align: center;
        color: #4169e1;
        font-size:clamp(1.8rem,3vw,2.5rem);
        display: flex;
        align-items: center;
        justify-content: center;
        line-height: 0;
    }
    .sub_page_h3::before, .sub_page_h3::after{
        border-top: 1px solid #4169e1;
        content: "";
        width: 1em; /* 線の長さ */
    }
    .sub_page_h3::before {
        margin-right: .4em; /* 文字の右隣 */
    }
    .sub_page_h3::after {
        margin-left: .4em; /* 文字の左隣 */
    }
    .btn_white,
    a.btn_white {
      color: #4169e1;
      font-size:clamp(2rem,3vw,2.5rem);
      letter-spacing: .1em;
      background-color: #fff;
      padding-top: min(1.5vw, 20px);
      padding-bottom: min(1.5vw, 20px);
      padding-right: min(6.3vw, 80px);
      padding-left: min(6.3vw, 80px);
      font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
      letter-spacing: .3rem;
      transition: all .5s;
      border:none;
    }
    .btn_white:hover,
    a.btn_white:hover {
      color: #4169e1;
      background: #87cefa;
      cursor: pointer;
      border:none;
    }
}

/*--------順番にフェードアップする用-------*/
/*スタート時は要素自体を透過0にするためのopacity:0;を指定する*/
.box{
    opacity: 0;
}
/*フェードアップ*/
.fadeUp {
  animation-name:fadeUpAnime;
  animation-duration:0.7s;
  animation-fill-mode:forwards;
  opacity: 0;
}
@keyframes fadeUpAnime{
    from {
      opacity: 0;
    transform: translateY(100px);
    }
  
    to {
      opacity: 1;
    transform: translateY(0);
    }
}

/*--------改行関連-------*/
.br_sp {
    display: none;
}
.br_pc {
    display: inherit;
}

@media screen and (max-width:768px) {
    .br_sp {
        display: inherit;
      }
    .br_pc {
        display: none;
    }
}

/*--------画像切り替え関連-------*/
.img_sp {
    display: none;
}
.img_pc {
    display: inherit;
}

@media screen and (max-width:768px) {
    .img_sp {
        display: inherit;
      }
    .img_pc {
        display: none;
    }
}

/*--------ボタン切り替え関連-------*/
.btn_sp {
    display: none;
}
.btn_pc {
    display: inherit;
}

@media screen and (max-width:768px) {
    .btn_sp {
        display: inherit;
      }
    .btn_pc {
        display: none;
    }
}

/*==============================ハンバーガーメニュー==============================*/
#hamburger {
    display: flex;
    justify-content: center;
    align-items: center;
    width:70px;
    height:70px;
    z-index:1000;
}
.hamburger_inner {
    position: relative;
    width:70px;
    height:16px;
    cursor: pointer;
}
.hamburger_inner span:nth-child(1) {
    position: absolute;
    top:0;
    left:0;
    display: inline-block;
    width:70px;
    height: 2px;
    background-color: #fff;
    -webkit-transition: 0.3s ease-in-out;
	-moz-transition   : 0.3s ease-in-out;
	transition        : 0.3s ease-in-out;
}
.hamburger_inner span:nth-child(2)  {
    position: absolute;
    top:12px;
    left:0;
    display: inline-block;
    width:70px;
    height: 2px;
    background-color: #fff;
    -webkit-transition: 0.3s ease-in-out;
	-moz-transition   : 0.3s ease-in-out;
	transition        : 0.3s ease-in-out;
}
.change_opacity #hamburger span {
    background-color:#4169e1;
}

/* ナビ開いてる時のボタン */
.hamburger_inner.active span:nth-child(1) {
	top : 6px;
	/*left: 12px;*/
	background-color :#fff;
	-webkit-transform: rotate(-45deg);
	-moz-transform   : rotate(-45deg);
	transform        : rotate(-45deg);
}
.hamburger_inner.active span:nth-child(2) {
	top: 6px;
	background-color :#fff;
	-webkit-transform: rotate(45deg);
	-moz-transform   : rotate(45deg);
	transform        : rotate(45deg);
}
/* 開いたナビの中身 */
nav.globalMenuSp {
	position: fixed;
	z-index : 900;
	top  : 0;
	right : 0;
	background:#4169e1;
	width: 40%;
	height:100%;
	opacity: 0;
	visibility:hidden;
	transition: opacity .6s ease, visibility .6s ease;
}
.globalMenu_wrap {
  width:86%;
  margin:10vw auto;
}
.globalMenu_nav {
  width:100%;
  display: inherit;
}
.globalMenu_nav li a {
  position: relative;
  display: block;
  color:#fff;
  font-size:1.7rem;
  letter-spacing: .08em;
  padding:2.5rem 1.5rem;
  border-bottom: 1px solid #87cefa;
  transition: all .3s;
}
.globalMenu_nav li a::after {
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  content: '\f054';
  font-size:1rem;
  color: #fff;
  position: absolute;
  top: 2rem;
  bottom: 0;
  right: 0;
  margin: auto;
  width:3rem;
  height:3rem;
}
/* このクラスを、jQueryで付与・削除する */
nav.globalMenuSp.active {
	opacity: 100;
	visibility:visible;
}
/*--------------------ハンバーガーレスポンシブ----------------------*/
@media screen and (max-width:768px){
    #hamburger {
        display: flex;
        justify-content: center;
        align-items: center;
        width:40px;
        height:40px;
        z-index:1000;
    }
    .hamburger_inner {
        position: relative;
        width:40px;
        height:16px;
        cursor: pointer;
    }
    .hamburger_inner span:nth-child(1) {
        position: absolute;
        top:0;
        left:0;
        display: inline-block;
        width:40px;
        height: 2px;
        background-color: #fff;
        -webkit-transition: 0.3s ease-in-out;
        -moz-transition   : 0.3s ease-in-out;
        transition        : 0.3s ease-in-out;
    }
    .hamburger_inner span:nth-child(2)  {
        position: absolute;
        top:12px;
        left:0;
        display: inline-block;
        width:40px;
        height: 2px;
        background-color: #fff;
        -webkit-transition: 0.3s ease-in-out;
        -moz-transition   : 0.3s ease-in-out;
        transition        : 0.3s ease-in-out;
    }
    .change_opacity #hamburger span {
        background-color:#4169e1;
    }
    
    /* 開いたナビの中身 */
    nav.globalMenuSp {
        position: fixed;
        z-index : 900;
        top  : 0;
        right : 0;
        background:#4169e1;
        width: 100%;
        height:100%;
        opacity: 0;
        visibility:hidden;
        transition: opacity .6s ease, visibility .6s ease;
    }
    .globalMenu_wrap {
        width:90%;
        margin:12vw auto;
    }
    .globalMenu_nav li a {
        position: relative;
        display: block;
        color:#fff;
        font-size:1.6rem;
        letter-spacing: .08em;
        padding:1.5rem 1.5rem;
        border-bottom: 1px solid #87cefa;
        transition: all .3s;
      }
}

