@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Yuji+Mai&display=swap');
/*================================================
	Header
=========================*/
#header{
	width: 100%;
	padding: 10px 2vw;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 999;
	background: linear-gradient(rgba(0,0,0,0.3),rgba(0,0,0,0))
}
.hlogo{
	height: 100%;
	width: clamp(300px,30%,360px);
}
.hlogo img{
	width: 100%;
	height: 100%;
	max-height: 100px;
	object-fit: contain;
	vertical-align: bottom;
	object-position: left center;
}
.m1{
	height: 100%;
	display: flex;
	flex-direction: column;
}
.m1_top{
	display: flex;
	justify-content: flex-end;
	align-items: center;
	margin-bottom: 5px;
}
.m1_tel a ,.m1_mail a{
	position: relative;
	display: block;
	padding: 5px 1rem;
	padding-left: 3rem;
	border: 1px solid #fff;
	margin-left: 20px;
}
.m1_tel a::before ,.m1_mail a::before{
	position: absolute;
	content:'\f095';
	font-family: "Font Awesome 6 Free";
	font-weight: 600;
	left: 1rem;
	top: 6px;
}
.m1_mail a::before{
	content: '\f0e0'
}
.m1_sns{
	margin-left: 1rem;
}
.m1_sns a{
	display: block;
	width: 50px;
	height: 42px;
}
.m1_sns img{
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.gnav ul{
	display: flex;
	justify-content: flex-end;
	align-items: center;
}
.gnav li{
	text-align: center;
	padding-left: 20px;
}
.gnav a{
	display: block;
	padding: 0 8px;
	opacity: .6;
}
.gnav a span{
	display: block;
	font-size: 65%;
}
.m1_tel a:hover ,.m1_mail a:hover{
	background:rgba(255,255,255,0.4);
}
.gnav a:hover{
	opacity: 1;
}
@media(max-width:980px){
	.m1{
		display: none;
	}
}

@media(max-width:480px){
	.hlogo{
	width: auto;
	}
	.hlogo img{
		max-height: 50px;
	}
}
/*================================================
	Mobile Nav
=========================*/
.openbtn{
	position: relative;
    width: 50px;
    height:50px;
}
@media(min-width:981px){
	.openbtn{
		display: none;
	}
}

	
/*×に変化*/	
.openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 20%;
    height: 3px;
    border-radius: 2px;
	background-color: #eee;
  	width: 60%;
  }

.openbtn span:nth-of-type(1) {
	top:15px;	
}

.openbtn span:nth-of-type(2) {
	top:23px;
}

.openbtn span:nth-of-type(3) {
	top:31px;
}

.openbtn.active span:nth-of-type(1) {
    top: 18px;
    transform: translateY(6px) rotate(-45deg);
    width: 60%;
}

.openbtn.active span:nth-of-type(2) {
	opacity: 0;
}

.openbtn.active span:nth-of-type(3){
    top: 30px;
    transform: translateY(-6px) rotate(45deg);
    width: 60%;
}

/*navigation*/
#sp-nav{
    position:fixed;
    z-index: 88;
	top:-150%;
    left:0;
	width:100%;
    height: 100vh;/*ナビの高さ*/
	background:url("../img/sp-bg.jpg")no-repeat center/cover;
	transition: all 0.6s;
	padding: 80px 0 40px;
}
#sp-nav.panelactive{
    top: 0;
}

/*ナビゲーションの縦スクロール*/
#sp-nav.panelactive #g-nav-list{
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999; 
    width: 100%;
    height: 100vh;/*表示する高さ*/
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
#sp-nav ul {
	width: 100%;
	max-width: 500px;
	margin: auto;
}
#sp-nav li{
	list-style: none;
    text-align: center; 
}
#sp-nav li a{
	text-decoration: none;
	padding:13px 10px 5px;
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: bold;
	font-size: 20px;
	opacity: 1;
}
#sp-nav li a span{
	font-size: 14px;
	padding-left: 10px;
	font-weight: 400;
}
#sp-nav li a:hover{
	opacity: 1;
}
.sp-cta{
	margin: 30px auto 10px;
	width: 80%;
	max-width: 400px;
}
.sp-cta .m1_tel a,.sp-cta .m1_mail a{
	text-align: center;
	padding: 1rem ;
	margin-bottom: 10px;
	background: rgba(255,255,255,.2);
	font-size: 20px;
	
}
.sp-cta .m1_sns{
	margin-left: 20px;
	height: 65px;
	border: 1px solid #eee;
}
.sp-cta .m1_sns a{
	display: block;
	width: 100%;
	height: 100%;
	padding: .6rem;
	text-align: center;
	background: rgba(255,255,255,.2);
	}	
