@charset "utf-8";
/* CSS Document */
/*=================================================
	header
=======================*/
#header{
	position: fixed;
	width: 100%;
	height: 80px;
	left: 0;
	top: 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 5px 2vw;
	z-index: 99;
}
.hlogo{
	height: 100%;
	width: 48%;
	min-width: 280px;
}
.hlogo img{
	height: 100%;
	width: 100%;
	object-fit: contain;
}
.pcnav ul{ 
	display: flex;
	justify-content: flex-end;
	align-items: center;
}
.pcnav li{
	padding-right: 20px;
	display: flex;
	align-items: center;
}
.pcnav li a{
	display: block;
	padding: 0 10px;
	
}
.pcmail a{
	display: flex;
	align-items: center;
	height: 100%;
}
.pcmail img{
	width: 30px;
	height: auto;
	display: block;
}
.pcmail a svg .st0{	
	fill: #ceaa63;
}
.pcnav li a:hover{
	color: #ceaa63;
}
.pcnav li a:hover{
	
  }

@media(max-width:929px){
	#header{
		height: 65px;
	}
	.pcnav{
		display: none;
	}
}


/*=================================================
 MobileNavi
=======================*/
.openbtn{
	position: relative;
    width: 50px;
    height:50px;
	top: 5px;
	background: #111;
	border: 1px solid #ceaa63;
	border-radius: 15px;
}
@media(min-width:930px){
	.openbtn{
		display: none;
	}	
}
/*×に変化*/	
.openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 25%;
    height: 2px;
    border-radius: 2px;
	background-color: #ceaa63;
  	width: 50%;
  }

.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;
    left: 25%;
    transform: translateY(6px) rotate(-45deg);
}

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

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


#g-nav{
    position:fixed;
    z-index: 88;
	top:-150%;
    left:0;
	width:100%;
    height: 100vh;/*ナビの高さ*/
	background:url("../img/spnav_bg.jpg");
    /*動き*/
	transition: all 0.6s;
}

/*アクティブクラスがついたら位置を0に*/
#g-nav.panelactive{
    top: 0;
}
/*ナビゲーション*/
#g-nav ul {
    padding-top: 95px;
	margin-bottom: 50px
}

/*リストのレイアウト設定*/

#g-nav li{
	list-style: none;
    text-align: center; 
}

#g-nav li a{
	color: #fff;
	text-decoration: none;
	padding:10px;
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: bold;
}
#g-nav li a:hover{
	color: #ceaa63;
}
.navlogo{
	width: 55%;
	max-width: 280px;
	margin: 30px auto;
}

@media(max-width:600px){
	.openbtn{
		display: none;
	}
}
@media(max-width:374px){
#g-nav ul {
	margin-bottom: 30px
}	
	#g-nav li a{
	padding:5px 10px ;
}
.navlogo{
	margin: 0 auto 30px;
}	
}

/*=================================================
 footer
=======================*/
/*f_contact*/
.fcta{
	background: url("../img/footer.jpg")no-repeat center/cover;
	z-index: 2;
}
.fcta::before{
	position: absolute;
	content: '';
	width: 100%;
	height: 100%;
	z-index: -1;
	background: rgba(0,0,0,.7);
	top: 0;
	left: 0;
}

.cbtn a {
	width: 350px;
	font-size: 1.5rem;
	font-weight: 600;
}
.cbtn a span{
	padding-left: 2.5rem;
	position: relative;
}
.cbtn.tel a span::before,
.cbtn.mail a span::before{
	position: absolute;
	left: 0;
	top: -5px;	
	font-family: "Font Awesome 6 Free";
}
.cbtn.tel a span::before{
	content: '\f095';
}
.cbtn.mail a span::before{
	content: '\f0e0';
}
@media (max-width: 450px) {
	.cbtn{
		margin:auto;
	}
	.cbtn a {
		margin: 20px auto;	
		width: 320px;	
        max-width: 90%;
	}
}

