@charset "utf-8";
/* =============== */
.mission_flex {
		display: flex;
		justify-content: space-between;
		align-items: center; /* descriptionが伸びた分、左右(説明文/スローガン)を高さ中央で揃える */
}
/* Mission下の動画：ズームなし＝自然表示。登場は in-view でカーテンワイプ＋フェードアップ（/service/の幕リヴィールと同じ演出言語） */
.mission_movie {
		margin: 52px 0 0;
		position: relative;
		overflow: hidden;
		border-radius: 8px;
		box-shadow: 0 26px 60px -24px rgba(17, 17, 17, .30); /* 「意図して置いた」浮遊感 */
		/* in-view前：わずかに沈めてフェード */
		opacity: 0;
		transform: translateY(28px);
		transition: opacity 1s ease, transform 1.1s cubic-bezier(.16, 1, .3, 1);
}
.mission_movie.in-view {
		opacity: 1;
		transform: translateY(0);
}
.mission_movie video {
		width: 100%;
		height: auto;               /* ズーム・トリミング一切なし＝素の映像そのまま */
		display: block;
}
/* カーテン幕：右→左へワイプして動画を出す */
.mission_movie::after {
		content: "";
		position: absolute;
		inset: 0;
		background: #111;
		transform-origin: right center;
		transform: scaleX(1);
		transition: transform 1.1s cubic-bezier(.76, 0, .24, 1);
		transition-delay: .15s;
		z-index: 2;
		pointer-events: none;
}
.mission_movie.in-view::after {
		transform: scaleX(0);
}
.mission_flex_left {
		width: 36%;
		line-height: 2.4; /* 説明文(company_mission)は<p>無しの生テキストなので親に付与。詰まり解消 */
}
.mission_flex_left p {
		line-height: 2.4;
}
.mission_flex_right {
		width: 58.5%;
		display: flex;
		justify-content: space-between;
}
.mission_item {
		width: calc(calc(100% - 40px) * 0.33);
		border-top: 2px solid #C2153E;
		padding: 40px 20px 40px;
		box-sizing: border-box;
		box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 12px;
}
.mission_item_no {
		text-align: center;
		font-size: 24px;
		font-family: 'Poppins', sans-serif;
		font-weight: 500;
		line-height: 1;
		color: #C2153E;
		margin: 0 0 10px;
}
.mission_item_en {
		text-align: center;
		font-size: 24px;
		font-family: 'Poppins', sans-serif;
		font-weight: 700;
		margin: 0 0 40px;
}
.mission_item_figure {
		max-width: 105px;
		margin: 0 auto 25px;
}
.mission_item_figure img {
		width: 100%;
		height: auto;
}
.mission_item p {
		line-height: 1.8;
}
@media(max-width: 1300px) {
		.mission_item {
				width: calc(calc(100% - 20px) * 0.33);
				padding: 20px 10px;
		}
		.mission_item_no {
				font-size: 20px;
		}
		.mission_item_en {
				font-size: 20px;
		}
}
@media(max-width: 1100px) {
		.mission_flex {
				display: block;
		}
		.mission_flex_left {
				width: 100%;
				margin: 0 0 40px;
		}
		.mission_flex_right {
				width: 100%;
				margin: 0;
		}
		.mission_item {
				width: calc(calc(100% - 30px) * 0.33);
				padding: 30px 10px 30px;
		}
}
@media(max-width: 767px) {
		.verPortrait .mission_flex_right {
				display: block;
		}
		.verPortrait .mission_item {
				width: 80%;
				padding: 30px 10px 30px;
				margin: 0 auto 40px;
		}
		.mission_item_no {
				font-size: 18px;
				margin: 0 0 5px;
		}
		.mission_item_en {
				font-size: 18px;
				margin: 0 0 20px;
		}
		.mission_item_figure {
				max-width: 100px;
				margin: 0 auto 15px;
		}
}
/* Mission スローガン（右カラム＝価値観カードから差し替え・タイポ主役）
   コンセプト：ここで→人生→世界と射程が広がる＝スケールを段階的に拡大＋右へ字下げで上昇の対角線。
   「熱狂」は1・2回目=火種(赤)→3回目=炎グラデ点火(FV移植)でクライマックス。 */
