/*
 * Wamuzu FV mock v23
 * Local-only four-image cinematic hero.
 *
 * Direction:
 * - TADASU: full-bleed photo, Mincho typography, crossfade + slow image motion
 * - La Estro: restrained outline CTA, generous spacing, review proof row
 * - Wamuzu: headerless hero, warm-charcoal / umber / ivory / gold palette
 */

:root {
	--wfvm-ink: #f8f4ec;
	--wfvm-ink-muted: rgba(248, 244, 236, 0.78);
	--wfvm-forest: #4c3e34;
	--wfvm-forest-deep: #29231e;
	--wfvm-gold: #c9ae72;
	--wfvm-gold-soft: #e4d2a5;
	--wfvm-line: rgba(244, 237, 224, 0.34);
	--wfvm-paper: #f7f3eb;
	--wfvm-display: "Zen Old Mincho", "Yu Mincho", "Hiragino Mincho ProN", serif;
	--wfvm-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
	--wfvm-latin: "Cormorant Garamond", "Times New Roman", serif;
	--wfvm-slide-fade: 1400ms;
	--wfvm-slide-motion: 4200ms;
	--wfvm-slide-interval: 5000ms;
}

html {
	scroll-behavior: smooth;
}

.wamuzu-fv-mock-page {
	overflow-x: clip;
}

body.wamuzu-fv-mock-page {
	padding-top: 0 !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
}

.wamuzu-fv-mock-page #header,
.wamuzu-fv-mock-page #header_logo,
.wamuzu-fv-mock-page #header_message {
	display: none !important;
}

.wamuzu-fv-mock-page #main_contents {
	max-width: none;
}

.wamuzu-fv-mock-page #container {
	border-inline: 0 !important;
	outline: 0;
	box-shadow: none;
}

/* The theme's empty fixed SNS rail otherwise leaves a white chip over the FV. */
.wamuzu-fv-mock-page #footer_sns {
	display: none;
}

.wfvm-page {
	position: relative;
	padding-top: 0;
	background: var(--wfvm-forest-deep);
}

.wfvm-page,
.wfvm-page *,
.wfvm-page *::before,
.wfvm-page *::after {
	box-sizing: border-box;
}

.wfvm-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.wfvm-skip-link {
	position: fixed;
	z-index: 10000;
	top: 10px;
	left: 10px;
	padding: 10px 16px;
	background: #fff;
	color: #11261f;
	font: 600 14px/1.4 var(--wfvm-sans);
	transform: translateY(-160%);
	transition: transform 160ms ease;
}

.wfvm-skip-link:focus {
	transform: translateY(0);
}

/*
 * ページ先頭では背景バーを出さず、ブランドとメニューだけを写真上に置く。
 * スクロール後は共通の淡色ヘッダーへ自然に役割を引き継ぐ。
 */
.wfvm-hero-brand,
.wfvm-hero-menu-toggle {
	position: absolute;
	z-index: 4;
}

.wfvm-hero-brand {
	top: calc(28px + env(safe-area-inset-top, 0px));
	left: max(28px, env(safe-area-inset-left, 0px));
	display: inline-flex;
	align-items: center;
	width: clamp(194px, 15vw, 232px);
	min-height: 44px;
	padding: 0 4px;
	text-decoration: none;
}

.wfvm-hero-brand__logo {
	display: block;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 2px 16px rgba(0, 0, 0, .24));
}

.wfvm-hero-brand:focus-visible,
.wfvm-hero-menu-toggle:focus-visible {
	outline: 2px solid var(--wfvm-gold-soft);
	outline-offset: 4px;
}

.wfvm-hero-menu-toggle {
	top: calc(20px + env(safe-area-inset-top, 0px));
	right: max(29px, env(safe-area-inset-right, 0px));
	color: #fffdf8;
}

.wfvm-menu-toggle {
	position: absolute;
	z-index: 1000101;
	top: 10px;
	right: 29px;
	display: none;
	place-items: center;
	width: 58px;
	height: 58px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.wfvm-js .wfvm-menu-toggle {
	display: grid;
}

.wfvm-menu-toggle__lines {
	position: relative;
	display: block;
	width: 36px;
	height: 22px;
}

.wfvm-menu-toggle__lines i {
	position: absolute;
	left: 0;
	display: block;
	width: 36px;
	height: 2px;
	background: currentColor;
	box-shadow: 0 1px 10px rgba(4, 20, 15, 0.2);
	transform-origin: center;
	transition:
		top 260ms ease,
		transform 260ms ease,
		opacity 180ms ease;
}

.wfvm-menu-toggle__lines i:nth-child(1) {
	top: 0;
}

.wfvm-menu-toggle__lines i:nth-child(2) {
	top: 10px;
}

.wfvm-menu-toggle__lines i:nth-child(3) {
	top: 20px;
}

.wfvm-menu-toggle:hover .wfvm-menu-toggle__lines i:nth-child(2),
.wfvm-menu-toggle:focus-visible .wfvm-menu-toggle__lines i:nth-child(2) {
	transform: translateX(-5px);
}

.wfvm-menu-toggle:focus-visible {
	outline: 1px solid var(--wfvm-gold-soft);
	outline-offset: 5px;
}

.wfvm-menu-open .wfvm-menu-toggle__lines i:nth-child(1) {
	top: 10px;
	transform: rotate(45deg);
}

.wfvm-menu-open .wfvm-menu-toggle__lines i:nth-child(2) {
	opacity: 0;
	transform: scaleX(0);
}

.wfvm-menu-open .wfvm-menu-toggle__lines i:nth-child(3) {
	top: 10px;
	transform: rotate(-45deg);
}

.wfvm-menu-open .wfvm-menu-toggle {
	color: var(--wfvm-forest);
}

.wfvm-menu-overlay {
	position: fixed;
	z-index: 1000100;
	inset: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(360px, 34vw);
	visibility: hidden;
	pointer-events: none;
	transition: visibility 0s linear 920ms;
}

.wfvm-menu-open,
.wfvm-menu-open body {
	overflow: hidden;
}

.wfvm-menu-open #js-footer-bar,
.wfvm-menu-open #return_top {
	display: none !important;
}

.wfvm-menu-open .wfvm-menu-overlay {
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}