footer{
	padding: 5vh;
}
.flogo{
	margin: 0 auto;
	width: 50%;
	max-width: 350px;
}
.copy{
	text-align: center;
	font-size: 15px;
	padding-bottom: 5px;
}

@media(max-width:600px){
	.copy{
		padding-bottom: 60px;
		font-size: 10px;
	}
}
/*=================================================
#page-top
=======================*/
#page-top a{
	display: flex;
	justify-content:center;
	align-items:center;
	border-radius: 5px;
	width: 60px;
	height: 60px;
	color: #ceaa63;
	text-align: center;
	text-transform: uppercase; 
	text-decoration: none;
	font-size:0.6rem;
	transition:all 0.3s;
	position: relative;
}

#page-top a::after{
	position: absolute;
	content: '';
	display: block;
	width:40%;
	aspect-ratio:1/1;
	transform: rotate(-45deg);
	border-top:1px solid #ceaa63;
	border-right:1px solid #ceaa63;
	bottom: 15px;
}


#page-top a::before{
	position: absolute;
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    border-bottom: 1px solid #ceaa63;
    bottom: 10px;
}

#page-top a:hover::after{
	animation: loop2 800ms linear infinite;
}

@keyframes loop2 {
	
	0%{transform: translateY(0) rotate(-45deg);}
	50%{transform: translateY(-10px) rotate(-45deg);}
  100%{transform: translateY(0) rotate(-45deg);}
}

/*リンクを右下に固定*/
#page-top {
	position: fixed;
	right: 30px;
	bottom:18px;
	z-index: 2;
    /*はじめは非表示*/
	opacity: 0;
	transform: translateY(100px);
}

/*　上に上がる動き　*/

#page-top.UpMove{
	animation: UpAnime-pagetop 0.5s forwards;
}
@keyframes UpAnime-pagetop{
  from {
    opacity: 0;
	transform: translateY(100px);
  }
  to {
    opacity: 1;
	transform: translateY(0);
  }
}

/*　下に下がる動き　*/

#page-top.DownMove{
	animation: DownAnime-pagetop 0.5s forwards;
}
@keyframes DownAnime-pagetop{
  from {
  	opacity: 1;
	transform: translateY(0);
  }
  to {
  	opacity: 1;
	transform: translateY(100px);
  }
}



@media(max-width:800px){
	
	#page-top {
		right: 10px;
    	bottom: 10px;
	}
	
	#page-top a {
    	width: 40px;
		height: 40px;
	}
	
}

@media(max-width:600px){
	@keyframes UpAnime-pagetop{
	  from {
		opacity: 0;
		transform: translateY(100px);
	  }
	  to {
		opacity: 1;
		transform: translateY(-60px);
	  }
	}

}

/*=================================================
	sp_footernav
=======================*/
.sp_footbtn{
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	z-index: 77;
	background: #222;
	border-top: 2px solid #ceaa63;
}
.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: 13px;
}
.sp_footbtn .icon{
	height: 30px;
	width:30px;
	margin: 0 auto;

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



@media(min-width:601px){
	.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;
	}
}


/*=================================================
FV
=======================*/
#fv{
	padding: 0;
	z-index: 3;
	
}
.fv {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  max-height: 100vh;
  overflow: hidden;
}

.fv video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.spfv {
  display: none;
}

@media (max-width: 500px) {
  .pcfv {
    display: none;
  }	
  .spfv {
    display: block;
  }	
  .fv {
    position: relative;
    width: 100%;
    aspect-ratio: auto;
    height: 100vh;
    overflow: hidden;
  }
}


/*=================================================
	ibdex
=======================*/
.container{
	padding: 0;
}

/*==greet==*/
.greet{
	background: #111;
}
.gttl{
	padding-top: 120px;
	font-size: 2.3rem;
	position: relative;
	text-align: center;
}
.gttl::before{
	position: absolute;
	content: '';
	width: 1px;
	height: 100px;
	top: 0;
	left: 50%;
	background: #fff;
}
.gtxt{
	text-align: center;
}



