/* =========================================================
   v22: 固定ページの追加演出
   ========================================================= */

/* ---------- 0. ヒーローの全体リッチ化（マスク・斜めカット・エディトリアル） ---------- */

.pr-hero {
	min-height: 78vh;
	padding: 180px 0 90px;
	background: #100c0a;
	overflow: hidden;
	isolation: isolate;
}

/* 画像エリア: 右側に限定（画像のアスペクト比に近づけて縦の切り取りを減らす） */
.pr-hero__bg {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: auto;
	width: 72%;
	z-index: -2;
	overflow: hidden;
	/* 左 8〜22% でなだらかに不透明化 */
	-webkit-mask-image: linear-gradient(95deg,
		transparent 0%,
		transparent 6%,
		#000 22%,
		#000 100%);
	mask-image: linear-gradient(95deg,
		transparent 0%,
		transparent 6%,
		#000 22%,
		#000 100%);
}

.pr-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 38%;
	filter: brightness(.98) saturate(1.04) contrast(1.04);
	transform: scale(1.06) translate3d(0, 0, 0);
	/* 持続的な Ken Burns: ゆっくりズーム + 微小パン */
	animation: pr-hero-kenburns 22s ease-in-out infinite;
	will-change: transform, filter;
}

/* ページごとに最適な切り取り位置（子供が主役に見えるよう調整） */
.page-template-page-feature .pr-hero__bg img    { object-position: 40% 55%; }   /* 2.jpg 親子で絵本 */
.page-template-page-flow .pr-hero__bg img       { object-position: 30% 72%; }   /* 7.jpg → 子供を主役に */
.page-template-page-admission .pr-hero__bg img  { object-position: center 55%; } /* 5.jpg 赤ちゃん */
.page-template-page-meal .pr-hero__bg img       { object-position: 30% 50%; }   /* 3.jpg 食事中の赤ちゃん */
.page-template-page-health .pr-hero__bg img     { object-position: 55% 58%; }   /* 6.jpg 赤ちゃんに頬寄せ */
.page-template-page-facilities .pr-hero__bg img { object-position: center 45%; } /* 1.png 子どもたち */
.page-template-page-vacancy .pr-hero__bg img    { object-position: center 45%; } /* 1.png 子どもたち（施設紹介と共用） */
.page-template-page-contact .pr-hero__bg img    { object-position: 38% 48%; }   /* 4.png 親子 */
.page-template-page-faq .pr-hero__bg img        { object-position: 30% 72%; }   /* 同 7.jpg 子供を主役 */
.page-template-page-blog .pr-hero__bg img,
.blog .pr-hero__bg img                          { object-position: 38% 48%; }   /* 4.png 親子 */

@keyframes pr-hero-kenburns {
	0%, 100% {
		transform: scale(1.06) translate3d(0, 0, 0);
		filter: brightness(.98) saturate(1.04) contrast(1.04);
	}
	33% {
		transform: scale(1.12) translate3d(-1.4%, -1.6%, 0);
		filter: brightness(1.04) saturate(1.08) contrast(1.05);
	}
	66% {
		transform: scale(1.10) translate3d(1%, -1%, 0);
		filter: brightness(1) saturate(1.05) contrast(1.04);
	}
}

/* マウス追従パララックス（JS が --pr-px, --pr-py を設定） */
.pr-hero__bg {
	transition: transform .8s cubic-bezier(.22, 1, .25, 1);
	transform: translate3d(calc(var(--pr-px, 0) * 1px), calc(var(--pr-py, 0) * 1px), 0);
}

/* 左の暗い領域に質感を追加（画像エリアが 72% なので 38% で）*/
.pr-hero::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: 38%;
	z-index: -1;
	background:
		radial-gradient(ellipse at 30% 40%, rgba(180, 0, 0, .14), transparent 70%),
		linear-gradient(135deg, #1a0e0a 0%, #100c0a 60%, #0c0807 100%);
	pointer-events: none;
	animation: pr-hero-breathe 8s ease-in-out infinite;
}

@keyframes pr-hero-breathe {
	0%, 100% { opacity: 1; }
	50%      { opacity: .88; }
}

/* 画像エリアに金色の塵粒（ゆっくり浮遊） */
.pr-hero__overlay::before,
.pr-hero__overlay::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
	background: radial-gradient(circle, rgba(228, 196, 140, .85) 0%, rgba(228, 196, 140, 0) 70%);
	box-shadow: 0 0 12px rgba(228, 196, 140, .5);
	z-index: 2;
}

