/* =============================================================
   Veloura — Timeless Luxury  |  Top Page Stylesheet
   高級感重視：白・グレー・墨黒 ＋ シャンパンゴールドの微細なアクセント
   ============================================================= */

:root {
	--ink:        #16171B;   /* 黒（クール寄り・ダークセクション用） */
	--ink-soft:   #34363C;   /* 本文（クールグレー） */
	--stone:      #6B6E75;   /* 補助テキスト */
	--stone-soft: #9B9EA5;   /* キャプション */
	--line:       #DEE0E4;   /* ヘアライン（クール） */
	--paper:      #FFFFFF;   /* Snow White（真っ白） */
	--paper-2:    #F1F2F4;   /* 淡いグレー1 */
	--paper-3:    #E7E9EC;   /* 淡いグレー2（一段深い） */
	--gold:       #B79A5F;   /* シャンパンゴールド（維持） */
	--gold-deep:  #9C7F45;
	--gold-pale:  #CBB784;

	--serif:  "Cormorant Garamond", "Times New Roman", serif;
	--roman:  "Marcellus", "Cormorant Garamond", serif;
	--jp:     "Shippori Mincho", "Yu Mincho", "游明朝", serif;

	--wrap:   1180px;
	--narrow: 720px;

	--ease:   cubic-bezier(.22, .61, .36, 1);
}

/* ---------- ベース ---------- */
.veloura-page {
	margin: 0;
	background: var(--paper);
	color: var(--ink-soft);
	font-family: var(--jp);
	font-weight: 400;
	line-height: 2.15;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}
.veloura-page *,
.veloura-page *::before,
.veloura-page *::after { box-sizing: border-box; }

/* 注入CSS対策（詳細度を確保して確実に打ち消す）
   ・全体に注入された `*{font-family}` を無効化して正常な継承へ戻す
   ・注入された h1〜h3{border:...} 等の装飾を無効化 */
.veloura-page * { font-family: inherit; }
.veloura-page h1, .veloura-page h2, .veloura-page h3 { border: 0; padding: 0; }

/* ベースの normalize は :where() で詳細度ゼロにする。
   これにより、コンポーネント側の単一クラス指定（.v-xxx＝0,0,1,0）が
   常にこのリセットに勝つ（＝各要素のスタイルが確実に適用される）。 */
:where(.veloura-page) h1, :where(.veloura-page) h2, :where(.veloura-page) h3,
:where(.veloura-page) p, :where(.veloura-page) figure, :where(.veloura-page) blockquote,
:where(.veloura-page) ul, :where(.veloura-page) ol { margin: 0; padding: 0; }
:where(.veloura-page) ul, :where(.veloura-page) ol { list-style: none; }
:where(.veloura-page) a { color: inherit; }
:where(.veloura-page) button { font: inherit; }
:where(.veloura-page) img { display: block; max-width: 100%; height: auto; }

.v-main { display: block; }

.v-wrap {
	width: 100%;
	max-width: var(--wrap);
	margin-inline: auto;
	padding-inline: clamp(1.4rem, 5vw, 3rem);
}
.v-wrap--narrow { max-width: var(--narrow); }

.v-nowrap { white-space: nowrap; }

.v-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--ink);
	color: var(--paper);
	padding: .8em 1.4em;
	z-index: 999;
}
.v-skip:focus { left: 1rem; top: 1rem; }

/* =============================================================
   HEADER / NAV
   ============================================================= */
.v-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 100;
	transition: background-color .5s var(--ease), box-shadow .5s var(--ease), color .5s var(--ease);
	color: #fff;
}
.v-header__inner {
	max-width: 1360px;
	margin-inline: auto;
	padding: clamp(1rem, 2.4vw, 1.7rem) clamp(1.4rem, 5vw, 3rem);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
}

.v-brand {
	display: inline-flex;
	align-items: center;
	line-height: 1;
	text-decoration: none;
	color: inherit;
}
.v-header .v-brand__logo {
	height: clamp(28px, 3vw, 38px);
	width: auto;
	display: block;
	transition: filter .5s var(--ease);
}
/* ヒーロー上（透明時）は黒ロゴを白抜きに、スクロール後は黒のまま */
.v-header[data-state="top"] .v-brand__logo {
	filter: brightness(0) invert(1) drop-shadow(0 1px 12px rgba(0,0,0,.45));
}

.v-nav__list {
	list-style: none;
	display: flex;
	gap: clamp(1.3rem, 2.6vw, 2.6rem);
	margin: 0;
	padding: 0;
}
.v-nav__link {
	font-family: var(--roman);
	font-size: .82rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-decoration: none;
	color: inherit;
	position: relative;
	padding-bottom: .35em;
	opacity: .92;
	transition: opacity .3s var(--ease);
}
.v-nav__link::after {
	content: "";
	position: absolute;
	left: 0; bottom: 0;
	width: 100%; height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .4s var(--ease);
	opacity: .8;
}
.v-nav__link:hover { opacity: 1; }
.v-nav__link:hover::after { transform: scaleX(1); }

/* 透明ヘッダー（ヒーロー上）は明るい画像でも視認できるよう薄い影を付与 */
.v-header[data-state="top"] { text-shadow: 0 1px 14px rgba(0,0,0,.45); }
.v-header[data-state="top"] .v-navtoggle span { box-shadow: 0 0 4px rgba(0,0,0,.7), 0 0 10px rgba(0,0,0,.4); }

/* スクロール後：白背景・墨黒文字 */
.v-header[data-state="solid"] {
	background: rgba(246, 244, 240, .92);
	-webkit-backdrop-filter: saturate(120%) blur(8px);
	backdrop-filter: saturate(120%) blur(8px);
	color: var(--ink);
	box-shadow: 0 1px 0 var(--line);
}

/* ハンバーガー（モバイル） */
.v-navtoggle {
	display: none;
	width: 40px; height: 40px;
	border: 0; background: transparent;
	cursor: pointer;
	position: relative;
	color: inherit;
}
.v-navtoggle span {
	position: absolute;
	left: 8px; right: 8px; height: 2px;
	background: currentColor;
	transition: transform .4s var(--ease), opacity .3s var(--ease);
}
.v-navtoggle span:nth-child(1) { top: 14px; }
.v-navtoggle span:nth-child(2) { bottom: 14px; }
/* 開いている間はハンバーガーを × に（CSSのみで動作） */
#v-nav-cb:checked ~ .v-header .v-navtoggle span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
#v-nav-cb:checked ~ .v-header .v-navtoggle span:nth-child(2) { transform: translateY(-5px) rotate(-45deg); }

/* 開閉用チェックボックスは視覚的に隠す（フォーカスは可能／JS不要で動作） */
.v-nav-cb { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* =============================================================
   P1-1  HERO
   ============================================================= */
.v-hero {
	position: relative;
	height: 100svh;
	min-height: 620px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: #fff;
	overflow: hidden;
}
.v-hero__stage { position: absolute; inset: 0; z-index: 0; }
.v-hero__slide {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0;
	transform: scale(1.06);
	transition: opacity 2.4s var(--ease);
	will-change: opacity, transform;
}
.v-hero__slide.is-active {
	opacity: 1;
	animation: v-kenburns 12s linear forwards;
}
@keyframes v-kenburns {
	from { transform: scale(1.06); }
	to   { transform: scale(1.14); }
}
.v-hero__scrim {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 62% 52% at 50% 50%, rgba(20,17,14,.5) 0%, rgba(20,17,14,.12) 55%, transparent 78%),
		linear-gradient(180deg, rgba(20,17,14,.4) 0%, rgba(20,17,14,.12) 30%, rgba(20,17,14,.18) 60%, rgba(20,17,14,.58) 100%);
}