/* greet-photo */

.greet-photo{
	display: block;
	position: relative;
	width: 100%;
	height: 40vw;
}


.greet-photo-left {
	position: absolute;
	top: 13vw;
	left: 0;
}


.greet-photo-left span{
	display: block;
	width: calc(48vw * 1.05);
	aspect-ratio: 75/48;
	background: url("../img/greet_img_01.png") no-repeat right;
	background-size: cover;	
	position: relative;
	z-index:1;
}


.greet-photo-right{
	position: absolute;
	top: 3vw;
	right: 0;
}

.greet-photo-right span{
	display: block;
	width:  calc(55vw * 1.05);
	aspect-ratio: 95/50;
	background: url("../img/greet_img_02.png") no-repeat left;
	background-size: cover;
	z-index: 2;
	
}
@media(max-width:759px){
	.gtxt{
		text-align: left;
	}	
	.greet-photo{
		height: 50vw;
	}	
	.greet-photo-right{
		top: -5vw;
	}	
	.greet-photo-right span{
		width:  calc(56vw * 1.05);
		aspect-ratio: 95/55;
	}	
	.greet-photo-left {
		top: auto;
		bottom:0;
	}
	.greet-photo-left span{
		width: calc(50vw * 1.05);
		aspect-ratio: 75/52;
	}	
}


/*==influence==*/
.influence_wrap{
	padding: 13vh 0;
}

.influence{
	display: flex;
	justify-content: space-between;
	margin: 80px 0 50px;
}

.influ_ttl_wrap{
	width: 200px;
}
.influ_ttl{
	  -ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	padding-top: 120px;
	font-size: 3rem;	
	text-align: center;
	position: relative
}
.influ_ttl::before{
	position: absolute;
	content: '';
	width: 1px;
	height: 100px;
	top: 0;
	left: 50%;
	background: #fff;
}
.influ_link_wrap{
	width: calc(100% - 200px);
}

.link_box{
	display: flex;
	height: clamp(26.875rem, -16.761rem + 68.18vw, 34.375rem);
}

.link_box .link{
	width: calc(100% / 3);
	position: relative;
	overflow: hidden;
}
.link a{
	position: relative;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	display: block;
	z-index: 3;
	padding: 1.5rem;
}
.link a::before{
	position: absolute;
	content: '';
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,.5);
	top: 0;
	left: 0;
	z-index: 0;
}
.link a::after{
	position: absolute;
	content: '';
	width: calc(100% - 3rem);
	height:calc(100% - 3rem);
	border: 1px solid #fff;
	top: 1.5rem;
	left: 1.5rem;
	z-index: 1;
}
.link_box .linkimg{
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	transition: .4s;
	z-index: -1;
}
.linkimg img{
	height: 100%;
	width: 100%;
	object-fit: cover;
	object-position: center;
}

.link .en{
	position: absolute;
	  -ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;	
	font-size: 2rem;
	z-index: 2;
	top: 1.8rem;
	left: 1.8rem;
}
.link .ja{
	position: absolute;
	font-size: clamp(1.3rem, -1.609rem + 4.55vw, 1.8rem);
	z-index: 2;
	bottom: 1.8rem;
	right: 1.8rem;
	line-height: 1.2;
}

