/*
 * Blanky Beauty — 紹介ページ（/themes/blanky-beauty）
 *
 * 旧 blanky.369theme.com/theme/blanky-beauty/ の LP（css/style.css）を、369theme.com の中に置くために書き直したもの。
 * 値は旧 LP のまま。クラス名は lp- に揃え、.lp の中だけに効かせる。
 *
 * - ヘッダー・フッター・スキップリンクはサイトのものを使うので持たない
 * - 書体は Web フォント（Cormorant Garamond・Shippori Mincho・Noto Sans JP）を読み込まず、システムの書体にした
 * - デモ動画（ja.mp4・en.mp4）は外したので、再生ボタンの CSS も持たない
 * - 色:
 *   - 金（#A9814F）は地色に対して 3.22:1。大きい見出しと飾りにはそのまま使い、
 *     小さい文字に使うときだけ濃い金（#7A5C33、地色で 5.6:1・帯の色で 5.14:1）にした
 *   - 薄い金（#C8A876）は明るい地で 2.05:1 と足りないので、暗い帯（Steps）の上だけで使う。
 *     明るい地の大きい数字は金（#A9814F、3.22:1）にした
 *   - 薄い灰（#7C7466・#8B8272、3.46〜4.21:1）は #6B6558（5.27:1）にした
 *   - CTA の写真に重ねる層は 0.72 → 0.82 にした。砂色の写真の上で、濃い金・灰の文字が 4.5:1 を割らないようにするため
 * - 12px 未満の文字（11px・11.5px）は 12px にした
 * - 旧 LP にはスマホ幅の指定がほとんど無かったので、960px 未満で1列にする指定を足した
 *
 * public/ に置いて直接読み込むので、npm run build は要らない。
 */

/* --- tokens ------------------------------------------------------------- */

.lp {
	--bg: #f7f4ee;
	--bg-alt: #efeae0;
	--ink: #211d18;
	--ink-soft: #4c463d;
	--muted: #6b6558;
	--gold: #a9814f;
	--gold-text: #7a5c33;
	--gold-light: #c8a876;
	--on-dark: #f1ede5;
	--on-dark-soft: #b7ad9e;
	--line: rgb(33 29 24 / 0.2);

	--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Noto Sans JP", sans-serif;
	--font-serif: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Noto Serif JP", serif;
	--font-display: Georgia, "Times New Roman", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;

	--wrap: 80rem;
	--gutter: 1.5rem;
	--section: 6rem;
	--ease: cubic-bezier(0.22, 0.61, 0.36, 1);

	/* サイトのヘッダー（h-16）の高さ。ページ内リンクと sticky の位置で使う */
	--site-header-h: 4rem;

	background: var(--bg);
	color: var(--ink);
	font-family: var(--font-sans);
	-webkit-font-smoothing: antialiased;
}

/* --- base --------------------------------------------------------------- */

/* サイトの Tailwind（preflight）も同じ指定をしているが、それに頼らずここでも持つ */
:where(.lp),
:where(.lp) *,
:where(.lp) *::before,
:where(.lp) *::after {
	box-sizing: border-box;
}

/* リセットは :where() で詳細度を 0 にする。.lp p（0-1-1）のままだと、.lp-label などの余白（0-1-0）を消してしまう */
:where(.lp) :where(h1, h2, h3, p, figure) {
	margin: 0;
}

:where(.lp) img {
	display: block;
	max-width: 100%;
}

:where(.lp) a {
	color: inherit;
	text-decoration: none;
}

.lp a:focus-visible,
.lp button:focus-visible,
.lp summary:focus-visible,
.lp [tabindex="0"]:focus-visible {
	outline: 2px solid var(--gold-text);
	outline-offset: 3px;
}

.lp [id] {
	scroll-margin-top: calc(var(--site-header-h) + 1rem);
}

