@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500&family=Noto+Sans+JP:wght@300;400;500;700;900&family=Noto+Serif+JP:wght@300;400;500;600;700;900&display=swap');

/*
Theme Name:PLnetwork
*/

/*google font
font-family: 'Noto Sans JP', sans-serif;
font-family: 'Noto Serif JP', serif;
font-family: 'Barlow Condensed', sans-serif;

*/


/* 
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17

*/

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}
*{box-sizing: border-box;}
body {
    line-height:1;
}

article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section { 
	display:block;
}

ul,ol {
    list-style:none;
}

blockquote, q {
    quotes:none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content:'';
    content:none;
}

a {
    margin:0;
    padding:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}

/* change colours to suit your needs */
ins {
    background-color:#ff9;
    color:#000;
    text-decoration:none;
}

/* change colours to suit your needs */
mark {
    background-color:#fff;
    color:#000; 
    font-style:italic;
    font-weight:bold;
}

del {
    text-decoration: line-through;
}

abbr[title], dfn[title] {
    border-bottom:1px dotted;
    cursor:help;
}

table {
    border-collapse:collapse;
    border-spacing:0;
}

/* change border colour to suit your needs */
hr {
    display:block;
    height:1px;
    border:0;   
    border-top:1px solid #cccccc;
    margin:1em 0;
    padding:0;
}

input, select {
    vertical-align:middle;
}
img,svg{
	vertical-align:bottom;
	max-width: 100%;
  height: auto;
}


/************** layout base ********************/

.clearfix{
overflow:hidden;
}
.clear:after{
	content:"";
	display:block;
	height:0;
	clear:both;
	visibility:hidden;
}


a{color:#222;
	text-decoration:none;
 -webkit-transition: 0.2s ease-in-out;  
       -moz-transition: 0.2s ease-in-out;  
         -o-transition: 0.2s ease-in-out;  
            transition: 0.2s ease-in-out; 
}
a:hover{
}

/*ボタンrollover
main a:hover{
-moz-opacity:0.60;
opacity:0.60;}*/

sup {
	line-height: 100%;
	font-size:10px;
	vertical-align: 0.4em;
}
sub{
	line-height: 100%;
	font-size:10px;
	vertical-align: -0.1em;
}

.txtLeft{
text-align:left!important;
}
.txtRight{
text-align:right!important;
}
.txtCenter{
text-align:center!important;
}
.fw{font-weight:bold !important;}
.f10{ font-size:10px !important;}
.f11{ font-size:11px !important;}
.f12{ font-size:12px !important;}
.f13{ font-size:13px !important;}
.f14{ font-size:14px !important;}
.f15{ font-size:15px !important;}
.f16{ font-size:16px !important;}
.f17{ font-size:17px !important;}
.f18{ font-size:18px !important;}

.txtRed{ color:#e60012!important;}
.txtGreen{ color:#2E9568!important;}
.txtGray{ color:#777!important;}
.note{ font-size:12px;}

.fLeft{ float:left;}
.fRight{ float:right;}
.fNon{
	float:none !important;
}

.mTop0{ margin-top:0 !important;}
.mTop5{ margin-top:5px !important;}
.mTop10{ margin-top:10px !important;}
.mTop15{ margin-top:15px !important;}
.mTop20{ margin-top:20px !important;}
.mTop25{ margin-top:25px !important;}
.mTop30{ margin-top:30px !important;}
.mTop35{ margin-top:35px !important;}
.mTop40{ margin-top:40px !important;}
.mTop45{ margin-top:45px !important;}
.mTop50{ margin-top:50px !important;}

.mBtm0{ margin-bottom:0 !important;}
.mBtm5{ margin-bottom:5px !important;}
.mBtm10{ margin-bottom:10px !important;}
.mBtm15{ margin-bottom:15px !important;}
.mBtm20{ margin-bottom:20px !important;}
.mBtm25{ margin-bottom:25px !important;}
.mBtm30{ margin-bottom:30px !important;}
.mBtm35{ margin-bottom:35px !important;}
.mBtm40{ margin-bottom:40px !important;}
.mBtm45{ margin-bottom:45px !important;}
.mBtm50{ margin-bottom:50px !important;}
.mBtm60{ margin-bottom:60px !important;}
.mBtm70{ margin-bottom:70px !important;}
.mBtm80{ margin-bottom:80px !important;}
.mBtm90{ margin-bottom:90px !important;}
.mBtm100{ margin-bottom:100px !important;}

.pTop0{ padding-top:0 !important;}
.pTop5{ padding-top:5px !important;}
.pTop10{ padding-top:10px !important;}
.pTop15{ padding-top:15px !important;}
.pTop20{ padding-top:20px !important;}
.pTop25{ padding-top:25px !important;}
.pTop30{ padding-top:30px !important;}
.pTop35{ padding-top:35px !important;}
.pTop40{ padding-top:40px !important;}
.pTop45{ padding-top:45px !important;}
.pTop50{ padding-top:50px !important;}

.pBtm0{ padding-bottom:0 !important;}
.pBtm5{ padding-bottom:5px !important;}
.pBtm10{ padding-bottom:10px !important;}
.pBtm15{ padding-bottom:15px !important;}
.pBtm20{ padding-bottom:20px !important;}
.pBtm25{ padding-bottom:25px !important;}
.pBtm30{ padding-bottom:30px !important;}
.pBtm35{ padding-bottom:35px !important;}
.pBtm40{ padding-bottom:40px !important;}
.pBtm45{ padding-bottom:45px !important;}
.pBtm50{ padding-bottom:50px !important;}
.pBtm60{ padding-bottom:60px !important;}




main{
 overflow: hidden;
}
.flex{
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;}
.inner{
 box-sizing: content-box;
 max-width: 1020px;
 padding: 0 5%;
 margin: 0 auto;
}
.inner.short{
 max-width: 900px;
}

@media screen and (min-width: 769px) {
.spOnly{ display:none;}
	.pcFlex{		
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
	}
}/*-PC only-*/
@media screen and (max-width: 768px) {
.pcOnly{ display:none;}

}/*spOnly*/
/************** layout base ********************/
body{
position: relative;
background:url("images/bg.png") no-repeat center/cover fixed;
text-align:center;
		font-family:'Noto Sans JP',"游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
line-height:1.2;
 font-weight: 500;
 padding-top: 120px;
}
:root{
 --basegr:#2E9568;
 --basebl:#19688D;
 --basedgr:#036400;
 --basedbl:#003C58;
 --bggrd:linear-gradient( #2e9568 0%,#19688d 100%);
 --bggrdr:linear-gradient(to right,  #2e9568 0%,#19688d 100%);
}/*var(--basegr)*/

.fontMin{
 font-family:'Noto Serif JP',Garamond , "Times New Roman" ,"游明朝" , "Yu Mincho" ,"ヒラギノ明朝 Pro W3" , "Hiragino Mincho Pro" , "HiraMinProN-W3" ,  "游明朝体" , "YuMincho" ,  "HGS明朝E" , "ＭＳ Ｐ明朝" , "MS PMincho" , serif;
}
.fontN{
font-family: 'Noto Sans JP', sans-serif;
 font-style: normal;
}
.fontB{ 
font-family: 'Barlow Condensed',"游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
 font-weight: 500;
 font-style: italic;
 letter-spacing: 0.2em;
}
.fontC{
  display: block;
  font-size: 40px;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: bold;
  letter-spacing: 0.1em;
}
.fontG{
 font-family:'Noto Sans JP',"游ゴシック", YuGothic,  "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
}
div,p,dl{
text-align:left;
}

p,dt,dd,li,td,th{
color:#222222;
font-size:16px;
line-height:2;
letter-spacing: 0.1em;
}
h1,h2,h3,h4,h5,h6{
 color: #222222;
	font-size:16px;
 font-weight: 500;
 line-height: 1.3;
 letter-spacing: 0.1em;
}
@media screen and (max-width: 1199px) {
	body{
    padding-top: 60px;
	}
}
@media screen and (max-width: 768px) {
	body{
		font-family: 'Noto Sans JP',Roboto, “Droid Sans”, "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;	
-webkit-text-size-adjust: 100%;
	}
img{
	height: auto;}

p,dt,dd,li,td,th{
font-size:15px;
line-height:1.8;
}
}/*-sp end-*/
/*------------------ list style----------------*/
.numberList{
	padding:0 0 0 18px;	
}
.numberList li{
	list-style:decimal outside;
	padding:0 0 5px 0;
}

.discList{
	padding:0 0 0 18px;
}
.discList li{
	list-style:disc outside;
	padding:0 0 2px 0;
}

.indentList li{
	padding-left:1em;
	text-indent:-1em;
}
.indentList li + li{
	margin-top: 5px;
}

/*****************  head ***********************/
header{
	background: #fff;
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 120px;
 z-index: 100;
 display: flex;
 justify-content: space-between;
 align-items: center;
}
#logo{
 position: relative;
 max-width: 290px;
 margin-left: 20px;
 z-index: 1;
}

@media screen and (max-width: 1199px) {/*----SP header----*/	
header{
 position: fixed;
 height: 60px;
}
#logo{
 width: 50%;
 max-width: 290px;
}
#spMenu{
 position: relative;
 display: flex;
 align-items: flex-end;
	width:38px ;
	height: 22px;
 z-index: 3;
 margin-right: 20px;
}
 #spMenu::before,
 #spMenu span::before,
  #spMenu span::after{
   content: "";
   display: block;
   background: #222;
   width: 100%;
   height: 2px;
   position: absolute;
   top: 0;
   left: 0;
   -webkit-transition: 0.2s ease-in-out;  
       -moz-transition: 0.2s ease-in-out;  
         -o-transition: 0.2s ease-in-out;  
            transition: 0.2s ease-in-out; 
 }
 #spMenu span::before{
  top: 10px;
 }
 #spMenu span::after{
  top: 20px;
 }
 #spMenu span{
  display: block;
  font-size: 10px;
  text-align: center;
 }
 #spMenu.active::before{
  opacity: 0;
 }
 #spMenu.active span::before,
 #spMenu.active span::after{
  top: 10px;
  bottom: 0;
 }
 #spMenu.active span::before{
  -webkit-transform: rotate(45deg);