.link a:hover::before{
	background: rgba(0,0,0,.3);
}
.link a:hover .linkimg{
	transform: scale(1.1);
	transition: .4s;
}
@media(max-width:1023px){
	.influ_ttl_wrap{
		width: 150px;
	}	
	.influ_link_wrap{
		width: calc(100% - 150px);
	}	
	.link_box{
		flex-direction: column;
		height: auto;
	}	
	.link_box .link{
		width: 100%;
		position: relative;
		overflow: hidden;
		height: 250px;
	}	
	.link .en{
		  -ms-writing-mode: lr-tb;
		writing-mode: horizontal-tb;
		font-size: clamp(1.7rem, 1.523rem + 0.75vw, 2rem);
	}	
	.link .ja{
		font-size:clamp(1.3rem, 1.005rem + 1.24vw, 1.8rem);
	}	
}
@media(max-width:599px){
	.influence{
		display: block;
		margin: 0;
	}	
	.influ_ttl_wrap,.influ_link_wrap{
		width: 100%;
	}		
	.influ_ttl {
		  -ms-writing-mode: lr-tb;
		writing-mode: horizontal-tb;
    padding-top: 120px;
    font-size: 3rem;
    text-align: center;
    position: relative;
	margin-top: -13vw;
		margin-bottom: 30px;
}
}


/*==nextbox====*/
.nextbox{
	padding: 10vh 0;
	position: relative;
}
.nbox_wrap{
	display: flex;
	align-items: center;
}
.nbox_img {
    width: 35vw;
    position: relative;
    margin-bottom: 5vw;
    max-width: 750px;
}
.nbox_img img {
	width: 100%;
	height: auto;
	object-fit: contain;
    box-shadow: 7px 7px 20px #000;
}
.nbox_img::before {
    display: block;
    content: '';
    position: absolute;
    width: 25vw;
    aspect-ratio: 4 / 1;
    background: url("../img/nbox_txt.png") no-repeat center;
    background-size: cover;
    bottom: -4vw;
    left: 5vw;
}
.nbox_txt_wrap{
	width: 65vw;
	padding: 2vh 5vw;
}
.nbox_txt_wrap h3{
	width: 80%;
	max-width: 600px;
	margin-bottom: 50px;
}
.nbox_txt_wrap p{
	text-shadow: 1px 1px 4px #000;	
	font-size: clamp(18px,2.1vw,20px);
}

.btn_flex{
	display: flex;
	flex-wrap: wrap;
	gap:15px;
	margin-top: 40px;
}
.btn_flex .mainbtn a{
	margin: 20px 15px;
}

@media(max-width:819px){
	.nbox_wrap{
		display: block;
	}
	.nbox_img {
		width: 55vw;
	}
	.nbox_img::before {
    	width: 43vw;
	}
	.nbox_txt_wrap{
		width: 100vw;
		padding: 2vh 5vw;
	}	
	.btn_flex{
		justify-content: center;
	}
}
/*===NEWS====*/
#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;
	}	
}

/*==SNSLink==*/
.sns_link{
	width: 80%;
	max-width: 400px;
	margin:auto;
	border: 1px solid #fff;
	transition: .4s;
	overflow: hidden;
}
.sns_link img{
	width: 100%;
	height: auto;
	object-fit: contain;
	transition: .4s;
}
.sns_link:hover{	
	outline: 3px solid #fff;	
	transition: .2s;
}
.sns_link:hover img{
	transform: scale(1.03);
	transition: .4s;
}


/*=================================================
	Subfv
=======================*/
.subfv{
	background: url("../img/spnav_bg.jpg");
	background-size: cover;
	text-align: center;
}
.pagettl {
	color: #999;
}
.pagettl .eyes{
	display: block;
	line-height: 1.3;
	font-size: 2.5rem;
	margin-top: 50px;
	color: #fff;
}
.pagettl.img{
	width: 85%;
	max-width: 500px;
	margin: 50px auto 0;
}
.pagettl.img img{
	vertical-align: bottom;
}

@media (max-width: 929px) {
	.subfv{
		padding: 100px 0 40px;
	}
	.pagettl .eyes{
		margin-top: 0px;
	}	
	.pagettl.img{
		margin: 0px auto;
	}	
}

/*=================================================
	INFLUENCE
=======================*/
.gttl .ja{
	display: block;
	font-size: 20px;
	font-family:YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
	letter-spacing: .2rem;
}

.inf_service_wrap{
	display: flex;
	justify-content: space-between;
}
.inf_sttl_wrap{
	width: 180px;
	display: flex;
	justify-content: center;
}

