/* Flames v2 prototype: dark, cinematic, editorial. Loaded on the front page only.
   Fonts: Sofia Sans Extra Condensed (display) + Inter Tight (UI/body), both self-hosted, latin + greek.
   One accent (the logo flame) for buttons and small details. Motion states only apply under .js-motion. */

@font-face { font-family: "Sofia Sans Extra Condensed"; font-weight: 1 1000; font-display: swap; src: url("../fonts/sofia-extra-condensed-latin.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Sofia Sans Extra Condensed"; font-weight: 1 1000; font-display: swap; src: url("../fonts/sofia-extra-condensed-greek.woff2") format("woff2"); unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family: "Inter Tight"; font-weight: 100 900; font-display: swap; src: url("../fonts/inter-tight-latin.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Inter Tight"; font-weight: 100 900; font-display: swap; src: url("../fonts/inter-tight-greek.woff2") format("woff2"); unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }

:root {
	--v2-bg: #0b0a09;
	--v2-bg2: #141210;
	--v2-fg: #ede6da;
	--v2-mute: #9a9288;
	--v2-line: rgba(237, 230, 218, 0.16);
	--v2-accent: #e8531f;
	--v2-pad: clamp(1.25rem, 3.4vw, 3.25rem);
	--v2-gap: clamp(0.75rem, 1.6vw, 1.5rem);
	--v2-display: "Sofia Sans Extra Condensed", "Arial Narrow", Impact, sans-serif;
	--v2-ui: "Inter Tight", system-ui, -apple-system, "Segoe UI", sans-serif;
	--v2-ease: cubic-bezier(0.77, 0, 0.18, 1);
	--v2-out: cubic-bezier(0.16, 1, 0.3, 1);
}

body.v2 { margin: 0; background: var(--v2-bg); color: var(--v2-fg); font-family: var(--v2-ui); font-size: 1.0625rem; line-height: 1.6; -webkit-font-smoothing: antialiased; }
html.is-menu-open, html.is-menu-open body { overflow: hidden; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
.v2 *, .v2 *::before, .v2 *::after { box-sizing: border-box; }
.v2 img { display: block; max-width: 100%; height: auto; }
.v2 a { color: inherit; text-decoration: none; }
.v2 :focus-visible { outline: 2px solid var(--v2-accent); outline-offset: 4px; }
.v2 ::selection { background: var(--v2-accent); color: var(--v2-bg); }
.v2 .wp-site-blocks { padding: 0; }
.v2 .wp-site-blocks > * { margin-block: 0; }
.v2-sr { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.v2-skip { position: fixed; left: var(--v2-pad); top: -4rem; z-index: 400; background: var(--v2-fg); color: var(--v2-bg) !important; padding: 0.75rem 1rem; font-size: 0.8rem; letter-spacing: 0.15em; text-transform: uppercase; }
.v2-skip:focus { top: var(--v2-pad); }

/* ---------- type ---------- */
.v2-display { font-family: var(--v2-display); font-weight: 800; text-transform: uppercase; line-height: 0.86; letter-spacing: -0.005em; margin: 0; }
.v2-h1 { font-size: clamp(4.25rem, 17vw, 17rem); }
.v2-h2 { font-size: clamp(3.25rem, 9.5vw, 10rem); }
.v2-index { margin: 0 0 clamp(1.5rem, 3vw, 2.5rem); font: 500 0.72rem/1 var(--v2-ui); letter-spacing: 0.22em; text-transform: uppercase; color: var(--v2-mute); }
.v2-index span { color: var(--v2-accent); margin-right: 1.1em; }
.v2-lede { font-size: clamp(1.1rem, 1.45vw, 1.35rem); line-height: 1.55; color: var(--v2-fg); max-width: 34rem; }
.v2-copy { color: var(--v2-mute); max-width: 32rem; }
.v2-link { position: relative; display: inline-block; font: 500 0.75rem/1 var(--v2-ui); letter-spacing: 0.2em; text-transform: uppercase; padding-bottom: 0.7em; }
.v2-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform-origin: right; transition: transform 0.6s var(--v2-out); }
.v2-link::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--v2-accent); transform: scaleX(0); transform-origin: left; transition: transform 0.6s var(--v2-out); z-index: 1; }
.v2-link:hover::before { transform: scaleX(1); }

/* ---------- buttons (square, uppercase, wide tracking) ---------- */
.v2-btn { position: relative; display: inline-flex; align-items: center; gap: 0.9em; padding: 1.15em 2em; border: 1px solid var(--v2-fg); background: transparent; color: var(--v2-fg); font: 500 0.72rem/1 var(--v2-ui); letter-spacing: 0.22em; text-transform: uppercase; overflow: hidden; isolation: isolate; cursor: pointer; transition: color 0.45s var(--v2-out), border-color 0.45s var(--v2-out); }
.v2-btn::before { content: ""; position: absolute; inset: 0; background: var(--v2-fg); transform: translateY(101%); transition: transform 0.5s var(--v2-out); z-index: -1; }
.v2-btn:hover, .v2-btn:focus-visible { color: var(--v2-bg); }
.v2-btn:hover::before, .v2-btn:focus-visible::before { transform: none; }
.v2-btn--accent { background: var(--v2-accent); border-color: var(--v2-accent); color: var(--v2-bg); }
.v2-btn--sm { padding: 0.95em 1.5em; }

/* ---------- intro + curtain ---------- */
.v2-intro { position: fixed; inset: 0; z-index: 300; background: var(--v2-bg); display: none; place-items: center; }
.has-intro .v2-intro { display: grid; }
.v2-intro__logo { width: min(21rem, 62vw); height: auto; clip-path: inset(0 0 100% 0); }
.v2-curtain { position: fixed; inset: 0; z-index: 290; background: var(--v2-bg); transform: translateY(100%); pointer-events: none; border-top: 2px solid var(--v2-accent); visibility: hidden; }
.has-curtain .v2-curtain { transform: none; visibility: visible; }

/* ---------- cursor (fine pointers only) ---------- */
.v2-cursor { position: fixed; left: 0; top: 0; z-index: 350; width: 0.75rem; height: 0.75rem; margin: -0.375rem 0 0 -0.375rem; border-radius: 50%; background: var(--v2-fg); mix-blend-mode: difference; pointer-events: none; opacity: 0; display: grid; place-items: center; transition: width 0.35s var(--v2-out), height 0.35s var(--v2-out), margin 0.35s var(--v2-out), background-color 0.3s; }
.v2-cursor.is-on { opacity: 1; }
.v2-cursor.is-link { width: 3rem; height: 3rem; margin: -1.5rem 0 0 -1.5rem; }
.v2-cursor.is-label { width: 5.5rem; height: 5.5rem; margin: -2.75rem 0 0 -2.75rem; mix-blend-mode: normal; }
.v2-cursor__label { font: 600 0.62rem/1 var(--v2-ui); letter-spacing: 0.2em; text-transform: uppercase; color: var(--v2-bg); opacity: 0; transition: opacity 0.25s; }
.v2-cursor.is-label .v2-cursor__label { opacity: 1; }
@media (hover: hover) and (pointer: fine) { html.js-motion.has-cursor, html.js-motion.has-cursor a, html.js-motion.has-cursor button { cursor: none; } }
@media (hover: none), (pointer: coarse) { .v2-cursor { display: none; } }

/* ---------- header ---------- */
.v2-header { position: fixed; z-index: 100; top: 0; left: 0; right: 0; display: flex; align-items: center; justify-content: space-between; padding: clamp(0.75rem, 1.4vw, 1.25rem) var(--v2-pad); transition: transform 0.6s var(--v2-out), background-color 0.4s; }
.v2-header.is-hidden { transform: translateY(-110%); }
.v2-header.is-solid { background: rgba(11, 10, 9, 0.82); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.v2-header__logo img { height: clamp(3.4rem, 6vw, 5rem); width: auto; }
.v2-header__right { display: flex; align-items: center; gap: clamp(0.75rem, 1.8vw, 1.75rem); }
.v2-menu-btn { display: inline-flex; align-items: center; gap: 0.9em; background: none; border: 0; padding: 0.6em 0; color: var(--v2-fg); font: 500 0.72rem/1 var(--v2-ui); letter-spacing: 0.22em; text-transform: uppercase; cursor: pointer; }
.v2-menu-btn__bars { position: relative; width: 1.9rem; height: 0.7rem; }
.v2-menu-btn__bars i { position: absolute; left: 0; right: 0; height: 1px; background: currentColor; transition: transform 0.5s var(--v2-out), top 0.5s var(--v2-out); }
.v2-menu-btn__bars i:first-child { top: 0; } .v2-menu-btn__bars i:last-child { top: 100%; }
.is-menu-open .v2-menu-btn__bars i:first-child { top: 50%; transform: rotate(45deg); }
.is-menu-open .v2-menu-btn__bars i:last-child { top: 50%; transform: rotate(-45deg); }
.is-menu-open .v2-header { z-index: 260; transform: none; background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }

/* fixed edge tab */
.v2-edge { position: fixed; right: 0; top: 50%; z-index: 90; transform: translateY(-50%); writing-mode: vertical-rl; padding: 1.4rem 0.75rem; font: 500 0.68rem/1 var(--v2-ui); letter-spacing: 0.26em; text-transform: uppercase; color: var(--v2-fg); background: transparent; display: none; transition: color 0.3s; }
.v2-edge:hover { color: var(--v2-accent); }
@media (min-width: 900px) { .v2-edge { display: block; } }

/* ---------- full-screen menu ---------- */
.v2-menu { position: fixed; inset: 0; z-index: 250; background: var(--v2-bg); visibility: hidden; clip-path: inset(0 0 100% 0); transition: clip-path 0.9s var(--v2-ease), visibility 0s 0.9s; overflow-y: auto; overscroll-behavior: contain; }
.v2-menu.is-open { visibility: visible; clip-path: inset(0); transition: clip-path 0.9s var(--v2-ease), visibility 0s; }
.v2-menu__inner { min-height: 100%; display: grid; align-content: center; gap: 3rem; padding: 7rem var(--v2-pad) 2.5rem; }
.v2-menu__list { list-style: none; margin: 0; padding: 0; }
.v2-menu__list a { display: flex; align-items: baseline; gap: 1.2rem; padding: 0.15em 0; transition: opacity 0.4s; }
.v2-menu__list:has(a:hover) a:not(:hover), .v2-menu__list:has(a:focus-visible) a:not(:focus-visible) { opacity: 0.3; }
.v2-menu__idx { font: 500 0.72rem/1 var(--v2-ui); letter-spacing: 0.2em; color: var(--v2-accent); min-width: 2rem; }
.v2-menu__txt { display: block; overflow: hidden; font-family: var(--v2-display); font-weight: 800; text-transform: uppercase; font-size: clamp(3.4rem, 12vw, 9.5rem); line-height: 0.95; }
.v2-menu__txt > span { display: block; transform: translateY(105%); transition: transform 0.8s var(--v2-out); }
.v2-menu.is-open .v2-menu__txt > span { transform: none; transition-delay: calc(0.35s + var(--i) * 70ms); }
.v2-menu__aside { display: grid; gap: 1.5rem; font-size: 0.9rem; color: var(--v2-mute); opacity: 0; transition: opacity 0.6s 0.9s; }
.v2-menu.is-open .v2-menu__aside { opacity: 1; }
.v2-menu__aside strong { display: block; color: var(--v2-fg); font: 500 0.68rem/1 var(--v2-ui); letter-spacing: 0.22em; text-transform: uppercase; margin-bottom: 0.7rem; }
.v2-menu__aside a:hover { color: var(--v2-fg); }
@media (min-width: 900px) {
	.v2-menu__inner { grid-template-columns: 1fr 22rem; align-items: end; }
	.v2-menu__aside { align-self: end; }
}

/* ---------- hero ---------- */
.v2-hero { position: relative; min-height: 100svh; display: grid; grid-template-rows: auto 1fr auto; overflow: hidden; padding: clamp(5.5rem, 13vh, 9rem) var(--v2-pad) clamp(1.5rem, 3vw, 2.75rem); }
.v2-hero__media { position: absolute; inset: 0; overflow: hidden; }
[data-parallax-wrap] img { position: absolute; left: 0; top: -10%; width: 100%; height: 120%; object-fit: cover; will-change: transform; }
.v2-hero__img { top: -15%; height: 122%; object-position: 42% 12%; }
.v2-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,10,9,0.25) 0%, rgba(11,10,9,0) 38%, rgba(11,10,9,0.15) 62%, rgba(11,10,9,0.9) 100%); }
.v2-hero__h1 { position: relative; z-index: 2; margin: 0; }
.v2-hero__word { display: flex; justify-content: space-between; align-items: flex-end; font-family: var(--v2-display); font-weight: 800; text-transform: uppercase; line-height: 0.82; font-size: 37vw; letter-spacing: 0; }
@media (min-width: 700px) { .v2-hero__word { font-size: min(21.5vw, 40svh); } }
.v2-ch { display: block; overflow: hidden; perspective: 700px; padding: 0.04em 0 0.02em; }
.v2-ch__i { display: block; will-change: transform; transform-origin: 50% 100%; }
.v2-hero__foot { position: relative; z-index: 2; align-self: end; display: grid; gap: 1.25rem 2rem; align-items: end; padding-top: 1.25rem; }
.v2-hero__tag { margin: 0; font-family: var(--v2-display); font-weight: 800; text-transform: uppercase; line-height: 0.9; font-size: clamp(2.4rem, 6.2vw, 6.5rem); }
.v2-hero__info { display: grid; gap: 0.35rem; font: 500 0.7rem/1.5 var(--v2-ui); letter-spacing: 0.18em; text-transform: uppercase; }
.v2-hero__info p { margin: 0; }
.v2-hero__hours { color: var(--v2-mute); }
.v2-hero__info .v2-link { justify-self: start; margin-top: 0.9rem; }
@media (min-width: 800px) { .v2-hero__foot { grid-template-columns: 1fr auto; } .v2-hero__info { text-align: right; } .v2-hero__info .v2-link { justify-self: end; } }