.v-hero__content {
	position: relative;
	z-index: 2;
	padding-inline: 1.5rem;
	max-width: 60rem;
}
.v-hero__logo {
	margin: 0;
	line-height: 0;
}
.v-hero__logo img {
	width: clamp(230px, 32vw, 400px);
	height: auto;
	margin-inline: auto;
	/* 黒ロゴを白抜きに */
	filter: brightness(0) invert(1) drop-shadow(0 3px 34px rgba(0,0,0,.45));
}
.v-hero__lead {
	font-family: var(--jp);
	font-weight: 500;
	font-size: clamp(1.15rem, 2.9vw, 1.9rem);
	letter-spacing: .12em;
	margin: 2.2rem 0 0;
	text-shadow: 0 2px 30px rgba(0,0,0,.4);
}
.v-hero__sub {
	font-family: var(--jp);
	font-weight: 400;
	font-size: clamp(.86rem, 1.7vw, 1.05rem);
	letter-spacing: .18em;
	margin: 1rem 0 0;
	opacity: .95;
	text-shadow: 0 1px 22px rgba(0,0,0,.6);
}

.v-hero__scroll {
	position: absolute;
	left: 50%; bottom: 2.2rem;
	transform: translateX(-50%);
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .7rem;
}
.v-hero__scroll-line {
	width: 1px; height: 46px;
	background: linear-gradient(180deg, rgba(255,255,255,.7), rgba(255,255,255,0));
	animation: v-scrolldrop 2.4s var(--ease) infinite;
	transform-origin: top;
}
@keyframes v-scrolldrop {
	0%   { transform: scaleY(0); opacity: 0; }
	40%  { transform: scaleY(1); opacity: 1; }
	100% { transform: scaleY(1) translateY(10px); opacity: 0; }
}
.v-hero__scroll-label {
	font-family: var(--roman);
	font-size: .58rem;
	letter-spacing: .4em;
	text-transform: uppercase;
	opacity: .8;
}

/* =============================================================
   SECTION 共通
   ============================================================= */
.v-section {
	position: relative;
	padding-block: clamp(5.5rem, 12vw, 10rem);
}

/* アイキャッチ小見出し（英語エイブロウ） */
.v-eyebrow {
	font-family: var(--roman);
	font-size: .8rem;
	letter-spacing: .42em;
	text-transform: uppercase;
	color: var(--gold-deep);
	margin: 0 0 1.7rem;
}
.v-eyebrow--gold { color: var(--gold-pale); }

/* 見出し（和文明朝） */
.v-title {
	font-family: var(--jp);
	font-weight: 600;
	font-size: clamp(1.55rem, 3.5vw, 2.6rem);
	line-height: 1.62;
	letter-spacing: .06em;
	color: var(--ink);
	margin: 0;
}
/* 語中改行を避け1行で表示（狭い画面ではフォントを縮めて収める） */
.v-title--nowrap { white-space: nowrap; }
@media (max-width: 620px) {
	.v-title--nowrap { font-size: clamp(1.15rem, 5.4vw, 1.55rem); }
}

.v-title--left {
	text-align: left;
	font-size: clamp(1.4rem, 2.7vw, 2rem);
	line-height: 1.75;
	word-break: keep-all;      /* 和文の語中改行を避ける */
	overflow-wrap: break-word;
}

/* 装飾の細いゴールドの区切り（◇） */
.v-ornament {
	display: block;
	width: 100%;
	max-width: 220px;
	height: 1px;
	margin: 2.6rem auto;
	background: var(--line);
	position: relative;
}
.v-ornament::before {
	content: "";
	position: absolute;
	left: 50%; top: 50%;
	width: 6px; height: 6px;
	background: var(--gold);
	transform: translate(-50%, -50%) rotate(45deg);
}
.v-ornament--gold { background: rgba(203,183,132,.35); }
.v-ornament--gold::before { background: var(--gold-pale); }

/* 本文プロース */
.v-prose {
	font-family: var(--jp);
	font-weight: 400;
	font-size: clamp(1rem, 1.35vw, 1.12rem);
	line-height: 2.5;
	letter-spacing: .045em;
	color: var(--ink-soft);
	text-wrap: pretty;   /* 対応ブラウザで孤立行を軽減 */
}
.v-prose p { margin: 0 0 1.9em; }
.v-prose p:last-child { margin-bottom: 0; }
.v-prose--center { text-align: center; }
.v-prose__accent {
	font-weight: 600;
	color: var(--ink);
	font-size: 1.08em;
}
.v-prose em {
	font-style: normal;
	font-weight: 600;
	color: var(--ink);
	background: linear-gradient(transparent 68%, rgba(183,154,95,.22) 0);
}

/* =============================================================
   P1-2  MANIFESTO
   ============================================================= */
.v-manifesto { text-align: center; background: var(--paper); }
.v-manifesto .v-title { margin-inline: auto; }

/* =============================================================
   P1-3  COUTURE INTERIOR
   ============================================================= */
.v-couture { background: var(--paper-2); }
.v-couture__grid {
	display: grid;
	grid-template-columns: 1fr minmax(0, 440px);
	gap: clamp(2.5rem, 6vw, 6rem);
	align-items: start;
}
.v-couture__text { max-width: 40rem; }
.v-couture__text .v-title { margin-bottom: 2.4rem; }
.v-couture__figure {
	margin: 0;
	position: sticky;
	top: 8rem;
}
.v-couture__figure img {
	width: 100%;
	aspect-ratio: 1080 / 1456;
	object-fit: cover;
	box-shadow: 0 30px 70px -30px rgba(20,17,14,.4);
}
.v-couture__figure::after {
	content: "";
	position: absolute;
	inset: 14px;
	border: 1px solid rgba(255,255,255,.35);
	pointer-events: none;
}

/* =============================================================
   P1-4  TIMELESS LUXURY（淡いグレー背景）
   ============================================================= */
.v-timeless {
	background: var(--paper-3);
	color: var(--ink-soft);
	text-align: center;
}
.v-timeless::before,
.v-timeless::after {
	content: "";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: min(88%, var(--wrap));
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(156,127,69,.45), transparent);
}
.v-timeless::before { top: 0; }
.v-timeless::after  { bottom: 0; }
.v-prose__accent--gold {
	color: var(--gold-deep) !important;
	font-size: 1.18em;
	letter-spacing: .08em;
}
.v-timeless__sign {
	display: block;
	font-family: var(--serif);
	font-style: italic;
	color: var(--gold-deep);
	margin-top: .4em;
}

/* =============================================================
   P1-5  TRANSFORMATION
   ============================================================= */
.v-transform { background: var(--paper); text-align: center; }
.v-transform .v-title { margin-inline: auto; }