.lp-wrap {
	width: 100%;
	max-width: var(--wrap);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

/* 画面には出さず、読み上げだけで伝える文字 */
.lp-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* 英字の小さな見出し（旧 showcase__label・why__label など） */
.lp-label {
	margin-bottom: 1.125rem;
	color: var(--gold-text);
	font-family: var(--font-display);
	font-size: 0.9375rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
}

.lp-h2 {
	font-family: var(--font-serif);
	font-size: clamp(2.125rem, 3.6vw, 3.25rem);
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.04em;
}

.lp-h2 em {
	color: var(--gold);
	font-style: normal;
}

.lp-text {
	color: var(--ink-soft);
	font-size: 0.9375rem;
	line-height: 2.2;
}

/* --- buttons ------------------------------------------------------------ */

.lp-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.lp .lp-btn {
	display: inline-block;
	padding: 1.0625rem 2.5rem;
	border-radius: 2px;
	font-size: 0.8125rem;
	letter-spacing: 0.14em;
	transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.lp .lp-btn--dark {
	background: var(--ink);
	color: var(--bg);
}

.lp .lp-btn--dark:hover {
	background: var(--gold-text);
	color: #fff;
}

.lp .lp-btn--outline {
	border: 1px solid rgb(33 29 24 / 0.5);
	color: var(--ink);
}

.lp .lp-btn--outline:hover {
	border-color: var(--gold-text);
	color: var(--gold-text);
}

.lp-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.5rem;
	margin-top: 1.25rem;
	color: var(--muted);
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
}

.lp-price strong {
	color: var(--gold-text);
	font-family: var(--font-display);
	font-size: 1.0625rem;
	font-style: italic;
	font-weight: 500;
}

/* --- hero --------------------------------------------------------------- */

.lp-hero {
	padding-block: 4.5rem 5.5rem;
}

.lp-hero__meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.625rem;
	margin-bottom: 3.5rem;
	padding-bottom: 0.875rem;
	border-bottom: 1px solid rgb(33 29 24 / 0.35);
}

.lp-hero__meta-label {
	font-family: var(--font-display);
	font-size: 0.875rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
}

.lp-hero__meta-sub {
	color: var(--muted);
	font-size: 0.75rem;
	letter-spacing: 0.24em;
}

.lp-hero__meta-no {
	font-family: var(--font-display);
	font-size: 0.875rem;
	font-style: italic;
	letter-spacing: 0.2em;
}

.lp-hero__grid {
	display: grid;
	gap: 3.5rem;
	align-items: center;
}

/* ハイライトの帯（::after）を見出しの後ろに置くため、見出しで重なりの基準を作る */
.lp-hero__title {
	position: relative;
	z-index: 0;
	font-family: var(--font-serif);
	font-size: clamp(2.5rem, 5.4vw, 4.875rem);
	font-weight: 500;
	line-height: 1.28;
	letter-spacing: 0.04em;
}

.lp-hero__accent {
	color: var(--gold);
	font-family: var(--font-display);
	font-size: 1.2em;
	font-style: italic;
	font-weight: 500;
}

.lp-hero__highlight {
	position: relative;
	display: inline-block;
	color: var(--gold);
	font-family: var(--font-display);
	font-size: 0.82em;
	font-style: italic;
	font-weight: 500;
}

.lp-hero__highlight::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0.5rem;
	z-index: -1;
	width: 100%;
	height: 0.875rem;
	background: rgb(200 168 118 / 0.35);
}

.lp-hero__lead {
	max-width: 34em;
	margin-top: 2.25rem;
}

.lp-hero__lead strong {
	font-weight: 700;
}

.lp-hero .lp-actions {
	margin-top: 2.75rem;
}

.lp-hero__visual {
	position: relative;
	min-height: 32.5rem;
}

.lp-hero__img {
	position: absolute;
	overflow: hidden;
}

.lp-hero__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lp-hero__img--main {
	top: 0;
	right: 0;
	width: 78%;
	aspect-ratio: 3 / 4;
}

