@charset "utf-8";
/* CSS Document */
/*==========================================================================
　SIDE 固定
===========================================*/
#right-side{
	position: fixed;
	width: 70px;
	height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: center;
	gap:30px;
	background: #1a1a1a;
	padding: 20px 10px;
	top: 0;
	right: 0;
	z-index: 50;
    transition: transform 0.3s ease;
}
#right-side .side_contact a,
#right-side .side_menu{ 
	writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	color: #fff;
	position: relative;
	padding-bottom: 40px;
	transition: .4s;
	cursor: pointer;
	width: 70px;
	display: flex;
    align-items: center;
}
#right-side .side_contact a::after,
#right-side .side_menu::after{
	position: absolute;
	content: '';
	width: 40px;
	height: 25px;
	background: url("../img/icon_mail.svg")no-repeat center bottom/contain;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);	
}
#right-side .side_menu::after{	
	background: url("../img/icon_menu.svg")no-repeat center bottom/contain;
}
#right-side .pagetop a{
	display: flex;
	flex-direction: column;
	align-items: center;
	color: #fff;
	font-size: 15px;
	text-align: center;
	line-height: 1.2;
	transition: .4s;
	
}
#right-side .pagetop img{
	width: 80%;
	object-fit: contain;
	margin-bottom: 8px;
}
#right-side .side_contact a:hover,
#right-side .pagetop a:hover,
#right-side .side_menu:hover{ 
	color: #00a99d;
	transition: .4s;
}



@media(min-width:820px){
	#right-side .side_menu{
		display: none;
	}
}
@media(max-width:1024px){
	#right-side{
		width: 50px;
		padding: 10px;
		padding-bottom: 20px;
	}	
	#right-side .side_contact a,
	#right-side .side_menu{ 
		font-size: 16px;
	}
	#right-side .side_contact a::after,
	#right-side .side_menu::after{
		width: 25px;
		height: 20px;

	}	
	#right-side .pagetop img{
		width: 60%;
	}
	#right-side .pagetop a{
		font-size: 13px;

	}	
}
@media(max-width:549px){
	#right-side{
		display: none;
	}
}
/*==========================================================================
　メイン画面幅
===========================================*/

#main{
	position: relative;
	transition: transform 0.3s ease;
	width: calc(100vw - 70px);
}

@media(max-width:1024px){
	#main{
		width: calc(100vw - 50px);
	}
}
@media(max-width:549px){
	#main{
		width: 100vw;
	}
}

/*==========================================================================
　header
===========================================*/
#header{
	background: #fff;
	height: 80px;
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 55;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.hlogo{
	height:60px;
	width: clamp(180px, 20vw, 270px);
	min-width: 180px;
	margin: 10px;
}
.hlogo img{
	height: 100%;
	object-fit: contain;
}
#m1{
	display: flex;
	justify-content: flex-end;
	align-items: center;
	height: 100%;		
	position: relative;
    transition: transform 0.2s ease;
}

/*PCnav*/
.pcnav{
    display: flex;
    list-style: none;
}

.pcnav li a{
    display: block;
    text-decoration: none;
    color: #333;
}

.pcnav li a{/*English*/
	position: relative;
	overflow: hidden;
	padding:11px clamp(45px,4vw,60px) 12px;
}

.pcnav li span{
	position: absolute;
	left: 50%;
	top:0;
	transition: all .5s;
	transform: translate(-50%, 0);
	display: block;
	opacity:1;
	white-space: nowrap;
}
.pcnav li span:nth-child(2){/*Japanese*/
	opacity:0;
    transform: translate(-50%,100%);
}

.pcnav li:hover span:nth-child(1){
	opacity:0;
    transform: translate(-50%,-100%);
}

.pcnav li:hover span:nth-child(2){
	opacity:1;
	transform: translate(-50%, 0);
	color: #0f3892;
}

.pc_h_tel{
	margin-left: 10px;
}
.pc_h_tel a{
	display: flex;
    height: 80px;
    align-items: center;
	padding: 0 0.5rem;
	padding: 0 clamp(0.5rem,1.5vw,2rem);
	background: #1a1a1a;
	color: #fff;
	font-size: clamp(0.9rem, -0.395rem + 2.53vw, 1.5rem);
	font-weight: 600;
	pointer-events: none;
}
.pc_h_tel a span{
	font-size:clamp(0.5rem, -0.579rem + 2.11vw, 1rem);
	padding-right: 10px;
}
.pc_h_tel a:hover{
	color: #00a99d;
}
@media(max-width:1024px){
	#header,.pc_h_tel a{
		height: 60px;
	}
	.hlogo{
		height:50px;
		margin:5px 10px;
	}
}

@media(max-width:819px){
	.pcnav{
		display: none;
	}
	.pc_h_tel a{
		pointer-events: auto;
	}	
}
@media(max-width:549px){
	#header{
		position: relative;
	}	
	#m1{
		display: none;
	}
}

