@charset "utf-8";

section{
	width:min(100%,1240px);
	padding:100px 20px;
	margin:0 auto;
}


/*---------------------------------------

	レスポンシブ

---------------------------------------*/

@media screen and (max-width: 430px) {
	section{
		padding:80px 20px 0 20px;
	}
}

section h2{
	font-size:2.4rem;
	font-weight: 700;
	line-height: normal;
}

section h2 span.en {
	width:100%;
  font-family: "sofia-pro", sans-serif;
  font-weight: 700;
  font-size: 1.7rem;
  letter-spacing: 0.4px;
	display: inline-block;
  color: #02245d;
  margin-bottom: 10px;
	text-decoration: underline;
	text-decoration-color: var(--red);
	 text-decoration-thickness: 3px;
	text-underline-offset: 5px;
}

section .title{
	width:100%;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom:50px;
}


section a.more{
	display: inline-flex;
	align-items: center;
	gap:20px;
	transition: ease-in-out 0.3s;	
}


section .more::after{
	font: var(--fa-font-solid);
	content: "\f105"; 
}

@media screen and (min-width: 981px) {
	section .more:hover{
		opacity: 0.5;
	}
}

/*------------------------------


	メインビュー


------------------------------*/

section#mainvew{
	width:100%;
	height: 560px;
	position: relative;
	padding:0;
}

#mainvew ul{
	z-index: 1;
}

#mainvew li.splide__slide{
	width:auto;
	line-height: 0;
	padding: 0;
}

#mainvew li img,
.splide__slide picture{
	height: 560px;
	width:100%;
}

#mainvew ul.tap{
	display: none;
}

#mainvew h1{
  position: absolute;
  z-index: 99;
  left: 45px;
  bottom: 40px;
font-size: 4.5rem;
	font-weight: 600;
	color:#fff;
	line-height: normal;
}

/*---------------------------------------

	レスポンシブ

---------------------------------------*/
@media screen and (max-width: 980px) {

	#mainvew ul.pc{
		display: none;
	}

	#mainvew ul.tap{
		display: block;
	}
	
	#mainvew h1{
		left: 20px;
		font-size: 3rem;
	}
}

/*------------------------------


	News


------------------------------*/

section#news{
margin:0 auto;
  background: #fff;
	padding:100px 20px;
}

section#news h2{
	display: inline-block;
}

section#news ul{
	display: grid;
	 grid-template-columns: repeat(4, 1fr);
	justify-content: space-between;
	gap:30px;
}

section#news .photo{
	width:100%;
	line-height: 0;
	margin-bottom:15px;
	position: relative;
}

section#news .photo img{
	width:100%;
	height: 100%;
	aspect-ratio: 14 / 9;
	object-fit: cover;
	border-radius: 5px;
}

section#news .photo span{
	position: absolute;
  z-index: 2;
  left: 0;
  top: 0;
  font-family: "sofia-pro", sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: #fff;
  height: 30px;
  background: #02245d;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 0px 10px 4px;
  border-radius: 5px 0px 5px 0px;
}


section#news .photo span.event {
  background: #C75C18;
}

section#news .photo span.topics {
  background: #468D49;
}

section#news .photo span.news-release {
  background: #1B7FC9;
}


section#news li .text{
	line-height: 1.4;
	font-size:1.8rem
}

section#news li p.date{
	color: #a7a7a7;
	  font-family: "sofia-pro", sans-serif;
	  font-weight: 700;
	  font-size: 15px;
	  /*margin-top: 10px;*/
}
/*---------------------------------------

	レスポンシブ

---------------------------------------*/

