@charset "UTF-8";
/* =============================================================
 * モデルハウスLP（page-modelhouse-lp.php 専用）
 *
 * ・このファイルは当該テンプレートからのみ読み込む。共通CSSは触らない。
 * ・クラスはすべて mlp- 接頭辞（他ページとの衝突防止）。
 * ・SP（390px）のデザインを基準に組み、PCは
 *   「固定サイドバー ＋ 同じ幅の本文カラム ＋ 背景に薄くしたFV」で構成する。
 * ============================================================= */

/* -------------------------------------------------------------
 * リセット（このページはテーマ共通CSSを読まないため最小限を同梱）
 * ------------------------------------------------------------- */
.mlp *,
.mlp *::before,
.mlp *::after {
	box-sizing: border-box;
}

.mlp-body {
	margin: 0;
	background: #fff;
	-webkit-text-size-adjust: 100%;
}

/* リセットは :where() で書き、後続のコンポーネント指定が必ず勝つようにする
 * （img の height:auto がカバー表示の height:100% を上書きしてしまうのを防ぐ） */
.mlp :where(h1, h2, h3, p, ul, ol, dl, dd, figure) {
	margin: 0;
	padding: 0;
}

.mlp :where(ul, ol) {
	list-style: none;
}

.mlp :where(img) {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}

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

.mlp :where(button) {
	font: inherit;
	color: inherit;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
}

.mlp :focus-visible {
	outline: 2px solid var(--mlp-accent);
	outline-offset: 2px;
}

/* -------------------------------------------------------------
 * デザイントークン
 * ------------------------------------------------------------- */
.mlp {
	/* 色 */
	--mlp-accent: #e8374a;
	--mlp-text: #1a1a1a;
	--mlp-white: #fff;
	--mlp-bg: #f5f5f5;
	--mlp-bg-gray: #d5d5d5;
	--mlp-dark: #1a1a1a;
	--mlp-line: #ccc;
	--mlp-deco: rgba(199, 199, 199, .5);

	/* 書体
	 * data-latin="on"  … 和文＝Shippori Mincho B1／英字＝Cardo（自動で切り替わる）
	 * data-latin="off" … 英字も和文フォントで表現する
	 */
	--mlp-font: "Cardo", "Shippori Mincho B1", "Hiragino Mincho ProN", serif;

	/* 余白スケール */
	--mlp-space-xs: 8px;
	--mlp-space-s: 14px;
	--mlp-space-m: 20px;
	--mlp-space-l: 32px;
	--mlp-space-xl: 48px;

	/* セクションの上下余白（指示: 基本56pxで固定。写真・動画のセクションだけ32px） */
	--mlp-space-section: 56px;
	--mlp-space-media: 32px;

	/* レイアウト */
	--mlp-gutter: 20px;
	--mlp-col: 390px;
	--mlp-radius: 10px;

	position: relative;
	color: var(--mlp-text);
	font-family: var(--mlp-font);
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: .02em;
	/* hidden ではなく clip。hidden はスクロールコンテナを作ってしまい、
	 * PC固定サイドバーの position:sticky が効かなくなる。 */
	overflow-x: clip;
}

.mlp[data-latin="off"] {
	--mlp-font: "Shippori Mincho B1", "Hiragino Mincho ProN", serif;
}

/* テキスト内の部分装飾（管理画面から span で指定する） */
.mlp .is-xs { font-size: .625em; }
.mlp .is-s { font-size: .75em; letter-spacing: .05em; }
.mlp .is-l { font-size: 1.25em; }
.mlp .is-xl { font-size: 1.6em; }
.mlp .is-accent { color: var(--mlp-accent); }
.mlp .is-line { text-decoration: underline; text-underline-offset: .25em; }

/* PC演出ステージとPC固定ロゴはSPでは使わない（PC media query内で表示する） */
.mlp-stage,
.mlp-pclogo {
	display: none;
}

/* -------------------------------------------------------------
 * 共通パーツ
 * ------------------------------------------------------------- */
.mlp-inner {
	padding-inline: var(--mlp-gutter);
}

.mlp-section {
	position: relative;
	padding-block: var(--mlp-space-section);
	background: var(--mlp-white);
	overflow: hidden;
}

/* 背景写真＋暗さ（--mlp-bg-image / --mlp-overlay はPHPからインラインで渡す） */
.mlp-has-bg {
	background-color: var(--mlp-dark);
	color: var(--mlp-white);
}

.mlp-has-bg::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--mlp-bg-image, none);
	background-size: cover;
	background-position: center;
}

.mlp-has-bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, var(--mlp-overlay, 0));
}

.mlp-has-bg > * {
	position: relative;
	z-index: 1;
}

/* 右上の斜め装飾（Summary / Point / FAQ） */
.mlp-deco {
	position: absolute;
	top: 0;
	right: 0;
	width: 144px;
	height: 80px;
	pointer-events: none;
}

.mlp-deco::before,
.mlp-deco::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 144px;
	background: var(--mlp-deco);
	clip-path: polygon(0 0, 100% 0, 100% 100%);
}

.mlp-deco::before { height: 80px; }
.mlp-deco::after { height: 47px; }


/* 見出し */
.mlp-heading {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-bottom: var(--mlp-space-m);
	font-weight: 700;
	line-height: 1;
}

/* ドットは英字の垂直中心に合わせる（baseline整列から外して行の中央へ） */
.mlp-heading::before {
	content: "";
	flex: none;
	align-self: center;
	width: 4px;
	height: 4px;
	margin-right: 8px;
	border-radius: 50%;
	background: var(--mlp-accent);
}

.mlp-heading__en {
	font-size: 22px;
	letter-spacing: .1em;
}

.mlp-heading__ja {
	font-size: 10px;
	letter-spacing: .1em;
	line-height: 1.5;
}

.mlp-heading--light {
	color: var(--mlp-white);
}