.inf_sttl_wrap h2{
	  -ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;	
}

.inf_sttl_wrap h2 .eyes{
	padding-top: 120px;
	font-size: 3rem;	
	text-align: center;
	position: relative
		
}
.inf_sttl_wrap h2 .eyes::before{
	position: absolute;
	content: '';
	width: 1px;
	height: 100px;
	top: 0;
	left: 50%;
	background: #fff;
}


.inf_main{
	width: calc(100% - 200px);
	position: relative;
	max-width: 1600px;
}
.inf_main_txt{
	max-width: 800px;
	width: 55%;
	padding: 3rem 9rem 3rem 4rem;
	margin-bottom: 25vh;
	background: #222;
}
.inf_main_img{
	position: absolute;
	width: clamp(320px,50%,1000px);
	aspect-ratio: 7 / 5;	
	max-height: 45vh;
	top: 30%;
	right: 5vw;
}
.inf_serv_subbox{
	border: 2px dashed #eee;
	padding:1.5vw;
}
.inf_serv_subbox .flexbox{
	gap:20px 20px;
}

.subbox_w{
	background: rgba(212,212,212,.4);
	padding: 2rem;
}
.subbox_w h3{
	text-align: center;
	margin-bottom: 30px;
	position: relative;
}
.subbox_w h3::after{
	position: absolute;
	content: '';
	width: 50px;
	height: 2px;
	background: #ceaa63;
	bottom: -10px;
	left: 50%;
	transform: translateX(-50%);
}
#s02{
	background: #2f2f2f;
}

@media(max-width:1199px){
	.inf_sttl_wrap{
		width: 100px;
	}	
	.inf_main{
		width: calc(100% - 100px);
		}
	.inf_main_txt{
		padding: 3rem 5rem 3rem 4rem;
	}	
	.inf_main_img{
		top: 25%;
		right: 0;
	}	
}
@media(max-width:990px){
	
	.inf_main_txt{
		width: 95%;
		padding: 3rem 3rem 5rem;
		margin-bottom: 0;
	}
	.inf_main_img{
		position: relative;
		width: 95%;
		margin-left: auto;
		top: -5vh;
		
	}
	.inf_main_img img{
		object-position: top;
	}	
}
@media(max-width:600px){
	.inf_service_wrap{
		display: block;
	}
	.inf_sttl_wrap{
		width: 100%;
	}	
	.inf_sttl_wrap h2{
		  -ms-writing-mode: lr-tb;
		writing-mode: horizontal-tb;
		padding-top: 120px;
		margin-bottom: 50px;
	}
	.inf_sttl_wrap h2 .eyes {
		font-size: clamp(2.4rem, 1.714rem + 3.43vw, 3rem);	
	}
	.inf_main{
		width: 100%;
	}
	.inf_main_txt{
		width: 98%;
		padding: 3rem 2vw 4rem;
	}
	.inf_main_txt .dttl{
		font-size: clamp(1.4rem, 1.057rem + 1.71vw, 1.7rem);
	}
	.inf_main_img{
		width: 98%;
		top: -5vh;
	}	
}

.d-slider {/*横幅94%で左右に余白を持たせて中央寄せ*/
   width:94%;
    margin:0 auto;
}

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

/*slickのJSで書かれるタグ内、スライド左右の余白調整*/
.d-slider .slick-slide {
    margin:0 10px;
}

/*矢印の設定*/

/*戻る、次へ矢印の位置*/
.d-slider .slick-prev, 
.d-slider .slick-next {
    position: absolute;/*絶対配置にする*/
    top: 42%;
    cursor: pointer;/*マウスカーソルを指マークに*/
    outline: none;/*クリックをしたら出てくる枠線を消す*/
    border-top: 2px solid #666;/*矢印の色*/
    border-right: 2px solid #666;/*矢印の色*/
    height: 15px;
    width: 15px;
}

.d-slider .slick-prev {/*戻る矢印の位置と形状*/
    left: -1.5%;
    transform: rotate(-135deg);
}