@media screen and (max-width: 980px) {
	section#news{
		padding:50px 0;
	}
	section#news .title{
		padding:0 20px;
	}
	section#news ul{
		 width: auto;
		overflow-x: scroll;
		overflow-y: hidden;
		display: flex;
		 /*grid-template-columns: 20px repeat(4, 260px) 20px;*/
		gap:10px;
	}
	
	section#news ul::-webkit-scrollbar {
		background-color: #fff;
		height: 6px;
	}
  section#news ul::-webkit-scrollbar-thumb {
    border-radius: 5px;
    background-color: #fff;
  }
	
	section#news li{
		width:260px;
		flex-shrink: 0; 
	}
	
	section#news li:first-child{
		margin-left:10px;
	}
	
	section#news ul::before,
	section#news ul::after{
		content:'';
	}
}

/*------------------------------


	PHILOSOPHY


------------------------------*/

section#phulosophy{
	width:100vw;
	 padding: 120px 0px;
	  display: block;
	  background: url(../images/sec2_bg1.jpg) no-repeat;
	background-position: center;
	  background-size: cover;
}

section#phulosophy .inner{
	width: min(100%,1200px);
	margin:0 auto;
}

section#phulosophy .text{
	width: min(100%,600px);
	color:#fff;
}

section#phulosophy  h2{
	font-size: 3.2rem;
}

section#phulosophy h2 span.en {
	color:#fff;
	display: block;
}

section#phulosophy  p{
	margin-top: 240px;
}

/*---------------------------------------

	レスポンシブ

---------------------------------------*/

@media screen and (max-width: 1200px) {
	section#phulosophy{
		background-position: center left;
	}
	section#phulosophy .inner{
		padding:0 20px;
	}
}

@media screen and (max-width: 980px) {
	section#phulosophy{
		background: url(../images/sec2_bg1_sp.jpg) no-repeat center;
		background-size: cover;
	}
	
	section#phulosophy  h2{
		font-size: 2.4rem;
	}
	
	section#phulosophy  p{
		font-size:1.4rem;
	}
}

/*------------------------------


	SERVICE
	サービス


------------------------------*/

section#service{
	margin:0 auto;
	display: flex;
	column-gap: 50px;
	padding:140px 20px 100px 20px;
}

section#service .text{
	width:320px;
}

section#service .txt{
	margin:40px 0;
}

section#service .txt p{
	margin-top:5px;
}

section#service .bana{
	width:100%;
	margin-bottom:5px;
}

section#service .photo{
	flex:1;
	line-height: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top:30px;
}

section#service .photo img{
	width:100%;
	height: auto;
}

/*---------------------------------------

	レスポンシブ

---------------------------------------*/

@media screen and (max-width: 980px) {
	section#service{
		flex-direction: column;
		gap:80px;
	}
	
	section#service .text{
		width:100%;
		order:2;
	}
	
	section#service .txt{
		margin:0 0 40px 0;
	}
	section#service .photo{
		order:1;
	}
	
	section#service .bana{
		width:min(100%,380px);
	}
	
	section#service .photo{
		width:min(100%,800px);
		flex:none;
			margin:0 auto;
		padding-top:0;
	}
}

@media screen and (max-width: 430px) {
	section#service{
		padding:80px 20px 0 20px;
	}
	section#service .bana{
		margin:0 auto;
	}
}


/*------------------------------


	PROJECT
	事業案内



------------------------------*/

section#project .wrap{
	width:100%;
	display: flex;
	column-gap:80px;
}

section#project .photo{
	flex:1;
	line-height: 0;
}

section#project .photo img{
	width:100%;
	height: auto;
	border-radius: 5px;
}

section#project .text{
	display: inline-block;
	position: relative;
}

section#project .txt{
	margin-top:60px;
	display: flex;
	justify-content: space-between;
}

section#project .txt p{
	width:min(100%,650px);
}

section#project h3{
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-size: 3.2rem;
	line-height: 1.4;
	position: absolute;
	left: -5px;
	top: 125px;
	font-weight: 700;
}

/*---------------------------------------

	レスポンシブ

---------------------------------------*/