/*==========================================================================
　mobailnav
===========================================*/
/*side_nav*/
#spnav {
    position: fixed;
    top: 0;
    right: -350px; 
    height: 100vh;
    background: #1a1a1a;
    transition: right 0.3s ease;
    overflow-y: auto;
	z-index: 99;
	padding: 80px 5vw;
}
#spnav li{
	border-bottom: 1px dashed #eee;
}
#spnav li a{
	color: #fff;
	display: block;
	padding: 15px 1rem 10px;
	font-size: 20px;
}

#spnav li span.small{
	padding-left: 15px;
	font-size: 12px;
	color: #00a99d; 
}


#spnav li.sp_tel,
#spnav li.sp_mail{
	border: 1px solid #fff;
	margin: 15px auto;
	text-align: center;
}
#spnav li.sp_tel a span,
#spnav li.sp_mail a span{
	position: relative;
	padding-left: 2rem;
	font-size: 1.5rem;
	line-height: 1.3;
}
#spnav li.sp_tel a span::before,
#spnav li.sp_mail a span::before{
	position: absolute;
	content: '';
	width: 1.5rem;
	height: 1.5rem;
	background: url("../img/icon_tel.svg") no-repeat center/contain;
	top: 3px;
	left: 0;
}
#spnav li.sp_mail a span::before{
	background: url("../img/icon_mail.svg") no-repeat center/contain;
}
@media (min-width: 550px) {
    #spnav {
        width: 350px;
    }
}

@media (max-width: 549px) {
    #spnav {
        width: 100vw;
        right: -100vw;
    }
}

/*===nav.active　動き====================*/
#spnav.active{
	right:0;
}
#overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.6);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    z-index: 40;
	width: 100%;
	height: 100vh;
}
#overlay.active {
    opacity: 1;
    pointer-events: auto;
}
#main.active,
#right-side.active {
    transform: translateX(-350px);
}

#m1.active {
    transform: translateX(-350px);
    transition: transform 0.5s ease;
}
@media (max-width: 714px) {
	#m1.active {
		display: none;
	}	
}

@media (max-width: 549px) {
    #main.active {
        transform: translateX(-100vw);
    }  
    #right-side.active {
        transform: translateX(calc(-100vw + 50px));
		z-index: 100;
    }
}

/*==== sp_footbtn ================================================*/
.sp_footbtn {
  position: fixed;
  bottom: -100px; /* 初期状態は画面外（非表示） */
  left: 0;
  width: 100%;
  z-index: 999;
  background: #1a1a1a;
  border-top: 2px solid #fff;
  transition: bottom 0.4s ease-in-out; /* スライドアニメーション */
}

.sp_footbtn.visible {
  bottom: 0; /* 表示状態 */
}
.sp_footbtn ul{
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}
.sp_footbtn li:not(:last-child){
	border-right: 1px solid #fff;
}
.sp_footbtn li a{
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 6px 0;
	text-align: center;
	font-size: 15px;
	color: #fff;
}
.sp_footbtn .icon{
	height: 30px;
	width:30px;
	margin: 0 auto;

}
.sp_footbtn .icon img{
	width: 100%;
	height: 100%;
	object-fit: contain;
}

@media(min-width:550px){
	.sp_footbtn{
		display: none;
	}
}
@media(max-width:400px){
	.sp_footbtn li a{
		font-size: 11px;
	}	
	.sp_footbtn .icon{
		height: 20px;
		width:20px;
		margin: 0 auto;
	}
}


/*==========================================================================
　footer
===========================================*/
/*foottop CTA*/
#footcta{
	background: rgba(108,199,255,.4);
}
#footcta .inner{
	padding-left: 2vw;
}
#footcta h3{
	font-weight: 400;
}
#footcta p{
	margin-bottom: 15px;
}
.ft_tel a{
	font-size: clamp(2rem, 0.216rem + 3.71vw, 3rem);
	font-family: "Zalando Sans", sans-serif;
	color: #fff;
	font-weight: 600;
	line-height: 1.2;
	pointer-events: none;
	
}

.ft_tel a span{
	font-size: clamp(1.2rem, 0.665rem + 1.11vw, 1.5rem);
	padding-right: 1vw;
}

.ft_btn a{
	display: inline-block;
	background: #fff;
	position: relative;
	border: 2px solid #1a1a1a;
	width: 90%;
	max-width: 450px;
	padding: 1rem 2rem;
	font-family: "Zalando Sans", sans-serif;
	font-weight: 600;
	transition: .4s;
	text-align: left;
}

.ft_btn a::before{
	position: absolute;
	content: '';
	width: 2rem;
	height: 2px;
	background: #1a1a1a;
	top: 50%;
	right: 0;
	transition: .4s;
}
.ft_btn a:hover{
	color: #00a99d;
	border-color: #00a99d;
	transition: .4s;
}
.ft_btn a:hover::before{
	background: #00a99d;
	width: 2.5rem;
	transition: .4s;
}
@media(max-width:819px){
	#footcta p br{
		display: none;
	}
	#footcta .inner{
		padding-left: 5%;
	}	
	.ft_tel a{
		font-size: clamp(2rem, 1.048rem + 4.06vw, 3rem);
		pointer-events: auto;
	}

	.ft_tel a span{
		font-size: clamp(1.2rem, 0.914rem + 1.22vw, 1.5rem)
	}
}
/*Footer*/
footer{
	padding: clamp(40px,6vw,60px) 0;
}
.footflex{
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 20px;
	font-size: 16px;
}
.foot_info{
	width: 40%;
	min-width: 310px;
}
.f_logo{
	width: 80%;
	max-width: 350px;
	margin-bottom: 20px;
}
.foot_nav{
	width: 58%;
	display: flex;
	justify-content: flex-end;
	flex-wrap: wrap;
}
.foot_nav ul{
	display: flex;
}
.foot_nav li a{
	padding:0 .5vw;
	color: #fff;
}
.foot_nav li a:hover{
	color: #00a99d;
}