/* =============================================================
   P1-6  BEAUTIFUL CHANGES（お客様の声・額装フレーム）
   ============================================================= */
.v-changes { background: var(--paper-2); }
.v-changes__head {
	text-align: center;
	margin-bottom: clamp(3rem, 6vw, 5rem);
}
.v-changes__head .v-title { margin-inline: auto; }
.v-changes__grid {
	display: grid;
	grid-template-columns: 1.15fr .85fr;
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
}
.v-changes__col { display: grid; gap: clamp(1.2rem, 2.5vw, 1.8rem); }

/* リセット（.veloura-page blockquote/p = 詳細度0,0,1,1）に打ち消されないよう、
   親クラスを付けて詳細度を上げる（0,0,2,0）。 */
.v-changes .v-voice {
	margin: 0;
	padding: clamp(1rem, 1.6vw, 1.25rem);
	background: var(--paper);
	/* 左の縦ライン・枠線は撤去し、ゴールドの柔らかな影のみで浮遊感を出す */
	box-shadow:
		0 18px 40px -22px rgba(156, 127, 69, .55),
		0 3px 10px rgba(20, 17, 14, .05);
}
.v-changes .v-voice__lead {
	font-family: var(--jp);
	font-weight: 600;
	font-size: clamp(1.02rem, 1.6vw, 1.18rem);
	line-height: 1.85;
	letter-spacing: .04em;
	color: var(--ink);
	margin: 0 0 .9em;
}
.v-changes .v-voice__body {
	font-size: .93rem;
	line-height: 2.2;
	letter-spacing: .03em;
	color: var(--stone);
	margin: 0;
}
.v-changes__figure {
	margin: 0;
	position: sticky;
	top: 8rem;
}
.v-changes__figure img {
	width: 100%;
	aspect-ratio: 757 / 1024;
	object-fit: cover;
	box-shadow: 0 30px 70px -30px rgba(20,17,14,.4);
}

/* =============================================================
   P1-7  CLOSING
   ============================================================= */
.v-closing { background: var(--paper); text-align: center; }
.v-closing__sign { margin-top: 3.5rem; }
.v-closing__wish {
	font-family: var(--jp);
	font-weight: 500;
	font-size: clamp(1.05rem, 2vw, 1.4rem);
	line-height: 2.1;
	letter-spacing: .1em;
	color: var(--ink);
	margin: 0 0 1.4rem;
}
.v-closing__name {
	font-family: var(--serif);
	font-weight: 500;
	font-size: clamp(2rem, 5vw, 3.2rem);
	letter-spacing: .14em;
	color: var(--ink);
	margin: 0;
}

/* =============================================================
   FOOTER（シンプル版：ヘッダーと同じメニュー ＋ ブランド表記）
   ============================================================= */
.v-footer {
	background: var(--ink);
	color: #C6BEB1;
}
.v-footer .v-footer__bottom {
	text-align: center;
	padding-block: clamp(4rem, 8vw, 6rem);
}
.v-footer .v-footer__brand {
	display: inline-block;
	line-height: 0;
	margin-bottom: 2.6rem;
}
.v-footer .v-footer__logo {
	width: clamp(170px, 34vw, 220px);
	height: auto;
	filter: brightness(0) invert(1);
}