transform: rotate(45deg);
 }
 #spMenu.active span::after{
  left: auto;
  right: 0;
  -webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
 }
 #gNavi{
  position: absolute;
  top: -100vh;
  left: 0;
  background:#fff;
  width: 100%;
  min-height: 100vh;
 max-height: 100vh ;
  padding: 60px 0 1px;
 overflow-y: auto;
 opacity: 0;
  -webkit-transition: 0.2s ease-in-out;  
       -moz-transition: 0.2s ease-in-out;  
         -o-transition: 0.2s ease-in-out;  
            transition: 0.2s ease-in-out;
 }
 #gNavi.active{
  height: auto;
 top:0;
  opacity: 1;
 }
}/*-SP-*/
/*****************  navi ***********************/
#gNavi li{
 font-size: 14px;
 font-weight: 500;
 line-height: 1.4;
 letter-spacing: 0.06em;
}
#gNavi li a{
 position: relative;
 display: block;
}
#gNavi li:not(.request):not(.contact) a:hover{
 color: var(--basegr);
}
#gNavi .request a{
  position: relative;
 display: flex;
 align-content: center;
 justify-content: center;
 align-items: center;
 background: var(--basegr);
 width: 120px;
 height: 120px;
 color: #fff;
 text-align: center;
}
#gNavi .request a > span::before{
 content: "";
 display: block;
 background: url("images/ic_file_wh.png") no-repeat left top/100% auto;
 width: 22px;
 height: 28px;
 margin: 0 auto 5px;
}
#gNavi .contact a{
  position: relative;
 display: flex;
 align-content: center;
 justify-content: center;
 align-items: center;
 background: var(--basebl);
 width: 120px;
 height: 120px;
 color: #fff;
 text-align: center;
}
#gNavi .contact a > span::before{
 content: "";
 display: block;
 background: url("images/ic_mail_wh.png") no-repeat left top/100% auto;
 width: 26px;
 height: 27px;
 margin: 0 auto 6px;
}
#gNavi .request a .fontB,
#gNavi .contact a .fontB{
 display: block;
}
#gNavi .request a > span,
#gNavi .contact a > span{
 position: relative;
 z-index: 1;
}
#gNavi .request a::before{
 content: "";
 display: block;
 background: var(--basedgr);
 width: 0;
 position: absolute;
 top: 0;
 left: 0;
 bottom: 0;
  transition: .4s;
}
#gNavi .contact a::before{
 content: "";
 display: block;
 background: var(--basedbl);
 width: 0;
 position: absolute;
 top: 0;
 left: 0;
 bottom: 0;
  transition: .4s;
}
#gNavi .request a:hover::before,
#gNavi .contact a:hover::before{
 width: 100%;
}

@media screen and (min-width: 1200px) {
 #gNavi{
  width:60%;
  width:calc( 100% - 330px);
  max-width: 835px;
  display: flex;
  justify-content: flex-end;
 }
#gNavi .menuBox{
  margin-right: 30px;
  padding: 10px 0 0;
  flex-flow: row nowrap;
 justify-content: flex-end;
 align-items: stretch;
 }
 #gNavi .menuBox .flex{
  margin-bottom: 20px;
  justify-content: flex-end;
  gap: 30px;
 }
 #gNavi .menuBox nav > ul{
  flex-wrap: nowrap;
  gap: 5px 30px;
 }
#gNavi .menuBox nav > ul > li{
  text-align: center;
  -webkit-transition: 0.2s ease-in-out;  
  -moz-transition: 0.2s ease-in-out;  
  -o-transition: 0.2s ease-in-out;  
  transition: 0.2s ease-in-out; 
}
#gNavi >ul>li:not(.contact):not(.request)>a{
 position: relative; 
 display: flex;
 align-items: center;
 height: 100%;
 padding:0 15px;
}
 #gNavi .request{
  margin-left: 16px;
 }
 #gNavi >ul>li.sub > a::after{
  content: "";
  display: block;
  background: #008383;
  width: 1px;
  height: 0;
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% - 35px);
  margin: auto;
  transition: 0.5s ease-in-out; 
 }
 #gNavi .menuBox nav >ul>li.sub:hover a::after{
  height: 35px;
 }
 #gNavi .menuBox nav ul > li .submenu{
 position: absolute;
 top: 90%;
 left: 0;
 right: 0;
 margin: auto;
 background: rgba(255,255,255,1);
 width: 100%;
 padding: 50px 50px 30px;
 opacity: 0;
 visibility: hidden;
 z-index: -1;
 -webkit-transition: 0.2s ease-in-out;  
       -moz-transition: 0.2s ease-in-out;  
         -o-transition: 0.2s ease-in-out;  
            transition: 0.2s ease-in-out;
}

#gNavi .sub:has(.submenu)::after{
  pointer-events: none;
  content:"";
  display:none;
  position:absolute;
  top:100%;
  left:0;
  right:0;
  width:100%;
  height: 200%;
  height:200vh;
  background:rgba(0,0,0,0.7);
  -webkit-transition: 0.2s ease-in-out;  
  -moz-transition: 0.2s ease-in-out;  
    -o-transition: 0.2s ease-in-out;  
       transition: 0.2s ease-in-out;
  opacity: 0;
  visibility: hidden;
  z-index:-1;
}
 #gNavi .submenu ul{
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-flow: row wrap;
  gap:30px 6%;
  max-width: 930px;
  margin: 0 auto;
 }
 #gNavi .submenu li{
  max-width: 290px;
  width:calc(88% / 3);
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 0.2em;
 }
 #gNavi .submenu figure{
  overflow: hidden;
  background: #222222;
  width: 100%;
  height: 80px;
  margin-bottom: 10px;
 }
 #gNavi .submenu figure img{
  object-fit: cover;
  width: 100%;
  height: 100%;
 transition:0.4s all;
 }
 #gNavi .submenu a:hover figure img{
  transform:scale(1.2,1.2);
  opacity: 0.68;
 }
 #gNavi .submenu p{
  position: relative;
  padding: 0 0 0 1.5em;
  font-size: 14px;
 }
 #gNavi .submenu p::before{
  content: "ー";
  position: absolute;
  top: 0;
  left: 0;
 }
 #gNavi .submenu a:hover p{
  color: var(--basegr);
 }
 #gNavi .menuBox nav ul > li a:hover + .submenu,
 #gNavi .menuBox nav ul > li:hover .submenu,
 #gNavi .sub:has(.submenu:not(.spOnly)):hover::after{
  top:99%;
  visibility: visible;
  opacity: 1;
  height:auto;
 }
 #gNavi .menuBox nav ul > li:hover .submenu{
  z-index: 2;
  top:99%;
  visibility: visible;
  opacity: 1;
  height:auto;
  }