.d-slider .slick-next {/*次へ矢印の位置と形状*/
    right: -1.5%;
    transform: rotate(45deg);
}

/*ドットナビゲーションの設定*/

.d-slider .slick-dots {
    text-align:center;
	margin:20px 0 0 0;
}

.d-slider .slick-dots li {
    display:inline-block;
	margin:0 5px;
}

.d-slider .slick-dots button {
    color: transparent;
    outline: none;
    width:8px;/*ドットボタンのサイズ*/
    height:8px;/*ドットボタンのサイズ*/
    display:block;
    border-radius:50%;
    background:#ccc;/*ドットボタンの色*/
	border: 1px solid #eee;
}

.slick-dots .slick-active button{
    background:#333;/*ドットボタンの現在地表示の色*/
}



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

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

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

/*=================================================
	NEXT BOX
=======================*/
.b_catch{
	font-size:clamp(1.2rem, 0.598rem + 2.54vw, 2.5rem);
	text-align: center;
	font-family: "Zen Kaku Gothic New", sans-serif;	
}

.b_catch p{
	margin-bottom: 20px;
}
.b_catch_img{
	width: 80%;
	max-width: 450px;
	margin:20px auto;
}
.nlist{
	display: flex;
	flex-wrap: wrap;
}
.nlist li{
	width: calc(100% / 3);
	position: relative;
	margin-bottom: 15px;
	min-width: 255px;
}
.nb_imgarea{
	display: flex;
	justify-content: space-between;
	width: 45%;
}
.nb_imgarea .w48{
	width: 48%;
	aspect-ratio: 5 / 7;	
	overflow: hidden;
}
.nb_imgarea .w48:first-child{
	margin-top: 20px;
}
.nb_imgarea .w48:last-child{
	margin-bottom: 20px;
}
.nb_imgarea img ,.nb_imgarea video {
	height: 100%;
	width: 100%;
	object-fit: cover;
}

@media(max-width:990px){
	.nb_imgarea{
	display: flex;
	justify-content: space-between;
	width: 98%;
}
}

/*flow*/
.flow-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: relative;
}
.flow-contents{
	display: flex;
	align-items: center;
	gap:20px;
}
.flow-box {
  border: 1px solid #fff;
  padding: 15px 30px;
  border-radius: 4px;
  width: 300px;
  font-weight: bold;
}

.flow-desc {
  line-height: 1.6;
  color: #eee;
  width: calc(100% - 320px);
  	
}

.arrow {
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 12px solid #fff;
  margin: 10px 0;
  margin-left: 145px;
}
@media(max-width:650px){
	.flow-box {
	  width: 260px
	}

	.flow-desc {
	  width: calc(100% - 280px);

	}	
	.arrow {
	  margin-left: 130px;
	}	
}
@media(max-width:565px){
	.flow-contents{
		flex-direction: column;
		align-items: flex-start;
	}
	.flow-desc {
	  width: 100%;

	}	
}
/*=================================================
	シュミレーション
=======================*/
    .section {
      margin-bottom: 40px;
      background: #1a1a1a;
      padding: 25px;
      border-radius: 12px;
      border: 1px solid #333;
    }
    .section h2 {
      border-left: 4px solid #c8a34e;
      padding-left: 10px;
      font-size: 1.2em;
      font-weight: 500;
      color: #c8a34e;
      margin-bottom: 20px;
    }
    .options {
      display: flex;
      flex-wrap: wrap;
      gap: 20px;
    }
    .option {
      border: 1px solid #555;
      border-radius: 8px;
      overflow: hidden;
      cursor: pointer;
      text-align: center;
      width: calc(100% / 3 - 20px);
		min-width: 150px;
      background: #222;
      transition: all 0.2s ease-in-out;
      color: #ddd;
    }
    .option img {
      width: 100%;
      aspect-ratio: 4 / 3;
      object-fit: contain;
      opacity: 0.9;
		background: #fff;
    }
     .option:hover {
      transform: scale(1.05);
      border-color: #c8a34e;
    }
    .option.selected {
      border: 2px solid #c8a34e;
      background: #2b2b2b;
      box-shadow: 0 0 10px #c8a34e;
    }
    .option.selected img {
      opacity: 0.5;
    }
    .option.selected::after {
      content: '✓';
      position: absolute;
      top: 8px;
      right: 10px;
      background: #c8a34e;
      color: #111;
      font-weight: bold;
      border-radius: 50%;
      width: 24px;
      height: 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      box-shadow: 0 0 5px #000;
    }
    .option span {
      display: block;
      padding: 10px;
      font-weight: bold;
      color: #fff;
    }
    .result {
      text-align: center;
      font-size: 1.6em;
      font-weight: 600;
      margin-top: 40px;
      color: #c8a34e;
    }

