@charset "utf-8";

/* -------------------------------------------------- */
/* PC*/
/* -------------------------------------------------- */

/* メインビジュアル */
/* -------------------------------------------------- */
#fv {
	width: 100%;
	height: calc(100vh - 90px);
	margin-bottom: 90px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
}

#fvNav {
	width: 20%;
	height: 100%;
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	position: relative;
}

#fvNav::after {
	content: "";
	width: 544px;
	height: 329px;
	background: url(../../img/common/wave_bg.jpg) 0 0 no-repeat;
	display: block;
	position: absolute;
	bottom: -100px;
	left: 5%;
	z-index: -1;
}

#hLogo {
	padding-bottom: 80px;
}

#subMenu {
	-ms-writing-mode: tb-lr;
	writing-mode: vertical-lr;
}

#subMenu li {
	padding: 0 10px;
	font-size: 1.6rem;
}

#subMenu li::before {
	content: "";
	width: 4px;
	height: 4px;
	margin-bottom: 10px;
	background: #093753;
	display: inline-block;
	vertical-align: middle;
	border-radius: 100%;
}

#fv li a {
	position: relative;
}

#fv li a::after {
	content: "";
	width: 1px;
	height: 0px;
	margin-top: 5px;
	background: #093753;
	position: absolute;
	top: 100%;
	left: 50%;
	transition: all 0.3s ease-in-out 0s;
}

#fv li a:hover::after {
	height: 50px;
}

#fv a {
	font-weight: bold;
}

#imgWrapper {
	width: 80%;
	height: 80vh;
	padding-right: 5%;
}

#imgWrapper {
	width: 80%;
	height: 80vh;
	padding-right: 5%;
}

#movie {
	width: 100%;
	height: 100%;
}

#imgWrapper video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* #sliderWrapper {
	width: 80%;
	height: 100%;
	padding-right: 5%;
}

#fvSlider {
	height: 100%;
}

.sp-slides,
.sp-slides-container {
	height: 100%;
}

#fvSlider img {
	width: 100%!important;
	height: 100%;
	object-fit: cover;
	font-family: 'object-fit: cover;';
} */

/* トップリンク */
/* -------------------------------------------------- */
#topLink {
	padding: 0 5% 90px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

.topLinkBox {
	width: 100%;
}

.topLinkBox a .topLinkImg {
	transition: all 0.3s ease-in-out 0s;
}

.topLinkBox a:hover .topLinkImg  {
	opacity: 0.7;
}

.topLinkImg {
	width: 100%;
}

.topLinkImg img {
	width: 100%;
	height: auto;
}

.topLinkTit {
	padding-top: 5px;
	font-size: clamp(1.8rem,1.4vw,2rem);
}

/* トップお知らせ */
/* -------------------------------------------------- */
#topNews {
	padding: 0 0 110px 5%;
	display: flex;
}

#topNewTit {
	width: 130px;
	min-height: 315px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	-ms-writing-mode: tb-lr;
	writing-mode: vertical-lr;
}

#topNewTit h2 {
	font-size: 3rem;
	line-height: 1.2;
}

#newsBtn a {
	padding: 10px 5px;
	display: inline-block;
	border: 1px #666 solid;
	transition: all 0.3s ease-in-out 0s;
}

#newsBtn a:hover {
	background: #122c58;
	border: 1px #122c58 solid;
	color: #FFF;
}

/* スライダー */
#topNewsWrap {
	width: calc(100% - 130px);
}

#newsSlider {
	width: 100%;
}

.newsImg {
	width: 315px;
	margin-bottom: 15px;
}

.news a .newsImg {
	transition: all 0.3s ease-in-out 0s;
}

.news a:hover .newsImg {
	opacity: 0.7;
}

.newsImg img {
	width: 100%;
	height: auto;
}

.newsTit {
	padding-bottom: 10px;
	font-size: 1.6rem;
	line-height: 1.2;
}

.newsInfo {
	font-size: 1.3rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}

.newsInfo .cat {
	padding: 0 5px;
	background: #e5e5e5;
}

/* 会社概要 */
/* -------------------------------------------------- */
#companyGuide {
	padding-bottom: 100px;
	background: url(../../img/top/top_guide_bg.jpg) 0 0 no-repeat;
	-webkit-background-size: cover;
	background-size: cover;
}

#companyGuide h2 {
	width: 100%;
	padding: 50px 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}

#companyGuide h2 span {
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	color: #FFF;
	font-size: 3rem;
}

#addressWrap {
	width: 1000px;
	margin: 0 auto;
}

.address {
	margin-bottom: 30px;
	display: flex;
	justify-content: center;
	align-items: center;
	background: #FFF;
}

.addressInfo {
	width: calc(100% - 620px);
	height: 100%;
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-size: 1.6rem;
}

.addressInfo h3 {
	font-size: 2rem;
	font-weight: bold;
}

.addressInfoIn p {
	font-feature-settings: "palt";
}

.root{
	padding-top: 30px;
	font-size: 1.3rem;
}

.root li {
	padding-bottom: 10px;
}

.root span{
	display: inline-block;
	vertical-align: middle;
	padding-left: 10px;
}

.root .car::before{
	content: "";
	width: 20px;
	height: 17px;
	background: url(../../img/common/icon_car.svg) 0 0 no-repeat;
	display: inline-block;
	vertical-align: middle;
}

.root .train::before{
	content: "";
	width: 20px;
	height: 22px;
	background: url(../../img/common/icon_train.svg) center 0 no-repeat;
	display: inline-block;
	vertical-align: middle;
}