#gNavi .sub:has(.submenu:not(.spOnly)):hover::after{
  display:block;
  z-index:-1;
}
#gNavi .sub:has(.submenu:not(.spOnly))::after:hover{
  display:none;
}
 .sp_cta{
  display: none;
 }


 }/*-PC only-*/

@media screen and (max-width: 1199px) {/*----SP gnavi----*/
 #gNavi .pcFlex{
  flex-direction: column;
 }
 #gNavi .spOnly{
  display:inherit;
 }
 #gNavi{
 }
 #gNavi ul{
  overflow: hidden;
  border-top: 1px #ccc solid;
  padding: .5vh 0 0;
 }

#gNavi li a{
 padding: 2.5vh 10px;
}
 #gNavi nav ul li + li{
  border-top: 1px #ccc solid;
 }
 #gNavi .sub > a,
 #gNavi .subsub > a{
  pointer-events: none;
 }
 #gNavi .submenu{display: none;}
  #gNavi .spSub .submenu > ul{
    padding-top: 0;
  }/*
  #gNavi .active > .submenu{  
    display: block;
  }*/
  #gNavi .txtGr > a > p{  
    color: var(--basegr);
  }
  #gNavi .submenu li a p{
    display: inline-block; 
   font-size: 12px;  
    font-weight: bold;
  }
  #gNavi .submenu li a{
    position: relative;
    padding-left: 25px;
  }
  #gNavi .submenu li a::before{
    content: "";
    position: absolute;
    left: 10px;
    top: 50%;
    display: block;
    margin-right: 12px;
    width: 10px;
    height: 1px;
    background-color: #777777;
  }
  #gNavi .submenu .submenu a{
    padding-left: 37px;
  }
  #gNavi .submenu .submenu li a::before{
    left: 25px;
  }
  #gNavi .submenu .submenu li a p{
    font-weight: normal;
  }
 #gNavi .request,
 #gNavi .contact{
  float: left;
  width: 50%;
  padding: 5vh 0 0;
  display: none;
 }
 #gNavi .request a,#gNavi .contact a{
  margin: auto;
   width: 100%;
 }
  #gNavi .sub figure{
    display: none;
 }
  #gNavi .sub > a{
    position: relative;
 }
  #gNavi .sub > a::after,
  #gNavi .subsub > a::after{   
    position: absolute;
    right: 10px;
    top: calc(50% - 7px);
    content: "";
    display: block;
    border-style: solid;
    border-color: var(--basegr);
    border-width: 0 2px 2px 0;
    width: 10px;
    height: 10px;
    -webkit-transform: rotate(45deg);
     transform: rotate(45deg);
  }
  #gNavi .sub.active > a::after,
  #gNavi .subsub.active > a::after{   
    -webkit-transform: rotate(-135deg);
     transform: rotate(-135deg);
   }
  #gNavi .txtGr > a p{
    color: var(--basegr);
  }


  .sp_cta{
    position: fixed;
    bottom: 0;
    width: 100%;
    display: flex;
    z-index: 80;
   }

   .sp_cta div{
    width: 50%;
   }

   .sp_cta .request a > span::before{
    content: "";
    display: block;
    background: url("images/ic_file_wh.png") no-repeat left top/100% auto;
    width: 22px;
    height: 28px;
    margin: 0 auto 5px;
   }
   .sp_cta .request a{
    position: relative;
   display: flex;
   align-content: center;
   justify-content: center;
   align-items: center;
   background: var(--basegr);
   width: 120px;
   color: #fff;
   text-align: center;
  }
   .sp_cta .contact a{
     position: relative;
    display: flex;
    align-content: center;
    justify-content: center;
    align-items: center;
    background: var(--basebl);
    width: 120px;
    color: #fff;
    text-align: center;
   }
   .sp_cta .contact a > span::before{
    content: "";
    display: block;
    background: url("images/ic_mail_wh.png") no-repeat left top/100% auto;
    width: 26px;
    height: 27px;
    margin: 0 auto 6px;
   }


   .sp_cta .request,
   .sp_cta .contact{
  float: none;
  width: 50%;
  padding: 1vh 3vh;
 }
 .sp_cta .request a,
 .sp_cta .contact a{
  margin: auto;
   width: 100%;
 }
 .sp_cta .request{
  background: var(--basegr);
 }
 .sp_cta .request .fontB{
  display: block;
 }
 .sp_cta .contact .fontB{
  display: block;
 }
 .sp_cta .contact{
  background: var(--basebl);
 }


}/*-SP-*/

/*****************  foot ***********************/
footer{
 position: relative;
 overflow: hidden;
}
/**/
#footContact{
 padding: 150px 5% 170px;
 gap:30px 6%;
}
@media screen and (min-width: 769px) {
 #footContact div {
  min-width: 390px;
  padding-top: 25px;
 }
 #footContact .left{
  flex : 0 0 390px;
 }
 #footContact .right{
  flex:1;
 }
 #footContact ul{
  max-width: 600px;
 }
}/*-PC only-*/
#footContact h2{
  margin-bottom: 18px;
  text-align: left;
}
#footContact h2 span{
  display: block;
  color: var(--basegr);
  font-size: 60px;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
#footContact h2 span::after {
  content: "";
  display: inline-block;
  width: 120px;
  height: 1px;
  background: #222;
  margin-left: 18px;
  vertical-align: 0.3em;
}
#footContact div .tel{
 font-size: 15px;
 line-height: 1.4;
 margin-bottom:20px;
}
.tel a{
  display: flex;
  align-items: center;
  gap:0.2em;
  font-size: clamp(28px, 20.000px + 1.333vw, 36px);
  font-weight:bold;
  letter-spacing: 0.05em;
  line-height: 1.3;
}
#footContact div .tel a{
  font-size: 36px;
}
.telBnr a{
  font-size: clamp(32px, 0.831px + 5.195vw, 36px);
}
.tel svg{
  fill: #2E9568;
  width:0.6em;
  padding-top:0.1em;
}
.tel .num{
  background: linear-gradient(90deg, #2E9568,  #19688D);
  background: -webkit-linear-gradient(0deg, #2E9568, #19688D);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

#footContact div .tel p{
  font-size:16px;
}
#footContact div .tel p small{
  font-size:13px;
}
#footContact div p + p{
 border-top: 1px var(--basegr) solid;
 margin: 20px 0 0;
 padding: 20px 0 0;
 font-size: 15px;
 line-height: 1.86;
}
#footContact ul li *{
 vertical-align:middle;
}
#footContact ul li + li{
 margin-top: 20px;
}
#footContact ul li a{
 position: relative;
 display: block;
 width:100%;
 max-width:600px;
 padding: 40px 100px 35px 79px;
 color: #fff;
 font-size: 22px;
}
#footContact ul li a .fontB{
 margin-left: 10px;
 font-size: 16px;
}
#footContact ul li a::before{
 content: "";
 display: block;
 background: #fff;
 width: 0;
 position: absolute;
 top: 0;
 left: 0;
 bottom: 0;
 transition: .4s;
}
#footContact ul li a:hover::before{
 width: 100%;
}
#footContact ul li a::after{
 content: "";
 display: block;
 background: #fff;
 width: 70px;
 height: 1px;
 position: absolute;
 right: 0;
 top: 0;
 bottom: 0;
 margin: auto;
}
#footContact ul li a > span{
 position: relative;
 z-index: 1;
}
#footContact ul li a svg{
 margin-right: 20px;
}
#footContact ul .request a{
 border: 1px var(--basegr) solid;
 background: var(--basegr);
}
#footContact ul .request svg{
 fill:#fff;
 width: 34px;
}
#footContact ul .request a:hover{
 color: var(--basegr);
}
#footContact ul .request a:hover svg{
 fill:var(--basegr);
}
#footContact ul .request a:hover::after{
 background: var(--basegr);
}
#footContact ul .contact a{
 border: 1px var(--basebl) solid;
 background: var(--basebl);
}
#footContact ul .contact svg{
 fill:#fff;
 width: 40px;
}
#footContact ul .contact a:hover{
 color: var(--basebl);
}
#footContact ul .contact a:hover svg{
 fill:var(--basebl);
}
#footContact ul .contact a:hover::after{
 background: var(--basebl);
}
/**/
#footNav{
 background: url("images/bg_foot.png") no-repeat left top/cover;
 /*background: #2e9568;
background: -moz-linear-gradient(left,  #2e9568 0%, #19688d 100%);
background: -webkit-linear-gradient(left,  #2e9568 0%,#19688d 100%);
background: linear-gradient(to right,  #2e9568 0%,#19688d 100%);
*/
 padding: 60px 0 95px;
}
#footNav *{
 color: #fff;
}
@media screen and (min-width: 769px) {
 #footNav ul.pcFlex{
  width: 74%;
  max-width: 750px;
 }
 #footNav ul.pcFlex >li{
  width: 21.5%;
  max-width: 160px;
 }
 #footNav .btn{
  width: 22%;
  max-width: 221px;
 }
}/*-PC only-*/
#footNav ul.pcFlex >li >a{
 position: relative;
 display: block;
 border-bottom: 0.5px #fff solid;
 padding: 0 0 10px;
 margin-bottom: 10px;
 letter-spacing: 0.06em;
 line-height: 1.5;
}
#footNav ul.pcFlex >li >a::after{
 content: "";
 display: block;
 background: #fff;
 width: 21px;
 height: 1px;
 position: absolute;
 bottom: 0;
 left: 0;
}
#footNav ul.pcFlex li li{
 margin-bottom: 8px;
}
#footNav ul.pcFlex li li a{
 display: block;
 position: relative;
 padding: 0 0 0 1.5em;
 font-size: 12px;
 font-weight: 300;
 letter-spacing: 0.06em;
 line-height: 1.6;
}
#footNav ul.pcFlex li li a::before{
 content: "ー";
 position: absolute;
 top: 0;
 left: 0;
}
#footNav ul.pcFlex li li a.icon_external::after{
  content:"";
  display: inline-block;
  width:12px;
  aspect-ratio: 1 / 1;
  margin-top:-2px;
  margin-left:0.5em;
  background-color:#fff;
  -webkit-mask:url(images/icon_external-link.svg);
  mask-image: url(images/icon_external-link.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  vertical-align: middle;
}
#footNav .btn li + li{
 margin-top: 14px;
}
#footNav .btn li a{
 display: block;
 border: 1px #fff solid;
 font-size: 14px;
 text-align: center;
 line-height: 1.3;
 padding:10px 6px;
}
/**/
#footLogo{
 background: #fff;
 padding: 30px 0 24px;
}
@media screen and (min-width: 769px) {
 #footLogo .pcFlex{
  flex-flow: row;
 }
 #footLogo .pcFlex > p{
  width: 36.5%;
  max-width: 369px;
 }
 #footLogo ul{
  justify-content: flex-end;
  align-items: center;
  width: 34%;
  max-width: 345px;
 }
