@charset "utf-8";/* CSS Document */*, ::before, ::after {  box-sizing: border-box;}html {  font-size: 62.5%;}body {  position: relative;  width: 100%;  margin: 0;  padding: 0;  font-family: "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";  font-style: normal;  font-weight: normal;  font-size: 1.2rem;  color: #333;  -webkit-text-size-adjust: none;  -webkit-font-smoothing: antialiased;  z-index: 0;  font-feature-settings: "pkna"1;  overflow-x: hidden;    letter-spacing: .1em;    line-height: 1.6;}a {  text-decoration: none;}h1, h2, h3, h4, h5, h6 {  margin-bottom: 0;  font-weight: 400;  font-size: inherit;  font-feature-settings: "palt";  line-height: 1.65;}p {  margin-bottom: 0;}pre {  margin-bottom: 0;}dl {  margin-bottom: 0;}ul {  margin-bottom: 0;}ol {  margin-bottom: 0;  list-style: decimal;  padding-left: 1em;}img{    max-width: 100%;}/*-----------------------------------------------------------------ハンバーガーメニュー-----------------------------------------------------------------*/#g-nav{    /*position:fixed;にし、z-indexの数値を大きくして前面へ*/    position:fixed;    z-index: 999;    /*ナビのスタート位置と形状*/  top:0;    right: -120%;  width:100%;    height: 100vh;/*ナビの高さ*/  background:#44BF9F;    /*動き*/  transition: all 0.6s;}/*アクティブクラスがついたら位置を0に*/#g-nav.panelactive{    right: 0;}/*ナビゲーションの縦スクロール*/#g-nav.panelactive #g-nav-list{    /*ナビの数が増えた場合縦スクロール*/    position: fixed;    z-index: 999;     width: 100%;    height: 100vh;/*表示する高さ*/    overflow: auto;    -webkit-overflow-scrolling: touch;}/*ナビゲーション*/#g-nav ul {    /*ナビゲーション天地中央揃え*/    position: absolute;    z-index: 999;    top:50%;    left:50%;    transform: translate(-50%,-50%);}/*リストのレイアウト設定*/#g-nav li{  list-style: none;    text-align: center;}#g-nav li a{  color: #FFFFFF;  text-decoration: none;  padding:10px;  display: block;  text-transform: uppercase;  letter-spacing: 0.1em;  font-weight: bold;    font-size: 1.6rem;}/*========= ボタンのためのCSS ===============*/.openbtn1{  position:fixed;    z-index: 9999;/*ボタンを最前面に*/  top:10px;  right: 10px;  cursor: pointer;    width: 50px;    height:50px;    background: #44BF9F;}  /*×に変化*/  .openbtn1 span{    display: inline-block;    transition: all .4s;    position: absolute;    left: 14px;    height: 3px;    border-radius: 2px;  background-color: #FFFFFF;    width: 45%;  }.openbtn1 span:nth-of-type(1) {  top:15px; }.openbtn1 span:nth-of-type(2) {  top:23px;}.openbtn1 span:nth-of-type(3) {  top:31px;}.openbtn1.active span:nth-of-type(1) {    top: 18px;    left: 18px;    transform: translateY(6px) rotate(-45deg);    width: 30%;}.openbtn1.active span:nth-of-type(2) {  opacity: 0;}.openbtn1.active span:nth-of-type(3){    top: 30px;    left: 18px;    transform: translateY(-6px) rotate(45deg);    width: 30%;}/*==================================================メインビジュアル===================================*/.slider {  position:relative;	z-index: 0;	/*↑z-indexの値をh1のz-indexの値よりも小さくして背景に回す*/	height: 48vw;/*スライダー全体の縦幅を画面の高さいっぱい（100vh）にする*/}.slider-item01 {    background:url("images/main.png");}.slider-item02 {    background:url("images/main02.png");}.slider-item03 {    background:url("images/main03.png");}.slider-item {    width: 100%;/*各スライダー全体の横幅を画面の高さいっぱい（100%）にする*/    height:48vw;/*各スライダー全体の縦幅を画面の高さいっぱい（100vh）にする*/    background-repeat: no-repeat;/*背景画像をリピートしない*/    background-position: center;/*背景画像の位置を中央に*/    background-size: cover;/*背景画像が.slider-item全体を覆い表示*/}/*矢印の設定*/.slick-prev, .slick-next {    display: none!important;    position: absolute;	z-index: 3;    top: 42%;    cursor: pointer;/*マウスカーソルを指マークに*/    outline: none;/*クリックをしたら出てくる枠線を消す*/    border-top: 2px solid #fff;/*矢印の色*/    border-right: 2px solid #fff;/*矢印の色*/    height: 25px;    width: 25px;}.slick-prev {/*戻る矢印の位置と形状*/    left:2.5%;    transform: rotate(-135deg);}.slick-next {/*次へ矢印の位置と形状*/    right:2.5%;    transform: rotate(45deg);}/*ドットナビゲーションの設定*/.slick-dots {    display: none!important;	position: relative;	z-index: 3;    text-align:center;	margin:-50px 0 0 0;/*ドットの位置*/}.slick-dots li {    display:inline-block;	margin:0 5px;}.slick-dots button {    color: transparent;    outline: none;    width:8px;/*ドットボタンのサイズ*/    height:8px;/*ドットボタンのサイズ*/    display:block;    border-radius:50%;    background:#fff;/*ドットボタンの色*/}.slick-dots .slick-active button{    background:#333;/*ドットボタンの現在地表示の色*/}/*--------------------------------------------------------------------------*/header{    display: flex;    justify-content: space-between;    align-items: center;    padding: 10px 30px;    position: fixed;    top: 0;    left: 0;    z-index: 99;    width: 100%;    background: #FFFFFF;}.mv{    height: 48vw;    position: relative;    margin-top: 100px;}.h_r{    display: flex;    justify-content: flex-end;    gap:30px;    flex-direction: column;    align-items: flex-end;}.h_tel a{    font-size: max(1.4vw , 20px);    background: #44BF9F;    color: #FFFFFF;    font-weight: 600;    padding: 5px 20px;    border-radius: 50px;}.gnav ul{    display: flex;    justify-content: space-between;    gap: 10px 3vw;}.gnav ul li{    font-size: max(0.9vw , 16px);    text-align: center;}.gnav ul li img{    max-height: 32px;    margin-bottom: 5px;}.gnav ul li span{    display: block;}.catch{    position: absolute;    right: 3vw;    bottom: 5vw;    font-size: max(5vw , 30px);    text-align: center;    line-height: 1;    font-weight: 600;    text-shadow: 2px 3px 3px rgba(255, 255, 255, 1);    z-index: 1;}.catch span{    font-size: max(2vw , 20px);}.news{    background: #F5F5F5;    padding: 50px 3%;}.news_inner{    max-width: 1200px;    margin: 0 auto;    position: relative;}.news_ttl{    font-size: max(1.4vw , 20px);    font-weight: 600;    margin-bottom: 30px;    padding-bottom: 20px;    border-bottom: 1px solid #333333;}.news_ttl span{    font-size: max(1vw , 16px);    color: #44BF9F;    margin-left: 30px;}.news_btn{    position: absolute;    top: 5px;    right: 30px;    background: #FBC512;    font-size: max(0.9vw , 16px);    color: #FFFFFF;    padding: 10px 20px;    border-radius: 50px;}.news_wrap{    padding: 10px;    height: 200px;    overflow-y: scroll;}.news_list{    display: flex;    flex-wrap: wrap;    font-size: max(1vw , 16px);}.news_list dt{    padding: 10px;    border-bottom: 1px dotted #333333;    margin-bottom: 10px;    width: 20%;}.news_list dd{    padding: 10px;    border-bottom: 1px dotted #333333;    margin-bottom: 10px;    width: 80%;}.bnr-3{    width: calc(100% / 3);}.bnr-2{   width: calc(100% / 2); }.bnr_area{    }.bnr_area .wrap{    max-width: calc(1200px + 6%);    margin: 0 auto;    padding: 50px 3%;}.flex{    display: flex;    flex-wrap: wrap;    gap: 30px 50px;}.flex .flex-2{    width: calc(50% - 25px);}.bnr_area .flex{    align-items: center;}.bnr_area p.sub{    text-align: center;    font-size: max(2vw , 24px);    font-weight: 600;}.bnr_flex{    display: flex;    flex-wrap: wrap;}footer{    background: #44BF9F;    padding: 50px 3% 0;    color: #FFFFFF;    margin-top: 100px;}footer .wrap{    max-width: 1200px;    margin: 0 auto;}.f_logo{    margin-bottom: 30px;}footer p{    font-size: max(1vw , 16px);    margin-bottom: 30px;}.f_list{   font-size: max(1vw , 16px); }.f_list li{    list-style: disc;}.copy{    text-align: center;    font-size: 16px;    padding: 10px;    border-top: 1px solid #FFFFFF;    margin-top: 50px;}/*----下層ページ---------------------------------------------------------*/.h2_ttl{    text-align: center;    text-shadow: 2px 3px 3px rgba(255, 255, 255, 1);    font-size: max(3vw , 30px);    padding: max(16vw , 200px) 0 max(10vw , 100px);    background: url("images/u_main.png")no-repeat center / cover;}.sec{    padding: 50px 3%;}.sec .wrap{    max-width: 1200px;    margin: 0 auto;}.h3_ttl{    font-size: max(1.4vw , 20px);    font-weight: 600;    margin-bottom: 30px;    padding-bottom: 20px;    border-bottom: 1px solid #333333;    padding-left: 10px;}.greeting_bg{    background: url("images/greeting_bg.png") no-repeat center / contain;    padding: 3vw 0;}.t18{    font-size: max(1vw , 18px);}.center{    text-align: center;}.greeting_bg p{    line-height: 2;}.bold{    font-weight: 600;}.name{    font-weight: 600;    text-align: right;    margin-top: 50px;    font-size: max(1vw , 18px);}.table01{    border-spacing: 0;    width: 100%;}.table01 th{    background: #44BF9F;    color: #FFFFFF;    width: 30%;    border: 1px solid #FFFFFF;}.table01 th , .table01 td{    padding: 10px;}.table01 td{    border: 1px solid #333333;}.h4_ttl{    font-size: max(1.2vw , 20px);    padding: 15px 10px 15px 20px;    background: #F0F0F0;    font-weight: 600;    border-left: 5px solid #44BF9F;    line-height: 1;    margin-bottom: 20px;}.mt30{    margin-top: 30px;}.list_disc{    padding: 20px 10px;    font-size: max(1vw , 18px);}.list_disc li{    list-style: disc;    padding-left: 10px;    margin-left: 10px;}.anc{    padding: 50px 0;}.anc ul{    display: flex;    gap: 20px;    font-size: max(1vw , 18px);    flex-wrap: wrap;}.anc ul li{    width: calc((100% - 60px) / 4)}.anc ul li a{    padding: 10px 10px 10px 15px;    background: #EFF6E4;    border-left: 5px solid #44BF9F;    width: 100%;    display: block;}.flex_txt{    max-width: calc(60% - 25px);    width: 100%;}.flex_img{    max-width: calc(40% - 25px);    width: 100%;}.ancer{    padding: 220px 3% 50px;    margin-top: -170px;}.construction{    padding: 5vw 0;    font-size: max(2vw , 20px);    text-align: center;    font-weight: 600;}.insta{    margin-top: 20px;}/*--------------------------------------------------------------------------PC--------------------------------------------------------------------------*/@media only screen and (min-width: 1025px) {  .sp-only {    display: none !important;  }  .tab-only {    display: none !important;  }}/*--------------------------------------------------------------------------tablet--------------------------------------------------------------------------*/@media only screen and (min-width: 768px) and (max-width: 1024px) {  .sp-only {    display: none !important;  }  .pc-only {    display: none !important;  }}/*--------------------------------------------------------------------------sp--------------------------------------------------------------------------*/@media screen and (max-width: 767px) {    .pc-only {    display: none !important;  }  .pc-tab-only {    display: none !important;  }   .tab-only {    display: none !important;  }     .sp-br{	display: block;	}    .logo {  max-width: 80px;}    .news_btn {  position: absolute;  top: 0px;  right: 0px;}    .news_list dt {  padding: 5px;  border-bottom: none;  margin-bottom: 0px;  width: 100%;}    .bnr-3{    width: 100%;}.bnr-2{   width: 100%; }    .news_list dd {  padding: 10px;  border-bottom: 1px dotted #333333;  margin-bottom: 10px;  width: 100%;}    .flex .flex-2 {  width: 100%;}    .f_list li {  list-style: disc;  margin-left: 10px;}	.sp-tel-box {		position: fixed;		right: unset;		bottom: 0;		background: #FBC512;		padding: 0;		color: #fff;		font-weight: 700;		font-style: normal;		text-align: center;		z-index: 9997;		width: 100%;	}    .sp-tel-box a {        display: flex;        width: 100%;        align-items: center;        justify-content: center;        gap: 1rem;        padding: 1.5rem 0;    }    .sp-tel-box p {        font-size: 2rem;        position: relative;        /*padding: 0 0 0 4rem;*/    }    /*.sp-tel-box p::before {        position: absolute;        content: "";        background: url(../images/icon-tel.png) no-repeat;        width: 3rem;        height: 2.5rem;        top: 0.5rem;        left: 0;        background-size: 3rem;    }*/    .mv {  margin-top: 100px;}    /*.table01 tr {  display: flex;  flex-wrap: wrap;}*/    .table01 th    {        /*width: 100%;*/		width: 20%;		font-size: 16px;    }    .table01 td    {        /*width: 30%;*/		font-size: 16px;    }    .anc ul li {  width: 100%;}    .ancer {  padding: 120px 3% 50px;  margin-top: -70px;}    .flex_txt {  max-width: 100%;}    .flex_img {  max-width: 100%;}}/*==================================================フェードイン===================================*/.fadeIn{animation-name:fadeInAnime;animation-duration:1s;animation-fill-mode:forwards;opacity:0;}@keyframes fadeInAnime{  from {    opacity: 0;  }  to {    opacity: 1;  }}/* 下から */.fadeUp{animation-name:fadeUpAnime;animation-duration:0.5s;animation-fill-mode:forwards;opacity:0;}@keyframes fadeUpAnime{  from {    opacity: 0;  transform: translateY(100px);  }  to {    opacity: 1;  transform: translateY(0);  }}/* 上から */.fadeDown{animation-name:fadeDownAnime;animation-duration:0.5s;animation-fill-mode:forwards;opacity:0;}@keyframes fadeDownAnime{  from {    opacity: 0;  transform: translateY(-100px);  }  to {    opacity: 1;  transform: translateY(0);  }}/* 左から */.fadeLeft{animation-name:fadeLeftAnime;animation-duration:0.5s;animation-fill-mode:forwards;opacity:0;}@keyframes fadeLeftAnime{  from {    opacity: 0;  transform: translateX(-100px);  }  to {    opacity: 1;  transform: translateX(0);  }}/* 右から */.fadeRight{animation-name:fadeRightAnime;animation-duration:0.5s;animation-fill-mode:forwards;opacity:0;}@keyframes fadeRightAnime{  from {    opacity: 0;  transform: translateX(100px);  }  to {    opacity: 1;  transform: translateX(0);  }}/* スクロールをしたら出現する要素にはじめに透過0を指定　*/ .fadeInTrigger,.fadeUpTrigger,.fadeDownTrigger,.fadeLeftTrigger,.fadeRightTrigger{    opacity: 0;}