
body{
  line-height: 190%;
  font-size: 16px;
}

header {
  background: rgba(255,255,255,1);
}

#header{
  padding: 10px 0;
}

#logo {
  width: 130px;
  margin-left: 3%;
}

#logo img{
  height: auto;
  width: 100%;
  padding: 0;
  display: block;
  vertical-align: bottom;
}


/*メインビジュアル
トップスライダー*/

#mainvl {
  width: 95%;
  /*height: 50vh;*/
  height: 320px;
  position: relative;
  margin: 20px auto 0;
  border-radius: 20px;
  box-shadow: 0px 0px 8px rgba(0,0,0,0.1);
}

#subvl{
  width: 95%;
  padding-top: 170px;
  position: relative;
  margin: 20px auto 0;
  border-radius: 20px;
  background: #1d3144;
  box-shadow: 0px 0px 8px rgba(0,0,0,0.1);
}

#mainvl .swiper-slide{
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
  overflow: hidden;
  border-radius: 20px;
}

.maintxt{
  position: absolute;
  left: 0;
  bottom: 30px;
  background: rgba(0,0,0,0.3);
  border-top-right-radius: 15px;
  border-bottom-right-radius: 15px;
  padding: 10px 15px 10px 15px;
  z-index: 2;
}

.maintxt h2{
  color: #fff;
  font-size: 15px;
  line-height: 30px;
  font-weight: 700;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  text-shadow: 5px 5px 5px rgba(0,0,0,0.1);
}

.maintxt h2 span{
  color: #fff;
  background: #1d3144;
  padding: 0px 5px;
  border-radius: 5px;
  display: inline-block;
  font-weight: 700;
  margin-right: 5px;
  margin-top: 4px;
}

.sv_img{
  width: 100%;
  height: 170px;
  position: absolute;
  border-top-right-radius: 20px;
  border-top-left-radius: 20px;
  overflow: hidden;
  right: 0;
  top: 0;
}

.s_bg{
  background: url(images/subimg.jpg) no-repeat center center;
  background-size: cover;
}

.s_bg2{
  background: url(images/subimg2.jpg) no-repeat center center;
  background-size: cover;
}

.sv_ttl{
  width: 100%;
  padding: 30px 5% 20px;
  box-sizing: border-box;
}

.sv_ttl .en{
  font-size: 40px;
  line-height: 40px;
}

.ttl h3{
  
}

.ttl{
  padding-bottom: 30px;
}

.img_rud img{
  border-radius: 10px;
  box-shadow: 0px 0px 8px rgba(0,0,0,0.1);
}

.t_flex1{
  
}

.t_img1{
  text-align: center;
}

.t_txt1{
  margin-top: 30px;
}

.btn1 a,
.btn2 a{
  display: block;
  padding-left: 65px;
  line-height: 50px;
  font-size: 18px;
  box-sizing: border-box;
  font-weight: 700;
  -webkit-transition: all .5s ease;
	transition: all .5s ease;
  position: relative;
}

.btn1 a{
  color: #1d3144;
}

.btn2 a{
  color: #fff;
}

.btn1 a::before,
.btn2 a::before{
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 50px;
  height: 50px;
  border-radius: 5px;
  z-index: 1;
}

.btn1 a::before{
  background: #1d3144 url(images/ar1.png) no-repeat center center;
  background-size: 25px;
}

.btn2 a::before{
  background: #fff url(images/ar2.png) no-repeat center center;
  background-size: 25px;
}

.btn1 a:hover{
  color: #192b3c;
}

.btn1 a:hover::before,
.btn2 a:hover::before{
  background: #192b3c url(images/ar1.png) no-repeat center center;
  background-size: 25px;
}

#flow .btn2{
  padding-top: 30px;
}

.btn_mail a{
  display: block;
  background: #0e1822 url(images/mail.png) no-repeat 15px center;
  background-size: 25px;
  color: #fff;
  padding: 20px 15px 20px 40px;
  border-radius: 5px;
  text-align: center;
}

.btn_mail a:hover{
  background: #1d3144 url(images/mail.png) no-repeat 15px center;
  background-size: 25px;
}


.aden{
  font-size: 60px;
  position: absolute;
  z-index: 1;
}

#company .aden{
  color: #fff;
  right: 0;
  top: 55px;
}

#flow .aden{
  color: rgba(0,0,0,.3);
  left: 0px;
  top: 55px;
}

#works .aden,
#facilities .aden{
  color: #fff;
  right: 0;
  top: 0;
}

#over .aden,
#form .aden{
  color: #fff;
  left: 0px;
  top: 50px;
}

#contact .aden{
  color: rgba(0,0,0,.3);
  left: 0px;
  top: 70px;
}

.flow_box ul{
  text-align: center;
}

