@charset "UTF-8";

/*================================================
 *  受託製造ページ専用スタイル
 *  プレフィックス: os- (outsourcing)
 ================================================*/

/* ページ全体のフッターマージン上書き */
.os-page footer {
	margin-top: 0;
}

/*================================================
 *  ヒーローセクション（画像＋テキストオーバーレイ）
 ================================================*/
.os-hero {
	position: relative;
	width: 100%;
	overflow: hidden;
}
.os-hero-img {
	width: 100%;
	height: 520px;
	object-fit: cover;
	object-position: center center;
	display: block;
}
.os-hero-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(
		to right,
		rgba(10, 24, 50, 0.88) 0%,
		rgba(10, 24, 50, 0.70) 40%,
		rgba(10, 24, 50, 0.25) 75%,
		rgba(10, 24, 50, 0.10) 100%
	);
	display: flex;
	align-items: center;
}
.os-hero-inner {
	width: 1080px;
	margin: 0 auto;
	text-align: left;
	padding: 0 40px;
}
.os-hero-title {
	color: #fff;
	font-size: 3.6rem;
	font-weight: bold;
	margin-bottom: 18px;
	line-height: 1.4;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
	/* グローバル h2 上書き */
	border-bottom: none;
	height: auto;
	margin-top: 0;
}
.os-hero-sub {
	color: #dce6f0;
	font-size: 1.9rem;
	line-height: 1.7;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.4);
}

/*================================================
 *  キャッチコピー
 ================================================*/
.os-catchcopy {
	width: 100%;
	background-color: #fff;
	padding: 60px 0 40px;
}
.os-catchcopy-inner {
	width: 1080px;
	margin: 0 auto;
	text-align: center;
}
.os-catch-main {
	font-size: 2.6rem;
	font-weight: bold;
	color: #1a1a1a;
	line-height: 1.7;
	margin-bottom: 20px;
	/* グローバル h3 上書き */
	background-color: transparent;
	margin-left: 0;
	margin-right: 0;
	margin-top: 0;
}
.os-catch-sub {
	font-size: 1.6rem;
	color: #555;
	line-height: 1.8;
}

/*================================================
 *  強み (Strengths)
 ================================================*/
.os-strengths {
	width: 100%;
	background-color: #f5f7fa;
	padding: 60px 0 70px;
}
.os-strengths-inner {
	width: 1080px;
	margin: 0 auto;
}

/* セクションタイトル（線＋テキスト＋線） */
.os-section-title {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 50px;
}
.os-line {
	flex: 1;
	height: 1px;
	background-color: #bbb;
	max-width: 220px;
}
.os-title-text {
	font-size: 2.8rem;
	font-weight: bold;
	color: #1a1a1a;
	padding: 0 30px;
	letter-spacing: 0.15em;
	font-family: "Times New Roman", "游明朝", YuMincho, serif;
}

/* カード4列 */
.os-cards {
	display: flex;
	gap: 22px;
}
.os-card {
	flex: 1;
	background-color: #fff;
	border: 1px solid #d0dce8;
	border-left: 4px solid #1e5bb8;
	padding: 30px 18px 25px;
	text-align: center;
	border-radius: 4px;
}
.os-card-number {
	margin-bottom: 15px;
}
.os-card-number span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: linear-gradient(135deg, #1854a8, #2e7ce8);
	color: #fff;
	font-size: 2.0rem;
	font-weight: bold;
	font-family: "Times New Roman", serif;
}
.os-card h4 {
	font-size: 1.7rem;
	font-weight: bold;
	color: #1a2a4a;
	margin-bottom: 12px;
	line-height: 1.5;
	/* グローバル h4 上書き */
	background-color: transparent;
	margin-left: 0;
	margin-right: 0;
}
.os-card p {
	font-size: 1.4rem;
	color: #555;
	line-height: 1.7;
	text-align: left;
}

/*================================================
 *  製品・設備・システム
 ================================================*/