/* ---------- ticker under the hero ---------- */
.v2-marquee { overflow: hidden; border-block: 1px solid var(--v2-line); background: var(--v2-bg); padding: 1rem 0 0.9rem; user-select: none; }
.v2-marquee__track { display: flex; width: max-content; will-change: transform; }
.v2-marquee__set { display: flex; flex: none; white-space: nowrap; }
.v2-marquee__set span { font-family: var(--v2-display); font-weight: 800; text-transform: uppercase; font-size: clamp(1.7rem, 3.4vw, 3.2rem); line-height: 1; padding-right: clamp(1.5rem, 3vw, 3rem); }
.v2-marquee__set span:nth-child(even) { color: transparent; -webkit-text-stroke: 1px var(--v2-mute); }

/* ---------- story ---------- */
.v2-story { position: relative; padding: clamp(6rem, 16vh, 13rem) var(--v2-pad) clamp(3rem, 8vh, 7rem); overflow: hidden; }
.v2-story__big { position: absolute; right: -2vw; top: 4vh; font-size: clamp(14rem, 44vw, 52rem); color: transparent; -webkit-text-stroke: 1px var(--v2-line); line-height: 0.78; pointer-events: none; user-select: none; z-index: 0; }
.v2-story__grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(12, 1fr); column-gap: var(--v2-gap); row-gap: clamp(2rem, 5vw, 4rem); }
.v2-story__head { grid-column: 1 / -1; position: relative; z-index: 3; }
.v2-story__head .v2-display { font-size: clamp(3.4rem, 11vw, 11.5rem); }
.v2-story__body { grid-column: 1 / -1; }
.v2-story__body p { margin: 0 0 1.25rem; }
.v2-img { position: relative; overflow: hidden; background: var(--v2-bg2); }
.v2-img img { width: 100%; height: 100%; object-fit: cover; }
.v2-story__a { grid-column: 3 / -1; aspect-ratio: 3 / 4; }
.v2-story__b { grid-column: 1 / 8; aspect-ratio: 4 / 3; margin-top: calc(-1 * clamp(3rem, 12vw, 8rem)); position: relative; z-index: 2; }
@media (min-width: 900px) {
	.v2-story__head { grid-column: 1 / 10; grid-row: 1; }
	.v2-story__body { grid-column: 2 / 6; grid-row: 2; align-self: start; }
	.v2-story__a { grid-column: 8 / 13; grid-row: 1 / 4; margin-top: clamp(6rem, 22vw, 20rem); }
	.v2-story__b { grid-column: 5 / 9; grid-row: 3; margin-top: calc(-1 * clamp(4rem, 9vw, 9rem)); }
}