/*=================================================
	Company
=======================*/
.group_ttl{
	text-align: center;
	width: 80%;
	max-width: 420px;
	margin: 0 auto 30px;
}

.group_img{
	max-width: 420px;
}

.group_list{
	padding: 1.2rem 1rem;
	border-bottom: 1px solid #fff;
}
.group_list dl {
  display: flex;
  align-items: flex-start;
  margin-bottom: -25px;
}

.group_list dt {
  width: 95px;
  text-align: justify;
  text-justify: inter-ideograph;
  position: relative;
}

.group_list dt::after {
  content: "";
  display: inline-block;
  width: 100%;
}
.group_list dd{
	padding-left: 25px;
	position: relative;
}
.group_list dd::before{
	position: absolute;
	content: ':';
	left: 11px;
	top: -2px;
}
.group_list dd span{
	font-size: 80%;
	padding-left: 5px;
}
.infotable{
	margin-bottom: 1.2rem;
}
.infotable tr{
	border-bottom: 1px solid #fff;
	width: 100%;
}
.infotable th{
	text-align: left;
	padding: 1.2rem 1rem;
	width: 130px;
}
.infotable td{
	padding: 1rem;
}

.map{
	width: 95%;
	height: 45vh;
	margin: 10px auto;
}

.map iframe{
	object-fit: cover;
	filter: grayscale(100%);
	transition: .4s;
}
.map:hover iframe{
	object-fit: cover;
	filter: grayscale(0);
	transition: .4s;
}
@media (max-width: 499px) {
	.group_list dl {
		margin-bottom: 0px;
	}	
	.group_list dd span{
		display: block;
	}
	.infotable th {
		width: 100px;
	}	
}
/*=========Contact========*/
.contact{
	background: #212121;	
	z-index: 0;
}
.contact::before{
	position: absolute;
	width: clamp(280px,50vw,50vw);
	height: clamp(280px,50vw,50vw);
	content: '';
	background: url("../img/bgimg.png")no-repeat right/contain;
	bottom:0;
	right: 0;
	z-index: -1;
	opacity: .3;
}

.c_tel{
	margin: 0 auto 30px;
	max-width: 450px;
}

/*メールフォーム*/
.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;
	background: #212121;
}

.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
	}	
}

/*==============
	gallery
==========================================*/
.gallerywrap{
	width: 90%;
}

.gallery{
	display: flex;
	flex-wrap: wrap;
	gap:15px;
	margin:0;
}

.gallery li {
    margin-bottom: 20px;/*各画像下に余白をつける*/
	list-style:none;	
	aspect-ratio: 4 / 3;
	width: calc(100% / 4 - 15px);
}

/*ギャラリー内のイメージは横幅100%にする*/
.gallery img{
	width:100%;
	height:100%;
	vertical-align: bottom;/*画像の下にできる余白を削除*/
}

/*　横幅900px以下の段組み設定　*/
@media only screen and (max-width: 900px) {
	.gallery li{
	
	width: calc(100% / 3 - 15px);
	}	
}

