@charset "utf-8";


h1, h2, h3, h4, h5, h6 { font-weight: bold; }
strong, em { font-weight:bold; }
small{ font-size:80%; }
sub,sup{ font-size:70%; line-height:0; position:relative; vertical-align:baseline; }
sup{ vertical-align:text-top; top:-.5em; }
sub{ vertical-align:text-bottom; bottom:-.25em; }


@font-face { font-family:"FAsolid"; src:url("./fa-solid-900.woff") format("woff"); }
@font-face { font-family:"FAregular"; src:url("./fa-regular-400.woff") format("woff"); }
@font-face{font-family: 'slick';font-weight: normal;font-style: normal;src: url('./slick.woff') format('woff');}


.fMin { font-family: 游明朝,"Yu Mincho",YuMincho,"Hiragino Mincho ProN",HGS明朝E,メイリオ,Meiryo,serif; }
.fGot{ font-family:"Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif; }
.fMaru{ font-family:"ヒラギノ丸ゴ Pro W4","ヒラギノ丸ゴ Pro","Hiragino Maru Gothic Pro","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","HG丸ｺﾞｼｯｸM-PRO","HGMaruGothicMPRO"; }
.fTime{ font-family: "Times New Roman","Times New Roman",sans-serif; }
.zMaru_g{font-family: zen-maru-gothic, sans-serif;}

.sawarabi-mincho {
  font-family: "Sawarabi Mincho", serif;
  font-weight: 400;
  font-style: normal;
}


.dbl{display: block;}
.dib{display: inline-block;}
.din{display: inline;}
.dtb{display: table;}
.right, .right p{ text-align:right; }
.center, .center p { text-align:center; }
.left, .left p{ text-align:left; }
.under{ text-decoration: underline;}
.bold{ font-weight: bold; }
.big{ font-size: 120%; }
.small{ font-size: 90%; }
.small2{ font-size: 80%; }
.small3{ font-size: 70%; }
.lh14{ line-height:1.4; }
/*a[target="_blank"]::after { font-family: "FAsolid"; font-weight:900; content: "\f35d"; display: inline-block; margin:0 0 0 3px; }*/
.sns_icon a[target="_blank"]::after { display: none;}
.float_left {float: left;}
.float_right {float: right;}
.img_left{ display:block; float:left; margin:0 30px 30px 0; }
.img_right{ display:block; float:right; margin:0 0 30px 30px; }
.img_top{ margin-bottom:30px; }
.clear { clear: both; }
.clearfix::after { display: block; clear: both; content: ""; }
.flex{ display: flex; flex-flow: row wrap; }
.flex_between{ justify-content: space-between; }
.flex_center{ justify-content: center; }
.flex_end{ justify-content: flex-end; }
.flex_around{ justify-content: space-around; }
.flex_a_st{align-items: flex-start;}
.flex_a_center{ align-items: center; }
.flex_a_end{ align-items: flex-end; }
.flex_row{ flex-direction: row-reverse; }

.p_re{ position: relative; }

.indent { padding-left:1em; text-indent: -1em;}
.lineclamp2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow:hidden; }
.lineclamp3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow:hidden; }



:root{
  --c_gray: #f8f4f4;
  --c_pink: #D6AF9D;
  --c_red: #c9161c;
  --c_grn: #D3EFBA;
  --c_site_c: #007188;
}


/*基本スタイル
==================================================================================================================*/
/*基本文字サイズ&文字色*/
html { font-size:16px; }
body {
  font-family: "Sawarabi Mincho","Yu Mincho",YuMincho,"Hiragino Mincho ProN",HGS明朝E,メイリオ,Meiryo,serif;
  font-weight: normal;
  line-height: 1.6;
  letter-spacing: .1em;
  word-wrap: break-word;
}

.content {
  color: #111;
  background: #fff;
}

/*
.wf-active body {
  font-family: "Noto Sans JP", 'ヒラギノ丸ゴ ProN','Hiragino Maru Gothic ProN','メイリオ', Meiryo, sans-serif;
}
*/
h1, h2, h3, h4, h5, h6 { padding: 0; }
h1,h2,h3, h4{
  line-height: 1.6;
  text-align: center;
  margin-bottom: 1em;
  font-weight: normal;
}

p { margin:0px 0px 1em 0px; } /*下部に余白*/


p,dl dt,dl dd,li,div { font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem); }


