@charset "utf-8";
/* =========================================================================================
Layout
=========================================================================================*/

@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 468px) {
}

/* =========================================================================================
MAIN VISUAL
=========================================================================================*/
.main-visual {
	position: relative;
	/*background: linear-gradient(to right, #349dec 0%, #349dec 50%, #1876d5 50%, #1876d5 100%);*/
	background: url(../images/bg.webp) no-repeat left;
	background-size: cover;
	position: relative;
	z-index: 1;
}
.main-visual::after {
	content: "";
	width: 100%;
	height: 90%;
	background: url(../images/main_image.webp) no-repeat center bottom;
	background-size: contain;
	position: absolute;
	left: 50%;
	bottom: 0;
	translate: -37.5% 0;
	z-index: -1;
}
.main-visual .inner {
	max-width: var(--large-contents-width);
	height: 100vh;
	max-height: 1080px;
	display: flex;
	align-items: center;
	justify-content: left;
}
.main-visual .inner .box {
	width: 100%;
	max-width: var(--small-contents-width);
	display: flex;
	flex-direction: column;
	align-items: start;
	justify-content: center;
}
.main-visual .inner .box .catchphrase .outfit {
	color: var(--dark-color);
	font-size: clamp(1.667rem, calc(0.824rem + 4.045vw), 2.667rem); /* min: 30px, max: 48px */
	line-height: 1.4;
	margin-bottom: 0.5em;
}
.main-visual .inner .box .catchphrase strong {
	color: #fff;
	font-size: clamp(2.813rem, calc(0.442rem + 10.112vw), 5.625rem); /* min: 45px, max: 90px */
	font-weight: var(--black-font-weight);
	line-height: 1.3;
	display: block;
}
.main-visual .inner .box .catchphrase strong span.line {
	color: black;
	text-shadow: 1.5px 1.5px 0 #fff, -1.5px -1.5px 0 #fff, -1.5px 1.5px 0 #fff, 1.5px -1.5px 0 #fff, 0px 1.5px 0 #fff, 0 -1.5px 0 #fff, -1.5px 0 0 #fff, 1.5px 0 0 #fff;
	mix-blend-mode: screen;
}
.main-visual .inner .box p {
	color: #fff;
	line-height: 2;
	width: 100%;
	max-width: 500px;
	display: flex;
	flex-wrap: wrap;
	margin-block: 5vh;
}
.main-visual #scroll-navi .scroll-navi {
	color: #fff;
	font-size: clamp(0.938rem, calc(0.674rem + 1.124vw), 1.25rem); /* min: 15px, max: 20px */
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.1em;
	position: fixed;
	left: 2.5%;
	bottom: 0;
	z-index: 10;
	animation: scroll-navi 2.5s ease-in-out infinite;
}
@keyframes scroll-navi {
	0%,
	100% {
		opacity: 0;
	}
	50% {
		opacity: 1;
	}
}
.main-visual #scroll-navi .scroll-navi span {
	display: inline-block;
	width: 1px;
	height: 170px;
	overflow: hidden;
	position: relative;
}
.main-visual #scroll-navi .scroll-navi span::after {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: #fff;
	transform-origin: center top;
	animation: scroll-navi-anime 2.5s ease-in-out infinite;
}
@keyframes scroll-navi-anime {
	0% {
		transform: scale(1, 0);
		transform-origin: 0 0;
	}
	40% {
		transform: scale(1, 1);
		transform-origin: 0 0;
	}
	41% {
		transform: scale(1, 1);
		transform-origin: 0 100%;
	}
	80%,
	100% {
		transform: scale(1, 0);
		transform-origin: 0 100%;
	}
}

@media only screen and (max-width: 980px) {
	.main-visual::after {
		content: "";
		min-width: 800px;
		left: 60%;
	}
	.main-visual .inner .box .btn {
		justify-content: left;
	}
}
@media only screen and (max-width: 468px) {
	.main-visual #scroll-navi .scroll-navi span {
		height: 75px;
	}
}

