/*--------------------------------------------------------------
# Services Page Styles (サービスページスタイル)
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Services Page (サービス紹介)
--------------------------------------------------------------*/


/* .service-item は .card .card--rounded-xl に統合 */

.service-image {
	width: 100%;
	aspect-ratio: 2 / 1;
	overflow: hidden;
}

/* .service-image img は .img-cover に統合 */

.service-content {
	flex: 1;
	display: flex;
	flex-direction: column;
	text-align: center;
	align-items: center;
}

.service-content h3 {
	font-size: var(--font-size-h4);
	color: var(--color-text);
	font-weight: 700;
}

.service-content p {
	color: var(--color-text-light);
	line-height: 1.8;
}

/* Manufacturers (取扱メーカー) */
.manufacturers-list {
	max-width: var(--max-width-90);
	margin: 0 auto;
	display: grid; /* グリッドを明示的に指定 */
	grid-template-columns: 1fr; /* モバイルは1列 */
	gap: 1.2rem;
}

.manufacturer-card {
	display: block;
	text-decoration: none;
	transition: var(--transition-base);
	padding: 2.0rem !important; /* 20px */
}

.manufacturer-card:hover {
	transform: translateY(-0.4rem); /* 4px - ホバー時に少し浮き上がる */
	box-shadow: var(--shadow-md);
}

.manufacturer-image {
	width: 100%;
	height: 12.0rem; /* 120px */
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background-color: var(--color-white);
	border-radius: var(--radius-sm);
}

.manufacturer-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 1.0rem; /* 10px - 画像の余白 */
}

.manufacturer-name {
	font-size: 1.6rem; /* 16px */
	font-weight: 600;
	color: var(--color-text);
	text-align: center;
}

/* PC時: 3列2行のグリッド表示 */
@media screen and (min-width: 769px) {
	.manufacturers-list {
		grid-template-columns: repeat(3, 1fr); /* 3列表示 */
	}
	
	.manufacturer-image {
		height: 15.0rem; /* 150px - PC時は少し高めに */
	}
}

/* .manufacturer-item は .card .card--beige に統合 */

.manufacturer-item h3 {
	font-size: var(--font-size-base);
	color: var(--color-text);
	font-weight: 600;
}

/* Flow Steps (補聴器購入までの流れ) */
.flow-progress-description p {
	font-size: 1.6rem; /* 16px */
	color: var(--color-text);
	line-height: 1.8;
	margin: 0;
}

.flow-progress-bar {
	display: flex;
	align-items: stretch;
	justify-content: center;
	gap: 0;
	max-width: 100%;
	overflow-x: auto;
	margin: 0 auto;
}

.flow-progress-item {
	flex: 1;
	position: relative;
	background-color: var(--color-primary);
	color: var(--color-white);
	padding: 2.4rem 1.6rem; /* 24px 16px */
	text-align: center;
	min-width: 14.0rem; /* 140px */
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

/* 矢印型の形状 */
.flow-progress-item:not(:first-child)::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 3.0rem; /* 30px */
	height: 100%;
	background-color: inherit;
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	z-index: 0;
}

.flow-progress-item:not(:last-child)::after {
	content: '';
	position: absolute;
	right: -3.0rem; /* -30px */
	top: 0;
	width: 3.0rem; /* 30px */
	height: 100%;
	background-color: inherit;
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	z-index: 1;
}

/* コンテンツを前面に */
.flow-progress-item > * {
	position: relative;
	z-index: 2;
}

.flow-progress-item-1 {
	background-color: #2d6a2d; /* 最も濃い緑 */
	border-radius: 0.8rem 0 0 0.8rem; /* 左側のみ角丸 */
}

.flow-progress-item-2 {
	background-color: #3a7a3a; /* 濃い緑 */
}

.flow-progress-item-3 {
	background-color: #4a8a4a; /* やや濃い緑 */
}

.flow-progress-item-4 {
	background-color: #5a9a5a; /* 中程度の緑 */
}

.flow-progress-item-5 {
	background-color: #6aaa6a; /* やや薄い緑 */
}

.flow-progress-item-6 {
	background-color: var(--color-primary); /* 最も薄い緑 */
	border-radius: 0 0.8rem 0.8rem 0; /* 右側のみ角丸 */
}

.flow-progress-item-6::after {
	display: none;
}

.flow-progress-number {
	display: block;
	font-size: 2.8rem; /* 28px */
	font-weight: 700;
	margin-bottom: 0.8rem; /* 8px */
	line-height: 1;
}

.flow-progress-label {
	display: block;
	font-size: 1.4rem; /* 14px */
	font-weight: 600;
	line-height: 1.4;
}

.flow-detail-title h3 {
	font-size: 2.4rem; /* 24px */
	font-weight: 700;
	color: var(--color-primary);
	text-align: center;
	margin: 0;
}

.flow-steps-detail {
	max-width: var(--max-width-96);
	margin: 0 auto;
}

.flow-step-detail {
	align-items: stretch;
	position: relative;
	background-color: var(--color-white);
	border: 1px solid var(--color-gray);
	border-radius: 1.6rem; /* 16px */
	padding: 2.4rem; /* 24px */
	box-shadow: var(--shadow-sm);
	overflow: visible; /* 矢印を表示するため */
	margin-bottom: 4.0rem !important; /* 40px 矢印のスペースを確保 */
}