/* ---------- signature dishes ---------- */
.v2-dishes { padding: clamp(3rem, 9vh, 8rem) var(--v2-pad) clamp(5rem, 14vh, 11rem); background: var(--v2-bg); }
.v2-dishes__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1.5rem 3rem; margin-bottom: clamp(2.5rem, 6vw, 5rem); }
.v2-dishes__list { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--v2-line); }
.v2-dish { display: grid; grid-template-columns: 2.4rem 1fr auto; column-gap: clamp(0.75rem, 2vw, 2rem); align-items: baseline; padding: clamp(1rem, 2.2vw, 2rem) 0; border-top: 1px solid var(--v2-line); transition: opacity 0.45s; }
.v2-dishes__list:has(.v2-dish:hover) .v2-dish:not(:hover) { opacity: 0.28; }
.v2-dish__n { font: 500 0.72rem/1 var(--v2-ui); letter-spacing: 0.2em; color: var(--v2-accent); }
.v2-dish__name { margin: 0; font-family: var(--v2-display); font-weight: 800; text-transform: uppercase; font-size: clamp(2.5rem, 8.2vw, 8rem); line-height: 0.9; transition: transform 0.6s var(--v2-out); }
.v2-dish:hover .v2-dish__name { transform: translateX(clamp(0.5rem, 1.5vw, 1.5rem)); }
.v2-dish__price { font: 500 0.9rem/1 var(--v2-ui); letter-spacing: 0.08em; white-space: nowrap; }
.v2-dish__desc { grid-column: 2 / -1; margin: 0.75rem 0 0; max-width: 40rem; color: var(--v2-mute); font-size: 0.95rem; line-height: 1.5; }
.v2-dishes__preview { display: none; }
@media (min-width: 900px) {
	.v2-dishes__preview { display: block; position: fixed; left: 0; top: 0; width: clamp(16rem, 24vw, 24rem); aspect-ratio: 4 / 5; pointer-events: none; z-index: 60; overflow: hidden; opacity: 0; will-change: transform; }
}
.v2-follow-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 0.35s; }
.v2-follow-img.is-active { opacity: 1; }