/* =========================================================================================
Mission
=========================================================================================*/
section.mission {
	color: #fff;
	text-align: center;
	background: var(--main-color) url(../images/mission_bg.webp) no-repeat center bottom;
	background-size: cover;
}
section.mission .mid-xl {
	color: #fff;
	margin-bottom: 0.5em;
}
section.mission .catchphrase strong {
	font-size: clamp(1.111rem, calc(-0.059rem + 5.618vw), 2.5rem); /* min: 20px, max: 45px */
	line-height: 1.5;
	display: block;
	margin-bottom: 1em;
}
section.mission .catchphrase strong span.line {
	color: black;
	text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, 0px 1px 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff, 1px 0 0 #fff;
	mix-blend-mode: screen;
}
section.mission .box {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
	gap: 120px 3.5%;
	padding-top: 100px;
	margin-block: 5vh 7.5vh;
}
section.mission .item {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 30px 20px;
	border: 1px solid;
	background: #fff;
	border-radius: 20px;
	padding-top: 100px;
	position: relative;
	z-index: 1;
	filter: drop-shadow(3px 3px 10px rgba(0, 0, 0, 0.15));
}
section.mission .item .image {
	position: absolute;
	top: -82px;
	left: 50%;
	translate: -50% 0;
	z-index: 2;
	filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.15));
}
section.mission .item .text {
	color: var(--base-font-color);
	text-align: left;
}
section.mission .item .text h3 {
	color: var(--main-color);
	font-size: clamp(1.25rem, calc(1.039rem + 0.899vw), 1.5rem); /* min: 20px, max: 24px */
	line-height: 1.6;
	text-align: center;
	margin-bottom: 0.75em;
}
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 468px) {
	section.mission .box {
		margin-block: 15px 50px;
	}
}

/* =========================================================================================
Products
=========================================================================================*/
section.products {
	text-align: center;
	background: url(../images/products_bg.webp) no-repeat center bottom;
	background-size: cover;
}
section.products .box {
	display: flex;
	flex-wrap: wrap;
	gap: 50px;
	margin-block: 5vh;
}
section.products .item {
	width: calc((100% - 50px) / 2);
	/*safari対策でシャドウのかけ方変更*/
	border-radius: 20px;
	box-shadow: 3px 3px 16px rgba(0, 0, 0, 0.15);
}
section.products .item a {
	height: 100%;
	display: flex;
	flex-direction: column;
	padding: 0;
	gap: 0.5em;
	background: #fff;
	border-radius: 20px;
	overflow: hidden;
}
section.products .item a:hover {
	text-decoration: none;
}
section.products .item h3 {
	color: var(--main-color);
	font-size: clamp(1.25rem, calc(1.039rem + 0.899vw), 1.5rem); /* min: 20px, max: 24px */
	line-height: 1.4;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	padding-block: 0.5em;
	padding-inline: 1em;
	margin-bottom: 0.5em;
	flex-grow: 1;
}
@media only screen and (max-width: 820px) {
	section.products .box {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	}
	section.products .item {
		width: 100%;
	}
}
@media only screen and (max-width: 468px) {
	section.products .box {
		gap: 40px;
	}
}