.pr-hero__overlay::before {
	width: 5px; height: 5px;
	top: 22%; left: 58%;
	animation: pr-hero-dust1 14s ease-in-out infinite;
}

.pr-hero__overlay::after {
	width: 4px; height: 4px;
	bottom: 28%; left: 74%;
	animation: pr-hero-dust2 16s ease-in-out infinite 2s;
}

@keyframes pr-hero-dust1 {
	0%, 100% { transform: translate(0, 0); opacity: .4; }
	25%      { transform: translate(40px, -22px); opacity: .9; }
	50%      { transform: translate(70px, -10px); opacity: .6; }
	75%      { transform: translate(28px, 18px); opacity: .85; }
}

@keyframes pr-hero-dust2 {
	0%, 100% { transform: translate(0, 0); opacity: .3; }
	33%      { transform: translate(-30px, -30px); opacity: .8; }
	66%      { transform: translate(-58px, 8px); opacity: .55; }
}

/* 画像の左端に赤い細い縦帯（斜め） */
.pr-hero__bg::before {
	content: "";
	position: absolute;
	top: -10%;
	bottom: -10%;
	left: 18%;
	width: 2px;
	background: linear-gradient(180deg,
		transparent 0%,
		rgba(216, 0, 8, .9) 20%,
		rgba(216, 0, 8, .9) 80%,
		transparent 100%);
	box-shadow: 0 0 18px rgba(216, 0, 8, .85);
	transform: skewX(-8deg);
	z-index: 2;
	pointer-events: none;
}

/* 画像に微細な横スキャンライン（テクスチャ） */
.pr-hero__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(
		0deg,
		rgba(0, 0, 0, 0) 0px,
		rgba(0, 0, 0, 0) 3px,
		rgba(0, 0, 0, .08) 3px,
		rgba(0, 0, 0, .08) 4px);
	mix-blend-mode: multiply;
	opacity: .5;
	pointer-events: none;
}

/* オーバーレイ: 単純な赤塗りを廃止、暗いビネットだけ */
.pr-hero__overlay {
	background:
		linear-gradient(180deg,
			rgba(0, 0, 0, .22) 0%,
			rgba(0, 0, 0, .04) 30%,
			rgba(0, 0, 0, .04) 70%,
			rgba(0, 0, 0, .4) 100%) !important;
}

/* レターボックス: 上下に細い装飾線（左右の余白を計算で揃える） */
.pr-hero__inner {
	max-width: 1300px;
	width: calc(100% - 96px);
	margin: 0 auto;
	padding-left: clamp(20px, 4vw, 60px);
}