.wfvm-menu-overlay__backdrop {
	opacity: 0;
	background: rgba(41, 33, 28, 0);
	backdrop-filter: blur(0);
	-webkit-backdrop-filter: blur(0);
	transition:
		opacity 820ms cubic-bezier(0.4, 0, 0.2, 1),
		background-color 900ms cubic-bezier(0.4, 0, 0.2, 1),
		backdrop-filter 900ms cubic-bezier(0.4, 0, 0.2, 1),
		-webkit-backdrop-filter 900ms cubic-bezier(0.4, 0, 0.2, 1);
	will-change: opacity, backdrop-filter;
}

.wfvm-menu-open .wfvm-menu-overlay__backdrop {
	opacity: 1;
	background: rgba(41, 33, 28, 0.7);
	backdrop-filter: blur(9px);
	-webkit-backdrop-filter: blur(9px);
}

.wfvm-menu-overlay__panel {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: clamp(92px, 10vh, 124px) clamp(34px, 4vw, 68px) 42px;
	overflow-y: auto;
	background: var(--wfvm-paper);
	color: #16362c;
	box-shadow: -20px 0 60px rgba(35, 27, 22, 0.22);
	transform: translateX(100%);
	transition: transform 720ms cubic-bezier(0.4, 0, 0.2, 1);
}

.wfvm-menu-open .wfvm-menu-overlay__panel {
	transform: translateX(0);
}

.wfvm-menu-overlay__brand {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 34px;
	color: #567365;
	font: 500 13px/1 var(--wfvm-latin);
	letter-spacing: 0.28em;
}

.wfvm-menu-overlay__brand::before {
	content: "";
	width: 38px;
	height: 1px;
	background: var(--wfvm-gold);
}

.wfvm-menu-overlay__nav,
.wfvm-menu-overlay__list,
.wfvm-menu-overlay__list ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.wfvm-menu-overlay__list > li {
	border-top: 1px solid rgba(23, 63, 50, 0.16);
}

.wfvm-menu-overlay__list > li:last-child {
	border-bottom: 1px solid rgba(23, 63, 50, 0.16);
}

.wfvm-menu-overlay__list a {
	display: block;
	padding: 17px 2px;
	color: #173f32;
	font: 500 clamp(17px, 1.4vw, 22px)/1.4 var(--wfvm-display);
	letter-spacing: 0.06em;
	text-decoration: none;
	transition:
		color 180ms ease,
		padding-left 240ms ease;
}

.wfvm-menu-overlay__list a:hover,
.wfvm-menu-overlay__list a:focus-visible {
	padding-left: 10px;
	color: #8d7240;
}

.wfvm-menu-overlay__list a:focus-visible,
.wfvm-menu-overlay__reservation:focus-visible {
	outline: 1px solid var(--wfvm-gold);
	outline-offset: 3px;
}

.wfvm-menu-overlay__list .sub-menu {
	display: none;
}

.wfvm-menu-overlay__reservation {
	display: grid;
	gap: 7px;
	margin-top: auto;
	padding: 20px 22px;
	border: 1px solid rgba(23, 63, 50, 0.34);
	color: #173f32;
	text-decoration: none;
	transition:
		background 220ms ease,
		color 220ms ease;
}

.wfvm-menu-overlay__reservation span {
	font: 500 10px/1 var(--wfvm-sans);
	letter-spacing: 0.16em;
}

.wfvm-menu-overlay__reservation strong {
	font: 500 21px/1.4 var(--wfvm-display);
	letter-spacing: 0.08em;
}

.wfvm-menu-overlay__reservation:hover,
.wfvm-menu-overlay__reservation:focus-visible {
	background: var(--wfvm-forest);
	color: #fff;
}

.wfvm-hero {
	position: relative;
	isolation: isolate;
	display: grid;
	min-height: 820px;
	height: 100svh;
	max-height: none;
	overflow: hidden;
	/* 写真はスライド内の実画像1枚だけで描画し、二重背景にしない。 */
	background: #343434;
	color: var(--wfvm-ink);
}

.wfvm-hero::after {
	content: none;
}

.wfvm-hero__slides,
.wfvm-hero__slide,
.wfvm-hero__slide picture,
.wfvm-hero__slide img,
.wfvm-hero__veil {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.wfvm-hero__slides {
	z-index: -3;
	background: #343434;
}

.wfvm-hero__slide {
	margin: 0;
	opacity: 0;
	transition: opacity var(--wfvm-slide-fade) ease-in-out;
	pointer-events: none;
}

.wfvm-hero__slide.is-active {
	z-index: 1;
	opacity: 1;
}

.wfvm-hero__slide img {
	display: block;
	max-width: none;
	object-fit: cover;
	object-position: var(--wfvm-mobile-image-position, center);
	transform: none;
	backface-visibility: hidden;
	will-change: transform;
}

.wfvm-hero__slide.is-active.is-animated img {
	transform: none;
	transition: none;
}

.wfvm-hero__veil {
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(28, 24, 21, 0.86) 0%, rgba(48, 40, 33, 0.7) 38%, rgba(28, 34, 31, 0.27) 70%, rgba(20, 28, 27, 0.32) 100%),
		linear-gradient(180deg, rgba(31, 26, 22, 0.18) 0%, rgba(25, 24, 22, 0.08) 54%, rgba(38, 31, 25, 0.62) 100%);
	pointer-events: none;
}

.wfvm-hero__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(260px, 0.5fr);
	gap: clamp(28px, 4vw, 74px);
	width: min(100%, 1540px);
	height: 100%;
	margin: 0 auto;
	padding: clamp(52px, 6vh, 82px) clamp(28px, 5vw, 86px) clamp(66px, 7vh, 92px);
}

.wfvm-hero__copy {
	align-self: center;
	width: min(100%, 790px);
	text-shadow: 0 2px 24px rgba(0, 0, 0, 0.24);
}

.wfvm-brand-mark {
	position: absolute;
	z-index: 3;
	top: 36px;
	left: clamp(28px, 5vw, 76px);
	display: inline-flex;
	align-items: center;
	margin: 0;
	color: var(--wfvm-ink);
	font: 500 20px/1.2 var(--wfvm-latin);
	letter-spacing: 0.18em;
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.28);
}

.wfvm-brand-mark::before {
	content: none;
}

.wfvm-eyebrow {
	margin: 0 0 16px;
	color: var(--wfvm-ink-muted);
	font: 500 clamp(14px, 1.05vw, 17px)/1.8 var(--wfvm-display);
	letter-spacing: 0.08em;
}