.lp-hero__img--sub {
	bottom: -1.875rem;
	left: 0;
	width: 46%;
	aspect-ratio: 4 / 5;
	box-shadow: 0 24px 60px rgb(33 29 24 / 0.18);
}

.lp-hero__vertical {
	position: absolute;
	top: 1.5rem;
	right: calc(78% + 1.375rem);
	color: var(--muted);
	font-family: var(--font-serif);
	font-size: 0.9375rem;
	letter-spacing: 0.42em;
	writing-mode: vertical-rl;
}

/* --- marquee ------------------------------------------------------------ */

.lp-marquee {
	overflow: hidden;
	padding-block: 1.25rem;
	border-block: 1px solid rgb(33 29 24 / 0.14);
}

.lp-marquee__track {
	display: flex;
	width: max-content;
	color: var(--muted);
	font-family: var(--font-display);
	font-size: 1.375rem;
	letter-spacing: 0.24em;
	white-space: nowrap;
	animation: lp-marquee 32s linear infinite;
}

.lp-marquee__item {
	padding-right: 3em;
}

.lp-marquee__item em {
	color: var(--gold-text);
	font-style: italic;
}

@keyframes lp-marquee {

	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

/* --- showcase ----------------------------------------------------------- */

.lp-showcase {
	padding-block: calc(var(--section) + 2rem);
}

.lp-showcase__grid {
	display: grid;
	gap: 4.5rem;
	align-items: start;
}

.lp-showcase__body .lp-text {
	margin-top: 1.875rem;
}

.lp-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 2.125rem;
	padding: 0;
	list-style: none;
}

.lp-tags li {
	padding: 0.5625rem 1.125rem;
	border: 1px solid rgb(33 29 24 / 0.25);
	border-radius: 999px;
	color: var(--ink-soft);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
}

.lp-showcase .lp-actions {
	margin-top: 2.375rem;
}

.lp-browser {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1rem;
	border-radius: 10px 10px 0 0;
	background: var(--ink);
}

.lp-browser__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #5c554b;
}

.lp-browser__url {
	margin-left: 0.875rem;
	color: var(--on-dark-soft);
	font-family: monospace;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
}

/* 画面いっぱいの縦長スクリーンショットを、枠の中でスクロールして見せる */
.lp-browser__frame {
	height: 74vh;
	min-height: 32.5rem;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	border: 1px solid rgb(33 29 24 / 0.16);
	border-top: 0;
	border-radius: 0 0 10px 10px;
	background: #fff;
	box-shadow: 0 30px 80px rgb(33 29 24 / 0.16);
}

.lp-browser__frame img {
	width: 100%;
	height: auto;
}

.lp-showcase__caption {
	margin-top: 0.875rem;
	color: var(--muted);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-align: right;
}

/* --- contents ----------------------------------------------------------- */

.lp-contents {
	padding-block: calc(var(--section) + 2rem);
	background: var(--bg-alt);
}

.lp-contents__head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	margin-bottom: 4rem;
}

.lp-contents__en {
	margin-left: 0.5em;
	color: var(--gold-text);
	font-family: var(--font-display);
	font-size: 0.6em;
	font-style: italic;
}

.lp-contents__sub {
	color: var(--muted);
	font-size: 0.8125rem;
	letter-spacing: 0.1em;
}

.lp-contents__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
	column-gap: 4.5rem;
}

.lp-item {
	display: flex;
	align-items: baseline;
	gap: 1.375rem;
	padding-block: 1.625rem;
	border-top: 1px solid var(--line);
}

.lp-item__no {
	min-width: 2em;
	color: var(--gold-text);
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-style: italic;
}

.lp-item__title {
	font-family: var(--font-serif);
	font-size: 1.1875rem;
	font-weight: 500;
	letter-spacing: 0.06em;
}