/* 左サイドの赤い縦帯 */
.pr-hero__inner::before {
	content: "";
	position: absolute;
	left: -2vw;
	top: -40px;
	bottom: -40px;
	width: 4px;
	background: linear-gradient(180deg,
		transparent 0%,
		var(--hp-red-line, #d80008) 20%,
		var(--hp-red-line, #d80008) 80%,
		transparent 100%);
	box-shadow: 0 0 12px rgba(216, 0, 8, .5);
	z-index: 2;
	transform: scaleY(0);
	transform-origin: center;
	transition: transform 1.2s cubic-bezier(.22, 1, .25, 1) .4s;
}

.pr-hero.is-loaded .pr-hero__inner::before {
	transform: scaleY(1);
}

/* 右上に SCROLL 縦書きインジケータ */
.pr-hero__inner {
	position: relative;
}

.pr-hero__inner::after {
	content: "SCROLL ↓";
	position: absolute;
	right: -1vw;
	top: 0;
	color: rgba(228, 196, 140, .72);
	font-family: var(--hp-roman, "Times New Roman");
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .42em;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	z-index: 3;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .8s ease 1.4s, transform .8s ease 1.4s;
	animation: pr-scroll-float 2.6s ease-in-out 2.2s infinite;
}

.pr-hero.is-loaded .pr-hero__inner::after {
	opacity: 1;
	transform: translateY(0);
}

@keyframes pr-scroll-float {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(8px); }
}

/* 巨大番号ウォーターマーク（各ページで上書き可能） */
.pr-hero .pr-hero__inner h1::after,
.pr-hero .pr-hero__inner > h1::after {
	display: none;
}

/* ボディクラスから取得する page 番号 watermark */
.page-template-page-feature .pr-hero .pr-hero__inner,
.page-template-page-flow .pr-hero .pr-hero__inner,
.page-template-page-admission .pr-hero .pr-hero__inner,
.page-template-page-meal .pr-hero .pr-hero__inner,
.page-template-page-health .pr-hero .pr-hero__inner,
.page-template-page-facilities .pr-hero .pr-hero__inner,
.page-template-page-faq .pr-hero .pr-hero__inner,
.page-template-page-contact .pr-hero .pr-hero__inner {
	position: relative;
}

.pr-hero__watermark {
	position: absolute;
	right: clamp(20px, 3vw, 56px);
	bottom: clamp(40px, 5vh, 80px);
	top: auto;
	transform: none;
	z-index: 1;
	font-family: var(--hp-roman, "Times New Roman");
	font-size: clamp(120px, 14vw, 200px);
	font-weight: 400;
	color: rgba(255, 255, 255, .03);
	line-height: .85;
	letter-spacing: -.04em;
	pointer-events: none;
	user-select: none;
	white-space: nowrap;
	opacity: 0;
	transition: opacity 1.5s ease 1s;
	mix-blend-mode: overlay;
}

.pr-hero.is-loaded .pr-hero__watermark {
	opacity: 1;
}

.pr-hero__watermark span {
	display: inline-block;
	color: rgba(228, 196, 140, .12);
	mix-blend-mode: overlay;
}

/* 番号ラベル（PAGE 01 等） */
.pr-hero__pagelabel {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 22px;
	font-family: var(--hp-roman, "Times New Roman");
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .32em;
	color: rgba(228, 196, 140, .9);
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .7s ease .15s, transform .7s ease .15s;
}

.pr-hero__pagelabel::before {
	content: "";
	width: 14px;
	height: 14px;
	border: 1px solid rgba(228, 196, 140, .8);
	display: inline-block;
}

.pr-hero.is-loaded .pr-hero__pagelabel {
	opacity: 1;
	transform: translateY(0);
}

/* ヒーロー背景: 上下に薄いビネット */
.pr-hero__overlay {
	background:
		linear-gradient(180deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,.05) 30%, rgba(0,0,0,.05) 70%, rgba(0,0,0,.42) 100%),
		linear-gradient(90deg, rgba(16,12,10,0) 35%, rgba(16,12,10,0) 60%, rgba(16,12,10,.3) 100%) !important;
}

/* コーナーフレーム強化 */
.pr-hero__corners {
	inset: 44px clamp(48px, 4vw, 80px) !important;
}

.pr-hero__corners span {
	width: 44px !important;
	height: 44px !important;
}

.pr-hero__corners span:nth-child(1) { border-top: 1px solid rgba(228, 196, 140, .7) !important; border-left: 1px solid rgba(228, 196, 140, .7) !important; }
.pr-hero__corners span:nth-child(2) { border-top: 1px solid rgba(228, 196, 140, .7) !important; border-right: 1px solid rgba(228, 196, 140, .7) !important; }
.pr-hero__corners span:nth-child(3) { border-bottom: 1px solid rgba(228, 196, 140, .7) !important; border-left: 1px solid rgba(228, 196, 140, .7) !important; }
.pr-hero__corners span:nth-child(4) { border-bottom: 1px solid rgba(228, 196, 140, .7) !important; border-right: 1px solid rgba(228, 196, 140, .7) !important; }

