/* =========================
 * フォントがゴシックになるのを抑える（明朝寄せを強める）
 * ========================= */
.book-lp,
.book-lp *{
	font-family:
		"Noto Serif JP",
		"Yu Mincho",
		"YuMincho",
		"Hiragino Mincho ProN",
		"MS PMincho",
		serif !important;
	-webkit-text-size-adjust: 100%;
}

/* =========================================
 * ✅ PCも「上の緑の余白」を詰める（Book LPページだけ）
 * ========================================= */
body.is-book-lp #header-container,
body.is-book-lp #header,
body.is-book-lp header,
body.is-book-lp .site-header,
body.is-book-lp .header,
body.is-book-lp .header-container{
	display: none !important;
}
body.is-book-lp #content,
body.is-book-lp #content-in,
body.is-book-lp #content-in-wrap,
body.is-book-lp #main{
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* =========================
 * ベース
 * ========================= */
.book-lp{
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	width: 100vw;
	background: #fff;
	color: #111;
	overflow-x: hidden;

	--bg-r: 24;
	--bg-g: 24;
	--bg-b: 28;

	--heroUrl: none;
}
.book-lp *{ box-sizing:border-box; }

.book-lp-inner{
	max-width: var(--blp-inner-width, 1040px);
	margin: 0 auto;
	padding: 0 clamp(16px, 4vw, 48px);
}

/* =========================
 * HERO（PC基本は今まで通り）
 * ========================= */
.book-lp-hero{
	position: relative;
	min-height: var(--blp-hero-min-height, 118vh);
}
.book-lp-stage{
	position: sticky;
	top: 0;
	height: 100vh;
	width: 100%;
	overflow: hidden;
	background: #000;
}

/* 背景ぼかし */
.book-lp-bg{
	position:absolute;
	inset:0;
	background-image: var(--heroUrl);
	background-size: cover;
	background-position: center;
	transform: scale(1.10);
	filter: blur(var(--blp-bg-blur, 34px)) saturate(1.25);
	opacity: 0;
	animation: blpBgIn 1.2s ease .15s forwards;
	pointer-events: none; /* ✅ クリック阻害防止 */
}
@keyframes blpBgIn{ 0%{opacity:0} 100%{opacity:1} }

.book-lp-tint{
	position:absolute;
	inset:0;
	background:
		radial-gradient(800px 520px at 50% 50%,
			rgba(var(--bg-r),var(--bg-g),var(--bg-b),.60) 0%,
			rgba(var(--bg-r),var(--bg-g),var(--bg-b),.30) 55%,
			rgba(0,0,0,.18) 100%),
		linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.32));
	opacity: 0;
	animation: blpTintIn 1.1s ease .28s forwards;
	pointer-events: none; /* ✅ */
}
@keyframes blpTintIn{ 0%{opacity:0} 100%{opacity:1} }

.book-lp-vignette{
	position:absolute;
	inset:0;
	pointer-events:none;
	background:
		linear-gradient(90deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,0) 18%, rgba(0,0,0,0) 82%, rgba(0,0,0,.34) 100%);
	opacity: .65;
}

.book-lp-veil{
	position:absolute;
	inset:0;
	background:#fff;
	opacity: 1;
	pointer-events:none;
	animation: blpVeilOut 1.05s ease .10s forwards;
}
@keyframes blpVeilOut{ 0%{opacity:1} 100%{opacity:0} }

/* 中央レイヤー */
.book-lp-center{
	position:absolute;
	inset:0;
	display:grid;
	place-items:center;
	padding: clamp(14px, 3vw, 34px);
}

/* 表紙（PC） */
.book-lp-coverwrap{
	position: relative;
	width: min(var(--blp-cover-width, 560px), 72vw);
	height: min(78vh, 840px);
	display:flex;
	align-items:center;
	justify-content:center;
	z-index: 2; /* ✅ */
}
.book-lp-cover{
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--blp-cover-radius, 12px);
	box-shadow:
		0 26px 70px rgba(0,0,0,.40),
		0 10px 30px rgba(0,0,0,.25);
	opacity: 0;
	transform: translateY(10px) scale(0.99);
	filter: blur(10px);

	/* ✅ toysfactory風：画像を先に */
	animation: blpCoverIn 1.15s ease 1s forwards;

	visibility: visible !important;
	display: block !important;
}
@keyframes blpCoverIn{
	0%{opacity:0; transform: translateY(10px) scale(0.99); filter: blur(10px);}
	100%{opacity:1; transform: translateY(0) scale(1); filter: blur(0);}
}

