/*!-- Components.css
- セクション/コンポーネント単位のスタイル
--------------------------------------------------!*/
/* =============================

  [SECTION] HERO

============================= */
.secHero {
	position: relative;
	overflow: hidden;
	min-height: 100vh;
	min-height: 100svh;
	display: grid;
	align-items: center;
	padding: var(--space-8) var(--space-4);
	color: var(--gray-text);
}
/* 背景画像レイヤー（picture） */
.secHero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	height: 100%;
}
.secHero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	filter: saturate(0.90) brightness(0.95);
}
/* 背景オーバーレイ */
.secHero__veil {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(to top, rgba(0, 0, 0, .9) 0%, rgba(0, 0, 0, 0) 20%);
}
/* コンテナ */
.secHero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--container-sp);
	margin-inline: auto;
}
/* 情報カード */
.secHero__card {
	background: rgba(255, 255, 255, 0.9);
	border-top: var(--accent-bar-h) solid var(--accent);
	box-shadow: var(--shadow-2);
	padding: var(--space-7) var(--space-6);
	max-width: 32rem;
	margin-inline: auto;
}
/* キャッチ */
.secHero__catch {
	margin: 0 0 var(--space-4);
	font-family: var(--font-serif);
	font-weight: var(--fw-serif-strong);
	font-size: var(--fs-md);
	line-height: var(--lh-tight);
	color: var(--gray-heading);
}
/* タイトル */
.secHero__title {
	margin: 0 0 var(--space-5);
	font-family: var(--font-serif);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-tight);
	letter-spacing: var(--ls-tight);
	color: var(--accent);
}
.secHero__titleMain, .secHero__titleSub {
	display: inline-block;
	font-size: var(--fs-2xl);
}
/* リード */
.secHero__lead {
	margin: 0 0 var(--space-4);
	font-family: var(--font-sans);
	font-weight: var(--fw-regular);
	font-size: var(--fs-md);
	line-height: var(--lh-relaxed);
	color: var(--gray-text);
}
/* 実績 */
.secHero__results {
	margin: 0 0 var(--space-4);
}
.secHero__resultRow {
	display: grid;
	grid-template-columns: auto auto auto;
	align-items: baseline;
	justify-content: center;
	column-gap: var(--space-2);
}
.secHero__resultLabel {
	font-family: var(--font-sans);
	font-weight: var(--fw-bold);
	font-size: var(--fs-sm);
	color: var(--gray-heading);
	white-space: nowrap;
}
.secHero__resultValue {
	font-family: var(--font-oswald);
	font-weight: 600;
	font-size: var(--fs-3xl);
	line-height: 1;
	letter-spacing: var(--ls-number);
	color: var(--gray-heading);
}
.secHero__resultUnit {
	font-family: var(--font-sans);
	font-weight: var(--fw-bold);
	font-size: var(--fs-sm);
	color: var(--gray-heading);
	white-space: nowrap;
}
.secHero__rule {
	margin: var(--space-5) 0 var(--space-4);
	border: 0;
	border-top: 1px solid var(--gray-border);
}
/* 注釈 */
.secHero__note {
	margin: 0;
	font-family: var(--font-sans);
	font-weight: var(--fw-regular);
	font-size: var(--fs-xs);
	line-height: var(--lh-relaxed);
	color: var(--gray-muted);
}
.secHero__noteBreak {
	display: none;
}
/* CTA */
.secHero__cta {
	display: grid;
	gap: var(--space-3);
}
.secHero__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center; /* テキスト中央化 */
	width: 100%;
	padding: var(--space-5) var(--space-6);
	background: var(--cta-bg);
	color: var(--text-white);
	text-decoration: none;
	box-shadow: var(--shadow-1);
	position: relative; /* 疑似要素配置用 */
	overflow: visible;
	border-radius: var(--radius-1);
	transition: background .25s ease, box-shadow .25s ease, transform .2s ease;
}
.secHero__btn::before {
	content: "";
	position: absolute;
	inset: -2px; /* 外側に出して“見える枠”にする */
	border-radius: calc(var(--radius-1) + 4px);
	border: 2px solid var(--accent);
	opacity: 0; /* 通常は見せない */
	pointer-events: none;
	transition: opacity .25s ease, box-shadow .25s ease;
}
.secHero__btn::after {
	content: "›";
	position: absolute;
	right: var(--space-5);
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.25rem;
	line-height: 1;
	color: var(--accent);
	pointer-events: none;
	transition: transform .3s ease;
	z-index: 2; /* 枠より前 */
}
.secHero__btnText {
	font-family: var(--font-sans);
	font-weight: var(--fw-bold);
	font-size: var(--fs-md);
}
/* 補足 */
.secHero__ctaNote {
	margin: 0;
	text-align: center;
	font-family: var(--font-sans);
	font-weight: var(--fw-regular);
	font-size: var(--fs-xs);
	line-height: var(--lh-relaxed);
	color: var(--gray-muted);
}
/* Scroll Indicator */
.secHero__scroll {
	position: absolute;
	bottom: var(--space-6);
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
}
.secHero__scrollLink {
	display: inline-block;
	width: 1px;
	height: 40px;
	background: transparent;
	text-decoration: none;
}
.secHero__scrollLine {
	display: block;
	width: 1px;
	height: 100%;
	background: var(--bg-light);
	animation: scrollLine 2.2s ease-in-out infinite;
}
/* --- Breakpoints --- */
@media (min-width: 48rem) and (max-width: calc(60rem - 1px)) {}
@media (min-width: 48rem) { /* 背景オーバーレイ */
	.secHero__veil {
		background: linear-gradient(to top, rgba(0, 0, 0, .9) 0%, rgba(0, 0, 0, 0) 25%);
	}
	.secHero__card {
		margin-inline: 0;
	}
	.secHero__titleMain, .secHero__titleSub {
		display: block;
		font-size: var(--fs-4xl);
	}
	.secHero__note {
		text-align: center;
	}
	.secHero__noteBreak {
		display: block;
	}
}
@media (min-width: 60rem) {
	.secHero__inner {
		max-width: var(--container-pc);
	}
	.secHero__catch, .secHero__lead {
		font-size: var(--fs-lg);
	}
	.secHero__btn:hover {
		background: #252f3e;
		box-shadow: 0 10px 22px rgba(0, 0, 0, .18);
		transform: translateY(-2px);
	}
	.secHero__btn:hover::before {
		opacity: 1;
		box-shadow:
			0 0 0 2px var(--accent), 0 0 18px rgba(179, 134, 45, .45), 0 0 32px rgba(179, 134, 45, .18);
		animation: heroBtnGlow 1.8s ease-in-out infinite alternate;
	}
	.secHero__btn:hover::after {
		transform: translateY(-50%) translateX(6px);
	}
}
/* --- keyframes --- */
@keyframes scrollLine {
	0% {
		transform: scaleY(0.3);
		transform-origin: top;
	}
	50% {
		transform: scaleY(1);
		transform-origin: top;
	}
	100% {
		transform: scaleY(0.3);
		transform-origin: bottom;
	}
}
@keyframes heroBtnGlow {
	from {
		box-shadow:
			0 0 0 1px var(--accent), 0 0 8px rgba(184, 138, 42, .25), 0 0 18px rgba(184, 138, 42, .10);
	}
	to {
		box-shadow:
			0 0 0 2px var(--accent), 0 0 16px rgba(184, 138, 42, .45), 0 0 32px rgba(184, 138, 42, .20);
	}
}
/* =============================

  [SECTION] 悩み

============================= */
.secWorries {
	background: var(--bg-dark);
	color: var(--text-white);
}
.secWorries__inner {
	width: min(100% - (var(--space-6) * 2), var(--container-pc));
	margin-inline: auto;
	padding-block: clamp(3.5rem, 6vw, 5.5rem);
}
.secWorries__title {
	font-size: var(--fs-3xl);
	font-weight: var(--fw-serif-strong);
	letter-spacing: var(--ls-tight);
	line-height: var(--lh-normal);
	margin-bottom: clamp(1.25rem, 2.4vw, 1.75rem); /* 左カラム内に格納したので少し締める */
}
.secWorries__line {
	display: block;
}
.secWorries__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-7);
	align-items: center; /* PC時に左右の重心を合わせる */
}
/* --- 左：リスト（主役） --- */
.secWorries__list {
	margin: 0;
	padding: 0;
}
.secWorries__item {
	position: relative;
	padding-left: calc(var(--space-6) + var(--space-2)); /* ゴールドバー＋間 */
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	line-height: var(--lh-relaxed);
	letter-spacing: var(--ls-base);
}
.secWorries__timeline {
	/* 縦積み・等間隔 */
	display: flex;
	flex-direction: column;
	gap: clamp(1.25rem, 2.4vw, 1.75rem);
	position: relative;
	padding-left: 0; /* 既存の左余白は使わない */
}
.secWorries__timeline .secWorries__item {
	/* 【アイコン】テキスト の横並び */
	display: grid;
	--tl-col: 1.75rem;
	--tl-dot: 0.75rem;
	grid-template-columns: var(--tl-col) 1fr;
	column-gap: var(--space-4);
	align-items: start;
	position: relative;
	padding-left: 0;
	text-align: left;
}
.secWorries__timeline .secWorries__item::after {
	content: "";
	position: absolute;
	left: calc(var(--tl-col) / 2);
	top: calc(-1 * (var(--space-4))); /* remではなくトークン寄せでもOK */
	bottom: calc(-1 * (var(--space-4)));
	width: 1px;
	background: rgba(255, 255, 255, .25);
}
.secWorries__timeline .secWorries__item:first-child::after {
	top: calc(var(--tl-dot) / 2); /* 最初はドット中心から上を消す */
}
.secWorries__timeline .secWorries__item:last-child::after {
	bottom: calc(var(--tl-dot) / 2); /* 最後も同様 */
}
/* アイコン（ドット）：中央に配置 */
.secWorries__dot {
	width: var(--tl-dot);
	height: var(--tl-dot);
	border-radius: 999px;
	background: var(--accent);
	margin-top: calc((1.75em - var(--tl-dot)) / 2);
	justify-self: center;
	align-self: start;
	position: relative;
	z-index: 1; /* ラインの上に出す */
}
/* テキスト */
.secWorries__label {
	display: block;
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	line-height: var(--lh-relaxed); /* = 1.75（前提） */
	letter-spacing: var(--ls-base);
}
/* 区切り線：リスト終端の合図 */
.secWorries__rule {
	margin-top: clamp(1.75rem, 3vw, 2.5rem);
	width: 100%;
	height: 0;
	border-top: 1px solid rgba(255, 255, 255, .22);
	background: none;
}
/* 補足：階層を落として安心装置 */
.secWorries__note {
	margin-top: var(--space-6);
	font-size: var(--fs-sm);
	font-weight: var(--fw-regular);
	color: var(--text-white);
	line-height: var(--lh-relaxed);
	max-width: 40rem;
}
/* --- 右：画像ブロック（補助） --- */
.secWorries__media {
	margin: 0;
}
/* “額縁”：内枠を1段入れる（余白の二重構造） */
.secWorries__picture {
	display: block;
	aspect-ratio: 1 / 1; /* カンプの“正方形寄り” */
}
.secWorries__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	/* 右は主張させない：過度なコントラスト処理はしない */
}
/* --- Breakpoints --- */
@media (min-width: 48rem) {
	/* 2列×2行構造 */
	.secWorries__grid {
		display: grid;
		grid-template-columns: 1.15fr 0.85fr;
		grid-template-rows: auto 1fr;
		column-gap: clamp(2.5rem, 4vw, 3.5rem);
		row-gap: var(--space-6);
		align-items: end;
	}
	/* 見出し：左上 */
	.secWorries__title {
		grid-column: 1;
		grid-row: 1;
		margin-bottom: var(--space-8);
		font-size: var(--fs-4xl);
	}
	/* 左本文（タイムライン＋hr＋note）：左下 */
	.secWorries__list, .secWorries__rule, .secWorries__note {
		grid-column: 1;
	}
	.secWorries__list {
		grid-row: 2;
	}
	.secWorries__rule, .secWorries__note {
		grid-row: 2;
	}
	/* 画像：右側を縦結合 */
	.secWorries__media {
		grid-column: 2;
		grid-row: 1 / span 2;
	}
}
/* =============================

  [SECTION] 原因
	
============================= */
.secCause {
	background: var(--bg-light);
	color: var(--gray-text);
}
.secCause__inner {
	max-width: var(--container-pc);
	margin-inline: auto;
	padding-inline: var(--space-6);
	padding-block: clamp(3.5rem, 6vw, 5.5rem);
}
/* 見出し */
.secCause__title {
	color: var(--gray-heading);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-normal);
	letter-spacing: var(--ls-tight);
	font-size: var(--fs-3xl);
	margin-bottom: clamp(2.5rem, 4.8vw, 3.5rem);
}
/* スマホで意図した改行を担保（端末依存の不意な改行を避ける用途） */
.secCause__br {
	display: inline;
}
/* 本文ブロック */
.secCause__body {
	margin-top: var(--space-6);
}
.secCause__text {
	font-size: var(--fs-md);
	line-height: var(--lh-relaxed);
}
.secCause__text + .secCause__text {
	margin-top: var(--space-5); /* 段落間は一定 */
}
/* 強調：装飾最小（太字のみ） */
.secCause__em {
	font-weight: var(--fw-bold);
}
/* --- 図解ブロック --- */
.secCause__figure {
	margin-top: var(--space-8); /* 本文と図の間は大きめで“章切り” */
}
.secCause__figureFrame {
	background: var(--bg-light);
	padding: var(--space-4);
	aspect-ratio: 1 / 1; /* ← imgではなく枠 */
}
.secCause__figureFrame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	aspect-ratio: 1 / 1;
}
/* --- Breakpoints --- */
@media (min-width: 48rem) {
	.secCause__inner {
		display: grid;
		grid-template-columns: 1fr 1.5fr;
		column-gap: calc(var(--space-8) * 1.2);
		align-items: center; /* 以前: start → center */
	}
	.secCause__title {
		grid-column: 1;
		grid-row: 1;
		margin: 0;
		font-size: var(--fs-4xl);
	}
	.secCause__body {
		grid-column: 2;
		grid-row: 1;
		margin-top: 0; /* PCでは同一段に並ぶため上余白を消す */
	}
	/* 図をカラム外（=全幅）に */
	.secCause__figure {
		grid-column: 1 / -1;
		grid-row: 2;
		margin-top: var(--space-8);
	}
	.secCause__figureFrame {
		padding: 0;
		aspect-ratio: auto;
	}
	.secCause__figureFrame img {
		margin-inline: auto;
		max-width: var(--container-narrow);
	}
}
/* =============================

  [SECTION] ディスクシールとは
	
============================= */
.secDiscseel {
	background: var(--bg-grey);
	color: var(--gray-text);
}
.secDiscseel__inner {
	max-width: var(--container-pc);
	margin-inline: auto;
	padding-inline: var(--space-6);
	padding-block: clamp(3.5rem, 6vw, 5.5rem); /* secCauseと同レンジで統一 */
}
.secDiscseel__head {
	display: block;
}
.secDiscseel__title {
	font-size: var(--fs-3xl);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-normal);
	letter-spacing: var(--ls-tight);
	color: var(--gray-heading);
	margin-bottom: clamp(3rem, 5vw, 4.5rem);
}
/* 上段を小さくして主従関係を作る */
.secDiscseel__leadLine {
	display: block;
	font-size: var(--fs-xl);
}
.secDiscseel__mainLine {
	display: block;
}
.secDiscseel__logo {
	margin-top: var(--space-6);
	margin-bottom: var(--space-6);
	margin-inline: auto;
	max-width: 22rem; /* ロゴ主役化を防ぐ上限 */
}
.secDiscseel__logo img {
	width: 100%;
	height: auto;
	display: block;
}
.secDiscseel__lead {
	font-size: var(--fs-md);
	line-height: var(--lh-relaxed);
	color: var(--gray-text);
	margin-bottom: var(--space-10); /* リード→特性の切替 */
}
.secDiscseel__block {
	margin: calc(var(--space-8) * 1.5) 0;
}
.secDiscseel__subTitle {
	font-size: var(--fs-3xl);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-normal);
	color: var(--gray-heading);
	margin-bottom: var(--space-9);
}
.secDiscseel__timeline {
	display: grid;
	gap: var(--space-8);
	--tl-gap-y: var(--space-8);
}
.secDiscseel__tlItem {
	display: grid;
	grid-template-columns: 1.25rem 1fr;
	column-gap: var(--space-6);
	align-items: stretch;
}
.secDiscseel__tlRail {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	/* grid-row: 1 / 3; ←削除 */
	align-self: stretch; /* 親の高さに合わせて伸びる */
	justify-self: stretch;
	min-height: 0;
}
.secDiscseel__tlRail::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 auto; /* top/bottomは親に追従 */
	width: 1px;
	background: var(--gray-border);
	top: 0;
	bottom: calc(-1 * var(--tl-gap-y)); /* ← gap分はみ出して次と接続 */
}
.secDiscseel__tlItem:last-child .secDiscseel__tlRail::before {
	bottom: 0;
}
.secDiscseel__tlDot {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 999px;
	background: var(--accent);
	margin-top: 0.75rem;
	position: relative;
	z-index: 1; /* ドットを前面へ */
}
.secDiscseel__tlMain {
	display: grid;
	grid-template-columns: 3rem 1fr;
	column-gap: var(--space-4);
	align-items: start;
	align-self: start;
	grid-column: 2;
	grid-row: 1; /* ★ 1段目に固定 */
}
.secDiscseel__tlNum {
	font-family: var(--font-oswald);
	font-size: var(--fs-2xl);
	letter-spacing: var(--ls-number);
	line-height: 1;
	color: var(--dark-border); /* 目立ちすぎない番号 */
	margin-top: 0.05rem;
}
.secDiscseel__tlTitle {
	font-size: var(--fs-xl);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-normal);
	color: var(--gray-heading);
	margin-bottom: var(--space-7);
}
.secDiscseel__tlDesc {
	font-size: var(--fs-md);
	line-height: var(--lh-relaxed);
	color: var(--gray-text);
	margin-top: var(--space-3);
}
/* --- [保険2] tlDesc が tlText内にいる場合：負のマージンで“数字列まで引き戻す” --- */
.secDiscseel__tlText .secDiscseel__tlDesc {
	margin-left: calc(-3rem - var(--space-4)); /* 数字列＋gap分だけ左へ */
	width: calc(100% + 3rem + var(--space-4)); /* その分だけ横幅を拡張 */
}
.secDiscseel .secDiscseel__attrList {
	display: grid;
	margin-inline: auto;
	margin-bottom: calc(var(--space-10) * 1.1);
}
.secDiscseel__attrCard {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: 0; /* カードをやめる要件の担保 */
	border: 0;
	background: transparent;
}
.secDiscseel__attrIconWrap {
	color: var(--accent);
	margin-bottom: 0;
	line-height: 0;
}
.secDiscseel__attrIcon {
	width: 1.5rem;
	height: 1.5rem;
}
.secDiscseel__attrText {
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	color: var(--gray-heading);
}
.secDiscseel__attrItem + .secDiscseel__attrItem {
	border-top: 1px solid var(--gray-border);
	padding-top: var(--space-5);
	margin-top: var(--space-5);
}
/* 適応疾患 */
.secDiscseel__block--indication {
	margin-top: calc(var(--space-9) * 1.2);
}
.secDiscseel__indicationList {
	display: grid;
	gap: var(--space-5);
	margin-top: var(--space-8);
	padding: 0;
}
.secDiscseel__indicationItem {
	position: relative;
	padding-left: 1.5rem;
	font-size: var(--fs-lg);
	font-weight: var(--fw-bold);
	color: var(--gray-heading);
}
/* 静かなドット */
.secDiscseel__indicationItem::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.6em;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--accent);
}
/* 注意書き */
.secDiscseel__note {
	font-size: var(--fs-xs);
	line-height: var(--lh-relaxed);
	color: var(--gray-muted);
}
/* --- Breakpoints --- */
@media (min-width: 48rem) {
	.secDiscseel__inner {
		padding-inline: var(--space-6);
	} /* ここは維持でもOK */
	.secDiscseel__title {
		text-align: center;
		font-size: var(--fs-4xl);
	}
	.secDiscseel__subTitle {
		text-align: center;
		letter-spacing: var(--ls-tight);
		font-size: var(--fs-2xl);
	}
	.secDiscseel .secDiscseel__timeline {
		max-width: fit-content;
		margin-inline: auto;
		/* ★ ここが肝：ズレない基準値（テキスト量に非依存） */
		--tl-rail-col: 1.25rem; /* railの列幅 */
		--tl-gap: var(--space-6); /* railと本文の間 */
		--tl-num-col: 3.5rem; /* 01/02/03の列幅 */
		--tl-num-gap: var(--space-6);
	}
	.secDiscseel__tlMain {
		grid-template-columns: 3.5rem 1fr;
		column-gap: var(--space-6);
	}
	.secDiscseel__tlItem {
		grid-template-columns: var(--tl-rail-col) 1fr;
		column-gap: var(--tl-gap);
	}
	/* 1) rail + content の2列は固定値で定義（内容量に引っ張られない） */
	.secDiscseel__tlItem {
		grid-template-columns: var(--tl-rail-col) 1fr;
		column-gap: var(--tl-gap);
	}
	/* 2) number + text の2列も固定値で定義 */
	.secDiscseel__tlMain {
		grid-template-columns: var(--tl-num-col) 1fr;
		column-gap: var(--tl-num-gap);
	}
	/* tlDescがtlText内に残ってた場合のSP用“負のマージン”をPCでは無効化（保険） */
	.secDiscseel__tlText .secDiscseel__tlDesc {
		margin-left: 0;
		width: auto;
	}
	.secDiscseel__tlDesc {
		grid-column: auto;
		margin-top: 0;
	}
	.secDiscseel__attrList {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--space-5);
	}
	.secDiscseel__attrCard {
		flex-direction: column;
	}
	/* SPの横線を解除 */
	.secDiscseel__attrItem + .secDiscseel__attrItem {
		border-top: 0;
		padding-top: 0;
		margin-top: 0;
	}
	/* 縦線を追加 */
	.secDiscseel__attrItem:not(:first-child) {
		border-left: 1px solid var(--gray-border);
		padding-left: var(--space-7);
	}
	.secDiscseel__attrIcon {
		width: 3rem;
		height: 3rem;
	}
	.secDiscseel__indicationList {
		display: flex;
		justify-content: center;
		gap: var(--space-10);
	}
	.secDiscseel__indicationItem {
		padding-left: var(--space-5);
	}
}
@media (min-width: 60rem) {
	.secDiscseel__inner {
		width: min(100%, var(--container-pc));
	}
	.secDiscseel__lead {
		margin-inline: auto;
		max-width: var(--container-narrow);
	}
	.secDiscseel__note {
		text-align: center;
		max-width: var(--container-narrow);
		margin-inline: auto;
	}
}
/* =============================

  [SECTION] 椎間板が修復する過程
	
============================= */
.secRepairProcess {
	background: var(--bg-dark);
	color: var(--text-white);
}
.secRepairProcess__inner {
	max-width: var(--container-pc);
	margin-inline: auto;
	padding-inline: var(--space-6);
	padding-block: clamp(3.5rem, 6vw, 6rem);
}
.secRepairProcess__head {
	display: block;
	margin-bottom: clamp(3rem, 5vw, 4.5rem);
}
.secRepairProcess__title {
	font-size: var(--fs-3xl);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-normal);
	letter-spacing: var(--ls-tight);
	margin-bottom: 0;
}
.secRepairProcess .secRepairProcess__steps {
	display: grid;
	gap: clamp(1.375rem, 3vw, 2.5rem);
}
.secRepairProcess__step:not(:last-child) {
	padding-bottom: clamp(1.375rem, 3vw, 2.5rem);
	/* 線の色は既存の図解ブロック（.secRepairProcess__media）の枠線と合わせています */
	border-bottom: 1px dotted var(--light-border);
}
.secRepairProcess__step {
	display: grid;
	align-items: center;
	gap: 0;
	grid-template-columns: 1fr;
	column-gap: clamp(1.25rem, 2.8vw, 2.5rem);
	position: relative;
}
/* 意図：grid内要素が内容幅で押し広げないようにする（横はみ出し防止の本体） */
.secRepairProcess__num, .secRepairProcess__media, .secRepairProcess__text {
	grid-column: auto;
}
/* SPでは番号をabsolute化しない（幅押し・位置ズレ防止） */
.secRepairProcess__num {
	position: static;
	margin-bottom: -0.75rem;
	text-align: left;
	font-family: var(--font-oswald);
	font-size: clamp(var(--fs-3xl), 9vw, var(--fs-5xl)); /* 下限だけ縮小（トークン上限維持） */
	letter-spacing: var(--ls-tight);
	line-height: 1;
	color: var(--accent);
}
/* 図解ブロック（カード） */
.secRepairProcess__media {
	margin: 0 0 var(--space-6);
	border: 1px solid var(--light-border);
	padding: var(--space-2);
	max-width: 100%;
}
/* 意図：図解は“常に同サイズ”にするため比率固定 */
.secRepairProcess__pic {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
.secRepairProcess__pic img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
/* テキスト */
.secRepairProcess__stepTitle {
	font-size: var(--fs-xl);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-normal);
	margin-bottom: var(--space-4);
}
.secRepairProcess__desc {
	font-size: var(--fs-md);
	line-height: var(--lh-relaxed);
	color: var(--text-white);
}
/* --- Breakpoints --- */
@media (min-width: 48rem) {
	.secRepairProcess__inner {
		padding-inline: var(--space-6);
	}
	.secRepairProcess__head {
		margin-bottom: clamp(3rem, 5vw, 4.5rem);
	}
	.secRepairProcess__title {
		text-align: center;
		font-size: var(--fs-4xl);
	}
	/* 意図：Tabletは「図 / テキスト」の2列。reverseで左右スイング */
	.secRepairProcess__step {
		display: grid;
		align-items: center;
		gap: 0;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		column-gap: clamp(1.25rem, 2.8vw, 2.5rem);
		padding-top: clamp(2rem, 5vw, 3rem); /* 意図：番号のための上部“逃げ” */
	}
	.secRepairProcess__media, .secRepairProcess__text {
		grid-row: 1; /* 意図：2列の主要要素だけ同一行に固定 */
	}
	.secRepairProcess .secRepairProcess__steps {
		gap: clamp(2.75rem, 6vw, 5rem); /* 元の広い余白に戻す */
	}
	.secRepairProcess__step:not(:last-child) {
		padding-bottom: 0;
		border-bottom: none;
	}
	/* 番号は“装飾レイヤー”として列に参加させない（幅を押さない） */
	.secRepairProcess__num {
		position: absolute;
		top: -0.5rem;
		left: 0;
		z-index: 0;
		pointer-events: none;
	}
	/* reverse時：番号も右に寄せる（交互リズムを成立させる） */
	.secRepairProcess__step--reverse .secRepairProcess__num {
		left: auto;
		right: 0;
		text-align: right;
	}
	/* reverse：左右入替（Tablet） */
	.secRepairProcess__step--reverse .secRepairProcess__media {
		grid-column: 2;
	}
	.secRepairProcess__step--reverse .secRepairProcess__text {
		grid-column: 1;
	}
	.secRepairProcess__media, .secRepairProcess__text {
		position: relative;
		z-index: 1;
	}
	/* 画像はセル内で中央 */
	.secRepairProcess__media {
		grid-column: 1;
		align-self: center;
		margin: 0;
	}
	/* テキストはセルいっぱいに伸ばして、中身を天地中央 */
	.secRepairProcess__text {
		grid-column: 2;
		align-self: stretch;
		display: flex;
		flex-direction: column;
		justify-content: center;
	}
}
@media (min-width: 60rem) {
	.secRepairProcess__inner {
		width: min(100%, var(--container-pc));
	}
	.secRepairProcess__step {
		gap: 0;
		align-items: center;
		/* 奇数の列定義：番号 / 図解 / テキスト */
		grid-template-columns:
			clamp(3.5rem, 6vw, 6rem) minmax(0, 44rem) clamp(18rem, 26vw, 26rem);
		column-gap: clamp(1.25rem, 2.8vw, 2.5rem);
	}
	/* ★修正箇所：奇数・偶数共通の数字配置リセットと上揃え */
	.secRepairProcess__num {
		position: static; /* タブレットの絶対配置を解除 */
		grid-column: 1; /* 奇数は1列目 */
		align-self: start; /* 常に上端に揃える */
		margin-top: -0.25em; /* フォントの余白（line-height）吸収用 */
		justify-self: end;
		text-align: right;
	}
	.secRepairProcess__media, .secRepairProcess__text {
		align-self: center;
	}
	.secRepairProcess__media {
		grid-column: 2;
	}
	.secRepairProcess__text {
		grid-column: 3;
		align-self: stretch;
		display: flex;
		flex-direction: column;
		justify-content: flex-end; /* ← center を flex-end に変更 */
	}
	/* ★修正箇所：偶数の列定義（元の順番に戻す） */
	.secRepairProcess__step--reverse {
		grid-template-columns:
			clamp(18rem, 26vw, 26rem) /* テキスト列 */
			minmax(0, 44rem) /* 図解列 */
			clamp(3.5rem, 6vw, 6rem); /* 番号列 */
	}
	/* 偶数の数字配置 */
	.secRepairProcess__step--reverse .secRepairProcess__num {
		grid-column: 3; /* 3列目に移動 */
		justify-self: start;
		text-align: left;
		/* align-self: start; は共通設定から引き継がれます */
	}
	.secRepairProcess__step--reverse .secRepairProcess__text {
		grid-column: 1;
	}
	.secRepairProcess__step--reverse .secRepairProcess__media {
		grid-column: 2;
	}
}
/* =============================

  [SECTION] 効果出現までの期間

============================= */
.secExpectation {
	background: var(--bg-light);
	color: var(--gray-heading);
}
.secExpectation__inner {
	max-width: var(--container-sp);
	margin-inline: auto;
	padding-inline: var(--space-6);
	padding-block: clamp(3.5rem, 6vw, 6rem);
}
.secExpectation__title {
	font-family: var(--font-serif);
	font-size: var(--fs-3xl);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-normal);
	letter-spacing: var(--ls-tight);
	color: var(--gray-heading);
	margin-bottom: clamp(3rem, 5vw, 4.5rem);
	text-align: center;
}
.secExpectation__range {
	display: flex;
	justify-content: center;
	align-items: baseline;
	gap: 0.5em;
	margin: 0 0 clamp(2rem, 4vw, 3rem);
	text-align: center;
}
.secExpectation__rangeCaption {
	font-size: var(--fs-sm);
	line-height: var(--lh-normal);
	letter-spacing: var(--ls-base);
	color: var(--gray-muted);
}
.secExpectation__rangeNum {
	font-family: var(--font-oswald);
	font-size: clamp(var(--fs-4xl), 5vw, var(--fs-5xl));
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-number);
	line-height: 1.1;
	color: var(--gray-heading);
	display: inline-flex;
	align-items: baseline;
	gap: 0.1em;
}
.secExpectation__rangeUnit {
	font-size: 0.5em;
	line-height: 1;
}
.secExpectation__rangeWave {
	font-family: var(--font-serif);
	font-weight: var(--fw-regular);
	opacity: 0.8;
}
.secExpectation__mainText {
	color: var(--gray-text);
	line-height: var(--lh-relaxed);
	text-align: left;
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.secExpectation__mainText p + p {
	margin-top: var(--space-4);
}
.secExpectation__thirdParty {
	margin: clamp(1.5rem, 3vw, 2.5rem) 0;
}
.secExpectation__subTitle {
	font-family: var(--font-serif);
	font-size: clamp(var(--fs-xl), 2.6vw, var(--fs-2xl));
	font-weight: var(--fw-bold);
	line-height: var(--lh-normal);
	letter-spacing: var(--ls-tight);
	color: var(--gray-heading);
	margin: 0 0 var(--space-3);
}
.secExpectation__thirdLead {
	margin: 0 0 var(--space-6);
	color: var(--gray-muted);
	line-height: var(--lh-relaxed);
}
/* Cards */
.secExpectation__thirdGrid {
	display: grid;
	gap: var(--space-4);
}
.secExpectation__thirdItem {
	padding: clamp(1.25rem, 3vw, 2rem);
	border-radius: var(--radius-2);
	background: var(--bg-light);
	box-shadow: var(--shadow-1);
	border: 1px solid var(--dark-border);
	text-align: center;
}
.secExpectation__thirdTitle {
	font-family: var(--font-serif);
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	color: var(--gray-heading);
	margin: 0 0 var(--space-3);
	letter-spacing: var(--ls-base);
}
.secExpectation__thirdText {
	margin: 0;
	line-height: var(--lh-relaxed);
	color: var(--gray-text);
}
/* number emphasis (Oswald) */
.secExpectation__numW600 {
	font-family: var(--font-oswald);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-number);
}
/* Source */
.secExpectation__source {
	margin: var(--space-3) 0 0;
	font-size: var(--fs-xs);
	color: var(--gray-muted);
	line-height: var(--lh-normal);
}
.secExpectation__sourceLink {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}
.secExpectation__note {
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid var(--gray-border);
	border-left: var(--accent-bar-h) solid var(--accent);
	background: var(--bg-light);
	box-shadow: var(--shadow-1);
}
.secExpectation__noteSub {
	font-size: var(--fs-sm);
	line-height: var(--lh-relaxed);
	color: var(--gray-muted);
	margin: 0;
}
.secExpectation__noteWarn {
	margin-top: var(--space-4);
	padding-top: var(--space-4);
	border-top: 1px solid var(--gray-border);
	font-size: var(--fs-sm);
	line-height: var(--lh-relaxed);
	color: var(--gray-muted);
	margin-bottom: 0;
}
.secExpectation__noteWarn strong {
	color: var(--accent);
}
/* --- Breakpoints --- */
@media (min-width: 48rem) {
	.secExpectation__inner {
		max-width: var(--container-narrow);
	}
	.secExpectation__rangeNum {
		font-size: clamp(var(--fs-4xl), 5vw, var(--fs-5xl));
	}
	.secExpectation__rangeCaption {
		font-size: var(--fs-md);
	}
	.secExpectation__rangeUnit {
		font-size: 0.3em;
	}
	.secExpectation__thirdGrid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--space-4);
	}
	.secExpectation__title {
		font-size: var(--fs-4xl);
	}
}
/* =============================

  [SECTION] 頚椎治療の認可

============================= */
.secTreatment {
	background: var(--bg-grey);
	color: var(--gray-heading);
}
.secTreatment__inner {
	max-width: var(--container-sp);
	margin-inline: auto;
	padding-inline: var(--space-6);
	padding-block: clamp(3.5rem, 6vw, 6rem);
}
.secTreatment__title {
	font-family: var(--font-serif);
	font-size: var(--fs-3xl);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-normal);
	letter-spacing: var(--ls-tight);
	color: var(--gray-heading);
	margin-bottom: clamp(3rem, 5vw, 4.5rem);
}
.secTreatment__movie {
	margin-bottom: clamp(2rem, 4vw, 3rem);
	box-shadow: var(--shadow-1);
	overflow: hidden;
}
.secTreatment__movieThumb {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
}
.secTreatment__movieThumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border: 1px solid var(--gray-border);
}
.secTreatment__playIcon {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
}
.secTreatment__playSvg {
	width: 3.5rem;
	height: 3.5rem;
	color: var(--text-white);
	background: var(--bg-dark);
	border-radius: 999px;
	padding: 0.75rem;
}
.secTreatment__licenses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-3);
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.secTreatment__licenseItem {
	margin: 0;
}
.secTreatment__licenseItem img {
	width: 100%;
	aspect-ratio: 4 / 3; /* 証明書らしい比率 */
	object-fit: cover;
	display: block;
	border: 1px solid var(--gray-border);
	box-shadow: var(--shadow-1);
	background: var(--bg-light);
}
.secTreatment__licenseCaption {
	margin-top: var(--space-2);
	font-size: var(--fs-xs);
	line-height: var(--lh-normal);
	text-align: center;
	color: var(--gray-muted);
	letter-spacing: var(--ls-base);
}
.secTreatment__lead {
	font-family: var(--font-serif);
	font-size: clamp(var(--fs-xl), 2.6vw, var(--fs-2xl));
	font-weight: var(--fw-bold);
	line-height: var(--lh-normal);
	letter-spacing: var(--ls-tight);
	color: var(--gray-heading);
	margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
}
.secTreatment__cols {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.secTreatment__qualify {
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid var(--dark-border);
	border-left: var(--accent-bar-h) solid var(--accent);
	background: var(--bg-light);
	box-shadow: var(--shadow-1);
}
.secTreatment__qualifyTitle {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	font-weight: var(--fw-bold);
	line-height: var(--lh-normal);
	letter-spacing: var(--ls-base);
	color: var(--gray-heading);
	margin: 0 0 var(--space-4);
}
.secTreatment__qualifyList {
	display: grid;
	gap: var(--space-4);
	list-style: none;
	margin: 0;
	padding: 0;
}
.secTreatment__qualifyItem {
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--gray-border);
	line-height: var(--lh-relaxed);
	color: var(--gray-text);
}
.secTreatment__qualifyItem:last-child {
	padding-bottom: 0;
	border-bottom: none;
}
.secTreatment__numStrong {
	font-family: var(--font-oswald);
	font-weight: var(--fw-bold);
	font-size: 1.15em;
	letter-spacing: var(--ls-number);
	color: var(--gray-heading);
}
.secTreatment__gallery {
	margin: 0;
}
.secTreatment__galleryGrid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-3);
}
.secTreatment__galleryGrid img {
	width: 100%;
	aspect-ratio: 1 / 1; /* 2x2は正方形の方が安定して“研修記録”っぽい */
	object-fit: cover;
	display: block;
	border: 1px solid var(--gray-border);
	box-shadow: var(--shadow-1);
}
.secTreatment__caption {
	margin-top: var(--space-2);
	font-size: var(--fs-xs);
	line-height: var(--lh-normal);
	text-align: center;
	color: var(--gray-muted);
}
.secTreatment__conclusion {
	font-size: var(--fs-sm);
	line-height: var(--lh-relaxed);
	font-weight: var(--fw-bold);
	color: var(--gray-heading);
	max-width: 40rem;
	margin: clamp(2rem, 4vw, 3rem) auto 0;
}
/* --- Breakpoints --- */
@media (min-width: 48rem) {
	.secTreatment__inner {
		max-width: var(--container-narrow);
	}
}
@media (min-width: 60rem) {
	.secTreatment__title {
		text-align: center;
		font-size: var(--fs-4xl);
	}
	.secTreatment__lead {
		text-align: center;
	}
	/* Left: qualify / Right: gallery */
	.secTreatment__cols {
		grid-template-columns: 1.1fr 0.9fr;
		gap: clamp(2.5rem, 5vw, 4rem);
		align-items: center;
	}
	.secTreatment__conclusion {
		text-align: center;
	}
	/* optional hover（重くしない） */
	.secTreatment__galleryGrid img {
		transition: box-shadow 0.25s ease;
	}
	.secTreatment__galleryGrid img:hover {
		box-shadow: var(--shadow-2);
	}
}
/* =============================

  [SECTION] 治療費用

============================= */
.secFee {
	background: var(--bg-dark);
	color: var(--text-white);
}
.secFee__inner {
	max-width: var(--container-pc);
	margin-inline: auto;
	padding-inline: var(--space-6);
	padding-block: clamp(3.5rem, 6vw, 5.5rem);
}
.secFee__head {
	display: block;
	margin-bottom: clamp(2.25rem, 4.6vw, 3.25rem);
}
.secFee__title {
	font-family: var(--font-serif);
	font-size: var(--fs-3xl);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-normal);
	letter-spacing: var(--ls-tight);
	color: var(--text-white);
	margin-bottom: clamp(3rem, 5vw, 4.5rem);
}
.secFee__range {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: var(--space-4);
	align-items: center;
	margin-bottom: var(--space-6);
	font-size: var(--fs-sm);
	color: var(--text-white);
}
.secFee__rangeLine {
	height: 1px;
	background: var(--light-border);
	position: relative;
}
.secFee__rangeLine::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 0.35rem;
	height: 0.35rem;
	border-right: 1px solid var(--accent);
	border-top: 1px solid var(--accent);
	transform: translateY(-50%) rotate(45deg);
}
.secFee__rangeNum {
	font-family: var(--font-oswald);
	letter-spacing: var(--ls-number);
	color: var(--accent);
}
.secFee__priceGrid {
	display: grid;
	gap: var(--space-6);
}
.secFee__priceCard {
	background: var(--bg-light);
	border: 1px solid var(--gray-border);
	padding: var(--space-6) var(--space-5);
}
.secFee__priceCard--max {
	/* 右（最大）のみ、上辺で軽く区別 */
	border-top: 4px solid var(--accent);
}
.secFee__badge {
	display: inline-block;
	font-size: var(--fs-xs);
	color: var(--gray-muted);
	border: 1px solid var(--gray-border);
	padding: 0.15rem 0.5rem;
	margin-bottom: var(--space-5);
	background: transparent;
}
.secFee__area {
	display: flex;
	gap: var(--space-3);
	align-items: baseline;
	margin-bottom: var(--space-4);
	color: var(--gray-text);
	font-size: var(--fs-sm);
}
.secFee__areaNum {
	font-family: var(--font-oswald);
	letter-spacing: var(--ls-number);
}
.secFee__price {
	display: flex;
	align-items: baseline;
	gap: var(--space-1);
	margin-bottom: var(--space-4);
	color: var(--gray-heading);
}
.secFee__yen {
	font-size: var(--fs-xl);
	letter-spacing: var(--ls-number);
}
.secFee__amount {
	font-family: var(--font-oswald);
	font-size: clamp(var(--fs-3xl), 6.5vw, var(--fs-4xl));
	letter-spacing: var(--ls-number);
	line-height: 1.05;
}
.secFee__tax {
	font-size: var(--fs-xs);
	color: var(--gray-muted);
	white-space: nowrap;
}
/* 箇所数の図解（■=箇所数） */
.secFee__sq {
	display: flex;
	gap: 0.25rem;
	font-size: var(--fs-xs);
	line-height: 1;
	letter-spacing: 0.1em;
}
.secFee__sqOn {
	color: var(--accent);
}
.secFee__sqOff {
	color: var(--gray-muted);
}
.secFee__desc {
	margin-top: var(--space-6);
	padding-left: var(--space-5);
	border-left: 2px solid var(--accent);
}
.secFee__descText {
	font-size: var(--fs-sm);
	line-height: var(--lh-relaxed);
	color: var(--text-white);
}
.secFee__descText + .secFee__descText {
	margin-top: var(--space-3);
}
.secFee__divider {
	margin-top: calc(var(--space-8) * 1.2);
	border-top: 1px solid var(--light-border);
}
.secFee__divider--foot {
	margin-top: calc(var(--space-10) * 1.05);
}
.secFee__infoGrid {
	margin-top: calc(var(--space-8) * 1.1);
	display: grid;
	gap: calc(var(--space-8) * 1.1);
}
.secFee__infoTitle {
	font-size: var(--fs-xl);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-tight);
	color: var(--accent);
	margin-bottom: var(--space-5);
}
.secFee__infoList {
	border-top: 1px solid var(--light-border);
}
.secFee__infoItem {
	display: flex;
	gap: var(--space-4);
	align-items: center;
	padding-block: var(--space-5);
	border-bottom: 1px solid var(--light-border);
	font-size: var(--fs-md);
	color: var(--text-white);
}
/* dashを疑似要素化 */
.secFee__infoItem::before {
	content: "";
	flex: 0 0 auto;
	width: 0.75rem;
	height: 1px;
	background: var(--text-white); /* ダーク背景なので白系 */
	opacity: 0.6;
}
.secFee__infoSub {
	font-size: var(--fs-xs);
	color: var(--text-white);
	line-height: var(--lh-relaxed);
	margin-top: var(--space-4);
}
.secFee__foot {
	margin-top: calc(var(--space-8) * 0.9);
}
.secFee__footItem {
	font-size: var(--fs-xs);
	line-height: var(--lh-relaxed);
	color: var(--text-white);
}
.secFee__footItem + .secFee__footItem {
	margin-top: var(--space-3);
}
/* --- Breakpoints --- */
@media (min-width: 48rem) {
	.secFee__priceCard {
		padding: calc(var(--space-6) * 1.1);
	}
	.secFee__title {
		font-size: var(--fs-4xl);
	}
}
@media (min-width: 60rem) {
	.secFee__priceGrid {
		grid-template-columns: repeat(2, 1fr);
		gap: 0;
	}
	/* 2枚を“1枚の枠”に見せるための中央線 */
	.secFee__priceCard {
		border-right: 0;
	}
	.secFee__priceCard + .secFee__priceCard {
		border-left: 1px solid var(--gray-border);
	}
	.secFee__infoGrid {
		grid-template-columns: 1fr 1fr;
		column-gap: calc(var(--space-10) * 1.05);
		row-gap: 0;
	}
}
/* =============================

  [SECTION] 治療の注意事項

============================= */
/* --- Section base --- */
.secCautions {
	background: var(--bg-light);
	color: var(--gray-text);
	--fs-xs: calc(0.75rem * 0.8);
	--fs-sm: calc(0.875rem * 0.8);
	--fs-md: calc(1rem * 0.8);
	--fs-lg: calc(1.25rem * 0.8);
	--fs-xl: calc(1.5rem * 0.75);
	--fs-2xl: calc(1.75rem * 0.75);
	--fs-3xl: calc(2.25rem * 0.75);
	--fs-4xl: calc(2.75rem * 0.75);
}
.secCautions__inner {
	max-width: var(--container-compact); /* SP基準の可読幅 */
	margin-inline: auto;
	padding-inline: var(--space-6);
	padding-block: clamp(3.25rem, 6vw, 5.25rem);
}
/* --- Header --- */
.secCautions__head {
	margin-bottom: clamp(2.5rem, 5vw, 3.5rem);
}
.secCautions__title {
	font-size: var(--fs-3xl);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-normal);
	letter-spacing: var(--ls-tight);
	color: var(--gray-heading);
}
.secCautions__rule {
	margin-top: var(--space-6);
	border-top: 1px solid var(--dark-border);
}
/* --- Block headings --- */
.secCautions__blockHead {
	margin-top: var(--space-9);
	margin-bottom: var(--space-7);
}
.secCautions__blockTitle {
	font-size: var(--fs-2xl);
	font-weight: var(--fw-serif-strong);
	letter-spacing: var(--ls-tight);
	color: var(--gray-heading);
}
.secCautions__group {
	/* group間の余白（カード間） */
	margin-top: var(--space-8);
	/* card */
	padding: var(--space-7);
	border: 1px solid var(--gray-border);
	border-radius: var(--radius-1);
	background: var(--bg-light);
}
.secCautions__group + .secCautions__group {
	margin-top: var(--space-8);
}
.secCautions__rate {
	display: block;
	font-size: var(--fs-xs);
	color: var(--accent);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-base);
	margin-bottom: var(--space-1);
}
.secCautions__groupTitle {
	font-size: var(--fs-xl);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-normal);
	color: var(--gray-heading);
	padding-bottom: var(--space-4);
	margin-bottom: var(--space-6);
	border-bottom: 1px solid var(--dark-border);
}
/* --- “発生率：注釈（タイトル内）” --- */
.secCautions__inlineRate {
	font-size: var(--fs-md);
	font-weight: var(--fw-regular);
	color: var(--gray-muted);
	letter-spacing: var(--ls-base);
	white-space: nowrap;
}
.secCautions__itemHead {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}
.secCautions__itemTitle {
	margin: 0 0 var(--space-4);
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-tight);
	color: var(--gray-heading);
}
/* 期間行 */
.secCautions__meta {
	font-size: var(--fs-sm);
	color: var(--gray-muted);
	margin-bottom: var(--space-4);
}
.secCautions__metaLabel {
	color: var(--gray-text);
}
/* 本文 */
.secCautions__text {
	font-size: var(--fs-md);
	line-height: var(--lh-relaxed);
	color: var(--gray-text);
}
.secCautions__criticalList {
	list-style: none;
	margin-bottom: var(--space-6);
	padding: 0;
	display: grid;
	gap: var(--space-3);
}
/* 重大合併症：◯マーカーを完全中央固定 */
.secCautions__criticalItem {
	display: grid;
	grid-template-columns: 0.75rem 1fr;
	column-gap: var(--space-3);
	align-items: start;
	letter-spacing: var(--ls-tight);
	color: var(--gray-heading);
	line-height: var(--lh-normal);
}
.secCautions__criticalItem::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	border: 1px solid var(--gray-heading);
	align-self: center;
	justify-self: center;
	opacity: 0.8;
}
.secCautions__prevention {
	margin-top: var(--space-7);
	background: transparent;
}
.secCautions__preTitle {
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	color: var(--gray-heading);
	margin-top: 0;
	margin-bottom: var(--space-4);
	letter-spacing: var(--ls-tight);
}
.secCautions__preList {
	display: grid;
	gap: var(--space-3);
}
/* 予防策：ダッシュマーカー */
.secCautions__preItem {
	display: grid;
	grid-template-columns: 0.75rem 1fr;
	column-gap: var(--space-3);
	align-items: start;
	font-size: var(--fs-md);
	line-height: var(--lh-relaxed);
	color: var(--gray-text);
}
.secCautions__preItem::before {
	content: "";
	width: 0.75rem;
	height: 1px;
	background: var(--gray-text);
	margin-top: 0.8em;
	opacity: 0.6;
}
.secCautions__decide {
	margin-top: calc(var(--space-10) * 0.85);
}
.secCautions__lead {
	margin: var(--space-7) 0;
	margin-bottom: var(--space-7);
	font-size: var(--fs-md);
	line-height: var(--lh-relaxed);
	color: var(--gray-text);
}
.secCautions__checkList {
	margin-top: var(--space-7);
	display: grid;
	gap: var(--space-6);
}
.secCautions__checkItem {
	display: grid;
	grid-template-columns: 1.1rem 1fr;
	gap: var(--space-4);
	align-items: start;
	font-size: var(--fs-md);
	color: var(--gray-text);
}
.secCautions__box {
	width: 1.05rem;
	height: 1.05rem;
	border: 1px solid var(--accent);
	margin-top: 0.2rem;
}
/* Footnote */
.secCautions__foot {
	margin-top: var(--space-7);
	font-size: var(--fs-xs);
	line-height: var(--lh-relaxed);
	color: var(--gray-muted);
}
.secCautions__subGroup {
	margin-top: var(--space-8);
	padding-top: var(--space-7);
	border-top: 1px solid var(--dark-border);
}
.secCautions__subRate {
	display: block;
	font-size: var(--fs-xs);
	color: var(--gray-muted);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-base);
	margin-bottom: var(--space-1);
	color: var(--accent);
}
.secCautions__subTitle {
	font-size: var(--fs-lg);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-normal);
	color: var(--gray-heading);
}
.secCautions__item {
	margin-top: var(--space-6);
}
/* --- Breakpoints --- */
@media (min-width: 48rem) {
	.secCautions__inner {
		padding-inline: calc(var(--space-6) * 1.05);
		max-width: var(--container-narrow);
	}
	.secCautions__subGroup {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr)); /* ←ここ重要 */
		gap: var(--space-7);
		align-items: start;
	}
	.secCautions__subRate, .secCautions__subTitle {
		grid-column: 1 / -1; /* 1行フル幅 */
	}
	.secCautions__item {
		min-width: 0;
		margin-top: 0;
	}
	.secCautions__title {
		font-size: var(--fs-4xl);
	}
	.secCautions__prevention {
		margin-top: 0;
	}
}
@media (min-width: 60rem) {
	.secCautions__inner {
		max-width: var(--container-narrow); /* PCで少し広げる */
	}
}
/* =============================

  [SECTION] 無料画像相談

============================= */
.secConsult {
	background: var(--bg-dark);
	color: var(--text-white);
}
.secConsult__inner {
	max-width: var(--container-pc);
	margin-inline: auto;
	padding-inline: var(--space-6);
	padding-block: clamp(3.5rem, 6vw, 5.5rem);
}
/* --- Head --- */
.secConsult__head {
	text-align: center;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.secConsult__title {
	font-size: var(--fs-3xl);
	font-weight: var(--fw-serif-strong);
	line-height: var(--lh-normal);
	letter-spacing: var(--ls-tight);
	color: var(--accent); /* 意図：ネイビー背景上の主役＝金見出し */
}
/* --- Intro（引用風）--- */
.secConsult__intro {
	max-width: var(--container-compact);
	margin-inline: auto;
	margin-top: var(--space-7);
	color: var(--text-white);
}
.secConsult__introList {
	display: grid;
	gap: var(--space-3);
	margin-bottom: var(--space-6);
}
.secConsult__introItem {
	position: relative;
	padding-left: 1.5rem;
	line-height: var(--lh-relaxed);
	color: var(--text-white);
}
.secConsult__introItem::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45em;
	width: 0.75rem;
	height: 0.75rem;
	border: 1px solid rgba(255, 255, 255, 0.35);
}
.secConsult__introText {
	margin-top: var(--space-6);
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	line-height: var(--lh-normal);
}
/* --- Panel（主役）--- */
.secConsult__panel {
	margin-top: clamp(2.5rem, 5vw, 3.5rem);
	padding: clamp(1.75rem, 3.5vw, 2.5rem);
	background: rgba(255, 255, 255, 0.06); /* 濃背景上で“面”を作る */
	border: 1px solid var(--light-border);
	border-radius: var(--radius-3);
}
.secConsult__panelTitle {
	font-size: var(--fs-2xl);
	font-weight: var(--fw-serif-strong);
	letter-spacing: var(--ls-tight);
	color: var(--text-white);
	margin-bottom: var(--space-4);
	text-align: center;
}
.secConsult__panelText {
	font-size: var(--fs-md);
	color: var(--text-white);
	line-height: var(--lh-relaxed);
	margin-bottom: var(--space-6);
}
/* 注意帯（パネル内の補足） */
.secConsult__panelNote {
	font-size: var(--fs-xs);
	line-height: var(--lh-relaxed);
	color: var(--text-white);
	padding: var(--space-5);
	background: rgba(255, 255, 255, 0.06);
	margin-bottom: clamp(1.75rem, 3vw, 2.25rem);
}
/* --- Cards --- */
.secConsult__cardGrid {
	display: grid;
	gap: var(--space-6);
}
.secConsult__card {
	background: var(--bg-light);
	border: 1px solid var(--gray-border);
	border-radius: var(--radius-3);
	overflow: hidden; /* 角欠け防止（カード単位） */
	color: var(--gray-text);
	box-shadow: var(--shadow-1);
}
/* カード上部：彩色は“統一（ネイビー濃淡）”に固定 */
.secConsult__cardHero {
	height: 9.5rem;
	display: grid;
	place-items: center;
	position: relative;
	background: linear-gradient(180deg, rgba(10, 24, 38, 0.95), rgba(10, 24, 38, 0.75));
}
.secConsult__icon {
	width: 4.25rem;
	height: 4.25rem;
	color: #fff;
	opacity: .5;
}
/* 本文 */
.secConsult__cardBody {
	padding: var(--space-6) var(--space-6);
}
.secConsult__cardTitle {
	font-size: var(--fs-xl);
	font-weight: var(--fw-serif-strong);
	letter-spacing: var(--ls-tight);
	color: var(--gray-heading);
	margin-bottom: var(--space-4);
}
.secConsult__cardText {
	font-size: var(--fs-sm);
	line-height: var(--lh-relaxed);
	color: var(--gray-text);
	margin-bottom: var(--space-6);
}
/* ボタン：色で分離しない（主役は“塗り”1つだけ） */
.secConsult__btn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	min-height: 3.25rem;
	font-size: var(--fs-sm);
	letter-spacing: var(--ls-base);
	text-decoration: none;
	background: var(--cta-bg); /* 意図：ボタン色はネイビー系に統一 */
	border: 1px solid var(--light-border);
	color: var(--text-white);
	position: relative; /* 意図：矢印の配置用 */
	padding-inline: calc(var(--space-6) + 1.25rem);
	text-align: center;
	transition:
		background-color .25s ease, box-shadow .25s ease, transform .2s ease;
}
/* 矢印アイコン（金） */
.secConsult__btn::after {
	content: "";
	position: absolute;
	right: var(--space-5);
	top: 50%;
	width: 0.5rem;
	height: 0.5rem;
	border-right: 2px solid var(--accent);
	border-top: 2px solid var(--accent);
	transform: translateY(-50%) rotate(45deg);
	transition: transform .25s ease, right .25s ease;
}
.secConsult__btn:focus-visible {
	box-shadow: 0 0 0 2px var(--accent);
}
/* 受付時間など */
.secConsult__cardSub {
	margin-top: var(--space-5);
	font-size: var(--fs-xs);
	line-height: var(--lh-relaxed);
	color: var(--gray-muted);
	text-align: center;
}
/* --- Recommend --- */
.secConsult__rec {
	margin-top: clamp(2.25rem, 4.5vw, 3.25rem);
	padding-top: var(--space-7);
	border-top: 1px solid var(--light-border);
}
.secConsult__recTitle {
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-tight);
	color: var(--accent);
	margin-bottom: var(--space-5);
}
.secConsult__recList {
	display: grid;
	gap: var(--space-4);
	max-width: var(--container-compact);
}
.secConsult__recItem {
	position: relative;
	padding-left: 1.75rem;
	font-size: var(--fs-sm);
	line-height: var(--lh-relaxed);
	color: var(--text-white);
}
.secConsult__recItem::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.35em;
	width: 1rem;
	height: 1rem;
	border-radius: 0.2rem;
	border: 1px solid rgba(255, 255, 255, 0.35);
	background: rgba(255, 255, 255, 0.06);
}
.secConsult__recItem::after {
	content: "";
	position: absolute;
	left: 0.28rem;
	top: 0.62em;
	width: 0.45rem;
	height: 0.25rem;
	border-left: 2px solid var(--accent);
	border-bottom: 2px solid var(--accent);
	transform: rotate(-45deg);
}
/* --- Notes --- */
.secConsult__notes {
	margin-top: clamp(2rem, 4vw, 3rem);
	padding-top: var(--space-7);
	border-top: 1px solid var(--light-border);
}
.secConsult__notesTitle {
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-tight);
	color: var(--text-white);
	margin-bottom: var(--space-5);
}
.secConsult__notesList {
	display: block;
	max-width: var(--container-narrow);
}
.secConsult__notesItem {
	font-size: var(--fs-xs);
	line-height: var(--lh-relaxed);
	color: var(--text-white);
	margin-bottom: var(--space-2);
}
.secConsult__notesItem:last-child {
	margin-bottom: 0;
}
/* --- Breakpoints --- */
@media (min-width: 48rem) {
	.secConsult__panelText {
		text-align: center;
	}
	.secConsult__panelNote {
		text-align: center;
	}
	.secConsult__cardGrid {
		grid-template-columns: repeat(3, 1fr);
		align-items: stretch;
	}
	.secConsult__cardBody {
		padding: calc(var(--space-6) * 1.05);
	}
	.secConsult__icon {
		width: 4.75rem;
		height: 4.75rem;
	}
	.secConsult__title {
		font-size: var(--fs-4xl);
	}
}
@media (min-width: 60rem) {
	.secConsult__cardHero {
		height: 10.5rem;
	}
	/* --- Hover Animation --- */
	.secConsult__btn:hover {
		background: #253341; /* ネイビーを少し明るく */
		box-shadow: var(--shadow-1);
		transform: translateY(-2px); /* わずかに浮く */
	}
	/* 矢印を少し右へスライド */
	.secConsult__btn:hover::after {
		transform: translateY(-50%) translateX(4px) rotate(45deg);
	}
}