.wfvm-title {
	--wfvm-title-size: clamp(38px, 3.4vw, 50px);
	margin: 0;
	color: var(--wfvm-ink);
	font-family: var(--wfvm-display);
	font-weight: 500;
	font-feature-settings: "palt";
	letter-spacing: 0.025em;
	line-height: 1.34;
	text-align: left;
	text-wrap: initial;
}

.wfvm-title > span {
	display: block;
}

.wfvm-title__question {
	font-size: var(--wfvm-title-size);
	white-space: nowrap;
}

.wfvm-title__question-main,
.wfvm-title__question-tail {
	display: inline;
}

.wfvm-title__question-tail {
	margin-left: 0.22em;
}

.wfvm-title__method {
	margin-top: 12px;
	color: #f5f1e8;
	font-size: var(--wfvm-title-size);
}

.wfvm-title__identity {
	position: relative;
	width: fit-content;
	margin-top: 2px;
	padding-bottom: 4px;
	color: var(--wfvm-gold-soft);
	font-size: var(--wfvm-title-size);
}

.wfvm-title__identity::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 1px;
	background: linear-gradient(90deg, var(--wfvm-gold), rgba(201, 174, 114, 0));
}

.wfvm-hero__summary {
	width: auto;
	max-width: 660px;
	margin: clamp(18px, 2.4vh, 26px) 0 0;
	color: var(--wfvm-ink-muted);
	font: 400 clamp(13px, 1vw, 15px)/2 var(--wfvm-sans);
	letter-spacing: 0.055em;
	white-space: normal;
}