#footLogo ul li{
 margin-left: 30px;
}
}/*-PC only-*/
/**/
footer .copyright small{
 display: block;
 border-top:1px solid rgba(46,149,104,.2);
 background: #fff;
 padding: 10px 0;
 color: #222;
 font-size: 12px;
 text-align: center;
 letter-spacing: 0.06em;
}
@media screen and (max-width: 1119px) {/*----タブレット footer----*/	
  footer{
    margin-bottom:94px;
  }

  #footNav ul.pcFlex >li >a{
    margin-bottom:15px;
  }
}
@media screen and (max-width: 768px) {/*----SP footer----*/	
  footer{
    margin-bottom:84px;
  }
#footContact{
 padding: 100px 5% 80px;
}
#footContact .left{
  margin-bottom:30px;
}
#footContact .txt{
  margin-bottom:20px;
}
.tel a{
  font-size: 9vw;
}
 #footContact ul{
  margin-top: 20px;
 }
#footContact ul li a{
 padding: 20px 35px 25px 20px;
 font-size: 18px;
}
#footContact ul li a .fontB{
 margin-left: 10px;
 font-size: 14px;
}
#footContact ul li a::after{
 width: 35px;
}
#footContact ul li a svg{
 margin-right: 15px;
}
#footContact ul .request svg{
 width: 24px;
}
#footContact ul .contact svg{
 width: 30px;
}
/**/
#footNav{
 padding: 40px 0 50px;
}
#footNav ul li{
  padding:6px 0;
}
 #footNav ul.pcFlex li ul{
  margin-bottom: 10px;
 }
 #footNav .btn{
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
 }
 #footNav .btn li{
  margin-top: 14px;
  width: 49%;
 }
 #footNav .btn li a{
  font-size: 13px;
 }
 /**/
 #footLogo ul{
  justify-content: center;
 }
 #footLogo ul li{
  margin: 0 10px;
 }
 #footLogo p{
  width: 80%;
  margin: 20px auto 0;
 }

 /***/
 footer .copyright small{
  font-size: 10px;
}
}/*-SP-*/