.copy{
	border-top: 1px solid #eee;
	padding: 10px 0 5px;
	text-align: end;
	font-size: clamp(12px,.8vw,14px);
	color: #eee;
}
@media(max-width:659px){
	.foot_info{
		width: 100%;
		min-width: 310px;
		text-align: center;
	}
	.f_logo{
		max-width: 300px;
		margin: 0 auto 20px;
	}
	.foot_nav{
		display: none;
	}
}
@media(max-width:549px){
	footer{
		padding-bottom: 90px;
	}
}
@media(max-width:400px){
	footer{
		padding-bottom: 60px;
	}	
}
/*==========================================================================
　FV
===========================================*/
#fv{
    width: 100%;
	height: 100vh;
	padding: 0;
	overflow: hidden;
}

#slider {
    width: 90%;
    height: 100vh;/*スライダー全体の縦幅を画面の高さいっぱい（100vh）にする*/
	margin-left: auto;
	overflow: hidden;
}
.catch{
	position: absolute;
	width: 80%;
	max-width: 1000px;
	bottom: 10vh;
	left: 5%;
}

.catch img{
	height: 100%;
	object-fit: contain;
}
.catch img:nth-child(2){
	width: 70%;
	padding-left: 2%;
}
@media(max-width:549px){
	#fv{
		height: calc(100vh - 60px);
	}
	#slider {
		height: calc(100vh - 60px)!important;/*スライダー全体の縦幅を画面の高さいっぱい（100vh）にする*/
	}	
}

/*==========================================================================
　index
===========================================*/
/*Top h1*/
.visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
}

/*TOPABOUT*/
.ta_catch{
	font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
	 display: inline-block;
	 background: linear-gradient(-215deg, #bde2f4, #6cc7ff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
	font-size: 2rem;
}
.ta_flexbox{
	display: flex;
	flex-wrap: wrap;
}

.ta_txt{
	width: 50%;
	padding-left: clamp(80px,10vw,200px);
}
.ta_txt h5{
	font-size: 1.4rem;
	font-weight: 400;
	
}
.ta_txt h4{
	font-size: 2rem;
	
}

.ta_img{
	width: 45%;
	display: flex;
	justify-content: space-between;
}
.ta_img img{
	width: 48%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 3 / 4;
}
.ta_img img:last-child{
	margin-top: 50px;
}
@media(max-width:1023px){
	.ta_txt{
		width: 90%;
		margin: 0 auto;
		padding-left: 0;
	}
	.ta_img{
		width: 70%;
		margin: 10px auto ;
		justify-content: center;
		gap:20px;
	}
}
@media(max-width:549px){
	.ta_catch,
	.ta_txt h4{
		font-size:clamp(1.5rem, 0.376rem + 4.73vw, 2rem);
	}
	.ta_txt h5{
		font-size: clamp(1rem, 0.101rem + 3.79vw, 1.4rem);
	}	
	.ta_img{
		width: 80%;
	}	
}


/*TOP SERVICE*/

.ts_img{
	width: 50%;
}
.ts_img img{
	aspect-ratio: 2 / 1;	
}
.ts_txt{
	width: 45%;
	padding: 6vw 0;
}
.ts_catch .en{
	font-size: 3.2rem;
	font-weight: 700;
	 display: inline-block;
	 background: linear-gradient(-215deg, #bde2f4, #6cc7ff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ts_catch .ja{
	padding-left: 15px;
	color: #6cc7ff;
	display: inline-block;
}

@media(max-width:819px){
	.ts_img{
		width: 100%;
	}
	.ts_txt{
		width: 100%;
		padding: 0 3%;
	}	
}



/*TOP WORKS*/
#top_works{
	background: rgba(108,199,255,.4);
}

.works_inner{
	padding-left: 12vw;
}

.min-slider {/*横幅94%で左右に余白を持たせて中央寄せ*/
   width:100%;
   
}
.min-slider li{
	aspect-ratio: 4 / 3;
	overflow: hidden
	
}
.min-slider img {
    width:100%;/*スライダー内の画像を横幅100%に*/
    height:100%;
	object-fit: cover
}

/*slickのJSで書かれるタグ内、スライド左右の余白調整*/

.min-slider .slick-slide {
    margin-right:20px;
}

/*矢印の設定*/

/*戻る、次へ矢印の位置*/
.min-slider .slick-prev,
.min-slider .slick-next{
	position: absolute;
	background: url("../img/works_arrow.svg");
	width: 45px;
	height: 45px;
	bottom: -50px;
	z-index: 0;
	cursor: pointer;
}
.min-slider .slick-prev{
	left: 0;
}
.min-slider .slick-next{
	left: 50px;
	transform: rotate(180deg);
}
@media(max-width:549px){
	.works_inner{
		padding-left: 6vw;
	}	
	.min-slider .slick-prev,
	.min-slider .slick-next{
		position: absolute;
		background: url("../img/works_arrow.svg");
		width: 30px;
		height: 30px;
		bottom: -45px;
		z-index: 0;
		cursor: pointer;
	}	
	.min-slider .slick-next{
		left: 45px;
	}	
}


/*TOP　recruit*/
.tr_inner{
	padding-top: 15vw;
	position: relative;
	max-width: 1600px;
	margin: 0 auto;
}

.tr_img{
	position: absolute;
	width: 58.5%;
	top: 0;
	left: 0;	
	z-index: -1;
}

.tr_txtbotx{
	width: 80%;
	max-width: 950px;
	padding:5rem 7rem;
	background: rgba(68,116,140,.85);
	margin: auto 0 0 auto;
	text-align: center;
}

@media(max-width:819px){
	.tr_inner{
		padding-top: 20vw;
		position: relative;
	}	
	.tr_img{
		width: 100%;
	}
	.tr_txtbotx{
		width: 90%;
		padding:3rem 2rem;
		margin: auto auto 0;
	}	
}
@media(max-width:669px){
	.tr_txtbotx{
		text-align: left;
	}
	.tr_txtbotx br{
		display: none;
	}
	
}

/*==========================================
	page_FV
==========================================================================*/
.page_fv {
	position: relative;
	height: 40vh;
	min-height: 300px;
	background: url("../img/works/26.jpg") center / cover no-repeat;
}

.page_fv::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.4);
}