.sp-cta .m1_tel a::before,
.sp-cta .m1_mail a::before{
	top: 50%;
	transform: translateY(-50%);
	left: 3rem;
}
.sp-cta .m1_tel a:hover,
.sp-cta .m1_mail a:hover{
	background: rgba(255,255,255,.4)
}
/*================================================
	Footer
=========================*/
footer{
	background: #111;
	padding: 80px 0;
	position: relative;
	z-index: 0;
}
footer::before{
	position: absolute;
	content: 'CONTACT';
	font-family: "Ramabhadra", sans-serif;
	font-size: clamp(60px,10vw,195px);
	color:rgba(212,212,212,.1);
	font-weight: 900;
	right: 0;
	top: -10px;
	line-height: 1;
	z-index: -1;
	transform: scale(1, 1.3);
	vertical-align: bottom;
}

.flogo{
	width: 30%;
	max-width: 300px;
	padding: 0 20px;
	margin-bottom: 30px;
}

.flogo img{
	width: 100%;
	object-fit: contain;
}
.flogo p{
	font-size: 14px;
}

.f_right{
	width: 68%;
	display: flex;
	flex-direction: column;
}
.f_tight_top{
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	width: 100%;
	padding:1rem 2rem;
	border-bottom: 1px solid #fff;
	margin-bottom: 15px;
}
.f_tel .num{
	font-size: clamp(1.85rem, -0.632rem + 4.84vw, 3rem);
	letter-spacing: .2rem;
	  pointer-events: none;
	line-height: 1.3;
}
.f_tel p{
	text-align: center;
}
.map-btn{
	display: block;
	position: relative;
	padding: .5rem 2.5rem;
	padding-left: 3.5rem;	
	text-align: center;
	border: 2px solid #fff;
	border-radius: 50px;
	font-family: "Ramabhadra", sans-serif;
	background: #111;
}
.map-btn::before{
	position: absolute;
	content: '\f3c5';
	font-family: "Font Awesome 6 Free";
	font-weight: 600;
	left: 1.5rem;
	top: .5rem;
}
.map-btn:hover{
	background: rgba(255,255,255,.2);
}
.f_tight_contact {
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	width: 100%;
}
.f_tight_contact .f_mail{
	display: block;
	width: 55%;
	margin: 10px auto;
	background: #fff;
	color: #333;
	text-align: center;
	padding: 1.5rem;
	font-family: "Anton SC", sans-serif;
	font-size: 2rem;
}

.f_tight_contact .f_sns{
	width: 40%;
	border: 1px solid #fff;	
	padding: 1.5rem;
	margin: 10px auto;
	text-align: center;
}
.f_tight_contact .f_sns img{
	width: 70%;
	object-fit: contain;
	vertical-align: bottom;
}
.f_tight_contact a:hover{
	opacity: .6;
}
@media(max-width:820px){
	footer .flexbox{
		flex-direction: column;
	}
	.flogo, .f_right{
		width: 100%;
	}
	.f_tel .num{
		font-size: clamp(1.85rem, 1.289rem + 2.36vw, 2.5rem);
	}	
}
@media(max-width:580px){
	.flogo{
		margin: 0 auto 20px;
	}	
	.f_tight_top{
		flex-direction: column;
		align-items: center;
		gap:15px;
	}	
	.f_tight_contact a{
		width: 80%;
	}	
	.f_tel .num{
		pointer-events:auto;
	}	
}


/*================================================
	Page-top
=========================*/
.pagetop {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 80px;
  height: 80px;
  z-index: 999;
  display: flex;
  justify-content: center;
  align-items: center;
	transition: .5s;
}

/* 回転するSVG */
.pagetop__circle {
  width: 100%;
  height: 100%;
  animation: rotate 12s linear infinite;
}

/* 真ん中の矢印 */
.pagetop__arrow {
  position: absolute;
  font-size: 20px;
  color: #eee;
  pointer-events: none;
}

/* 回転アニメーション */
@keyframes rotate {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* スクロールするまで非表示 */
#pagetop {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s, visibility 0.4s;
}
#pagetop.show {
  opacity: 1;
  visibility: visible;
}