/* ---------- reviews ---------- */
.v2-reviews { padding: clamp(4rem, 12vh, 10rem) var(--v2-pad); border-top: 1px solid var(--v2-line); }
.v2-reviews__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1.5rem 3rem; margin-bottom: clamp(2.5rem, 6vw, 5rem); }
.v2-reviews__note { margin: 0 0 2rem; padding: 0.75rem 1rem; border: 1px dashed var(--v2-mute); color: var(--v2-mute); font-size: 0.8rem; }
.v2-reviews__list { display: grid; gap: clamp(2.5rem, 5vw, 4rem) var(--v2-gap); }
.v2-review { margin: 0; padding-top: 1.25rem; border-top: 1px solid var(--v2-line); }
.v2-review__rate { margin: 0 0 1.25rem; font: 500 0.72rem/1 var(--v2-ui); letter-spacing: 0.22em; text-transform: uppercase; color: var(--v2-accent); }
.v2-review__quote { margin: 0; }
.v2-review__quote p { margin: 0; font-size: clamp(1.2rem, 1.9vw, 1.75rem); line-height: 1.32; letter-spacing: -0.01em; }
.v2-review__quote p::before { content: "\201C"; margin-right: 0.04em; font-family: var(--v2-ui); font-weight: 300; font-size: 1.5em; line-height: 0; vertical-align: -0.12em; color: var(--v2-mute); }
.v2-review__by { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; margin-top: 1.5rem; font: 500 0.68rem/1.4 var(--v2-ui); letter-spacing: 0.2em; text-transform: uppercase; color: var(--v2-mute); }
.v2-review__by a { color: var(--v2-fg); border-bottom: 1px solid var(--v2-line); }
.v2-review__by a:hover { border-color: var(--v2-accent); }
@media (min-width: 900px) {
	.v2-reviews__list { grid-template-columns: repeat(12, 1fr); }
	.v2-review { grid-column: span 4; }
	.v2-review:nth-child(3n + 2) { margin-top: clamp(3rem, 8vw, 8rem); }
	.v2-review:nth-child(3n) { margin-top: clamp(6rem, 16vw, 16rem); }
	.v2-review:nth-child(n + 4) { margin-top: clamp(1rem, 3vw, 3rem); }
	.v2-review:nth-child(3n + 5) { margin-top: clamp(4rem, 10vw, 10rem); }
	.v2-review:nth-child(3n + 6) { margin-top: clamp(1rem, 3vw, 3rem); }
}