.page_fv_inner {
	position: relative;
	z-index: 1;
	height: 100%;
	display: flex;
	align-items: center;
	padding: 80px clamp(20px, 6vw, 80px) 0;
}

.page_title{
	position: relative;
	font-size: clamp(2.8rem, 2.255rem + 2.33vw, 4rem);
	font-weight: 700;
	line-height: 1;
}

.page_title .en{
	position: relative;
	display: inline-block;
	font-family: "Zalando Sans", sans-serif;
}

.page_title .en::before{
	content: '';
	position: absolute;
	width: clamp(25px,5vw,40px);
	height: clamp(25px,5vw,40px);
	background: rgba(108,199,255,0.8);
	border-radius: 50%;
	bottom: -8px;
	left: clamp(-15px, -2.5vw, -8px);
	z-index: -1;
}

.page_title .ja {
	display: block;
	font-size: 1.2rem;
	margin-top: 12px;
	letter-spacing: 0.2em;
	opacity: .8;
}

@media screen and (max-width: 768px) {
	.page_fv {
		height: 30vh;
		min-height: 200px;
	}
	.page_fv_inner {
		padding-top: 0;
	}	
	.page_title .en::before{
		width: 22px;
		height: 22px;
		bottom: -5px;
		left: -8px;
	}
	.page_title .ja {
		font-size: 1rem;
	}
}

.subpage section {
	padding: clamp(70px, 9vw, 110px) 0;
	position: relative;
}

/* 薄い区切りライン（必要な時だけ付与） */
.subpage .section-border {
	border-top: 1px solid rgba(255,255,255,0.06);
}

.section_title{
	position: relative;
	display: inline-block;
	padding-bottom: 8px;
    margin-bottom: 40px;
	font-size: clamp(1.6rem, 1.3rem + 1vw, 2rem);
	font-weight: 600;
}

.section_title::after{
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 40px;
	height: 2px;
	background: rgba(108,199,255,0.8);
}
.section_title .en{
	font-size: 1rem;
}
.section_title .ja{
	display: block;
}

.subpage .section_lead {
	max-width: 900px;
	margin-bottom: 40px;
	font-size: clamp(15px, 1.6vw, 16px);
	line-height: 1.9;
	opacity: .9;
}

/* 薄い背景トーン */
.subpage .section-bg {
	background: rgba(255,255,255,0.03);
}

/* 青寄りトーン（会社概要・安心感系） */
.subpage .section-bg-blue {
	background: rgba(108,199,255,0.08);
}
/*==========================================
	About
==========================================================================*/
.company_message_inner{
	display: flex;
	gap: clamp(30px,5vw,60px);
	align-items: center;
}
.company_message_img{
	width: 38%;
	aspect-ratio: 6 / 7; 
	overflow: hidden;	
}

.company_message_text{
	width: 58%;
}

.section_title{
	margin-bottom: 15px;
}

@media (max-width: 768px){
	.company_message_inner{
		flex-direction: column;
		gap: 25px;
	}
	.company_message_img,
	.company_message_text{
		width: 100%;
	}
}
/*会社概要*/
.company_info{
	background: rgba(108, 199, 255, 0.12);
	border-top: 1px solid rgba(255,255,255,0.05);
	border-bottom: 1px solid rgba(0,0,0,0.1);
}
.company_table{
	width: 100%;
	border-collapse: collapse;
	border-top: 2px solid #2f4b6e;
}