/* ---- メニュー（上段＝メイン／下段＝補助リンク） ---- */
.v-footer .v-footer__menu-list {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1rem clamp(1.4rem, 2.8vw, 2.6rem);
}
.v-footer .v-footer__menu-link {
	font-family: var(--roman);
	font-size: .8rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-decoration: none;
	color: #C6BEB1;
	position: relative;
	padding-bottom: .3em;
	transition: color .35s var(--ease);
}
.v-footer .v-footer__menu-link::after {
	content: "";
	position: absolute;
	left: 0; bottom: 0;
	width: 100%; height: 1px;
	background: var(--gold-pale);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .4s var(--ease);
}
.v-footer .v-footer__menu-link:hover { color: #F1EBDF; }
.v-footer .v-footer__menu-link:hover::after { transform: scaleX(1); }
.v-footer .v-footer__menu-link.is-placeholder { cursor: default; }
.v-footer .v-footer__menu-link.is-placeholder:hover::after { transform: scaleX(0); }

/* 補助リンク（下段）：上段（ヘッダーの7項目）と同じサイズ・色で並べる */
.v-footer .v-footer__submenu-list {
	list-style: none;
	margin: 0 auto 2.6rem;
	padding: 0 0 2.6rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1rem clamp(1.4rem, 2.8vw, 2.6rem);
	border-bottom: 1px solid rgba(255,255,255,.08);
}
.v-footer .v-footer__sublink {
	font-family: var(--roman);
	font-size: .8rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-decoration: none;
	color: #C6BEB1;
	position: relative;
	padding-bottom: .3em;
	transition: color .35s var(--ease);
}
.v-footer .v-footer__sublink::after {
	content: "";
	position: absolute;
	left: 0; bottom: 0;
	width: 100%; height: 1px;
	background: var(--gold-pale);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .4s var(--ease);
}
.v-footer .v-footer__sublink:hover { color: #F1EBDF; }
.v-footer .v-footer__sublink:hover::after { transform: scaleX(1); }
.v-footer .v-footer__sublink.is-placeholder { cursor: default; }
.v-footer .v-footer__sublink.is-placeholder:hover::after { transform: scaleX(0); }
.v-footer .v-footer__tagline {
	font-family: var(--roman);
	font-size: clamp(.8rem, 1.5vw, .95rem);
	letter-spacing: .22em;
	color: var(--gold-pale);
	margin: 0 0 3rem;
}
.v-footer .v-footer__company {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.1rem;
	margin-bottom: 1.8rem;
}
.v-footer .v-footer__grachic {
	height: clamp(42px, 9vw, 54px);
	width: auto;
	filter: brightness(0) invert(1);
	opacity: .8;
}
.v-footer .v-footer__meta {
	display: flex;
	flex-direction: column;
	gap: .3rem;
	text-align: left;
	font-size: .8rem;
	letter-spacing: .08em;
	color: var(--stone-soft);
}
.v-footer .v-footer__copy {
	display: block;
	font-family: var(--roman);
	font-size: .68rem;
	letter-spacing: .18em;
	color: #6d665b;
}

/* =============================================================
   REVEAL アニメーション（スクロール表示）
   ============================================================= */
/* JS有効時のみ隠す（JS未実行でも内容は必ず表示される） */
.v-js .v-reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 1.1s var(--ease), transform 1.1s var(--ease);
	will-change: opacity, transform;
}
.v-js .v-reveal.is-visible { opacity: 1; transform: none; }

/* ヒーローの時間差リビール（JSでdata-delay順に is-visible 付与） */
.v-hero__content .v-reveal { transition-duration: 1.4s; }

/* =============================================================
   レスポンシブ
   ============================================================= */
@media (max-width: 900px) {
	/* 1カラム化。minmax(0,1fr) で画像の最小幅に引っ張られて画面外へはみ出すのを防ぐ */
	.v-couture__grid { grid-template-columns: minmax(0, 1fr); }
	.v-couture__figure { position: static; width: 100%; max-width: 440px; margin-inline: auto; order: -1; }
	.v-couture__text .v-title,
	.v-title--left { text-align: center; }
	.v-couture__text { max-width: none; text-align: center; }

	.v-changes__grid { grid-template-columns: minmax(0, 1fr); }
	.v-changes__figure { position: static; width: 100%; max-width: 440px; margin-inline: auto; order: -1; }

	.v-footer .v-footer__cols { grid-template-columns: repeat(2, 1fr); gap: 2.6rem 2rem; }
}

@media (max-width: 480px) {
	.v-footer .v-footer__company { flex-direction: column; gap: .8rem; text-align: center; }
	.v-footer .v-footer__meta { text-align: center; }
}

@media (max-width: 720px) {
	.v-navtoggle { display: block; z-index: 120; }
	.v-nav {
		position: fixed;
		inset: 0;
		background: rgba(20,17,14,.97);
		-webkit-backdrop-filter: blur(6px);
		backdrop-filter: blur(6px);
		display: flex;
		align-items: center;
		justify-content: center;
		opacity: 0;
		visibility: hidden;
		transition: opacity .5s var(--ease), visibility .5s var(--ease);
	}
	#v-nav-cb:checked ~ .v-header .v-nav { opacity: 1; visibility: visible; }
	.v-nav__list { flex-direction: column; text-align: center; gap: 1.8rem; }
	.v-nav__link { color: #fff; font-size: 1rem; text-shadow: none; }
	.v-header[data-state="solid"] .v-navtoggle { color: var(--ink); }
	#v-nav-cb:checked ~ .v-header .v-navtoggle { color: #fff; }
	#v-nav-cb:checked ~ .v-header .v-navtoggle span { box-shadow: none; }

	/* ヒーロー上（透明時）は明るい画像でも視認できるよう、控えめな暗い下地を敷く */
	.v-header[data-state="top"] .v-navtoggle {
		background: rgba(20,17,14,.34);
		border-radius: 999px;
		-webkit-backdrop-filter: blur(3px);
		backdrop-filter: blur(3px);
	}
	.v-header[data-state="top"] .v-navtoggle span { box-shadow: none; }
	#v-nav-cb:checked ~ .v-header .v-navtoggle { background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* スマホ：ヒーロー文字の詰めすぎ・見切れを調整 */
@media (max-width: 480px) {
	.v-hero__headline { letter-spacing: .42em; padding-left: .42em; }
	.v-hero__sub {
		letter-spacing: .08em;
		max-width: 20em;
		margin-inline: auto;
	}
}

/* =============================================================
   モーション低減設定への配慮
   ============================================================= */
@media (prefers-reduced-motion: reduce) {
	.v-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
	.v-hero__slide.is-active { animation: none; }
	.v-hero__slide { transition: opacity .6s linear; }
	.v-hero__scroll-line { animation: none; }
}

/* =============================================================
   STORY PAGE
   ============================================================= */
/* 改行ユーティリティ */
.veloura-page .pc { display: inline; }
.veloura-page .sp { display: none; }

/* ---- ヒーロー（ダーク） ---- */
.v-shero {
	background: var(--ink);
	color: #EDE7DB;
	min-height: clamp(56vh, 60vh, 640px);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: clamp(9rem, 16vw, 12rem) 1.5rem clamp(5rem, 9vw, 7rem);
	position: relative;
}
.v-shero::after {
	content: "";
	position: absolute;
	left: 50%; bottom: 0;
	transform: translateX(-50%);
	width: min(88%, var(--wrap));
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(203,183,132,.4), transparent);
}
.v-shero__eyebrow {
	font-family: var(--roman);
	font-size: clamp(.85rem, 1.8vw, 1.05rem);
	letter-spacing: .5em;
	text-transform: uppercase;
	color: var(--gold-pale);
	margin: 0 0 1.8rem;
	padding-left: .5em;
}
.v-shero__title {
	font-family: var(--jp);
	font-weight: 600;
	font-size: clamp(1.7rem, 4.2vw, 2.9rem);
	line-height: 1.5;
	letter-spacing: .08em;
	color: #F4EEE3;
	margin: 0;
	word-break: keep-all;      /* 和文の語中改行を防ぐ（句読点で折り返す） */
	overflow-wrap: break-word;
}
.v-shero__sub {
	font-family: var(--jp);
	font-weight: 400;
	font-size: clamp(1rem, 1.9vw, 1.2rem);
	letter-spacing: .14em;
	color: #C6BEB1;
	margin: 1.6rem 0 0;
}

/* ---- セクション ---- */
.v-storysec {
	padding-block: clamp(4.5rem, 9vw, 8rem);
	background: var(--paper);
}
.v-storysec--alt { background: var(--paper-2); }

/* ---- 2カラム（テキスト＋画像） ---- */
.v-story__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2.5rem, 6vw, 5.5rem);
	align-items: center;
}
.v-story__grid .v-story__body { max-width: 40rem; }
.v-story--flip .v-story__figure { order: -1; }
/* テキストを広め・画像カラムは画像幅ぴったり（左右の余白を詰める）。文章の語尾折返し防止。 */
.v-story__grid--wide {
	grid-template-columns: 1fr minmax(0, 430px);
	gap: clamp(1.8rem, 3.5vw, 3.5rem);
}
.v-story__grid--wide .v-story__body { max-width: none; }

.v-story__figure {
	margin: 0;
	position: relative;
	max-width: 430px;
	width: 100%;
	justify-self: center;
}
.v-story__figure img {
	width: 100%;
	object-fit: cover;
	box-shadow: 0 30px 70px -30px rgba(20,17,14,.4);
}
.v-story__figure::after {
	content: "";
	position: absolute;
	inset: 13px;
	border: 1px solid rgba(255,255,255,.35);
	pointer-events: none;
}

/* ---- 見出し ---- */
.v-story__heading {
	font-family: var(--jp);
	font-weight: 600;
	font-size: clamp(1.45rem, 2.8vw, 2.05rem);
	line-height: 1.55;
	letter-spacing: .05em;
	color: var(--ink);
	margin: 0 0 1.8rem;
	padding-top: 1.6rem;
	position: relative;
}
.v-story__heading::before {
	content: "";
	position: absolute;
	left: 0; top: 0;
	width: 42px; height: 2px;
	background: linear-gradient(90deg, var(--gold), var(--gold-deep));
}
.v-story__heading--center { text-align: center; }
.v-story__heading--center::before { left: 50%; transform: translateX(-50%); }

/* ---- テキストのみブロック ---- */
.v-story__center { text-align: center; }
.v-story__center .v-story__body { margin-inline: auto; }
.v-story__block + .v-story__block { margin-top: clamp(3rem, 6vw, 4.5rem); }

.v-prose--left { text-align: left; }

/* ---- お客様の声（気付き内） ---- */
.v-story__quotes {
	font-family: var(--jp);
	color: var(--ink);
	line-height: 2.3;
	letter-spacing: .03em;
	padding: clamp(1.3rem, 2.6vw, 1.8rem) clamp(1.4rem, 3vw, 2rem);
	background: rgba(183,154,95,.07);
}