/*****************  contents ***********************/
/*title*/
.pageTitle{
 background: url("images/bg_dots.png") repeat ,#2e9568;
background: url("images/bg_dots.png") repeat,-moz-linear-gradient(top,  #2e9568 0%, #19688d 100%);
background: url("images/bg_dots.png") repeat,-webkit-linear-gradient(top,  #2e9568 0%,#19688d 100%);
background:url("images/bg_dots.png") repeat, linear-gradient(to bottom,  #2e9568 0%,#19688d 100%);
 display: flex;
 justify-content: center;
 align-items: center;
 height:226px; 
 color: #fff;
 text-align: left;
}
.pageTitle > span{
 display: block;
 width: 100%;
 padding:20px;
}
.pageTitle .fontB{
 display: block;
 font-size: 60px;
 line-height: 1.1;
 letter-spacing: 0.1em;
 text-transform:uppercase;
 word-break:break-all;
}
@media screen and (max-width: 768px) {
.pageTitle{
 height:150px; 
 font-size: 14px;
}
.pageTitle .fontB{
 font-size: 45px;
}
.pageTitle .fontC{
  font-size:32px;
}
}/*-SP only-*/
/**/
#breadcrumb{
  font-size: 14px;
  text-align: left;
  margin: 5px auto 65px;
  color: #B1B1B1;
  font-weight: 500;
  letter-spacing: 0.1em;
}
#breadcrumb > *{
  font-size: 14px;
  text-align: left;
  color: #B1B1B1;
  font-weight: 500;
  letter-spacing: 0.1em;
  display: inline-block;
  color:#B1B1B1;
}
#breadcrumb a{
 color: var(--basegr);
}
#breadcrumb li + li::before{
 content: "-";
 display: inline-block;
 margin: 0 1em 0 0.5em;
 vertical-align: 0.1em;
}
@media screen and (max-width: 768px) {
#breadcrumb{
 margin: 5px auto 40px;
 font-size: 12px;
}
#breadcrumb li + li::before{
 margin: 0 0.6em 0 0.4em;
}
}/*-SP only-*/
/*btn*/
.btnMore{
 position: relative;
 display: block;
 border: 1px var(--basegr) solid;
 max-width: 220px;
 color:var(--basegr) ;
font-family: 'Barlow Condensed', sans-serif;
 font-size: 14px;
 font-weight: 500;
 font-style: italic;
 letter-spacing: 0.2em;
 text-align: center;
 line-height: 48px;
}
.btnMore::before{
 content: "";
 display: block;
 background: #2e9568;
background: var(--bggrdr);
 width: 0;
 position: absolute;
 top: 0;
 left: 0;
 bottom: 0;
 transition: .4s;
}
.btnMore::after{
 content: "";
 display: block;
 background: var(--basegr);
 width: 39px;
 height: 1px;
 position: absolute;
 top: 50%;
 right: 0;
}
.btnMore > span{
 position: relative;
 z-index: 1;
}
.btnMore:hover{
 color: #fff;
}
.btnMore:hover::before{
 width: 100%;
}
.btnMore:hover::after{
 background: #fff;
}
/**/
.btnMore.white{
 border-color: #fff;
 color: #fff;
}
.btnMore.white::before{
 background: #fff;
}
.btnMore.white::after{
 background: #fff;
}
.btnMore.white:hover{
 border-color:var(--basegr)  ;
 color: var(--basegr) ;
}
.btnMore.white:hover::after{
 background: var(--basegr) ;
}
.btnMore.grd{
 background:var(--bggrdr) ;
 color: #fff;
}
.btnMore.grd::before{
 background: #fff;
}
.btnMore.grd::after{
 background: #fff;
}
.btnMore.grd:hover{
 color: var(--basegr) ;
}
.btnMore.grd:hover::after{
 background: var(--basegr) ;
}
/**/
a figure{
 overflow: hidden;
 /*background: #000;*/
}
a figure img{
 transition: 0.4s all;
}
a:hover figure img {
  transform: scale(1.2,1.2);
  opacity: 0.65;
}
/**/
.moreArrow{
 position: relative;
 display: block;
 width: 130px;
 padding-right: 24px;
 color: var(--basegr);
 line-height: 24px;
 letter-spacing: 0.2em; 
 transition: 0.4s ease-in-out;  
}
.moreArrow::before,
.moreArrow::after{
 content: "";
 display: block;
 position: absolute;
}
.moreArrow::before{
 top: 0;
 right: 0;
 border-radius: 50%;
 width: 24px;
 height: 24px;
 background: var(--bggrdr);
}
.moreArrow::after{
	top: 50%;
	right: 10px;
	border-top: 1.5px #fff solid;
	border-right: 1.5px #fff solid;
	width: 6px;
	height: 6px;
	margin-top: -3px;
	-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
a:hover .moreArrow{
 letter-spacing: 0.25em;
}
@media screen and (max-width: 768px) {/*SP btn*/


}/*-SP only-*/

.pagenation{
 padding: 80px 0 0;
 text-align: center;
 font-size: 0;
}
.pagenation span,
.pagenation a{
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 48px;
 height: 48px;
 margin: 0 18px;
 color: var(--basegr);
 font-size: 16px;
 font-weight: 700;
 vertical-align: middle;
}
.pagenation span.current{
 background: var(--bggrd);
 color: #fff;
}
.pagenation a:not(.prev):not(.next){
 border: 1px #008383 solid;
 background: #fff;
}
.pagenation a.prev,
.pagenation a.next{
 position: relative;
 background: #008383;
 text-indent: -9999px;
}
.pagenation a.prev::after,
.pagenation a.next::after{ 
	content: "";
	display: block;
	border-top: 3px #fff solid;
	border-right: 3px #fff solid;
	width: 9px;
	height: 9px;
 margin-right: 5px;
	-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
.pagenation a.prev::after{
 border:none;
	border-bottom: 3px #fff solid;
	border-left: 3px #fff solid;
 margin: 0 0 0 4px;
}
@media screen and (max-width: 768px) {
.pagenation{
 padding: 50px 0 0;
}
.pagenation span,
.pagenation a{
 width: 35px;
 height: 35px;
 margin: 0 5px;
}
.pagenation a.prev::after,
.pagenation a.next::after{ 
	width: 7px;
	height: 7px;
}

}/*-SP only-*/

/***********/
#mv{
	position: relative;
}

#mv figure{
 width: 100%;
 height: 750px;
 height:75vh;
 margin: 0;
 overflow:hidden;
}
#mv figure img,
#mv figure video{
 object-fit: cover;
 width: 100%;
 height: 100%;
 position: absolute;
 top: 0;
 left: 0;
}
#mv figure::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	/*background-color: rgba(0,0,0,0.1);*/
	background-image: radial-gradient(#222 30%, transparent 31%), radial-gradient(#222 30%, transparent 31%);
	background-size: 4px 4px;
	background-position: 0 0, 2px 2px;
}
/*
#mv .slick-dots{
  bottom: 0;
  display: inline-block;
  width: auto;
  padding: 20px;
  margin: 0;
  list-style: none;
  text-align: left;
  background: var(--bggrdr);
}
#mv .slick-dots::after{
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  margin: auto;
  content: "";
  display: block;
  width: 4em;
  height: 1px;
  background: #fff;
}
#mv .slick-dots li + li{
  margin-left: 5em;
}
#mv .slick-dots li{
  counter-increment: number 1;
  margin: 0;
}
#mv .slick-dots li button:before{
  content: "0" counter(number); 
font-family: 'Barlow Condensed', sans-serif;
 font-weight: 500;
 font-style: italic;
 letter-spacing: 0.2em; 
  font-size: 17px;
}*/
#mv h2{
 position: absolute;
 top: 50%;
 left: 5%;
 right: 0;
 transform: translateY(-50%);
 width: 90%;
 max-width: 1200px;
 color: #fff;
 font-size: 45px;
 font-weight: 400;
 letter-spacing: 0.2em;
 text-align: left;
 line-height: 1.7;
 text-shadow: 0px 0px 12px rgba(0, 0, 0, 1);
 & span{
  display: block;
  font-size:20px;
  letter-spacing: 0.1em;
  margin-top:5px;
 }
}
#mv .scroll{
 position: absolute;
 right: 2.7%;
 bottom: 0;
 -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
 color: #fff;
 font-size: 12px;
}
#mv .scroll::after{
 content: "";
 display: inline-block;
 background: #fff;
 width: 1px;
 height: 150px;
 margin:10px auto 0;
}
@media screen and (max-width: 768px) {/*SP MV*/
#mv figure{
 min-height: 350px;
 height:60vh;
}
#mv .slick-dots{
  padding: 10px 15px;
}
#mv .slick-dots::after{
  width: 3em;
}
#mv .slick-dots li + li{
  margin-left: 4em;
}
#mv h2{
 top: 30%;
 transform: translateY(-30%);
 font-size: 24px;
 letter-spacing: 0.1em;
 line-height: 1.5;
 & span{
  font-size:13px;
 }
}
#mv .scroll{
 font-size: 11px;
}
#mv .scroll::after{
 height: 75px;
 margin:6px auto 0;
}

}/*-SP only-*/
/*--topStrength--*/
#topStrength{
 padding: 180px 0;
}
@media screen and (min-width: 769px) {
 #topStrength .pcFlex{
  align-items: flex-end;
 }
 #topStrength .txt{
  width: 44.5%;
  max-width: 450px;
 }
 #topStrength figure{
  width: 47.5%;
  max-width: 483px;
  margin: 0;
 }
}/*-PC only-*/
#topStrength h2{
 margin-bottom: 60px;
 width: 268px;
 line-height: 1;
}
#topStrength h3{
 margin-bottom: 20px;
 font-size: 32px;
 font-weight: 700;
 line-height: 1.55;
}
#topStrength .txt p{
 font-weight: 400;
 line-height: 2.1;
}
#topStrength .txt .btn{
 margin-top: 75px;
}
@media screen and (max-width: 768px) {/*SP topStrength*/
#topStrength{
 padding: 100px 0;
}
#topStrength h2{
 margin-bottom: 30px;
 width: 168px;
}
#topStrength h3{
 margin-bottom: 20px;
 font-size: 18px;
}
#topStrength .txt .btn{
 margin-top: 35px;
}
 #topStrength figure{
  margin: 20px auto 0;
 }
}/*-SP only-*/

/*--topService--*/
#topService{
 position: relative;
 padding: 0 0 170px;
}
#topService .serviceHead{
 position: relative;
 display: flex;
 align-items: center;
 height: 540px;
 margin-bottom: 120px;
}
.bgVideo{
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 z-index: -1;
}
.bgVideo video{
    object-fit: cover;
    width: 100%;
    height: 100%;
}
#topService .serviceHead::before{
 content: "";
 display: block;
 background: #207B7B;
 width: 100%;
 height: 100%;
 position: absolute;
 top: 0;
 left: 0;
 z-index: 0;
 mix-blend-mode: multiply; 
}
#topService .serviceHead .inner{
 position: relative;
 align-items: center;
}
#topService .serviceHead h2{
 color: #fff;
}
#topService .serviceHead h2 span{
 display: block;
 font-size: 60px;
 letter-spacing: 0.1em;
 white-space: nowrap;
}
#topService .serviceHead h2 span::after{
 content: "";
 display: inline-block;
 width: 120px;
 height: 1px;
 background: #fff;
 margin-left: 18px;
 vertical-align: 0.3em;
}
@media screen and (min-width: 769px) {
 #topService .serviceHead .inner div{
  width: 47.5%;
  max-width: 480px;
 }
}/*-PC only-*/
#topService .serviceHead h3{
 margin-bottom: 50px;
 color: #fff;
 font-size: 36px;
 font-weight: 700;
 line-height: 1.4;
}
#topService .serviceHead h3 span{
 display: block;
 font-size: 16px;
 letter-spacing: 0.06em;
}
#topService .serviceHead .inner div p:not(.btn){
 color: #fff;
 font-weight: 400;
 line-height: 2.125;
}
#topService .serviceHead .btn{
 margin-top: 50px;
}
#topService ul.inner{
 max-width: 940px;
}
@media screen and (min-width: 769px) {
 #topService ul.inner li{
  width: 47%;
  max-width: 440px;
  margin-bottom: 60px;
 }
}/*-PC only-*/
#topService ul.inner li{
 box-shadow: 0 3px 20px rgba(0,0,0,0.16);
 background: #fff;
}
#topService ul.inner li a{
 position: relative;
 display: block;
 padding: 0 25px 30px;
}
#topService ul.inner li figure{
 position: relative;
 height: 240px;
 margin: 0 -25px 20px;
}
#topService ul.inner li figure img{
 object-fit: cover;
 width: 100%;
 height: 100%;
}
#topService ul.inner li figure p{
 position: absolute;
 top: 0;
 right: 0;
 background: var(--bggrdr);
 width: 198px;
 padding: 0 0 0 20px;
 color: #fff;
 line-height: 52px;
}
#topService ul.inner li figure p span{
 position: relative;
}
#topService ul.inner li figure p::before{
 content: "";
 display: block;
 background: #fff;
 width: 0;
 position: absolute;
 top: 0;
 left: 0;
 bottom: 0;
 transition: .4s;
}
#topService ul.inner li figure p::after{
 content: "";
 display: block;
 width: 50px;
 height: 1px;
 background: #fff;
 position: absolute;
 right: 0;
 top: 50%;
}
#topService ul.inner li a:hover figure p::before{
 width: 100%;
}
#topService ul.inner li a:hover figure p{
 color: var(--basegr);
}
#topService ul.inner li a:hover figure p::after{
 background: var(--basegr);
}
#topService ul.inner li h3{
 margin-bottom: 10px;
 color: var(--basegr);
 font-size: 22px;
 font-weight: 700;
 text-align: left;
}
#topService ul.inner li a>p:not(.moreArrow){
 font-size: 14px;
 line-height: 2.1;
 letter-spacing: 0.08em;
}
#topService ul.inner li .moreArrow{
 margin: 30px 0 0 auto;
}