/*リンク文字色*/
a{text-decoration: none;color:#111;transition : all 0.8s ease 0s;}
a:hover   { opacity: 0.8; }





/*マーカー＆強調文字色*/
.c_mrk { background-color:#e5d89b; padding:0 3px; } /*ラインマーカー*/
.c_posi  {color:#d64a5a;}/*positive*/
.c_point {color:#900000;}/*point up*/
.c_nega  {color:#5488a2;}/*negative*/
.c_off   {color:#cac5ba;}/*off*/
.c_grn  {color: var(--c_grn);}
.c_red  {color: var(--c_red);}
.c_site_c  {color: var(--c_site_c);}
.c_wt  {color:#fff;}

.t_und_yel{background: linear-gradient(transparent 70%, var(--c_yel) 30%);}

.deco_und{text-decoration: underline;}


/*背景色*/
.bg_red{background: var(--c_red);}
.bg_gray{background: var(--c_gray);}
.bg_blue{background: var(--c_blue);}
.c_site_c{background: var(--c_site_c);}
.bg_wt{background: #fff;}


/*テーブル*/
table { border-collapse: collapse; border-spacing:0; width: 100%; }
caption { text-align:left; font-weight:bold; color:#993300; }
th,td{ border: #7f9255 1px solid; padding:10px 20px; font-size: 1rem; vertical-align:top; }
thead th,tfoot th { background-color:#728c42; color:#fff; }
thead td,tfoot td { background-color:#999; color:#fff; }
tbody th { background-color: #a0cc3c; color: #fff; }
tbody td { background-color:#fff; }

/*区切り線*/
hr{clear:both;border:0px solid #fff;padding:15px 0;width:0;}
hr.br{ border:none; }

.img_frame { border: solid 4px #fff; box-shadow: 0 2px 6px rgb(0 0 0 / 10%); }

/*レイアウト共通*/
#container  { width: 100%;overflow: hidden;}
.inner{ width:92vw; max-width: 1000px; margin:0 auto; }
.main_inner{ width:92vw; max-width: 1000px; margin:0 auto; }
.inner:after{ content: ""; display: block; clear: both; }
.inner_section{ width: 92vw; max-width: 1000px; margin:0 auto; padding: 50px 0; }
.inner_wide{ width: 92vw; max-width: 1800px; margin:0 auto; padding: 50px 0; }
.w80{width: 100%;max-width: 800px;margin: auto;}
.w90{width: 100%;max-width: 900px;margin: auto;}
.w100{width: 100%;max-width: 1000px;margin: auto;}

.pd10{padding: 10px !important}
.full_w{
  width: 100vw;
  margin: 0 calc(50% - 50vw);
}

img.ob_cover{
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.m_at{
  margin: auto;
}


.gmap { height: 0; overflow: hidden; padding-bottom: 56.25%; position: relative;}
.gmap iframe { position: absolute; left: 0; top: 0; height: 100%; width: 100%;}


.contents_btm01{margin-bottom: 20px;}
.contents_btm02{margin-bottom: 40px;}
.contents_btm03{margin-bottom: 60px;}
.contents_btm04{margin-bottom: 80px;}
.contents_btm05{margin-bottom: 100px;}
.contents_btm0{margin-bottom: 0;}
.p0{padding: 0 !important;}
.mb0{margin-bottom: 0 !important;}
.pt0{padding-top: 0 !important;}
.pb0{padding-bottom: 0 !important;}

@media (max-width:999px) {
	body { letter-spacing: 0.1em;}
}


@media (max-width:799px) {
	.inner_section,.inner,.inner_wide{ width: 90vw;}
	.inner_section,.inner_wide,.pd80{ padding: 6vw 0;}
  .contents_btm01{margin-bottom: 2vw;}
  .contents_btm02{margin-bottom: 4vw;}
  .contents_btm03{margin-bottom: 6vw;}
  .contents_btm04{margin-bottom: 8vw;}
  .contents_btm05{margin-bottom: 10vw;}

}




@media all and (min-width: 600px){
  .noPC{ display:none !important; }
}
@media all and (max-width: 599.999px){
  .noSP{ display:none !important; }
}
@media (max-width:599px) {
  body{line-height: 1.7;}
  .content{padding-top:20% }
  .order1{ order: 1; }
  .order2{ order: 2; }
  .noTab, .noTab caption, .noTab thead, .noTab tfoot, .noTab tbody, .noTab tr, .noTab th, .noTab td {
    display:block; width:100%; }
    .noTab tr { margin-top:10px; }
    .img_left{ float:none; margin:10px auto; text-align:center; }
    .img_right{ float:none; margin:10px auto; text-align:center; } 
  }

  @media (max-width:399px) {
  }





/* first view */
#enter_page{
  display: none;
  background: var(--c_site_c);
    position: fixed;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 1000;
    }
#enter_page.curtain ul{
  -webkit-animation: fasein 3s ease-in forwards;
  animation: fadein 3s ease-in forwards;
      }
@-webkit-keyframes fadein {
  from {opacity: 0;}
  99.9%,to {opacity: 1;cursor:pointer;}
}
@keyframes fadein {
  from {opacity: 0;}
  99.9%,to {opacity: 1;cursor:pointer;}
}

#enter_page.curtain{
  display:block;
  opacity:1;
  transition:opacity 1s;
}
#enter_page.curtain.off{
  display:block;
  opacity:0;
  transition:opacity 1s linear;
}
#enter_page ul{
  position: relative;
  width: 100%;
  height: 100%;  
}
#enter_page ul{

}

#enter_page li{
  position: absolute;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  margin: auto;
}
#enter_page li:first-child{
  width: 90%;
  max-width: 380px;
  top: 50%;
}
#enter_page li:last-child{
  width: 50%;
  max-width: 217px;
  top: 80%;
}

@media (max-width:599px){


#enter_page li:last-child{
  top: unset;
  bottom: 6%;
}


}




/*フッター*/
#bread { background:#eee; font-size:80%; padding:0.3em; }
#bread li { display:inline-block; }
#bread li::before { font-family:FAsolid; content:"\f105"; font-weight:900; color:red; display:inline-block; margin:.1em .5em; }
#bread li:first-of-type::before { content:"\f015"; margin:.1em .5em .1em 0; }
#bread a { color:green; }


#footer{
  background: #313131;
}
.ftr_logo{
  margin: 2em auto .5em;
  font-size: clamp(1rem, 0.864rem + 0.68vw, 1.375rem);
}

/*コピーライト
------------------------------------------------------------------------------------------------------------------*/

#copyright {
  text-align:center;
  color: #fff;
  font-size: 0.8rem;
  letter-spacing:1px;
  padding: 50px 0;
}






@media (max-width:799px){


.ftr_logo{
  margin: 1em auto .5em;
}



}

@media (max-width:599px){




}





.onoff { opacity: 0; transition:all 1s; }
.onoff.on { opacity: 1; }


.fadein{
  display: block;
  transition: 1s;/*効果時間*/
  transition-timing-function:ease;/*開始と完了を滑らかにする*/
  transform:translateY(50px);/*下から表示させる*/
  opacity: 0;/*不透明度*/
}
.fadein.on{
  transform: none;/*active時に拡大解除*/
  opacity: 1;/*不透明度を元に戻す*/
}






#page_top{ width: 70px; height: 70px; position: fixed; z-index: 9999; display:none; right: 50px; bottom: 30px; background: rgba(0, 113, 136, .6); border-radius: 50%;}
#page_top.on { display:block; }
#page_top a{ position: relative; display: block; width: 70px; height: 70px; text-decoration: none; text-align: center; color: #fff;}
#page_top a::before{ font-family: FAsolid; font-weight: 900; content: '\f106'; display: block; font-size: clamp(1.875rem, 1.193rem + 3.41vw, 3.75rem); color: #fff;text-align: center;
  position: absolute;
top: 50%;
left: 50%;
transform: translateY(-50%) translateX(-50%);
margin: auto;}
@media (max-width: 799px){
	#page_top{ width: 60px; height: 60px; right: 20px;bottom: 65px}
	#page_top a{ width: 60px; height: 60px; line-height:1;}
}
@media (max-width: 369px){
  #page_top{ right: 10px;bottom: 55px}
	#page_top, #page_top a{width: 40px;height: 40px;}
}




/*サブページ
-------------------------------------------------------------------------------------------------------------------*/



.sub_main{
  text-align: center;
  padding: 4% 0;
    margin-bottom: 5%;
  }
.sub_main h1{
  margin-bottom: 0;
  }
.page_company .sub_main{
  background: url(../images/company/h1_bg.jpg) center no-repeat;
  background-size: cover;}
.page_recruit .sub_main{
  background: url(../images/recruit/h1_bg.jpg) center no-repeat;
  background-size: cover;}
.page_contact .sub_main{
  background: url(../images/contact/h1_bg.jpg) center no-repeat;
  background-size: cover;}
.page_works .sub_main{
  background: url(../images/works/h1_bg.jpg) center no-repeat;
  background-size: cover;}
.page_map .sub_main{
  background: url(../images/map/h1_bg.jpg) center no-repeat;
  background-size: cover;}
.page_photo .sub_main{
  background: url(../images/photo/h1_bg.jpg) center no-repeat;
  background-size: cover;}


.t_bd_btm{
  text-align: left;
  font-size: clamp(1.125rem, 0.943rem + 0.91vw, 1.625rem);
  position: relative;
  margin-bottom: 2em;
}
.t_bd_btm::after{
  content: "";
  display: block;
  background: var(--c_site_c);
  width: 40%;
  height: 1px;
  position: absolute;
  bottom: -.25em;
  left: 0;
  z-index: 999;
}

.t_bd_lft{
  font-weight: bold;
  padding: .25em 0 .25em .75em;
  border-left: 6px solid var(--c_site_c);
  letter-spacing: 2px;
  text-align: left;
  margin-bottom: 1.5em;
  font-size: clamp(1rem, 0.909rem + 0.45vw, 1.25rem);
}



.sub_page h3{
  font-size: clamp(1rem, 0.909rem + 0.45vw, 1.25rem);
}


  @media (max-width:799px){



.sub_main{
  text-align: center;
  padding: 3.5% 0;
    margin-bottom: 5%;
  }


  
  }