/* ---- ワイド画像（P2-7 玄関扉） ---- */
.v-story__wide {
	margin: clamp(3rem, 6vw, 4.5rem) auto 0;
	max-width: 880px;
	padding-inline: clamp(1.4rem, 5vw, 3rem);
	position: relative;
}
.v-story__wide img {
	width: 100%;
	aspect-ratio: 1024 / 768;
	object-fit: cover;
	box-shadow: 0 30px 70px -30px rgba(20,17,14,.45);
}

/* ---- 気付き：フル幅パララックス ---- */
.v-realize {
	position: relative;
	background-size: cover;
	background-position: center;
	background-attachment: fixed;   /* パララックス */
	padding-block: clamp(6rem, 14vw, 11rem);
	padding-inline: clamp(1.4rem, 5vw, 3rem);
}
.v-realize::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(rgba(20,17,14,.30), rgba(20,17,14,.38));
	pointer-events: none;
}
.v-realize__inner {
	position: relative;
	max-width: 900px;
	margin-inline: auto;
}
.v-realize__panel {
	background: rgba(255,255,255,.66);
	-webkit-backdrop-filter: blur(9px);
	backdrop-filter: blur(9px);
	padding: clamp(2.4rem, 5.5vw, 4.5rem);
	box-shadow: 0 40px 90px -40px rgba(20,17,14,.55);
	text-align: center;
}
.v-realize__panel .v-story__heading {
	margin-bottom: 2.4rem;
	text-shadow: 0 1px 6px rgba(255,255,255,.95);
}
/* 透過を上げたぶん、文字は濃く・やや太く・白い影で可読性を確保 */
.v-realize__panel .v-prose {
	color: var(--ink);
	font-weight: 500;
	text-shadow: 0 1px 6px rgba(255,255,255,.95), 0 0 2px rgba(255,255,255,.9);
}
.v-realize__panel .v-prose em { color: var(--ink); font-weight: 600; }
/* お客様の声：太字・黒文字でしっかり読ませる */
.v-realize__voices {
	margin: 2.2rem auto;
	padding: 1.6rem 0;
	border-top: 1px solid rgba(20,17,14,.18);
	border-bottom: 1px solid rgba(20,17,14,.18);
}
.v-realize__voices p {
	margin: 0;
	font-size: .95em;
	font-weight: 600;
	line-height: 2;
	letter-spacing: .04em;
	color: var(--ink);
}

/* ---- Profile ---- */
.v-profile__grid {
	display: grid;
	grid-template-columns: minmax(0, 175px) 1fr;
	gap: clamp(2rem, 5vw, 3.5rem);
	align-items: center;
	max-width: 780px;
	margin-inline: auto;
}
.v-profile__photo {
	margin: 0;
	position: relative;
	justify-self: center;
	width: 100%;
	max-width: 175px;
}
.v-profile__photo img {
	width: 100%;
	aspect-ratio: 408 / 611;
	object-fit: cover;
	box-shadow: 0 26px 60px -30px rgba(20,17,14,.4);
}
.v-profile__photo::after {
	content: "";
	position: absolute;
	inset: 12px;
	border: 1px solid rgba(255,255,255,.4);
	pointer-events: none;
}
.v-profile__name {
	font-family: var(--jp);
	font-weight: 600;
	font-size: clamp(1.5rem, 3vw, 2rem);
	letter-spacing: .08em;
	color: var(--ink);
	margin: .3rem 0 0;
	line-height: 1.5;
}
.v-profile__role {
	display: block;
	font-family: var(--roman);
	font-size: .8rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gold-deep);
	margin-top: .8rem;
}
.v-profile__cred {
	font-family: var(--roman);
	font-size: .82rem;
	letter-spacing: .12em;
	color: var(--stone);
	margin: .6rem 0 1.8rem;
}

/* ---- レスポンシブ ---- */
@media (max-width: 820px) {
	.v-story__grid { grid-template-columns: minmax(0, 1fr); gap: clamp(2rem, 6vw, 3rem); }
	.v-story__grid .v-story__body { max-width: none; }
	.v-story__figure,
	.v-story--flip .v-story__figure { order: -1; width: 100%; max-width: 380px; }
	/* 見出し・本文は可読性のため左寄せのまま（画像のみ中央上に） */

	.v-profile__grid { grid-template-columns: minmax(0, 1fr); text-align: center; }
	.v-profile__photo { order: -1; max-width: 150px; }
	.v-profile .v-prose { text-align: center; }

	/* モバイルは fixed パララックスを無効化（iOS対策） */
	.v-realize { background-attachment: scroll; }
}

@media (prefers-reduced-motion: reduce) {
	.v-realize { background-attachment: scroll; }
}

@media (max-width: 700px) {
	.veloura-page .pc { display: none; }
	.veloura-page .sp { display: inline; }

	/* 本文：PC用の強制改行(br)はモバイルで無効化し、自然に流し込む
	   （狭い画面で「タイル、」「荘も、」等の孤立・語中再折返しを防ぐ）。見出し(.v-title)のbrは維持。 */
	.v-prose br { display: none; }
}

/* =============================================================
   DESIGN PAGE
   ============================================================= */
/* ---- 5ステップの工程 ---- */
.v-process { background: var(--paper); }
.v-process__list {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: none;
}
.v-step {
	display: grid;
	grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
	padding-block: clamp(3rem, 6vw, 5rem);
	border-top: 1px solid var(--line);
}
.v-step:first-child { border-top: 0; padding-top: 0; }
.v-step__num {
	display: block;
	font-family: var(--serif);
	font-weight: 500;
	font-size: clamp(3.4rem, 7vw, 5.5rem);
	line-height: .9;
	letter-spacing: .02em;
	color: var(--gold);
}
.v-step__en {
	font-family: var(--roman);
	font-size: .82rem;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--gold-deep);
	margin: 1.4rem 0 .7rem;
}
.v-step__jp {
	font-family: var(--jp);
	font-weight: 600;
	font-size: clamp(1.25rem, 2.2vw, 1.55rem);
	line-height: 1.55;
	letter-spacing: .03em;
	color: var(--ink);
	margin: 0;
}
.v-step__body { padding-top: .4rem; }
/* 02 のキーワード列 */
.v-step__keywords {
	list-style: none;
	margin: 0 0 1.9em;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .8rem 1.6rem;
}
.v-step__keywords li {
	display: inline-flex;
	align-items: center;
	gap: .55em;
	font-family: var(--jp);
	font-size: 1.06em;
	letter-spacing: .06em;
	color: var(--ink);
}
.v-step__keywords li::before {
	content: "";
	width: 5px; height: 5px;
	background: var(--gold);
	transform: rotate(45deg);
	flex: none;
}

/* ---- 手がける領域 ---- */
.v-scope { background: var(--paper-2); text-align: center; }
.v-scope__head { margin-bottom: clamp(3rem, 6vw, 4.5rem); }
.v-scope__head .v-title { margin-inline: auto; }
.v-scope__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1.6rem, 3.2vw, 2.8rem);
	text-align: left;
}
.v-scope__item {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	padding-top: 1.3rem;
	border-top: 1px solid var(--gold);
}
.v-scope__no {
	font-family: var(--roman);
	font-size: .78rem;
	letter-spacing: .1em;
	color: var(--gold-deep);
	flex: none;
}
.v-scope__name {
	font-family: var(--serif);
	font-weight: 500;
	font-size: clamp(1.3rem, 2.2vw, 1.65rem);
	letter-spacing: .02em;
	color: var(--ink);
}