.pagetop:hover{
	transform: scale(1.2);
	transition: .5s;
}


/*================================================
	fv
=========================*/
.fv_wrapper{
	width: 100%;
	aspect-ratio: 5 / 4;
	max-height: 100vh; 
	background: #eee;
	position: relative;
	z-index: 0;
	overflow: hidden;
}
.fv_wrapper::before{
	position: absolute;
	content: '';
	width: 100%;
	height: 100%;
	background:linear-gradient(rgba(32, 33, 36, 0.2),rgba(32, 33, 36, 1));
	top: 0;
	left: 0;
	z-index: 1;
}
.mask::before,.mask::after{
	position: absolute;
	content: '';
	width: 30%;
	height: 110%;
	top: 0;
	background:rgba(32, 33, 36, 0.4);
	z-index: 2;
}
.mask::before{
	left: 0;
	clip-path: polygon(0 0, 100% 0, 50% 100%, 0 100%);
	animation:fadeLeftAnime 1s forwards;
	opacity:0;	
}

.mask::after{
	width: 20%;
	right: 0;
	clip-path: polygon(50% 0, 100% 0, 100% 100%, 0 100%);	
	animation:fadeRightAnime 1s forwards;
	opacity:0;	
}

.fv_wrapper #top_slider {
	width: 100%;
	height: 100vh!important;
}

.catch{
	position: absolute;
	width: 80%;
	max-width: 800px;
	bottom:5vw;
	left: 8vw;
	z-index: 5;
	font-size: 2rem;
}
.catch h2{
	font-size: 5rem;
	line-height: 1.3;
	margin-bottom: 15px;
}
@media(max-width:1024px){
	.fv_wrapper #top_slider {
		aspect-ratio: 5 / 4!important;
		max-height: 100vh!important; 
		height: auto!important;
	}	
}

@media(max-width:820px){
.catch{
	font-size:clamp(1rem, 0.136rem + 3.64vw, 2rem);
}
.catch h2{
	font-size: clamp(2rem, -0.591rem + 10.91vw, 5rem);
}	
}




/*================================================
	index	
=========================*/
/*news*/
#newsWrap{
	background: #333;
	padding: 1.5rem;
}

#newsList{
	height: 200px;
	overflow-y: auto;
	padding: 1rem;
}

#newsList li{
	padding: 1rem 1.5rem;
	border-bottom: 1px dotted #fff;
	transition: .4s
}
#newsList .title{
	padding-left: 2rem;
	transition: .4s
}
#newsList li:hover{
	opacity: .7;
	background: rgba(255,255,255,.1);
	transition: .4s
}
#newsList a:hover .title{
	letter-spacing: .2rem;
	transition: .4s
}

#newsList::-webkit-scrollbar {
  width: 3px;
}

#newsList::-webkit-scrollbar-track {
  background-color: transparent;
}

#newsList::-webkit-scrollbar-thumb {
  background-color: #eee;
  border-radius: 8px;
}
@media(max-width:600px){
	#newsWrap{
		padding: .5rem;
	}	
}