@media screen and (max-width: 768px) {/*SP topService*/
#topService{
 position: relative;
 padding: 0 0 80px;
}
#topService .serviceHead{
 height: auto;
 padding-top: 50px;
 padding-bottom: 40px;
 margin-bottom: 60px;
}
 #topService .serviceHead h2{
  margin-bottom: 30px;
 }
#topService .serviceHead h2 span{
 font-size: 40px;
}
#topService .serviceHead h2 span::after{
 width: 100px;
 margin-left: 15px;
}
#topService .serviceHead h3{
 margin-bottom: 20px;
 font-size: 18px;
}
#topService .serviceHead h3 span{
 font-size: 15px;
 letter-spacing: 0.06em;
}
#topService .serviceHead .inner div p:not(.btn){
 line-height: 2.0;
}
#topService .serviceHead p:not([class]){
  font-size:14px;
}
#topService .serviceHead .btn{
 margin-top: 25px;
}
#topService ul.inner li{
 box-shadow: 0 3px 10px rgba(0,0,0,0.16);
 margin: 0 0 30px;
}
#topService ul.inner li a{
 padding: 0 15px 20px;
}
#topService ul.inner li figure{
 height: 180px;
 margin: 0 -15px 20px;
}
#topService ul.inner li figure p{
 width: 150px;
 padding: 0 0 0 10px;
 font-size: 14px;
 line-height: 40px;
}
#topService ul.inner li figure p::after{
 width: 25px;
}
 #topService ul.inner li h3{
 margin-bottom: 10px;
 font-size: 16px;
}
#topService ul.inner li a>p:not(.moreArrow){
 font-size: 13px;
}
#topService ul.inner li .moreArrow{
 margin: 20px 0 0 auto;
}
}/*-SP only-*/

/*--topFacilities--*/
#topFacilities{
 position: relative;
 padding: 0 0 85px;
}
#topFacilities .facilitiesHead{
 background: url("images/top_facilities_bg.png") no-repeat left top/cover;
 margin-bottom: 120px;
}
#topFacilities .facilitiesHead figure{
  margin-bottom: 0;
}
@media screen and (min-width: 769px) {
 #topFacilities .facilitiesHead{
  flex-flow: row-reverse;
 }
 .facilitiesHead .txt{
  display: flex;
  flex-flow: column;
  justify-content: center;
  align-items: flex-end;
  width:45.4% ;
  min-width:540px;
  padding: 30px 95px 30px 0;
 }
 .facilitiesHead figure{
  width: 54.6%;
  overflow:hidden;
 }
 .facilitiesHead figure img{
  object-fit: cover;
  width:100%;
  height:100%;
 }
}/*-PC only-*/
.facilitiesHead .txt h2{
 margin-bottom: 35px;
 color: #fff;
}
.facilitiesHead h2 span{
 display: block;
 font-size: 60px;
 letter-spacing: 0.1em;
 white-space: nowrap;
}
.facilitiesHead h2 span::after{
 content: "";
 display: inline-block;
 width: 120px;
 height: 1px;
 background: #fff;
 margin-left: 18px;
 vertical-align: 0.3em;
}
.facilitiesHead h3{
 color: #fff;
 font-size: 28px;
 font-weight: 700;
 text-align: right;
}
.facilitiesHead p{
  margin-top: 15px;
  color:#fff;
}
.facilitiesHead p a{
  color:currentColor;
}
.facilitiesHead .btn{
  margin-top: 24px;
  width: 220px;
}

#topFacilities ul.inner{
 max-width: 940px;
}
@media screen and (min-width: 769px) {
#topFacilities ul.inner li{
  width: 47%;
  max-width: 440px;
  margin-bottom: 60px;
 }
}/*-PC only-*/
#topFacilities ul.inner li{
 box-shadow: 0 3px 20px rgba(0,0,0,0.16);
 background: #fff;
}
#topFacilities ul.inner li a{
 position: relative;
 display: block;
}
#topFacilities ul.inner li a::after{
 content: "";
 position: absolute;
 bottom: 0;
 left: 0;
 display: block;
 width: 0;
 height: 3px;
 background: var(--basebl);
 transition:all 0.4s ease-in-out;
}
#topFacilities ul.inner li a:hover::after{
 width: 100%;
}
#topFacilities ul.inner li figure{
 position: relative;
 height: 250px;
 margin: 0;
}
#topFacilities ul.inner li figure img{
 object-fit: cover;
 width: 100%;
 height: 100%;
}
#topFacilities ul.inner li figure p{
 position: absolute;
 top: 0;
 right: 0;
 background: var(--basebl);
 width: 198px;
 padding: 0 0 0 20px;
 color: #fff;
 line-height: 47px;
}
#topFacilities ul.inner li figure p::after{
 content: "";
 display: block;
 width: 50px;
 height: 1px;
 background: #fff;
 position: absolute;
 right: 0;
 top: 50%;
}
#topFacilities ul.inner li a > p{
 position: relative;
 padding: 16px 50px 20px 30px;
 color: var(--basebl);
 font-size: 18px;
 font-weight: 700;
 line-height: 1.5;
}
#topFacilities ul.inner li a > p span{
  display: inline-block;
  font-size:14px;
  color:#222;
  margin-right:15px;
  line-height: 1;
}
#topFacilities ul.inner li a > p::before,
#topFacilities ul.inner li a > p::after{
 content: "";
 display: block;
 position: absolute;
}
#topFacilities ul.inner li a > p::before{
 top: 0;
 bottom: 0;
 right: 23px;
 border-radius: 50%;
 border: 1px var(--basebl) solid;
 background: var(--basebl);
 width: 22px;
 height: 22px;
 margin: auto;
}
#topFacilities ul.inner li a > p::after{ 
	top: 50%;
	right: 33px;
	border-top: 1.5px #fff solid;
	border-right: 1.5px #fff solid;
	width: 6px;
	height: 6px;
	margin-top: -4px;
	-webkit-transform: rotate(45deg);
transform: rotate(45deg);

}
#topFacilities ul.inner li a:hover > p::before{
 background: #fff;
}
#topFacilities ul.inner li a:hover > p::after{ 
 border-color: var(--basebl) ;
}

@media screen and (max-width: 768px) {/*SP topFacilities*/
#topFacilities{
 padding: 0 0 40px;
}
#topFacilities .facilitiesHead{
 margin-bottom: 60px;
}
 .facilitiesHead .txt {
  padding: 30px 5% ;
 }