/* ---- クロージング CTA ---- */
.v-designcta {
	background: var(--ink);
	text-align: center;
	position: relative;
}
.v-designcta::before {
	content: "";
	position: absolute;
	left: 50%; top: 0;
	transform: translateX(-50%);
	width: min(88%, var(--wrap));
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(203,183,132,.4), transparent);
}
.v-designcta__en {
	font-family: var(--serif);
	font-style: italic;
	font-size: clamp(1.6rem, 3.6vw, 2.7rem);
	letter-spacing: .03em;
	color: #F1EBDF;
	margin: 0 0 1.1rem;
}
.v-designcta__jp {
	font-family: var(--jp);
	font-weight: 500;
	font-size: clamp(1.05rem, 2vw, 1.4rem);
	letter-spacing: .12em;
	color: #C6BEB1;
	margin: 0 0 2.6rem;
	word-break: keep-all;
	overflow-wrap: break-word;
}
.v-designcta__link {
	display: inline-block;
	font-family: var(--roman);
	font-size: .82rem;
	letter-spacing: .32em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--gold-pale);
	padding-bottom: .4em;
	border-bottom: 1px solid rgba(203,183,132,.4);
	transition: border-color .4s var(--ease), color .4s var(--ease);
}
.v-designcta__link:hover { color: #fff; border-color: var(--gold-pale); }
.v-designcta__link.is-placeholder { cursor: default; }

/* ---- レスポンシブ（Design） ---- */
@media (max-width: 820px) {
	.v-step { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }
	.v-step__en { margin-top: .8rem; }
	.v-scope__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.v-scope__grid { grid-template-columns: minmax(0, 1fr); }
}

/* =============================================================
   PROJECTS PAGE（施工事例・マソンリー）
   ============================================================= */
.v-project { background: var(--paper); padding-block: clamp(4rem, 8vw, 7rem); }
.v-project--alt { background: var(--paper-2); }
.v-project__head { margin-bottom: clamp(2.2rem, 5vw, 3.5rem); }
.v-project__loc {
	font-family: var(--roman);
	font-size: .8rem;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--gold-deep);
	margin: 0 0 .8rem;
}
.v-project__title {
	font-family: var(--serif);
	font-weight: 500;
	font-size: clamp(1.9rem, 4vw, 3rem);
	line-height: 1.2;
	letter-spacing: .02em;
	color: var(--ink);
	margin: 0;
}
.v-project__jp {
	font-family: var(--jp);
	font-size: clamp(1rem, 1.8vw, 1.2rem);
	letter-spacing: .08em;
	color: var(--stone);
	margin: 1rem 0 0;
}
/* 画像ギャラリー：すべて高さの揃ったグリッド（object-fit cover で整列） */
.v-project__gallery--pair,
.v-project__gallery--2,
.v-project__gallery--3 {
	display: grid;
	gap: clamp(.8rem, 1.6vw, 1.4rem);
}
.v-project__gallery--pair { grid-template-columns: 1fr 1fr; }        /* 2枚：横並び */
.v-project__gallery--2    { grid-template-columns: 1fr 1fr; align-items: start; } /* 4枚：2×2 */
.v-project__gallery--3    { grid-template-columns: repeat(3, 1fr); } /* 3枚：横一列 */
.v-project__img {
	width: 100%;
	object-fit: cover;
	display: block;
	box-shadow: 0 20px 50px -30px rgba(20,17,14,.4);
}
.v-project__gallery--pair .v-project__img { aspect-ratio: 4 / 3; }  /* 横長（軽くトリミング） */
.v-project__gallery--3 .v-project__img { aspect-ratio: 3 / 4; }     /* 縦長（オフィスの縦写真向け） */
/* 4枚組は縦横が混在するため、トリミングせず自然な比率で表示（上段=横・下段=縦、各段で高さが揃う） */
.v-project__gallery--2 .v-project__img { aspect-ratio: auto; height: auto; }

@media (max-width: 800px) {
	.v-project__gallery--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
	.v-project__gallery--pair,
	.v-project__gallery--2,
	.v-project__gallery--3 { grid-template-columns: minmax(0, 1fr); }
}

/* =============================================================
   SERVICE PAGE
   ============================================================= */
.v-service { background: var(--paper); padding-block: clamp(4rem, 8vw, 7rem); }
.v-service--alt { background: var(--paper-2); }
.v-service__en {
	font-family: var(--roman);
	font-size: .82rem;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--gold-deep);
	margin: 0 0 1rem;
}
.v-service__jp {
	font-family: var(--jp);
	font-weight: 600;
	font-size: clamp(1.4rem, 2.8vw, 2rem);
	line-height: 1.5;
	letter-spacing: .04em;
	color: var(--ink);
	margin: 0 0 1.5rem;
}
/* 中央テキスト（画像なし） */
.v-service__center { text-align: center; }
.v-service__center .v-service__jp { margin-inline: auto; }
/* 2カラム（画像あり） */
.v-service__grid {
	display: grid;
	grid-template-columns: 1fr minmax(0, 440px);
	gap: clamp(2.5rem, 6vw, 5rem);
	align-items: center;
}
.v-service--flip .v-service__figure { order: -1; }
.v-service__body { max-width: 40rem; }
.v-service__figure {
	margin: 0;
	position: relative;
	justify-self: center;
	width: 100%;
	max-width: 440px;
}
.v-service__figure img {
	width: 100%;
	height: auto;
	display: block;
	box-shadow: 0 30px 70px -30px rgba(20,17,14,.4);
}
.v-service__figure::after {
	content: "";
	position: absolute;
	inset: 13px;
	border: 1px solid rgba(255,255,255,.35);
	pointer-events: none;
}
/* リンク（→ページ） */
.v-service__link {
	display: inline-block;
	margin-top: 1.6rem;
	font-family: var(--roman);
	font-size: .78rem;
	letter-spacing: .26em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--gold-deep);
	padding-bottom: .35em;
	border-bottom: 1px solid rgba(156,127,69,.4);
	transition: color .35s var(--ease), border-color .35s var(--ease);
}
.v-service__link:hover { color: var(--ink); border-color: var(--gold-deep); }
.v-service__link.is-placeholder { cursor: default; }
/* Learn のクラス */
.v-service__classes {
	max-width: 420px;
	margin: .5rem auto 0;
	text-align: left;
	display: grid;
	gap: 1.4rem;
}
.v-service__class {
	padding-top: 1.2rem;
	border-top: 1px solid var(--line);
}
.v-service__class-name {
	font-family: var(--jp);
	font-weight: 600;
	font-size: 1.05rem;
	letter-spacing: .04em;
	color: var(--ink);
	margin: 0 0 .4rem;
}
.v-service__class-note {
	font-family: var(--jp);
	font-size: .92rem;
	line-height: 1.9;
	color: var(--stone);
	margin: 0;
}
/* クロージング：ミッション・注記 */
.v-service__mission {
	font-family: var(--jp);
	font-weight: 500;
	font-size: clamp(1.05rem, 2vw, 1.35rem);
	line-height: 2.1;
	letter-spacing: .08em;
	color: #EDE7DB;
	margin: 0 0 1rem;
	word-break: keep-all;
	overflow-wrap: break-word;
}
.v-service__cta-note {
	font-family: var(--jp);
	font-size: clamp(.92rem, 1.6vw, 1.02rem);
	line-height: 2;
	letter-spacing: .06em;
	color: #C6BEB1;
	margin: 1.4rem 0 2.6rem;
}
.v-designcta .v-service__mission + .v-ornament { margin-block: 2.2rem; }