/* タグ（来場特典 / 施工エリアなど） */
.mlp-tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 78px;
	height: 24px;
	padding-inline: 10px;
	border-radius: 999px;
	color: var(--mlp-white);
	font-size: 10px;
	letter-spacing: .06em;
	line-height: 1;
	white-space: nowrap;
}

.mlp-tag--accent { background: var(--mlp-accent); }
.mlp-tag--dark { background: var(--mlp-dark); }

/* パネル（白い角丸ボックス） */
.mlp-panel {
	padding: 32px 20px;
	border-radius: var(--mlp-radius);
	background: rgba(255, 255, 255, .88);
	-webkit-backdrop-filter: blur(5px);
	backdrop-filter: blur(5px);
	color: var(--mlp-text);
}

.mlp-panel--translucent {
	background: rgba(255, 255, 255, .75);
}

.mlp-panel__line {
	height: 1px;
	margin: 16px 0;
	border: 0;
	background: var(--mlp-line);
}

/* CTAボタン */
.mlp-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 170px;
	min-height: 48px;
	padding-inline: 20px;
	border: 2px solid rgba(255, 255, 255, .8);
	border-radius: var(--mlp-radius);
	background: var(--mlp-accent);
	color: var(--mlp-white);
	font-size: 14px;
	letter-spacing: .06em;
	transition: opacity .25s, transform .25s;
}

.mlp-cta:hover {
	opacity: .85;
	transform: translateY(-2px);
}

.mlp-cta__icon {
	flex: none;
}

/* SPの追従CTA（PCではサイドバーに常時出るため非表示） */
.mlp-cta--sp {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 40;
	min-width: 0;
	min-height: 52px;
	padding-inline: 22px;
	box-shadow: 0 6px 20px rgba(0, 0, 0, .25);
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity .3s, transform .3s, visibility .3s;
}

.mlp-cta--sp.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
}

/* =============================================================
 * ファーストビュー
 * 1枚の画像で画面全体を占有する（次のセクションはスクロールするまで見えない）
 * ============================================================= */
/* 260908 変更：見学会LPと同じ組み方に統一。
 * 写真は 1080:1920（9:16）のまま切り抜かずに幅いっぱいで置く。
 * （以前はSP 100svh・PC 580px固定に引き伸ばしていたため左右が見切れていた） */
.mlp-fv {
	position: relative;
	height: auto;
	min-height: 0;
	aspect-ratio: 1080 / 1920;
	overflow: hidden;
	color: var(--mlp-white);
}


.mlp-fv__media,
.mlp-fv__media picture {
	position: absolute;
	inset: 0;
	display: block;
}

.mlp-fv__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center bottom;
}

.mlp-fv__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 24px var(--mlp-gutter) 80px;
}

.mlp-fv__logo {
	width: 130px;
	flex: none;
}

.mlp-logo-img {
	width: 100%;
	height: auto;
}

.mlp-fv__copy {
	margin-top: 40px;
	transition: opacity .4s ease, transform .4s ease;
}

/* スクロールでコピーだけがすっと消える（PCアニメーション2） */
.mlp-fv__copy.is-faded {
	opacity: 0;
	transform: translateY(-12px);
}

.mlp-fv[data-valign="middle"] .mlp-fv__copy { margin-block: auto; }
.mlp-fv[data-valign="bottom"] .mlp-fv__copy { margin-top: auto; }

.mlp-fv[data-align="center"] .mlp-fv__inner { align-items: center; text-align: center; }
.mlp-fv[data-align="right"] .mlp-fv__inner { align-items: flex-end; text-align: right; }

.mlp-fv[data-align="center"] .mlp-fv__logo,
.mlp-fv[data-align="right"] .mlp-fv__logo {
	align-self: flex-start;
}

.mlp-fv__badge {
	display: inline-block;
	padding: 6px 24px;
	border: 1px solid var(--mlp-white);
	font-size: 14px;
	letter-spacing: .15em;
	line-height: 1.5;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, .25);
}

.mlp-fv__catch {
	margin-top: 11px;
	font-size: 24px;
	letter-spacing: .05em;
	line-height: 1.5;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, .25);
}

.mlp-fv__title {
	margin-top: 8px;
	font-size: 39px;
	font-weight: 700;
	letter-spacing: .05em;
	line-height: 1.5;
	text-shadow: 3px 3px 7px rgba(0, 0, 0, .25);
}

/* 画面下部を流れる大きな英字。FVの下端に接地させる（下がわずかに切れる） */
.mlp-fv__marquee {
	position: absolute;
	left: 0;
	bottom: -6px;
	z-index: 1;
	width: 100%;
	overflow: hidden;
	line-height: 1;
	pointer-events: none;
}

.mlp-fv__marquee-track {
	display: flex;
	width: max-content;
	animation: mlp-marquee 22s linear infinite;
}

.mlp-fv__marquee-track span {
	padding-right: .3em;
	color: rgba(255, 255, 255, .9);
	font-size: 44px;
	letter-spacing: .01em;
	line-height: 1;
	white-space: nowrap;
}

@keyframes mlp-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-33.333%); }
}

/* =============================================================
 * Summary
 * ============================================================= */
.mlp-summary {
	background: var(--mlp-bg);
}

.mlp-summary__visual {
	position: relative;
}

.mlp-summary__image {
	aspect-ratio: 350 / 170;
	overflow: hidden;
	border-radius: var(--mlp-radius) var(--mlp-radius) 0 0;
}

.mlp-summary__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mlp-summary__image[data-focus="top"] .mlp-summary__img { object-position: center top; }
.mlp-summary__image[data-focus="bottom"] .mlp-summary__img { object-position: center bottom; }

.mlp-summary__badge {
	position: absolute;
	right: 20px;
	bottom: 22px;
	width: 64px;
	text-align: center;
}