/* ---------- gallery (horizontal on desktop with motion, swipe row otherwise) ---------- */
.v2-room { position: relative; background: var(--v2-bg2); overflow: hidden; }
.v2-room__head { padding: clamp(5rem, 12vh, 9rem) var(--v2-pad) clamp(2rem, 4vw, 3rem); }
.v2-room__head .v2-display { font-size: clamp(3.4rem, 10vw, 10.5rem); }
.v2-room__track { display: flex; align-items: flex-start; gap: var(--v2-gap); padding: 0 var(--v2-pad) clamp(4rem, 9vh, 7rem); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.v2-room__track::-webkit-scrollbar { display: none; }
.v2-room__item { flex: 0 0 82vw; margin: 0; scroll-snap-align: start; }
.v2-room__item .v2-img { aspect-ratio: 4 / 5; }
.v2-room__item:nth-child(even) .v2-img { aspect-ratio: 4 / 3; }
.v2-room__item figcaption { margin-top: 0.9rem; font: 500 0.68rem/1.4 var(--v2-ui); letter-spacing: 0.2em; text-transform: uppercase; color: var(--v2-mute); }
.v2-room__item figcaption b { color: var(--v2-accent); font-weight: 500; margin-right: 1em; }
@media (min-width: 900px) {
	.js-motion .v2-room { height: 100vh; display: flex; flex-direction: column; }
	.js-motion .v2-room__head { padding-top: clamp(4.5rem, 11vh, 7rem); padding-bottom: 0; flex: none; }
	.js-motion .v2-room__track { flex: 1; overflow: visible; scroll-snap-type: none; align-items: center; width: max-content; padding-bottom: 2rem; padding-right: 12vw; gap: clamp(2rem, 5vw, 6rem); }
	.js-motion .v2-room__item { flex: none; width: auto; }
	.js-motion .v2-room__item .v2-img { height: 50vh; aspect-ratio: auto; }
	.js-motion .v2-room__item:nth-child(1) .v2-img { width: 30vw; height: 54vh; }
	.js-motion .v2-room__item:nth-child(2) .v2-img { width: 38vw; height: 42vh; }
	.js-motion .v2-room__item:nth-child(3) .v2-img { width: 26vw; height: 56vh; }
	.js-motion .v2-room__item:nth-child(4) .v2-img { width: 36vw; height: 46vh; }
	.js-motion .v2-room__item:nth-child(2n) { align-self: flex-end; }
	.js-motion .v2-room__item:nth-child(3) { align-self: flex-start; margin-top: 2vh; }
}

/* ---------- reservation call-to-action ---------- */
.v2-book { position: relative; min-height: 100svh; display: grid; align-content: space-between; gap: 3rem; padding: clamp(5rem, 12vh, 9rem) var(--v2-pad) clamp(1.75rem, 3vw, 2.75rem); overflow: hidden; }
.v2-book__media { position: absolute; inset: 0; z-index: 0; }
.v2-book__shade { position: absolute; inset: 0; z-index: 1; background: rgba(11, 10, 9, 0.74); }
.v2-book > *:not(.v2-book__media):not(.v2-book__shade) { position: relative; z-index: 2; }
.v2-book__cta { display: block; font-size: clamp(4.25rem, 20vw, 21rem); }
.v2-book__cta span { display: block; overflow: hidden; }
.v2-book__cta i { position: relative; display: inline-block; font-style: normal; }
.v2-book__cta i::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0.04em; height: 0.06em; background: var(--v2-accent); transform: scaleX(0); transform-origin: left; transition: transform 0.8s var(--v2-out); }
.v2-book__cta:hover i::after, .v2-book__cta:focus-visible i::after { transform: scaleX(1); }
.v2-book__arrow { display: inline-block; margin-left: 0.12em; transition: transform 0.6s var(--v2-out); }
.v2-book__cta:hover .v2-book__arrow { transform: translateX(0.1em); }
.v2-book__meta { display: grid; gap: 1.75rem 3rem; padding-top: 1.5rem; border-top: 1px solid var(--v2-line); font-size: 0.95rem; }
.v2-book__meta strong { display: block; margin-bottom: 0.6rem; font: 500 0.68rem/1 var(--v2-ui); letter-spacing: 0.22em; text-transform: uppercase; color: var(--v2-mute); }
.v2-book__meta p { margin: 0; }
@media (min-width: 800px) { .v2-book__meta { grid-template-columns: repeat(3, 1fr); } }

