html {font-size: 625%;}

/*リセット*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	vertical-align: baseline;
}

body {
	font-family: YuMincho,"Hiragino Mincho ProN W6","Noto Selif JP",serif;
	font-size: .14rem;
	font-size: 14px;
	font-feature-settings: 'palt';
	color:#4c4c4c;
	background: #fff;
	letter-spacing: .014rem;
	box-sizing: border-box;
}

/*共通*/
ol
,ul {
	list-style: none;
}
a{
	text-decoration: none;
	cursor: pointer;
	color: #fff;
}
#container{
	overflow: hidden;
}
section{
	margin-bottom: 1rem;
}
.wrap{
	max-width: 1050px;
	width: 96%;
	margin: 0 auto;
}
.half{
  width: 60%;
  margin: 0 auto;
}

/*font*/
h1{
	font-size: clamp(.24rem, 3.125vw, .44rem);
}
.gothc{
	font-family: "Moderat_Regular";
}
.title{
  font-size: clamp(.18rem, 3.125vw, .2rem);
  margin-bottom: .2rem;
}
h3{
  font-size: .16rem;
  font-weight: normal;
}
/*color*/
.bg_blue{
  background: #1199ed;
}
.bg_blue_linear{
  background: linear-gradient(180deg, #fff 10%, #1199ed 10%);
  color: #fff;
}

/*button*/
.button{
  position: relative;
  display: block;
  width: 200px;
  font-size: 14px;
  padding: .14rem 0;
  text-decoration: none;
  background-color: #fff;
  color: #262626;
  text-align: center;
  cursor: pointer;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}
.button:hover:before {
  content: "";
  height: 14px;
  width: 20px;
  position: absolute;
  top: 0;
  left: 0;
  border: 3px solid #262626;
  border-width: 1px 0 0 1px;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}
.button:hover::after {
  content: "";
  height: 14px;
  width: 20px;
  position: absolute;
  top: 34px;
  left: 179px;
  border: 3px solid #262626;
  border-width: 0 1px 1px 0;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}
.button:before {
  content: "";
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  border: 3px solid #262626;
  border-width: 1px 0 0 1px;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}
.button:after {
  content: "";
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  border: 3px solid #262626;
  border-width: 0 1px 1px 0;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}

/*common*/
.flex{
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/*header*/
.sp
,.globalMenuSp{
	display: none;
}
header{
	position: fixed;
  padding-left: .4rem;
	width: calc(100% - .4rem);
	background: rgba(255,255,255,0);
	color: #000000;
	z-index: 10;
  align-items: center;
}
.logo{
  width: 20%;
}
.logo img{
  width: 50%;
  filter: drop-shadow(1px 1px 3px white);
}
.pc{
  width: 44%;
}
.estimate_button{
  background: #1199ed;
  padding: .3rem;
  width: calc(9% - .3rem);
  height: 50px;
  position: relative;
}
.estimate_button div{
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  text-align: center;
  width: fit-content;
  height: fit-content;
}
.estimate_button img{
  width: 30%;
}
.estimate_button span{
  font-size: .14rem;
  display: block;
}

/*footer*/
footer{
  padding: .5rem 0;
}
footer a{
  color: #4c4c4c;
}
footer ul{
  width: 40%;
  margin-bottom: .3rem;
}
footer ul a:hover{
  color: #1199ed;
}

/*index*/
.top_main{
	background: url("../images/top_main.jpg") center center /cover no-repeat;
	height: 90vh;
	position: relative;
}
.catch{
  position: absolute;
  width: fit-content;
  height: fit-content;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  color: #fff;
  text-align: center;
}
.alternating{
  position: relative;
}
.alternating_frame .alternating:nth-child(2) .bg_half img{
  margin-left: initial;
}
.left_font{
  justify-content: flex-end;
}
.alternating_frame .alternating:nth-child(2) .wrap > div{
  margin-left: auto;
  width: 44%;
}
.bg_half{
  width: 100%;
}
.bg_half img{
  width: 50%;
  margin-left: auto;
  display: block;
}
.alternating .wrap{
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  height: fit-content;
  width: 96%;
  max-width: 1050px;
}
.alternating .wrap > div{
  width: 50%;
}
.text_box{
  width: 90%;
}
.bg_font{
  font-size: clamp(0.34rem, 7vw, 1rem);
  color: #1199ed;
  opacity: .2;
  display: flex;
  align-items: center;
  letter-spacing: .14rem;
  height: fit-content;

}
.bg_font::before{
  content: "";
  background-color: #1199ed;
  width: 100px;
  height: 2px;
  margin-right: 20px;
}
.text_box p{
  margin-bottom: .3rem;
}

/*スライド*/
.scroll{
  margin-bottom: .5rem;
}
.slide-container {
  width: 90%;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.slide-wrapper {
display: flex;
animation: slide-flow 20s infinite linear 1s both;
}
.slide{
width: 300px;
object-fit:cover;
border: 1px solid #ddd;
}
.bg_blue_linear h1.title{
  margin-bottom: 0;
}
.bg_blue_linear li{
  margin-bottom: .5rem;
}
.bg_blue_linear li h3{
  border-bottom: 1px solid #fff;
  line-height: .4rem;
  margin-bottom: .2rem;
}
.bg_blue_linear .wrap{
  padding-bottom: 1rem;
}
.bg_blue_linear{
  margin-bottom: 0;
}

/*common*/
.common{
  background: url("../images/bg_contact.webp") center center /cover no-repeat;
  padding: 1rem 0;
  color: #fff;
  margin-bottom: 0;
}
.common .flex p{
  width: 44%;
}
.common .flex .flex{
  width: 50%;
}
.common .button{
  color: #1199ed;
}
.common .button:hover{
  background: #1199ed;
  color: #fff;
  border-color: #fff;
}
.common .button::before
,.common .button::after{
  border-color: #1199ed;
}
.common .button:hover:before
,.common .button.button:hover::after{
  border-color: #1199ed;
}

/*company*/
.company .sub_main{
  background: url("../images/company_main.webp") center center /cover no-repeat;
}
.service .sub_main{
  background: url("../images/service_main.webp") center center /cover no-repeat;
}
.concept .sub_main{
  background: url("../images/concept_main.webp") center center /cover no-repeat;
}
.contact .sub_main{
  background: url("../images/contact_main.webp") center center /cover no-repeat;
}
.sub_main{
  height: 50vh;
  position: relative;
}
.sub_main .sub_title{
  position: absolute;
  width: fit-content;
  height: fit-content;
  bottom: 30%;
  margin: auto;
}
.sub_main .bg_font{
  color: #fff;
  font-size: clamp(.34rem,4vw,.5rem);
  opacity: 1;
}
.sub_main .bg_font::before{
  background-color: #fff;
}
.sub_main p{
  text-align: right;
  color: #fff;
}
#sub_page .bg_font + h2{
  text-align: center;
}
.message img{
  width: 50%;
}
.message p{
  width: 44%;
  line-height: .3rem;
}
.second_title{
  margin-bottom: .5rem;
}
dl{
  background: #1199ed;
  border-bottom: 1px solid #ccc;
  border-right: 1px solid #ccc;
}
dt{
  width: 30%;
  color: #fff;
  padding: .2rem;
}
dd{
  width: 70%;
  padding: .2rem;
  background: #fff;
}
.profile dl:nth-child(3){
  border-top: 1px solid #ccc;
}
.profile .wrap dl:nth-child(2){
  border-bottom: none;
  border-top: 1px solid #ccc;
}
/*service*/
.service{
  background: #f1f1f1;
}
.bg_white{
  background: #fff;
  padding: .5rem;
}
.service_area .flex{
  margin-bottom: .5rem;
}
.service_area .flex h3{
  font-weight: bold;
  border-bottom: 1px solid #999;
  margin-bottom: .14rem;
  line-height: .4rem;
}
.service_area .flex > div{
  width: 50%;
}
.service_img{
  height: 300px;
}
.service_area img{
  width: 90%;
  display: block;
  margin-left: auto;
  height: 100%;
}
.category{
  margin-bottom: .5rem;
}
.service_area h2{
  margin-bottom: .2rem;
}
.service_area .gothc{
  line-height: .3rem;
}

/*concept*/
.box{
  display: flex;
  flex-direction: row;
  align-items: center;
}
.box + .box{
  margin-top: 80px;
}
.box_body{
  width: 50%;
  padding: 0 20px;
}
.box h2{
  font-size: 20px;
  text-transform: uppercase;
}
.box p{
  margin-top: 20px;
  line-height: .3rem;
}
figure{
  width: 50%;
  height: 300px;
}
figure img{
  width: 100%;
  object-fit: cover;
  height: 100%;
}
.box.reverse{
  flex-direction: row-reverse;
}
h2.title{
  text-align: center
}

/*contact*/
.contact .half{
  line-height: .3rem;
  margin-bottom: .5rem;
}
.border_box{
  width: 50%;
  margin: 0 auto;
  border: 1px solid #1199ed;
  text-align: center;
}
.border_box a{
  background: #1199ed;
  color: #fff;
  font-size: .24rem;
  padding: .5rem 0;
  display: block;
  transition: .3s;
}
.border_box span{
  display: block;
  font-size: .16rem;
}
.border_box a:hover{
  opacity: .8;
}
/*form*/
form{
  max-width: 640px;
  width: 80%;
  margin: 0 auto;
}
form div{
  margin-bottom: .4rem;
}
label{
  display: block;
}
input[type="text"]
,input[type="mail"]
,input[type="tel"]
,textarea{
  background: #f2f2f2;
  border: none;
  width: calc(100% - .2rem);
  padding: .2rem .1rem;
  outline: none;
}
::placeholder{
  color: #ccc;
}
form .button{
  border: none;
  transition: .8s;
  margin: 0 auto;
}
form .button:hover{
  background: #1199ed;
  color: #fff;
  transition: .8s;

}
form .button:hover:before
,form .button:hover::after{
  border:none;
}

@keyframes slide-flow {
   0% {transform: translateX(0);}
100% {transform: translateX(-100%);}
}

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

  /*header*/
  header{
    padding: .2rem;
    width: calc(100% - .4rem);
  }
  header .logo{
    width: 55%;
    z-index: 100;
  }
  .pc
  ,.estimate_button{
    display: none;
  }
  .sp {
    width: 50vw;
    display: block;
  }

  /*　ハンバーガーメニューボタン　*/
  .hamburger {
    display : block;
    position: fixed;
    z-index : 3;
    right : 20px;
    top   : 20px;
    width : 42px;
    height: 42px;
    cursor: pointer;
    text-align: center;
  }
  .hamburger span {
    display : block;
    position: absolute;
    width   : 30px;
    height  : 2px ;
    left    : 6px;
    background : #1199ed;
    -webkit-transition: 0.3s ease-in-out;
    -moz-transition   : 0.3s ease-in-out;
    transition        : 0.3s ease-in-out;
  }
  .hamburger span:nth-child(1) {
    top: 10px;
  }
  .hamburger span:nth-child(2) {
    top: 20px;
  }
  .hamburger span:nth-child(3) {
    top: 30px;
  }

  /* スマホメニューを開いてる時のボタン */
  .hamburger.active span:nth-child(1) {
    top : 16px;
    left: 6px;
    background :#1199ed;
    -webkit-transform: rotate(-45deg);
    -moz-transform   : rotate(-45deg);
    transform        : rotate(-45deg);
  }
  .hamburger.active span:nth-child(2),
  .hamburger.active span:nth-child(3) {
    top: 16px;
    background :#1199ed;
    -webkit-transform: rotate(45deg);
    -moz-transform   : rotate(45deg);
    transform        : rotate(45deg);
  }

  /* メニュー背景　*/
  nav.globalMenuSp {
    position: fixed;
    z-index : 2;
    top  : 0;
    left : 0;
    color: #fff;
    background: rgba( 71,70,73,0.8 );
    text-align: center;
    width: 100%;
    transform: translateX(100%);
    transition: all 0.6s;
    height: 100%;

  }
  nav.globalMenuSp ul {
    margin: 0 auto;
    padding: 20vh 0;
    width: 100%;
    height: 100%;
    background: #fff;
  }
  nav.globalMenuSp ul li {
    list-style-type: none;
    padding: .1rem .2rem;
    width: calc(100% - .4rem);
    transition: .4s all;
    border-bottom: 1px solid #ccc;
    text-align: left;
  }
  nav.globalMenuSp ul li:last-child {
    padding-bottom: 0;
  }
  nav.globalMenuSp ul li:hover{
    background :#ddd;
  }
  nav.globalMenuSp ul li a {
    display: block;
    color: #333;
    padding: 1em 0;
    text-decoration :none;
  }
  /* クリックでjQueryで追加・削除 */
  nav.globalMenuSp.active {
    opacity: 100;
    display: block;
    transform: translateX(0%);
  }

    
    @keyframes bugfix {
    from {
      padding: 0;
    }
    to {
      padding: 0;
    }
    }
    
  /*footer*/
  footer{
    padding: .2rem 0;
  }
  footer ul.flex{
    display: none;
  }

  /*共通*/
  section{
    margin-bottom: .5rem;
  }

  /*index*/
  .top_main{
    height: 44vh;
  }
  .bg_half img{
    width: 100%;
  }
  .alternating{
    display: flex;
    flex-wrap: wrap-reverse;
  }
  .alternating .wrap{
    position: static;
    margin-bottom: .3rem;
  }
  .alternating .wrap > div{
    width: 100%;
  }
  .alternating_frame .alternating:nth-child(2) .wrap > div{
    width: 100%;
  }
  .bg_blue_linear{
    background: linear-gradient(180deg, #fff 5%, #1199ed 5%);
  }
  .bg_blue_linear li h3{
    overflow-x: hidden;
    text-overflow: ellipsis;
  }
  .bg_blue_linear li p{
    overflow-x: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3; /* 任意の行数を指定 */
  }
  .bg_blue_linear .wrap{
    padding-bottom: .5rem;
  }
  /*スライダー*/
  .slide{
    width: 200px;
  }

  /*common*/
  .common .flex{
    flex-flow: column;
  }
  .common .flex p{
    width: 96%;
    margin-bottom: .3rem;
  }
  .common .button{
    min-width: 230px;
  }
  .common .button:first-child{
    margin-bottom: .2rem;
  }

  /*service*/
  .sub_main{
    height: 30vh;
  }
  .bg_font{
    letter-spacing: .1rem;
  }
  .bg_font::before{
    width: 50px;
  }
  .bg_white{
    padding: .4rem .2rem;
    width: calc(96% - .4rem);
  }
  .service_area .flex{
    flex-flow: column;
  }
  .service_area .flex > div{
    width: 100%;
    margin-bottom: .2rem;
  }
  .service_img{
    height: 220px;
  }
  .service_area img{
    width: 100%;
    height: 100%;
  }

  /*concept*/
  .half{
    width: 96%;
  }
  .box
  ,.box.reverse{
    flex-flow: column;
  }
  .box_body{
    width: 96%;
    margin-bottom: .2rem;
  }
  figure{
    width: 100%;
    height: 250px;
  }
  .box + .box{
    margin-top: 50px;
  }

  /*company*/
  .message .flex{
    flex-flow: column;
  }
  .message img{
    width: 100%;
    margin-bottom: .2rem;
  }
  .message p{
    width: 100%;
  }
  .profile .wrap dl{
    flex-wrap: wrap;
  }
  .profile dt
  ,.profile dd{
    width: 100%;
  }
  .profile dd{
    background: #f1f1f1;
  }
  .flex p span{
    display: block;
    text-align: right;
  }

  /*contact*/
  .border_box{
    width: 100%;
  }
  form{
    width: 100%;
  }
  


}
  