.mlp-summary__badge-circle {
	width: 64px;
	height: 64px;
	overflow: hidden;
	border: 1px solid rgba(0, 0, 0, .18);
	border-radius: 50%;
	background: var(--mlp-white);
	box-shadow: 0 2px 8px rgba(0, 0, 0, .2);
}

.mlp-summary__badge-img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 6px;
}

.mlp-summary__badge-label {
	position: absolute;
	left: 50%;
	bottom: -10px;
	transform: translateX(-50%);
	min-width: 70px;
	height: 20px;
	font-size: 9px;
}

.mlp-summary__spec {
	padding: 18px 15px;
	border-bottom: 1px solid var(--mlp-line);
	/* デザイン：カードの下側は角丸なし（上の写真側だけ丸い） */
	border-radius: 0;
	background: var(--mlp-white);
}

.mlp-summary__spec-row {
	display: grid;
	grid-template-columns: 90px 1fr;
	align-items: start;
	gap: 0 12px;
}

.mlp-summary__spec-row + .mlp-summary__spec-row {
	margin-top: 16px;
}

.mlp-summary__spec dt {
	padding-top: 2px;
}

.mlp-summary__spec-text {
	font-size: 14px;
	line-height: 1.5;
}

.mlp-summary__spec-note {
	margin-left: .4em;
	font-size: 10px;
	letter-spacing: 0;
}

.mlp-summary__point {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0 14px;
	/* 下の余白はセクション側で管理する（ここに持たせると二重に空く） */
	padding: 11px 0 0;
}

.mlp-summary__point-label {
	color: var(--mlp-accent);
	font-size: 18px;
	letter-spacing: .04em;
	line-height: 1.4;
}

.mlp-summary__point-text {
	font-size: 14px;
	line-height: 1.6;
}

/* =============================================================
 * Movie（動画）
 * ============================================================= */
.mlp-movie {
	padding-block: var(--mlp-space-media);
	background: var(--mlp-dark);
}

/* デザイン実測：350×176（左右20px）／R10／内側4pxの白40%枠 */
.mlp-movie__frame {
	position: relative;
	max-width: 350px;
	margin-inline: auto;
	aspect-ratio: 350 / 176;
	overflow: hidden;
	border-radius: 10px;
	background: #000;
}

.mlp-movie__frame::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 10px;
	box-shadow: inset 0 0 0 4px rgba(255, 255, 255, .4);
	pointer-events: none;
}

.mlp-movie__thumb,
.mlp-movie__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
}

/* デザイン実測：赤丸36×36＋一回り大きい赤リング（線1px・少しずらして重なる） */
.mlp-movie__play {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 36px;
	height: 36px;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: var(--mlp-accent);
	display: grid;
	place-items: center;
	transition: transform .25s;
}

.mlp-movie__play::before {
	content: "";
	position: absolute;
	inset: -5px;
	border: 1px solid var(--mlp-accent);
	border-radius: 50%;
	pointer-events: none;
}

.mlp-movie__play:hover {
	transform: translate(-50%, -50%) scale(1.08);
}

.mlp-movie__play-icon {
	display: contents;
}

.mlp-movie__play-icon::before {
	content: "";
	width: 0;
	height: 0;
	margin-left: 3px;
	border-style: solid;
	border-width: 6px 0 6px 10px;
	border-color: transparent transparent transparent var(--mlp-white);
}

.mlp-movie__caption {
	margin-top: 12px;
	color: rgba(255, 255, 255, .8);
	font-size: 10px;
	letter-spacing: .06em;
}

/* =============================================================
 * Concept
 * ============================================================= */

.mlp-concept__catch {
	font-size: 18px;
	letter-spacing: .04em;
	line-height: 1.5;
}

.mlp-concept__text {
	font-size: 14px;
	line-height: 2;
}

/* =============================================================
 * 悩み・共感 → 解決
 * ============================================================= */
.mlp-worries {
	background: var(--mlp-bg-gray);
}

/* 白カード。下辺中央に吹き出しの尻尾が付き、解決ブロックへつながる */
.mlp-worries__card {
	position: relative;
	padding: 24px 16px 28px;
	border-radius: 20px;
	background: var(--mlp-white);
}