.flow_box li{
  width: 85%;
  border-radius: 30px;
  border: 1px solid #fff;
  position: relative;
  background: #1d3144;
  margin: 20px auto 30px;
}

/*.flow_box li::after{
  content: '';
  width: 40px;
  height: 1px;
  background: #fff;
  position: absolute;
  top: 50%;
  right: -40px;
  transform: translateY(-50%);
  z-index: 0;
}

.flow_box li:last-child::after{
  display: none;
}*/

.nu{
  color: #fff;
  position: absolute;
  background: #1d3144;
  width: 40px;
  font-size: 26px;
  line-height: 50px;
  border-radius: 50%;
  text-align: center;
  top: -22px;
  left: 50%;
  transform: translateX(-50%);
}

.f_txt{
  padding: 25px 20px 20px;
}

.f_txt h3,
.f_txt p{
  color: #fff;
}

.f_txt h3{
  text-align: center;
}

/*フッタ*/

.t_flex2{
  text-align: center;
}

.t_box,
.t_tel,
.t_mail{
  
}

.t_box p{
  text-align: left;
}

.t_box{
text-align: left;
}

.t_tel,
.t_mail{
  padding-top: 30px;
}

.t_tel a,
.t_tel2 a{
  font-family: "Anton", sans-serif;
  font-weight: 400;
  font-style: normal;
  color: #fff;
  font-size: 40px;
  line-height: 45px;
  letter-spacing: 1px;
}

.t_tel2 a{
  color: #1d3144;
  display: inline-block;
  padding-right: 25px;
}

.t_tel2{
  
}

.ft_flex{
}

#ft_logo{
  
}

#ft_logo h2{
  width: 130px;
  margin: 0 auto 20px;
}

#ft_logo p{
  color: #ffffff;
}

.bana{
  width: 200px;
  margin: 30px auto 0;
}

#copyright{
  color: #ffffff;
  padding-top: 40px;
  font-size: 13px;
}

#copyright span,
#copyright a{
  color: #ffffff;
  font-size: 12px;
}

/*タイトル*/

.txt_s{
  font-size: 12px;
  line-height: 20px;
}

.txt_ns{
  font-size: 15px;
  line-height: 27px;
}

.txt_n{
  font-size: 16px;
  line-height: 30px;
  font-weight: 700;
}

.txt_m{
  font-size: 18px;
  line-height: 38px;
  font-weight: 700;
}

.txt_b,
.ttl h3{
  font-size: 21px;
  line-height: 40px;
  font-weight: 700;
}

.txt_bb{
  font-size: 26px;
  line-height: 40px;
  font-weight: 700;
}

.txt_c{
  text-align: center;
}

.txt_r{
  text-align: right;
}

.mgat{
  margin: 0 auto;
}

.wid_1{
  width: 100%;
}

.wid_2{
  width: 300px;
}

.wid_3{
  max-width: 600px;
}

.t_inlin{
  display: inline-block;
}

.co_r{
  padding-right: 20px;
}


/*施工事例*/

.thumbimg {
	width: 100%;
  /*aspect-ratio: 5/3;*/
  height: 220px;
	position: relative;
	overflow: hidden;
  border-radius: 10px;
}

.thumbimg img {
  width: 100%;
  height: 100%;
  object-fit: cover; 
  position: absolute;
  top: 0;
  left: 0;
}

.works_list ul{
  display:-webkit-box;
  display:-moz-box;
  display:-ms-flexbox;
  display:-webkit-flex;
  display:-moz-flex;
  display:flex;
  -webkit-box-lines:multiple;
  -moz-box-lines:multiple;
  -webkit-flex-wrap:wrap;
  -moz-flex-wrap:wrap;
  -ms-flex-wrap:wrap;
  flex-wrap:wrap;
  align-items:center;
}

.works_list li{
  width: 48%;
  margin: 0px 1% 20px;
  text-align: center;
}

/*page*/

.postbtn{
  padding-top: 40px;
  border-top: 1px solid #dddddd;
}

.page-numbers {
  display: flex;
  gap: 10px;
  justify-content: center;
}

.page-numbers li {
  list-style: none;
}

.page-numbers a,
.page-numbers span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  border-radius: 5px; 
  text-decoration: none;
  font-size: 18px;
  line-height: 35px;
  font-weight: bold;
  color: #1d3144;
  transition: 0.3s;
}

.page-numbers .current {
  background: #1d3144;
  color: #fff;
}

.page-numbers a:hover {
  background: #fff;
  color: #1d3144;
}


.pagination .prev,
.pagination .next {
  position: relative;
  font-size: 0; /* ← テキスト消す */
}

.pagination .prev::before,
.pagination .next::before{
  content: "";
  display: block;
  width:35px;
  height: 35px;
  color: #fff;
}

.pagination .prev::before {
  background:#1d3144 url(images/ar1_l.png) no-repeat center center;
  background-size: 20px;
}