/*AboutUs*/
.about_ttl{
	position: relative;
}
.about_ttl_bg{
	width: 70%;
	height: 350px;
}
.about_ttl_bg img{
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.about_ttl h2{
	position: absolute;
	font-size: 8rem;
	color:rgba(255,255,255,.3);
	z-index: 2;
	top: 25%;
	right: 5%;
	letter-spacing: .3rem;
	font-family: "Ramabhadra", sans-serif;
}

.about_txt_wrap{
	display: flex;
	justify-content:space-between;
	padding: 100px 0;
}

.about_txt{
	width: 65%;
	padding-bottom: 40px
}
.about_txt_wrap .btn_wrap{
	width: 30%;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	margin-bottom: 0;
}

.about_txt h3{
	font-size: 2.3rem;
	margin-bottom: 35px;
	line-height: 1.5;
}
.about_txt_wrap .mbtn{
	margin-left: auto;
}
@media(max-width:1023px){
	.about_ttl_bg{
		width: 90%;
		height: auto;
        padding-bottom: 7vh;
	}
	.about_ttl_bg img{
		vertical-align: top;
		height: auto;
	}
	.about_ttl h2{
		font-size:clamp(3.5rem, 0.845rem + 11.18vw, 8rem);
		top: 40%;
		right: 5%;
	}
	.about_txt_wrap{
		padding: 3vh 0;
		flex-direction: column;
	}
	.about_txt{
		width: 95%;
		margin: 0 auto;
	}
	.about_txt_wrap .btn_wrap{
		width:95%;
	}
}
@media(max-width:820px){
	.about_txt h3{
		font-size: clamp(1.35rem, 0.53rem + 3.45vw, 2.3rem)
	}
}
@media(max-width:500px){
	.about_txt_wrap{
		padding: 3vh 0;
		flex-direction: column;
	}	
}

/*service*/
.service_link{
	display: flex;
	padding-bottom: 20px;
	gap:10px;
}
.service_link_list{
	width: 48%;
	height: 45vh;
	position: relative;
	overflow: hidden;
}
.service_link_list .link_item{
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
	color: #333;
}

.service_link_list .link_item .en{
	font-family: "halogen", sans-serif;
	font-weight: 700;
	font-style: normal;
	margin-bottom: 10px;
}

.service_link_list .link_item img{
	width: 100%;
	height: 400px;
	object-fit: cover;
	filter: grayscale(1);
	transition: all .3s;
}

.service_link_list .link_item .txt_area{
	position: absolute;
	width: 100%;
	text-align: center;
	top: 50%;
	left: 50%;
	padding: 5px 0;
	transform: translate(-50%,-50%);
	background-color: rgb(255, 255, 255,0.9);
}

.service_link_list .link_item:hover img{
	transform: scale(1.08);
	filter: grayscale(0);
	transition: all .3s;
}
.service_link_list .btn{
	position: absolute;
	bottom: 0;
	right: 0;
	background-color: #202020;
	color: #fff;
	padding: 0 50px;
	opacity: 0;
	transition: all .3s;
}
.service_link_list .btn p{
	letter-spacing: 0.1em;
	font-style: italic;
}
.service_link_list .link_item:hover .btn{
	opacity: 0.8;
	transition: all .3s;
}
@media(max-width:768px){
	.service_link{
		flex-direction: column;
	}
	.service_link_list{
		width: 95%;
		height: 45vh;	
		margin: 0 auto;
	}
	.service_link_list .link_item img{
		filter: grayscale(0);
	}	
}

/*works*/
.t_works{
	position: relative;
}

.t_works .ac_img{
	position: absolute;
	top: 50%;
	left: 17%;
	opacity: 0.2;
	width: 360px;
	transform: translateY(-50%);
	z-index: -1;
}


.t_works .inner{
	max-width: none;
	width: 98%;
}
.flex_bet {
    display: flex;
    justify-content: space-between;
}
.t_works .right{
	width: 60%;
	background-color: #252525;
	padding: 100px 0;
}


.t_works .right ul{
	width: 90%;
	margin: 0 0 0 auto;
}

.t_works ul li img{
	aspect-ratio: 1 / 1;
}

@media (max-width: 1200px){
	.t_works .flex_bet{
		flex-direction: column;
	}
	.t_works .right{
		width: 100%;
		padding: 40px 0;
		margin-top: 60px;
	}
	.t_works .ac_img{
		width: 200px;
		top: 40%;
		right: 7%;
		left: auto;
	}
}

@media (max-width: 650px){
	.t_works .right ul{
		width: 100%;
	}
}


.min-slider img {
    width:100%;/*スライダー内の画像を横幅100%に*/
    height:auto;
	aspect-ratio: 4 / 3;
}

.min-slider .slick-slide {
    margin:0 10px;/*スライド左右の余白調整*/
}

/*reason*/
.reason-img{
	overflow: hidden;
}
.reason-img img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: left;
}
.reason-txt{
	padding:100px 2% 0; 
}

.reason_list{
	display: flex;
	border-bottom: 1px solid #fff;
	gap:30px;
	padding: 8px 20px;
	margin-bottom: 50px;
	font-size: clamp(1.35rem, 0.19rem + 2.41vw, 2rem);
	
}
.reason_list .list_num{
	font-weight: 600;
	font-family: "Anton SC", sans-serif;
	font-size: clamp(2rem, 1.108rem + 1.86vw, 2.5rem);
	line-height: 1.5
}
@media(max-width:768px){
	.reason-txt{
		padding:50px 2% 0; 
	}
	.reason_list{
		gap:2vw;
		padding: 8px 1vw;
		margin-bottom: 30px;
		font-size: clamp(1.2rem, 0.612rem + 2.47vw, 1.8rem);

	}
	.reason_list .list_num{
		font-size: clamp(1.7rem, 1.21rem + 2.06vw, 2.2rem);
	}	
}
/*t_recruit*/
.rec_txt{
	padding: 100px 50px 0;
}