/* 尻尾はカードの横幅いっぱいの浅いV（デザイン Polygon 2：318×18） */
.mlp-worries__card::after {
	content: "";
	position: absolute;
	top: 99%;
	left: 0;
	right: 0;
	height: 18px;
	background: var(--mlp-white);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.mlp-worries__head {
	display: flex;
	align-items: center;
	gap: 16px;
}

.mlp-worries__avatar {
	flex: none;
	width: 62px;
	height: 62px;
	overflow: hidden;
	border-radius: 50%;
	border: 3px solid var(--mlp-white);
	box-shadow: 0 1px 6px rgba(0, 0, 0, .15);
	background: var(--mlp-bg);
}

.mlp-worries__avatar-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mlp-worries__profile {
	font-size: 14px;
	line-height: 1.5;
}

.mlp-worries__balloon {
	margin-top: 18px;
	padding: 14px 12px;
	border-radius: var(--mlp-radius);
	background: var(--mlp-bg);
}

.mlp-worries__list li {
	font-size: 14px;
	letter-spacing: -.02em;
	line-height: 2;
}

.mlp-worries__solution {
	position: relative;
	margin-top: 30px;
	padding: 18px 12px;
	border-radius: var(--mlp-radius);
	background: var(--mlp-accent);
	color: var(--mlp-white);
	-webkit-backdrop-filter: blur(5px);
	backdrop-filter: blur(5px);
}

/* 電球アイコン（白丸・赤縁）。吹き出しの尻尾の先端に重なる */
.mlp-worries__bulb {
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	display: grid;
	place-items: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	border: 1px solid var(--mlp-accent);
	background: var(--mlp-white);
	color: var(--mlp-accent);
}

.mlp-worries__bulb svg {
	width: 11px;
	height: 14px;
}

.mlp-worries__solution-text {
	font-size: 14px;
	line-height: 1.8;
}

/* =============================================================
 * カード（Features / Point 共通）
 * 1カード＝1つの特徴。区切りや余白は入れず、画像のすぐ下にテキストを置く。
 * ============================================================= */
.mlp-card__media {
	position: relative;
}

/* タグは各スライドの中にあるので、グループごと一緒にスライドする */
.mlp-card__tag {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	height: 32px;
	padding-inline: 16px;
	border-radius: 0 0 var(--mlp-radius) 0;
	background: var(--mlp-dark);
	color: var(--mlp-white);
	font-size: 14px;
	letter-spacing: .04em;
	line-height: 1;
	-webkit-backdrop-filter: blur(5px);
	backdrop-filter: blur(5px);
}

.mlp-card__body {
	padding: 16px var(--mlp-gutter) 0;
}

.mlp-card__text {
	font-size: 14px;
	line-height: 1.7;
}

/* スライダー */
.mlp-slider {
	position: relative;
}

.mlp-slider__viewport {
	overflow: hidden;
}

.mlp-slider__track {
	display: flex;
	align-items: stretch;
	transition: transform .45s cubic-bezier(.22, .61, .36, 1);
}

/* 1スライド＝タグ・画像・説明文のグループ。
 * 文章の長さが違っても高さが揃うよう、いちばん高いスライドに合わせて伸びる */
.mlp-slider__slide {
	position: relative;
	flex: 0 0 100%;
	min-width: 0;
}

/* 矢印・カウンターはスライダー本体（カード全体）の上下中央に置く */
.mlp-slider__controls {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.mlp-slider__controls > * {
	pointer-events: auto;
}

.mlp-slider__img {
	width: 100%;
	aspect-ratio: 390 / 520;
	object-fit: cover;
}

.mlp-slider__arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 26px;
	height: 26px;
	transform: translateY(-50%);
	color: rgba(255, 255, 255, .8);
	filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .35));
	transition: color .2s, transform .2s;
}

.mlp-slider__arrow:hover {
	color: #fff;
}

.mlp-slider__arrow--prev { left: 10px; }
.mlp-slider__arrow--next { right: 10px; }

.mlp-slider__arrow svg { display: block; }

/* 矢印はカード全体の中央だが、カウンターは画像の内側に置く
 * （--mlp-media-bottom = スライダー下端から画像下端までの距離。JSが実測して書き込む） */
.mlp-slider__counter {
	position: absolute;
	right: 20px;
	bottom: calc(var(--mlp-media-bottom, 0px) + 20px);
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .15em;
	min-width: 56px;
	height: 26px;
	white-space: nowrap;
	padding-inline: 10px;
	border: 1px solid var(--mlp-dark);
	border-radius: 20px;
	background: rgba(255, 255, 255, .7);
	color: var(--mlp-text);
	font-size: 10px;
	letter-spacing: .04em;
	line-height: 1;
	-webkit-backdrop-filter: blur(5px);
	backdrop-filter: blur(5px);
}

/* SWIPEヒントは廃止（指示: 全スライド共通で不要。矢印とカウンターは残す）。
 * マークアップごと削除したのでスタイルも持たない。 */

/* =============================================================
 * Features
 * ============================================================= */

.mlp-features__list,
.mlp-works__list {
	display: grid;
	gap: 32px;
}

/* =============================================================
 * Floor plan
 * ============================================================= */
.mlp-floor {
	background: var(--mlp-bg);
}

.mlp-floor__note {
	margin-top: -8px;
	margin-bottom: 20px;
	font-size: 10px;
	letter-spacing: .06em;
}

.mlp-floor__body {
	padding-block: 24px;
	background: var(--mlp-white);
}

/* 幅を親（スライド）側で確定させる。
 * リンクを inline-block にすると幅の解決が循環して高さが破綻するため block で固定する。 */
.mlp-slider--floor .mlp-slider__slide {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-inline: 45px;
	text-align: center;
}

.mlp-floor__zoom {
	display: block;
	width: 274px;
	max-width: 100%;
	cursor: zoom-in;
}

.mlp-slider--floor .mlp-slider__img,
.mlp-slider--floor .mlp-floor__img {
	width: 100%;
	height: auto;
	aspect-ratio: auto;
	object-fit: contain;
}

.mlp-floor__caption {
	margin-top: 8px;
	font-size: 10px;
	letter-spacing: .06em;
}

.mlp-slider--floor .mlp-slider__arrow {
	color: rgba(26, 26, 26, .35);
	filter: none;
}

.mlp-slider--floor .mlp-slider__arrow:hover {
	color: rgba(26, 26, 26, .7);
}

.mlp-slider--floor .mlp-slider__counter {
	bottom: var(--mlp-media-bottom, 0px);
}

/* =============================================================
 * Point
 * ============================================================= */

.mlp-point__list {
	display: grid;
	gap: 24px;
}

.mlp-card--point {
	position: relative;
	padding: 0 0 24px;
	border: 1px solid #E3E3E3;
	border-radius: var(--mlp-radius);
	background: var(--mlp-white);
}

/* タグはカードの左上角に置き、画像はその下に10px内側で入る */
.mlp-card--point .mlp-card__tag {
	position: static;
	border-radius: var(--mlp-radius) 0 var(--mlp-radius) 0;
}

.mlp-card--point .mlp-card__media {
	margin: 14px 10px 0;
}

.mlp-card--point .mlp-slider__img {
	aspect-ratio: 330 / 150;
}

.mlp-card--point .mlp-card__body {
	padding: 14px 10px 0;
}

/* 操作系はタグの下（画像の位置）に合わせる */
.mlp-card--point .mlp-slider__controls {
	left: 10px;
	width: calc(100% - 20px);
}

/* 矢印はカードの外側（画像の左右）に半分はみ出す */
.mlp-card--point .mlp-slider__arrow {
	color: var(--mlp-accent);
	filter: none;
}