/* タイトル・日付（PCの位置：左） */
.book-lp-meta{
	position:absolute;
	left: clamp(16px, 5vw, 48px);
	top: clamp(18px, 5vh, 44px);
	color: rgba(255,255,255,.92);
	text-shadow: 0 18px 60px rgba(0,0,0,.38);
	text-align:left;

	opacity:0;
	transform: translateY(-10px);
	filter: blur(10px);

	/* ✅ toysfactory風：画像の後に */
	animation: blpMetaIn 1.2s ease 1s forwards;

	z-index: 6;           /* ✅ */
	pointer-events: none; /* ✅ 文字はクリック不要 */
}
@keyframes blpMetaIn{
	0%{opacity:0; transform:translateY(-10px); filter: blur(10px);}
	100%{opacity:1; transform:translateY(0); filter: blur(0);}
}

.book-lp-meta .title{
	margin-top: 10px;
	font-size: clamp(34px, 5.0vw, 70px);
	line-height: 1.02;
	letter-spacing:.03em;
	font-weight: 700;
}
.book-lp-meta .date{
	margin-top: 10px;
	font-size: clamp(12px, 1.8vw, 18px);
	letter-spacing: .20em;
	opacity: .92;
}
.book-lp-meta .artist{ font-size: 14px; letter-spacing: .10em; opacity:.92; }
.book-lp-meta .badge{ margin-top: 6px; font-size: 12px; letter-spacing: .26em; text-transform: uppercase; opacity:.85; }

/* hero_message */
.book-lp-hero-message{
	position:absolute;
	left: clamp(16px, 5vw, 48px);
	bottom: clamp(16px, 6vh, 60px);
	width: min(1200px, 94vw);

	color: rgba(255,255,255,.94);
	text-shadow: 0 22px 80px rgba(0,0,0,.46);
	text-align:left;

	font-size: clamp(13px, 2.2vw, 34px);
	letter-spacing: .05em;

	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	line-height: 1.25;

	opacity: 0;
	transform: translateX(-52px);
	filter: blur(14px);
	animation: blpMsgIn 2.1s ease 1.18s forwards;

	z-index: 6; /* ✅ */
	pointer-events: none;
}
@keyframes blpMsgIn{
	0%{opacity:0; transform: translateX(-52px); filter: blur(14px);}
	100%{opacity:1; transform: translateX(0); filter: blur(0);}
}
.book-lp-hero-message .hm-line{ display: inline !important; }

/* =========================
 * ✅ ヒーローCTA（PC：右側）
 * ========================= */
.book-lp-hero-cta{
	position:absolute;
	right: clamp(16px, 5vw, 48px);
	top: clamp(110px, 22vh, 260px);
	text-align:center;

	opacity:0;
	transform: translateY(-8px);
	filter: blur(10px);

	/* ✅ 文字と同じタイミング */
	animation: blpCtaIn 1.1s ease .70s forwards;

	z-index: 7;           /* ✅ 最前面 */
	pointer-events: auto; /* ✅ クリック有効 */
}
@keyframes blpCtaIn{
	0%{opacity:0; transform: translateY(-8px); filter: blur(10px);}
	100%{opacity:1; transform: translateY(0); filter: blur(0);}
}

/* 透明＋白の光る枠ボタン */
.book-lp-hero-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding: 12px 18px;
	border-radius: 999px;

	background: rgba(255,255,255,.02);
	color: rgba(255,255,255,.96);
	text-decoration: none;

	border: 1px solid rgba(255,255,255,.78);
	box-shadow:
		0 0 22px rgba(255,255,255,.18),
		0 0 0 1px rgba(255,255,255,.08) inset;

	letter-spacing: .12em;
	transition: transform 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
	opacity: .98;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.book-lp-hero-btn:hover{
	transform: translateY(-1px);
	box-shadow:
		0 0 30px rgba(255,255,255,.26),
		0 0 0 1px rgba(255,255,255,.14) inset;
	opacity: 1;
}
.book-lp-hero-price{
	margin-top: 10px;
	font-size: 13px;
	letter-spacing: .18em;
	color: rgba(255,255,255,.88);
	text-shadow: 0 18px 60px rgba(0,0,0,.38);
}

/* =========================
 * BODY（PCは今まで通り“少し被せる”）
 * ========================= */
.book-lp-body{
	position: relative;
	margin-top: calc(-1 * var(--blp-body-overlap, 10vh));
	padding-bottom: 90px;
}
.book-lp-stack{ max-width: var(--blp-stack-width, 860px); margin: 0 auto; }
.book-lp-section{ padding: clamp(18px, 3.2vw, 38px) 0; }