@media only screen and (max-width: 768px) {
	.gallery li{
	width: calc(100% / 2 - 15px);
	}	
	.gallerywrap{
		width: 100%;
	}
	
}


.video-thumb {
	cursor: pointer;
}

.video-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 6px;
}

/* モーダル */
.modal {
	display: none;
	position: fixed;
	z-index: 9999;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.7);
	justify-content: center;
	align-items: center;
}

.modal-content {
	position: relative;
	max-width: 80vw; 
    max-height: 80vh; 
}

.modal-content video {
	width: 100%;
    height: auto;
    max-height: 80vh;  /* 画面より大きくさせない */
    object-fit: contain; /* 動画全体を収める */
    border-radius: 6px;
}

.close {
	position: absolute;
	top: -30px;
	right: 0;
	font-size: 32px;
	color: #fff;
	cursor: pointer;
	z-index: 99;
}

/*==============
	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;
}
.news-box{
	padding: 20px 2vw 50px;
}

.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;
}

/*=================================================
 Loading
=======================*/ 

/* Loading背景画面設定　*/
#splash {
	position: fixed;
	width: 100%;
	height: 100%;
	z-index: 999;
	background:#111;
	color:#fff;
}
#splash_logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
#splash_logo svg{
    width:100%;
	min-width: 300px;
}

/*====SVGアニメーション====*/
/*アニメーション前*/
#mask path {
	fill-opacity: 0;
	transition: fill-opacity .5s;
	fill: none;
	stroke: #fff;
}
/*アニメーション後*/
#mask.done path{
	fill-opacity: 1;
	stroke: none;
}
#mask.done path.cls-1 {
	fill: #ceaa63;
}
#mask.done path.cls-2 {
	fill: #fff;
}


/*===================
Instagramボタン
===============================================*/
.cp_snslink {
	position: fixed;
	top: 15%;
	right: 0;
	display: block;
	margin: 0;
	padding: 0;
	z-index: 77;
}
/*それぞれのSNS iconの設定*/
.cp_snslink .cp_link {
  position: relative;
  right: -170px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 5px;
  padding: 0 10px 0 50px;
  height: 45px;
  border-radius: 30px 0 0 30px;
  background: #ceaa63;
  transition: all 1s;
}
.cp_snslink .cp_link a {
  text-decoration: none;
  color: #ceaa63;
}
/*SNS各種ロゴ背景*/
.cp_snslink .cp_link.facebook::before,
.cp_snslink .cp_link.twitter::before,
.cp_snslink .cp_link.instagram::before {
  position: absolute;
  content: '';
  left: 8px;
  background: #ceaa63;
  width: 35px;
  height: 35px;
  border-radius: 50%;
}
/*SNS各種ロゴ*/
.cp_snslink .cp_link.facebook::after,
.cp_snslink .cp_link.twitter::after,
.cp_snslink .cp_link.instagram::after {
  position: absolute;
  content: '';
  left: 16px;
  background-size: contain;
  background-repeat: no-repeat;
  width: 20px;
  height: 20px;
}
/*instagram*/
.cp_snslink .cp_link.instagram::after {
  background-image: url("../img/instagram_w.svg");
}
/* hover時の動きの設定 */
.cp_snslink .cp_link:hover {
  right: -5px;
  background: #ceaa63;
}
.cp_snslink .cp_link:hover a {
  color: #ffffff;
}
/*SNS各種ロゴを回転させる*/
.cp_snslink .cp_link:hover::before,
.cp_snslink .cp_link:hover::after {
  transition: all 1s;
  transform: rotate(360deg);
}
/*SNS各種ロゴ背景を変える*/
.cp_snslink .cp_link.instagram:hover::before {
  background: linear-gradient(45deg, #FF7A00 0%, #FF0169 50.06%, #D300C5 99.36%);
}


@media(max-width:600px){
	.cp_snslink {
		top: 5%
	}
	.cp_snslink .cp_link {
	  right: -160px;
	}	
}

