@charset "utf-8";
/* CSS Document */

/*header
========================================================*/
#header{
	display: flex;
	width: 100%;
	height: 0;
	padding: 5px 20px;
	justify-content: space-between;
	position: fixed;	
	z-index: 999;
}

h1{
	display: block;
	width: 13vw;
	height: 13vw;
	aspect-ratio: 1 / 1;
	min-width: 200px;
	transition: .4s all;
	z-index: 999;

}
h1 img{
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: top
}
.change h1{
	width: 10vw;
	min-width: 120px;	
	transition: .4s all;
}
.head-right{
	display: flex;
    flex-direction: column;
}
.toptel a{
	color:#fff;
	font-size: clamp(25px, 3vw,40px);
	font-weight: 600;
	text-shadow: 0 0 4px #FBB03B;
}
.change .toptel a{
	color:#F15A24;
	text-shadow: 0 0 4px #fff;
	font-size: clamp(20px, 3vw,35px);
}
.toptel a span{
	font-size: clamp(18px, 2.5vw,30px);
}


.openbtn{
	position:relative;
	top:10px;
	right: 0;
	cursor: pointer;
	height: 20vw;
   	max-height: 100px;
	aspect-ratio: 3 / 2;
	background: url("../img/openbtn.png");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	z-index: 999;
	transition: .6s all;
}


.openbtn span{
    display: inline-block;
    transition: all .4s;/*アニメーションの設定*/
    position: absolute;
	width: 100%;
  }
.openbtn span::after {
    content: "Menu";
    position: absolute;
    top: 18px;
    left: 37%;
    color: #333;
    font-size:clamp(1rem, 0.537rem + 1.95vw, 2rem);
    font-weight: 600;
	transition: .4s all;
}
.change .openbtn{
	height: 15vw;
   	max-height: 80px;
}
.change .openbtn span::after{
    font-size:clamp(1rem, 0.676rem + 1.37vw, 1.7rem);	    
	top: 13px;
	transition: .4s all;
}
.openbtn.active{
	top: -50px;
    left: auto;
	right: -20px;
	transition: .6s all;
}
.openbtn.active span::after {
	content:"Close";
}
#g-nav{
    position:fixed;
    z-index: 888;
	top:-120%;
    right:0;
	width:500px;
    height: 100vh;
	background:#fff;
	background-image: url("../img/nav_bg.jpg");
	background-position: bottom;
	background-repeat: no-repeat;
	transition: all 0.6s;
	outline: 5px solid #FBB03B;
	font-weight: bold;
	font-size: clamp(16px,2.5vw,20px);
}
#g-nav::before{
	position: absolute;
	content: '';
	width: 100%;
	height: 100%;
	top:0;
	background: rgba(255,255,255,.60);
	z-index: -1
}

/*アクティブクラスがついたら位置を0に*/
#g-nav.panelactive{
    top: 0;
}
/*ナビゲーション*/
#g-nav ul {
	width: 80%;
	margin: 120px auto 30px;
	letter-spacing: 0.1em;
}

#g-nav li{
	border-bottom: 2px dotted #FBB03B;
	padding-left: 30px;
	position: relative;
}


#g-nav li a{
	color: #333;
	text-decoration: none;
	padding:10px;
	display: block;
	text-transform: uppercase;
	position: relative;
}
#g-nav li a::before{
	position: absolute;
	content: '\f5aa';
	font-weight: 600;
	font-family: "Font Awesome 6 Free";
	left: -20px;
	bottom:5px;
	font-size: 18px;
	color: #FBB03B;
	transform: rotate(45deg);
	transition: 0.8s;
}
#g-nav li:hover a::before{
	transition: 1s linear;
	left: 90%;
}
.bgleft:after {
 	content: '';
    /*絶対配置で位置を指定*/
 	position: absolute;
 	top: 0;
 	left: 0;
    /*色や形状*/
	z-index: -1;
 	background: rgba(255,214,178,1.00);/*背景色*/
 	width: 90%;
	height: 100%;
    /*アニメーション*/
 	transition: transform 1s cubic-bezier(0.8, 0, 0.2, 1) 0s;
 	transform: scale(0, 1);
	transform-origin: right top;
}