.addressMap iframe{
	display: block;
}

#companyInfo {
	width: 1000px;
	margin: 0 auto 30px;
}


#companyInfo li {
	display: flex;
	margin-bottom: 5px;
}

#companyInfo .tableTit {
	width: 235px;
	padding: 20px 40px;
	background: #a0a0a0;
	color: #FFF;
	text-align: center;
	font-weight: bold;
}

#companyInfo .tableContent {
	width: calc(100% - 235px);
	padding: 20px 40px;
	background: #FFF;
}


/* -------------------------------------------------- */
/* TAB&SP */
/* -------------------------------------------------- */
@media screen and (max-width: 1024px) {
	
	/* メインビジュアル */
	/* -------------------------------------------------- */
	#fv {
		width: 100%;
		height: calc(100vh - 50px);
		margin-bottom: 50px;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: flex-start;
	}

	#fvNav {
		display: none;
	}

	#hLogo {
		padding-bottom: 80px;
	}

	#imgWrapper {
		width: 100%;
		height: 100%;
		padding-right: 0;
	}

	/* #sliderWrapper {
		width: 100%;
		height: 100%;
		padding-right: 0;
	} */
	
	/* トップリンク */
	/* -------------------------------------------------- */
	#topLink {
		padding: 0 5% 70px;
		display: flex;
		flex-wrap: wrap;
		flex-direction: column;
		justify-content: center;
		align-items: flex-start;
	}

	.topLinkBox {
		width: 100%;
		margin-bottom: 30px;
	}

	.topLinkTit {
		font-size: 1.8rem;
	}
	
	/* トップお知らせ */
	/* -------------------------------------------------- */
	#topNews {
		padding: 0 0 100px 5%;
		display: flex;
	}

	#topNewTit {
		width: 50px;
		min-height: 280px;
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: flex-start;
		-ms-writing-mode: tb-lr;
		writing-mode: vertical-lr;
	}

	#topNewTit h2 {
		font-size: 2.4rem;
		line-height: 1.2;
	}

	#newsBtn a {
		padding: 10px 5px;
		display: inline-block;
		border: 1px #666 solid;
		transition: all 0.3s ease-in-out 0s;
	}

	#newsBtn a:hover {
		background: #122c58;
		border: 1px #122c58 solid;
		color: #FFF;
	}

	/* スライダー */
	#topNewsWrap {
		width: calc(100% - 50px);
	}

	#newsSlider {
		width: 100%;
	}

	.newsImg {
		width: 280px;
		margin-bottom: 10px;
	}

	.newsTit {
		padding-bottom: 10px;
		font-size: 1.4rem;
		line-height: 1.2;
	}

	.newsInfo {
		font-size: 1rem;
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: center;
	}

	.newsInfo .cat {
		font-size: 1rem;
		padding: 0 5px;
		background: #e5e5e5;
	}
	
	/* 会社概要 */
	/* -------------------------------------------------- */
	#companyGuide {
		padding-bottom: 100px;
		background: url(../../img/top/top_guide_bg.jpg) 0 0 no-repeat;
		-webkit-background-size: cover;
		background-size: cover;
	}

	#companyGuide h2 {
		width: 100%;
		padding: 30px 0;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
	}

	#companyGuide h2 span {
		-ms-writing-mode: tb-rl;
		writing-mode: vertical-rl;
		color: #FFF;
		font-size: 2.4rem;
	}

	#addressWrap {
		width: 90%;
		margin: 0 auto;
	}

	.address {
		margin-bottom: 30px;
		padding: 30px 20px;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		background: #FFF;
	}

	.addressInfo {
		width: 100%;
		height: auto;
		display: flex;
		flex-wrap: wrap;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		font-size: 1.4rem;
	}
	
	.addressInfoIn {
		padding: 0 0 30px;
	}

	.addressInfo h3 {
		font-size: 1.6rem;
		font-weight: bold;
	}

	.root{
		padding-top: 20px;
		font-size: 1.3rem;
	}

	.root li {
		padding-bottom: 10px;
	}

	.root span{
		display: inline-block;
		vertical-align: middle;
		padding-left: 10px;
	}

	.root .car::before{
		content: "";
		width: 20px;
		height: 17px;
		background: url(../../img/common/icon_car.svg) 0 0 no-repeat;
		display: inline-block;
		vertical-align: middle;
	}

	.root .train::before{
		content: "";
		width: 20px;
		height: 22px;
		background: url(../../img/common/icon_train.svg) center 0 no-repeat;
		display: inline-block;
		vertical-align: middle;
	}

	.addressMap{
		width: 100%;
	}

	.addressMap iframe{
		display: block;
		width: 100%;
	}

	#companyInfo {
		width: 90%;
		margin: 0 auto 30px;
	}


	#companyInfo li {
		width: 100%;
		display: flex;
		margin-bottom: 5px;
	}

	#companyInfo .tableTit {
		width: auto;
		padding: 20px 10px;
		background: #a0a0a0;
		color: #FFF;
		text-align: center;
		font-weight: bold;
		-ms-writing-mode: tb-lr;
		writing-mode: vertical-lr;
	}

	#companyInfo .tableContent {
		width: 100%;
		padding: 20px 40px;
		background: #FFF;
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-start;
		align-items: center;
	}

}


/* -------------------------------------------------- */
/* TAB(調整) */
/* -------------------------------------------------- */
@media screen and (min-width: 768px) and (max-width: 1024px) {

}
/* -------------------------------------------------- */
/* SP(調整) */
/* -------------------------------------------------- */
@media screen and (max-width: 767px) {

}