/* =========================================================================================
Sustainability
=========================================================================================*/
section.sustainability {
	color: #fff;
	text-align: center;
	background: linear-gradient(#004f99 0%, #009bc5 100%);
}
section.sustainability .mid-xl,
section.sustainability .mid-xl span {
	color: #fff;
}
section.sustainability .box {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 125px 5%;
	padding-top: 100px;
	margin-block: 5vh 7.5vh;
}
section.sustainability .item {
	display: flex;
	flex-direction: column;
	gap: 20px;
	border: 1px solid;
	background: var(--sub-bg-color);
	border-radius: 20px;
	padding-block: 110px 30px;
	padding-inline: 20px;
	position: relative;
	z-index: 1;
	filter: drop-shadow(3px 3px 10px rgba(0, 0, 0, 0.15));
}
section.sustainability .item .image {
	position: absolute;
	top: -80px;
	left: 50%;
	translate: -50% 0;
	z-index: 2;
	filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.15));
}
section.sustainability .item .text {
	color: var(--base-font-color);
	text-align: left;
	flex-grow: 1;
}
section.sustainability .item .text h3 {
	color: var(--main-color);
	font-size: 1.375em;
	line-height: 1.4;
	text-align: center;
	margin-bottom: 0.5em;
}
section.sustainability .item .text p {
	text-align: center;
}
section.sustainability .item .text figure {
	width: 100%;
	padding-inline: 12.5% 5%;
	margin: 0 auto 20px;
}
@media only screen and (max-width: 820px) {
	section.sustainability .item .text figure {
		padding-inline: 2.5% 0;
	}
}
@media only screen and (max-width: 468px) {
	section.sustainability .box {
		margin-block: 15px 50px;
	}
}

/* =========================================================================================
News
=========================================================================================*/
section.news .inner {
	display: grid;
	grid-template-columns: 300px 1fr;
	grid-template-rows: repeat(2, auto);
	gap: 50px 10%;
}
section.news .inner .mid-xl {
	grid-area: 1 / 1 / 2 / 2;
}
section.news .inner .post-list {
	grid-area: 1 / 2 / 3 / 3;
}
section.news .inner .btn {
	grid-area: 2 / 1 / 3 / 2;
}
@media only screen and (max-width: 820px) {
	section.news .inner {
		display: flex;
		flex-direction: column;
		gap: 0;
	}
	section.news .inner .post-list {
		margin-bottom: 50px;
	}
}
@media only screen and (max-width: 468px) {
}

/* =========================================================================================
Recruitment
=========================================================================================*/
section.recruitment {
	color: #fff;
	background: linear-gradient(to right, #004f99 0%, #009bc5 100%);
}
section.recruitment .inner {
	display: flex;
	align-items: center;
	justify-content: right;
	position: relative;
	z-index: 5;
}
section.recruitment .inner::after {
	content: "";
	width: 60%;
	height: 100%;
	background: url(../images/recruitment_image.svg) no-repeat center;
	background-size: contain;
	position: absolute;
	top: 50%;
	right: 55%;
	translate: 0 -50%;
	z-index: -1;
}
section.recruitment .inner .mid-xl {
	color: #fff;
	margin: 0;
}
section.recruitment .inner .box {
	width: 60%;
	max-width: 600px;
	display: flex;
	flex-direction: column;
	align-items: start;
	justify-content: center;
}
section.recruitment .inner .box .catchphrase strong {
	font-size: clamp(1.25rem, calc(0.625rem + 2.667vw), 2.625rem); /* min: 20px, max: 42px */
	line-height: 1.5;
	display: block;
	margin-bottom: 1em;
}
section.recruitment .inner .box p {
	width: 100%;
	max-width: 500px;
	display: flex;
	flex-wrap: wrap;
	margin-block: 5vh;
}

@media only screen and (max-width: 980px) {
	section.recruitment {
		margin-top: 10%;
	}
	section.recruitment .inner {
		padding-top: 25%;
	}
	section.recruitment .inner::after {
		content: "";
		width: 60%;
		height: auto;
		aspect-ratio: 800 / 600;
		top: 0;
		right: auto;
		left: 50%;
		translate: -50% -50%;
	}
	section.recruitment .inner .box {
		width: 100%;
		max-width: none;
		align-items: center;
	}
	section.recruitment .inner .box .catchphrase strong {
		text-align: center;
	}
	section.recruitment .inner .box p {
		width: 90%;
		justify-content: center;
		margin-inline: auto;
	}
}
@media only screen and (max-width: 468px) {
	section.recruitment .inner .btn {
		width: 100%;
	}
}