.mlp-card--point .mlp-slider__arrow--prev { left: -20px; }
.mlp-card--point .mlp-slider__arrow--next { right: -20px; }

.mlp-card--point .mlp-slider__counter {
	right: 10px;
	bottom: calc(var(--mlp-media-bottom, 0px) + 10px);
}

.mlp-card--point .mlp-card__body {
	padding: 14px 10px 0;
}

/* =============================================================
 * Our Strengths
 * ============================================================= */

.mlp-strengths__text {
	font-size: 14px;
	line-height: 2;
}

/* =============================================================
 * Information
 * ============================================================= */

.mlp-info__image {
	margin-bottom: 14px;
	aspect-ratio: 350 / 119;
	overflow: hidden;
}

.mlp-info__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mlp-info__steps {
	counter-reset: mlp-step;
}

/* デザインどおり、折り返した行もぶら下げず左端に揃える */
.mlp-info__steps li {
	counter-increment: mlp-step;
	font-size: 14px;
	line-height: 2;
}

.mlp-info__steps li::before {
	content: counter(mlp-step) ".";
	margin-right: .2em;
}

/* =============================================================
 * Entry（予約フォーム）
 * ============================================================= */
.mlp-entry {
	background: var(--mlp-bg);
}

.mlp-entry__tel {
	margin-bottom: 16px;
}

.mlp-entry__tel-img {
	width: 100%;
	border-radius: var(--mlp-radius);
}

.mlp-entry__tel-link {
	display: block;
	transition: opacity .2s;
}

.mlp-entry__tel-link:hover {
	opacity: .85;
}

.mlp-entry__note {
	margin-bottom: 16px;
	font-size: 10px;
	letter-spacing: .04em;
	line-height: 1.8;
}

/* CF7フォームの見た目をデザインに合わせる（このLP内だけ） */
.mlp-entry__form .form-list > li + li {
	margin-top: 20px;
}

.mlp-entry__form .item-name {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
	font-size: 14px;
	line-height: 1.5;
}

.mlp-entry__form .item-req,
.mlp-entry__form .item-unreq {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	order: 2;
	min-width: 56px;
	height: 24px;
	border-radius: 999px;
	color: var(--mlp-white);
	font-size: 10px;
	letter-spacing: .06em;
	line-height: 1;
}

.mlp-entry__form .item-req { background: var(--mlp-accent); }
.mlp-entry__form .item-unreq { background: #999; }

.mlp-entry__form input[type="text"],
.mlp-entry__form input[type="email"],
.mlp-entry__form input[type="tel"],
.mlp-entry__form input[type="number"],
.mlp-entry__form select,
.mlp-entry__form textarea {
	width: 100%;
	min-height: 41px;
	padding: 8px 14px;
	border: 0;
	border-radius: 4px;
	background: var(--mlp-white);
	color: var(--mlp-text);
	font-family: inherit;
	font-size: 16px;
	line-height: 1.5;
	-webkit-appearance: none;
	appearance: none;
}

.mlp-entry__form input::placeholder,
.mlp-entry__form textarea::placeholder {
	color: #999;
	font-family: var(--mlp-font);
}

/* 参加人数（大人／子供）は「ラベル＋入力欄＋単位」を横並びにする */
.mlp-entry__form .mlp-form__people p {
	display: flex;
	align-items: center;
	gap: 10px;
}

.mlp-entry__form .mlp-form__people p + p {
	margin-top: 12px;
}

.mlp-entry__form .mlp-form__people input {
	width: 131px;
}

.mlp-entry__form .mlp-form__people .wpcf7-form-control-wrap {
	flex: none;
}

.mlp-form__people-label {
	width: 3em;
	font-size: 14px;
}

.mlp-form__people-unit {
	font-size: 14px;
}

.mlp-entry__form .mlp-form__privacy {
	margin-top: 24px;
	font-size: 12px;
	text-align: center;
}

.mlp-entry__form .mlp-form__privacy input[type="checkbox"] {
	width: 14px;
	height: 14px;
	min-height: 0;
	margin-right: 8px;
	accent-color: var(--mlp-accent);
}

.mlp-entry__form select {
	background-image: linear-gradient(45deg, transparent 50%, var(--mlp-text) 50%), linear-gradient(135deg, var(--mlp-text) 50%, transparent 50%);
	background-position: calc(100% - 20px) calc(50% + 2px), calc(100% - 14px) calc(50% + 2px);
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
}

.mlp-entry__form textarea {
	min-height: 180px;
	resize: vertical;
}

.mlp-entry__form .item-notice {
	margin-top: 8px;
	font-size: 10px;
	line-height: 1.7;
}

.mlp-entry__form input[type="submit"],
.mlp-entry__form .wpcf7-submit {
	display: block;
	width: 170px;
	min-height: 48px;
	margin: 24px auto 0;
	border: 2px solid rgba(255, 255, 255, .8);
	border-radius: var(--mlp-radius);
	background: var(--mlp-accent);
	color: var(--mlp-white);
	font-family: inherit;
	font-size: 14px;
	letter-spacing: .06em;
	cursor: pointer;
	transition: opacity .2s;
}

.mlp-entry__form input[type="submit"]:hover {
	opacity: .85;
}

.mlp-entry__empty {
	padding: 32px 0;
	font-size: 14px;
	text-align: center;
}

/* =============================================================
 * FAQ
 * ============================================================= */

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

.mlp-faq__q {
	display: grid;
	grid-template-columns: 28px 1fr 16px;
	align-items: start;
	gap: 0 4px;
	padding-block: 12px;
	cursor: pointer;
	list-style: none;
}

.mlp-faq__q::-webkit-details-marker {
	display: none;
}

.mlp-faq__mark {
	font-size: 18px;
	line-height: 1.3;
}

.mlp-faq__mark--a {
	color: var(--mlp-accent);
}

.mlp-faq__q-text {
	font-size: 14px;
	line-height: 1.7;
}

.mlp-faq__chevron {
	display: grid;
	place-items: center;
	padding-top: 8px;
	transition: transform .25s;
}

.mlp-faq__item[open] .mlp-faq__chevron {
	transform: rotate(180deg);
}

.mlp-faq__a {
	display: grid;
	grid-template-columns: 28px 1fr;
	gap: 0 4px;
	padding-bottom: 16px;
}

.mlp-faq__a-text {
	font-size: 14px;
	line-height: 1.7;
}

/* =============================================================
 * フッター
 * ============================================================= */
.mlp-footer {
	padding-block: 30px 20px;
	background: var(--mlp-dark);
	color: var(--mlp-white);
	text-align: center;
}

.mlp-footer__logo {
	width: 143px;
	margin-inline: auto;
}

.mlp-footer__sns {
	display: flex;
	justify-content: center;
	gap: 16px;
	margin-top: 20px;
	line-height: 0;
}

.mlp-footer__sns a {
	display: block;
	transition: opacity .2s, transform .2s;
}

/* アイコンはデザイン通り円形に切り抜く */
.mlp-footer__sns img {
	display: block;
	width: 24px;
	height: 24px;
	border-radius: 50%;
}

.mlp-footer__sns a:hover {
	opacity: .8;
	transform: translateY(-2px);
}

.mlp-footer__copy {
	margin-top: 24px;
	font-size: 10px;
	letter-spacing: .04em;
}

/* =============================================================
 * 間取り図の拡大表示
 * ============================================================= */
.mlp-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: grid;
	place-items: center;
	padding: 24px;
	background: rgba(0, 0, 0, .85);
}

