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

/*********************************************************

					　　　　初期設定

**********************************************************/

html{
	font-size: 16px;
	box-sizing: border-box;
	scroll-behavior: smooth;
}

body{
	line-height: 1.5;
	margin: 0 auto;
	width: 100%;
	display: inline-block;
	font-family: 'Noto Sans JP', sans-serif;
	-webkit-font-smoothing: antialiased;
}

.pc{display: block;}

.sp{display: none;}

.inner{
	width: 92%;
	max-width: 1280px;
	margin: 0 auto;
}

.sec-title{
	position: relative;
	font-size: 32px;
	line-height: 1;
	font-weight: 700;
	color: #111;
	padding: 1.65em 0 0.3em;
	border-bottom: solid #999 1px;
	z-index: 1;
}

.sec-title::before{
	content: '';
	position: absolute;
	left: 0.1em;
	bottom: 0.1em;
	z-index: -1;
	color: #F39801;
	font-size: 100px;
	line-height: 1;
	font-weight: 800;
	opacity: 15%;
}

.sec-title.news{border-bottom: 0;}

.sec-title.news::before{content: 'News';}
.sec-title.feature::before{content: 'The feature';}
.sec-title.products::before{content: 'Our Products';}
.sec-title.work::before{content: 'Work Flow'; color: #fff;}
.sec-title.network::before{content: 'Network';}
.sec-title.factory::before{content: 'Yawata Factory'; color: #fff; white-space: nowrap;}

.readtext{
	text-align: justify;
	line-height: 2;
	color: #111;
	margin-top: 0.9em;
}

.ex{
	transform: translateY(5vw);
	opacity: 0;
	transition: ease-in-out 0.5s;
}

.ex.active{
	transform: translateY(0);
	opacity: 1;
}





/*********************************************************

					ここからheader

**********************************************************/
.header{
	position: relative;
	width: 100%;
	padding: 40px 0 160px;
	overflow: hidden;
	z-index: 1;
	background: linear-gradient(135deg, #f39801, #ff7864, #f39801, #ff7864);
	background-size: 400% 400%;
	animation: gradient 15s ease infinite;
}

@keyframes gradient {
	0%   { background-position: 0% 50%; }
	50%  { background-position: 100% 50%; }
	100% { background-position: 0% 50%; }
}

.header a:hover{
	opacity: 0.7;
	transition: 0.3s ease-in-out;
}

.header h1{
	position: absolute;
	top: 0;
	left: 0;
	color: #fff;
	transform: translateY(-200%);
}

.header-flex{
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content:flex-end;
}

.header-logo{
	position: absolute;
	left: 0;
	top: -30px;
	width: 220px;
	height: auto;
}

.header nav{
	width: calc(100% - 250px);
}

.header nav ul{
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
}

.header nav ul li{margin-left: 1.5em;}

.header nav ul li a{
	color: #fff;
	font-weight: 600;
	opacity: 1;
	transition: 0.3s ease-in-out;
}

.header nav ul li a:hover{
	opacity: 0.7;
}



/*********************************************************

					ここからsec01

**********************************************************/

.sec01{
	width: 100%;
	height: auto;
	padding: 80px 0 0 0;
}

.sec01 .inner{
	position: relative;
	z-index: 1;
}


.sec01 h2{
	position: absolute;
	top: 0;
	left: 0;
	color: #fff;
	z-index: -1;
	transform: translateX(-100vw);
}

.sec01-titlebox{
	position: relative;
	width: 100%;
	height: auto;
	max-height: 562.5px;
	aspect-ratio: 16 / 9;
	margin-top: -200px;
	z-index: 1;
	font-size: 3.47vw;
	font-size: min(4.4vw,50px);
	padding-top: 3.7em;
}

.sec01-titlebox::before{
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	max-width: 1000px;
	background: url(../img/sec01-img01.webp)no-repeat right top / cover;
	transform: translateX(-20%);
	opacity: 0;
	z-index: -1;
	transition: ease-in-out 1s 3s;
}


.sec01.opened .sec01-titlebox::before{
	transform: translateX(0);
	opacity: 1;
}

.boxtext01{
	font-size: 16px;
	line-height: 1.4;
	font-weight: 600;
	color: #fff;
	background: #111;
	display: inline-block;
	padding: 0.1em 0.5em 0.2em;
	border-radius: 0.25em;
	margin-bottom: 1em;
}

.sec01-title{
	font-size: 1em;
	font-weight: 700;
	line-height: 1.2;
	color: #111;
	background: #fff;
	display: inline-block;
	padding: 0.1em 0.3em 0.2em;
}
.sec01-title.mb05{
	margin-bottom: 0.6em;
}

.sec01-title-wrap{
	display: inline-block;
	transform: translateX(-101%);
	overflow: hidden;
}

.sec01-title-wrap .sec01-title{
	transform: translateX(101%);
}

.sec01-titlebox .sec01-title-wrap:nth-of-type(1),
.sec01-titlebox .sec01-title-wrap:nth-of-type(1) .sec01-title{
	transition: ease-in-out 0.9s 0.1s;
}
.sec01-titlebox .sec01-title-wrap:nth-of-type(2),
.sec01-titlebox .sec01-title-wrap:nth-of-type(2) .sec01-title{
	transition: ease-in-out 0.9s 0.9s;
}
.sec01-titlebox .sec01-title-wrap:nth-of-type(3),
.sec01-titlebox .sec01-title-wrap:nth-of-type(3) .sec01-title{
	transition: ease-in-out 0.9s 1.7s;
}

.sec01.opened .sec01-title-wrap,
.sec01.opened .sec01-title{
	transform: translateX(0);
}







/*********************************************************

					ここからsec02

**********************************************************/

.sec02{
	width: 100%;
	padding: 80px 0 0 0;
}

.sec02-table{
	font-size: 16px;
	width: 100%;
	margin-top: 1.3em;
}

.sec02-table td,
.sec02-table th{
	font-weight: 400;
	padding: 1.3em 0;
	border-top: solid #999 1px;
}

.sec02-table th{width: 10em;}

.sec02-table tr:last-of-type td,
.sec02-table tr:last-of-type th{
	border-bottom: solid #999 1px;
}





/*********************************************************

					ここからsec03

**********************************************************/

.sec03{
	position: relative;
	width: 100%;
	padding: 120px 0 200px 0;
}

.sec03-wrap{
	position: relative;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.sec03-textwrap{
	padding: 30px 0 60px;
	width: 57%;
}

.sec03 h3{
	font-size: 42px;
	font-size: min(4vw,42px);
	line-height: 1.3;
	font-weight: 900;
	color: #F39801;
}

.sec03-wrap img{
	width: 28%;
	height: auto;
	z-index: 2;
	transform-origin: bottom right;
	transform: scale(1.3) ;
}

.sec03-wrap img.ex{
	transform:scale(1.3) translateY(5vw);
	opacity: 0;
	transition: ease-in-out 0.5s;
}

.sec03-wrap img.ex.active{
	transform:scale(1.3) translateY(0);
	opacity: 1;
}

.sec03-flex{
	font-size: 16px;
	font-size: min(1.73vw,16px);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 2em 0;
}

.sec03-flex-wrap{
	position: relative;
	width: calc(48% - 2.5em);
	height: auto;
	aspect-ratio: 100 / 55;
	margin-right: 2.5em;
	margin-bottom: 5em;
	background: #ccc;
}

.sec03-flex .sec03-flex-wrap:nth-of-type(2n){
	transition: 0.5s ease-in-out 0.25s;
}

.sec03-flex-wrap.b1{background: url(../img/sec03-img02a.webp)no-repeat center / cover;}
.sec03-flex-wrap.b2{background: url(../img/sec03-img02b.webp)no-repeat center / cover;}
.sec03-flex-wrap.b3{background: url(../img/sec03-img02c.webp)no-repeat center / cover;}
.sec03-flex-wrap.b4{background: url(../img/sec03-img02d.webp)no-repeat center bottom / cover;}

.sec03-flex-wrap a{
	position: absolute;
	right: -2.5em;
	bottom: -5em;
	display: inline-block;
	background: #ccc;
	color: #fff;
	font-weight: 500;
	line-height: 1.8;
	text-align: justify;
	width: 100%;
	max-width: 430px;
	padding: 0.6em 1em 0.6em 1em;
	box-shadow: 0.5em 0.5em 0.8em rgba(0, 0, 0, 0.2);
	z-index: 1;
	cursor: pointer;
}

.sec03-flex-wrap a span{
	font-weight: 800;
	font-size: 1.3em;
}

.sec03-flex-wrap a::after{
	content: '';
	position: absolute;
	right: 1em;
	top: 1.3em;
	height: 0.8em;
	width: auto;
	aspect-ratio: 9/5;
	background: url(../img/arrow-img01.webp)no-repeat center / contain;
}

.sec03-flex-wrap.b1 a{background: linear-gradient(to right, #0ad800, #008816);}
.sec03-flex-wrap.b2 a{background: linear-gradient(to right, #0093ff, #0044e2);}
.sec03-flex-wrap.b3 a{background: linear-gradient(to right, #f39801, #ff7864);}
.sec03-flex-wrap.b4 a{background: linear-gradient(to right, #ff58da, #f33c89);}

.sec03-flex-wrap a::before{
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #fff;
	transform-origin: top right;
	transform: scale(0,1);
	transition: transform ease-in-out 0.5s;
	z-index: -1;
}

.sec03-flex-wrap.b1 a:hover{ color: #008816;}
.sec03-flex-wrap.b2 a:hover{ color: #0044e2;}
.sec03-flex-wrap.b3 a:hover{ color: #ff7864;}
.sec03-flex-wrap.b4 a:hover{ color: #f33c89;}

.sec03-flex-wrap.b1 a:hover::after{background: url(../img/arrow-img01a.webp)no-repeat center / contain;}
.sec03-flex-wrap.b2 a:hover::after{background: url(../img/arrow-img01b.webp)no-repeat center / contain;}
.sec03-flex-wrap.b3 a:hover::after{background: url(../img/arrow-img01c.webp)no-repeat center / contain;}
.sec03-flex-wrap.b4 a:hover::after{background: url(../img/arrow-img01d.webp)no-repeat center / contain;}

.sec03-flex-wrap a:hover::before{
	transform-origin: top left;
	transform: scale(1,1);
}

.sec03-back{
	position: absolute;
	bottom: 0;
	right: calc(50% - 50vw);
	width: 95%;
	max-width: 950px;
	opacity: 0.2;
	z-index: -1;
}






/*********************************************************

					ここからsec04

**********************************************************/

.sec04{
	position: relative;
	width: 100%;
	padding: 120px 0;
}

.sec04-flex{
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 50px 0;
	margin-top: 60px;
}

.sec04-flex div{
	width: 47.5%;
}

.sec04-flex div:nth-of-type(2n){
	transition: ease-in-out 0.5s 0.25s;
}


.sec04-flex div img{
	width: 100%;
	height: auto;
}

.sec04-flex div h3{
	font-size: 1.15em;
	font-weight: 600;
	color: #005BAC;
	border-bottom: solid #005BAC 1px;
	padding-bottom: 0.2em;
	margin-top: 1em;
}

.sec04-flex div .readtext{
	margin-top: 0.5em;
}






/*********************************************************

					ここからsec05

**********************************************************/

.sec05{
	position: relative;
	width: 100%;
	padding: 120px 0;
	background: #F39801;
	overflow: hidden;
}

.sec05-wrap{
	position: relative;
	width: 80%;
	margin: 60px 0 0 10%;
	z-index: 1;
}

.sec05-wrap::before{
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	width: 50%;
	height: auto;
	aspect-ratio: 1/1;
	background: url(../img/sec05-img03.webp)no-repeat center / contain;
	z-index: -1;
	transform: translate(-90%,-50%);
}

.sec05-wrap::after{
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 40%;
	height: auto;
	aspect-ratio: 100/87;
	background: url(../img/sec05-img02.webp)no-repeat center / contain;
	z-index: -1;
	transform: translate(60%,-50%);
}


.sec05-img01{
	width: 100%;
	height: auto;
}





/*********************************************************

					ここからsec06

**********************************************************/

.sec06{
	position: relative;
	width: 100%;
	padding: 120px 0;
	background: url(../img/sec06-back01.webp)no-repeat right / cover;
	overflow: hidden;
}

.sec06-flex{
	position: relative;
	width: 100%;
	margin-top: 60px;
}

.sec06-flex-wrap{
	width: 55%;
	display: flex;
	justify-content: space-between;
}

.sec06-imgbox{
	width: 48%;
	height: auto;
	aspect-ratio: 10 / 7.5;
}

.sec06-flex-wrap .sec06-imgbox:nth-of-type(2n){
	transition: ease-in-out 0.5s 0.25s;
}

.sec06-imgbox.i1{background: url(../img/sec06-img01.webp)no-repeat center / cover;}
.sec06-imgbox.i2{background: url(../img/sec06-img02.webp)no-repeat center / cover;}

.sec06-img01{
	position: absolute;
	right: 0;
	bottom: -10%;
	width: 40%;
	height: auto;
	z-index: 2;
}





/*********************************************************

					ここからsec07

**********************************************************/

.sec07{
	position: relative;
	width: 100%;
	padding: 120px 0;
	background: #F39801;
	overflow: hidden;
}

.sec07-flex{
	font-size: 16px;
	width: 100%;
	max-width: 1000px;
	margin: 60px auto 0;
	display: flex;
	justify-content: center;
	align-items: center;
}

.sec07-flex-l{
	position: relative;
	margin-right: 3em;
	z-index: 1;
}

.sec07-flex-l::before{
	content: '';
	position: absolute;
	top: 1em;
	left: 50%;
	height: calc(100% - 2em);
	width: 0.4em;
	background: #111;
	z-index: -1;
	transform: translateX(-50%);
}

.sec07-flex-r{
	width: calc(100% - 9em);
}

.sec07-imgbox{
	width: 40%;
	height: 14em;
	background: #ccc;
}

.sec07-imgbox.i1{background: url(../img/sec07-img01.webp)no-repeat center / cover;}
.sec07-imgbox.i2{background: url(../img/sec07-img02.webp)no-repeat center / cover;}
.sec07-imgbox.i3{background: url(../img/sec07-img03.webp)no-repeat center / cover;}
.sec07-imgbox.i4{background: url(../img/sec07-img04.webp)no-repeat center / cover;}
.sec07-imgbox.i5{background: url(../img/sec07-img05.webp)no-repeat center / cover;}

.sec07-textbox{
	width: 56%;
}

.sec07-flex-r-wrap{
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 2em;
}

.sec07-flex-r-wrap.ex{
	transform: translateX(-20%);
}

.sec07-flex-r-wrap.ex.active{
	transform: translateX(0);
}

.sec07-subtitle{
	font-size: 1.3em;
	font-weight: 700;
}

.circle-text{
	font-weight: 600;
	color: #fff;
	width: 6em;
	height: 6em;
	background: #111;
	text-align: center;
	align-content: center;
	margin-bottom: 10em;
	border-radius: 50%;
}

.sec07-flex-l .circle-text:last-of-type{margin-bottom: 0;}
.sec07-flex-r .sec07-flex-r-wrap:last-of-type{margin-bottom: 0;}







/*********************************************************

					ここからfooter

**********************************************************/

.footer{
	position: relative;
	width: 100%;
	padding: 11em 0 3em;
	margin-top: 50em;
	background: #111;
}

.footer .inner{position: relative;}

.footer-menu{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	padding: 2em 0;
	border-bottom: solid 1px #fff;
	gap: 0.5em 0;
}

.footer-menu a{
	color: #fff; 
	font-weight: 600; 
	line-height: 1; 
	padding: 0 1em; 
	transition: ease-in-out 0.3s; 
	opacity: 1;
}

.footer-menu2{
	display: flex;
	font-size: 0.875em;
	padding: 2em 0;
}

.footer-menu2 a{
	position: relative;
	color: #fff; 
	font-weight: 600; 
	line-height: 1; 
	padding: 0 2em 0 1em; 
	margin-right: 1em;
	transition: ease-in-out 0.3s; 
	opacity: 1;
}

.footer-menu a:hover,
.footer-menu2 a:hover{
	opacity: 0.7;
}

.footer-menu2 a::after{
	content: '';
	width: 1em;
	height: 1em;
	display: inline-block;
	margin-left: 0.5em;
	background: url(../img/target_blank.svg)no-repeat center / contain;
	transform: translateY(0.1em);
}

.copyright{font-size: 0.875em; color: #fff; font-weight: 500; padding-left: 1em; margin-top: 1em;}

.footer-logo{
	height: 2em;
	padding-left: 0.8em;
}


.footer-wrap01{
	position: absolute;
	left: 50%;
	top: 0;
	width: 92%;
	max-width: 900px;
	border: solid 2em #F39801;
	background: #fff url(../img/footer-back01.webp)no-repeat right bottom / contain;
	padding: 2em 2em;
	transform: translate(-50%,-100%);
	text-align: center;
}

.footer-text01{
	font-size: 1.75em;
	font-weight: 700;
}

.footer-flex{
	display: flex;
	align-content: center;
	justify-content: center;
	margin-top: 2em;
}

.footer-flex .readtext{
	margin-top: 0;
	line-height: 1.2;
	margin-right: 1em;
}

.mt1{margin-top: 1em; margin-bottom: 2em;}

.linkbtn{
	position: relative;
	background: #F39801;
	font-size: 1.125em;
	font-weight: 600;
	color: #fff;
	border-radius: 0.3em;
	padding: 0.3em 3em 0.4em 1em;
	border: solid #F39801 2px;
	transition: ease-in-out 0.3s;
}
.linkbtn::after{
	content: '';
	position: absolute;
	top: 50%;
	right: 1em;
	width: 1em;
	height: 1em;
	background: url(../img/arrow-img01.webp)no-repeat center / contain;
	display: inline-block;
	transform: translateY(-50%);
	transition: ease-in-out 0.3s;
}

.linkbtn:hover{
	background: #fff;
	color: #F39801;
}

.linkbtn:hover::after{
	background: url(../img/arrow-img01c.webp)no-repeat center / contain;
}



/*********************************************************

				ここからお問い合わせフォーム

**********************************************************/

.contact-form-wrap{
	width: 100%;
	max-width: 700px;
	margin: 1.5em auto 0;
	text-align: left;
}

.form-group{
	margin-bottom: 1.2em;
}

.form-group label{
	display: block;
	font-size: 0.875em;
	font-weight: 600;
	color: #333;
	margin-bottom: 0.4em;
}

.form-group .required{
	color: #e53e3e;
}

.form-group .optional{
	color: #999;
	font-size: 0.85em;
	font-weight: 400;
}

.form-group input,
.form-group textarea{
	width: 100%;
	background: #f7f7f7;
	border: 1px solid #ccc;
	border-radius: 0.4em;
	padding: 0.7em 0.8em;
	font-size: 1em;
	font-family: 'Noto Sans JP', sans-serif;
	color: #333;
	transition: border-color 0.3s, box-shadow 0.3s;
	box-sizing: border-box;
}

.form-group input:focus,
.form-group textarea:focus{
	outline: none;
	border-color: #F39801;
	box-shadow: 0 0 0 3px rgba(243, 152, 1, 0.15);
}

.form-group input.error,
.form-group textarea.error{
	border-color: #e53e3e;
	background: #fff5f5;
}

.form-group textarea{
	resize: none;
}

.form-submit{
	text-align: center;
	margin-top: 1.5em;
}

.submit-btn{
	background: #F39801;
	color: #fff;
	font-size: 1.1em;
	font-weight: 600;
	font-family: 'Noto Sans JP', sans-serif;
	border: 2px solid #F39801;
	border-radius: 0.4em;
	padding: 0.6em 3em;
	cursor: pointer;
	transition: background 0.3s, color 0.3s;
}

.submit-btn:hover{
	background: #fff;
	color: #F39801;
}

.submit-btn:disabled{
	opacity: 0.6;
	cursor: not-allowed;
}

#formMessage{
	margin-top: 1em;
	padding: 0;
	text-align: center;
	font-size: 0.9em;
}

#formMessage.success{
	background: #f0fff4;
	border: 1px solid #c6f6d5;
	color: #276749;
	border-radius: 0.4em;
	padding: 1em;
}

#formMessage.error-msg{
	background: #fff5f5;
	border: 1px solid #fed7d7;
	color: #9b2c2c;
	border-radius: 0.4em;
	padding: 1em;
}

.privacy-notice{
	font-size: 0.75em;
	color: #999;
	margin-top: 1.2em;
	line-height: 1.6;
	text-align: left;
}


/*********************************************************

			   ここからメディアクエリ(SP）

**********************************************************/

@media screen and (max-width: 750px){
	.pc{display: none;}
	.sp{display: block;}

	.header{
		padding: 3.125vw 0;
		height: auto;
		z-index: 10;
	}

	.header-flex{
		justify-content: space-between;
		z-index: 2;
	}

	.active .header-flex{
		position: fixed;
		width: 92%;
		top: 3.125vw;
		left: 4%;
	}

	.header-logo{
		position: relative;
		height: 70px;
		width: auto;
		top: 0;
		z-index: 3;
	}

	.header h2{
		position: absolute;
		top: 0;
		left: 0;
		color: #fff;
		z-index: -1;
		transform: translateX(-100vw);
	}

	.sp-nav-btn{
		position: relative;
		width: 35px;
		height: 30px;
		margin-top: 2vw;
		z-index: 3;
		cursor: pointer;
	}

	.sp-nav-btn span{
		position: absolute;
		top: 50%;
		left: 0;
		display: inline-block;
		width: 100%;
		height: 5px;
		background: #fff;
		border-radius: 2.5px;
		transform: translateY(-50%);
	}
	.sp-nav-btn span::before,
	.sp-nav-btn span::after{
		content: '';
		position: absolute;
		top: -12.5px;
		width: 100%;
		height: 5px;
		background: #fff;
		border-radius: 2.5px;
	}

	.sp-nav-btn span::after{
		top: 12.5px;
	}

	.sp-nav-btn.active span{
		background: transparent;
	}

	.sp-nav-btn.active span::before,
	.sp-nav-btn.active span::after{
		top: 0;
		bottom: auto;
		transform-origin: center;
	}
	.sp-nav-btn.active span::before{ transform: rotate(45deg);}
	.sp-nav-btn.active span::after{ transform: rotate(-45deg);}


	.sp-nav{
		position: fixed;
		top: 0;
		left: 0;
		width: 100vw!important;
		height: 100vh;
		text-align: center;
		transform: translateY(-101%);
		transition: ease-in-out 0.5s;
		opacity: 0;
		font-size: min(5vw,24px);
	}

	.active .sp-nav{
		transform: translateY(0);
		opacity: 1;
	}

	.sp-back{
		position: absolute;
		top: 0;
		left: 0;
		z-index: -1;
		width: 100%;
		height: 100%;
		background: linear-gradient(-90deg, #f39801 0%, #ff7864 100%);
	}

	.header nav ul{
		display: inline-block;
		width: auto;
		margin: 7.5em auto 0;
		text-align: left;
		opacity: 0;
		transition: ease 0.1s 0s;
	}

	.header.active nav ul{
		opacity: 1;
		transition: ease 0.1s 0.5s;
	}

	.header nav ul li{
		margin: 0 0 1em 0;
	}

	.sec01-titlebox{
		aspect-ratio: 1/1;
		max-height: none;
		transform: unset;
		margin: 0;
		font-size: 6vw;
		padding-top: 7em;
		margin-top: 3.125vw;
	}

	.active .sec01-titlebox{
		margin-top: calc(70px + 3.125vw);
	}

	.opened .sec01-titlebox::before{
		transform: translateX(0);
		opacity: 1;
	}
	.opened .sec01-title-wrap,
	.opened .sec01-title{
		transform: translateX(0);
	}

	.boxtext01{margin-bottom: 0.5em;}

	.sec02{
		padding: 18.75vw 0 0 0;
	}

	.sec-title{
		font-size: min(5.6vw,32px);
		padding: 1.4em 0 0.3em 0;
	}

	.sec-title::before{
		font-size: 2.4em;
		bottom: 0.3em;
	}

	.sec02-table{
		font-size: 14px;
		margin-top: 0.5em;
	}

	.sec02-table tr td, 
	.sec02-table tr th{
		display: block;
		width: 100%;
		border: none!important;
		padding: 0.5em;
	}

	.sec02-table tr th{
		padding-bottom: 0;
	}

	.sec02-table tr{ border-top: 1px solid #999;}
	.sec02-table tr:last-of-type{border-bottom: 1px solid #999;}

	.sec03{padding: 18.75vw 0;}

	.sec03-wrap{
		flex-wrap: wrap;
	}

	.sec03-textwrap{width: 100%; order: 2; padding: 7.5vw 0;}

	.sec03-wrap img{width: 80%; max-width: 500px; transform: scale(1); order: 1; margin: 7.5vw auto 0;}
	.sec03-wrap img.ex.active{transform: scale(1) translateY(0);}

	.sec03 h3{
		font-size: min(6.25vw,32px);
	}

	.readtext{
		font-size: 14px;
		margin-top: 0.5em;
	}

	.sec03-flex{
		display: block;
		width: 100%;
		font-size: min(3.75vw,16px);
	}

	.sec03-flex-wrap{
		width: calc(100% - 1.5em);
		margin-right: 1.5em;
		margin-bottom: 9em;
	}

	.sec03-flex-wrap a{
		right: -1.5em;
		bottom: -7em;
	}

	.sec04,
	.sec05,
	.sec06,
	.sec07{
		padding: 18.75vw 0;
	}

	.sec03-flex .sec03-flex-wrap:nth-of-type(2n),
	.sec04-flex div:nth-of-type(2n){
		transition: ease-in-out 0.5s;
	}

	.sec04-flex{
		display: block;
		max-width: 500px;
		margin: 0 auto;
	}

	.sec04-flex div{
		width: 100%;
		margin-top: 7.5vw;
	}

	.sec04-flex div h3 span{
		display: inline-block;
	}

	.sec05-wrap{
		width: 100%;
		margin: 7.5vw 0 0;
		display: block;
	}

	.sec05-img01{
		width: 80%;
		max-width: 300px;
		margin: 0 auto;
		display: block;
	}

	.sec05-wrap::after{
		width: 45%;
		top: 0;
		right: 0;
		transform: translate(35%, -20%);
	}

	.sec05-wrap::before{
		width: 60%;
		transform: translate(-35%, 17%);
	}

	.sec06{
		background: url(../img/sec06-back01-sp.webp)no-repeat center top / contain;
	}

	.sec06-flex{
		display: flex;
		flex-wrap: wrap;
		margin-top: 7.5vw;
	}

	.sec06-img01{
		position: relative;
		width: 100%;
		max-width: 500px;
		order: 1;
		display: block;
		margin: 0 auto;
	}

	.sec06-flex-wrap{
		width: 100%;
		order: 2;
		margin-top: 5vw;
	}

	.sec07-flex{
		margin: 7.5vw auto 0;
		font-size: 14px;
		max-width: 500px;
		align-items: stretch;
	}

	.sec07-flex-r-wrap{
		display: block;
	}

	.sec07-textbox{
		width: 100%;
	}

	.sec07-flex-l{
		margin-right: 0;
		width: 3em;
	}

	.sec07-flex-r{
		width: calc(100% - 3em);
		margin: 6em 0;
	}

	.sec07-textbox{
		width: 100%;
	}

	.sec07-imgbox.sp{
		position: relative;
		width: 100%;
		height: auto;
		aspect-ratio: 16/7;
	}

	.sec07-imgbox.sp::before{
		position: absolute;
		left: -4em;
		top: 50%;
		font-size: 1em;
		font-weight: 600;
		display: block;
		color: #fff;
		background: #111;
		width: 5em;
		height: 5em;
		border-radius: 50%;
		text-align: center;
		align-content: center;
		transform: translateY(-50%);
	}

	.sec07-imgbox.sp.i1::before{content: '設　計';}
	.sec07-imgbox.sp.i2::before{content: '板　金\A加　工';white-space: pre;}
	.sec07-imgbox.sp.i3::before{content: '塗　装';}
	.sec07-imgbox.sp.i4::before{content: '組　立';}
	.sec07-imgbox.sp.i5::before{content: '検　査';}

	.sec07-textbox .readtext{
		line-height: 1.7;
	}

	.sec07-subtitle{
		font-size: min(5vw,24px);
		margin-bottom: 0.3em;
	}

	.circle-text{
		width: 5em;
		height: 5em;
		margin-bottom: 16em;
	}

	.sec07-flex-l .circle-text:first-of-type{
		position: absolute;
		top: 0;
		left: -1em;
		margin: 0;
	}
	.sec07-flex-l .circle-text:last-of-type{
		position: absolute;
		left: -1em;
		bottom: 0;
		margin: 0;
	}

	.footer{
		padding: 8em 0 2em;
		margin-top: 40em;
	}

	.footer-wrap01{
		width: 100%;
		max-width: 500px;
		border: solid 1em #F39801;
		padding: 1.2em 1em;
	}

	.footer-text01{
		font-size: 1.5em;
		margin-bottom: 0.7em;
	}

	.footer-flex{
		display: block;
		margin-top: 0;
		align-items: center;
		text-align: center;
	}

	.footer-flex .readtext{
		text-align: center;
		margin: 0;
	}

	.footer-flex .footer-text01{margin-bottom: 0;}

	.footer-wrap01 .mt1{
		font-size: 14px;
		margin: 0.5em 0 0.7em;
	}


	.linkbtn{
		width: 90%;
		max-width: 300px;
		font-size: 0.9em;
		display: block;
		margin: 0 auto;
	}

	.footer-menu{
		padding: 2em 0 1em;
		font-size: 12px;
	}

	.footer-menu a{
		padding: 0 1em 0 0;
	}

	.footer-menu li{
		border-right: 1px solid #fff;
		margin-right: 1em;
	}

	.footer-menu2{
		font-size: 14px;
		padding: 1em 0;
	}

	.footer-menu2 a{
		padding: 0 2em 0 0;
	}

	.copyright{
		font-size: 10px;
		padding-left: 0;
	}

	.footer-logo{
		width: 100%;
		max-width: 500px;
		height: auto;
		padding-left: 0;
	}

	.top-btn{
		position: fixed;
		right: 15px;
		bottom: 15px;
		z-index: 10;
		width: 40px;
		height: 40px;
		opacity: 0;
		transform: translateY(50%);
		transition: ease-in-out 0.5s;
	}
	.top-btn.active{
		opacity: 1;
		transform: translateY(0);
	}



}