.book-lp-kicker{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:14px;
	margin-bottom: 18px;
}
.book-lp-kicker:before,
.book-lp-kicker:after{
	content:"";
	height:1px;
	width: clamp(26px, 6vw, 56px);
	background: rgba(0,0,0,.18);
}
.book-lp-kicker span{
	font-size: 12px;
	letter-spacing: .26em;
	text-transform: uppercase;
	opacity:.72;
}

.book-lp-copy{
	max-width: var(--blp-copy-width, 760px);
	margin: 0 auto;
	text-align: left;
	font-size: clamp(18px, 2.2vw, 20px);
	line-height: 2.05;
	letter-spacing: .02em;
	opacity: .92;
}
.book-lp-body .book-lp-section:first-child{
  padding-top: 6px !important;
  padding-bottom: 18px !important;
}
.book-lp-body .book-lp-section:first-child .book-lp-kicker{
  margin-bottom: 10px !important;
}
/* ✅✅ 余白の主犯：wpautopが作る「空のp」を消す＆先頭要素の上余白を潰す */
.book-lp-copy p:empty{
	display:none !important;
	margin:0 !important;
	padding:0 !important;
}
.book-lp-copy > *:first-child{
	margin-top: 0 !important;
}

/* 目次：箱を中央、文字は左 */
.book-lp-section.is-toc .book-lp-copy{
	max-width: var(--blp-toc-width, 340px);
	margin: 0 auto;
	text-align: left;
}

/* ✅ 目次番号OFF */
.book-lp-section.is-toc .book-lp-copy ol{
	list-style: none !important;
	padding-left: 0 !important;
	margin: 0 !important;
	counter-reset: none !important;
}
.book-lp-section.is-toc .book-lp-copy ol > li{
	list-style: none !important;
	padding-left: 0 !important;
	margin: 12px 0;
}
.book-lp-section.is-toc .book-lp-copy ol > li::marker{ content: "" !important; }
.book-lp-section.is-toc .book-lp-copy ol > li:before,
.book-lp-section.is-toc .book-lp-copy ol > li::before{
	content: none !important;
	display: none !important;
}

/* 通常のul/ol */
.book-lp-copy ul{ margin:0; padding-left: 1.25em; }
.book-lp-copy ol{ margin:0; padding-left: 1.25em; }
.book-lp-copy li{ margin: 10px 0; }

/* ふわっと表示 */
.book-lp-line{
	display:block;
	opacity:0;
	transform: translateY(14px);
	filter: blur(8px);
	transition: opacity var(--blp-line-duration, 1300ms) ease, transform var(--blp-line-duration, 1300ms) ease, filter var(--blp-line-duration, 1300ms) ease;
}
.book-lp-line.is-visible{
	opacity:1;
	transform: translateY(0);
	filter: blur(0);
}

/* steps */
.book-lp-section.is-steps .book-lp-copy{ max-width: var(--blp-stack-width, 860px); }
.book-lp-steps{ max-width: var(--blp-stack-width, 860px); margin: 0 auto; }
.book-lp-step{ min-height: 62vh; display:flex; align-items:center; }
.book-lp-step .book-lp-line{
	font-size: clamp(18px, 2.4vw, 32px);
	line-height: 1.45;
	letter-spacing: .03em;
}

/* CTA（本文の予約ボタン） */
.book-lp-actions{
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	justify-content:center;
	margin-top: 26px;
}
.book-lp-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding: 13px 20px;
	border-radius: 999px;
	border: 1px solid rgba(0,0,0,.14);
	text-decoration:none;
	color:#111;
	background:#fff;
	transition: transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
	opacity:.92;
}
.book-lp-btn:hover{
	transform: translateY(-1px);
	box-shadow: 0 12px 30px rgba(0,0,0,.10);
	opacity:1;
}

/* ✅ 予約アイコン（小さく中央） */
.book-lp-reserve-icon{
	text-align:center;
	margin: 0 auto 10px;
}
.book-lp-reserve-icon img{
	display:inline-block;
	width: min(180px, 46vw);
	height: auto;
	opacity: .95;
}

/* =========================================================
 * ✅✅ スマホ専用：ヘッダー余白を消して、文字→CTA→画像（1画面）
 * ========================================================= */