@media screen and (max-width: 980px) {
	section#project .wrap{
		flex-direction: column;
		gap:50px;
	}
	
	section#project .photo{
		width:100%;
		flex:none;
	}
	
	section#project h3{
		writing-mode: horizontal-tb;
		position: static;
		display: block;
	}
	
	section#project .txt{
		flex-direction: column;
		gap:40px;
	}
	
	section#project .txt p{
		width: 100%;
	}
}

@media screen and (max-width: 430px) {
	
	section#project .wrap,
	section#project .txt{
		flex-direction: column;
		gap:30px;
	}
	
	section#project h3{
		font-size:2.4rem;
	}
	
	section#project .txt,
	section#project .text{
		padding:0 20px;
	}
	
	section#project .txt{
		margin-top:30px;
	}
	
	section#project .photo img{
		border-radius: 0;
	}
}

/*------------------------------


	MEMBER
	社員紹介


------------------------------*/

section#member{
	width:100%;
}

section#member .title{
	width:min(100%,1240px);
	padding:0 20px;
	margin:0 auto 50px auto;
}
section#member .slick-track {
	display: flex !important;
	align-items: stretch;
}
section#member ul{
	width:100%;
	z-index: 0;
	margin-bottom:0;
}

section#member li{
	padding:0 15px;
	/* 追加: スライド（li）自体の高さを100%（一番高いものに合わせる）にする */
	height: auto !important;
	display: flex !important;
	flex-direction: column;
}

section#member li a{
	width: 100%;
	display: block;
	margin:0 auto;
	/* 追加: 中のリンク（カード全体）も高さを100%にして下まで伸ばす */
	height: 100%;
	background-color: #fff;
}

section#member li a .photo{
	width:100%;
	position: relative;
	border-radius: 5px;
}

section#member li a .photo img{
	width:100%;
	height: 470px;
	object-fit: cover;
	vertical-align: top;
	border-radius: 5px;
}

section#member li a .cat{
	font-weight: 900;
	/*font-size: 2.4rem;*/
	color: #fff;
	height: auto;
	position: absolute;
	right:10px;
	top:10px;
	z-index: 999;
	padding: 20px 10px;
	border: 2px solid #fff;
	border-radius: 5px;
	writing-mode: vertical-rl;
	text-orientation: upright;
	letter-spacing: 3px;
	-webkit-text-stroke: 1.2px rgba(26,26,26,0.80); 
  text-stroke: 1.2px rgba(26,26,26,0.80);
	 paint-order: stroke fill;
}

section#member li a .name_jp{
	margin-top:10px;
}

section#member li a .name_en{
	font-family: "sofia-pro", sans-serif;
  color: #b3bdce;
  font-size: 1.5rem;
}

section#member li a .department,
section#member li a .year{
	font-size:1.4rem;
	display: inline-block;
}

section#member li a .year::before{
	content: "／";
	font-weight: 400;
	padding:0 5px;
}
section#member li a h3{
	font-weight: 700;
	position: absolute;
	z-index: 2;
	bottom: 20px;
	left: 20px;
	color: #fff;
	line-height: 1.25;
	font-feature-settings: "palt" 1;
	letter-spacing: 2px;
	font-size:1.8rem;
		-webkit-text-stroke: 1.2px rgba(26,26,26,0.80); 
  text-stroke: 1.2px rgba(26,26,26,0.80);
	 paint-order: stroke fill;
}

section#member .swiper-button-prev,
section#member .swiper-button-next{
  width: 50px;
  height: 50px;
  background: url(../images/arrow2.png) no-repeat center;
  background-size: 100% auto;
  top: calc(50% - 70px);
  position: absolute;
z-index: 9999;
  cursor: pointer;
}

section#member .swiper-button-prev{
	left: 35px;	
}

section#member .swiper-button-next{
 	transform: scale(-1, 1);
	right: 35px;	
}

/*---------------------------------------

	レスポンシブ

---------------------------------------*/