.pagination .next::before {
  background:#1d3144 url(images/ar1.png) no-repeat center center;
  background-size: 20px;
}

.slick-dots {
  bottom: -40px;
}

.swiper-pagination {
  display: block !important;
  opacity: 1 !important;
  position: absolute;
  bottom: 15px!important;
  left: 10px!important;
  width: 100%;
  text-align: left!important;
  z-index: 10;
}

.swiper-pagination-bullet {
  background: #fff!important;
  opacity: 0.6!important;
}

.swiper-pagination-bullet-active {
  opacity: 1!important;
}

.wf_box1 ul{
  
}

.wf_box1 li{
  
}

.maru1,
.maru2{
  width: 90%;
  padding:15px; 
  box-sizing: border-box;
  position: relative;
  border-radius: 30px;
  margin: 20px auto;
}

.maru1{
  background: #1d3144;
  border: 5px solid #838f97;
}

.maru2{
  background: #0e1822;
  border: 5px solid #82878c;
}

.plus{
  font-size: 20px;
  font-weight: bold;
  color: #cfcfcf;
  text-align: center;
}

.wf_txt1{
  line-height: 36px;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
}

.wf_txt1 span{
  font-size: 20px;
  font-weight: bold;
  color: #fff;
  display: inline-block;
  border-bottom: 1px solid #fff;
}

.wf_box1{
  background: url(images/box_bg.png) no-repeat center center;
  background-size: 450px;
}

.flow_list li{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-bottom: 40px;
  position: relative;
}

.flow_list li::before{
  content:'';
  height: 100%;
  width: 1px;
  background: #fff;
  left: 45px;
  bottom: 0;
  position: absolute;
}

.flow_list li:last-child{
  padding-bottom: 0px;
}

.flow_list li:last-child::before{
  display: none;
}

.icon{
  width: 90px;
  height: 90px;
  border: 1px solid #fff;
  border-radius: 50%;
  box-sizing: border-box;
  padding: 20px;
  background: #1d3144;
  z-index: 2;
}


.f_txt2{
  flex: .95;
}

.tlh4{
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-bottom: 20px;
}

.tlh4 h4{
  font-size: 18px;
  color: #fff;
  font-weight: 700;
}

.tlh4 span{
  font-size: 24px;
  color: #fff;
  font-weight: 400;
  width: 40px;
}

.f_txt2 p{
  color: #fff;
}

.t_img2{
  width: 100%;
  margin-bottom: 30px;
  text-align: center;
}

.t_flex3{
  
}

.t_img3{
  text-align: center;
  margin-top: 30px;
}

.t_txt3{
  
}

.table_dl dt,
.table_dl dd{
  padding: 15px;
  border-top: 1px solid #ddd;
  box-sizing: border-box;
}

.table_dl dt{
  font-weight: 700;
  background: #1d3144;
  color: #fff;
}

.table_dl dd{
  background: #fff;
}

.table_dl dl{
  border-bottom: 1px solid #ddd;
  border-left: 1px solid #ddd;
  border-right: 1px solid #ddd;
}

.map iframe{
  width: 100%;
  height: 360px;
}

.facilities_box li{
  background: #fff;
  padding: 30px 20px;
  border-radius: 15px;
  box-shadow: 0px 0px 5px rgba(0,0,0,0.1);
  margin-top: 30px;
}

.faci_flex{
}

.faci_img{
  text-align: center
}

.faci_txt{
  margin-top: 10px;
}

.table2{
  margin-top: 20px;
}

.table2 dl{
  border-bottom: 1px solid #ddd;
  border-left: 1px solid #ddd;
  border-right: 1px solid #ddd;
}

.table2 dt,
.table2 dd{
  padding: 15px 15px;
  border-top: 1px solid #ddd;
  box-sizing: border-box;
}

.table2 dt{
  font-weight: 700;
  background: #1d3144;
  color: #fff;
}

.table2 dd{
  background: #fff;
}


/*contactfoam*/

.con_form li{
  
}

.dt_box{
padding-top: 10px;
}

.dt_box2{
padding-top: 10px;
}

.con_form h4{
  font-weight: 500;
  padding-bottom: 5px;
}

.hissu{
  color: #e60012;
  font-size: 13px;
  font-weight: 700;
}


/********************************************
 * 共通要素
 ********************************************/

.line1{
  border-top: 1px solid #e4e4e4;
}

.sp_none{
	display:none;
}

.pdl_no{
  padding-bottom: 0;
}

@media screen and (max-width: 800px) {

.faci_flex{
  display: block;
}


}



.works_post .multiple-items .slick-slide {
  height: 230px; /* 好きな高さ */
}

.works_post .multiple-items .slick-slide > div {
  height: 100%;
}

.works_post .multiple-items .slick-slide .works_box{
  padding: 0 15px;
}