@media (max-width: 820px) {
	.v-service__grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
	.v-service__grid .v-service__body { max-width: none; text-align: center; }
	.v-service__grid .v-prose--left { text-align: center; }
	.v-service__figure,
	.v-service--flip .v-service__figure { order: -1; max-width: 380px; }
}

/* =============================================================
   FURNITURE PAGE（Curated Collection）
   ============================================================= */
.v-section--alt { background: var(--paper-2); }

/* ヒーロー見出しを欧文セリフ・イタリックで上品に */
.v-shero__title--en {
	font-family: var(--serif);
	font-style: italic;
	font-weight: 500;
	letter-spacing: .02em;
}

/* ---- イントロ ---- */
.v-furni-intro { background: var(--paper); text-align: center; }
/* 和文の語中改行を防ぐ（句読点で折り返す） */
.v-furni-statement,
.v-furni-custom { word-break: keep-all; overflow-wrap: break-word; }
/* 冒頭ステートメント（太字・少し大きめ） */
.v-furni-statement {
	font-family: var(--jp);
	font-weight: 600;
	font-size: clamp(1.15rem, 2.3vw, 1.55rem);
	line-height: 1.9;
	letter-spacing: .06em;
	color: var(--ink);
	margin: 0;
}
.v-furni-custom {
	font-family: var(--jp);
	font-size: clamp(.98rem, 1.8vw, 1.12rem);
	line-height: 2.05;
	letter-spacing: .07em;
	color: var(--ink-soft);
	margin: clamp(2rem, 4vw, 2.8rem) 0 0;
}

/* ---- 種類数（stats） ---- */
.v-stats {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(2rem, 6vw, 4.5rem);
	margin: clamp(2.4rem, 5vw, 3.4rem) 0 0;
}
.v-stat { text-align: center; }
.v-stat__num {
	font-family: var(--serif);
	font-weight: 500;
	font-size: clamp(2.6rem, 6vw, 4rem);
	line-height: 1;
	letter-spacing: .02em;
	color: var(--ink);
	margin: 0;
}
.v-stat__unit {
	font-family: var(--jp);
	font-size: clamp(.82rem, 1.4vw, .95rem);
	letter-spacing: .1em;
	color: var(--stone);
	margin-left: .4em;
}
.v-stat__label {
	font-family: var(--jp);
	font-size: clamp(.85rem, 1.5vw, .95rem);
	letter-spacing: .12em;
	color: var(--stone);
	margin: .8rem 0 0;
}
.v-stats__div { width: 1px; height: 58px; background: var(--line); }

/* ---- コレクション ---- */
.v-collections-sec { text-align: center; }
.v-collections-sec__eyebrow { margin-bottom: clamp(2.2rem, 4.5vw, 3.2rem); }
.v-collections {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(1.4rem, 3vw, 2.4rem);
}
.v-collection {
	flex: 0 1 300px;
	max-width: 340px;
	margin: 0;
	text-align: center;
}
.v-collection__figure {
	position: relative;
	overflow: hidden;
}
.v-collection__figure img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	box-shadow: 0 24px 55px -32px rgba(20,17,14,.45);
	transition: transform .9s var(--ease);
}
.v-collection:hover .v-collection__figure img { transform: scale(1.045); }
.v-collection__figure::after {
	content: "";
	position: absolute;
	inset: 11px;
	border: 1px solid rgba(255,255,255,.4);
	pointer-events: none;
	z-index: 1;
}
.v-collection__cap { margin-top: 1.15rem; }
.v-collection__en {
	display: block;
	font-family: var(--roman);
	font-size: .9rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--ink);
}
.v-collection__jp {
	display: block;
	font-family: var(--jp);
	font-size: .82rem;
	letter-spacing: .14em;
	color: var(--stone);
	margin-top: .45rem;
}

/* ---- カタログ導線 ---- */
.v-catalogcta { background: var(--paper); text-align: center; }
.v-catalogcta__eyebrow { margin-bottom: 1.6rem; }
.v-catalogcta__lead {
	font-family: var(--jp);
	font-weight: 500;
	font-size: clamp(1.1rem, 2vw, 1.4rem);
	line-height: 1.9;
	letter-spacing: .08em;
	color: var(--ink);
	margin: 0 0 2.2rem;
}
.v-catalogcta__link {
	display: inline-block;
	font-family: var(--roman);
	font-size: .8rem;
	letter-spacing: .28em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--gold-deep);
	padding-bottom: .35em;
	border-bottom: 1px solid rgba(156,127,69,.4);
	transition: color .35s var(--ease), border-color .35s var(--ease);
}
.v-catalogcta__link:hover { color: var(--ink); border-color: var(--gold-deep); }