.os-info {
	width: 100%;
	background-color: #fff;
	padding: 60px 0;
}
.os-info-inner {
	width: 1080px;
	margin: 0 auto;
	display: flex;
	gap: 50px;
}
.os-info-col {
	flex: 1;
}
.os-info-col h4 {
	font-size: 2.2rem;
	font-weight: bold;
	color: #1a1a1a;
	margin-bottom: 20px;
	padding-bottom: 10px;
	border-bottom: 2px solid #1e5bb8;
	font-family: "Times New Roman", "游明朝", YuMincho, serif;
	letter-spacing: 0.08em;
	/* グローバル h4 上書き */
	background-color: transparent;
	margin-left: 0;
	margin-right: 0;
}
.os-info-col ul {
	margin: 0;
	padding: 0;
}
.os-info-col li {
	font-size: 1.5rem;
	color: #333;
	padding: 7px 0;
	padding-left: 20px;
	position: relative;
	line-height: 1.6;
}
.os-info-col li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 7px;
	height: 7px;
	background-color: #1e5bb8;
	border-radius: 50%;
}
.os-system-desc {
	font-size: 1.5rem;
	color: #333;
	margin-bottom: 8px;
	font-weight: bold;
}

/*================================================
 *  お問合せ CTA
 ================================================*/
.os-contact {
	width: 100%;
	background-color: #f5f7fa;
	padding: 50px 0;
}
.os-contact-inner {
	width: 1080px;
	margin: 0 auto;
	text-align: right;
}
.os-contact-inner h4 {
	font-size: 2.4rem;
	font-weight: bold;
	color: #1a1a1a;
	margin-bottom: 20px;
	font-family: "Times New Roman", "游明朝", YuMincho, serif;
	letter-spacing: 0.08em;
	/* グローバル h4 上書き */
	background-color: transparent;
	margin-left: 0;
	margin-right: 0;
}
.os-contact-btn {
	display: inline-block;
	padding: 14px 40px;
	border: 2px solid #1a1a1a;
	color: #1a1a1a;
	text-decoration: none;
	font-size: 1.6rem;
	font-weight: bold;
	border-radius: 4px;
	transition: background-color 0.3s ease, color 0.3s ease;
}
.os-contact-btn:hover {
	background-color: #1a1a1a;
	color: #fff;
}
.os-contact-btn span {
	margin-left: 8px;
	font-size: 2.0rem;
}

/*================================================
 *  フッターバー（サイトURL表示）
 ================================================*/
.os-footer-bar {
	background-color: #0d1f3c;
	width: 100%;
	padding: 18px 0;
}
.os-footer-bar-inner {
	width: 1080px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	color: #fff;
	font-size: 1.4rem;
}

/*================================================
 *  レスポンシブ：タブレット (1081px - 1310px)
 ================================================*/
@media screen and (min-width: 1081px) and (max-width: 1310px) {
	.os-hero-inner,
	.os-catchcopy-inner,
	.os-strengths-inner,
	.os-info-inner,
	.os-contact-inner,
	.os-footer-bar-inner {
		width: 96%;
		padding-left: 2%;
		padding-right: 2%;
	}
}

/*================================================
 *  レスポンシブ：スマートフォン (max-width: 1080px)
 ================================================*/
@media screen and (max-width: 1080px) {

	/* ヒーロー */
	.os-hero-img {
		height: 360px;
		object-position: 70% center;
	}
	.os-hero-overlay {
		background: linear-gradient(
			to bottom,
			rgba(10, 24, 50, 0.80) 0%,
			rgba(10, 24, 50, 0.65) 50%,
			rgba(10, 24, 50, 0.50) 100%
		);
	}
	.os-hero-inner {
		width: 100%;
		padding: 0 20px;
	}
	.os-hero-title {
		font-size: 2.2rem;
	}
	.os-hero-sub {
		font-size: 1.4rem;
	}

	/* キャッチコピー */
	.os-catchcopy {
		padding: 30px 15px;
	}
	.os-catchcopy-inner {
		width: 100%;
	}
	.os-catch-main {
		font-size: 1.8rem;
	}
	.os-catch-sub {
		font-size: 1.4rem;
	}

	/* 強み */
	.os-strengths {
		padding: 30px 15px;
	}
	.os-strengths-inner {
		width: 100%;
	}
	.os-section-title {
		margin-bottom: 30px;
	}
	.os-title-text {
		font-size: 2.2rem;
		padding: 0 15px;
	}
	.os-cards {
		flex-direction: column;
		gap: 16px;
	}
	.os-card {
		padding: 20px 15px;
	}

	/* 製品・設備・システム */
	.os-info {
		padding: 30px 15px;
	}
	.os-info-inner {
		width: 100%;
		flex-direction: column;
		gap: 30px;
	}

	/* お問合せ CTA */
	.os-contact {
		padding: 30px 15px;
	}
	.os-contact-inner {
		width: 100%;
		text-align: center;
	}

	/* フッターバー */
	.os-footer-bar-inner {
		width: 100%;
		padding: 0 15px;
		flex-direction: column;
		gap: 5px;
		text-align: center;
	}
}