@media (max-width: 767px){

	/* ① ヘッダーを消す */
	#header-container,
	#header,
	header,
	.site-header,
	.header,
	.header-container{
		display: none !important;
	}
	#content,
	#content-in,
	#content-in-wrap,
	#main{
		margin-top: 0 !important;
		padding-top: 0 !important;
	}

	/* ② 本文を被せない */
	.book-lp-body{
		margin-top: 0 !important;
		padding-top: 18px;
	}

	/* ③ ヒーローを1画面に */
	.book-lp-hero{ min-height: 100vh !important; }
	.book-lp-stage{
		position: relative !important;
		height: 100vh !important;
	}

	/* ④ 縦並び：文字→CTA→画像 */
	.book-lp-center{
		display:flex;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		padding: 4vh 16px 6vh;
		gap: 12px;
	}

	/* 文字（固定秒数はそのまま） */
	.book-lp-meta{
		position: relative !important;
		left: auto !important;
		top: auto !important;
		width: 92vw;
		text-align: center !important;

		opacity: 0;
		filter: blur(0);

		animation: blpMobileMetaZoom 600ms ease 3500ms forwards !important;
		transform: scale(1.12);

		z-index: 6;
	}
	@keyframes blpMobileMetaZoom{
		0%{opacity:0; transform: scale(1.18);}
		100%{opacity:1; transform: scale(1);}
	}
	.book-lp-meta .title{
		font-size: clamp(34px, 9vw, 44px);
		line-height: 1.08;
		letter-spacing: .06em;
	}
	.book-lp-meta .date{
		font-size: 14px;
		letter-spacing: .28em;
		opacity: .92;
	}

	/* CTA（固定秒数はそのまま） */
	.book-lp-hero-cta{
		position: relative !important;
		right: auto !important;
		top: auto !important;
		margin-top: 6px;
		margin-bottom: 6px;

		opacity: 0;
		transform: none !important;
		filter: none !important;

		animation: blpMobileCtaFade 4000ms ease 2000ms forwards !important;

		z-index: 7;
		pointer-events: auto;
	}
	@keyframes blpMobileCtaFade{
		0%{opacity:0}
		100%{opacity:1}
	}
	.book-lp-hero-price{
		font-size: 13px;
		letter-spacing: .16em;
	}

	/* 画像（固定秒数はそのまま） */
	.book-lp-coverwrap{
		width: min(var(--blp-mobile-cover-width, 340px), 86vw);
		height: auto !important;
		aspect-ratio: 3 / 4;
		margin-top: 10px;
	}
	.book-lp-cover{
		width: 100%;
		height: 100%;
		object-fit: cover;

		opacity: 0;
		transform: none !important;
		filter: none !important;

		animation: blpMobileCoverFade 4000ms ease 2000ms forwards !important;
	}
	@keyframes blpMobileCoverFade{
		0%{opacity:0}
		100%{opacity:1}
	}

	/* hero_message 3段 */
	.book-lp-hero-message{
		white-space: normal;
		overflow: visible;
		text-overflow: clip;
		line-height: 1.18;
		letter-spacing: .02em;
	}
	.book-lp-hero-message .hm-line{ display:block !important; }
}

/* =========================================================
 * yOS Book settings: effect presets.
 * "original" adds no class and therefore keeps the legacy design exactly.
 * ========================================================= */
@keyframes blpFadeOnly{0%{opacity:0}100%{opacity:1}}

.book-lp--hero-soft .book-lp-cover{
	transform:none !important;
	filter:none !important;
	animation:blpFadeOnly 1.15s ease 1s forwards !important;
}
.book-lp--hero-soft .book-lp-meta{
	transform:none !important;
	filter:none !important;
	animation:blpFadeOnly 1.2s ease 1s forwards !important;
}
.book-lp--hero-soft .book-lp-hero-cta{
	transform:none !important;
	filter:none !important;
	animation:blpFadeOnly 1.1s ease .70s forwards !important;
}
.book-lp--hero-soft .book-lp-hero-message{
	transform:none !important;
	filter:none !important;
	animation:blpFadeOnly 2.1s ease 1.18s forwards !important;
}
.book-lp--hero-none .book-lp-bg,
.book-lp--hero-none .book-lp-tint,
.book-lp--hero-none .book-lp-veil,
.book-lp--hero-none .book-lp-cover,
.book-lp--hero-none .book-lp-meta,
.book-lp--hero-none .book-lp-hero-cta,
.book-lp--hero-none .book-lp-hero-message{
	opacity:1 !important;
	animation:none !important;
	transform:none !important;
	filter:none !important;
}
.book-lp--hero-none .book-lp-bg{
	filter:blur(var(--blp-bg-blur, 34px)) saturate(1.25) !important;
	transform:scale(1.10) !important;
}
.book-lp--body-fade .book-lp-line{
	transform:none;
	filter:none;
}
.book-lp--body-none .book-lp-line{
	opacity:1 !important;
	transform:none !important;
	filter:none !important;
	transition:none !important;
}