/* Four features are one restrained panel, not four unrelated pills. */
.wfvm-features-shell {
	width: min(100%, 720px);
	margin-top: clamp(22px, 3vh, 34px);
	border: 1px solid var(--wfvm-line);
	background: rgba(246, 241, 231, 0.1);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

.wfvm-features {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

.wfvm-features > li {
	position: relative;
	display: flex;
	align-items: center;
	gap: 16px;
	min-height: 72px;
	padding: 15px 22px;
	color: var(--wfvm-ink);
	font: 500 clamp(16px, 1.15vw, 18px)/1.5 var(--wfvm-display);
	letter-spacing: 0.035em;
}

.wfvm-features > li:nth-child(odd) {
	border-right: 1px solid var(--wfvm-line);
}

.wfvm-features > li:nth-child(-n + 2) {
	border-bottom: 1px solid var(--wfvm-line);
}

.wfvm-features__index {
	flex: 0 0 auto;
	color: var(--wfvm-gold-soft);
	font: 500 21px/1 var(--wfvm-latin);
	letter-spacing: 0.05em;
}

.wfvm-features__body,
.wfvm-features__line {
	display: block;
}

.wfvm-hero__action {
	display: grid;
	grid-template-columns: minmax(260px, 330px) minmax(0, 1fr);
	align-items: center;
	gap: 18px 24px;
	width: min(100%, 760px);
	margin-top: clamp(24px, 3.4vh, 38px);
}

.wfvm-primary-cta {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 68px;
	padding: 13px 16px 13px 28px;
	border: 1px solid rgba(245, 239, 226, 0.82);
	border-radius: 999px;
	background: rgba(76, 62, 52, 0.16);
	color: var(--wfvm-ink);
	text-decoration: none;
	text-shadow: none;
	overflow: hidden;
	isolation: isolate;
	transition:
		color 420ms cubic-bezier(0.22, 1, 0.36, 1),
		background-color 420ms cubic-bezier(0.22, 1, 0.36, 1),
		border-color 420ms cubic-bezier(0.22, 1, 0.36, 1),
		transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.wfvm-primary-cta::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset: 0;
	background: var(--wfvm-paper);
	transform: translateX(-102%);
	transition: transform 680ms cubic-bezier(0.22, 1, 0.36, 1);
}

.wfvm-primary-cta::after {
	content: "";
	position: absolute;
	z-index: 1;
	top: -24%;
	bottom: -24%;
	left: -42%;
	width: 34%;
	background: linear-gradient(
		102deg,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 255, 255, 0.42) 45%,
		rgba(201, 174, 114, 0.2) 63%,
		rgba(255, 255, 255, 0) 100%
	);
	opacity: 0;
	pointer-events: none;
	transform: skewX(-18deg) translateX(0);
	transition:
		transform 760ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 280ms ease;
}

.wfvm-primary-cta__copy,
.wfvm-primary-cta__arrow {
	position: relative;
	z-index: 2;
}

.wfvm-primary-cta__copy {
	display: grid;
	gap: 2px;
}

.wfvm-primary-cta__kicker {
	color: var(--wfvm-gold-soft);
	font: 600 10px/1.3 var(--wfvm-sans);
	letter-spacing: 0.16em;
	transition: color 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.wfvm-primary-cta__label {
	font: 500 clamp(17px, 1.45vw, 21px)/1.5 var(--wfvm-display);
	letter-spacing: 0.06em;
}

.wfvm-primary-cta__detail {
	color: var(--wfvm-ink-muted);
	font: 400 10px/1.45 var(--wfvm-sans);
	letter-spacing: 0.05em;
	transition: color 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.wfvm-primary-cta__arrow {
	position: relative;
	display: block;
	flex: 0 0 44px;
	width: 44px;
	height: 20px;
	transition:
		transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.wfvm-primary-cta__arrow::before {
	content: "";
	position: absolute;
	top: 50%;
	right: 5px;
	width: 28px;
	height: 1px;
	background: currentColor;
	transform: translateY(-50%);
}

.wfvm-primary-cta__arrow::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 5px;
	width: 8px;
	height: 8px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: translateY(-50%) rotate(45deg);
}

.wfvm-primary-cta:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 4px;
}

/*
 * iOS Safariはタップ後にも :hover / :focus を保持することがある。
 * テーマ共通の a:hover 色へ戻されないよう、粗いポインターでは
 * CTAの濃色状態を明示してタップ前後の見た目を固定する。
 */
@media (hover: none), (pointer: coarse) {
	.wfvm-primary-cta:visited,
	.wfvm-primary-cta:hover,
	.wfvm-primary-cta:focus {
		border-color: rgba(245, 239, 226, 0.82);
		background: rgba(76, 62, 52, 0.16);
		color: var(--wfvm-ink);
		transform: none;
	}

	.wfvm-primary-cta:hover::before,
	.wfvm-primary-cta:focus::before {
		transform: translateX(-102%);
	}

	.wfvm-primary-cta:hover .wfvm-primary-cta__kicker,
	.wfvm-primary-cta:focus .wfvm-primary-cta__kicker {
		color: var(--wfvm-gold-soft);
	}

	.wfvm-primary-cta:hover .wfvm-primary-cta__detail,
	.wfvm-primary-cta:focus .wfvm-primary-cta__detail {
		color: var(--wfvm-ink-muted);
	}

	.wfvm-primary-cta:hover .wfvm-primary-cta__arrow,
	.wfvm-primary-cta:focus .wfvm-primary-cta__arrow {
		transform: none;
	}

	/*
	 * hoverを持たない端末でも、押している約150msだけ入力が伝わる。
	 * 白ベタへ反転させず、暖色の光と小さな縮みだけに抑える。
	 */
	.wfvm-primary-cta:active,
	.wfvm-primary-cta.is-touch-active {
		border-color: rgba(228, 210, 165, 0.96);
		background: rgba(201, 174, 114, 0.18);
		color: var(--wfvm-ink);
		transform: scale(0.985);
		transition-duration: 140ms;
	}

	.wfvm-primary-cta:active::before,
	.wfvm-primary-cta.is-touch-active::before {
		transform: translateX(-88%);
		transition-duration: 160ms;
	}

	.wfvm-primary-cta:active .wfvm-primary-cta__arrow,
	.wfvm-primary-cta.is-touch-active .wfvm-primary-cta__arrow {
		transform: translateX(4px);
		transition-duration: 140ms;
	}

}

.wfvm-review-proof {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 3px;
	min-width: 0;
	color: var(--wfvm-ink-muted);
	text-shadow: none;
	font-family: var(--wfvm-sans);
}

.wfvm-review-proof__facts {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 11.05px;
	font: 400 14.45px/1 "Noto Sans JP", sans-serif;
	letter-spacing: 0.578px;
	white-space: nowrap;
}

.wfvm-review-proof__stars {
	display: flex;
	align-items: center;
	gap: 1px;
	color: #f5b301;
	line-height: 1;
	white-space: nowrap;
}

.wfvm-review-proof__stars svg {
	display: block;
	width: 16px;
	height: 16px;
	fill: currentColor;
}

.wfvm-review-proof__rating {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--wfvm-gold-soft);
	font: 500 19.55px/1 var(--wfvm-sans);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.391px;
	transform: none;
}

.wfvm-review-proof__divider {
	width: 1px;
	height: 12px;
	background: rgba(248, 244, 236, 0.32);
}

.wfvm-review-proof__summary {
	display: inline-flex;
	align-items: center;
	color: var(--wfvm-ink-muted);
	font: 400 13.6px/1 "Noto Sans JP", sans-serif;
}

.wfvm-review-proof__summary strong {
	color: var(--wfvm-gold-soft);
	font-weight: 500;
}

/*
 * Cormorantの数字は通常の行ボックス内で下寄りに見えるため、対応ブラウザだけ
 * 実際の字形枠でトリムする。非対応ブラウザは同じ行メトリクスのサンセリフへ
 * フォールバックし、画面幅ごとのtranslate補正に依存させない。
 */
@supports (text-box: trim-both cap text) {
	.wfvm-review-proof__rating {
		font-family: "Cormorant Garamond", serif;
		text-box: trim-both cap text;
		/* 星の実ピクセル中心を基準に、Cormorantの字形だけを光学補正する。 */
		transform: translateY(-0.2em);
	}
}

.wfvm-hero__stage {
	position: relative;
	min-width: 0;
	height: 100%;
	pointer-events: none;
}

.wfvm-location {
	position: absolute;
	z-index: 2;
	top: calc(50% - clamp(307px, 31.55dvh, 325px));
	right: -18px;
	width: min(100%, 292px);
	padding: 18px 0 0;
	border-top: 1px solid rgba(218, 195, 142, 0.78);
	color: var(--wfvm-ink);
	pointer-events: auto;
	text-shadow: 0 2px 18px rgba(22, 17, 13, 0.4);
}

.wfvm-access-proof__eyebrow {
	margin: 0 0 16px;
	color: var(--wfvm-gold-soft);
	font: 600 18px/1 var(--wfvm-latin);
	letter-spacing: 0.3em;
}

.wfvm-access-proof__list {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wfvm-access-proof__row {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-bottom: 1px solid rgba(248, 244, 236, 0.19);
}

.wfvm-access-proof__row::before {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(201, 174, 114, 0.16), rgba(201, 174, 114, 0));
	content: "";
	pointer-events: none;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 900ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.wfvm-access-proof__link {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto 24px;
	align-items: baseline;
	gap: 18px;
	padding-bottom: 12px;
	color: inherit;
	text-decoration: none;
	transition:
		color 620ms ease,
		transform 820ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.wfvm-access-proof__map-cue {
	align-self: center;
	color: var(--wfvm-gold-soft);
	line-height: 0;
	opacity: 0.62;
	transform: translateX(-6px);
	transition:
		opacity 620ms ease,
		transform 820ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.wfvm-access-proof__link:focus-visible {
	outline: 2px solid var(--wfvm-gold-soft);
	outline-offset: 4px;
}

@media (hover: hover) and (pointer: fine) {
	.wfvm-primary-cta:focus-visible {
		border-color: var(--wfvm-paper);
		color: var(--wfvm-forest-deep);
		transform: translateY(-1px);
	}

	.wfvm-primary-cta:focus-visible::before {
		transform: translateX(0);
	}

	.wfvm-primary-cta:focus-visible::after {
		opacity: 0.72;
		transform: skewX(-18deg) translateX(430%);
	}

	.wfvm-primary-cta:focus-visible .wfvm-primary-cta__kicker,
	.wfvm-primary-cta:focus-visible .wfvm-primary-cta__detail {
		color: rgba(11, 42, 33, 0.68);
	}

	.wfvm-primary-cta:focus-visible .wfvm-primary-cta__arrow {
		transform: translateX(5px);
	}

	.wfvm-primary-cta:hover {
		border-color: var(--wfvm-paper);
		color: var(--wfvm-forest-deep);
		transform: translateY(-1px);
	}

	.wfvm-primary-cta:hover::before {
		transform: translateX(0);
	}

	.wfvm-primary-cta:hover::after {
		opacity: 0.72;
		transform: skewX(-18deg) translateX(430%);
	}

	.wfvm-primary-cta:hover .wfvm-primary-cta__kicker,
	.wfvm-primary-cta:hover .wfvm-primary-cta__detail {
		color: rgba(11, 42, 33, 0.68);
	}

	.wfvm-primary-cta:hover .wfvm-primary-cta__arrow {
		transform: translateX(5px);
	}

	.wfvm-access-proof__row:hover::before {
		transform: scaleX(1);
	}

	.wfvm-access-proof__row:hover .wfvm-access-proof__link {
		color: #fffaf0;
		transform: translateX(5px);
	}

	.wfvm-access-proof__row:hover .wfvm-access-proof__map-cue {
		opacity: 1;
		transform: translateX(0);
	}
}

.wfvm-access-proof__row:focus-within::before {
	transform: scaleX(1);
}

.wfvm-access-proof__row:focus-within .wfvm-access-proof__link {
	color: #fffaf0;
	transform: translateX(5px);
}

.wfvm-access-proof__row:focus-within .wfvm-access-proof__map-cue {
	opacity: 1;
	transform: translateX(0);
}

.wfvm-access-proof__link:active {
	transform: translateX(5px) scale(0.985);
	transition-duration: 90ms;
}

@media (hover: none), (pointer: coarse) {
	/* tap後のfocus-withinをhover表現として残さず、押下中だけ応答させる。 */
	.wfvm-access-proof__row::before,
	.wfvm-access-proof__link,
	.wfvm-access-proof__map-cue {
		transition-duration: 140ms;
	}

	.wfvm-access-proof__row:focus-within::before {
		transform: scaleX(0);
	}

	.wfvm-access-proof__row:focus-within .wfvm-access-proof__link {
		color: inherit;
		transform: none;
	}

	.wfvm-access-proof__row:focus-within .wfvm-access-proof__map-cue {
		opacity: 0.62;
		transform: translateX(-6px);
	}

	.wfvm-access-proof__row.is-touch-active::before {
		transform: scaleX(1);
		transition-duration: 140ms;
	}

	.wfvm-access-proof__link.is-touch-active,
	.wfvm-access-proof__link:active {
		color: #fffaf0;
		transform: translateX(3px) scale(0.985);
		transition-duration: 120ms;
	}

	.wfvm-access-proof__link.is-touch-active .wfvm-access-proof__map-cue,
	.wfvm-access-proof__link:active .wfvm-access-proof__map-cue {
		opacity: 1;
		transform: translateX(0);
		transition-duration: 120ms;
	}
}

.wfvm-access-proof__station {
	margin: 0;
	font: 500 22px/1.35 var(--wfvm-display);
	letter-spacing: 0.1em;
}

.wfvm-access-proof__time {
	display: flex;
	align-items: baseline;
	gap: 3px;
	margin: 0;
	line-height: 1;
	white-space: nowrap;
}

.wfvm-access-proof__time small {
	font: 500 16px/1 var(--wfvm-sans);
	letter-spacing: 0.08em;
}

.wfvm-access-proof__time strong {
	display: inline-block;
	color: var(--wfvm-gold-soft);
	font: 500 42px/0.9 var(--wfvm-latin);
	/* Cormorantの数字だけが和文より下へ沈むため、字形の重心を光学補正する。 */
	transform: translateY(-0.1em);
}

.wfvm-access-proof__time span {
	font: 500 16px/1 var(--wfvm-sans);
}

.wfvm-hero__visual {
	--wfvm-visual-scale: 1.2;
	position: absolute;
	z-index: 1;
	right: -10px;
	bottom: 6%;
	width: 244px;
	height: 258px;
	opacity: 1;
	transform: scale(var(--wfvm-visual-scale));
	transform-origin: right bottom;
	transition: none;
}

.wfvm-hero__visual.is-revealed {
	opacity: 1;
	transform: scale(var(--wfvm-visual-scale));
}

.wfvm-hero__portrait {
	position: absolute;
	z-index: 1;
	margin: 0;
	overflow: hidden;
	border: 2px solid rgba(248, 244, 236, 0.9);
	border-radius: 50%;
	background: #e9ece8;
	box-shadow: 0 18px 50px rgba(24, 18, 13, 0.3);
	pointer-events: auto;
	transform: scale(1);
	transform-origin: center;
	transition: transform 440ms cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

.wfvm-hero__portrait img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

.wfvm-hero__portrait--main {
	top: -55px;
	right: -55px;
	width: 330px;
	height: 330px;
}

.wfvm-hero__portrait--main img {
	object-position: 39% 50%;
}

.wfvm-hero__portrait--sub {
	z-index: 2;
	right: -76px;
	bottom: -88px;
	width: 192px;
	height: 192px;
}

.wfvm-hero__portrait--sub img {
	object-position: 48% 46%;
}

/* Keep the existing Wamuzu home UI below the replaced hero. */
#wamuzu-fv-mock > #content_builder {
	position: relative;
	z-index: 1;
	background: var(--wfvm-paper);
}

@media (min-width: 48rem) {
	.wfvm-hero__slide img {
		object-position: var(--wfvm-image-position, center);
	}

	.wfvm-title__question,
	.wfvm-title__identity {
		margin-left: -0.55em;
	}
}

@media (min-width: 75rem) {
	.wfvm-hero__summary {
		width: min(100%, 790px);
		max-width: none;
		letter-spacing: 0.035em;
		white-space: nowrap;
	}
}

@media (max-width: 75rem) {
	.wfvm-hero__inner {
		grid-template-columns: minmax(0, 1fr) 260px;
	}

	.wfvm-hero__copy {
		width: min(100%, 720px);
	}

	.wfvm-title {
		--wfvm-title-size: clamp(36px, 4.1vw, 48px);
	}

	.wfvm-hero__action {
		grid-template-columns: minmax(250px, 310px) minmax(0, 1fr);
	}
}

@media (max-width: 63.9375rem) {
	.wfvm-page {
		padding-top: 0;
	}

	.wfvm-hero {
		min-height: 860px;
		height: auto;
		max-height: none;
	}

	.wfvm-hero__inner {
		grid-template-columns: minmax(0, 1fr) 210px;
		padding-top: 58px;
		padding-bottom: 84px;
	}

	.wfvm-hero__copy {
		align-self: start;
	}

	.wfvm-hero__visual {
		--wfvm-visual-scale: 1;
		right: 24px;
		width: 220px;
		height: 232px;
	}

	.wfvm-hero__portrait--main {
		top: -35px;
		right: 0;
		width: 260px;
		height: 260px;
	}

	.wfvm-hero__portrait--sub {
		right: 0;
		bottom: -50px;
		width: 150px;
		height: 150px;
	}

	.wfvm-location {
		top: 0;
		width: 258px;
	}

	.wfvm-access-proof__station {
		font-size: 20px;
	}

	.wfvm-access-proof__time strong {
		font-size: 38px;
	}
}

@media (min-width: 48rem) and (max-width: 70rem) {
	.wfvm-hero__copy {
		padding-top: 22px;
	}

	.wfvm-hero__action {
		grid-template-columns: minmax(0, 1fr);
		width: min(100%, 390px);
	}

	.wfvm-review-proof {
		grid-column: 1;
		width: 100%;
	}
}

/*
 * 縦向きタブレット〜小型PCでは、円の右端がheroのclip境界を越えないよう
 * 既存の大小関係を保ったまま内側へ寄せる。
 */
@media (min-width: 64rem) and (max-width: 99.9375rem) {
	.wfvm-hero__visual {
		right: 16px;
	}

	.wfvm-hero__portrait--main {
		right: -45px;
	}

	.wfvm-hero__portrait--sub {
		right: -50px;
	}
}

@media (max-width: 47.9375rem) {
	/*
	 * PC版Chromeのモバイル表示で出るスクロール境界の1px明線を除去する。
	 * スクロール操作は維持し、FV自体の幅は拡張しない。
	 */
	html:has(body.wamuzu-fv-mock-page) {
		scrollbar-width: none;
	}

	html:has(body.wamuzu-fv-mock-page)::-webkit-scrollbar {
		display: none;
		width: 0;
		height: 0;
	}

	html:has(body.wamuzu-fv-mock-page),
	body.wamuzu-fv-mock-page {
		/* Safariのステータス領域をFV上端の写真トーンへ馴染ませる。 */
		background: #3c3732;
	}

	.wfvm-hero-brand {
		top: calc(18px + env(safe-area-inset-top, 0px));
		left: max(16px, env(safe-area-inset-left, 0px));
		width: clamp(168px, 52vw, 196px);
	}

	.wfvm-hero-menu-toggle {
		top: calc(10px + env(safe-area-inset-top, 0px));
		right: max(10px, env(safe-area-inset-right, 0px));
	}

	.wfvm-menu-toggle {
		top: 14px;
		right: 13px;
		width: 52px;
		height: 52px;
	}

	.wfvm-menu-toggle__lines,
	.wfvm-menu-toggle__lines i {
		width: 32px;
	}

	.wfvm-menu-toggle__lines {
		height: 20px;
	}

	.wfvm-menu-toggle__lines i:nth-child(2) {
		top: 9px;
	}

	.wfvm-menu-toggle__lines i:nth-child(3) {
		top: 18px;
	}

	.wfvm-menu-open .wfvm-menu-toggle__lines i:nth-child(1),
	.wfvm-menu-open .wfvm-menu-toggle__lines i:nth-child(3) {
		top: 9px;
	}

	.wfvm-menu-overlay {
		display: block;
	}

	.wfvm-menu-overlay__backdrop {
		position: absolute;
		inset: 0;
	}

	.wfvm-menu-overlay__panel {
		position: relative;
		width: 100%;
		padding: 82px 24px 28px;
	}

	.wfvm-menu-overlay__list a {
		padding-top: 14px;
		padding-bottom: 14px;
		font-size: 18px;
	}

	.wfvm-menu-overlay__reservation {
		margin-top: 24px;
	}

	.wfvm-hero {
		/*
		 * Safariのツールバー伸縮で実表示高が変わっても、円とACCESSを
		 * 1px境界で急拡大させない。幅とsvhの小さい方へ連続追従させる。
		 */
		--wfvm-mobile-stage-bottom: clamp(16px, calc(52.5svh - 359px), 128px);
		--wfvm-mobile-circle-size: clamp(128px, 35vw, 150px);
		--wfvm-mobile-sub-circle-size: clamp(70px, 20vw, 86px);
		--wfvm-mobile-access-lift:
			max(
				14px,
				calc((var(--wfvm-mobile-circle-size) - 106px) / 2 + 14px)
			);
		/*
		 * 上段コピーはロゴから呼吸を取りつつ、見出し同士の間だけが
		 * 端末高に比例して広がり過ぎないよう、役割ごとに間隔を分ける。
		 */
		--wfvm-mobile-copy-top: clamp(82px, 10.5svh, 96px);
		--wfvm-mobile-method-identity-gap: clamp(26px, 3.8svh, 34px);
		--wfvm-mobile-identity-features-gap: clamp(26px, 3.6svh, 32px);
		--wfvm-mobile-content-height: max(100svh, 41.6875rem);
		/*
		 * 320px級の短い端末では1画面への過圧縮より可読性を優先し、
		 * 必要な分だけヒーロー内を通常スクロールさせる。
		 */
		min-height: var(--wfvm-mobile-content-height);
		height: var(--wfvm-mobile-content-height);
		max-height: none;
	}

	.wfvm-hero__veil {
		background:
			linear-gradient(180deg, rgba(30, 25, 21, 0.78) 0%, rgba(38, 31, 26, 0.68) 52%, rgba(29, 25, 22, 0.86) 100%),
			linear-gradient(90deg, rgba(49, 39, 31, 0.32), rgba(20, 29, 27, 0.34));
	}

	.wfvm-hero__inner {
		display: block;
		min-width: 0;
		height: 100%;
		min-height: 0;
		padding:
			calc(var(--wfvm-mobile-copy-top) + env(safe-area-inset-top, 0px))
			16px
			calc(12px + env(safe-area-inset-bottom, 0px));
	}

	.wfvm-hero__copy {
		width: 100%;
	}

	.wfvm-brand-mark {
		top: 31px;
		left: 20px;
		font-size: 11px;
		letter-spacing: 0.26em;
	}

	.wfvm-brand-mark::before {
		content: none;
	}

	.wfvm-eyebrow {
		margin-bottom: clamp(7px, calc(4svh - 21px), 14px);
		font-size: 12px;
		line-height: 1.55;
		text-align: center;
	}

	.wfvm-title {
		--wfvm-title-size: clamp(20px, 6.15vw, 24px);
		line-height: 1.34;
		letter-spacing: 0.012em;
		text-align: center;
	}

	.wfvm-title__question {
		margin-left: 0;
		font-size: var(--wfvm-title-size);
		white-space: nowrap;
	}

	.wfvm-title__question-main,
	.wfvm-title__question-tail {
		display: inline;
		width: auto;
	}

	.wfvm-title__question-tail {
		margin: 0;
	}

	.wfvm-title__method {
		margin-top: clamp(10px, calc(4.8svh - 24px), 16px);
		font-size: var(--wfvm-title-size);
		letter-spacing: 0.01em;
		white-space: nowrap;
	}

	.wfvm-title__identity {
		margin: var(--wfvm-mobile-method-identity-gap) auto 0;
		padding-bottom: clamp(8px, calc(2.5svh - 10px), 12px);
		font-size: clamp(27px, 7.8vw, 33px);
		line-height: 1.24;
		white-space: nowrap;
	}

	.wfvm-hero__summary {
		display: none;
	}

	.wfvm-features-shell {
		margin-top: var(--wfvm-mobile-identity-features-gap);
		backdrop-filter: blur(8px);
		-webkit-backdrop-filter: blur(8px);
	}

	.wfvm-features > li {
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
		min-height: clamp(56px, 15vw, 62px);
		padding: 8px 7px;
		font-size: clamp(13.5px, 3.55vw, 14.5px);
		line-height: 1.38;
		letter-spacing: 0.005em;
	}

	.wfvm-features__index {
		font-size: 13.5px;
	}

	.wfvm-hero__action {
		display: grid;
		grid-template-columns: 1fr;
		gap: 6px;
		width: 100%;
		margin-top: calc(
			clamp(14px, calc(5svh - 20px), 24px) +
			clamp(0px, calc(8svh - 53.3px), 22px)
		);
	}

	.wfvm-primary-cta {
		min-height: 60px;
		padding: 7px 13px 7px 18px;
	}

	.wfvm-primary-cta__copy {
		gap: 1px;
	}

	.wfvm-primary-cta__kicker {
		font-size: 9px;
	}

	.wfvm-primary-cta__label {
		font-size: 17px;
		line-height: 1.3;
	}

	.wfvm-primary-cta__detail {
		font-size: 9px;
	}

	.wfvm-primary-cta__arrow {
		flex-basis: 38px;
		width: 38px;
	}

	.wfvm-review-proof {
		align-items: center;
		justify-content: center;
		gap: 1px;
		padding-left: 0;
	}

	.wfvm-review-proof__facts {
		align-items: center;
		gap: 7px;
		font: 400 11.5px/1 "Noto Sans JP", sans-serif;
		letter-spacing: 0.2px;
	}

	.wfvm-review-proof__stars svg {
		width: 13px;
		height: 13px;
	}

	.wfvm-review-proof__rating {
		font-size: 16px;
		font-weight: 500;
		line-height: 1;
		letter-spacing: 0.3px;
	}

	.wfvm-review-proof__divider {
		height: 12px;
	}

	.wfvm-review-proof__summary {
		font: 400 12px/1 "Noto Sans JP", sans-serif;
	}

	.wfvm-hero__stage {
		position: static;
	}

	.wfvm-location {
		top: auto;
		right: auto;
		bottom: calc(var(--wfvm-mobile-stage-bottom) + var(--wfvm-mobile-access-lift));
		left: 16px;
		width: clamp(140px, 42vw, 180px);
		padding-top: 0;
		border-top: 0;
		text-shadow: 0 2px 14px rgba(22, 17, 13, 0.44);
	}

	.wfvm-access-proof__eyebrow {
		margin-bottom: 4px;
		font-size: 11px;
	}

	.wfvm-access-proof__list {
		gap: 0;
	}

	.wfvm-access-proof__row {
		min-height: 44px;
		padding-block: 0;
		border-top: 1px solid rgba(248, 244, 236, 0.23);
		border-bottom: 0;
	}

	.wfvm-access-proof__row:last-child {
		border-bottom: 1px solid rgba(248, 244, 236, 0.23);
	}

	.wfvm-access-proof__link {
		grid-template-columns: minmax(0, 1fr) auto clamp(10px, 3vw, 12px);
		gap: clamp(5px, 1.5vw, 6px);
		min-height: 44px;
		padding: 0 0 8px;
		align-content: center;
	}

	.wfvm-access-proof__map-cue svg {
		width: clamp(10px, 3vw, 12px);
	}

	.wfvm-access-proof__station {
		font-size: clamp(14px, 3.8vw, 15px);
		letter-spacing: 0.04em;
	}

	.wfvm-access-proof__time {
		gap: 2px;
	}

	.wfvm-access-proof__time small,
	.wfvm-access-proof__time span {
		font-size: clamp(10px, 2.8vw, 11px);
	}

	.wfvm-access-proof__time strong {
		font-size: clamp(25px, 7.2vw, 28px);
		transform: translateY(-0.08em);
	}

	.wfvm-hero__visual {
		--wfvm-visual-scale: 1;
		right: 8px;
		bottom: var(--wfvm-mobile-stage-bottom);
		width: var(--wfvm-mobile-circle-size);
		height: var(--wfvm-mobile-circle-size);
		transform: scale(var(--wfvm-visual-scale));
	}

	.wfvm-hero__portrait--main {
		top: -2px;
		right: 18px;
		width: var(--wfvm-mobile-circle-size);
		height: var(--wfvm-mobile-circle-size);
	}

	.wfvm-hero__portrait--main img {
		object-position: 39% 50%;
	}

	.wfvm-hero__portrait--sub {
		right: 0;
		bottom: 0;
		width: var(--wfvm-mobile-sub-circle-size);
		height: var(--wfvm-mobile-sub-circle-size);
	}

	.mobile_device .wfvm-hero__visual {
		bottom: var(--wfvm-mobile-stage-bottom);
	}

	.mobile_device .wfvm-location {
		bottom: calc(var(--wfvm-mobile-stage-bottom) + var(--wfvm-mobile-access-lift));
	}
}

@media (max-width: 22.5rem) {
	.wfvm-hero {
		min-height: max(100svh, 41.6875rem);
		height: max(100svh, 41.6875rem);
		max-height: none;
	}

	.wfvm-hero__inner {
		min-height: 0;
		padding:
			calc(var(--wfvm-mobile-copy-top) + env(safe-area-inset-top, 0px))
			14px
			calc(10px + env(safe-area-inset-bottom, 0px));
	}

	.wfvm-title {
		--wfvm-title-size: 19.5px;
	}

	.wfvm-features > li {
		min-height: 54px;
		padding: 7px 6px;
		font-size: 12.75px;
	}

	.wfvm-location {
		left: 14px;
		width: 140px;
	}

	.wfvm-access-proof__station {
		font-size: 13px;
	}

	.wfvm-access-proof__time strong {
		font-size: 25px;
	}

	.wfvm-hero__visual {
		right: 6px;
	}
}

/*
 * 320 × 568px級の短い画面では、上段だけを段階的に圧縮する。
 * CTAと下段のACCESS／円形写真を重ねず、FV内の情報順序は保つ。
 */
@media (max-width: 22.5rem) and (max-height: 40rem) {
	.wfvm-hero {
		--wfvm-mobile-content-height: 100svh;
		min-height: var(--wfvm-mobile-content-height);
		height: var(--wfvm-mobile-content-height);
	}

	.wfvm-hero__inner {
		padding-top: calc(56px + env(safe-area-inset-top, 0px));
	}

	.wfvm-menu-toggle {
		top: 7px;
		right: 8px;
		transform: scale(0.88);
		transform-origin: top right;
	}

	.wfvm-eyebrow {
		margin-bottom: 4px;
		font-size: 10px;
		line-height: 1.4;
	}

	.wfvm-title {
		--wfvm-title-size: 18.5px;
		line-height: 1.25;
	}

	.wfvm-title__method {
		margin-top: 5px;
	}

	.wfvm-title__identity {
		margin-top: 16px;
		padding-bottom: 6px;
		font-size: 25px;
		line-height: 1.2;
	}

	.wfvm-hero__summary {
		display: none;
	}

	.wfvm-features-shell {
		margin-top: 16px;
	}

	.wfvm-features > li {
		gap: 2px;
		min-height: 50px;
		padding: 5px 6px;
		font-size: 12.5px;
		line-height: 1.32;
	}

	.wfvm-features__index {
		font-size: 12px;
	}

	.wfvm-hero__action {
		gap: 4px;
		margin-top: 8px;
	}

	.wfvm-primary-cta {
		min-height: 50px;
		padding: 4px 10px 4px 14px;
	}

	.wfvm-primary-cta__kicker,
	.wfvm-primary-cta__detail {
		font-size: 9px;
	}

	.wfvm-primary-cta__label {
		font-size: 16px;
	}

	.wfvm-primary-cta__arrow {
		flex-basis: 32px;
		width: 32px;
	}

	.wfvm-review-proof__facts {
		gap: 4px;
		font-size: 10.5px;
	}

	.wfvm-review-proof__stars svg {
		width: 11px;
		height: 11px;
	}

	.wfvm-review-proof__rating {
		font-size: 15px;
	}

	.wfvm-review-proof__summary {
		font-size: 10.5px;
	}

}

/*
 * iOS Safariの半透明な下部ツールバーの背後まで、ヒーロー内の同じ
 * 画像要素そのものを連続して延ばす。補完用の別背景や疑似要素は重ねず、
 * 情報レイアウトは実表示高（svh）内に固定したまま写真だけを描画する。
 */
@supports (-webkit-touch-callout: none) {
	@media (max-width: 47.9375rem) {
		.wfvm-hero {
			/* Safari下部UI（約98px）より長く取り、次セクション色を透かさない。 */
			--wfvm-safari-photo-bleed: calc(7rem + env(safe-area-inset-bottom, 0px));
			min-height: calc(
				var(--wfvm-mobile-content-height) +
				var(--wfvm-safari-photo-bleed)
			);
			height: calc(
				var(--wfvm-mobile-content-height) +
				var(--wfvm-safari-photo-bleed)
			);
		}

		.wfvm-hero__inner {
			height: var(--wfvm-mobile-content-height);
		}
	}
}

@media (hover: hover) and (pointer: fine) {
	.wfvm-hero__portrait:hover {
		transform: scale(1.04);
	}
}

@media (prefers-reduced-motion: no-preference) {
	.wfvm-brand-mark,
	.wfvm-eyebrow,
	.wfvm-title,
	.wfvm-hero__summary,
	.wfvm-features-shell,
	.wfvm-hero__action,
	.wfvm-location {
		opacity: 0;
		transform: translateY(24px);
		animation: wfvm-enter 900ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
	}

	.wfvm-eyebrow {
		animation-delay: 80ms;
	}

	.wfvm-title {
		animation-delay: 140ms;
	}

	.wfvm-hero__summary {
		animation-delay: 220ms;
	}

	.wfvm-features-shell {
		animation-delay: 300ms;
	}

	.wfvm-hero__action {
		animation-delay: 380ms;
	}

	.wfvm-location {
		animation-delay: 460ms;
	}

	@keyframes wfvm-enter {
		to {
			opacity: 1;
			transform: translateY(0);
		}
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.wfvm-hero__slide {
		display: none;
		transition: none;
	}

	.wfvm-hero__slide:first-child {
		display: block;
		opacity: 1;
	}

	.wfvm-hero__slide img,
	.wfvm-hero__slide.is-active.is-animated img {
		transform: none;
		transition: none;
	}

	.wfvm-primary-cta,
	.wfvm-primary-cta::before,
	.wfvm-primary-cta::after,
	.wfvm-primary-cta__kicker,
	.wfvm-primary-cta__detail,
	.wfvm-primary-cta__arrow,
	.wfvm-access-proof__row::before,
	.wfvm-access-proof__link,
	.wfvm-access-proof__map-cue,
	.wfvm-hero__visual,
	.wfvm-hero__portrait,
	.wfvm-menu-toggle__lines i,
	.wfvm-menu-overlay,
	.wfvm-menu-overlay__backdrop,
	.wfvm-menu-overlay__panel {
		transition: none;
	}

	.wfvm-hero__visual {
		opacity: 1;
		transform: scale(var(--wfvm-visual-scale));
	}

	.wfvm-primary-cta::after {
		opacity: 0;
		transform: none;
	}

	.wfvm-hero__portrait,
	.wfvm-hero__portrait:hover {
		transform: none;
	}

	.wfvm-primary-cta:active,
	.wfvm-primary-cta.is-touch-active,
	.wfvm-access-proof__link:active,
	.wfvm-access-proof__link.is-touch-active {
		transform: none;
	}
}

@media (prefers-contrast: more) {
	.wfvm-hero__veil {
		background: rgba(5, 22, 17, 0.78);
	}

	.wfvm-features-shell,
	.wfvm-primary-cta,
	.wfvm-location {
		border-width: 2px;
	}
}