/* ---------- menu pages (popular dishes, full menu) ---------- */
.v2-mp { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem var(--v2-gap); padding: clamp(1.5rem, 4vh, 3rem) var(--v2-pad) clamp(4.5rem, 12vh, 9rem); border-top: 1px solid var(--v2-line); }
.v2-pnav { position: sticky; top: 5.6rem; z-index: 20; display: flex; gap: 0.5rem 1.25rem; margin: 0 calc(-1 * var(--v2-pad)); padding: 0.9rem var(--v2-pad); overflow-x: auto; list-style: none; background: rgba(11, 10, 9, 0.9); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid var(--v2-line); scrollbar-width: none; }
.v2-pnav::-webkit-scrollbar { display: none; }
.v2-pnav { transition: top 0.6s var(--v2-out); }
.is-header-hidden .v2-pnav { top: 0; }
.v2-pnav a { display: block; white-space: nowrap; padding: 0.3rem 0; font: 500 0.68rem/1.4 var(--v2-ui); letter-spacing: 0.2em; text-transform: uppercase; color: var(--v2-mute); border-bottom: 1px solid transparent; transition: color 0.3s, border-color 0.3s; }
.v2-pnav a:hover, .v2-pnav a[aria-current="true"] { color: var(--v2-fg); border-color: var(--v2-accent); }
.v2-msec { padding-top: clamp(3rem, 8vh, 6rem); scroll-margin-top: 6rem; }
.v2-msec:first-child { padding-top: clamp(1.5rem, 4vh, 3rem); }
.v2-msec__head { margin-bottom: clamp(1rem, 2.5vw, 2rem); }
.v2-msec__head .v2-index { margin-bottom: 1rem; }
.v2-msec__head h2 { font-size: clamp(3.4rem, 9vw, 9rem); }
.v2-mlist { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--v2-line); }
.v2-mitem { display: grid; grid-template-columns: 1fr auto; gap: 0.5rem 2rem; align-items: baseline; padding: clamp(1rem, 2vw, 1.6rem) 0; border-top: 1px solid var(--v2-line); }
.v2-mitem__name { margin: 0; font-family: var(--v2-display); font-weight: 800; text-transform: uppercase; font-size: clamp(1.9rem, 3.8vw, 3.6rem); line-height: 0.95; transition: transform 0.6s var(--v2-out); }
.v2-mitem:hover .v2-mitem__name { transform: translateX(clamp(0.4rem, 1vw, 1rem)); }
.v2-mitem__price { font: 500 0.95rem/1 var(--v2-ui); letter-spacing: 0.06em; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v2-mitem__price small { display: block; margin-top: 0.4rem; font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--v2-mute); }
.v2-mitem__price--opts { display: grid; gap: 0.55rem; }
.v2-mitem__price--opts span { display: flex; justify-content: flex-end; align-items: baseline; gap: 0.9rem; }
.v2-mitem__price--opts small { margin: 0; }
.v2-mitem__desc { grid-column: 1; margin: 0; max-width: 42rem; color: var(--v2-mute); font-size: 0.97rem; line-height: 1.5; }
.v2-mitem__tags { grid-column: 1; display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.4rem 0 0; padding: 0; list-style: none; }
.v2-mitem__tags li { padding: 0.4em 0.7em 0.35em; border: 1px solid var(--v2-line); font: 500 0.62rem/1 var(--v2-ui); letter-spacing: 0.2em; text-transform: uppercase; color: var(--v2-fg); }
.v2-mitem__tags .is-popular { border-color: var(--v2-accent); color: var(--v2-accent); }
.v2-mp__end { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem 2.5rem; margin-top: clamp(3rem, 7vh, 5rem); }
@media (min-width: 900px) {
	.v2-mp { grid-template-columns: repeat(12, 1fr); align-items: start; }
	.is-header-hidden .v2-pnav { top: 6rem; }
	.v2-pnav { grid-column: 1 / 4; top: 8.5rem; flex-direction: column; margin: 0; padding: 0; overflow: visible; background: none; border: 0; -webkit-backdrop-filter: none; backdrop-filter: none; gap: 0.35rem; }
	.v2-mp__body { grid-column: 5 / 13; }
}