.company_table th{
	width: 25%;
	padding: 15px 20px;
	background: #f2f6fa;
	color: #2f4b6e;
	text-align: left;
	font-weight: 600;
	border-bottom: 1px solid #dbe3ec;
}

.company_table td{
	padding: 15px 20px;
	border-bottom: 1px solid #e5e5e5;
}
.company_table th,
.company_table td{
	font-size: clamp(14px,1.5vw,16px);
	line-height: 1.7;
}

@media (max-width: 768px){
	.company_table,
	.company_table tbody,
	.company_table tr,
	.company_table th,
	.company_table td{
		display: block;
		width: 100%;
	}

	.company_table th{
		border-bottom: none;
		padding: 10px 20px;
	}

}

.company_policy{
	padding: clamp(60px,8vw,100px) 0;
}
.company_policy .section_title{
	margin-bottom: clamp(40px,6vw,60px);
}
.policy_list{
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(20px,3vw,40px);
}

.policy_list li{
	background: rgba(255,255,255,0.03);
	border: 1px solid rgba(255,255,255,0.08);
	padding: 30px 25px;
	position: relative;
	transition: transform .4s ease, box-shadow .4s ease;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.policy_list li:hover{
	transform: translateY(-6px);
	box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}
.policy_list li::after{
	content:"";
	position:absolute;
	bottom:0;
	left:20%;
	width:60%;
	height:1px;
	background: rgba(108,199,255,0.3);
}
.policy_num{
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: rgba(108,199,255,0.8);
	margin-bottom: 10px;
}
.policy_icon{
	display: block;
	width: 55px;
	height: 55px;
	margin-bottom: 15px;
	color: rgba(108,199,255,0.9);
}

.policy_svg{
	width: 48px;
	height: 48px;
}

.policy_title{
	text-align: center;
}
@media (max-width: 650px){
	.policy_list{
		grid-template-columns: repeat(2, 1fr);
	}
}

/*======================================
	service
================================================================*/
.service_lead{
	text-align: center;
	max-width: 720px;
	margin: 0 auto clamp(40px,6vw,70px);
	line-height: 1.8;
	color: rgba(255,255,255,0.9);
}

.service_list{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(20px,3vw,40px);
}

.service_list li a{
	display: block;
	padding: 30px 25px;
	border: 1px solid rgba(255,255,255,0.08);
	background: rgba(255,255,255,0.03);
	text-align: center;
	position: relative;
	transition: transform .4s ease, box-shadow .4s ease;
	color: #fff;
}

.service_list li a:hover{
	transform: translateY(-6px);
	box-shadow: 0 10px 25px rgba(0,0,0,0.2);
	border: 1px solid rgba(108,199,255,0.3);
}

.service_num{
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: rgba(108,199,255,0.8);
	margin-bottom: 10px;
}

.service_card_img img{
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.service_card_img::after{
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.25);
}
.service_name{
	font-size: clamp(15px,1.6vw,17px);
	font-weight: 600;
}

@media (max-width: 768px){
	.service_list{
		grid-template-columns: 1fr;
	}
}
.service_detail{
	padding: clamp(70px, 8vw, 110px) 0;
}
.service_detail.is-light{
	background: rgba(255,255,255,0.06);
}
.service_detail_inner{
	display: flex;
	gap: clamp(30px,5vw,60px);
	align-items: center;
}
.service_detail_img{
	width: 42%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

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

.service_detail_text{
	width: 58%;
}
.service_detail_text .service_lead{
	margin: 0 auto clamp(15px,3vw,30px);
	text-align: left;
	font-weight: 600;
	font-size: 1.2rem;
}
.service_point{
	margin-top: clamp(15px,3vw,25px);
}
.service_point li{
	padding-top: 15px;
	padding-left: 2.5rem;
	border-bottom: 1px dashed #eee;
	position: relative;	
}
.service_point li::before{
	position: absolute;
	content: '\f058';
	font-family: "Font Awesome 6 Free";
	font-weight: 600;
	bottom:3px;
	left: .8rem;
	font-size: .9rem;
	color: rgba(108,199,255,.7);
}
@media (max-width: 768px){
	.service_detail_inner{
		flex-direction: column;
	}
	.service_detail_img,
	.service_detail_text{
		width: 100%;
	}
}

/*シート防水工事手順*/
.service_process{
	margin-top: clamp(50px,6vw,80px);
	padding-top: 30px;
	border-top: 1px solid rgba(255,255,255,0.08);
}

.process_title{
	font-size: 1.4rem;
	font-weight: 600;
	margin-bottom: 30px;
}

.process_list{
	display: grid;
	gap: 25px;
}

.process_list.has-photo li{
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 24px;
	background: rgba(255,255,255,0.03);
	border: 1px solid rgba(255,255,255,0.08);
	padding: 20px;
}

.process_photo{
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.process_photo img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: brightness(0.9) contrast(1.05);
}

.process_body{
	position: relative;
	padding-left: 50px;
}

.process_num{
	position: absolute;
	left: 0;
	top: 0;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(108,199,255,0.9);
	color: #000;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.process_body h4{
	font-size: 1.1rem;
	margin-bottom: 6px;
}

.process_body p{
	font-size: 0.95rem;
	line-height: 1.7;
	opacity: 0.9;
}

@media (max-width: 768px){
	.process_list.has-photo li{
		grid-template-columns: 1fr;
	}
	.process_body{
		padding-left: 0;
	}
	.process_num{
		position: static;
		margin-bottom: 10px;
	}
}

/*================================================
	recruit
==================================================================*/
#recruit .section_title{
	margin-bottom: 25px;
}
/*リード文*/
.recruit_lead{
	padding: clamp(70px,8vw,110px) 0;
}

.recruit_lead .inner{
	max-width: 900px;
	text-align: center;
}

.recruit_lead .lead_text{
	max-width: 800px;
	margin: 22px auto 0;
	line-height: 2;
	font-size: clamp(15px,1.6vw,17px);
}
/*recruit_target*/
.recruit_target{
	background: rgba(108,199,255,0.08);
	padding: clamp(70px,8vw,110px) 0;
}

.recruit_target_inner{
	display: grid;
	grid-template-columns: 1.1fr 0.75fr;
	gap: clamp(30px,5vw,60px);
	align-items: center;
	position: relative;
}
.recruit_target_inner::after{
	content: '';
	position: absolute;
	right: 0;
	top: 10%;
	width: 60%;
	height: 80%;
	background: rgba(255,255,255,0.02);
	z-index: 0;
}
.target_text,
.target_img{
	position: relative;
	z-index: 1;
}
.target_img{
}

.target_img img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: brightness(0.82) contrast(1.05);
}
.target_list li{
	position: relative;
	padding: 18px 0 10px 2rem;
	border-bottom: 1px solid rgba(108,199,255,0.5);
}

