/*
Theme Name: InviteTo.Food Showcase 01
Description: Private Cappadocia Bristol cinematic menu concept.
Author: InviteTo.Food
Version: 0.2.0
Text Domain: itf-showcase-01
*/

:root {
	--ink: #0d0b09;
	--ink-soft: #17110d;
	--cream: #f1e5ce;
	--paper: #eadbc0;
	--ember: #ff5a2a;
	--gold: #e4a72f;
	--muted: #b9aa94;
	--line: rgba(241, 229, 206, 0.18);
	--paper-line: rgba(13, 11, 9, 0.16);
	--header-h: 76px;
}

* { box-sizing: border-box; }
html { background: var(--ink); scroll-behavior: smooth; }
body.cappa-app-body { margin: 0; background: var(--ink); color: var(--cream); font-family: "Manrope", Arial, sans-serif; overflow-x: hidden; }
body.scene-is-open { overflow: hidden; }
body.gate-body { min-height: 100svh; margin: 0; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 18% 85%, rgba(255,90,42,.19), transparent 34%), var(--ink); color: var(--cream); font-family: "Manrope", Arial, sans-serif; }
.access-gate { width: min(620px, 100%); padding: clamp(30px, 6vw, 62px); border: 1px solid var(--line); background: rgba(23,17,13,.88); }
.access-gate__eyebrow { margin-bottom: 20px; color: var(--gold); font-size: .65rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.access-gate h1 { margin: 0 0 18px; font-family: "Bodoni Moda", Georgia, serif; font-size: clamp(3.3rem, 9vw, 6.5rem); font-weight: 500; line-height: .85; letter-spacing: -.05em; }
.access-gate > p { color: #cfbea6; line-height: 1.65; }
.access-gate__error { color: #ff8c69 !important; font-weight: 700; }
.access-gate form { display: grid; gap: 12px; margin-top: 28px; }
.access-gate label { font-size: .62rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.access-gate input { width: 100%; padding: 14px 0; border: 0; border-bottom: 1px solid rgba(241,229,206,.38); outline: 0; background: transparent; color: var(--cream); }
.access-gate button { width: fit-content; margin-top: 10px; padding: 15px 19px; border: 0; background: var(--ember); color: #fff; font-size: .66rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
[hidden] { display: none !important; }
.skip-link { position: fixed; left: 12px; top: -60px; z-index: 9999; padding: 12px 16px; background: var(--cream); color: var(--ink); }
.skip-link:focus { top: 12px; }

.menu-app { min-height: 100svh; }
.app-header {
	position: sticky;
	top: 0;
	z-index: 90;
	height: var(--header-h);
	display: grid;
	grid-template-columns: minmax(240px, 1fr) auto auto auto;
	align-items: stretch;
	background: rgba(13, 11, 9, 0.96);
	border-bottom: 1px solid var(--line);
	backdrop-filter: blur(14px);
}
.admin-bar .app-header { top: 32px; }
.app-brand { display: flex; flex-direction: column; justify-content: center; padding: 0 34px; border-right: 1px solid var(--line); }
.app-brand span { font-family: "Bodoni Moda", Georgia, serif; font-size: 1.55rem; letter-spacing: 0.08em; line-height: 1; }
.app-brand small { margin-top: 7px; color: var(--gold); font-size: 0.61rem; font-weight: 800; letter-spacing: 0.2em; }
.app-back {
	align-self: center;
	margin: 0 8px;
	padding: 12px 15px;
	border: 0;
	background: transparent;
	color: var(--cream);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
}
.app-back span { margin-right: 5px; color: var(--ember); }
.app-nav { display: flex; align-items: stretch; }
.app-nav a { display: grid; place-items: center; min-width: 94px; padding: 0 17px; color: var(--muted); border-left: 1px solid var(--line); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.app-nav a:hover, .app-nav a[aria-current="page"] { color: var(--cream); box-shadow: inset 0 -3px var(--ember); }
.app-book { display: grid; place-items: center; min-width: 182px; padding: 0 24px; background: var(--ember); color: #fff; font-size: 0.71rem; font-weight: 900; letter-spacing: 0.1em; text-transform: uppercase; }
.app-book span { margin-left: 7px; }

.app-stage { min-height: calc(100svh - var(--header-h)); }
.app-view { min-height: calc(100svh - var(--header-h)); animation: view-in 0.38s ease both; }
@keyframes view-in { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
.app-kicker { margin: 0 0 14px; color: var(--gold); font-size: 0.68rem; font-weight: 900; letter-spacing: 0.2em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
body.cappa-app-body h1:focus, body.cappa-app-body h2:focus { outline: none; }
h1, h2, .journey-row strong, .category-card strong, .dish-row strong { font-family: "Bodoni Moda", Georgia, serif; font-weight: 500; }
em { color: var(--ember); font-weight: 500; }
.quiet-link { display: inline-flex; gap: 12px; align-items: center; width: fit-content; padding-bottom: 7px; border-bottom: 1px solid currentColor; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }

.app-view--home { height:calc(100svh - var(--header-h)); min-height:0; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(520px,.9fr); }
.wpvibe-preview-active .menu-app:has(.app-view--home:not([hidden])) { min-height:calc(100svh - 50px); }
.wpvibe-preview-active .app-stage:has(.app-view--home:not([hidden])) { min-height:calc(100svh - var(--header-h) - 50px); }
.wpvibe-preview-active .app-view--home { height:calc(100svh - var(--header-h) - 50px); }
.admin-bar .app-view--home { height:calc(100svh - var(--header-h) - 32px); }
.admin-bar.wpvibe-preview-active .app-view--home { height:calc(100svh - var(--header-h) - 82px); }
.app-view--home > .home-cinema, .app-view--home > .journey-portal { height:100%; min-height:0; }
.home-cinema {
	position: relative;
	min-height: calc(100svh - var(--header-h));
	display: flex;
	align-items: flex-end;
	padding: clamp(42px, 7vw, 110px);
	background: linear-gradient(90deg, rgba(8,7,6,.92) 0%, rgba(8,7,6,.55) 60%, rgba(8,7,6,.25)), var(--view-image) center/cover no-repeat;
	overflow: hidden;
}
.home-cinema::after { content: ""; position: absolute; inset: auto 0 0; height: 38%; background: linear-gradient(transparent, rgba(50,20,10,.55)); pointer-events: none; }
.home-cinema__content { position: relative; z-index: 1; max-width: 780px; }
.home-cinema h1 { margin: 0 0 22px; font-size: clamp(4rem, 8vw, 8.5rem); line-height: 0.78; letter-spacing: -0.06em; }
.home-cinema p:not(.app-kicker) { max-width: 600px; margin-bottom: 28px; color: #eadcc5; font-size: clamp(1rem, 1.35vw, 1.3rem); line-height: 1.6; }
.journey-portal { height:100%; min-height:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto repeat(4,minmax(0,1fr)); background:var(--ink-soft); overflow:hidden; }
.journey-portal__intro { grid-column:1/-1; padding:20px 30px 14px; border-bottom:1px solid var(--line); }
.journey-portal__intro .app-kicker { margin-bottom:4px; }
.journey-portal__intro h2 { margin:0; font-size:clamp(1.9rem,2.8vw,3.1rem); }
.journey-row {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: 42px 1fr auto;
	gap: 16px;
	align-items: center;
	padding: 12px 26px;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	overflow: hidden;
}
.journey-row:nth-of-type(even) { border-right: 0; }
.journey-row:last-child { grid-column:1/-1; border-right:0; }
.journey-row::before { content: ""; position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(15,10,7,.78), rgba(15,10,7,.93)), var(--journey-image) center/cover; opacity: 0; transform: scale(1.04); transition: .35s ease; }
.journey-row::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(255,90,42,.18), transparent); opacity: 0; transition: .3s; }
.journey-row:hover::before, .journey-row:focus-visible::before, .journey-row:hover::after { opacity: 1; transform: scale(1); }
.journey-row__number { color: var(--ember); font-family: "Bodoni Moda", Georgia, serif; }
.journey-row__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.journey-row strong { font-size: clamp(1.5rem, 2.3vw, 2.7rem); line-height: .96; }
.journey-row small { color: var(--muted); font-size: 0.68rem; line-height: 1.35; }
.journey-row__arrow { color: var(--ember); font-size: 1.2rem; }

.app-view--menu { padding: clamp(30px, 4vw, 64px); background: var(--paper); color: var(--ink); }
.view-intro { display: grid; grid-template-columns: 1.4fr minmax(320px, .6fr); gap: 50px; align-items: end; margin-bottom: 30px; }
.view-intro h1 { margin: 0; font-size: clamp(3.4rem, 7vw, 7.3rem); line-height: .9; letter-spacing: -.055em; }
.menu-search { display: grid; gap: 9px; padding-bottom: 12px; border-bottom: 1px solid rgba(13,11,9,.4); }
.menu-search span { font-size: .65rem; font-weight: 900; letter-spacing: .17em; text-transform: uppercase; }
.menu-search input { width: 100%; padding: 8px 0; border: 0; outline: 0; background: transparent; color: var(--ink); font-family: "Bodoni Moda", Georgia, serif; font-size: 1.4rem; }
.menu-search input::placeholder { color: #897862; opacity: 1; }
.category-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--paper-line); border-left: 1px solid var(--paper-line); }
.category-card {
	position: relative;
	isolation: isolate;
	min-height: 164px;
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 18px;
	align-items: end;
	padding: 22px;
	border-right: 1px solid var(--paper-line);
	border-bottom: 1px solid var(--paper-line);
	overflow: hidden;
}
.category-card::before { content: ""; position: absolute; inset: 0; z-index: -2; background: linear-gradient(0deg, rgba(12,9,7,.92), rgba(12,9,7,.35)), var(--card-image) center/cover; opacity: 0; transform: scale(1.04); transition: .35s; }
.category-card:hover, .category-card:focus-visible { color: var(--cream); }
.category-card:hover::before, .category-card:focus-visible::before { opacity: 1; transform: scale(1); }
.category-card__number { align-self: start; color: var(--ember); font-family: "Bodoni Moda", Georgia, serif; }
.category-card__body { display: flex; flex-direction: column; gap: 4px; }
.category-card strong { font-size: clamp(1.6rem, 2.2vw, 2.6rem); line-height: 1; }
.category-card small { font-family: "Manrope", Arial, sans-serif; font-size: .63rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.search-panel { border-top: 1px solid var(--paper-line); }
.search-status { padding: 14px 0; color: #6f5e4c; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.search-results { display: grid; grid-template-columns: repeat(2, 1fr); column-gap: 54px; }
.search-result { display: flex; justify-content: space-between; gap: 18px; align-items: center; min-height: 74px; border-bottom: 1px solid var(--paper-line); }
.search-result span { display: flex; flex-direction: column; }
.search-result strong { font-family: "Bodoni Moda", Georgia, serif; font-size: 1.35rem; }
.search-result small { margin-top: 4px; color: #7e6854; font-size: .57rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.search-result b { color: #a53417; font-family: "Bodoni Moda", Georgia, serif; font-size: 1.2rem; }

.app-view--category { background: var(--paper); color: var(--ink); }
.category-intro { display: grid; grid-template-columns: minmax(320px, .8fr) minmax(300px, 1fr) auto; gap: 44px; align-items: end; padding: 30px clamp(30px, 4vw, 64px) 24px; }
.category-intro h1 { margin: 0; font-size: clamp(3.4rem, 6.3vw, 6.8rem); line-height: .84; letter-spacing: -.05em; }
.category-intro > p { max-width: 570px; margin: 0; color: #725e4b; line-height: 1.65; }
.category-intro > span { font-size: .65rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.category-tabs { position: sticky; top: var(--header-h); z-index: 40; display: flex; overflow-x: auto; scrollbar-width: none; background: rgba(234,219,192,.97); border-top: 1px solid var(--paper-line); border-bottom: 1px solid var(--paper-line); }
.admin-bar .category-tabs { top: calc(var(--header-h) + 32px); }
.category-tabs::-webkit-scrollbar { display: none; }
.category-tabs a { flex: 0 0 auto; padding: 17px 22px; border-right: 1px solid var(--paper-line); color: #685744; font-size: .61rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.category-tabs a:hover, .category-tabs a[aria-current="page"] { background: var(--ink); color: var(--cream); }
.category-layout { display: grid; grid-template-columns: minmax(330px, .72fr) minmax(0, 1.28fr); min-height: 560px; }
.category-scene {
	position: sticky;
	top: calc(var(--header-h) + 50px);
	align-self: start;
	min-height: calc(100svh - var(--header-h) - 50px);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: clamp(30px, 4vw, 62px);
	color: var(--cream);
	background: linear-gradient(0deg, rgba(15,9,6,.92), rgba(15,9,6,.18) 72%), var(--scene-image) center/cover no-repeat;
}
.admin-bar .category-scene { top: calc(var(--header-h) + 82px); }
.category-scene h2 { max-width: 650px; margin: 0 0 12px; font-size: clamp(3rem, 5.5vw, 6rem); line-height: .88; letter-spacing: -.04em; }
.category-scene > p:not(.app-kicker) { max-width: 530px; color: #eadcc5; line-height: 1.55; }
.scene-open { width: fit-content; margin-top: 12px; padding: 14px 0 8px; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--cream); font-size: .68rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; }
.scene-secondary { display: grid; grid-template-columns: 1fr auto; gap: 2px 14px; width: 100%; margin-top: 24px; padding: 16px 0 0; border: 0; border-top: 1px solid rgba(255,255,255,.26); background: transparent; color: var(--cream); text-align: left; cursor: pointer; }
.scene-secondary span:first-child { grid-column: 1/-1; color: var(--gold); font-size: .57rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.scene-secondary strong { font-family: "Bodoni Moda", Georgia, serif; font-size: 1.25rem; font-weight: 500; }
.dish-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); align-content: start; padding: 18px clamp(22px, 3.5vw, 54px) 50px; column-gap: 44px; }
.dish-row {
	position: relative;
	min-width: 0;
	min-height: 82px;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 8px 16px;
	align-items: center;
	margin: 0;
	padding: 15px 0;
	border: 0;
	border-bottom: 1px solid var(--paper-line);
	background: transparent;
	color: var(--ink);
	text-align: left;
}
button.dish-row { width: 100%; cursor: pointer; }
button.dish-row:hover strong { color: #a53417; }
.dish-row__text { min-width: 0; display: flex; flex-direction: column; }
.dish-row strong { font-size: clamp(1.15rem, 1.45vw, 1.55rem); line-height: 1.08; }
.dish-row small { margin-top: 5px; color: #9e3a20; font-size: .53rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.dish-row__price { align-self: start; padding-top: 2px; color: #a53417; font-family: "Bodoni Moda", Georgia, serif; font-size: 1.15rem; }
.dish-row__cinema { grid-column: 1/-1; color: #a53417; font-size: .5rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }

.app-view--occasion { display: grid; grid-template-columns: 1.15fr .85fr; background: #28150e; }
.occasion-image { min-height: calc(100svh - var(--header-h)); display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(34px, 5vw, 80px); background: linear-gradient(0deg, rgba(15,8,5,.64), transparent 70%), var(--view-image) center/cover no-repeat; }
.occasion-image h1 { max-width: 840px; margin: 0; font-size: clamp(4rem, 7vw, 8rem); line-height: .84; letter-spacing: -.055em; }
.occasion-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(36px, 5vw, 84px); }
.occasion-copy h1, .occasion-copy h2 { margin: 0 0 22px; font-size: clamp(3.4rem, 6vw, 7rem); line-height: .88; letter-spacing: -.05em; }
.occasion-copy > p:not(.app-kicker) { max-width: 610px; color: #dbc8ae; line-height: 1.7; }
.price-choice { display: flex; justify-content: space-between; align-items: baseline; padding: 18px 0; border-top: 1px solid var(--line); }
.price-choice span { font-size: .65rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.price-choice strong { font-family: "Bodoni Moda", Georgia, serif; font-size: 2.7rem; font-weight: 500; }
.primary-action { width: fit-content; margin-top: 28px; padding: 17px 21px; background: var(--cream); color: var(--ink); font-size: .67rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.occasion-copy .quiet-link { margin-top: 22px; }
.app-view--groups { grid-template-columns: .78fr 1.22fr; }
.group-cards { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); padding: clamp(28px, 4vw, 62px); gap: 1px; background: linear-gradient(rgba(15,9,6,.62), rgba(15,9,6,.84)), var(--view-image) center/cover; }
.group-cards article { min-width: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(20px, 2.4vw, 38px); background: rgba(21,13,9,.78); border: 1px solid var(--line); }
.group-cards span { color: var(--gold); font-size: .59rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.group-cards strong { margin: 16px 0 8px; font-family: "Bodoni Moda", Georgia, serif; font-size: clamp(3.4rem, 5.2vw, 6.5rem); font-weight: 500; line-height: .9; }
.group-cards p { color: #d7c4aa; line-height: 1.55; }

.app-view--proposal { padding: clamp(36px, 5vw, 78px); background: radial-gradient(circle at 18% 80%, rgba(255,90,42,.14), transparent 34%), var(--ink); }
.proposal-head { display: grid; grid-template-columns: 1.2fr .8fr; gap: 60px; align-items: end; padding-bottom: 42px; border-bottom: 1px solid var(--line); }
.proposal-head .app-kicker { grid-column: 1/-1; margin-bottom: -24px; }
.proposal-head h1 { margin: 0; font-size: clamp(4rem, 8vw, 9rem); line-height: .78; letter-spacing: -.06em; }
.proposal-head > p:not(.app-kicker) { margin: 0; color: #d9c6aa; font-size: 1.05rem; line-height: 1.75; }
.proposal-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 34px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.proposal-grid article { min-height: 230px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.proposal-grid span { color: var(--ember); font-family: "Bodoni Moda", Georgia, serif; }
.proposal-grid h2 { margin: 38px 0 10px; font-size: 2rem; }
.proposal-grid p { color: #c9b79d; line-height: 1.65; }
.proposal-grid code { color: var(--gold); font-size: .85em; }
.proposal-note { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; padding-top: 28px; color: #a9977e; font-size: .68rem; line-height: 1.65; }
.proposal-note div { grid-column: 1/-1; display: flex; gap: 30px; }
.proposal-note a { color: var(--cream); font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }

/* Keep the proposal as a single cinematic screen on desktop. */
.app-stage:has(.app-view--proposal:not([hidden])) {
	min-height: 0;
	height: calc(100svh - var(--header-h));
	overflow: hidden;
}
.admin-bar .app-stage:has(.app-view--proposal:not([hidden])) {
	height: calc(100svh - var(--header-h) - 32px);
}
.admin-bar.wpvibe-preview-active .app-stage:has(.app-view--proposal:not([hidden])) {
	height: calc(100svh - var(--header-h) - 82px);
}
.admin-bar.wpvibe-preview-active .menu-app:has(.app-view--proposal:not([hidden])) {
	min-height: calc(100svh - 82px);
}
.app-view--proposal {
	height: 100%;
	min-height: 0;
	display: grid;
	grid-template-columns: minmax(360px,.78fr) minmax(0,1.22fr);
	grid-template-rows: minmax(0,1fr) auto;
	gap: clamp(20px,3vw,46px);
	padding: clamp(22px,3.2vh,38px) clamp(30px,4vw,70px) clamp(16px,2.4vh,28px);
	overflow: hidden;
}
.app-view--proposal .proposal-head {
	grid-column: 1;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 0;
	min-width: 0;
	padding: 0 clamp(20px,3vw,48px) 0 0;
	border: 0;
	border-right: 1px solid var(--line);
}
.app-view--proposal .proposal-head .app-kicker {
	grid-column: auto;
	margin: 0 0 clamp(12px,2vh,22px);
}
.app-view--proposal .proposal-head h1 {
	margin: 0 0 clamp(16px,2.5vh,28px);
	font-size: clamp(3.7rem,6vw,7.2rem);
	line-height: .76;
}
.app-view--proposal .proposal-head > p:not(.app-kicker) {
	max-width: 520px;
	font-size: clamp(.78rem,.9vw,.98rem);
	line-height: 1.55;
}
.app-view--proposal .proposal-grid {
	grid-column: 2;
	grid-row: 1;
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: repeat(3,minmax(0,1fr));
	min-height: 0;
	margin: 0;
	border: 1px solid var(--line);
}
.app-view--proposal .proposal-grid article {
	min-height: 0;
	display: grid;
	grid-template-columns: 36px minmax(150px,.42fr) minmax(0,1fr);
	align-items: center;
	gap: 18px;
	padding: clamp(12px,1.8vh,20px) clamp(16px,2vw,28px);
	border: 0;
	border-bottom: 1px solid var(--line);
}
.app-view--proposal .proposal-grid article:last-child { border-bottom: 0; }
.app-view--proposal .proposal-grid h2 {
	margin: 0;
	font-size: clamp(1.35rem,2vw,2.15rem);
	line-height: 1;
}
.app-view--proposal .proposal-grid p {
	margin: 0;
	font-size: clamp(.66rem,.72vw,.78rem);
	line-height: 1.45;
}
.app-view--proposal .proposal-note {
	grid-column: 1/-1;
	grid-row: 2;
	display: grid;
	grid-template-columns: 1fr 1fr auto;
	align-items: center;
	gap: 22px;
	min-height: 0;
	padding-top: clamp(10px,1.8vh,18px);
	font-size: clamp(.52rem,.58vw,.64rem);
	line-height: 1.4;
}
.app-view--proposal .proposal-note p { margin: 0; }
.app-view--proposal .proposal-note div {
	grid-column: auto;
	display: flex;
	flex-direction: column;
	gap: 7px;
	white-space: nowrap;
}

.scene-modal { position: fixed; inset: 0; z-index: 500; display: grid; grid-template-columns: 1.35fr .65fr; background: var(--ink); }
.scene-modal__image { min-height: 100svh; background-position: center; background-size: cover; }
.scene-modal__copy { position: relative; display: flex; flex-direction: column; justify-content: center; padding: clamp(36px, 5vw, 86px); background: #25130d; }
.scene-close { position: absolute; top: 22px; right: 25px; width: 46px; height: 46px; border: 1px solid var(--line); background: transparent; color: var(--cream); font-size: 1.8rem; cursor: pointer; }
.scene-counter { position: absolute; top: 34px; left: clamp(36px, 5vw, 86px); color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .13em; }
.scene-modal h2 { margin: 0 0 14px; font-size: clamp(4rem, 7vw, 8.4rem); line-height: .82; letter-spacing: -.055em; }
.scene-modal__copy > strong { margin-bottom: 24px; color: var(--gold); font-family: "Bodoni Moda", Georgia, serif; font-size: 2.4rem; font-weight: 500; }
.scene-modal__copy > p:not(.app-kicker,.scene-counter) { color: #ead9c0; font-size: 1.05rem; line-height: 1.7; }
.scene-modal__copy > small { color: var(--muted); line-height: 1.55; }
.scene-controls { display: flex; justify-content: space-between; margin-top: 34px; padding-top: 20px; border-top: 1px solid var(--line); }
.scene-controls button { padding: 12px 0; border: 0; background: transparent; color: var(--cream); font-size: .66rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }

@media (max-width: 1050px) {
	.app-header { grid-template-columns: minmax(205px, 1fr) auto auto auto; }
	.app-brand { padding: 0 22px; }
	.app-nav a { min-width: 76px; padding: 0 12px; }
	.app-book { min-width: 145px; padding: 0 15px; }
	.app-view--home { grid-template-columns: 1.05fr .95fr; }
	.category-grid { grid-template-columns: repeat(2, 1fr); }
	.category-layout { grid-template-columns: minmax(310px,.8fr) 1.2fr; }
	.dish-list { grid-template-columns: 1fr; }
	.group-cards { grid-template-columns: 1fr; }
	.group-cards article { min-height: 190px; }
}
@media (max-width: 782px) {
	:root { --header-h: 66px; }
	.admin-bar .app-header { top: 46px; }
	.admin-bar .category-tabs { top: calc(var(--header-h) + 46px); }
	.admin-bar .category-scene { top: calc(var(--header-h) + 96px); }
	.app-header { grid-template-columns: 1fr auto auto; }
	.app-brand { border-right: 0; }
	.app-brand span { font-size: 1.15rem; }
	.app-brand small { font-size: .47rem; }
	.app-nav { display: none; }
	.app-book { min-width: 126px; font-size: .58rem; }
	.app-view--home, .wpvibe-preview-active .app-view--home, .admin-bar .app-view--home, .admin-bar.wpvibe-preview-active .app-view--home { display:block; height:auto; min-height:calc(100svh - var(--header-h)); }
	.app-view--home > .home-cinema, .app-view--home > .journey-portal { height:auto; }
	.home-cinema { min-height:58svh; padding:34px 24px; }
	.home-cinema h1 { font-size:clamp(3.7rem,18vw,6.5rem); }
	.journey-portal { min-height:auto; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto repeat(4,minmax(104px,auto)); overflow:visible; }
	.journey-portal__intro { grid-column:1/-1; }
	.journey-portal__intro { padding:22px 24px 16px; }
	.journey-row { grid-template-columns:24px minmax(0,1fr) 16px; gap:7px; padding:14px 12px; }
	.journey-row:nth-of-type(even) { border-right:0; }
	.journey-row strong { font-size:clamp(1.35rem,6.5vw,1.8rem); }
	.journey-row small { font-size:.56rem; }
	.view-intro { grid-template-columns: 1fr; gap: 24px; }
	.view-intro h1 { font-size: clamp(3.3rem, 15vw, 6rem); }
	.category-grid { grid-template-columns: 1fr; }
	.category-card { min-height: 130px; }
	.search-results { grid-template-columns: 1fr; }
	.category-intro { grid-template-columns: 1fr auto; gap: 16px; padding: 24px; }
	.category-intro__title { grid-column: 1/-1; }
	.category-intro h1 { font-size: clamp(3.2rem, 15vw, 5.5rem); }
	.category-intro > p { grid-column: 1/2; }
	.category-layout { display: block; }
	.category-scene { position: relative; top: auto !important; min-height: 58svh; }
	.dish-list { padding: 12px 24px 38px; }
	.app-view--occasion, .app-view--groups { display: block; }
	.occasion-image { min-height: 58svh; }
	.occasion-copy { min-height: 42svh; }
	.group-cards { padding: 24px; }
	.proposal-head { grid-template-columns: 1fr; gap: 24px; }
	.proposal-head .app-kicker { margin: 0; }
	.proposal-grid { grid-template-columns: 1fr; }
	.app-stage:has(.app-view--proposal:not([hidden])),
	.admin-bar .app-stage:has(.app-view--proposal:not([hidden])),
	.admin-bar.wpvibe-preview-active .app-stage:has(.app-view--proposal:not([hidden])) { height: auto; min-height: calc(100svh - var(--header-h)); overflow: visible; }
	.app-view--proposal { height: auto; min-height: calc(100svh - var(--header-h)); display: block; overflow: visible; }
	.app-view--proposal .proposal-head { display: block; padding: 0 0 26px; border-right: 0; border-bottom: 1px solid var(--line); }
	.app-view--proposal .proposal-grid { display: grid; grid-template-columns: 1fr; grid-template-rows: none; margin-top: 24px; }
	.app-view--proposal .proposal-grid article { display: block; padding: 22px; }
	.app-view--proposal .proposal-grid h2 { margin: 22px 0 8px; }
	.app-view--proposal .proposal-note { grid-template-columns: 1fr; margin-top: 22px; }
	.app-view--proposal .proposal-note div { grid-column: 1; white-space: normal; }
	.scene-modal { display: block; overflow-y: auto; }
	.scene-modal__image { min-height: 48svh; }
	.scene-modal__copy { min-height: 52svh; }
	.scene-modal h2 { font-size: clamp(3.4rem, 16vw, 6.5rem); }
}
@media (max-width: 520px) {
	.app-brand { padding: 0 14px; }
	.app-back { font-size: 0; margin: 0; padding: 10px; }
	.app-back span { font-size: 1.2rem; margin: 0; }
	.app-book { min-width: 104px; padding: 0 10px; }
	.app-book span { display: none; }
	.app-view--menu, .app-view--proposal { padding: 28px 18px; }
	.home-cinema { min-height: 54svh; }
	.journey-row strong { font-size: 1.7rem; }
	.category-intro { padding: 22px 18px; }
	.category-intro > p { font-size: .83rem; }
	.category-tabs a { padding: 14px 16px; }
	.category-scene { padding: 28px 22px; }
	.category-scene h2 { font-size: 3.1rem; }
	.dish-list { padding-inline: 18px; }
	.dish-row { min-height: 75px; }
	.occasion-image, .occasion-copy { padding: 28px 22px; }
	.occasion-image h1, .occasion-copy h1, .occasion-copy h2 { font-size: 3.5rem; }
	.group-cards { padding: 18px; }
	.proposal-head h1 { font-size: 4.1rem; }
	.scene-modal__copy { padding: 48px 24px 32px; }
	.scene-counter { left: 24px; }
}

.mobile-journey-cue { display: none; }

@media (max-width: 782px) {
	body.wpvibe-preview-active { --wpvibe-review-bar-h: 58px; }
	#wpvibe-preview-banner {
		box-sizing: border-box !important;
		height: var(--wpvibe-review-bar-h) !important;
		min-height: var(--wpvibe-review-bar-h) !important;
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto !important;
		align-items: center !important;
		gap: 10px !important;
		padding: 8px 12px !important;
	}
	#wpvibe-preview-banner .wpvibe-info,
	#wpvibe-preview-banner .wpvibe-btn-live { display: none !important; }
	#wpvibe-preview-banner .wpvibe-badge {
		width: auto !important;
		height: auto !important;
		min-width: 0 !important;
		display: flex !important;
		flex-direction: row !important;
		align-items: center !important;
		gap: 8px !important;
		font-size: 11px !important;
		line-height: 1.2 !important;
		white-space: nowrap !important;
	}
	#wpvibe-preview-banner .wpvibe-btn-stop {
		min-height: 40px !important;
		margin: 0 !important;
		padding: 9px 13px !important;
		font-size: 11px !important;
		line-height: 1.1 !important;
		white-space: nowrap !important;
	}

	.app-stage:has(.app-view--home:not([hidden])) {
		height: calc(100svh - var(--header-h));
		min-height: 0;
		overflow: hidden;
	}
	.wpvibe-preview-active .app-stage:has(.app-view--home:not([hidden])) {
		height: calc(100svh - var(--header-h) - var(--wpvibe-review-bar-h));
		min-height: 0;
	}
	.app-view--home,
	.wpvibe-preview-active .app-view--home,
	.admin-bar .app-view--home,
	.admin-bar.wpvibe-preview-active .app-view--home {
		height: 100% !important;
		min-height: 0 !important;
		display: block;
		overflow-y: auto;
		overflow-x: hidden;
		scroll-snap-type: y mandatory;
		overscroll-behavior-y: contain;
		scrollbar-width: none;
	}
	.app-view--home::-webkit-scrollbar { display: none; }
	.app-view--home > .home-cinema,
	.app-view--home > .journey-portal {
		height: 100% !important;
		min-height: 100% !important;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}
	.home-cinema { padding: 24px; }
	.home-cinema h1 { margin-bottom: 14px; font-size: clamp(3.4rem, 16vw, 5.25rem); }
	.home-cinema p:not(.app-kicker) { max-width: 34rem; margin-bottom: 18px; font-size: .92rem; line-height: 1.45; }
	.mobile-journey-cue {
		display: inline-flex;
		align-items: center;
		gap: 10px;
		margin-left: 18px;
		padding: 10px 0 7px;
		border: 0;
		border-bottom: 1px solid currentColor;
		background: transparent;
		color: var(--cream);
		font-size: .66rem;
		font-weight: 800;
		letter-spacing: .1em;
		text-transform: uppercase;
		cursor: pointer;
	}
	.journey-portal {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: auto repeat(4, minmax(0, 1fr));
		overflow: hidden;
	}
	.journey-portal__intro { padding: 14px 18px 10px; }
	.journey-portal__intro .app-kicker { margin-bottom: 2px; font-size: .52rem; }
	.journey-portal__intro h2 { font-size: clamp(1.65rem, 7.5vw, 2.25rem); }
	.journey-row { grid-template-columns: 20px minmax(0, 1fr) 13px; gap: 6px; padding: 8px 9px; }
	.journey-row strong { font-size: clamp(1.12rem, 5vw, 1.55rem); }
	.journey-row small { font-size: .49rem; line-height: 1.25; }
	.journey-row__arrow { font-size: 1rem; }
}

