@charset "UTF-8";

/* ---------------------------------------------------------
	RESET
--------------------------------------------------------- */

/* common css fixes
---------------------------------------------------------- */
.oneColumn#areaContents #fieldContents {
  max-width: 1600px;
  width: auto;
}

/* locContents DOM
---------------------------------------------------------- */
#cmnHeader {
	box-shadow: 0 10px 10px rgba(0,0,0,0.1);
}

.cmnHeaderNav__li01 .is-products,
.cmnHeaderNav__li01 .is-ir,
.cmnHeaderNav__li01 .is-esg,
.cmnHeaderNav__li01 .is-contact,
.cmnHeaderNav__li02,
.cmnHeaderNav__sp #is-products-sp,
.cmnHeaderNav__sp #is-dl-sp,
.cmnHeaderNav__sp #is-ir-sp,
.cmnHeaderNav__sp #is-esg-sp,
.cmnHeaderNav__sp #is-contact-sp {
	display: none;
}

.cmnHeaderNav__li01 > li {
	font-family: 'Noto Sans JP', sans-serif;
}

#locContents *,
#locContents *::before,
#locContents *::after {
	box-sizing: border-box;
}

#locContents {
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	--color-fe-blue: #005bac;
	--section-title-border-height: 70px;
}

#locContents img {
	height: auto;
	max-width: 100%;
	vertical-align: top;
}

@media screen and (min-width:971px) {
	.cmnHeaderLogo > a > img {
		height: 48px;
	}

	.cmnHeaderLogo {
		max-width: 239px;
		padding: 46px 0;
	}

	.cmnHeaderCnt {
		display: grid;
		place-content: center;
	}

	.cmnHeaderNav__li01 > li {
		font-size: 18px;
		padding-inline: 20px;
		text-align: center;
		width: 160px;
	}

	.cmnHeaderNav__li01 > li::before,
	.cmnHeaderNav__li01 > li.is-entry::after {
		content: '';
		background-color: #333;
		height: 48px;
		position: absolute;
		top: 50%;
		left: 0;
		transform: translateY(-50%);
		width: 2px;
	}
	.cmnHeaderNav__li01 > li.is-entry::after {
		left: auto;
		right: 0;
	}

	.cmnHeaderNav__under {
		top: 137px;
	}
}

@media screen and (max-width:970px) {
	#locContents {
		--section-title-border-height: 40px;
	}
}



/* ---------------------------------------------------------
	Module
--------------------------------------------------------- */

.locContentsContainer {
	max-width: 1760px;
	margin-inline: auto;
	padding-inline: 80px;
}

.locContentsOnlySp {
	display: none;
}

@media screen and (max-width:970px) {
	.locContentsContainer {
		padding-inline: 20px;
	}

	.locContentsOnlySp {
		display: block;
	}
}



/* ---------------------------------------------------------
	MV
--------------------------------------------------------- */
.locMvWrap {
	background-color: #fff;
}

.locMvWrap .locContentsContainer {
	padding-inline: 0;
}

.locMvInner {
	display: grid;
	grid-template-columns: 1fr 1.25fr;
}

.locMvText {
	display: grid;
	align-content: space-between;
	overflow: hidden;
	padding: 2em 2em 2em 2.5em;
	position: relative;
}

.locMvLead {
	font-size: 16px;
	margin-top: 1.5em;
}

.locMvCredit {
	margin-left: auto;
	flex-basis: 70%;
}

.locMvDeco {
	color: #fff;
	display: flex;
	justify-content: space-between;
	font-size: 60px;
	font-weight: 900;
	line-height: 1;
	opacity: 0.5;
	position: absolute;
	width: 100%;
}

.locMvDecoFirst {
	top: -0.175em;
	left: 0;
	width: 83%;
}

.locMvDecoLast {
	bottom: -0.075em;
	right: 0;
}

.locMvBannerInner {
	display: flex;
	gap: 1.5em;
	justify-content: flex-end;
	align-items: flex-end;
}

.locMvBanner {
	border: 1px solid #005bac;
	flex: 1 1 80%;
	max-width: 530px;
}

.locMvBanner a {
	transition: opacity 0.3s
}

.locMvBannerTitle {
	background-color: #005bac;
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
	padding-block: 0.375em 0.5em;
	text-align: center;
}

@media screen and (max-width:1399px) {
	.locMvBanner {
		flex-basis: 65%;
	}
}