/*hoverした際の形状*/
.bgleft:hover:after{
	transform-origin:left top;
	transform:scale(1, 1);
}
.g-tel{
	display: block;
	font-size: clamp(20px,3vw,30px);
	width: 80%;
	padding: 15px 0;
	color: #FBB03B;
	background: rgba(255,255,255,.7);
	border: 1px solid #FBB03B;
	margin: 15px auto;
	position: relative;
	}
.g-tel.bgleft:after{
	width: 100%;
}

@media(max-width:980px){
	h1{
		width: 13vw;
		height: 13vw;
		min-width: 150px;
		transition: .4s all;
	}	
	.openbtn{
		height: 70px;
	}
	.openbtn span::after {
		top: 13px;
		left: 37%;
		color: #333;
		font-size:clamp(20px,2vw,30px);
		font-weight: 600;
	}	
	.change .openbtn{
		height: 70px;
	}
	.change .openbtn span::after{
		font-size:clamp(20px,2vw,30px);	    
		top: 13px;
		transition: .4s all;
	}	
	#g-nav{
		position:fixed;
		z-index: 888;
		top:-120%;
		right:0;
		width:100%;
	}
}
@media(max-width:650px){
	#header{
		padding: 0;
		padding-right: 10px;
	}	
	h1{
		width: 20vw;
		height: 20vw;
		min-width: 80px;
		transition: .4s all;
	}	
	.change h1{
		width: 15vw;
		min-width: 80px;	
	}		
	.toptel a{
		display: none;
	}	
	.openbtn{
		top:5px;
		right: 0;
		height: 15vw;
		max-height: 70px;
	}
	.openbtn span{
		display: inline-block;
		transition: all .4s;/*アニメーションの設定*/
		position: absolute;
		width: 100%;
	  }
	.openbtn span::after {
		top: 2.5vw;
		left: 27%;
		color: #333;
		font-size:clamp(18px,2vw,30px);
	}	
	.change .openbtn{
		height: 13vw;
		max-height: 60px;
	}
	.change .openbtn span::after{
		font-size:clamp(16px,2vw,26px);   
		top: 2.3vw;
		transition: .4s all;
	}		
	.openbtn.active{
		top: 0;
		left: auto;
		right: 0;
		transition: .6s all;
	}	
}
/*Footer
========================================================*/
footer{
	display: flex;
}
.f_info,.map{
	width: 50%;
}
.f_info .flex{
	padding: 20px 0;
	display: flex;
	justify-content: center;
	align-items: center;
}
.f_logo{
	width: 35%;
	max-width: 300px;
}
.f_logo img{
	object-fit: contain;
	width: 100%;
	height: 100%;
}
.f_info h2{
	font-size: clamp(1.5rem, 1.268rem + 0.98vw, 2rem);
	margin-bottom: 15px;
}
.copy{
	font-size: 14px;
	padding: 5px 15px 10px;
	text-align: end;
}
@media(max-width:767px){
footer{
	flex-direction: column;
}
.f_info,.map{
	width: 100%;
}	
}
@media(max-width:650px){
	footer{
		margin-bottom: 45px;
	}	
}
@media(max-width:450px){
.f_info .flex{
	flex-direction: column;
	text-align: center;
}	
}
/*footer spbtn-----------*/
@media(min-width:651px){
	#spnavi{
		display: none;
	}	
}

 #spnavi {
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    background: #fff;
	border-top: 2px solid #009A3E;
  }
  #spnavi ul {
  }
  #spnavi ul li {
    width: 100%;
  }
  #spnavi ul li a {
    display: block !important;
    padding: 5px 0;
    text-align: center;
    color: #009A3E;
    font-size: 18px;
    line-height: 2;
  }
  #spnavi ul li a.sp_tel:before {
    font-family: "Font Awesome 6 Free";
    content: "\f095";
    font-weight: 900;
  }
  #spnavi ul li a span {
    font-size: 18px;
	margin-left: 5px;  
  }