.mlp-lightbox[hidden] {
	display: none;
}

.mlp-lightbox__img {
	max-width: 100%;
	max-height: 90vh;
	object-fit: contain;
}

/* 260908 変更：完成見学会LPと同じ見た目（円＋中央の×）に揃える */
.mlp-lightbox__close {
	position: absolute;
	top: 12px;
	right: 16px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .5);
	border-radius: 50%;
	background: rgba(26, 26, 26, .55);
	color: #fff;
	font-size: 0;
	line-height: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

/* 260908 変更：&times; の字形は上寄りで円の中心に来ないため、
 * テキストは隠して×を線で描く（円の中心にぴったり合う） */
.mlp-lightbox__close::before,
.mlp-lightbox__close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 17px;
	height: 1.5px;
	border-radius: 1px;
	background: currentColor;
}

.mlp-lightbox__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.mlp-lightbox__close::after  { transform: translate(-50%, -50%) rotate(-45deg); }

@media (hover: hover) {
	.mlp-lightbox__close { transition: background-color .2s, border-color .2s; }
	.mlp-lightbox__close:hover { background: rgba(26, 26, 26, .8); border-color: rgba(255, 255, 255, .8); }
}


/* =============================================================
 * PCレイアウト
 * FVを画面いっぱいに敷いたあと、
 * 「固定サイドバー（ロゴ・キャッチ・ナビ・CTA）＋本文カラム」に切り替わる。
 * 背景にはFV画像を薄く敷いたままにする（PCアニメーション3・4）。
 * ============================================================= */