/* ---- For Professionals（法人向け・ダーク） ---- */
.v-forpro {
	background: var(--ink);
	text-align: center;
	position: relative;
}
.v-forpro::before {
	content: "";
	position: absolute;
	left: 50%; top: 0;
	transform: translateX(-50%);
	width: min(88%, var(--wrap));
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(203,183,132,.4), transparent);
}
.v-forpro__en {
	font-family: var(--roman);
	font-size: .82rem;
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var(--gold-pale);
	margin: 0 0 1.4rem;
}
.v-forpro__jp {
	font-family: var(--jp);
	font-weight: 600;
	font-size: clamp(1.3rem, 2.6vw, 1.9rem);
	line-height: 1.6;
	letter-spacing: .06em;
	color: #F4EEE3;
	margin: 0 0 1.6rem;
	word-break: keep-all;
	overflow-wrap: break-word;
}
.v-forpro .v-prose { color: #C6BEB1; }
.v-forpro .v-prose p { word-break: keep-all; overflow-wrap: break-word; }
.v-forpro__prose { margin-bottom: 2.4rem; }
.v-forpro__link {
	display: inline-block;
	font-family: var(--roman);
	font-size: .82rem;
	letter-spacing: .32em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--gold-pale);
	padding-bottom: .4em;
	border-bottom: 1px solid rgba(203,183,132,.4);
	transition: border-color .4s var(--ease), color .4s var(--ease);
}
.v-forpro__link:hover { color: #fff; border-color: var(--gold-pale); }
.v-forpro__link.is-placeholder { cursor: default; }

/* ---- レスポンシブ（Furniture） ---- */
@media (max-width: 700px) {
	.v-collection { flex: 0 1 44%; max-width: none; }
	/* 狭いカードで英字ラベルがはみ出さないよう字間・サイズを詰める */
	.v-collection__en { letter-spacing: .1em; font-size: .78rem; }
}
@media (max-width: 600px) {
	/* 見出し・本文が狭幅ビューポートを超えないよう縮小 */
	.v-furni-statement { font-size: 1.1rem; }
	.v-furni-custom { font-size: 1rem; }
}
@media (max-width: 480px) {
	.v-stats { flex-direction: column; gap: 1.8rem; }
	.v-stats__div { width: 60px; height: 1px; }
}

/* =============================================================
   CONTACT PAGE（お問い合わせ＋CF7フォーム）
   ============================================================= */
.v-shero__sub--en {
	font-family: var(--serif);
	font-style: italic;
	letter-spacing: .04em;
}
.v-kari {
	font-family: var(--jp);
	font-style: normal;
	font-size: .78em;
	letter-spacing: .08em;
	color: var(--stone-soft);
}

.v-contact { background: var(--paper); }

/* ---- ご挨拶 ---- */
.v-contact__intro { text-align: center; }
.v-contact__lead {
	font-family: var(--jp);
	font-weight: 600;
	font-size: clamp(1.2rem, 2.4vw, 1.6rem);
	line-height: 1.7;
	letter-spacing: .06em;
	color: var(--ink);
	margin: 0 0 1.4rem;
	word-break: keep-all;
	overflow-wrap: break-word;
}

/* ---- 注意書き（営業お断り） ---- */
.v-contact__note {
	margin: clamp(2.4rem, 5vw, 3.4rem) auto 0;
	max-width: 40rem;
	padding: clamp(1.4rem, 3vw, 2rem) clamp(1.5rem, 4vw, 2.4rem);
	background: var(--paper-2);
	border-left: 2px solid var(--gold);
	text-align: left;
}
.v-contact__note-title {
	font-family: var(--jp);
	font-weight: 600;
	font-size: clamp(.98rem, 1.7vw, 1.08rem);
	line-height: 1.8;
	letter-spacing: .04em;
	color: var(--ink);
	margin: 0 0 .7rem;
	word-break: keep-all;      /* 和文の語中改行を防ぐ */
	overflow-wrap: break-word;
}
.v-contact__note-body {
	font-family: var(--jp);
	font-size: clamp(.88rem, 1.5vw, .96rem);
	line-height: 2;
	letter-spacing: .03em;
	color: var(--stone);
	margin: 0;
}

/* ---- フォーム（Contact Form 7 / 既存サイトの template02 スタイルに委譲） ----
   「フォーム項目は既存と同じ」とのご指定のため、体裁も注入CSSの
   `.wpcf7 .template02`（既存フォームの完成デザイン）にそのまま委ねる。
   ここでは Veloura ページ内での配置（幅・中央寄せ・上余白）だけを最小限に整える。 */
.v-contact__form { margin-top: clamp(3rem, 6vw, 4.5rem); }
/* 幅は template02 の .form__wrap（max-width:900px）に委ね、中央寄せのみ担保 */
.v-contact__form .wpcf7 { margin-inline: auto; }

/* お問い合わせ項目のラジオを整列した2×2グリッドに（◯の位置を縦横で揃える） */
.v-contact__form .row-radio .wpcf7-radio {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: .9rem 1.6rem;
}
.v-contact__form .row-radio .wpcf7-list-item { margin: 0; }

@media (max-width: 560px) {
	/* 狭い画面では1列に */
	.v-contact__form .row-radio .wpcf7-radio { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
	/* リード文を1行に収め、句点だけが折り返る現象を防ぐ */
	.v-contact__lead { font-size: 1.05rem; letter-spacing: .02em; }
	/* 注意書き見出しを詰めて緊急改行を避ける */
	.v-contact__note-title { font-size: .95rem; letter-spacing: .01em; }
	.v-contact__note { padding-inline: clamp(1.1rem, 3.5vw, 1.5rem); }
}

/* =============================================================
   CLOSING（締めの言葉）— Projects / Furniture 共通
   ============================================================= */
.v-closing { text-align: center; position: relative; }
.v-closing--dark { background: var(--ink); }
.v-closing--light { background: var(--paper); }
/* ダーク時は上端にゴールドのヘアライン */
.v-closing--dark::before {
	content: "";
	position: absolute;
	left: 50%; top: 0;
	transform: translateX(-50%);
	width: min(88%, var(--wrap));
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(203,183,132,.4), transparent);
}

/* 英文タグライン */
.v-closing__en {
	font-family: var(--serif);
	font-style: italic;
	font-size: clamp(1.6rem, 3.6vw, 2.7rem);
	line-height: 1.3;
	letter-spacing: .03em;
	margin: 0 0 1.6rem;
}
.v-closing--dark .v-closing__en { color: #F1EBDF; }
.v-closing--light .v-closing__en { color: var(--ink); }

/* 和文サブ見出し */
.v-closing__lead {
	font-family: var(--jp);
	font-weight: 600;
	font-size: clamp(1.1rem, 2.1vw, 1.4rem);
	line-height: 1.8;
	letter-spacing: .08em;
	margin: 0 0 2.2rem;
	word-break: keep-all;
	overflow-wrap: break-word;
}
.v-closing--dark .v-closing__lead { color: #EDE7DB; }
.v-closing--light .v-closing__lead { color: var(--ink); }

/* 本文 */
.v-closing__body {
	font-family: var(--jp);
	font-size: clamp(.98rem, 1.8vw, 1.12rem);
	line-height: 2.15;
	letter-spacing: .06em;
	max-width: 40rem;
	margin-inline: auto;
	word-break: keep-all;
	overflow-wrap: break-word;
}
.v-closing--dark .v-closing__body { color: #C6BEB1; }
.v-closing--light .v-closing__body { color: var(--ink-soft); }
.v-closing__body p { margin: 0 0 1.7em; }
.v-closing__body p:last-child { margin-bottom: 0; }

/* 強調（クチュールインテリア） */
.v-emph { font-weight: 600; }
.v-closing--dark .v-emph { color: #F4EEE3; }
.v-closing--light .v-emph { color: var(--ink); }

/* 結びの英文 */
.v-closing__sig {
	font-family: var(--serif);
	font-style: italic;
	font-size: clamp(1.2rem, 2.4vw, 1.7rem);
	letter-spacing: .04em;
	margin: 2.6rem 0 0;
}
.v-closing--dark .v-closing__sig { color: var(--gold-pale); }
.v-closing--light .v-closing__sig { color: var(--gold-deep); }

/* リンク（Contact / カタログ） */
.v-closing__link {
	display: inline-block;
	margin-top: 2.4rem;
	font-family: var(--roman);
	font-size: .82rem;
	letter-spacing: .3em;
	text-transform: uppercase;
	text-decoration: none;
	padding-bottom: .4em;
	transition: color .4s var(--ease), border-color .4s var(--ease);
}
.v-closing--dark .v-closing__link {
	color: var(--gold-pale);
	border-bottom: 1px solid rgba(203,183,132,.4);
}
.v-closing--dark .v-closing__link:hover { color: #fff; border-color: var(--gold-pale); }
.v-closing--light .v-closing__link {
	color: var(--gold-deep);
	border-bottom: 1px solid rgba(156,127,69,.4);
}
.v-closing--light .v-closing__link:hover { color: var(--ink); border-color: var(--gold-deep); }
.v-closing__link.is-placeholder { cursor: default; }