.rec_img img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: left;
}
@media(max-width:1024px){
	.rec_txt{
		padding: 60px 50px 0;		
		width: 50%;
	}
	.rec_img {
		width: 48%;
	}
}

@media(max-width:768px){
	.rec_txt{
		padding: 0 20px 0;
		width: 90%;
		margin: 0 auto;
	}
	.rec_img {
		width: 100%;
	}	

}

/*================================================
	下層共通
=========================*/
.kfv{
	background: url(../img/kfv_bg.jpg);
	background-position: center top;
	background-repeat: no-repeat;
	background-size: cover;
	padding: 120px 0 50px;
	text-align: center;
	position: relative;
}
.kfv .en{
	position: absolute;
	color: rgba(200,200,200,.3);
	font-weight: 900;
	font-size: 3.5rem;
	top: 55%;
	left: 50%;
	transform: translate(-50%,-50%);
}








/*================================================
	
=========================*/
.gtxt{
	padding: 50px 0;
	max-width: 1000px;
	margin: 0 auto;
}
.nemu{
	text-align: end;
	padding: 20px 0;
	font-family: "Yuji Mai", serif;
}

/*================================================
	service
=========================*/
.menu_txt{
	text-align: center;
}
.s_item_wrap{
	display: flex;
	flex-wrap: wrap;
	gap: 15px 3%;
}
.s_item{
	width: calc(100% / 3 - 3%);
}
.s_item figure{
	width: 100%;
	aspect-ratio: 4 / 3;
}
.s_item figure img{	
	border-radius: 20px;
}
.s_item dt{
	text-align: center;
	font-size: 1.3rem;
}

@media(max-width:884px){
	.menu_txt{
		text-align:left;
	}	
	.mbr{
		display: none;
	}
	.s_item{
		width: calc(100% / 2 - 3%);
	}
	.s_item dt{
		font-size: clamp(1.12rem, 0.886rem + 0.75vw, 1.3rem);
	}	
}
@media(max-width:499px){
	.s_item_wrap{
		gap: 15px 0;
	}	
	.s_item{
		width:100%;
	}
}


.f_list_wrap{
	display: flex;
	flex-wrap: wrap;
}

.f_list li{
	position: relative;
	padding-left: 4rem;
	margin-bottom: 10px;
	font-size: 1.3rem;
}
.f_list li::before{
	position: absolute;
	content: '';
	background: url("../img/check.png")no-repeat center/contain;
	width: 1.5rem;
	height: 1.5rem;
	top: 5px;
	left: 1.5rem;
}
@media(max-width:499px){
	.f_list li {
		padding-left: 2rem;
		font-size: 1.1rem;
	}
	.f_list li::before {
		top: 3px;
		left: .2rem;
	}	
}


.titleimg{
	width: 100%;
	height: 100%;
	max-width: 600px;
	margin: 0 auto 30px; 	 
	object-fit: contain;
}

ul.merit_list{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 45px;
}
ul.merit_list li {
    position: relative;
    background: url(../img/img_meritlist_bg.png) top left no-repeat #fff;
    box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
    width: 330px;
    height: 350px;
    padding: 0 40px;
    counter-increment: number 1;
	color: #222;
}
ul.merit_list li::before {
    font-size: 52px;
    font-weight: 700;
    color: #fff;
    content: '0' counter(number);
    left: 54px;
    top: -10px;
	font-family: "Ramabhadra", sans-serif;
}
ul.merit_list p {
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    padding-top: 100px;
}
ul.merit_list li p::before {
    content: '';
    position: absolute;
    width: 100px;
    height: 100px;
    top: 80px;
    left: 0;
    right: 0;
    margin: auto;
}


ul.merit_list li:nth-child(2){margin-top: 45px;}
ul.merit_list li:nth-child(3){margin-top: 90px;}
ul.merit_list li:nth-child(5){margin-top: 45px;}

ul.merit_list li:nth-child(1) p::before{background: url(../img/ico_merit01.png)no-repeat center/contain;}
ul.merit_list li:nth-child(2) p::before{background: url(../img/ico_merit02.png)no-repeat center/contain;}
ul.merit_list li:nth-child(3) p::before{background: url(../img/ico_merit03.png)no-repeat center/contain;}
ul.merit_list li:nth-child(4) p::before{background: url(../img/ico_merit04.png)no-repeat center/contain;}
ul.merit_list li:nth-child(5) p::before{background: url(../img/ico_merit05.png)no-repeat center/contain;}