.facilitiesHead .txt h2{
 margin-bottom: 30px;
}
.facilitiesHead h2 span{
 font-size: 40px;
}
.facilitiesHead h2 span::after{
 width: 100px;
 margin-left: 15px;
}
.facilitiesHead h3{
 margin-bottom: 20px;
 font-size:18px;
 text-align: left;
}
 #topFacilities ul.inner li{
 box-shadow: 0 3px 10px rgba(0,0,0,0.16);
  margin-bottom: 30px;
}
#topFacilities ul.inner li figure{
 height: 180px;
 margin: 0;
}
#topFacilities ul.inner li figure p{
 width: 150px;
 padding: 0 0 0 10px;
 font-size: 14px;
 line-height: 40px;
}
#topFacilities ul.inner li figure p::after{
 width: 25px;
}
#topFacilities ul.inner li a > p{
 padding: 15px ;
 font-size: 15px;
}
#topFacilities ul.inner li a > p span{
  font-size:13px;
}
#topFacilities ul.inner li a > p::before{
 right: 10px;
}
#topFacilities ul.inner li a > p::after{ 
	right: 20px;

}
}/*-SP only-*/

/*--topNews--*/
#topNews{
 background: #fff;
 max-width: 1200px;
 padding: 65px 90px 80px;
 margin: 85px auto 100px;
 box-shadow: 0 0 80px rgba(0,0,0,0.16);
}
#topNews h2{
 margin-bottom: 20px;
 text-align: left;
}
#topNews h2 span{
 display: block;
 color: var(--basegr);
 font-size: 60px;
 letter-spacing: 0.1em;
 white-space: nowrap;
}
#topNews h2 span::after{
 content: "";
 display: inline-block;
 width: 120px;
 height: 1px;
 background: #222;
 margin-left: 18px;
 vertical-align: 0.3em;
}
#topNews .btn{
 margin-top: 60px;
}
#topNews .btnMore{
 margin: 0 0 0 auto;
}

.tab{
 display: flex;
 flex-wrap: wrap;
 justify-content: flex-end;
 gap:15px 10px;
 /*margin-bottom: 40px;*/
}
.tab li{
 border-radius: 23px;
 min-width: 130px;
 color: #fff;
 background-color:var(--basebl) ;
 font-size: 14px;
 font-weight: 400;
 letter-spacing: 0.06em;
 line-height: 28px;
 text-align: center;
 cursor: pointer;
 transition: all 0.2s linear;
}
.tab .li a{
  color: #fff;
}
/*
.tab .tab01{
 border: 1px currentColor solid;
 background: #fff;
 color: var(--basegr);
}*/
.tab .tab01{
  border: 1px var(--basegr) solid;
  background: var(--basegr);
  border: 1px transparent solid;
 }
 .tab .tab01:hover{
   color: var(--basegr);
   background:#fff;
   border-color:currentColor;
 } 
 .tab .tab01 a:hover{
  color: var(--basegr);
}
.tab .tab02{
 border: 1px var(--basebl) solid;
 background: var(--basebl);
 border: 1px transparent solid;
}
.tab .tab02:hover{
  color: var(--basebl);
  background:#fff;
  border-color:currentColor;
}
.tab .tab02 a:hover{
  color: var(--basebl);
}
.tab .tab03{
  border: 1px #8FBC2F solid;
  background: #8FBC2F;
  border: 1px transparent solid;
 }
 .tab .tab03:hover{
   color:#8FBC2F;
   background:#fff;
   border-color:currentColor;
 }
 .tab .tab03 a:hover{
   color: #8FBC2F;
 }
.tabPanel{}
.disnon{display: none;}

.newsList a{
 position: relative;
 display: flex;
 align-items: center;
 justify-content: flex-start;
 border-bottom: 1.5px #B1B1B1 solid;
 padding: 30px 0 30px 22px;
 font-size: 14px;
 font-weight: 400;
 letter-spacing: 0.06em;
}
.newsList a::after{
 content: "";
 position: absolute;
 bottom: -1px;
 left: 0;
 display: block;
 width: 0;
 height: 1.5px;
 background: var(--basegr);
 transition:all 0.4s ease-in-out;
}
.newsList .blog a::after{background: var(--basebl);}
.newsList .family_open a::after{background: #8FBC2F;}
.newsList a:hover::after{
 width: 100%;
}
.newsList .date{
 padding-right:20px;
 color: #B1B1B1;
}
.newsList .cat{
 border-radius: 23px;
 border: 1px var(--basegr) solid;
 background: var(--basegr);
 width: 130px;
 color: #fff;
 text-align: center;
 line-height: 28px;
}
.newsList a:hover .cat{
  background: #fff;
  color: var(--basegr);
 }
.newsList .blog .cat{
 border-color: var(--basebl);
 background: var(--basebl);
}
.newsList .blog a:hover .cat{
 color: var(--basebl);
}
.newsList .family_open .cat{
  border-color:#8FBC2F;
  background: #8FBC2F;
 }
 .newsList .family_open a:hover .cat{
  color: #8FBC2F;
 }
.newsList p{
 position: relative;
 width: calc(100% - 130px - 134px);
 padding-left: 20px;
 padding-right:60px;
 font-size: 14px;
 font-weight: 400;
 letter-spacing: 0.06em;
}
.newsList p::before,
.newsList p::after{
 content: "";
 display: block;
 position: absolute;
}
.newsList p::before{
 top: 0;
 bottom: 0;
 right: 30px;
 border-radius: 50%;
 border: 1px solid transparent;
 background: var(--bggrd);
 width: 22px;
 height: 22px;
 margin: auto;
}
.newsList p::after{ 
	top: 50%;
	right: 40px;
	border-top: 1.5px #fff solid;
	border-right: 1.5px #fff solid;
	width: 6px;
	height: 6px;
	margin-top: -3px;
	-webkit-transform: rotate(45deg);
transform: rotate(45deg);

}
.newsList a:hover p::before{
 border-color: #B1B1B1;
 background: #fff;
}
.newsList a:hover p::after{
 border-color: #B1B1B1;
}
.newsList a:hover p{
 color: var(--basegr);
}
.newsList .blog a:hover p{
 color: var(--basebl);
}

@media screen and (max-width: 768px) {/*SP topNews*/
#topNews{
 width: 90%;
 padding: 35px 5% 40px;
 margin: 40px auto 60px;
 box-shadow: 0 0 40px rgba(0,0,0,0.16);
}
#topNews h2{
 margin-bottom: 30px;
}
#topNews h2 span{
 font-size: 40px;
}
#topNews h2 span::after{
 width: 80px;
 margin-left: 15px;
}
#topNews .btn{
 margin-top: 30px;
}
.tab{
  justify-content: flex-start;
  margin-bottom: 30px;
}
.tab li{
  width: fit-content;
}
.newsList a{
 flex-flow: row wrap;
 padding: 15px 0;
 font-size: 14px;
 letter-spacing: 0.06em;
}
.newsList .date{
 padding-right:10px;
}
.newsList .cat{
 width: 100px;
 font-size: 12px;
 line-height: 22px;
}
.newsList p{
 width: 100%;
 padding: 10px 30px 0 0;
 font-size: 14px;
}
.newsList p::before{
 right: 0px;
}
.newsList p::after{ 
	right: 10px;

}

}/*-SP only-*/
/*--#topPermission--*/
#topPermission{
  padding: 0 0 85px;
  margin:100px auto 85px auto;
}
#topPermission .inner{
  padding:50px 40px 35px;
  background:#fff;
  box-shadow: 0 3px 20px rgba(0,0,0,0.16);
}
#topPermission .inner.pcFlex{
  gap:10%;
  align-items: center;
}
#topPermission > .pcFlex > *{
  flex-grow: 1;
  width:45%;
}
#topPermission > .pcFlex > .pcFlex{
  
}
#topPermission .pcFlex > div h3{
  color: var(--basegr);
  font-size: 32px;
  font-weight: bold;
  letter-spacing: 0.08em;
  white-space: nowrap;
  margin-bottom:15px;
}
#topPermission .pcFlex > div p{
  margin-bottom:35px;
}
#topPermission .btnMore{
  margin: 0 0 0 auto;
 }
 @media screen and (max-width: 768px) {/*SP topNews*/
  #topPermission{
    width:90%;
  }
  #topPermission .inner{
    padding:25px;
  }  
  #topPermission > .pcFlex > *{
    width: 100%;
  }
  #topPermission .pcFlex > div h3{
    font-size:26px;
  }
}
/*--#topRecruit--*/
#topRecruit{
 background: url("images/top_recruit_bg.jpg") no-repeat center /cover;
 height: 420px;
 display: flex;
 align-items: center;
 justify-content: flex-end;
 padding: 0 52px 0 0;
}
#topRecruit .txt{
 position: relative;
 background: #fff;
 width: 80%;
 max-width: 700px;
 padding: 50px 260px 58px 40px;
}
#topRecruit h2{
 margin-bottom: 18px;
 text-align: left;
}
#topRecruit h2 span{
 display: block;
 color: var(--basegr);
 font-size: 60px;
 letter-spacing: 0.1em;
 white-space: nowrap;
}
#topRecruit h2 span::after{
 content: "";
 display: inline-block;
 width: 120px;
 height: 1px;
 background: #222;
 margin-left: 18px;
 vertical-align: 0.3em;
}
#topRecruit .btnMore .icon{
  fill:#fff;
  filter:#fff;
}
#topRecruit .btnMore span{
  display: flex;
  align-items: center;
  justify-content: center;
}
/*
#topRecruit .btnMore span::before{
  content:"";
  display: inline-block;
  width:13px;
  aspect-ratio: 1 / 1;
  margin-top:-1px;
  margin-right:10px;
  background-color:#fff;
  -webkit-mask:url(images/icon_external-link.svg);
  mask-image: url(images/icon_external-link.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  vertical-align: middle;
 }
 #topRecruit .btnMore:hover span::before{
  background-color:var(--basegr) ;
 }
 */
