/* -----------------------------------------------
= kv
----------------------------------------------- */
.kv {
	position: relative;
	height: 100svh;
}
.kv h2 {
	position: absolute;
	top: 55px;
	left: 50%;
	transform: translateX(-50%);
	width: 30.9858px;
}
.kv .img img {
	object-fit: cover;
	height: 100svh;
}
@media print, screen and (min-width: 768px) {/* PC */
.kv {
	height: 740px;
	min-height: 540px;
	max-height: calc(100vh - 64px );
}
.kv h2 {
	top: 50%;
	transform: translate(-50%, -45%);
	width: 56.3379px;
}
.kv .img img {
	height: 740px;
	min-height: 540px;
	max-height: calc(100vh - 64px );
}
}/* @media */
/* -----------------------------------------------
= main
----------------------------------------------- */
@media print, screen and (min-width: 768px) {/* PC */
.main {
	overflow: hidden;
}
}/* @media */
/* -----------------------------------------------
= section
----------------------------------------------- */
.section {
	position: relative;
	margin-block: 65px 70px;
}
.section::after {
	content: "";
	position: absolute;
	top: -30px;
	left: 12px;
	width: 0.5px;
	height: calc(100% + 30px);
	background: #808080;
}
.section .heading {
	position: relative;
	border-top: 0.5px solid #808080;
	border-bottom: 0.5px solid #808080;
	font-family: var(--zen);
	font-size: calc(2rem / 1.6);
	letter-spacing: .02em;
}
.section .heading span {
	display: block;
	position: relative;
	padding: 6px 10px 6px 48px;
}
.section .heading span::before {
	content: "";
	position: absolute;
	top: 0;
	left: 12.5px;
	width: 27px;
	height: 100%;
	background: var(--red);
}
.section .inner {
	padding: 12px 12px 0 24px;
}
.section .text {
	margin-bottom: 13px;
	font-size: calc(1.3rem / 1.6);
}
.section .more {
	position: relative;
	z-index: 1;
	width: 204px;
	margin-inline: auto;
	color: #fff;
	background: #333;
	font-family: var(--en);
	font-size: calc(1.1rem / 1.6);
	text-align: center;
}
.section .more a {
	display: block;
}
.section .more span {
	position: relative;
	display: inline-block;
	padding-right: 52px;
}
.section .more span::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 41px;
	height: 100%;
	background: url(../img/top/icon-more-arrow.svg) no-repeat 50% / 100% auto;
}
@media print, screen and (min-width: 768px) {/* PC */
.section {
	margin-block: 135px 236px;
}
.section::after {
	top: -135px;
	left: calc(50% - 665px);
	width: 1px;
	height: calc(100% + 135px);
}
.section .heading {
	padding: 0;
	border-top-width: 1px;
	border-bottom-width: 1px;
	font-size: clamp(calc(3rem / 1.6), calc(44 / 1500 * 100vw), calc(4.4rem / 1.6));
	letter-spacing: .06em;
}
.section .heading span {
	max-width: 1150px;
	margin-inline: auto;
	padding: 0 90px;
}
.section .heading span::before {
	left: 0;
	width: 64px;
}
.section .inner {
	max-width: 1330px;
	margin-inline: auto;
	padding: 0;
	box-sizing: border-box;
}
.section .text {
	margin-bottom: 40px;
	font-size: calc(1.6rem / 1.6);
	line-height: calc(28 / 16);
}
.section .more {
	width: 408px;
	font-size: calc(2.2rem / 1.6);
}
.section .more span {
	padding-right: 104px;
}
.section .more span::before {
	width: 82px;
}
.section .bg {
	position: absolute;
}
}/* @media */
@media (hover: hover) {
.section .more a {
	transition: background .3s;
}
.section .more a:hover {
	background: var(--red);
}
}/* @media */
/* -----------------------------------------------
= about
----------------------------------------------- */
.about ul {
	margin-bottom: 20px;
}
.about li {
	margin-bottom: 8px;
	font-family: var(--zen);
	font-size: calc(1.4rem / 1.6);
	letter-spacing: 0;
}
.about li img {
	margin-bottom: 2px;
}
@media print, screen and (min-width: 768px) {/* PC */
.about .inner {
	padding: 22px 16px 0 90px;
}
.about ul {
	margin-bottom: 55px;
}
.about li {
	margin-bottom: 0;
	font-size: clamp(calc(2.4rem / 1.6), calc(30 / 1500 * 100vw), calc(3rem / 1.6));
	line-height: calc(44 / 30);
}
.about li a {
	display: grid;
	grid-template-columns: auto calc(902 / 1226 * 100%);
	align-items: center;
	gap: 0 .5em;
}
.about li img {
	order: 2;
	margin-bottom: 0;
}
.about li span {
	order: 1;
}
.about .more {
	margin-right: min(247px, calc(247 / 1500 * 100vw));
}
.about .bg.type01 {
	top: -102px;
	right: calc(50% - 648px);
	z-index: 1;
	width: 40px;
	height: 137px;
	background: #ccc;
}
.about .bg.type02 {
	top: 186px;
	right: calc(50% - 750px);
	width: 86px;
	height: 38px;
	background: #4d4d4d;
}
.about .bg.type03 {
	bottom: 436px;
	left: calc(50% - 751px);
	width: 86px;
	height: 86px;
	background: #4d4d4d;
}
.about .bg.type04 {
	bottom: -68px;
	left: calc(50% - 605px);
	width: 28px;
	height: 137px;
	background: #ccc;
}
}/* @media */
/* -----------------------------------------------
= location
----------------------------------------------- */
.location img {
	margin-bottom: 26px;
}
@media print, screen and (min-width: 768px) {/* PC */
.location {
	min-height: 705px;
	margin-bottom: -270px;
}
.location::after {
	left: auto;
	right: calc(50% - 665px);
}
.location .heading {
	text-align: right;
}
.location .heading span::before {
	left: auto;
	right: 0;
}
.location .inner {
	position: relative;
	padding: 22px 80px 0 0;
}
.location .text {
	margin-left: calc(700 / 1330 * 100%);
	margin-bottom: 130px;
	text-align: right;
}
.location .img {
	position: absolute;
	top: -135px;
	left: 0;
	width: calc(649 / 1330 * 100%);
}
.location .more {
	position: relative;
	right: -60px;
}
.location .bg.type01 {
	top: 333px;
	right: calc(50% - 751px);
	width: 86px;
	height: 38px;
	background: #4d4d4d;
}
.location .bg.type02 {
	bottom: 165px;
	right: calc(50% - 700px);
	width: 35px;
	height: 73px;
	background: #ccc;
}
}/* @media */
@media print, screen and (max-width: 1023px) and (min-width: 768px) {/* TABLET */
.location {
	min-height: 0;
	margin-bottom: 0;
}
.location .text {
	margin-left: 0;
	margin-bottom: 50px;
}
.location .img {
	position: static;
	margin-inline: auto;
}
}/* @media */
/* -----------------------------------------------
= interview
----------------------------------------------- */
.interview ul {
	clip-path: inset(0 -12px 0 -24px);
}
.interview ul::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	background: url(../img/top/interview-bg.jpg) no-repeat 50% / cover;
}
.interview li {
	padding: 26px 20px 34px 8px;
}
.interview .set {
	margin-bottom: 20px;
	border-left: 4px solid #f14954;
}
.interview .factory span {
	display: inline-block;
	margin-bottom: 12px;
	padding: 2px 20px 2px 10px;
	color: #fff;
	background: #000;
	font-size: calc(1.5rem / 1.6);
	font-weight: 700;
}
.interview .division {
	margin: 0 0 20px 12px;
	font-size: calc(1.3rem / 1.6);
}
.interview .title {
	margin: 0 0 15px 12px;
	font-family: var(--zen);
	font-size: calc(2.1rem / 1.6);
	line-height: calc(27 / 21);
	letter-spacing: 0;
}
@media print, screen and (min-width: 768px) {/* PC */
.interview {
	margin-block: 105px 0;
}
.interview::before {
	content: "";
	position: absolute;
	top: 197px;
	left: 0;
	width: 100%;
	height: calc(100% - 197px);
	z-index: -1;
	background: url(../img/top/interview-bg.jpg) no-repeat 50% 0 / cover;
}
.interview ul {
	clip-path: none;
	padding: 184px 0 120px;
}
.interview ul::before {
	display: none;
}
.interview .inner {
	padding: 22px 16px 0 90px;
}
.interview ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 50px;
}
.interview li:nth-child(2n) .set {
	display: flex;
	flex-direction: column;
}
.interview li:nth-child(2n) .set .img {
	order: 1;
	margin-bottom: 24px;
}
.interview li:nth-child(2n) .set .factory {
	order: 2;
}
.interview li:nth-child(2n) .set .division {
	order: 3;
}
.interview li:nth-child(2n) .set .title {
	order: 4;
	margin-bottom: 0;
}
.interview .img {
	position: relative;
}
.interview .img .more {
	position: absolute;
	right: 0;
	bottom: 0;
	width: auto;
	padding-inline: 9px 12px;
	font-size: calc(1.76rem / 1.6);
}
.interview .bg.type01 {
	top: 145px;
	left: calc(50% + 459px);
	width: 161px;
	height: 21px;
	background: #4d4d4d;
}
.interview .bg.type02 {
	bottom: 84px;
	left: calc(50% - 751px);
	width: 86px;
	height: 43px;
	background: #4d4d4d;
}
.interview .bg.type03 {
	bottom: -18px;
	left: calc(50% + 33px);
	width: 266px;
	height: 18px;
	background: #ccc;
}
}/* @media */
@media (hover: hover) {
.interview a .more {
	transition: background .3s;
}
.interview a:hover .more {
	background: var(--red);
}
}/* @media */
/* -----------------------------------------------
= message
----------------------------------------------- */
.message .img {
	margin: 0 -12px 26px -24px;
}
@media print, screen and (min-width: 768px) {/* PC */
.message {
	margin-bottom: 0;
}
.message::after {
	left: auto;
	right: calc(50% - 665px);
}
.message .heading {
	text-align: right;
}
.message .heading span::before {
	left: auto;
	right: 0;
}
.message .inner {
	position: relative;
	padding: 22px 80px 0 0;
}
.message .text {
	text-align: right;
}
.message .img {
	margin: 0;
}
.message .more {
	position: absolute;
	bottom: 54px;
	right: 0;
}
.message .bg.type01 {
	top: 109px;
	right: calc(50% + 580px);
	width: 86px;
	height: 27px;
	background: #4d4d4d;
}
.message .bg.type02 {
	bottom: 275px;
	left: calc(50% + 585px);
	width: 163px;
	height: 38px;
	background: #ccc;
}
}/* @media */
/* -----------------------------------------------
= work-info
----------------------------------------------- */
.work-info {
	margin-inline: 32px;
}
.work-info li {
	padding: 13px;
	background: #f0f0f0;
}
.work-info li + li {
	margin-top: 15px;
}
.work-info li a {
	display: block;
	padding: 17px 10px;
	color: #fff;
	background: #787878;
	border: 0.5px solid var(--red);
	font-size: calc(1.4rem / 1.6);
	line-height: 1.3;
	text-align: center;
	letter-spacing: .06em;
}
.work-info li:last-child a {
	text-align: left;
	letter-spacing: 0;
}
.work-info li span {
	display: inline-block;
}
.work-info li span::before {
	content: "";
	display: inline-block;
	width: 10px;
	height: 10px;
	margin-right: 5px;
	background: var(--red);
}
.work-info li:last-child span {
	position: relative;
	display: table;
	margin-inline: auto;
	padding-left: 15px;
}
.work-info li:last-child span::before {
	position: absolute;
	top: calc(50% - 5px);
	left: 0;
	margin-right: 0;
}
@media print, screen and (min-width: 768px) {/* PC */
.work-info {
	position: relative;
	max-width: 1353px;
	margin-inline: auto;
	padding-block: 72px 135px;
}
.work-info::after {
	content: "";
	position: absolute;
	top: 0;
	right: 12px;
	width: 0.5px;
	height: 100%;
	background: #808080;
}
.work-info ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 25px;
	margin-inline: 13px 90px;
}
.work-info li {
	padding: 28px;
}
.work-info li + li {
	margin-top: 0;
}
.work-info li a {
	display: grid;
	place-content: center;
	height: calc(100% - 50px);
	padding: 25px 10px;
	border-width: 1px;
	font-size: calc(2.4rem / 1.6);
}
.work-info li:last-child a {
	font-size: calc(1.8rem / 1.6);
}
.work-info li:last-child span {
	padding-left: 25px;
}
.work-info li span::before {
	width: 18px;
	height: 18px;
	margin-right: 10px;
}
.work-info li:last-child span::before {
	margin-right: 0;
}
}/* @media */
@media (hover: hover) {
.work-info a {
	transition: .3s;
}
.work-info a:hover {
	background: var(--red);
	border-color: #787878;
}
.work-info li span::before {
	transition: background .3s;
}
.work-info a:hover span::before {
	background: #787878;
}
}/* @media */