@media(max-width:1120px){
	ul.merit_list li:nth-child(3){margin-top: -45px;}	
	ul.merit_list li:nth-child(5){margin-top: 0px;}
	
}
@media(max-width:734px){
	ul.merit_list li:nth-child(2),
	ul.merit_list li:nth-child(3){margin-top: 0px;}
}

/*================================================
	works
=========================*/
.gallery{
	margin-bottom: 30px;
}
.gallery ul{
	display: flex;
	flex-wrap: wrap;
}
.gallery li{
	width: calc(100% / 4 - 3%);
	margin: 10px 1.5%;
	aspect-ratio: 4 / 3;
}
.gallery li img{
	object-position: center bottom;
}

@media(max-width:840px){

.gallery li{
	width: calc(100% / 3 - 3%);
}	
}

@media(max-width:500px){

.gallery li{
	width: calc(100% / 2 - 2%);
	margin: 10px 1%;
	aspect-ratio: 4 / 3;
}	
}

/*================================================
	flow
=========================*/

.flow {
    padding: 40px 0 0;
    position: relative
}

@media screen and (max-width: 600px) {
    .flow {
        padding:80px 0 0
    }
}

.flow>.inner>p {
    text-align: center
}

@media screen and (max-width: 600px) {
    .flow>.inner>p {
        text-align:left;
        font-size: 12px;
        line-height: 2.2916
    }
}

.flow .flow_step {
    margin-top: 65px
}

.flow .flow_step .flow_step_item {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap
}

.flow .flow_step .flow_step_item .flow_step_img,.flow .flow_step .flow_step_item .flow_step_cnt {
    width: 50%
}

@media screen and (max-width: 960px) {
    .flow .flow_step .flow_step_item .flow_step_img,.flow .flow_step .flow_step_item .flow_step_cnt {
        width:100%
    }
}

.flow .flow_step .flow_step_item .flow_step_img {
    width: 500px;
    height: 200px;
    overflow: hidden;
	border-radius: 25px;
}

.flow .flow_step .flow_step_item .flow_step_img img{
	object-fit: cover;
	width: 100%;
	height: 100%;
}
@media screen and (max-width: 960px) {
    .flow .flow_step .flow_step_item .flow_step_img {
        width:100%;
        height: 300px;
        order: 1;
        margin-top: 15px
    }
}

@media screen and (max-width: 600px) {
    .flow .flow_step .flow_step_item .flow_step_img {
        height:135px
    }
}

.flow .flow_step .flow_step_item .flow_step_img>img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.flow .flow_step .flow_step_item .flow_step_cnt {
    padding-left: 53px
}

@media screen and (max-width: 960px) {
    .flow .flow_step .flow_step_item .flow_step_cnt {
        order:0;
        padding-left: 0
    }
}

.flow .flow_step .flow_step_item .flow_step_cnt .flow_step_num {
    color: #666;
    letter-spacing: .2em;
	font-weight: 600;
}

@media screen and (max-width: 960px) {
    .flow .flow_step .flow_step_item .flow_step_cnt .flow_step_num {
        font-size:11px
    }
}

.flow .flow_step .flow_step_item .flow_step_cnt>h3 {
    font-weight: 500;
    font-size: 20px;
    margin: 10px 0
}

@media screen and (max-width: 960px) {
    .flow .flow_step .flow_step_item .flow_step_cnt>h3 {
        font-size:15px;
        margin: 5px auto
    }
}

.flow .flow_step .flow_step_item .flow_step_cnt .flow_step_txt {
    line-height: 2
}

@media screen and (max-width: 960px) {
    .flow .flow_step .flow_step_item .flow_step_cnt .flow_step_txt {
        font-size:12px;
        line-height: 1.6666
    }
}

.flow .flow_step .flow_step_item:not(:last-child)::after {
    content: "";
    width: 124.5px;
    height: 54px;
    background: url("../img/ico_01.png") center/100% no-repeat;
    display: block;
    margin: 30px auto
}

@media screen and (max-width: 960px) {
    .flow .flow_step .flow_step_item:not(:last-child)::after {
        order:2;
        background-image: url("../img/ico_01_sp.png");
        width: 3px;
        height: 57px;
        margin: 20px auto
    }
}