/* full menu: tabs + search */
.v2-pnav [role="tab"][aria-selected="true"] { color: var(--v2-fg); border-color: var(--v2-accent); }
.v2-mp__side, .v2-mp__body { min-width: 0; }
.v2-mp--tabs .v2-mp__side { position: sticky; top: 5.6rem; z-index: 20; margin: 0 calc(-1 * var(--v2-pad)); padding: 0.75rem var(--v2-pad) 0; background: rgba(11, 10, 9, 0.92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid var(--v2-line); transition: top 0.6s var(--v2-out); }
.is-header-hidden .v2-mp--tabs .v2-mp__side { top: 0; }
.v2-mp--tabs .v2-pnav { position: static; margin: 0; padding: 0.55rem 0 0.7rem; background: none; border: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
.v2-msearch input { width: 100%; background: transparent; border: 0; border-bottom: 1px solid var(--v2-line); border-radius: 0; color: var(--v2-fg); padding: 0.55rem 0; font: 400 1.05rem/1.3 var(--v2-ui); transition: border-color 0.4s; -webkit-appearance: none; appearance: none; }
.v2-msearch input::placeholder { color: var(--v2-mute); letter-spacing: 0.04em; }
.v2-msearch input:focus { outline: none; border-bottom-color: var(--v2-accent); }
.v2-msearch input:focus-visible { outline: 2px solid var(--v2-accent); outline-offset: 4px; }
.v2-msearch input::-webkit-search-cancel-button { filter: invert(1); opacity: 0.6; }
.v2-msearch__status, .v2-msearch__empty { margin: 0 0 1.5rem; color: var(--v2-mute); font: 500 0.72rem/1.5 var(--v2-ui); letter-spacing: 0.16em; text-transform: uppercase; }
.v2-msearch__empty { font-size: 1rem; letter-spacing: 0; text-transform: none; padding: 2rem 0; }
.v2-msub { padding-top: clamp(2.5rem, 6vh, 4.5rem); }
.v2-msub__title { margin: 0 0 clamp(0.75rem, 2vw, 1.5rem); font-size: clamp(2.2rem, 5vw, 4.6rem); }
.v2-mnotes { display: flex; flex-wrap: wrap; gap: 0.25rem 2rem; margin-top: clamp(2.5rem, 6vh, 4rem); color: var(--v2-mute); font-size: 0.85rem; }
.v2-mnotes p { margin: 0; }
.is-searching .v2-msec__head .v2-index { display: none; }
.is-searching .v2-msec { padding-top: clamp(2rem, 5vh, 3.5rem); }
.is-searching .v2-msec__head h2 { font-size: clamp(2.2rem, 5vw, 4.6rem); }
.v2-panel.is-in { animation: v2-panel-in 0.7s var(--v2-out) both; }
@keyframes v2-panel-in { from { opacity: 0; transform: translateY(1.25rem); } to { opacity: 1; transform: none; } }
.v2-panel[hidden], .v2-mitem[hidden], .v2-msub[hidden], .v2-mlist[hidden] { display: none; }
@media (min-width: 900px) {
	.v2-mp--tabs .v2-mp__side { grid-column: 1 / 4; top: 8.5rem; margin: 0; padding: 0; background: none; border: 0; -webkit-backdrop-filter: none; backdrop-filter: none; max-height: calc(100vh - 10rem); overflow-y: auto; scrollbar-width: thin; }
	.is-header-hidden .v2-mp--tabs .v2-mp__side { top: 6rem; }
	.v2-mp--tabs .v2-pnav { padding: 1.25rem 0 0; }
}
@media (prefers-reduced-motion: reduce) { .v2-panel.is-in { animation: none; } }

/* ---------- inner pages: contact ---------- */
.v2-page { padding: clamp(8rem, 24vh, 15rem) var(--v2-pad) clamp(2.5rem, 6vh, 5rem); }
.v2-page__title { font-size: clamp(5.5rem, 23vw, 24rem); margin-left: -0.03em; }
.v2-page__lede { margin: clamp(1.5rem, 4vw, 3rem) 0 0; }
.v2-contact { display: grid; gap: clamp(3rem, 7vw, 5rem) var(--v2-gap); padding: clamp(2rem, 6vh, 4rem) var(--v2-pad) clamp(4.5rem, 12vh, 9rem); border-top: 1px solid var(--v2-line); }
.v2-contact__info { display: grid; gap: clamp(2rem, 4vw, 3rem); align-content: start; }
.v2-contact__label { margin: 0 0 0.9rem; font: 500 0.68rem/1 var(--v2-ui); letter-spacing: 0.22em; text-transform: uppercase; color: var(--v2-mute); }
.v2-contact__big { display: block; position: relative; width: max-content; max-width: 100%; font-family: var(--v2-display); font-weight: 800; text-transform: uppercase; font-size: clamp(2.6rem, 6.4vw, 6rem); line-height: 0.98; }
.v2-contact__big::after, .v2-contact__mail::after { content: ""; position: absolute; left: 0; right: 0; bottom: -0.05em; height: 2px; background: var(--v2-accent); transform: scaleX(0); transform-origin: left; transition: transform 0.6s var(--v2-out); }
.v2-contact__big:hover::after, .v2-contact__mail:hover::after, .v2-contact__big:focus-visible::after, .v2-contact__mail:focus-visible::after { transform: scaleX(1); }
.v2-contact__mail { position: relative; display: inline-block; font-size: clamp(1.25rem, 2.2vw, 2rem); letter-spacing: -0.01em; overflow-wrap: anywhere; }
.v2-contact__addr { font-style: normal; font-size: 1.15rem; line-height: 1.5; margin-bottom: 1rem; }
.v2-hours { margin: 0; display: grid; gap: 0.5rem; }
.v2-hours div { display: flex; justify-content: space-between; gap: 1.5rem; max-width: 26rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--v2-line); }
.v2-hours dt, .v2-hours dd { margin: 0; }
.v2-hours dd { font-weight: 500; font-variant-numeric: tabular-nums; }
.v2-contact__social { display: flex; flex-wrap: wrap; gap: 0.5rem 1.75rem; margin: 0; font: 500 0.72rem/1.4 var(--v2-ui); letter-spacing: 0.2em; text-transform: uppercase; }
.v2-contact__social a { border-bottom: 1px solid var(--v2-line); padding-bottom: 0.3em; transition: border-color 0.4s; }
.v2-contact__social a:hover { border-color: var(--v2-accent); }
.v2-contact__note { margin: 2.5rem 0 0; color: var(--v2-mute); font-size: 0.95rem; }
.v2-contact__note .v2-link { margin-left: 0.75rem; }
@media (min-width: 900px) {
	.v2-contact { grid-template-columns: repeat(12, 1fr); }
	.v2-contact__info { grid-column: 1 / 6; }
	.v2-contact__form { grid-column: 7 / 13; padding-top: 0.2rem; }
}

/* ---------- reservation ---------- */
.v2-resv { display: grid; gap: clamp(3rem, 7vw, 5rem) var(--v2-gap); padding: clamp(2rem, 6vh, 4rem) var(--v2-pad) clamp(4.5rem, 12vh, 9rem); border-top: 1px solid var(--v2-line); }
.v2-resv__side { display: grid; gap: clamp(2rem, 4vw, 3rem); align-content: start; }
.v2-resv__frame { width: 100%; max-width: 460px; justify-self: start; }
.v2-resv__frame iframe { display: block; width: 100%; max-width: 460px; height: 760px; border: 0; background: var(--v2-bg2); }
.v2-resv__fallback { margin: 1rem 0 0; font-size: 0.85rem; color: var(--v2-mute); }
.v2-resv__fallback a { color: var(--v2-fg); border-bottom: 1px solid var(--v2-line); }
.v2-resv__fallback a:hover { border-color: var(--v2-accent); }
@media (min-width: 900px) {
	.v2-resv { grid-template-columns: repeat(12, 1fr); }
	.v2-resv__side { grid-column: 1 / 6; }
	.v2-resv__frame { grid-column: 7 / 13; justify-self: start; }
}

/* WPForms, restyled to match: underlined fields, uppercase labels, square button */
.v2 .wpforms-container { margin: 0; }
.v2 .wpforms-container .wpforms-form .wpforms-field { padding: 0 0 1.9rem; }
.v2 .wpforms-container .wpforms-form .wpforms-field-label { margin: 0 0 0.35rem; font: 500 0.68rem/1.3 var(--v2-ui); letter-spacing: 0.22em; text-transform: uppercase; color: var(--v2-mute); }
.v2 .wpforms-container .wpforms-form .wpforms-required-label { color: var(--v2-accent); }
.v2 .wpforms-container .wpforms-form .wpforms-field-sublabel { font-size: 0.72rem; letter-spacing: 0.08em; color: var(--v2-mute); }
.v2 .wpforms-container .wpforms-form input[type="text"], .v2 .wpforms-container .wpforms-form input[type="email"], .v2 .wpforms-container .wpforms-form textarea {
	width: 100%; max-width: 100%; background: transparent; color: var(--v2-fg); border: 0; border-bottom: 1px solid var(--v2-line); border-radius: 0; box-shadow: none;
	padding: 0.7rem 0; font: 400 1.2rem/1.4 var(--v2-ui); transition: border-color 0.4s;
}
.v2 .wpforms-container .wpforms-form textarea { min-height: 7.5rem; resize: vertical; }
.v2 .wpforms-container .wpforms-form input:focus, .v2 .wpforms-container .wpforms-form textarea:focus { border-bottom-color: var(--v2-accent); outline: none; box-shadow: none; }
.v2 .wpforms-container .wpforms-form input:focus-visible, .v2 .wpforms-container .wpforms-form textarea:focus-visible { outline: 2px solid var(--v2-accent); outline-offset: 4px; }
.v2 .wpforms-container .wpforms-form .wpforms-field-row { margin: 0 -0.5rem; }
.v2 .wpforms-container .wpforms-form .wpforms-submit-container { padding: 0.5rem 0 0; }
.v2 .wpforms-container .wpforms-form button.wpforms-submit { position: relative; display: inline-flex; padding: 1.15em 2.2em; border: 1px solid var(--v2-accent); border-radius: 0; background: var(--v2-accent); color: var(--v2-bg); font: 500 0.72rem/1 var(--v2-ui); letter-spacing: 0.22em; text-transform: uppercase; cursor: pointer; transition: background-color 0.4s, color 0.4s; }
.v2 .wpforms-container .wpforms-form button.wpforms-submit:hover { background: var(--v2-fg); border-color: var(--v2-fg); color: var(--v2-bg); }
.v2 .wpforms-container .wpforms-error, .v2 .wpforms-container label.wpforms-error { color: #ff9b7a; font-size: 0.8rem; }
.v2 .wpforms-confirmation-container-full, .v2 div[submit-success] { background: transparent; border: 1px solid var(--v2-line); color: var(--v2-fg); border-radius: 0; padding: 1.25rem; }

/* click-to-load map */
.v2-map { position: relative; height: clamp(24rem, 62vh, 40rem); background: var(--v2-bg2); overflow: hidden; }
.v2-map__cover { position: absolute; inset: 0; }
.v2-map__cover > img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 62%; filter: grayscale(1) brightness(0.35); }
.v2-map__prompt { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 1.1rem; padding: var(--v2-pad); text-align: center; }
.v2-map__prompt p { margin: 0; font-family: var(--v2-display); font-weight: 800; text-transform: uppercase; font-size: clamp(2rem, 6vw, 5rem); line-height: 0.95; }
.v2-map__prompt small { color: var(--v2-mute); font-size: 0.78rem; }
.v2-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(1) invert(0.92) contrast(0.9); }
.v2-map.is-loaded .v2-map__cover { display: none; }