@media screen and (max-width:1300px) {
	.locMvInner {
		grid-template-columns: 1fr;
	}

	.locMvText {
		display: grid;
		gap: 3em;
		align-items: center;
		place-content: center;
		max-width: 1200px;
		margin-inline: auto;
		order: 1;
		padding-block: 3em;
	}

	.locMvTextInner {
		display: grid;
		grid-template-columns: 1fr 1.05fr;
		align-items: center;
		column-gap: 3em;
	}

	.locMvTitle {
		text-align: right;
		width: 100%;
	}

	.locMvLead {
		font-size: 16px;
		margin-top: 0;
	}

	.locMvCredit {
		max-width: min(45%, 400px);
	}

	.locMvImage {
		order: 0;
	}

	.locMvDecoFirst {
		width: 60%;
	}

	.locMvDecoLast {
		bottom: -0.075em;
		left: auto;
		right: 0;
		width: 60%;
	}

	.locMvBannerInner {
		justify-content: space-between;
	}
}

@media screen and (min-width:971px) {
	.locMvWrap {
		margin-top: 140px;
	}
}

@media screen and (max-width:970px) {
	.locMvWrap {
		margin-top: 80px;
	}

	.locMvWrap .locContentsContainer {
		padding-inline: 0;
	}
}

@media screen and (max-width:767px) {
	.locMvText {
		grid-template-columns: 1fr;
		gap: 2em;
		padding: 2em 1.5em;
	}

	.locMvTextInner {
		grid-template-columns: 1fr;
		row-gap: 1.5em;
	}

	.locMvLead {
		font-size: 14px;
	}

	.locMvCredit {
		max-width: min(60%, 300px);
	}

	.locMvDecoFirst {
		width: 80%;
	}

	.locMvDecoLast {
		width: 100%;
	}

	.locMvBannerTitle {
		font-size: 16px;
	}
}

@media (hover: hover) and (pointer: fine) {
	.locMvBannerInner a:hover {
		opacity: 0.85;
	}
}



/* ---------------------------------------------------------
	Power
--------------------------------------------------------- */
.locPowerWrap {
	background-color: #dcdddd;
	padding-block: var(--section-title-border-height);
	text-align: center;
}

.locPowerWrap .locRecruitButtonWrap {
	margin-top: 0;
}

.locPowerTitle {
	color: #004f93;
	font-size: 56px;
	font-weight: bold;
	margin-top: 0.75em;
}

.locSectionTitle {
	border: 1px solid #fff;
	border-radius: 50px;
	display: grid;
	place-content: center;
	height: 100px;
	margin-inline: auto;
	max-width: 700px;
	position: relative;
}

.locSectionTitle::before {
	content: '';
	background-color: #fff;
	height: var(--section-title-border-height);
	position: absolute;
	bottom: 100%;
	left: 50%;
	transform: translateX(-50%);
	width: 1px;
}

.locPowerSubTitle {
	display: grid;
	grid-template-columns: auto 1fr auto;
	column-gap: 0.5em;
	justify-items: center;
	align-items: center;
	font-size: 32px;
	font-weight: 700;
	margin-inline: auto;
	width: fit-content;
}

.locPowerSubTitle::before,
.locPowerSubTitle::after {
	content: 'ー';
}

.locPowerLead {
	font-size: 20px;
	margin-top: 1.5em;
}

.locPowerLead + .locPowerLead {
	margin-top: 1em;
}

@media screen and (max-width:1300px) {
	.locPowerLead {
		font-size: 18px;
	}
}

@media screen and (max-width:970px) {
	.locSectionTitle {
		height: 60px;
	}

	.locSectionTitle img {
		max-height: 24px;
	}

	.locPowerTitle {
		font-size: 48px;
	}

	.locPowerSubTitle {
		font-size: 24px;
		line-height: 1.5;
	}

	.locPowerLead {
		font-size: 15px;
	}
}

@media screen and (max-width:767px) {
	.locPowerTitle {
		font-size: 28px;
	}

	.locPowerSubTitle {
		font-size: 20px;
		line-height: 1.5;
		margin-top: 0.5em;
	}
}



/* ---------------------------------------------------------
	Gallery
--------------------------------------------------------- */
.locGalleryWrap {
	margin-bottom: 80px;
}