.mission_flex_right.is-slogan {
		display: flex;
		align-items: center;
		justify-content: flex-start;
}
.mission_slogan {
		font-family: YakuHanMP, 'Shippori Mincho', serif;
		font-weight: 600;
		color: #222;
		letter-spacing: 0.04em;
		line-height: 1.3;
		margin: 0;
		display: flex;
		flex-direction: column;
}
.msl_line { display: block; font-size: 58px; }
.msl_2, .msl_3 { margin-top: 0.15em; }
.msl_hot { color: #C2153E; }
/* 最後の「熱狂」＝炎グラデ点火（TOP WHO / service heroと同じ火） */
.msl_fire {
		background-image:
				linear-gradient(0deg, rgba(34,34,34,0) 34%, #222 58%, #222 100%),
				linear-gradient(0deg, #F26B1E 0%, #DE3A26 30%, #C81C39 62%, #A8112F 100%);
		background-size: 100% 100%, 100% 140%;
		background-position: 50% 0%, 50% 100%;
		background-repeat: no-repeat;
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
		color: transparent;
		animation: missionFire 5s ease-in-out infinite;
}
@keyframes missionFire {
		0% { background-position: 50% 0%, 50% 100%; }
		50% { background-position: 50% 0%, 50% 62%; }
		100% { background-position: 50% 0%, 50% 100%; }
}
@media (prefers-reduced-motion: reduce) { .msl_fire { animation: none; } }
@media(max-width: 1100px) {
		.msl_line { font-size: 46px; }
}
@media(max-width: 767px) {
		.msl_line { font-size: 32px; }
		/* 説明文"末尾の重複スローガン1文"だけSP非表示（本文は残す。重複文は<span class="mission_dup">で囲ってある） */
		.mission_dup { display: none; }
		/* スローガン3段を中央ぞろえ（説明文が消えてスローガンが主役に） */
		.mission_flex_right.is-slogan { justify-content: center; }
		.mission_slogan { align-items: center; text-align: center; }
}
/* ================== */
.achievement_flex {
		display: flex;
}
.achievement_flex_left {
		margin-right: 60px;
		width: 630px;
}
.achievement_flex_left img {
		width: 100%;
		height: auto;
}
.achievement_flex_left p {
		line-height: 1.4;
		margin: 0 0 30px;
		font-size: 24px;
}
.achievement_flex_left p strong {
		font-size: 70%;
		color: #C2153E;
		font-family: 'Poppins', sans-serif;
		font-weight: 500;
}
.achievement_flex_right {
		flex: 1;
}
.achievement_flex_right p {
		margin-bottom: 2em;
		line-height: 2.0;
}
.achievement_flex_right p:last-child {
		margin-bottom: 0;
}
@media(max-width: 1300px) {
		.achievement_flex_left {
				margin-right: 30px;
				width: 65%;
		}
}
@media(max-width: 1023px) {
		.achievement_flex {
				display: flex;
				flex-direction: column-reverse;
		}
		.achievement_flex_right {
				margin-bottom: 60px;
		}
		.achievement_flex_left {
				margin-right: 0;
				width: 70%;
		}
		.verLandscape .achievement_flex_left {
				margin-left: auto;
				margin-right: auto;
		}
}
@media(max-width: 1023px) {
		.verPortrait .achievement_flex_left {
				margin-right: 0;
				width: 100%;
		}
}
/* ================== */
.history_flex {
		display: flex;
}
.history_flex_left {
		margin-right: 170px;
}
.history_cont_inner {
		position: relative;
}
.history_block {
		display: flex;
		position: relative;
}
.history_block::after {
		content: '';
		display: block;
		width: 1px;
		height: 100%;
		background: #B1B1B1;
		position: absolute;
		left: -22px;
		top: 3px;
		transform-origin: center top;
}
.history_cont_inner .history_block:last-child::after {
		/* 最後のブロックも線を出すが、末尾の項目(最後のdl)で止める＝垂れ下がりを防ぐ。
		   従来は display:none で丸ごと消していたが、最終年に複数項目があると線が途中で切れて見えるため変更（2026-07-31） */
		height: auto;
		top: 3px;
		bottom: 40px;
}
.history_block h4, .history_block dt p {
		font-family: 'Poppins', sans-serif;
		font-size: 20px;
		font-weight: 500;
		line-height: 1 !important;
		margin: 0 0 15px;
		color: #C2153E;
}
.history_block h4 {
		position: relative;
		margin-right: 4px;
}
.history_block h4::after {
		content: '';
		display: block;
		width: 12px;
		height: 12px;
		background: #C92B2B;
		position: absolute;
		left: -28px;
		top: 3px;
		z-index: 5;
}
.history_block dl {
		padding-bottom: 40px;
}
.history_block dt {
		margin: 0 0 15px;
}
.history_block dt h5 {
		font-weight: 500;
		font-size: 20px;
		line-height: 1.6;
		position: relative
}
@media(max-width: 1100px) {
		.history_flex_left {
				margin-right: 80px;
		}
}
@media(max-width: 1024px) {
		.history_flex {
				display: block;
		}
		.history_cont_inner {
				margin-left: 24px;
		}
}
@media(max-width: 767px) {
		.history_cont_inner {
				margin-left: 20px;
		}
		.history_block::after {
				left: -18px;
		}
		.history_block h4::after {
				left: -23px;
		}
		.history_block dl {
				padding-bottom: 35px;
		}
		.history_block h4, .history_block dt p {
				font-size: 18px;
				margin: 0 0 10px !important;
		}
		.history_block dt {
				margin-bottom: 10px;
		}
		.history_block dt h5 {
				font-size: 17px;
				margin: 0 0 5px;
		}
}
/* ================== */
.overview_flex {
		display: flex;
		justify-content: space-between;
		position: relative;
		z-index: 5;
}
.overview_flex table {
		width: 100%;
		border-collapse: collapse;
		border-top: 1px solid #D9D9D9;
}
.overview_left, .overview_right {
		width: calc(50% - 30px);
}
.overview_flex th, .overview_flex td {
		text-align: left;
		vertical-align: top;
		padding: 30px 0;
		border-bottom: 1px solid #D9D9D9;
		line-height: 1.8;
}
.overview_flex th {
		white-space: nowrap;
		width: 23%;
		font-weight: 500;
}
.overview_flex td li {
		list-style: none;
		margin-bottom: 6px;
}
.overview_flex td li ul {
		margin-left: 30px;
		padding-top: 5px;
}
.overview_flex td li ul li {
		position: relative;
		margin-bottom: 3px;
}
.overview_flex td ul li:last-child, .overview_flex td li ul li:last-child {
		margin-bottom: 0;
}
.overview_flex td li ul li::after {
		content: '';
		display: block;
		position: absolute;
		top: 0.75em;
		left: -16px;
		width: 6px;
		height: 6px;
		background: #C2153E;
}
.overview_tbl {
		display: flex;
		align-items: center;
		margin-bottom: 6px;
}
.overview_tbl dt {
		width: 170px;
}
@media(max-width: 840px) {
		.verPortrait .overview_flex {
				display: block;
		}
		.verPortrait .overview_left, .verPortrait .overview_right {
				width: 100%;
		}
		.verPortrait .overview_left table tr:last-child th, .verPortrait .overview_left table tr:last-child td {
				border-bottom: none;
		}
		.verPortrait .overview_left th, .verPortrait .overview_left td, .verPortrait .overview_right th, .verPortrait .overview_right td {
				padding: 15px 0;
		}
		.verLandscape .overview_left th, .verLandscape .overview_left td, .verLandscape .overview_right th, .verLandscape .overview_right td {
				padding: 0;
				display: block;
				width: auto;
				white-space: inherit;
				border: none;
				font-size: 16px;
		}
		.verLandscape .overview_left th, .verLandscape .overview_right th {
				padding: 10px 0 3px
		}
		.verLandscape .overview_left td, .verLandscape .overview_right td {
				padding: 0 0 10px;
				border-bottom: 1px solid #D9D9D9;
				font-size: 16px;
		}
}
@media(max-width: 767px) {
		.verLandscape .overview_flex {
				display: block;
		}
		.verLandscape .overview_left, .verLandscape .overview_right {
				width: 100%;
		}
		.verPortrait .overview_left th, .verPortrait .overview_left td, .verPortrait .overview_right th, .verPortrait .overview_right td {
				padding: 0;
				display: block;
				width: auto;
				white-space: inherit;
				border: none;
				font-size: 16px;
		}
		.verPortrait .overview_left th, .verPortrait .overview_right th {
				padding: 10px 0 3px
		}
		.verPortrait .overview_left td, .verPortrait .overview_right td {
				padding: 0 0 10px;
				border-bottom: 1px solid #D9D9D9;
				font-size: 16px;
		}
		.overview_tbl dt {
				width: 9em;
		}
		.overview_tbl {
				margin-bottom: 4px;
		}
		.overview_flex td li {
				margin-bottom: 4px;
		}
}
/* ================= */
.map_flex {
		display: flex;
}
.map_flex_left {
		width: 420px;
		margin-right: 100px;
}
.map_flex_right {
		flex: 1;
		position: relative;
		z-index: 5;
}
.map_flex_right iframe {
		width: 100%;
		height: 320px;
}
@media(max-width: 1450px) {
		.map_flex_left {
				width: 40%;
				margin-right: 25px;
		}
}
@media(max-width: 767px) {
		.page_col, .page_col.overview {
				padding: 40px 25px;
		}
		.page_col.map .map_bg {
				position: absolute;
				top: -2px;
				right: -4px;
				background: url("../images/map_side_bg.png") no-repeat 0 0;
				background-size: 58px;
				width: 58px;
				height: 217px;
				background: none;
		}
		.map_flex {
				display: block;
		}
		.map_flex_right iframe {
				width: 100%;
				height: auto;
				aspect-ratio: 4 / 3;
				margin-bottom: 25px;
		}
}