@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300..700&display=swap');
.kv {
		background-repeat: no-repeat;
		background-position: center bottom;
		background-size: cover;
		background-image: url("../images/factory_kv_pc.jpg");
		height: 800px;
		display: flex;
		justify-content: center;
		align-items: center;
		position: relative;
}
.kv::after {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.05);
}
@media(max-width: 1600px) {
		.kv {
				background-size: cover;
				background-image: url("../images/factory_kv_mid.jpg");
				height: 60vw;
		}
}
@media(max-width: 960px) {
		.kv {
				background-size: cover;
				background-image: url("../images/factory_kv_sp.jpg");
				height: 70vw;
		}
}
@media(max-width: 767px) {
		.kv {
				background-size: cover;
				background-image: url("../images/factory_kv_sp.jpg");
				height: 80vw;
		}
}
.kv .bread_wrap {
		position: absolute;
		top: 0;
		left: 0;
		z-index: 10;
		width: 100%;
}
#bread {
		color: #fff;
		margin-top: 140px;
}
#bread li {
		font-size: 11px !important;
}
#bread a {
		color: #fff !important;
}
@media(max-width: 960px) {
		#bread {
				margin: 95px auto 0;
				padding: 0 20px;
		}
}
@media(max-width: 767px) {
		#bread {
				margin: 70px auto 0;
				padding: 0 20px;
		}
}
/* ========== */
.kv_logo {
		width: 420px;
		position: relative;
		z-index: 5;
		top: 30px;
}
.kv_logo img {
		width: 100%;
		height: auto
}
.loadingLine {
		fill: none;
		stroke: white;
		stroke-width: 20;
		stroke-linecap: round;
		stroke-dasharray: 3000;
		stroke-dashoffset: 3000;
}
.lineMaskActive .loadingLine {
		animation: drawLine 10s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes drawLine {
		to {
				stroke-dashoffset: 0;
		}
}
.kv_logo .kv_logo_txt {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		opacity: 0;
		transition: opacity 0.4s;
		transition-delay: 1.2s
}
.kv_logo.lineMaskActive .kv_logo_txt {
		opacity: 1;
}
@media(max-width: 1600px) {
		.kv_logo {
				width: 340px;
				top: 40px;
		}
}
@media(max-width: 960px) {
		.kv_logo {
				width: 320px;
		}
}
@media(max-width: 767px) {
		.kv_logo {
				width: 200px;
				top: 30px;
		}
}
.factory_wrap {
		padding: 80px 0;
}
.isf_message, .ceo_message {
		max-width: 1000px;
}
.isf_message {
		margin: 0 auto 60px;
		padding: 0 30px;
}
.ceo_message {
		margin: 0 auto;
		padding: 60px 30px 80px;
		border-top: 1px solid #ccc;
}
.isf_message h2 {
		font-family: "Noto Sans JP", sans-serif;
		font-size: 30px;
		font-weight: 600;
		color: #345ca8;
		font-feature-settings: "palt";
		letter-spacing: 0.08em;
		margin: 0 0 30px;
}
.ceo_message h3 {
		font-family: "Noto Sans JP", sans-serif;
		font-size: 22px;
		font-weight: 500;
		font-feature-settings: "palt";
		letter-spacing: 0.08em;
		margin: 0 0 20px;
}
.isf_message p {
		line-height: 2.0;
		margin: 0 0 0.75em;
		font-size: 16px;
		font-family: "Noto Sans JP", sans-serif;
		font-feature-settings: "palt";
		letter-spacing: 0.05em;
		font-weight: 350;
}
.ceo_message p {
		line-height: 2.0;
		margin: 0 0 0.75em;
		font-size: 16px;
		font-family: "Noto Sans JP", sans-serif;
		font-feature-settings: "palt";
		letter-spacing: 0.05em;
		font-weight: 350;
}
.message_sign {
		display: flex;
		justify-content: flex-end
}
.message_sign p {
		line-height: 1.6;
}
@media(max-width: 767px) {
		.factory_wrap {
				padding: 40px 0;
		}
		.isf_message {
				margin: 0 auto 40px;
				padding: 0 20px;
		}
		.ceo_message {
				padding: 40px 20px;
		}
		.isf_message h2 {
				font-size: 24px;
				margin: 0 0 30px;
		}
		.ceo_message h3 {
				font-size: 18px;
		}
		.isf_message p {
				line-height: 1.8;
				margin: 0 0 0.75em;
				font-size: 15px;
		}
		.ceo_message p {
				line-height: 1.8;
				margin: 0 0 0.75em;
				font-size: 15px;
		}
}
/* ========== */
.tile_gr {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 2px;
}
.factory_tile {
		position: relative;
}
.tile_thumb {
		overflow: hidden
}
.tile_thumb img {
		width: 100%;
		height: auto;
		transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
		cursor: zoom-in;
}
@media (hover: hover) {
		.tile_thumb:hover img {
				transform: scale(1.05)
		}
}
.factory_tile .tile_capion {
		position: absolute;
		left: 0;
		bottom: 0;
		box-sizing: border-box;
		padding: 5px 20px;
		font-family: "Noto Sans JP", sans-serif;
		font-feature-settings: "palt";
		letter-spacing: 0.05em;
		color: #fff;
		text-align: right;
		width: 100%;
		font-size: 17px;
		font-weight: 400;
		letter-spacing: 0.05em;
}
@media(max-width: 767px) {
		.tile_gr {
				display: grid;
				grid-template-columns: repeat(2, 1fr);
				gap: 1px;
		}
		.factory_tile .tile_capion {
				padding: 5px 15px;
				width: 100%;
				font-size: 13px;
				text-align: center;
		}
}
/* ========== */
.factory_access {
		max-width: 1000px;
		margin: 0 auto;
		padding: 90px 30px 20px;
}
.factory_access_flex {
		display: flex;
		margin: 0 0 40px;
}
@media(min-width: 768px) {
		.factory_access_col {
				width: 50%;
		}
}
.factory_access_col {
		font-family: "Noto Sans JP", sans-serif;
		font-feature-settings: "palt";
}
.factory_access_col h4 {
		font-size: 20px;
		font-weight: 700;
		margin: 0 0 10px;
		letter-spacing: 0.08em;
}
.factory_access_col h5 {
		font-weight: 600;
		font-size: 16px;
		margin: 0;
}
.factory_access_col p + h5 {
		margin-top: 1em;
}
.factory_access_col p {
		line-height: 1.8;
		font-size: 16px;
		letter-spacing: 0.05em;
		font-weight: 400;
}
.factory_map iframe {
		width: 100%;
		height: auto !important;
		aspect-ratio: 16 / 3.5;
}
@media(max-width: 960px) {
		.factory_map iframe {
				aspect-ratio: 2 /1;
		}
}
@media(max-width: 767px) {
		.factory_access {
				padding: 40px 20px 20px;
		}
		.factory_access_flex {
				display: block;
				margin: 0 0 30px;
		}
		.factory_access_flex .factory_access_col:first-child {
				margin-bottom: 30px;
		}
		.factory_access_col h4 {
				font-size: 18px;
		}
		.factory_access_col p {
				font-size: 15px;
		}
		.factory_map {
				padding: 0 20px;
		}
		.factory_map iframe {
				aspect-ratio: 4 /3;
		}
}