.locGalleryTitle {
	color: var(--color-fe-blue);
	display: flex;
	justify-content: space-between;
	font-size: 72px;
	font-weight: 900;
	line-height: 1;
	padding-top: 0.25em;
}

.locGallerySubTitle {
	font-size: 26px;
	font-weight: 700;
	margin-top: 0.25em;
	text-align: center;
}

.locGalleryList {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3em 1em;
	margin-top: 3.5em;
}

.locGalleryListItem {
	border-top: 8px solid #333;
	display: grid;
	grid-template-rows: 1fr auto;
}

.locGalleryListTitle {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 1em;
	align-items: center;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.4;
	padding: 0.6em 0.5em;
}

.locGalleryListLink {
	display: block;
	margin-top: auto;
	position: relative;
	transition: opacity 0.3s;
}

.locGalleryPlay {
	height: 70px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 70px;
}

.locGalleryTitleBlank {
	width: 0.35em;
}

@media screen and (max-width:970px) {
	.locGalleryWrap {
		margin-bottom: 60px;
	}

	.locGalleryTitle {
		font-size: 64px;
	}

	.locGallerySubTitle {
		font-size: 20px;
	}

	.locGalleryList {
		grid-template-columns: 1fr;
		gap: 2em;
		margin-top: 1.5em;
	}

	.locGalleryListItem {
		border-top-width: 5px;
	}

	.locGalleryListTitle {
		grid-template-columns: 36px 1fr;
		gap: 0.5em;
		font-size: 18px;
	}

	.locGalleryPlay {
		height: 50px;
		width: 50px;
	}
}

@media screen and (max-width:767px) {
	.locGalleryTitle {
		flex-wrap: wrap;
		justify-content: space-around;
		font-size: 48px;
	}

	.locGalleryTitleBlank {
		width: 100%;
	}
}

@media (hover: hover) and (pointer: fine) {
	.locGalleryListLink:hover {
		opacity: 0.8;
	}
}



/* ---------------------------------------------------------
	Recruit
--------------------------------------------------------- */
.locRecruitWrap {
	background-color: var(--color-fe-blue);
	color: #fff;
	padding-top: var(--section-title-border-height);
	text-align: center;
}

.locMvWrap + .locRecruitWrap {
	padding-block: var(--section-title-border-height);
}

.locRecruitImage {
	margin-top: 3.5em;
}

.locRecruitLead {
	font-size: 24px;
	line-height: 1.75;
	margin-top: 0.75em;
}

.locRecruitButtonWrap {
	display: grid;
	justify-content: center;
	row-gap: 1.25em;
	margin-top: 3em;
}

.locMvWrap + .locRecruitWrap .locRecruitButtonWrap {
	margin-top: 0;
}

.locRecruitButton a {
	background-color: var(--color-fe-blue);
	color: #fff;
	display: block;
	gap: 0.25em;
	font-size: 22px;
	line-height: 1.4;
	margin-inline: auto;
	padding: 0.825em 1em;
	text-decoration: none;
	transition: opacity 0.3s;
}

.locRecruitButton a::after {
	content: '▶︎';
	display: inline-block;
	height: 1em;
	margin-left: 0.5em;
	vertical-align: baseline;
	width: 1em;
}

.locRecruitWrap .locRecruitButton a {
	background-color: #fff;
	color: var(--color-fe-blue);
}

.locRecruitDeco {
	display: flex;
	justify-content: space-between;
	font-size: 36px;
	font-weight: 900;
	line-height: 1;
	margin-top: 2em;
	opacity: 0.5;
	position: relative;
	top: 0.065em;
}

.locGalleryDecoBlank {
	width: 0.5em;
}

@media screen and (max-width:970px) {
	.locRecruitImage {
		margin-top: 2em;
	}

	.locRecruitLead {
		font-size: 16px;
		line-height: 2;
		margin-top: 1em;
	}

	.locRecruitButtonWrap {
		margin-top: 3em;
	}

	.locRecruitButton a {
		font-size: 18px;
		padding: 0.5em 1em;
	}
}

@media screen and (max-width:767px) {
	.locRecruitDeco {
		flex-wrap: wrap;
		font-size: 24px;
	}

	.locGalleryDecoBlank {
		width: 100%;
	}

	.locRecruitButtonWrap {
		grid-template-columns: 280px;
		row-gap: 1.5em;
	}
}