.flow .flow_step .flow_step_item:nth-child(2n) {
    flex-direction: row-reverse
}

.flow .flow_step .flow_step_item:nth-child(2n) .flow_step_cnt {
    padding-left: 0;
    padding-right: 53px
}

@media screen and (max-width: 960px) {
    .flow .flow_step .flow_step_item:nth-child(2n) .flow_step_cnt {
        padding-right:0
    }
}

.flow .flow_step .flow_step_item:nth-child(2n)::after {
    transform: rotateY(180deg)
}



/*================================================
	about
=========================*/
.about_table tr:nth-child(odd) {
    background-color: #3B3B3B;    /* 背景色指定 */
}
.about_table th{
	padding:1rem .5rem;
	width: 28%;
}
.about_table td{
	padding: 1rem;	
}
.map{
	width: 100%;
	height: 40vh;
}

iframe{
	filter: grayscale(100%) invert(92%) contrast(83%);
	transition: .5s;
}
.map iframe:hover{
	filter: grayscale(30%);	
	transition: .5s;
}


/*お問い合わせ*/
.contact .tel_contact{
	text-align: center;
	border-top: 3px double rgba(255, 255, 255, 0.5);
	border-bottom: 3px double rgba(255, 255, 255, 0.5);
	padding: 15px 0;
	margin: 0 auto;
	width: 94%;
	max-width: 600px;
}
.contact .tel_contact a{
	display: inline-block;
	font-size: 2.4rem;
	font-weight: 500;
	white-space: nowrap;
	letter-spacing: 0.08em;
	line-height: 1.7;
}
.contact .tel_contact a:hover{
	opacity: 0.6;
}
.contact .tel_contact p{
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.2em;
}
@media (max-width: 750px){
	.contact .tel_contact{
		padding: 20px 0;
	}
	.contact .tel_contact a{
		font-size: 2rem;
	}
}
@media (max-width: 450px){
	.contact .tel_contact a{
		font-size: 1.6rem;
	}
}


/*メールフォーム*/
.mailform{
	margin: 0 auto;
	width: 94%;
	max-width: 960px;
}
.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: #000;
  	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: #1f2e55;
	color: #fff;
	border-radius: 2px;
	margin-top: 5px;
	border: 1px solid #aaa;
	font-size: 0.9rem;
}
.mailform .postal_btn:hover{
	opacity: 0.8;
}
.mailform button{
	display: block;
	text-align: center;
	transition: .6s;
	font-size: 1rem;
	font-weight: 500;
	padding: 8px 5px;
	margin: 0 auto;
	width: 250px;
	background: #000;
	border: 1px solid #fff;
	color: #fff;
}
.mailform button:hover{
	background: #fff;
	color: #000;
}
.mailform button::before{
	font-family: "Font Awesome 6 Free";
	content: "\f1d8";
	font-weight: 700;
	margin-right: 10px;
}

@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: #f4f4f4;
	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: #0e0e0e;
}
.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: 250px;
	overflow-y: scroll;
}
.privacy_flame p{
	padding: 10px;
	font-size: 0.8rem;
}
.privacy_flame p span{
	display: block;
	color: #f4f4f4;
	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: #333;
}
.privacy_flame::-webkit-scrollbar-button {
    display: none;
}
.privacy_flame::-webkit-scrollbar-thumb, .privacy_flame::-webkit-scrollbar-corner {
    background: #fafafa;
}

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



/*==============
	news-detail.php用
==========================================*/

.detail{
	border-bottom: 2px solid #eee;
}
/*.detail div{
	font-size: clamp(16px, 2vw, 18px) !important;
}*/
.ntitle{
	padding-bottom: 3px;
	border-bottom: 1px solid #eee;
}

.detail #up_ymd{
	text-align: end;
	font-size: 16px;	
}
.detail #up_ymd span{
	position: relative;
	padding-left: 25px;
}

.detail #up_ymd span::before{
	position: absolute;
	content: '\f073';
	font-family: "Font Awesome 6 Free";
	font-weight: 600;
	width: 10px;
	height: 18px;
	left: 3px;
}

.detailUpfile{
	max-width: 680px;
	margin: 15px 0;
}
.detailUpfile img{
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.detail font{
	padding-bottom: 2px;
	border-bottom: 1px solid #eee;
}

.backORcloseBtn{
	margin: 50px 0 30px;
}