.lp-item__desc {
	margin-top: 0.5rem;
	color: var(--muted);
	font-size: 0.84375rem;
	line-height: 1.9;
}

/* --- why ---------------------------------------------------------------- */

.lp-why {
	padding-block: calc(var(--section) + 2rem);
}

.lp-why__grid {
	display: grid;
	gap: 4.5rem;
	align-items: start;
}

.lp-why__item {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: baseline;
	gap: 2rem;
	padding-block: 2.75rem;
	border-top: 1px solid rgb(33 29 24 / 0.25);
}

.lp-why__item:last-child {
	border-bottom: 1px solid rgb(33 29 24 / 0.25);
}

.lp-why__no {
	color: var(--gold);
	font-family: var(--font-display);
	font-size: 4rem;
	font-style: italic;
	line-height: 1;
}

.lp-why__title {
	font-family: var(--font-serif);
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: 0.05em;
}

.lp-why__item .lp-text {
	margin-top: 0.875rem;
	font-size: 0.90625rem;
	line-height: 2.1;
}

/* スタイルバリエーションの色見本。色はテーマの styles/*.json と同じ */
.lp-swatches {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr));
	gap: 0.875rem;
	margin-top: 1.625rem;
}

.lp-swatch {
	padding: 1rem;
	border: 1px solid rgb(33 29 24 / 0.14);
}

.lp-swatch__chips {
	display: flex;
	gap: 5px;
}

.lp-swatch__chips span {
	flex: 1;
	height: 34px;
}

.lp-swatch__name {
	margin-top: 0.75rem;
	font-family: var(--font-display);
	font-size: 0.875rem;
	letter-spacing: 0.08em;
}

.lp-swatch--gold {
	background: #fafaf7;
}

.lp-swatch--gold span:nth-child(1) {
	background: #d6b98c;
}

.lp-swatch--gold span:nth-child(2) {
	background: #f3f0eb;
}

.lp-swatch--gold span:nth-child(3) {
	background: #2b2b2b;
}

.lp-swatch--dark {
	background: #111;
}

.lp-swatch--dark span:nth-child(1) {
	background: #bfa15a;
}

.lp-swatch--dark span:nth-child(2) {
	background: #3a2f08;
}

.lp-swatch--dark span:nth-child(3) {
	background: #f8f8f8;
}

.lp-swatch--dark .lp-swatch__name {
	color: #f8f8f8;
}

.lp-swatch--emerald {
	background: #fff;
}

.lp-swatch--emerald span:nth-child(1) {
	background: #0f5132;
}

.lp-swatch--emerald span:nth-child(2) {
	background: #f5f7f5;
}

.lp-swatch--emerald span:nth-child(3) {
	background: #1a1a1a;
}

/* --- steps -------------------------------------------------------------- */

.lp-steps {
	padding-block: calc(var(--section) + 2rem);
	background: var(--ink);
	color: var(--on-dark);
}

.lp-steps__head {
	margin-bottom: 4.5rem;
	text-align: center;
}

.lp-steps .lp-label {
	color: var(--gold-light);
}

.lp-steps .lp-h2 {
	color: var(--on-dark);
	font-size: clamp(2rem, 3.4vw, 3rem);
	letter-spacing: 0.05em;
}

/* 罫線は各ステップの box-shadow で引く（コンテナ背景＋gap だと、折り返したときの空きに背景が出る） */
.lp-steps__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16.25rem), 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

.lp-step {
	padding: 3rem 2.375rem;
	box-shadow: 0 0 0 0.5px rgb(241 237 229 / 0.3);
}

.lp-step__no {
	color: var(--gold-light);
	font-family: var(--font-display);
	font-size: 3rem;
	font-style: italic;
}

.lp-step__title {
	margin-top: 1.25rem;
	color: var(--on-dark);
	font-family: var(--font-serif);
	font-size: 1.25rem;
	font-weight: 500;
	letter-spacing: 0.06em;
}