@media (hover: hover) and (pointer: fine) {
	.locRecruitButton a:hover {
		opacity: 0.85;
	}
}



/* ---------------------------------------------------------
	Footer
--------------------------------------------------------- */
.locLpFooter {
	background-color: #000;
	color: #fff;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	padding-block: 2em;
	text-align: right;
}

.locLpCopyright {
	font-size: 12px;
}

@media screen and (max-width:970px) {
	.locLpFooter {
		padding-block: 1.5em;
	}
}



/* ---------------------------------------------------------
	Header (2026 design) etc.
--------------------------------------------------------- */
.cmnHeaderNav {
	align-items: center;
}

.cmnHeaderNav__li01 .is-entry,
.cmnHeaderNav__sp #is-entry-sp {
	display: none;
}

.cmnHeaderHum.is-active span:nth-of-type(3) {
	bottom: 4px;
}

.navMypageLinks_ul {
	display: flex;
	justify-content: space-between;
	align-items: center;
	column-gap: 1em;
	row-gap: 6px;
}

.cmnHeaderBox .navMypageLinks_ul {
	flex-direction: column;
}

.navMypage_a {
	transition: opacity 160ms ease-in-out;
}

.navMypage_a:hover {
	opacity: 0.8;
}

.img_navMypage {
	width: 190px;
	height: auto;
}

.locRecruitImage img {
	max-height: 94px;
	width: auto;
}

.locRecruitButtonWrap {
	margin-inline: auto;
	width: fit-content;
}

.locRecruitButtonWrap .locRecruitButtonWrapInternal {
	display: grid;
	grid-template-columns: repeat(2, 26em);
	gap: 1em;
	font-feature-settings: 'palt';
}

.locRecruitButtonWrap .navMypageLinks_ul {
	justify-content: center;
}

.locRecruitButton a {
	border-radius: 999em;
	display: grid;
	grid-template-columns: repeat(2, auto);
	place-content: center;
	height: 54px;
	padding-inline: 1em;
}

@media screen and (max-width:1100px) {
	.cmnHeaderBox {
		height: 140px;
	}

	.cmnHeaderLogo {
		display: grid;
		align-content: center;
	}

	.cmnHeaderLogo > a > img {
		height: 36px;
	}

	.cmnHeaderNav__li01 > li {
		padding-inline: 5px;
	}
}

@media screen and (max-width:970px) {
	.cmnHeaderContainer {
		box-sizing: border-box;
	}

	.cmnHeaderBox {
		height: 80px;
	}

	.cmnHeaderNav {
		display: block;
	}

	.cmnHeaderCnt {
		display: grid;
		align-content: center;
		margin-right: 30px;
	}

	.cmnHeaderNav .cmnHeaderNav__li01 {
		display: none;
	}

	.cmnHeaderNav .navMypageLinks_ul {
		display: grid;
		grid-template-columns: repeat(2, auto);
		height: 28px;
		width: 184px;
		gap: 0;
	}

	.cmnHeaderNav .img_navMypage {
		width: 90px;
	}

	.cmnHeaderHum {
		height: 16px;
		right: 15px;
		top: 50%;
		translate: 0 -50%;
		width: 18px;
	}

	.cmnHeaderHum span {
		background-color: #005bac;
		height: 2px;
	}

	.cmnHeaderHum.is-active span:nth-of-type(1) {
		top: 10px;
	}

	.locRecruitImage img {
		max-height: 72px;
	}

	.locRecruitButtonWrap .locRecruitButtonWrapInternal {
		grid-template-columns: repeat(2, 21em);
	}
}

@media screen and (max-width:767px) {
	.locRecruitButtonWrap {
		grid-template-columns: 1fr;
		row-gap: 1em;
	}

	.locRecruitButtonWrap .locRecruitButtonWrapInternal {
		grid-template-columns: auto;
	}

	.locRecruitButtonWrap .locRecruitButton a {
		font-size: 16px;
	}

	.locRecruitButtonWrap .navMypageLinks_ul {
		flex-direction: row;
	}
}

@media screen and (max-width:540px) {
	.cmnHeaderContainer {
		padding-inline: 15px;
	}

	.cmnHeaderLogo > a > img {
		height: 20px;
		vertical-align: middle;
	}
}

@media screen and (min-width:971px) {
	.cmnHeaderNav__li01__itm > p {
		line-height: 1.4;
	}
}