.target_list li::after{
	position: absolute;
	content: '\f058';
	font-family: "Font Awesome 6 Free";
	font-weight: 600;
	bottom:9px;
	left: .8rem;
	font-size: .9rem;
	color: rgba(108,199,255,.7);
}
@media (max-width: 768px){
	.recruit_target_inner{
		grid-template-columns: 1fr;
	}
	.target_img{
		margin-top: 25px;
	}
	.target_img img{
		filter: brightness(0.88);
	}
}	

/*仕事について*/
.recruit_job{
	padding: clamp(70px,8vw,110px) 0;
}
.job_text{
	max-width: 900px;
}

.job_text p{
	line-height: 1.9;
	margin-top: 18px;
	font-size: clamp(15px,1.6vw,17px);
}
.job_text p:first-of-type{
	font-weight: 600;
	opacity: 1;
}
.job_img{
	margin-top: 45px;
	aspect-ratio: 16 / 7;
	overflow: hidden;
	border-radius: 6px;
}
.job_img img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: brightness(0.9) contrast(1.05) saturate(0.95);
}
@media (max-width: 768px){
	.job_text{
		max-width: 100%;
	}
	.job_img{
		margin-top: 30px;
	}
}
/*SHOW3で働く魅力*/
.recruit_point{
	background: rgba(255,255,255,0.02);
	padding: clamp(70px,8vw,110px) 0;
}

.point_list{
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: clamp(20px,3vw,40px);
}

.point_list li{
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,255,255,0.12);
	padding: 35px 25px;
	text-align: center;
	border-radius: 8px;
	transition: transform .3s ease, box-shadow .3s ease;
}

.point_list li:hover{
	transform: translateY(-4px);
	box-shadow: 0 8px 20px rgba(0,0,0,0.2);
}

.point_icon{
	display: inline-flex;
	width: 40px;
	height: 40px;
	margin-bottom: 15px;
}

.point_icon img{
	width: 100%;
	height: 100%;
	stroke: rgba(108,199,255,0.9);
}

.point_list p{
	line-height: 1.6;
}


/*募集要項*/
.recruit_table{
	width: 100%;
	border-collapse: collapse;
	border-top: 2px solid #2f4b6e;
}

.recruit_table th{
	width: 25%;
	padding: 15px 20px;
	background: #f2f6fa;
	color: #2f4b6e;
	text-align: left;
	font-weight: 600;
	border-bottom: 1px solid #dbe3ec;
}

.recruit_table td{
	padding: 15px 20px;
	border-bottom: 1px solid #e5e5e5;
	font-size: clamp(14px,1.5vw,16px);
	line-height: 1.7;
}

@media (max-width: 768px){
	.recruit_table,
	.recruit_table tbody,
	.recruit_table tr,
	.recruit_table th,
	.recruit_table td{
		display: block;
		width: 100%;
	}

	.recruit_table th{
		border-bottom: none;
		padding: 5px 20px;
	}
}
/*CTA*/
.recruit_cta{
	background: linear-gradient(
		180deg,
		rgba(108,199,255,0.12),
		rgba(108,199,255,0.02)
	);
	padding: clamp(80px,10vw,130px) 0;
}