/* ---------- footer ---------- */
.v2-footer { position: relative; background: var(--v2-bg2); padding: clamp(4rem, 9vh, 7rem) var(--v2-pad) 0; overflow: hidden; }
.v2-footer__grid { display: grid; gap: 2.5rem var(--v2-gap); grid-template-columns: 1fr 1fr; font-size: 0.95rem; color: var(--v2-mute); }
.v2-footer__grid strong { display: block; margin-bottom: 0.9rem; font: 500 0.68rem/1 var(--v2-ui); letter-spacing: 0.22em; text-transform: uppercase; color: var(--v2-fg); }
.v2-footer__grid p { margin: 0; }
.v2-footer__grid ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.v2-footer a:hover { color: var(--v2-fg); }
@media (min-width: 900px) { .v2-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.v2-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem 2rem; margin-top: clamp(3rem, 7vw, 6rem); padding-top: 1.25rem; border-top: 1px solid var(--v2-line); font-size: 0.78rem; color: var(--v2-mute); }
.v2-footer__word { margin: 0 0 -0.14em -0.02em; font-size: clamp(8rem, 34vw, 40rem); line-height: 0.74; color: rgba(237, 230, 218, 0.06); user-select: none; pointer-events: none; white-space: nowrap; }

/* ---------- initial hidden states (only when motion is allowed) ---------- */
.js-motion [data-reveal] { opacity: 0; transform: translateY(2.5rem); }
.js-motion [data-split] { visibility: hidden; }
.js-motion [data-img-reveal] { clip-path: inset(0 0 100% 0); }
.js-motion .v2-hero__info { opacity: 0; }
.js-motion .v2-ch__i { opacity: 0; }
.js-motion.has-intro .v2-header, .js-motion.has-curtain .v2-header { opacity: 0; }

@media (prefers-reduced-motion: reduce) {
	.v2 *, .v2 *::before, .v2 *::after { transition-duration: 0.01ms !important; transition-delay: 0s !important; animation: none !important; }
	.v2-menu__txt > span { transform: none; }
}