.lp-step__desc {
	margin-top: 0.875rem;
	color: var(--on-dark-soft);
	font-size: 0.84375rem;
	line-height: 2.1;
}

/* --- faq ---------------------------------------------------------------- */

.lp-faq {
	max-width: 55rem;
	padding-block: calc(var(--section) + 2rem);
}

.lp-faq__head {
	margin-bottom: 4rem;
	text-align: center;
}

.lp-faq .lp-h2 {
	font-size: clamp(2rem, 3.4vw, 3rem);
	letter-spacing: 0.05em;
}

.lp-faq__item {
	border-top: 1px solid var(--line);
}

.lp-faq__item:last-child {
	border-bottom: 1px solid var(--line);
}

.lp-faq__item > summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.25rem;
	padding: 1.625rem 0.25rem;
	font-family: var(--font-serif);
	font-size: 1.0625rem;
	letter-spacing: 0.04em;
	list-style: none;
	cursor: pointer;
}

.lp-faq__item > summary::-webkit-details-marker {
	display: none;
}

.lp-faq__plus {
	color: var(--gold-text);
	font-family: var(--font-display);
	font-size: 1.625rem;
	line-height: 1;
	transition: transform 0.3s ease;
}

.lp-faq__item[open] .lp-faq__plus {
	transform: rotate(45deg);
}

.lp-faq__item .lp-text {
	padding: 0 0.25rem 1.75rem;
	font-size: 0.875rem;
	line-height: 2.1;
}

/* --- cta ---------------------------------------------------------------- */

.lp-cta {
	position: relative;
	overflow: hidden;
	padding: 9.375rem var(--gutter);
	text-align: center;
}

/* 背景の写真は飾り。文字は上の半透明の層で読めるようにしている */
.lp-cta__bg {
	position: absolute;
	inset: 0;
	background: url("../../images/themes/blanky-beauty/back.png") center / cover no-repeat;
}

.lp-cta__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgb(247 244 238 / 0.82);
}

.lp-cta__body {
	position: relative;
}

.lp-cta__title {
	font-family: var(--font-serif);
	font-size: clamp(2.25rem, 4.4vw, 3.875rem);
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

.lp-cta__title em {
	color: var(--gold-text);
	font-style: normal;
}

.lp-cta .lp-text {
	margin-top: 1.75rem;
	line-height: 2.1;
}

.lp-cta .lp-actions {
	justify-content: center;
	margin-top: 2.75rem;
}

.lp-cta .lp-price {
	justify-content: center;
	margin-top: 1.5rem;
}

/* --- reveal（reveal.js） ------------------------------------------------- */

.lp-reveal-ready .lp-reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
}

.lp-reveal-ready .lp-reveal.is-visible {
	opacity: 1;
	transform: none;
}

/* --- responsive --------------------------------------------------------- */

@media (width < 600px) {

	.lp-hero__visual {
		min-height: 26rem;
	}

	.lp-why__item {
		gap: 1.25rem;
	}

	.lp-why__no {
		font-size: 3rem;
	}

	.lp-step {
		padding: 2.5rem 1.75rem;
	}
}

@media (width >= 960px) {

	.lp {
		--gutter: 2.75rem;
	}

	.lp-hero__grid {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	}

	.lp-showcase__grid {
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	}

	.lp-why__grid {
		grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
	}

	/* 1列のときは sticky にしない（左の文が画面に貼りついて、右の内容を隠すため） */
	.lp-showcase__body,
	.lp-why__head {
		position: sticky;
		top: calc(var(--site-header-h) + 4.75rem);
	}
}

@media (prefers-reduced-motion: reduce) {

	.lp *,
	.lp *::before,
	.lp *::after {
		transition: none !important;
	}

	.lp-marquee__track {
		animation: none;
	}

	.lp-reveal-ready .lp-reveal {
		opacity: 1;
		transform: none;
	}
}