@media screen and (min-width: 981px) {
	section#member li a{
		transition: ease-in-out 0.3s;
	}
	
	section#member li a:hover{
		opacity: 0.5;
	}
	
	section#member li a .photo img{
		transition: ease-in-out 0.3s;
	}
	
	section#member li a:hover .photo{
		overflow: hidden;
		height: 470px;
	}
	
	section#member li a:hover .photo img{
		transform: scale(1.05);
	}
}

@media screen and (max-width: 430px) {
	
section#member li a{
	width: 100%;
	display: block;
	margin:0 auto;
	/* 追加: 中のリンク（カード全体）も高さを100%にして下まで伸ばす */
	height: 100%;
	background-color: #fff; /* 必要に応じてカードの背景色を指定 */
}
	section#member li{
		width:calc(100vw - 60px);
		margin:0 10px;
		padding:0;
	}
	
	section#member li a{
		width:100%;
		padding:0 0;
	}
	section#member li a .photo img{
		width:100%;
		height: auto;
		aspect-ratio: 30/37;
	}
	
	section#member .swiper-button-prev,
	section#member .swiper-button-next{
		width:40px;
		height: 40px;
	}
	
	section#member .swiper-button-prev{
		left:5px;
	}
	
	section#member .swiper-button-next{
		right:5px;
	}
}


/*------------------------------


	COMPANY
	企業案内

	RECRUIT
	採用情報


------------------------------*/

section#company,
section#rectuit{
	width:100%;
	position: relative;
}

section#company::after{
	content: '';
	height:550px;
	width: min( calc(100% - 500px),calc(50% + 100px));
	position: absolute;
	right: 0;
	top: 100px;
	background: url(../images/sec5_bg1.jpg) no-repeat center;
	background-size: cover;
	border-radius: 5px 0px 0px 5px;
}

section#rectuit::after{
	content: '';
	height:550px;
	width: min( calc(100% - 500px),calc(50% + 100px));
	position: absolute;
	left: 0;
	top: 100px;
	background: url(../images/sec6_bg1.jpg) no-repeat center;
	background-size: cover;
	border-radius: 0 5px 5px 0;
}


section#company .wrap,
section#rectuit .wrap{
	width: min(100%,1240px);
	margin:0 auto;
	padding-left:20px;
}

section#rectuit .wrap{
	display: flex;
	justify-content: flex-end;
}

section#company .text,
section#rectuit .text{
	width:380px;
	height:550px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

section#company h2,
section#rectuit h2{
	margin-top:-15px;
}

section#company .txt .bana,
section#rectuit .txt .bana{
	margin-top:30px;
}

/*---------------------------------------

	レスポンシブ

---------------------------------------*/

@media screen and (max-width: 980px) {
	section#company{
		padding-left:20px;
	}
	
	section#rectuit{
		padding-right:20px;
	}
	
	section#company::after,
	section#rectuit::after{
		content: none;
	}
	
	section#company .photo,
	section#rectuit .photo{
		width:100%;
		line-height: 0;
		margin:30px 0;
		display: block;
	}
	
	section#company .photo img,
	section#rectuit .photo img{
		width:100%;
		aspect-ratio: 168 / 167;
		object-fit: cover;
		 object-position: left center;
		border-radius: 5px 0px 0px 5px;
	}
	
	section#rectuit .photo img{
		border-radius: 0 5px 5px 0;
		object-position: left top;
	}
	
	section#company .wrap,
	section#rectuit .wrap{
		padding-left:0;
		padding-right:20px;
	}
	
	section#company .text,
	section#rectuit .text{
		width:100%;
		height: auto;
		display: block;
	}
	
	section#rectuit .text{
		padding-left:20px;
	}
	section#company h2,
	section#rectuit h2{
		margin-top:0;
	}
	
	section#rectuit h2{
		padding-left: 20px;
	}
}