/* 最後のステップ以外に下向き矢印を追加 */
.flow-step-detail:not(:last-child)::after {
	content: '';
	position: absolute;
	bottom: -2.4rem; /* -24px */
	left: 50%;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 1.2rem solid transparent; /* 12px */
	border-right: 1.2rem solid transparent; /* 12px */
	border-top: 1.2rem solid var(--color-primary); /* 12px */
	z-index: 1;
}

.flow-step-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 8.0rem; /* 80px */
	height: 8.0rem; /* 80px */
	background-color: var(--color-primary);
	color: var(--color-white);
	font-size: 1.4rem; /* 14px */
	font-weight: 700;
	border-radius: 50%;
	position: absolute;
	top: 1.6rem; /* 16px */
	left: 1.6rem; /* 16px */
	z-index: 2;
	border: 0.4rem solid var(--color-white); /* 4px 白い枠線 */
	box-shadow: var(--shadow-sm);
}

.flow-step-left {
	flex: 0 0 35%; /* 左側を35%の幅に */
	position: relative;
	overflow: hidden;
	border-radius: 0.8rem; /* 8px */
}

.flow-step-icon {
	width: 100%;
	height: 100%;
	min-height: 20.0rem; /* 200px 最小の高さ */
	overflow: hidden;
	background-color: var(--color-gray-light);
}

/* .flow-step-icon img は .img-cover に統合（重複削除） */

.flow-step-right {
	flex: 1;
	padding-left: 2.4rem; /* 24px */
}

.flow-step-detail-title {
	font-size: 2.4rem; /* 24px */
	font-weight: 700;
	color: var(--color-primary);
	margin: 0 0 1.6rem 0; /* 0 0 16px 0 */
}

.flow-step-right p {
	font-size: 1.6rem; /* 16px */
	color: var(--color-text);
	line-height: 1.8;
	margin: 0 0 1.2rem 0; /* 0 0 12px 0 */
}

.flow-step-phone {
	color: var(--color-primary);
	font-size: 1.8rem; /* 18px */
	font-weight: 700;
}

.flow-step-link {
	color: var(--color-primary);
	text-decoration: none;
	transition: var(--transition-base);
	display: inline-flex;
	align-items: center;
	gap: 0.8rem; /* 8px */
}

.flow-step-link:hover {
	opacity: 0.8;
	text-decoration: underline;
}

.flow-note {
	font-size: 1.4rem; /* 14px */
	color: var(--color-primary);
	font-weight: 600;
}

/* レスポンシブ */
@media screen and (max-width: 768px) {
	.flow-progress-bar {
		flex-direction: column;
		gap: 0.8rem; /* 8px */
	}

	.manufacturers-list .c-card,
	.manufacturer-card {
		padding: 1.6rem !important;
	}
	
	.manufacturer-image {
		height: 10.0rem; /* 100px - モバイル時は少し低めに */
	}
	
	.flow-progress-item {
		width: 100%;
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	}
	
	.flow-progress-item::after {
		display: none;
	}
	
	.flow-step-detail {
		flex-direction: column;
		padding: 1.6rem; /* 16px */
	}
	
	.flow-step-badge {
		top: 1.2rem; /* 12px */
		left: 1.2rem; /* 12px */
		width: 6.0rem; /* 60px */
		height: 6.0rem; /* 60px */
		font-size: 1.2rem; /* 12px */
	}
	
	.flow-step-left {
		flex: 0 0 auto;
		width: 100%;
		margin-bottom: 1.6rem; /* 16px */
		min-height: 20.0rem; /* 200px */
	}
	
	.flow-step-right {
		padding-left: 0;
		text-align: left;
	}
	
	/* スマホ時の問い合わせボタン */
	.flow-contact-button {
		font-size: 1.6rem; /* 16px - スマホ向けに調整 */
		padding: 1.4rem 3.0rem; /* 14px 30px - スマホ向けに調整 */
		width: 100%;
		max-width: 32.0rem; /* 320px - 最大幅を設定 */
		margin-left: auto;
		margin-right: auto;
	}
}

.flow-notice {
	background-color: var(--color-white);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
	max-width: 96rem;
	margin: auto;
}

.flow-notice p {
	font-size: var(--font-size-large);
	color: var(--color-text);
}

/* フロー問い合わせボタン */
.flow-contact-button {
	margin-top: 2.4rem; /* 24px - 上のテキストとの余白 */
	font-size: 1.8rem; /* 18px - 少し大きめのフォント */
	padding: 1.6rem 4.0rem; /* 16px 40px - 余白を多めに */
	font-weight: 700; /* 太字 */
	background-color: var(--color-primary);
	color: var(--color-white);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.8rem; /* 8px - アイコンとの間隔 */
	transition: all 0.3s ease;
}

.flow-contact-button:hover {
	background-color: var(--color-primary-dark);
	transform: translateY(-0.3rem); /* 3px - ホバー時に少し浮き上がる */
	box-shadow: 0 4px 12px rgba(90, 159, 77, 0.3); /* 影を追加 */
}

.flow-contact-button .icon {
	font-size: 1.6rem; /* 16px - アイコンサイズ */
}

/* PC時: サービス内容セクションと取扱メーカーセクションの間の余白を追加 */
@media screen and (min-width: 769px) {
	.l-section-service-list {
		margin-bottom: 8.0rem; /* 80px - PC時のみ余白を追加 */
	}
}

/* Responsive */
@media screen and (max-width: 768px) {
	/* Note: .service-item, .manufacturers-list, .flow-step のレスポンシブは Tailwind CSS で定義済み */
}