.cta_title{
	font-size: clamp(1.45rem,2.5vw,2.2rem);
	font-weight: 700;
	margin-bottom: 20px;
	text-align: center;
}

.cta_text{
	font-size: 0.95rem;
	line-height: 1.8;
	opacity: .85;
	margin-bottom: 35px;
	text-align: center;
}

@media(max-width:500px){
	.cta_text{
		text-align: left;
	}
	.cta_text br{
		display: none;
	}
}

/*======================================
	お問い合わせ
======================================================*/
.contact_lead{
	padding: clamp(60px,8vw,100px) 0;
}

.contact_lead .inner{
	max-width: 800px;
	text-align: center;
}

.contact_lead .lead_text{
	margin-top: 20px;
	line-height: 2;
	opacity: .85;
}

@media(max-width:549px){
.contact_lead .inner{
	text-align: left;
}	
}

/*メールフォーム*/
.mailform{
	max-width: 960px;
	margin: 0 auto;
	padding: clamp(25px, 4vw, 50px);
	background: rgba(255,255,255,0.03);
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(0,0,0,0.35);
}
.mailform .row{
	padding: 20px 0;
	display: flex;
	justify-content: space-between;
}
.mailform .row:not(.last){
	border-bottom: 1px dotted #cccccc;
}
.mailform .row div:nth-child(1){
	width: 28%;
	font-weight: 500;
	letter-spacing: 0.08em;
	font-size: 0.9rem;
}
.mailform .row div:nth-child(2){
	width: 70%;
	line-height: 1.5;
}
.mailform .row span{
  	color: #fff;
  	background: rgba(108,199,255,.4);
  	padding: 5px;
  	margin-right: 5px;
  	font-size: 11px;
	border-radius: 2px;
	vertical-align: middle;
	font-weight: 500;
}
.mailform .row small{
	display: block;
	margin-top: 3px;
}
.mailform .box, .mailform textarea{
	border: 1px solid #ddd;
  	padding: 5px;
  	width: 100% !important;
  	border-radius: 0;
	-webkit-appearance: none;
	margin-bottom: 5px;
	background: #fff;
}
.mailform .postal_btn{
	padding: 2px 10px;
	background: rgba(108,199,255,.4);
	color: #fff;
	border-radius: 2px;
	margin-top: 5px;
	border: 1px solid #aaa;
	font-size: 0.9rem;
}
.mailform .postal_btn:hover{
	opacity: 0.8;
}

@media (max-width: 750px){
	.mailform .row{
		padding: 20px 0;
		flex-direction: column;
	}
	.mailform .row div:nth-child(1){
		width: 100%;
		margin-bottom: 20px;
	}
	.mailform .row div:nth-child(2){
		width: 100%;
	}
}

/*チェックボックス*/
/*input[type=checkbox] {
    display: none;
}*/
input[type=checkbox] + label{
    display: inline-block;
	padding-left: 20px;
	position:relative;
	margin-right: 20px;
	margin-bottom: 10px;
	cursor: pointer;
}
input[type=checkbox] + label::before{
    background: #fff;
    border: 1px solid #999;
    content: '';
    display: block;
	position: absolute;
	top: 55%;
	transform: translate(0,-50%);
  	left: 0;
    width: 15px;
  	height: 15px;
	border-radius: 3px;
}
input[type=checkbox] + label::after{
    border-right: 3px solid #222;
    border-bottom: 3px solid #222;
    content: '';
    display: block;
    height: 15px;
    left: 8px;
    margin-top: -7px;
    opacity: 0;
    position: absolute;
    top: 36%;
    width: 5px;
	transform: rotate(45deg) translate3d(0,2px,0) scale3d(.7,.7,1);
	transition: transform .2s ease-in-out, opacity .2s ease-in-out;
}
input[type=checkbox]:checked + label::after{
    opacity: 1;
	transform: rotate(45deg) scale3d(1,1,1);
}
@media (max-width: 750px){
	input[type=checkbox] + label{
		display: block;
	}
}

/*ラジオボタン*/
input[type=radio]{
	display: none;
}
input[type=radio] + label{
    display: inline-block;
	padding-left: 20px;
	position:relative;
	margin-right: 20px;
	margin-bottom: 10px;
	cursor: pointer;
}
input[type=radio] + label::before {
	content: "";
	display: block;
	position: absolute;
	top: 55%;
	transform: translate(0,-50%);
  	left: 0;
    width: 15px;
  	height: 15px;
	background: #f4f4f4;
	border-radius: 100%;
	border: 1px solid #b4b4b4;
	cursor: pointer;
	text-align: center;
	transition: all 250ms ease;
}
input[type=radio]:checked + label::before {
	background-color: #0085d7;
	box-shadow: inset 0 0 0 2px #f4f4f4;
}
input[type=radio]:focus + label::before{
	outline: none;
	border-color: #eee;
}
input[type=radio]:disabled + label::before {
	box-shadow: inset 0 0 0 2px #f4f4f4;
	border-color: #b4b4b4;
	background: #b4b4b4;
}
input[type=radio] + label:empty::before{
	margin-right: 0;
}
@media (max-width: 750px){
	input[type=radio] + label{
		display: block;
	}
}