@media screen and (min-width: 769px) {
#topRecruit .btn{
 position: absolute;
 right: 40px;
 top: 0;
 bottom: 0;
 width: 220px;
 height: 50px;
 margin: auto;
 }
}/*-PC only-*/
@media screen and (max-width: 768px) {/*SP topRecruit*/
#topRecruit{
 height:auto;
 display: block;
 padding: 20px 5% ;
}
#topRecruit .txt{
 position: relative;
 background: #fff;
 width: auto;
 max-width: 700px;
 padding: 20px 5% 20px;
}
#topRecruit h2{
 margin-bottom: 20px;
}
#topRecruit h2 span{
 font-size: 40px;
}
#topRecruit h2 span::after{
 width: 100px;
 margin-left: 15px;
}
 #topRecruit .btn{
  margin-top: 20px;
 }
}/*-SP only-*/

/*-----------*/
#privacy main .inner h2{
 font-size: 32px;
 font-weight: 700;
 letter-spacing: 0;
}
#privacy main .inner p + h2{
 margin-top: 60px;
}
#privacy main .inner > h3{
 margin-top: 40px;
 font-size: 24px;
 font-weight: 700;
}
#privacy main .inner h4{
 font-size: 16px;
 font-weight: 700;
 line-height: 2;
}
#privacy main .inner p{
 margin-top: 30px;
 letter-spacing: 0;
}
#privacy main .inner li h4 + p{
 margin-top: 0;
}
#privacy main .inner ol li{
 margin-top: 25px;
 letter-spacing: 0;
}
#privacy main .inner dl{
 margin-top: 40px;
}
#privacy main .inner dt{
 color: #008238;
 letter-spacing: 0;
}
#privacy main .inner dd{
 letter-spacing: 0;
}

/*-------*/
@media screen and (min-width: 769px) {
}/*-PC only-*/
@media screen and (max-width: 768px) {
  #privacy main .inner h2{
    font-size:26px;
  }
  #privacy main .inner > h3{
    font-size: 20px;
  }
}/*-SP only-*/


/*
下層ページ共通
*/
/*固定ページ兄弟ページナビゲーション*/
.sibling-page_nav{
  width:100%;
  background: url(images/bg_dots.png) repeat, #008383;
  color:#fff;
  opacity:0;
  height: 0;
  padding:0;
  transition: all 0.3s ease-in-out;
  position:sticky;/*fixedを設定して固定*/
  position: static;
  pointer-events: none;
}
.is-fixed .sibling-page_nav{
  position: fixed;
  top:0;/*位置指定*/
  left:0;/*位置指定*/
  z-index: 90;/*最前面へ*/
  opacity:1;
  height: auto;
  transition: all 0.3s ease-in-out;
  pointer-events:all;
}
.sibling-page_nav ul{
  max-width:1200px;
  display:flex;
  align-items: center;
  justify-content: center;
  gap:15px 50px;
  padding:10px 20px;
  margin:0 auto;
}
.sibling-page_nav ul li,
.sibling-page_nav ul li a {
  color:#fff;
  position: relative;
}
.sibling-page_nav ul li.current{
  pointer-events: none;
}
.sibling-page_nav ul li a {
  position: relative;
  display: block;
  transition: all 0.3s ease;
}


.sibling-page_nav ul li:nth-child(n + 2)::before{/*斜め線*/
  content:"";
  display: inline-block;
  width:1px;
  height:100%;
  position:absolute;
  left:-25px;
  background: #fff;
  transform: rotate(15deg);
}
@media screen and (min-width: 769px) {
  .sibling-page_nav ul li.current::after{
    content:"";
    position: absolute;
    bottom: 0;
    left: 10%;
    width: 80%;
    height:2px;
    background:#fff;
    border-radius: 1px;
  }
  .sibling-page_nav ul li a::after {
    content: '';
    /*絶対配置で線の位置を決める*/
    position: absolute;
    bottom: 0;
    left: 10%;
    /*線の形状*/
    width: 80%;
    height: 2px;
    background:#fff;
    border-radius: 1px;
    /*アニメーションの指定*/
    transition: all .3s;
    transform: scale(0, 1);/*X方向0、Y方向1*/
    transform-origin: center top;/*上部中央基点*/
  }
  .sibling-page_nav ul li a:hover::after{
    transform: scale(1, 1);/*X方向にスケール拡大*/
  }
}
@media screen and (max-width: 768px) {
  .sibling-page_nav{
    margin-top:60px;
  }
  .sibling-page_nav ul{
    flex-wrap: wrap;
    gap:10px 0;
    padding:10px;
  }
  .sibling-page_nav ul li{
    width: 50%;
    font-size:12px;
    text-align: center;
    padding:5px;
    line-height: 1.3;
  }
  .sibling-page_nav ul li:nth-child(n + 2){
    padding-left:10px;
  }
  .sibling-page_nav ul li:nth-child(n + 2)::before{
    height:90%;
    top:5%;
    left:0;
    transform: rotate(0deg);
  }
  .sibling-page_nav ul li:nth-child(odd)::before{
    display: none;
  }
  .sibling-page_nav ul li.current::after{
    content:"";
    position: static;
    bottom: 0;
    left: 10%;
    width: 80%;
    height:2px;
    background:#fff;
    border-radius: 1px;
  }
}/*-SP only-*/

/* 240315追加 */

　.outline_bw{
  overflow-wrap: break-word;
}


/* 404 ERROR */
/* .p-error-page-tl {
  position: relative; 
  align-items: center;
  font-family: 'Barlow Condensed',"游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
  font-style: italic;
  color: #fff;
  margin: 0 2%;
  font-size: 60px;
  line-height: 1.1;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  display: flex;
  height: 226px;
  text-align: left;
} */
   
.p-error-page {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.p-error-page > .p-error-page-subtl {
  position: relative;
  color: var(--basegr);
  justify-content: justify;
  font-size: 30px;
  margin: 3rem 0;
  text-align: left;
  line-height: 2.5;
  letter-spacing: 0.1em;
  font-weight: 700;
}

.p-error-page > .p-error-page-txt{
  position: relative;
  color: #222222;
  justify-content: center;
  font-size: 16px;
  text-align: left;
  line-height: 2.5;
  letter-spacing: 0.1em;
}


.p-error-page_btn_wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 5rem auto;
  width: 300px;
  padding: 0 5%;
}

.p-error-page_btn {
  display: inline-flex;
  align-items: center;
  width: 300px;
  border-radius: 6px;
  background:no-repeat left 20px center / 16px auto, var(--bggrdr);
  /* background: #C3C3C3; */
  height: 51px;
  text-align: center;
  color: #fff;
  font-size: 16px;
  font-weight: 400;
  cursor: pointer;
  border: none;
}

.p-error-page_btn img {
  margin-right: 10px; 
  margin-left: 1rem;
  rotate: 180deg;
}

.p-error-page_btn span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 63px;
  color: #fff;
  font-size: 16px;
  text-align: center;
  cursor: pointer;
  border-radius: 6px;
  border: none;
  background: none; 
  padding: 0;
}