@media (min-width: 1024px) {

	/* 上下14pxのレターボックス帯（アニメ1〜4を通して常時） */
	.mlp-body::before,
	.mlp-body::after {
		content: "";
		position: fixed;
		left: 0;
		width: 100%;
		height: 14px;
		background: #eaeaea;
		z-index: 80;
		pointer-events: none;
	}

	.mlp-body::before { top: 0; }
	.mlp-body::after { bottom: 0; }

	/* ===== 演出ステージ =====
	 * アニメ1: 全画面のシャープなFV（コピー・SCROLL・流れる英字）
	 * アニメ2: .is-whitened で白ベール（.72）がかかり、コピーが消える
	 * 白化後はそのままページの固定背景として残る（大きな英字は薄く見え続ける） */
	.mlp-stage {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 0;
		color: var(--mlp-white);
	}

	.mlp-stage__media,
	.mlp-stage__img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.mlp-stage__copy {
		position: absolute;
		inset: 0;
		z-index: 1;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		/* デザイン実測（1440×900基準）: バッジ左84px・上208px */
		padding: 208px 84px 160px;
		transition: opacity 1.4s ease;
	}

	.mlp-stage[data-align="center"] .mlp-stage__copy { align-items: center; text-align: center; }
	.mlp-stage[data-align="right"] .mlp-stage__copy { align-items: flex-end; text-align: right; }
	.mlp-stage[data-valign="middle"] .mlp-stage__copy { justify-content: center; }
	.mlp-stage[data-valign="bottom"] .mlp-stage__copy { justify-content: flex-end; }

	/* 文字サイズはデザイン実測（キャッチ約46px・タイトル約82px） */
	.mlp-stage__badge {
		padding: 8px 28px;
		border: 1px solid var(--mlp-white);
		font-size: 16px;
		letter-spacing: .15em;
		line-height: 1.5;
		text-shadow: 2px 2px 4px rgba(0, 0, 0, .25);
	}

	.mlp-stage__catch {
		margin-top: 16px;
		font-size: 46px;
		letter-spacing: .05em;
		line-height: 1.8;
		text-shadow: 2px 2px 4px rgba(0, 0, 0, .25);
	}

	.mlp-stage__title {
		margin-top: 10px;
		font-size: 82px;
		font-weight: 700;
		letter-spacing: .05em;
		line-height: 1.4;
		text-shadow: 3px 3px 7px rgba(0, 0, 0, .25);
	}

	.mlp-stage__scroll {
		position: absolute;
		right: 40px;
		top: 50%;
		z-index: 1;
		transform: translateY(-50%);
		writing-mode: vertical-rl;
		font-size: 12px;
		letter-spacing: .3em;
		transition: opacity 1.4s ease;
	}

	.mlp-stage__scroll span {
		display: block;
		padding-bottom: 90px;
	}

	.mlp-stage__scroll::after {
		content: "";
		position: absolute;
		left: 50%;
		bottom: 0;
		width: 1px;
		height: 80px;
		background: rgba(255, 255, 255, .8);
	}

	/* 下部の大文字は下帯にベタ付きさせる（文字の下端＝帯の上端。-4pxは実測値） */
	.mlp-stage__marquee {
		position: absolute;
		left: 0;
		bottom: -4px;
		z-index: 1;
		width: 100%;
		overflow: hidden;
		pointer-events: none;
		line-height: 1;
	}

	.mlp-stage__marquee .mlp-fv__marquee-track span {
		/* 帯（.mlp-body::after）と同じ #eaeaea にして地続きに見せる */
		color: #eaeaea;
		font-size: 92px;
		line-height: 1;
	}

	/* ベール（アニメ2）。Figmaの塗り #EAEAEA 40% に合わせる。
	 * コピーとSCROLLはベールの下でさらに0まで消す */
	.mlp-stage__veil {
		position: absolute;
		inset: 0;
		z-index: 2;
		background: #eaeaea;
		opacity: 0;
		transition: opacity 1.9s ease;
	}

	/* アニメ2は一度濃くかぶせ、アニメ3以降はデザインどおり40%で落ち着かせる */
	.mlp-stage.is-whitened .mlp-stage__veil { opacity: .75; }

	.mlp-stage.is-settled .mlp-stage__veil { opacity: .4; }

	.mlp-stage.is-whitened .mlp-stage__copy,
	.mlp-stage.is-whitened .mlp-stage__scroll { opacity: 0; }

	/* PC左上の固定ロゴ */
	.mlp-pclogo {
		display: block;
		position: fixed;
		top: 64px;
		left: 80px;
		z-index: 70;
		width: 180px;
	}

	/* ===== 本文カラム ===== */
	.mlp-shell {
		position: relative;
		z-index: 1;
		transition: opacity 1.5s ease, transform 1.5s ease;
	}

	/* イントロ中（アニメ1〜2）は本文を隠しておき、アニメ3で出す */
	.mlp.is-intro .mlp-shell {
		opacity: 0;
		transform: translateY(24px);
		pointer-events: none;
	}

	/* デザイン実測: 左80pxのレールにロゴと左端を揃える。
	 * 背景写真（薄いベール）に載るため文字は白。 */
	.mlp-side {
		position: fixed;
		left: 80px;
		top: 0;
		z-index: 5;
		height: 100svh;
		width: min(340px, calc(50vw - 90px));
		display: flex;
		flex-direction: column;
		justify-content: center;
		color: var(--mlp-white);
		text-shadow: 1px 1px 3px rgba(0, 0, 0, .3);
		opacity: 0;
		visibility: hidden;
		transform: translateY(16px);
		transition: opacity 1.3s ease, transform 1.3s ease, visibility 1.3s;
	}

	.mlp-side.is-visible {
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.mlp-side[aria-hidden="true"] {
		/* JSで表示状態になったら aria-hidden を外す */
	}

	/* ロゴは左上固定の .mlp-pclogo と重複するためサイドバー内では出さない */
	.mlp-side__logo {
		display: none;
	}

	.mlp-side__catch {
		margin-bottom: 32px;
		font-size: 20px;
		letter-spacing: .04em;
		line-height: 1.9;
	}

	.mlp-side__catch .is-s {
		font-size: .8em;
	}

	/* ===== ナビの進度ライン =====
	 * デザイン通り、縦ラインがスクロールの進み具合に応じて上から赤く伸びる。
	 * ラインの位置・赤い部分の高さはJS（initScrollSpy）が制御する。 */
	.mlp-side__nav {
		position: relative;
	}

	/* Figma実測: ドットのレールは左端から6px・英字は18px、ライン1px白・ドット4px白 */
	.mlp-side__nav ul {
		display: grid;
		gap: 2px;
		padding-left: 18px;
	}

	.mlp-side__nav-track {
		position: absolute;
		left: 5px;
		top: 0;
		width: 1px;
		background: rgba(255, 255, 255, .6);
	}

	.mlp-side__nav-fill {
		position: absolute;
		left: -0.5px;
		top: 0;
		width: 2px;
		height: 0;
		background: var(--mlp-accent);
	}

	.mlp-side__nav-link {
		position: relative;
		display: flex;
		align-items: baseline;
		gap: 12px;
		padding: 4px 0;
	}

	/* ライン上の点。通過済みはアクセント色になる */
	.mlp-side__nav-link::before {
		content: "";
		position: absolute;
		left: -14.5px;
		top: 50%;
		width: 4px;
		height: 4px;
		transform: translateY(-50%);
		border-radius: 50%;
		background: rgba(255, 255, 255, .9);
		transition: background .3s;
	}

	.mlp-side__nav-link.is-passed::before {
		background: var(--mlp-accent);
	}

	.mlp-side__nav-en {
		font-size: 16px;
		letter-spacing: .08em;
		transition: color .3s;
	}

	.mlp-side__nav-ja {
		font-size: 10px;
		letter-spacing: .08em;
	}

	/* 現在地は英字だけアクセント色（和文は読み取りやすさを優先してそのまま） */
	.mlp-side__nav-link.is-current .mlp-side__nav-en,
	.mlp-side__nav-link:hover .mlp-side__nav-en {
		color: var(--mlp-accent);
	}

	.mlp-side .mlp-cta {
		margin-top: 40px;
		align-self: flex-start;
	}

	/* デザイン実測: カラム左端は1440px時に825px（中央+105px） */
	.mlp-main {
		width: var(--mlp-col);
		margin-left: calc(50% + 105px);
		box-shadow: 0 0 40px rgba(0, 0, 0, .12);
	}

	/* PCではSPの追従CTAは出さない（サイドバーに常時あるため） */
	.mlp-cta--sp {
		display: none;
	}

	/* ===== カラム内のFVセクション =====
	 * PCではカラム幅（390px）のFVとして本文の先頭に入る（デザインのアニメ4の状態）。
	 * 文字サイズはSPと同じスケールをそのまま使う。 */
	/* 260908：高さは .mlp-fv の aspect-ratio（9:16）に統一したので上書きしない */

	/* ロゴは左上固定の .mlp-pclogo に任せる */
	.mlp-main .mlp-fv__logo {
		display: none;
	}

	.mlp-main .mlp-fv__inner {
		padding: 40px var(--mlp-gutter) 70px;
	}

	/* PCでも本文カラムはSPと同じ幅なので、
	 * セクションの内部数値はそのまま流用できる。 */
}

/* 中間サイズ：サイドバーを出すには狭いので1カラムのまま中央寄せ */
@media (min-width: 768px) and (max-width: 1023.98px) {

	.mlp-shell {
		position: relative;
		z-index: 1;
		max-width: 480px;
		margin-inline: auto;
		box-shadow: 0 0 40px rgba(0, 0, 0, .2);
	}

	/* カラムの外にPCと同じ「ぼかしたFV写真＋白ベール40%」を静的に敷く（演出なし） */
	.mlp-stage {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 0;
	}

	.mlp-stage__media,
	.mlp-stage__img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.mlp-stage__img { transform: scale(1.04); filter: blur(12px); }

	.mlp-stage__veil {
		position: absolute;
		inset: 0;
		z-index: 2;
		background: #eaeaea;
		opacity: .4;
	}

	.mlp-stage__copy,
	.mlp-stage__scroll,
	.mlp-stage__marquee { display: none; }

	.mlp-side {
		display: none;
	}

	.mlp-fv__catch { font-size: 28px; }
	.mlp-fv__title { font-size: 46px; }
	.mlp-fv__marquee-track span { font-size: 72px; }
}

@media (max-width: 1023.98px) {
	.mlp-side {
		display: none;
	}
}

/* 動きを減らす設定を尊重する */
@media (prefers-reduced-motion: reduce) {

	.mlp-fv__marquee-track,
	.mlp-slider__hint {
		animation: none;
	}

	.mlp-slider__track,
	.mlp-side,
	.mlp-fv__copy,
	.mlp-cta--sp,
	.mlp-shell,
	.mlp-stage__veil,
	.mlp-stage__copy,
	.mlp-stage__scroll {
		transition-duration: .01ms;
	}
}

/* =============================================================
 * SP専用フォーム遷移ボタン（右下・控えめ）
 * FVを過ぎたら表示し、フォームが画面に入っている間は隠す（JS制御）
 * ============================================================= */
.mlp-form-fab {
	position: fixed;
	text-decoration: none;
	right: 14px;
	bottom: 14px;
	z-index: 59;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .45);
	background: rgba(26, 26, 26, .55);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	color: #fff;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .3s ease, transform .3s ease, visibility .3s;
}