/* タイトル強化 */
.pr-hero__title {
	font-size: clamp(40px, 5.5vw, 78px) !important;
	letter-spacing: .02em !important;
	line-height: 1.25 !important;
	max-width: 18ch;
}

/* リード強化: 左に赤い縦線 */
.pr-hero__lead {
	position: relative;
	padding-left: 22px;
	max-width: 540px;
}

.pr-hero__lead::before {
	content: "";
	position: absolute;
	left: 0;
	top: 8px;
	bottom: 8px;
	width: 1px;
	background: linear-gradient(180deg, var(--hp-red-line, #d80008), rgba(216, 0, 8, .2));
}

/* ヒーロー右下に日時/タイムスタンプ風 */
.pr-hero__timestamp {
	position: absolute;
	right: clamp(48px, 4vw, 80px);
	bottom: 80px;
	color: rgba(228, 196, 140, .68);
	font-family: var(--hp-roman, "Times New Roman");
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .26em;
	z-index: 3;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .8s ease 1.6s, transform .8s ease 1.6s;
}

.pr-hero.is-loaded .pr-hero__timestamp {
	opacity: 1;
	transform: translateY(0);
}

.pr-hero__timestamp span {
	display: inline-block;
	margin-left: 12px;
	padding-left: 12px;
	border-left: 1px solid rgba(228, 196, 140, .4);
}

/* レスポンシブ */
@media (max-width: 900px) {
	/* タブレット以下: マスクを横方向ではなく縦方向の上下フェードに切替 */
	.pr-hero__bg {
		-webkit-mask-image: linear-gradient(180deg,
			rgba(0,0,0,.6) 0%,
			#000 30%,
			#000 100%) !important;
		mask-image: linear-gradient(180deg,
			rgba(0,0,0,.6) 0%,
			#000 30%,
			#000 100%) !important;
	}

	.pr-hero::before {
		width: 100% !important;
		background:
			linear-gradient(180deg, rgba(16,12,10,.7) 0%, transparent 30%, transparent 70%, rgba(16,12,10,.85) 100%),
			radial-gradient(ellipse at 30% 80%, rgba(180, 0, 0, .14), transparent 60%) !important;
	}

	.pr-hero__bg::before {
		left: auto !important;
		right: 0 !important;
		top: 16% !important;
		bottom: 16% !important;
		width: 100% !important;
		height: 2px !important;
		transform: none !important;
		background: linear-gradient(90deg,
			transparent 0%,
			rgba(216, 0, 8, .9) 50%,
			transparent 100%) !important;
	}
}

@media (max-width: 700px) {
	.pr-hero {
		min-height: 70vh;
		padding: 130px 0 60px;
	}

	.pr-hero__watermark {
		font-size: 36vw !important;
		opacity: .35;
	}

	.pr-hero__inner::after,
	.pr-hero__timestamp {
		display: none;
	}

	.pr-hero__corners {
		inset: 28px 22px !important;
	}

	.pr-hero__corners span {
		width: 28px !important;
		height: 28px !important;
	}

	.pr-hero__title {
		font-size: clamp(28px, 8vw, 44px) !important;
	}

	.pr-hero__inner {
		width: calc(100% - 32px) !important;
		padding-left: 0 !important;
	}
}

/* ---------- 1. ヒーロータイトル: 文字ごとの cascade ---------- */
.pr-hero__title .pr-letter,
.pr-hero__title .pr-line {
	display: inline-block;
	opacity: 0;
	transform: translateY(28px);
	filter: blur(8px);
	transition:
		opacity .9s cubic-bezier(.22, 1, .25, 1),
		transform .9s cubic-bezier(.22, 1, .25, 1),
		filter .9s cubic-bezier(.22, 1, .25, 1);
}

.pr-hero.is-loaded .pr-hero__title .pr-letter,
.pr-hero.is-loaded .pr-hero__title .pr-line {
	opacity: 1;
	transform: translateY(0);
	filter: blur(0);
	transition-delay: calc(.3s + var(--pr-li, 0) * .05s);
}

/* ヒーロー kicker / lead もスタガー入場 */
.pr-hero__kicker,
.pr-hero__lead {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .8s ease, transform .8s cubic-bezier(.22, 1, .25, 1);
}

.pr-hero.is-loaded .pr-hero__kicker { opacity: 1; transform: translateY(0); transition-delay: .1s; }
.pr-hero.is-loaded .pr-hero__lead   { opacity: 1; transform: translateY(0); transition-delay: 1.1s; }

/* コーナーフレーム: 入場時に描かれる */
.pr-hero__corners span {
	transform: scale(0);
	opacity: 0;
	transition: transform .55s cubic-bezier(.22, 1, .25, 1), opacity .55s ease;
}

.pr-hero.is-loaded .pr-hero__corners span:nth-child(1) { transform: scale(1); opacity: 1; transition-delay: 1.3s; transform-origin: top left; }
.pr-hero.is-loaded .pr-hero__corners span:nth-child(2) { transform: scale(1); opacity: 1; transition-delay: 1.4s; transform-origin: top right; }
.pr-hero.is-loaded .pr-hero__corners span:nth-child(3) { transform: scale(1); opacity: 1; transition-delay: 1.5s; transform-origin: bottom left; }
.pr-hero.is-loaded .pr-hero__corners span:nth-child(4) { transform: scale(1); opacity: 1; transition-delay: 1.6s; transform-origin: bottom right; }

/* ---------- 2. パララックス: ヒーロー背景がゆっくり動く ---------- */
.pr-hero__bg {
	will-change: transform;
}

/* ---------- 3. セクション入場: 上部に赤い水平スキャンライン ---------- */
.pr-section {
	position: relative;
}

.pr-section::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: linear-gradient(90deg, transparent 0%, var(--hp-red-line, #d80008) 50%, transparent 100%);
	box-shadow: 0 0 6px rgba(216, 0, 8, .6);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 1.2s cubic-bezier(.22, 1, .25, 1) .2s;
	z-index: 5;
	pointer-events: none;
}

.pr-section.is-pr-entered::before {
	transform: scaleX(1);
}

/* ---------- 4. セクションタイトルが下から滑り込む ---------- */
.pr-section__head .pr-section__kicker,
.pr-section__head .pr-section__title,
.pr-section__head .pr-section__lead,
.pr-section__head > p {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .9s ease, transform .9s cubic-bezier(.22, 1, .25, 1);
}

.pr-section.is-pr-entered .pr-section__head .pr-section__kicker { opacity: 1; transform: translateY(0); transition-delay: .25s; }
.pr-section.is-pr-entered .pr-section__head .pr-section__title  { opacity: 1; transform: translateY(0); transition-delay: .4s; }
.pr-section.is-pr-entered .pr-section__head .pr-section__lead,
.pr-section.is-pr-entered .pr-section__head > p                 { opacity: 1; transform: translateY(0); transition-delay: .55s; }

/* タイトル下線は廃止（キッカーの「— XXX」と冗長なため） */
.pr-section__title {
	position: relative;
	/* display: inline-block は外す → 中央寄せレイアウトの邪魔になるため */
}

.pr-section__title::after {
	display: none !important;
	content: none !important;
}

/* ---------- 5. ステップ番号がドロップイン ---------- */
.pr-step::before {
	transform: scale(0) rotate(-12deg);
	opacity: 0;
	transition: transform .7s cubic-bezier(.34, 1.6, .64, 1), opacity .35s ease;
}

.pr-step.is-revealed::before {
	transform: scale(1) rotate(0);
	opacity: 1;
	transition-delay: calc(var(--hp-stagger, 0) * .12s + .2s);
}

.pr-step h3,
.pr-step p {
	opacity: 0;
	transform: translateX(-12px);
	transition: opacity .7s ease, transform .7s cubic-bezier(.22, 1, .25, 1);
}

.pr-step.is-revealed h3 {
	opacity: 1;
	transform: translateX(0);
	transition-delay: calc(var(--hp-stagger, 0) * .12s + .35s);
}

.pr-step.is-revealed p {
	opacity: 1;
	transform: translateX(0);
	transition-delay: calc(var(--hp-stagger, 0) * .12s + .45s);
}

/* ---------- 6. カード: マウス追従ハイライト ---------- */
.pr-card {
	position: relative;
	overflow: hidden;
}

.pr-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(360px circle at var(--pr-mx, 50%) var(--pr-my, 50%),
		rgba(216, 0, 8, .08),
		rgba(216, 0, 8, 0) 42%);
	opacity: 0;
	transition: opacity .35s ease;
	pointer-events: none;
	z-index: 0;
}

.pr-card:hover::before {
	opacity: 1;
}

.pr-card > * {
	position: relative;
	z-index: 1;
}

.pr-section--dark .pr-card::before {
	background: radial-gradient(360px circle at var(--pr-mx, 50%) var(--pr-my, 50%),
		rgba(228, 196, 140, .08),
		rgba(228, 196, 140, 0) 42%);
}

/* カード hover: 3D 傾き（弱め） */
.pr-card {
	transition: transform .5s cubic-bezier(.22, 1, .25, 1), box-shadow .35s ease;
}

.pr-card:hover {
	transform: translateY(-8px) perspective(800px) rotateX(2deg);
}

/* カード番号: hover で右へ少しスライド + 色強調 */
.pr-card__num {
	transition: color .3s ease, transform .3s ease;
}

.pr-card:hover .pr-card__num {
	transform: translateX(4px);
}

/* ---------- 7. 統計: hover でドット指標出現 ---------- */
.pr-stat {
	position: relative;
	transition: background .3s ease;
}

.pr-stat:hover {
	background: rgba(216, 0, 8, .03);
}

.pr-section--dark .pr-stat:hover {
	background: rgba(228, 196, 140, .05);
}

.pr-stat__num {
	display: inline-block;
	font-variant-numeric: tabular-nums;
	transition: transform .3s ease, color .3s ease;
}

.pr-stat:hover .pr-stat__num {
	transform: scale(1.04);
}

/* ---------- 8. 引用: 上下の縦線が draw-in + 文字 fade-up ---------- */
.pr-quote::before,
.pr-quote::after {
	transform: scaleY(0);
	transform-origin: center;
	transition: transform .8s cubic-bezier(.22, 1, .25, 1) .2s;
}

.pr-quote.is-revealed::before { transform: scaleY(1); }
.pr-quote.is-revealed::after  { transform: scaleY(1); transition-delay: .8s; }

.pr-quote p {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 1s ease .4s, transform 1s cubic-bezier(.22, 1, .25, 1) .4s;
}

.pr-quote.is-revealed p {
	opacity: 1;
	transform: translateY(0);
}

/* ---------- 9. Split media hover: マスク的ライト ---------- */
.pr-split__media {
	position: relative;
}

.pr-split__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(216, 0, 8, .15) 0%, transparent 40%);
	opacity: 0;
	transition: opacity .5s ease;
	pointer-events: none;
}

.pr-split:hover .pr-split__media::after {
	opacity: 1;
}

/* 番号の浮上（画像内に収まる範囲で） */
.pr-split__media-num {
	transition: transform .5s cubic-bezier(.22, 1, .25, 1);
}

.pr-split:hover .pr-split__media-num {
	transform: scale(1.06);
}

/* ---------- 10. CTA ボタン: 磁力風 + 光の帯 ---------- */
.pr-cta-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 16px;
	padding: 22px 56px;
	background: #fff;
	color: var(--hp-red, #b40000);
	font-family: var(--hp-roman, "Times New Roman");
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .22em;
	text-decoration: none;
	overflow: hidden;
	transition: transform .35s cubic-bezier(.22, 1, .25, 1), box-shadow .35s ease;
}

.pr-cta-button::after {
	content: "";
	position: absolute;
	top: 0;
	left: -100%;
	width: 60%;
	height: 100%;
	background: linear-gradient(100deg, transparent, rgba(216, 0, 8, .25), transparent);
	transform: skewX(-18deg);
	transition: left .7s ease;
	pointer-events: none;
}

.pr-cta-button:hover {
	transform: translateY(-4px) scale(1.02);
	box-shadow: 0 24px 48px rgba(0, 0, 0, .28);
}

.pr-cta-button:hover::after {
	left: 110%;
}

.pr-cta-button span {
	display: inline-block;
	transition: transform .35s ease;
}

.pr-cta-button:hover span {
	transform: translateX(8px);
}

/* セクション赤背景内の CTA */
.pr-section--red .pr-cta-button {
	background: #fff;
	color: var(--hp-red);
}

/* ---------- 11. FAQ details: 開閉アニメ強化 ---------- */
.hp-page--faq details summary {
	transition: background .3s ease, padding-left .3s ease;
}

.hp-page--faq details:hover summary {
	background: rgba(216, 0, 8, .03);
}

.hp-page--faq details[open] summary {
	background: rgba(216, 0, 8, .04);
}

/* Q. の文字に hover アニメ */
.hp-page--faq details summary span:first-of-type {
	display: inline-block;
	transition: transform .3s ease;
}

.hp-page--faq details:hover summary span:first-of-type {
	transform: translateX(4px) rotate(-3deg);
}

/* ---------- 12. ヒーロー番号装飾（巨大数字） ---------- */
.pr-hero__deco-num {
	position: absolute;
	top: 50%;
	right: 6%;
	transform: translateY(-50%);
	font-family: var(--hp-roman);
	font-size: clamp(180px, 22vw, 360px);
	font-weight: 400;
	color: rgba(255, 255, 255, .06);
	line-height: 1;
	letter-spacing: -.05em;
	pointer-events: none;
	z-index: -1;
	user-select: none;
}

/* ---------- 13. セクション下端の装飾線 ---------- */
.pr-section::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 1px;
	height: 0;
	background: linear-gradient(180deg, var(--hp-red-line, #d80008), transparent);
	box-shadow: 0 0 4px rgba(216, 0, 8, .4);
	transform: translateX(-50%);
	transition: height .8s cubic-bezier(.22, 1, .25, 1) .5s;
	z-index: 4;
	pointer-events: none;
}

.pr-section.is-pr-entered::after {
	height: 26px;
}

/* ---------- 14. プログレスドット（ステップ用） ---------- */
.pr-steps {
	position: relative;
}

.pr-steps::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 1px;
	height: 100%;
	background: linear-gradient(180deg, var(--hp-red-line, #d80008) 0%, transparent 100%);
	transform-origin: top;
	transform: scaleY(0);
	transition: transform 2s cubic-bezier(.22, 1, .25, 1) .3s;
	pointer-events: none;
}

.is-pr-entered .pr-steps::before {
	transform: scaleY(1);
}

/* ---------- 15. アクセシビリティ ---------- */
@media (prefers-reduced-motion: reduce) {
	.pr-hero__title .pr-letter,
	.pr-hero__title .pr-line,
	.pr-hero__kicker,
	.pr-hero__lead,
	.pr-hero__corners span,
	.pr-section::before,
	.pr-section::after,
	.pr-section__head .pr-section__kicker,
	.pr-section__head .pr-section__title,
	.pr-section__head .pr-section__lead,
	.pr-section__head > p,
	.pr-section__title::after,
	.pr-step::before,
	.pr-step h3,
	.pr-step p,
	.pr-quote::before,
	.pr-quote::after,
	.pr-quote p,
	.pr-steps::before {
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
		transition: none !important;
	}

	.pr-section::before,
	.pr-section::after,
	.pr-section__title::after,
	.pr-steps::before,
	.pr-hero__corners span {
		transform: scale(1) !important;
	}
}