/*top　Firstview
========================================================*/
.top_fv{
	padding: 0;
	width: 100%;
	aspect-ratio: 4 / 3;
	max-height: 100vh;
	overflow: hidden;
	background: #FBB03B;
}
.t_slidewrap{
	clip-path: polygon(
		60% 0%,  /* 屋根の頂点 */
		100% 30%, /* 屋根の右端 */
		100% 100%, /* 右下 */
		0% 100%,  /* 左下 */
		0% 40%   /* 屋根の左端 */
	);
}
.catch{
	position: absolute;
	content: '';
	width: 80%;
	aspect-ratio: 542 / 241;
	max-width: 960px;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
.catch img{
	object-fit: contain;
	width: 100%;
	height: 100%;
}


/*toppage
========================================================*/
.sec1_img,.sec1_txt{
	width: 50%;
	padding: 0 3%;
}
.sec1_txt .c_title{
	font-size: clamp(16px,2vw,20px);
}
@media(max-width:950px){
	.t_sec1 .flex-box{
		flex-direction: column-reverse;
	}		
	.sec1_img{
		width: 90%;
		padding: 0 3%;
		margin: 15px auto 0;
	}	
	.sec1_txt{
		width: 100%;
		padding: 0 0;
	}	
}



.t_sec2{
	background: #FBB03B;
	z-index: 0;
}
.t_sec2::before{
	position: absolute;
	content: '';
	width: 100%;
	height: 100%;
	top: 0;
	right: 0;
	background: url("../img/bg_img2.png");
	background-size: contain;
	background-position: right top;
	background-repeat: no-repeat;
	z-index: -1
}

.link_box{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.link_box_child{
	width: calc(95% / 3 );
}


figure.effect-chico{
	display: block;
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 1;
	background: #4c392c;
	border-radius: 30px;
	overflow: hidden;
	margin-bottom: 20px;
}
figure.effect-chico img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	transition: opacity 0.35s, transform 0.35s;
	transform: scale(1.12);
	opacity: 0.5;
}

figure.effect-chico:hover img {
	opacity: 0.9;
	transform: scale(1);
}

figure.effect-chico figcaption {
	width: 100%;
	padding: 3em 3vw;
	position: absolute;
	top:0;
	left: 0;
	bottom: 0;
	right: 0;
	backface-visibility: hidden;
}

figure.effect-chico h4{
	color: #fff;
	font-weight: 600;
	font-size: clamp(20px,2.3vw,28px);
	border-bottom: solid 1px #eee;
}
figure.effect-chico h4 .en{
	font-family: "Zen Old Mincho", serif;
	text-transform: uppercase;
	font-size: 0.9rem;
}
figure.effect-chico p{
	position: absolute;
	top: 60%;
	left: 30px;
	right: 30px;
	color: #fff;
	font-size: 0.8em;
}

figure.effect-chico h5 {
	position: absolute;
	bottom: 30px;
	right: 30px;
	font-size: 0.9em;
	color: #fff;
	margin: 0 auto;
	text-align: right;
}

figure.effect-chico a{
	position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
@media(max-width:750px){
	.link_box{
		flex-direction: column;
	}
	.link_box_child{
		width: 100%;
		max-width: 300px;
	}
	.link_box_child:nth-child(2){
		margin: 0 auto;
	}
	.link_box_child:nth-child(3){
		margin-left: auto;
	}
}
@media(max-width:450px){
	.link_box_child:nth-child(1),
	.link_box_child:nth-child(3){
		margin: 0 auto;
	}	
}

/*下層
========================================================*/
.kfv{
	height: 30vh;
	background: #FBB03B;
	z-index: 0;
}
.kfv h2{
	position: absolute;
	content: '';
	top:50%;
	left: 30%;
	transform: translate(-50%,-50%);
	color: #fff;
	font-size: clamp(25px,3vw,38px);
		
}
.kfv h2 span{
	display: block;
	font-size: 18px;
	line-height: 1.2;
}
.kfv img{
	position: absolute;
	content: '';
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%;
	z-index: -1;
	top: 0;
	left: 35%;
	clip-path: polygon(
		0% 0%,  /* 屋根の頂点 */
		100% 0, /* 屋根の右端 */
		100% 90%, /* 右下 */
		0% 90%,  /* 左下 */
		10% 90%   /* 屋根の左端 */
	);	
}
.breadcrumbs{
	position: absolute;
	right: 15%;
	bottom:1%;
	z-index: 0;
}
.breadcrumbs ul{
	display: flex;
	color: #fff;
	font-size: 16px;
}
.breadcrumbs li {
	display: inline-block;
	position: relative;
	padding-right: calc(16px + 8px);
	margin-right: 8px;
	color: #333;
}
.breadcrumbs li::before {
	content: '›';
	width: 1em;
	height: 1em;
	line-height: 1;
	text-align: center;
	color: inherit;
	position: absolute;
	top: 50%;
	right: 0;
	-webkit-transform: translateY(-50%);
	        transform: translateY(-50%);
}
.breadcrumbs li:last-child {
	margin-right: 0;
	padding-right: 0;
	color: #fff;
}
.breadcrumbs li:last-child::before {
	content: normal;
}
@media (max-width: 980px){
	.kfv{
		height: 25vh;
	}
	.kfv img{
		clip-path: polygon(
			0% 0%,  /* 屋根の頂点 */
			100% 0, /* 屋根の右端 */
			100% 86%, /* 右下 */
			0% 86%,  /* 左下 */
			13% 86%   /* 屋根の左端 */
		);	
	}	
}

@media (max-width: 450px){
	.breadcrumbs {
		font-size: 14px;
		bottom:0;		
	}
	.kfv h2{
		left: 28%;
	}
	.kfv img{
		clip-path: polygon(
			0% 0%,  /* 屋根の頂点 */
			100% 0, /* 屋根の右端 */
			100% 86%, /* 右下 */
			0% 86%,  /* 左下 */
			15% 86%   /* 屋根の左端 */
		);	
	}	
}

/*Service
------------------------------*/
.s_txt{
	width: 55%
}
.s_img{
	width: 40%;
}
@media (max-width: 750px){
	.s_txt{
	width: 100%
	}
	.s_img{
		width: 80%;
		margin:15px auto;
	}
	
}
.mlist{
	display: flex;
	flex-wrap: wrap;
}
.mlist li{
	width: 380px;
	margin-left: 5px;
	list-style:inside
}

.s_sec2{
	background: #FFE4CA;
	z-index: 0;
}
@media (max-width: 750px){
	.s_sec2 .flex-box{
		flex-direction: column-reverse;
	}
}

.min-box{
	margin: 20px 0;
	padding: 15px;
	background: #FFF4ED
}
.min-box ul{
  display: flex;
  flex-wrap: wrap;
}
.min-box li{
	width: 180px;
}

.linkbox{
	padding-bottom: 30px;
}
.linkbox ul{
	width: 100%;
	display: flex;
	justify-content: space-between;
}
.linkbox ul li{
	width: calc(100% / 3 - 20px);	
	text-align: center;
	border: 2px solid #fbb03b;
	padding: .5rem 1rem;
}
.linkbox ul li a{
	display: block;
}

.event{
	background: #fff;
	border-radius: 30px;
	padding: 3rem;
	position: relative;
}
.event::before{
	position: absolute;
	content: '';
	height:0;
    width:0;
    pointer-events:none;
	border: solid transparent;
    border-color: rgba(230, 230, 230, 0);
    border-top-width:10px;
    border-bottom-width:10px;
    border-left-width:30px;
    border-right-width:30px;
    margin-top: -10px;
    border-right-color:#fff;
    right:100%;
    top:21%;
}

/*会社概要
------------------------------*/
.a_table{
	border-collapse:separate;
	border-spacing: 0 6px;
}
.a_table tr{
}
.a_table tr:last-child{
	border-bottom: none !important;
}
.a_table th,
.a_table td{
	padding: 18px 0;
	letter-spacing: 0.08em;
}
.a_table th{
	position: relative;
	background: #FBB03B;
	width: 200px;
	font-weight: 500;
	color: #fff;
}
.a_table th::after{
    position: absolute;
    top: calc(50% - 10px);
    right: -8px;
    display: block;
    width: 0;
    height: 0;
    content: "";
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-left: 10px solid #FBB03B;
}
.a_table td{
	padding-left: 20px;
	padding-right: 20px;
	background: #fff;
	border: 1px solid #FBB03B;
}
@media (max-width: 750px){
	.a_table tr{
		border-width: 4px;
	}
	.a_table th,
	.a_table td{
		padding: 18px 0;
		font-size: 0.9rem;
	}
	.a_table th{
		width: 120px;
	}
	.a_table td{
		padding-left: 20px;
		padding-right: 20px;
	}
}
.main_map{
	width: 95%;
	height: 35vh;
	margin: 0 auto;
	border: 2px solid #FBB03B;
}
.main_map iframe{
	object-fit: cover;
}