.mlp-form-fab.is-visible { opacity: 1; visibility: visible; transform: none; }

.mlp-form-fab__label {
	font-family: "Cardo", serif;
	font-size: 13px;
	letter-spacing: .08em;
	line-height: 1;
}

.mlp-form-fab svg { opacity: .85; }

/* PCでは出さない（サイドバーに来場予約が常時あるため）。
 * 2026-09-07 変更：タブレットでも出す（代理店指示） */
@media (min-width: 1024px) {
	.mlp-form-fab { display: none; }
}

/* SP・タブレットは追従の来場予約ピルを廃止し、フォーム遷移は右下の丸ボタンに一本化
 * （SP: 代理店指示 ／ タブレット: 2026-09-07 代理店指示で追加） */
@media (max-width: 1023.98px) {
	.mlp-cta--sp { display: none; }
}

/* =============================================================
 * スクロール連動のふわっと表示（JSが .js-inview を付与・.is-inview で解除）
 * ============================================================= */
.js-inview {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .8s ease, transform .8s ease;
}

.js-inview.is-inview { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	.js-inview { opacity: 1; transform: none; transition: none; }
}

/* =============================================================
 * 再生ボタン：赤いリングが波紋のように広がる
 * ============================================================= */
.mlp-movie__play::after {
	content: "";
	position: absolute;
	inset: -2px;
	border: 1px solid var(--mlp-accent);
	border-radius: 50%;
	animation: mlp-play-pulse 2.2s ease-out infinite;
	pointer-events: none;
}

@keyframes mlp-play-pulse {
	0%       { transform: scale(1); opacity: .9; }
	70%, 100% { transform: scale(1.9); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.mlp-movie__play::after { animation: none; opacity: 0; }
}

/* =============================================================
 * コンセプト：白パネルをやめ、背景写真の上に半透明の面を敷いて
 * その上に直接テキストを置く（代理店指示 2026-09-04）
 * ============================================================= */
.mlp-concept .mlp-panel {
	position: relative;
	border-radius: 0;
	background: rgba(0, 0, 0, .38);
	color: #fff;
	box-shadow: none;
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
}

.mlp-concept .mlp-concept__catch,
.mlp-concept .mlp-concept__text { color: #fff; }

/* =============================================================
 * reCAPTCHA（260908 追加・完成見学会LPと同じ指定に合わせる）
 * ============================================================= */
/* reCAPTCHAのバッジは画面外にはみ出して固定CTAに重なるので隠す
 * ※指示によりフォーム下の規約表記は非表示（Googleの表記要件は別途対応）
 * display:none だとトークン取得に失敗する環境があるため visibility を使う */
.mlp .grecaptcha-badge,
body:has(.mlp) .grecaptcha-badge { visibility: hidden; }