.contact_info ul li{
	margin-bottom: 5px;
	text-align: center;
	font-size: 0.9rem;
}

/*アコーディオン*/
.privacy{
}
.privacy li{
}
.privacy li .privacy_wrap{
	border: 1px solid #ccc;
}
.privacy li .privacy_wrap .privacy_subject{
	cursor: pointer;
	transition: all .5s ease;
	padding: 15px 20px;
	padding-right: 30px;
	position: relative;
	background-color: rgba(108,199,255,.4);
	color: #fff;
}
.privacy li .privacy_wrap .privacy_subject.area_close{
}
.privacy li .privacy_wrap .privacy_subject h3{
	font-size: 1.1rem;
}
/*アイコンの＋と×*/
.privacy li .privacy_wrap .privacy_subject::before,
.privacy li .privacy_wrap .privacy_subject::after{
	position: absolute;
	top:48%;
	right: 15px;
	content:'';
	width: 15px;
	height: 2px;
	background-color: #aaa;
}
.privacy li .privacy_wrap .privacy_subject::before{
	transform: rotate(0deg);
}
.privacy li .privacy_wrap .privacy_subject::after{
	transform: rotate(90deg);
}
/*area_closeクラスがついたら形状変化*/
.privacy li .privacy_wrap .privacy_subject.area_close::before{
transform: rotate(45deg);
}
.privacy li .privacy_wrap .privacy_subject.area_close::after{
transform: rotate(-45deg);
}
/*アコーディオンで現れるエリア*/
.privacy li .privacy_wrap .privacy_box{
	position: relative;
	display: none;/*はじめは非表示*/
	padding: 20px;
}

.privacy_flame{
	height: 45vh;
	overflow-y: scroll;
}
.privacy_flame p{
	padding: 10px;
	font-size: 0.8rem;
}
.privacy_flame p span{
	display: block;
	color: rgba(108,199,255,.4);
	font-size: 0.95rem;
	font-weight: 500;
}
.privacy_flame p span::before{
	content: "■";
	display: inline-block;
	font-size: 0.6rem;
	margin-right: 0.5em;
	transform: translateY(-2.5px);
}
.privacy_flame ul li{
	font-size: 0.8rem;
}

/*スクロールバー*/
.privacy_flame::-webkit-scrollbar{
    overflow: hidden;
    width: 1px;
    background: #fff;
}
.privacy_flame::-webkit-scrollbar-button {
    display: none;
}
.privacy_flame::-webkit-scrollbar-thumb, .privacy_flame::-webkit-scrollbar-corner {
    background: #2e3192;
}

@media(max-width:599px){
	.contact .t_center{
		text-align: left;
	}
	.contact_info ul li{
		text-align:left
	}	
}

/*========================================
	依頼フォーム
================================================================*/
.request {
	scroll-margin-top: 100px; /* ヘッダー高さ */
}
.request_tab{
	display: flex;
	justify-content: center;
	gap: 20px;
	margin-bottom: 40px;
}

.tab_btn{
	padding: 12px 30px;
	border: 1px solid rgba(255,255,255,0.2);
	background: transparent;
	color: #fff;
	cursor: pointer;
	transition: .3s;
}

.tab_btn.is-active{
	background: rgba(108,199,255,0.9);
	color: #000;
	border-color: transparent;
}
.request_form {
	display: none;
	scroll-margin-top: 40vh;
}
.request_form.is-active {
	display: block;
}
.form_lead{
	text-align: center;
	margin-bottom: 15px;
}

.check_group{
	display: flex;
	flex-wrap: wrap;
	gap: 12px 25px;
}

.check_group label{
	font-size: 14px;
	cursor: pointer;
}

.check_group input{
	margin-right: 6px;
}


/*==================================
	thanks 
================================================================*/
.thanks{
	min-height: 70vh;
	display: flex;
	align-items: center;
	text-align: center;
}

.thanks_inner{
	max-width: 800px;
	margin-inline: auto;
}

.thanks_title{
	margin-bottom: 30px;
}

.thanks_title .en{
	display: inline-block;
	position: relative;
	font-family: "Zalando Sans", sans-serif;
	font-size: clamp(2.4rem, 3vw, 3rem);
	font-weight: 700;
}

.thanks_title .en::before{
	content: '';
	position: absolute;
	width: 30px;
	height: 30px;
	background: rgba(108,199,255,0.8);
	border-radius: 50%;
	bottom: -6px;
	left: -10px;
	z-index: -1;
}

.thanks_title .ja{
	display: block;
	margin-top: 15px;
	font-size: 1rem;
	letter-spacing: .15em;
	opacity: .8;
}

.thanks_text{
	margin-bottom: 20px;
	line-height: 1.9;
}

.thanks_note{
	font-size: 14px;
	opacity: .7;
	margin-bottom: 40px;
}

.thanks_cta .btn{
	display: inline-block;
	padding: 14px 40px;
	background: rgba(108,199,255,0.9);
	color: #000;
	font-weight: 600;
	border-radius: 30px;
}
