/*
 * Restaurant — main stylesheet.
 * Colours, glow, shadow, border and radius come from CSS variables printed by the Customizer
 * (Appearance → Customize). Edit there rather than here.
 */
:root {
	/* Brand colours (overridden by Customizer → Colours) */
	--c-night: #0a0706;
	--c-bg: #0d0a08;
	--c-surface: #140f0d;
	--c-surface-2: #221915;
	--c-primary: #e1251c;
	--c-primary-2: #ff6a3d;
	--c-primary-deep: #a8141a;
	--c-accent: #f3b23a;
	--c-accent-2: #ffd27a;
	--c-accent-deep: #b47b1a;
	--c-text: #f6eee2;
	--c-on-primary: #ffffff;

	--c-night-rgb: 10 7 6;
	--c-bg-rgb: 13 10 8;
	--c-surface-rgb: 20 15 13;
	--c-surface-2-rgb: 34 25 21;
	--c-primary-rgb: 225 37 28;
	--c-primary-2-rgb: 255 106 61;
	--c-primary-deep-rgb: 168 20 26;
	--c-accent-rgb: 243 178 58;
	--c-accent-2-rgb: 255 210 122;
	--c-text-rgb: 246 238 226;

	/* Effect strengths (Customizer → Effects). 1 = default, 0 = off. */
	--glow: 1;
	--shadow: 1;
	--border: 1;
	--radius: 1;
	--space: 1;

	/* Typography (Customizer → Typography) */
	--f-display: 'Instrument Serif', 'Times New Roman', serif;
	--f-sans: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--fs-base: 16px;

	/* Derived tokens used throughout the stylesheet */
	--night: var(--c-night);
	--em-0: var(--c-bg);
	--em-1: var(--c-surface);
	--em-2: var(--c-surface-2);
	--em-3: color-mix(in srgb, var(--c-primary-deep) 22%, var(--c-bg));
	--gold: var(--c-accent);
	--gold-2: var(--c-accent-2);
	--gold-deep: var(--c-accent-deep);
	--ivory: var(--c-text);
	--ivory-2: color-mix(in srgb, var(--c-text) 88%, var(--c-accent));
	--chili: var(--c-primary);
	--ember: var(--c-primary);
	--text: var(--c-text);
	--muted: rgb(var(--c-text-rgb) / 0.66);
	--faint: rgb(var(--c-text-rgb) / 0.38);
	--line: rgb(var(--c-accent-rgb) / calc(0.18 * var(--border)));
	--line-soft: rgb(var(--c-text-rgb) / calc(0.1 * var(--border)));
	--metal: linear-gradient(110deg, var(--c-primary-deep) 0%, var(--c-primary) 32%, var(--c-primary-2) 62%, var(--c-accent) 100%);
	--gilt: linear-gradient(110deg, var(--c-primary) 0%, var(--c-primary-2) 35%, var(--c-accent) 65%, var(--c-primary) 100%);
	--on-metal: var(--c-on-primary);

	--gutter: clamp(1rem, 0.4rem + 2.6vw, 3rem);
	--container: 1360px;
	--section-y: calc(clamp(4rem, 2.5rem + 4.5vw, 7.5rem) * var(--space));
	--r-sm: calc(12px * var(--radius));
	--r: calc(20px * var(--radius));
	--r-lg: calc(clamp(22px, 1rem + 1.2vw, 34px) * var(--radius));
	--btn-r: 999px;
	--ease: cubic-bezier(0.16, 1, 0.3, 1);
	--ease-io: cubic-bezier(0.76, 0, 0.24, 1);
	color-scheme: dark;
}

html {
	font-size: var(--fs-base);
}

/* ================= ROYAL — base, tokens & shared components ================= */


*,
*::before,
*::after {
	box-sizing: border-box;
}

html.lenis,
html.lenis body {
	height: auto;
}

.lenis.lenis-stopped {
	overflow: clip;
}

.lenis.lenis-scrolling iframe {
	pointer-events: none;
}

body {
	margin: 0;
	background: var(--em-0);
	color: var(--text);
	font-family: var(--f-sans);
	font-size: 1rem;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

body::after {
	content: '';
	position: fixed;
	inset: 0;
	z-index: 300;
	pointer-events: none;
	opacity: 0.05;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.is-loading body {
	overflow: hidden;
}

img,
svg,
iframe,
canvas,
.elementor img,
.elementor svg,
.elementor iframe,
.elementor canvas {
	display: block;
	max-width: 100%;
}

a {
	color: inherit;
	text-decoration: none;
}

button,
input,
textarea {
	font: inherit;
	color: inherit;
}

button,
.elementor button {
	cursor: pointer;
	background: none;
	border: 0;
	padding: 0;
}

h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd,
ul,
ol {
	margin: 0;
}

ul,
ol {
	padding: 0;
	list-style: none;
}

h1,
h2,
h3,
h4 {
	font-weight: 400;
	font-synthesis: none;
	text-wrap: balance;
}

:focus-visible {
	outline: 2px solid var(--gold);
	outline-offset: 3px;
}

::selection {
	background: var(--gold);
	color: var(--night);
}

.icon,
.elementor .icon {
	width: 1.15rem;
	height: 1.15rem;
	flex: none;
}

.container,
.elementor .container {
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.rsection {
	position: relative;
	padding-block: var(--section-y);
}

.gold-dust,
.elementor .gold-dust {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.botanical,
.elementor .botanical {
	width: 100%;
	height: 100%;
	overflow: visible;
	filter: drop-shadow(0 14px 18px rgb(0 0 0 / calc(0.35 * var(--shadow))));
}

.ornament,
.elementor .ornament {
	width: 9rem;
	height: 1.2rem;
	color: var(--gold);
}

/* Typography */
.eyebrow,
.reyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
	margin-bottom: 1.4rem;
	font-size: 0.72rem;
	font-weight: 400;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--gold);
}

.eyebrow::before,
.elementor .eyebrow::before {
	content: '';
	width: 2.4rem;
	height: 1px;
	background: currentColor;
}

.reyebrow .ornament {
	width: 4.5rem;
}

.title {
	font-family: var(--f-display);
	font-size: clamp(2.7rem, 1.4rem + 4.4vw, 5.8rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.01em;
}

.title em,
.rstory__quote em,
.pd h2 em,
.rfoot__cta em {
	font-style: italic;
	font-weight: 400;
	background: var(--gilt);
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	animation: metal 8s linear infinite;
	padding-right: 0.05em;
}

@keyframes metal {
	to {
		background-position: 200% center;
	}
}

.section-head {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 1.2rem;
	margin-bottom: clamp(2.5rem, 2rem + 3vw, 4.5rem);
}

.section-head--center {
	justify-items: center;
	text-align: center;
}

.section-head--center .eyebrow::after,
.elementor .section-head--center .eyebrow::after {
	content: '';
	width: 2.4rem;
	height: 1px;
	background: currentColor;
}

.section-head--split {
	grid-template-columns: 1fr minmax(0, 30rem);
	align-items: end;
	gap: 1.5rem 4rem;
}

.section-head__text,
.elementor .section-head__text {
	max-width: 30rem;
	font-size: clamp(1.02rem, 0.96rem + 0.3vw, 1.18rem);
	color: var(--muted);
}

.section-head__extra {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

@media (max-width: 767px) {
	.section-head--split,
.elementor .section-head--split {
		grid-template-columns: 1fr;
	}
}

/* Buttons — ember pill with a light icon chip,
shine sweep and soft glow; outline has a gilt border */
.btn,
.elementor /* Buttons — ember pill with a light icon chip,
.elementor shine sweep and soft glow; outline has a gilt border */
.btn {
	--fill: var(--metal);
	--fg: var(--on-metal);
	--chip-bg: #fff6e8;
	--chip-fg: var(--ember);
	--glow: rgb(var(--c-primary-rgb) / 0.55);
	position: relative;
	isolation: isolate;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.9rem;
	min-height: 3.5rem;
	padding: 0.38rem 0.38rem 0.38rem 1.75rem;
	overflow: hidden;
	border: 1px solid transparent;
	border-radius: var(--btn-r);
	background: var(--fill);
	background-size: 220% 100%;
	background-position: 0% 50%;
	color: var(--fg);
	font-family: var(--f-sans);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	line-height: 1;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06),
		0 12px 30px -12px var(--glow),
		inset 0 1px 0 rgba(255, 255, 255, 0.35),
		inset 0 -10px 18px -10px rgba(80, 6, 4, 0.55);
	transition: background-position 0.7s var(--ease),
		box-shadow 0.45s var(--ease),
		translate 0.45s var(--ease),
		color 0.35s;
}

/* shine sweep */
.btn::after,
.elementor /* shine sweep */
.btn::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
	background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, 0.45) 48%, rgba(255, 255, 255, 0.1) 55%, transparent 70%);
	transform: translateX(-120%);
	pointer-events: none;
}

.btn:hover::after,
.btn:focus-visible::after {
	transform: translateX(120%);
	transition: transform 0.85s var(--ease);
}

.btn > * {
	position: relative;
	z-index: 2;
}

.btn:hover,
.btn:focus-visible,
.elementor .btn:hover,
.elementor .btn:focus-visible {
	translate: 0 -2px;
	background-position: 100% 50%;
	box-shadow: 0 0 0 1px rgb(var(--c-accent-2-rgb) / calc(0.25 * var(--glow))),
		0 18px 42px -12px var(--glow),
		0 0 36px -6px rgb(var(--c-accent-rgb) / calc(0.45 * var(--glow))),
		inset 0 1px 0 rgba(255, 255, 255, 0.45),
		inset 0 -10px 18px -10px rgba(80, 6, 4, 0.45);
}

.btn:active {
	translate: 0 0;
	transition-duration: 0.12s;
}

.btn:focus-visible {
	outline: 2px solid var(--gold-2);
	outline-offset: 3px;
}

/* Outline: dark glass fill inside a gilt gradient border,
ember wipe on hover */
.btn--outline,
.btn--ghost,
.btn--light,
.elementor /* Outline: dark glass fill inside a gilt gradient border,
.elementor ember wipe on hover */
.btn--outline,
.elementor .btn--ghost,
.elementor .btn--light {
	--fg: var(--text);
	--chip-bg: rgb(var(--c-accent-rgb) / 0.14);
	--chip-fg: var(--gold-2);
	--glow: rgb(var(--c-accent-rgb) / 0.28);
	background: linear-gradient(rgb(var(--c-surface-rgb) / 0.82), rgb(var(--c-surface-rgb) / 0.82)) padding-box,
		var(--gilt) border-box;
	background-size: 100% 100%, 220% 100%;
	box-shadow: 0 10px 28px -14px var(--glow),
		inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.btn--outline::before,
.btn--ghost::before,
.btn--light::before,
.elementor .btn--outline::before,
.elementor .btn--ghost::before,
.elementor .btn--light::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	border-radius: inherit;
	background: var(--metal);
	clip-path: circle(0% at 50% 120%);
	transition: clip-path 0.6s var(--ease);
}

.btn--outline:hover,
.btn--ghost:hover,
.btn--light:hover,
.btn--outline:focus-visible,
.btn--ghost:focus-visible,
.btn--light:focus-visible {
	--fg: var(--on-metal);
	--chip-bg: #fff6e8;
	--chip-fg: var(--ember);
	--glow: rgb(var(--c-primary-rgb) / 0.5);
	background-position: 0 0, 100% 50%;
}

.btn--outline:hover::before,
.btn--ghost:hover::before,
.btn--light:hover::before,
.btn--outline:focus-visible::before,
.btn--ghost:focus-visible::before,
.btn--light:focus-visible::before {
	clip-path: circle(150% at 50% 120%);
}

.btn--plain {
	padding-inline: 1.6rem;
}

.btn--sm {
	min-height: 2.75rem;
	padding-left: 1.3rem;
	font-size: 0.7rem;
	letter-spacing: 0.13em;
}

.btn--sm.btn--plain {
	padding-inline: 1.3rem;
}

.btn--sm .btn__icon,
.elementor .btn--sm .btn__icon {
	width: 2.05rem;
	height: 2.05rem;
}

.btn--block {
	width: 100%;
	justify-content: space-between;
}

.btn__label {
	position: relative;
	display: inline-block;
	overflow: hidden;
	padding-block: 0.2em;
}

.btn__text {
	display: inline-block;
	transition: transform 0.5s var(--ease);
}

.btn__label::after {
	content: attr(data-label);
	position: absolute;
	left: 0;
	top: 100%;
	padding-block: 0.2em;
	transition: transform 0.5s var(--ease);
}

.btn:hover .btn__text,
.btn:hover .btn__label::after {
	transform: translateY(-100%);
}

.btn__icon,
.elementor .btn__icon {
	display: grid;
	place-items: center;
	flex: none;
	width: 2.7rem;
	height: 2.7rem;
	border-radius: 50%;
	background: var(--chip-bg);
	color: var(--chip-fg);
	box-shadow: 0 4px 12px -4px rgba(40, 4, 2, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.6);
	transition: transform 0.5s var(--ease), background-color 0.35s, color 0.35s;
}

.btn--outline .btn__icon,
.btn--ghost .btn__icon,
.btn--light .btn__icon,
.elementor .btn--outline .btn__icon,
.elementor .btn--ghost .btn__icon,
.elementor .btn--light .btn__icon {
	box-shadow: inset 0 0 0 1px rgb(var(--c-accent-rgb) / calc(0.35 * var(--glow)));
}

.btn__icon .icon,
.elementor .btn__icon .icon {
	width: 1rem;
	height: 1rem;
}

.btn:hover .btn__icon {
	transform: rotate(-45deg) scale(1.06);
}

@media (prefers-reduced-motion: reduce) {
	.btn,
	.btn::after,
	.btn::before {
		transition: none;
	}
}

/* Surfaces */
.glass,
.elementor /* Surfaces */
.glass {
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.22 * var(--border)));
	background: rgb(var(--c-bg-rgb) / 0.62);
	-webkit-backdrop-filter: blur(16px) saturate(140%);
	backdrop-filter: blur(16px) saturate(140%);
}

.glass-card,
.elementor .glass-card {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--r);
	background: linear-gradient(160deg, rgb(var(--c-text-rgb) / 0.05), rgb(var(--c-text-rgb) / 0.012));
}

.spotlight {
	position: relative;
}

.spotlight::before,
.elementor .spotlight::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	border-radius: inherit;
	pointer-events: none;
	opacity: 0;
	background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 50%), rgb(var(--c-accent-rgb) / calc(0.16 * var(--glow))), transparent 45%);
	transition: opacity 0.4s;
}

.spotlight:hover::before {
	opacity: 1;
}

.panel,
.elementor .panel {
	position: relative;
	overflow: hidden;
	margin-inline: clamp(0.5rem, 0.2rem + 0.8vw, 1rem);
	padding-block: var(--section-y);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: radial-gradient(60% 70% at 100% 0%, rgb(var(--c-accent-rgb) / calc(0.12 * var(--glow))), transparent 60%),
		linear-gradient(160deg, var(--em-2), var(--em-1) 70%);
	box-shadow: 0 50px 120px -50px rgb(0 0 0 / calc(0.9 * var(--shadow)));
}

.status {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.82rem;
	color: var(--muted);
}

.status i,
.elementor .status i {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: #4ade80;
	box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.6);
	animation: pulse 2.2s var(--ease) infinite;
}

.status.is-closed i {
	background: var(--chili);
	animation: none;
}

.status--lg,
.elementor .status--lg {
	margin-bottom: 0.5rem;
	padding: 0.65rem 1.1rem;
	border: 1px solid var(--line);
	border-radius: var(--btn-r);
	color: var(--text);
}

@keyframes pulse {
	70%,
	100% {
		box-shadow: 0 0 0 0.6rem rgba(74, 222, 128, 0);
	}
}

.hours {
	display: grid;
	gap: 0.75rem;
}

.hours li {
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
	color: var(--muted);
}

.hours li span:first-child {
	color: var(--text);
	font-weight: 400;
	white-space: nowrap;
}

.hours li i {
	flex: 1;
	min-width: 1rem;
	border-bottom: 1px dotted rgb(var(--c-accent-rgb) / calc(0.4 * var(--border)));
}

.hours li span:last-child {
	white-space: nowrap;
}

.label {
	margin-bottom: 1rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--gold);
}

.contact-list {
	display: grid;
	gap: 0.85rem;
}

.contact-list li {
	display: flex;
	gap: 0.75rem;
	color: var(--muted);
}

.contact-list .icon,
.elementor .contact-list .icon {
	width: 1.05rem;
	height: 1.05rem;
	margin-top: 0.3em;
	color: var(--gold);
}

.contact-list a {
	color: var(--text);
}

.contact-list a:hover {
	color: var(--gold-2);
}

.roll {
	position: relative;
	display: inline-block;
	overflow: hidden;
	vertical-align: top;
	line-height: 1.4;
}

.roll span {
	display: inline-block;
	transition: transform 0.55s var(--ease);
}

.roll::after {
	content: attr(data-text);
	position: absolute;
	left: 0;
	top: 100%;
	color: var(--gold-2);
	transition: transform 0.55s var(--ease);
}

a:hover > .roll span,
a:hover > .roll::after {
	transform: translateY(-100%);
}

/* Cursor */
.has-cursor,
.has-cursor * {
	cursor: none !important;
}

.has-cursor input,
.has-cursor textarea {
	cursor: text !important;
}

.cursor-dot,
.cursor-ring,
.elementor .cursor-dot,
.elementor .cursor-ring {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 400;
	pointer-events: none;
	border-radius: 50%;
	will-change: transform;
	contain: layout style;
}

.cursor-dot,
.elementor .cursor-dot {
	width: 6px;
	height: 6px;
	margin: -3px 0 0 -3px;
	background: var(--gold-2);
}

.cursor-ring,
.elementor .cursor-ring {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	margin: -20px 0 0 -20px;
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.6 * var(--border)));
	transition: width 0.35s var(--ease), height 0.35s var(--ease), margin 0.35s var(--ease), background-color 0.3s, border-color 0.3s, opacity 0.3s, scale 0.2s;
}

.cursor-ring.is-link,
.elementor .cursor-ring.is-link {
	width: 64px;
	height: 64px;
	margin: -32px 0 0 -32px;
	border-color: transparent;
	background: rgb(var(--c-accent-rgb) / 0.16);
}

.cursor-ring.is-label,
.elementor .cursor-ring.is-label {
	width: 92px;
	height: 92px;
	margin: -46px 0 0 -46px;
	border-color: transparent;
	background: var(--metal);
}

.cursor-ring.is-down {
	scale: 0.85;
}

.cursor-ring.is-hidden,
.cursor-ring:not(.is-moved),
.cursor-dot:not(.is-moved) {
	opacity: 0;
}

.cursor-ring__label {
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--on-metal);
	opacity: 0;
	transform: scale(0.6);
	transition: opacity 0.3s, transform 0.4s var(--ease);
}

.cursor-ring.is-label .cursor-ring__label {
	opacity: 1;
	transform: none;
}

/* Progress + back to top */
.scroll-progress,
.elementor /* Progress + back to top */
.scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 210;
	height: 2px;
	pointer-events: none;
}

.scroll-progress span,
.elementor .scroll-progress span {
	display: block;
	height: 100%;
	background: var(--metal);
	transform: scaleX(0);
	transform-origin: left;
}

.to-top,
.elementor .to-top {
	position: fixed;
	right: clamp(1rem, 2vw, 2rem);
	bottom: clamp(1rem, 2vw, 2rem);
	z-index: 150;
	display: grid;
	place-items: center;
	width: 3.4rem;
	height: 3.4rem;
	border-radius: 50%;
	background: rgb(var(--c-bg-rgb) / 0.75);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	color: var(--gold-2);
	opacity: 0;
	visibility: hidden;
	transform: translateY(20px);
}

.to-top__svg,
.elementor .to-top__svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
}

.to-top__svg circle {
	fill: none;
	stroke-width: 1.5;
}

.to-top__track {
	stroke: var(--line);
}

.to-top__ring {
	stroke: var(--gold);
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* ================= Reused sections (reservation, FAQ, visit) restyled ================= */
.reserve__grid {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	align-items: stretch;
	gap: clamp(2rem, 1rem + 4vw, 5rem);
}

.reserve__main .section-head {
	margin-bottom: 2rem;
}

.reserve__form {
	display: grid;
	gap: 1.6rem;
	padding: clamp(1.5rem, 1rem + 2vw, 2.5rem);
}

.form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.6rem;
}

.field-group {
	display: grid;
	gap: 0.75rem;
}

.field-label {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gold);
}

.field-label .icon,
.elementor .field-label .icon {
	width: 1rem;
	height: 1rem;
}

.chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.chip,
.elementor .chip {
	min-width: 2.9rem;
	height: 2.9rem;
	padding-inline: 0.9rem;
	border: 1px solid var(--line);
	border-radius: var(--btn-r);
	font-weight: 400;
	font-size: 0.875rem;
	transition: background 0.3s, border-color 0.3s, color 0.3s, transform 0.4s var(--ease);
}

.chip:hover {
	border-color: var(--gold);
}

.chip.is-on {
	border-color: transparent;
	background: var(--metal);
	color: var(--on-metal);
	transform: translateY(-2px);
}

.field {
	position: relative;
	display: block;
}

.field input,
.field textarea,
.elementor .field input,
.elementor .field textarea {
	width: 100%;
	min-height: 3.3rem;
	padding: 1.4rem 0 0.6rem;
	border: 0;
	border-bottom: 1px solid rgb(var(--c-accent-rgb) / calc(0.3 * var(--border)));
	background: transparent;
	outline: none;
	resize: vertical;
	transition: border-color 0.3s;
}

.field input:focus,
.field textarea:focus {
	border-bottom-color: var(--gold-2);
}

.field span {
	position: absolute;
	left: 0;
	top: 1.35rem;
	color: var(--muted);
	pointer-events: none;
	transform-origin: left top;
	transition: transform 0.35s var(--ease), color 0.3s;
}

.field input:focus + span,
.field input:not(:placeholder-shown) + span,
.field textarea:focus + span,
.field textarea:not(:placeholder-shown) + span,
.field input[type='date'] + span {
	transform: translateY(-1.35rem) scale(0.78);
	color: var(--gold);
}

.field input[type='date'] {
	color-scheme: dark;
}

.reserve__done {
	display: grid;
	justify-items: start;
	gap: 1rem;
	padding: 2.5rem;
}

.reserve__done-icon,
.elementor .reserve__done-icon {
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 50%;
	background: var(--metal);
	color: var(--on-metal);
}

.reserve__done h3 {
	font-family: var(--f-display);
	font-size: 2.6rem;
	line-height: 1;
}

.reserve__done p {
	color: var(--muted);
}

.reserve__media,
.elementor .reserve__media {
	position: relative;
	min-height: 32rem;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: 400px 400px var(--r-lg) var(--r-lg);
}

.reserve__media img,
.elementor .reserve__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.reserve__card,
.elementor .reserve__card {
	position: absolute;
	left: 1.25rem;
	right: 1.25rem;
	bottom: 1.25rem;
	display: grid;
	gap: 1rem;
	padding: 1.5rem;
	border-radius: var(--r);
}

.reserve__card h3 {
	font-family: var(--f-display);
	font-size: 1.9rem;
	line-height: 1;
}

.reserve__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 400;
	color: var(--gold-2);
}

.faq__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	align-items: start;
	gap: clamp(2rem, 1rem + 5vw, 7rem);
}

.faq {
	position: relative;
	padding-block: var(--section-y);
}

.faq__intro {
	position: sticky;
	top: 8rem;
}

.faq__call,
.elementor .faq__call {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	padding: 0.6rem 1.6rem 0.6rem 0.6rem;
	overflow: hidden;
	border-radius: var(--btn-r);
	font-family: var(--f-display);
	font-size: 1.6rem;
	line-height: 1.1;
}

.faq__call small {
	display: block;
	font-family: var(--f-sans);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gold);
}

.faq__call-icon,
.elementor .faq__call-icon {
	display: grid;
	place-items: center;
	width: 3.1rem;
	height: 3.1rem;
	border-radius: 50%;
	background: var(--metal);
	color: var(--on-metal);
}

.faq__list {
	display: grid;
	gap: 0.85rem;
}

.faq__item,
.elementor .faq__item {
	overflow: hidden;
	border: 1px solid var(--line-soft);
	border-radius: var(--r);
	background: rgb(var(--c-text-rgb) / 0.025);
	transition: border-color 0.4s, background-color 0.4s;
}

.faq__item.is-open {
	border-color: var(--line);
	background: linear-gradient(160deg, rgb(var(--c-accent-rgb) / 0.1), rgb(var(--c-primary-deep-rgb) / 0.5));
}

.faq__q {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	width: 100%;
	padding: 1.35rem 1.5rem;
	text-align: left;
}

.faq__num {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--gold);
}

.faq__q-text {
	flex: 1;
	font-family: var(--f-display);
	font-size: clamp(1.4rem, 1.1rem + 0.8vw, 1.9rem);
	font-weight: 400;
	line-height: 1.15;
}

.faq__toggle,
.elementor .faq__toggle {
	display: grid;
	place-items: center;
	flex: none;
	width: 2.5rem;
	height: 2.5rem;
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--gold);
	transition: transform 0.5s var(--ease), background 0.4s, color 0.4s;
}

.faq__item.is-open .faq__toggle {
	transform: rotate(45deg);
	background: var(--metal);
	color: var(--on-metal);
}

.faq__a {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.55s var(--ease);
}

.faq__item.is-open .faq__a {
	grid-template-rows: 1fr;
}

.faq__a > div {
	overflow: hidden;
}

.faq__a p {
	padding: 0 1.5rem 1.5rem 3.7rem;
	color: var(--muted);
}

.visit {
	position: relative;
	padding-block: var(--section-y);
}

.visit__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	align-items: stretch;
	gap: clamp(2rem, 1rem + 4vw, 6rem);
}

.visit__info .section-head {
	margin-bottom: 1.5rem;
}

.visit__cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	margin: 2.5rem 0;
}

.visit__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.map-card,
.elementor .map-card {
	position: relative;
	min-height: 32rem;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--em-1);
	box-shadow: 0 50px 100px -40px rgb(0 0 0 / calc(0.9 * var(--shadow)));
}

.map-card iframe,
.elementor .map-card iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	filter: invert(0.9) hue-rotate(160deg) saturate(0.5) brightness(0.85) contrast(1.1);
}

.map-card__tint {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: radial-gradient(circle at 50% 50%, transparent 30%, rgb(var(--c-night-rgb) / 0.65) 100%),
		linear-gradient(135deg, rgb(var(--c-primary-deep-rgb) / 0.35), rgb(var(--c-accent-rgb) / 0.12));
	mix-blend-mode: multiply;
}

.map-card__pin,
.elementor .map-card__pin {
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	place-items: center;
	width: 3.3rem;
	height: 3.3rem;
	translate: -50% -50%;
	border-radius: 50%;
	background: var(--metal);
	color: var(--on-metal);
	box-shadow: 0 0 0 6px rgb(var(--c-accent-rgb) / calc(0.25 * var(--glow))), 0 14px 30px -6px rgb(var(--c-accent-rgb) / calc(0.8 * var(--glow)));
	pointer-events: none;
}

.map-card__pin i,
.elementor .map-card__pin i {
	position: absolute;
	inset: 0;
	border: 2px solid var(--gold);
	border-radius: 50%;
	animation: ping 2.4s var(--ease) infinite;
}

@keyframes ping {
	to {
		opacity: 0;
		transform: scale(3);
	}
}

.map-card__info,
.elementor .map-card__info {
	position: absolute;
	left: 1rem;
	right: 1rem;
	bottom: 1rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.15rem;
	border-radius: var(--r);
}

.map-card__icon,
.elementor .map-card__icon {
	display: grid;
	place-items: center;
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 50%;
	background: rgb(var(--c-accent-rgb) / 0.15);
	color: var(--gold);
}

.map-card__text {
	display: grid;
	flex: 1;
	line-height: 1.3;
}

.map-card__text small {
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gold);
}

.map-card__btn,
.elementor .map-card__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.75rem 1.1rem;
	border-radius: var(--btn-r);
	background: var(--metal);
	color: var(--on-metal);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.map-card__btn .icon,
.elementor .map-card__btn .icon {
	width: 1rem;
	height: 1rem;
}

@media (max-width: 1023px) {
	.reserve__grid,
.faq__grid,
.visit__grid,
.elementor .reserve__grid,
.elementor .faq__grid,
.elementor .visit__grid {
		grid-template-columns: 1fr;
	}

	.faq__intro,
.elementor .faq__intro {
		position: relative;
		top: auto;
	}

	.reserve__media,
.elementor .reserve__media {
		min-height: 26rem;
	}
}

@media (max-width: 599px) {
	.form-row,
.visit__cols,
.elementor .form-row,
.elementor .visit__cols {
		grid-template-columns: 1fr;
	}

	.faq__a p,
.elementor .faq__a p {
		padding-left: 1.5rem;
	}

	.map-card,
.elementor .map-card {
		min-height: 26rem;
	}
}


/* ================= HEADER ================= */
.rh {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 200;
	transition: transform 0.7s var(--ease);
}

.rh.is-hidden {
	transform: translateY(-110%);
}

.rh__bar {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem;
	padding: 1.1rem var(--gutter);
	border-bottom: 1px solid transparent;
	transition: background-color 0.5s, border-color 0.5s, padding 0.5s var(--ease);
}

.rh.is-scrolled .rh__bar {
	padding-block: 0.7rem;
	border-bottom-color: var(--line);
	background: rgb(var(--c-night-rgb) / 0.82);
	-webkit-backdrop-filter: blur(18px) saturate(140%);
	backdrop-filter: blur(18px) saturate(140%);
}

.rh__left {
	display: flex;
	align-items: center;
	gap: 2rem;
}

.rh__menu {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.24em;
	text-transform: uppercase;
}

.rh__burger {
	display: grid;
	gap: 5px;
	width: 26px;
}

.rh__burger i,
.elementor .rh__burger i {
	display: block;
	height: 1.5px;
	background: var(--gold);
	transition: transform 0.5s var(--ease), width 0.5s var(--ease), opacity 0.3s;
}

.rh__burger i:nth-child(2) {
	width: 70%;
}

.rh__menu:hover .rh__burger i:nth-child(2) {
	width: 100%;
}

.menu-open .rh__burger i:nth-child(1) {
	transform: translateY(6.5px) rotate(45deg);
}

.menu-open .rh__burger i:nth-child(2) {
	opacity: 0;
}

.menu-open .rh__burger i:nth-child(3) {
	transform: translateY(-6.5px) rotate(-45deg);
}

.rh__nav {
	display: flex;
	gap: 1.6rem;
}

.rh__link {
	font-size: 0.74rem;
	font-weight: 400;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgb(var(--c-text-rgb) / 0.8);
}

.rh__brand {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
}

.rh__word {
	display: grid;
	line-height: 1;
}

.rh__word strong {
	font-family: var(--f-display);
	font-size: 1.7rem;
	font-weight: 400;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	background: var(--gilt);
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.rh__word small {
	margin-top: 0.3rem;
	font-family: var(--f-display);
	font-size: 0.82rem;
	font-style: italic;
	color: var(--muted);
}

.rh__brand .crest {
	transition: transform 1.2s var(--ease);
}

.rh__brand:hover .crest {
	transform: rotate(90deg);
}

.rh__right {
	justify-self: end;
	display: flex;
	align-items: center;
	gap: 0.65rem;
}

.rh__order,
.elementor .rh__order {
	display: inline-flex;
	align-items: center;
	min-height: 2.8rem;
	padding: 0 1.4rem;
	border: 1px solid var(--line);
	border-radius: var(--btn-r);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	transition: border-color 0.3s, background-color 0.3s;
}

.rh__order:hover {
	border-color: var(--gold);
	background: rgb(var(--c-accent-rgb) / 0.08);
}

@media (max-width: 1100px) {
	.rh__nav,
.elementor .rh__nav {
		display: none;
	}
}

@media (max-width: 699px) {
	.rh__word small,
.rh__order,
.rh__menu > span:last-child,
.elementor .rh__word small,
.elementor .rh__order,
.elementor .rh__menu > span:last-child {
		display: none;
	}

	.rh__word strong,
.elementor .rh__word strong {
		font-size: 1.3rem;
	}

	.rh__brand .crest,
.elementor .rh__brand .crest {
		width: 36px;
		height: 36px;
	}
}

/* Full-screen menu: arch photo that follows the hovered link · big links · booking card */
.rmenu {
	position: fixed;
	inset: 0;
	z-index: 190;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--night);
	clip-path: inset(0 0 100% 0);
	visibility: hidden;
	transition: clip-path 0.55s var(--ease-io), visibility 0s 0.55s;
}

.menu-open .rmenu {
	clip-path: inset(0 0 0 0);
	visibility: visible;
	transition: clip-path 0.7s var(--ease-io), visibility 0s;
}

.rmenu__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(50vmax 40vmax at 100% 0%, rgb(var(--c-primary-rgb) / calc(0.2 * var(--glow))), transparent 70%),
		radial-gradient(45vmax 40vmax at 0% 100%, rgb(var(--c-accent-rgb) / calc(0.1 * var(--glow))), transparent 70%),
		radial-gradient(30vmax 30vmax at 50% 55%, rgb(var(--c-primary-2-rgb) / calc(0.06 * var(--glow))), transparent 70%),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23f3b23a' stroke-opacity='.05' stroke-width='1'%3E%3Cpath d='M48 8 L58 38 L88 48 L58 58 L48 88 L38 58 L8 48 L38 38 Z'/%3E%3Ccircle cx='48' cy='48' r='6'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 96px 96px,
		var(--night);
}

/* The header links would sit on top of the menu; the menu has its own. */
.menu-open .rh__nav,
.menu-open .rh__order {
	opacity: 0;
	visibility: hidden;
}

.menu-open .rh__bar {
	border-bottom-color: transparent;
	background: transparent;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

.rmenu__inner,
.elementor .rmenu__inner {
	flex: 1;
	display: grid;
	grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.25fr) minmax(0, 0.82fr);
	align-items: center;
	gap: clamp(2rem, 4vw, 5rem);
	width: 100%;
	max-width: var(--container);
	min-height: 0;
	margin-inline: auto;
	padding: clamp(5.5rem, 13svh, 7.5rem) var(--gutter) 1rem;
}

/* Arch photo */
.rmenu__visual {
	position: relative;
	display: grid;
	gap: 1.1rem;
	justify-items: center;
	opacity: 0;
	translate: 0 30px;
	transition: opacity 0.4s, translate 0.4s var(--ease);
}

.rmenu__arch,
.elementor .rmenu__arch {
	position: relative;
	width: min(100%, 22rem);
	height: min(50svh, 30rem);
	overflow: hidden;
	border-radius: 999px 999px var(--r-lg) var(--r-lg);
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.35 * var(--border)));
	box-shadow: 0 0 0 6px rgb(var(--c-bg-rgb) / 0.9), 0 0 0 7px rgb(var(--c-accent-rgb) / calc(0.18 * var(--glow))), 0 40px 90px -30px rgb(var(--c-primary-rgb) / calc(0.55 * var(--glow)));
	clip-path: inset(100% 0 0 0 round 999px 999px 0 0);
	transition: clip-path 0.4s var(--ease-io);
}

.rmenu__arch img,
.elementor .rmenu__arch img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	scale: 1.12;
	transition: opacity 0.6s var(--ease), scale 1.2s var(--ease);
}

.rmenu__arch img.is-on {
	opacity: 1;
	scale: 1;
}

.rmenu__arch-shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 55%, rgb(var(--c-night-rgb) / 0.65));
}

.rmenu__arch-line,
.elementor .rmenu__arch-line {
	width: 1px;
	height: 2.2rem;
	margin-top: -0.4rem;
	background: linear-gradient(var(--gold), transparent);
}

.rmenu__caption {
	display: grid;
	gap: 0.2rem;
	text-align: center;
	font-family: var(--f-display);
	font-size: 1.25rem;
	font-style: italic;
	color: var(--ivory);
}

.rmenu__caption small {
	font-family: var(--f-sans);
	font-size: 0.66rem;
	font-style: normal;
	letter-spacing: 0.28em;
	color: var(--gold);
}

/* Links */
.rmenu__nav {
	display: grid;
	counter-reset: none;
}

.rmenu__link {
	position: relative;
	display: grid;
	grid-template-columns: 2.4rem 1fr auto;
	align-items: center;
	gap: 1rem;
	padding: clamp(0.35rem, 1.1svh, 0.75rem) 0;
	border-bottom: 1px solid var(--line-soft);
}

.rmenu__link:first-child {
	border-top: 1px solid var(--line-soft);
}

/* Gilt line that sweeps under the hovered link */
.rmenu__link::after,
.elementor /* Gilt line that sweeps under the hovered link */
.rmenu__link::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 1px;
	background: var(--gilt);
	box-shadow: 0 0 14px rgb(var(--c-primary-rgb) / calc(0.6 * var(--glow)));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.6s var(--ease);
}

.rmenu__link:hover::after,
.rmenu__link:focus-visible::after {
	transform: none;
}

.rmenu__num {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	color: var(--gold);
	opacity: 0;
	transition: opacity 0.4s;
}

.rmenu__label {
	display: grid;
	min-width: 0;
}

.rmenu__mask {
	display: block;
	overflow: hidden;
	padding-bottom: 0.08em;
}

.rmenu__word {
	display: inline-block;
	font-family: var(--f-display);
	font-size: clamp(2rem, min(4.4vw, 7.6svh), 4.6rem);
	font-weight: 400;
	line-height: 1.02;
	color: var(--ivory);
	translate: 0 110%;
	transition: translate 0.45s var(--ease), color 0.35s, letter-spacing 0.6s var(--ease);
}

.rmenu__link:hover .rmenu__word,
.rmenu__link:focus-visible .rmenu__word,
.rmenu__link[aria-current='page'] .rmenu__word {
	font-style: italic;
	background: var(--gilt);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	filter: drop-shadow(0 0 18px rgb(var(--c-primary-rgb) / calc(0.35 * var(--glow))));
	padding-right: 0.08em;
}

.rmenu__label small {
	font-size: 0.74rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--faint);
	opacity: 0;
	transition: opacity 0.4s, color 0.3s;
}

.rmenu__link:hover .rmenu__label small {
	color: var(--muted);
}

.rmenu__go,
.elementor .rmenu__go {
	display: grid;
	place-items: center;
	width: 2.8rem;
	height: 2.8rem;
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--gold-2);
	opacity: 0;
	transition: opacity 0.4s, background-color 0.35s, border-color 0.35s, rotate 0.5s var(--ease), color 0.35s;
}

.rmenu__go .icon,
.elementor .rmenu__go .icon {
	width: 1rem;
	height: 1rem;
}

.rmenu__link:hover .rmenu__go,
.rmenu__link:focus-visible .rmenu__go,
.elementor .rmenu__link:hover .rmenu__go,
.elementor .rmenu__link:focus-visible .rmenu__go {
	rotate: 45deg;
	border-color: transparent;
	background: var(--metal);
	color: #fff;
	box-shadow: 0 8px 22px -8px rgb(var(--c-primary-rgb) / calc(0.8 * var(--glow)));
}

/* Booking card + contacts */
.rmenu__aside {
	display: grid;
	gap: 1.1rem;
	opacity: 0;
	translate: 0 30px;
	transition: opacity 0.4s, translate 0.4s var(--ease);
}

.rmenu__card,
.elementor .rmenu__card {
	position: relative;
	display: grid;
	gap: 0.8rem;
	padding: 1.5rem;
	overflow: hidden;
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.25 * var(--border)));
	border-radius: var(--r-lg);
	background: radial-gradient(90% 70% at 100% 0%, rgb(var(--c-primary-rgb) / calc(0.22 * var(--glow))), transparent 65%),
		linear-gradient(160deg, var(--c-surface-2), var(--c-surface) 75%);
	box-shadow: inset 0 1px 0 rgb(var(--c-accent-2-rgb) / calc(0.16 * var(--glow))), 0 30px 70px -30px rgb(var(--c-primary-rgb) / calc(0.45 * var(--glow)));
}

.rmenu__eyebrow {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gold);
}

.rmenu__dot,
.elementor .rmenu__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--faint);
}

.rmenu__dot.is-open,
.elementor .rmenu__dot.is-open {
	background: #3ddc84;
	box-shadow: 0 0 0 4px rgba(61, 220, 132, 0.18), 0 0 12px rgba(61, 220, 132, 0.7);
}

.rmenu__card h3 {
	font-family: var(--f-display);
	font-size: clamp(1.8rem, 1.2rem + 1.2vw, 2.4rem);
	font-weight: 400;
	line-height: 1;
}

.rmenu__card h3 em {
	background: var(--gilt);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	padding-right: 0.06em;
}

.rmenu__card > p:not(.rmenu__eyebrow) {
	font-size: 0.9rem;
	line-height: 1.55;
	color: var(--muted);
}

.rmenu__card .btn {
	margin-top: 0.3rem;
}

.rmenu__info {
	display: grid;
	gap: 0.3rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rmenu__info a,
.elementor .rmenu__info a {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding: 0.55rem 0.6rem;
	border-radius: var(--r-sm);
	transition: background-color 0.3s;
}

.rmenu__info a:hover {
	background: rgb(var(--c-accent-rgb) / 0.07);
}

.rmenu__info .icon,
.elementor .rmenu__info .icon {
	flex: none;
	box-sizing: content-box;
	width: 1rem;
	height: 1rem;
	padding: 0.65rem;
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--gold-2);
}

.rmenu__info span {
	display: grid;
	min-width: 0;
	font-size: 0.92rem;
	line-height: 1.35;
	color: var(--text);
	overflow-wrap: anywhere;
}

.rmenu__info small {
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--faint);
}

.rmenu__socials {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.rmenu__socials a,
.elementor .rmenu__socials a {
	padding: 0.55rem 1rem;
	border: 1px solid var(--line);
	border-radius: var(--btn-r);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--muted);
	transition: color 0.3s, border-color 0.3s, background-color 0.3s;
}

.rmenu__socials a:hover {
	border-color: var(--gold);
	background: rgb(var(--c-accent-rgb) / 0.08);
	color: var(--gold-2);
}

.rmenu__bar,
.elementor .rmenu__bar {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding: 1rem var(--gutter) 1.4rem;
	font-family: var(--f-display);
	font-size: 0.95rem;
	font-style: italic;
	color: var(--faint);
	opacity: 0;
	transition: opacity 0.3s;
}

.rmenu__bar kbd,
.elementor .rmenu__bar kbd {
	padding: 0.1rem 0.45rem;
	border: 1px solid var(--line);
	border-radius: 6px;
	font-family: var(--f-sans);
	font-size: 0.7rem;
	font-style: normal;
	color: var(--muted);
}

/* Opening choreography: curtain → arch → words rise one by one → card */
.menu-open .rmenu__arch {
	clip-path: inset(0 0 0 0 round 999px 999px 0 0);
	transition: clip-path 0.9s var(--ease-io) 0.25s;
}

.menu-open .rmenu__visual,
.menu-open .rmenu__aside {
	opacity: 1;
	translate: 0 0;
	transition: opacity 0.6s 0.35s, translate 0.8s var(--ease) 0.35s;
}

.menu-open .rmenu__aside {
	transition-delay: 0.5s;
}

.menu-open .rmenu__word {
	translate: 0 0;
	transition: translate 0.8s var(--ease) calc(0.28s + var(--i) * 0.06s), color 0.35s;
}

.menu-open .rmenu__num,
.menu-open .rmenu__label small,
.menu-open .rmenu__go {
	opacity: 1;
	transition: opacity 0.6s calc(0.45s + var(--i) * 0.06s), background-color 0.35s, border-color 0.35s, rotate 0.5s var(--ease), color 0.35s;
}

.menu-open .rmenu__bar {
	opacity: 1;
	transition: opacity 0.6s 0.7s;
}

@media (max-height: 760px) and (min-width: 900px) {
	.rmenu__bar,
.elementor .rmenu__bar {
		display: none;
	}
}

@media (max-width: 1199px) {
	.rmenu__inner,
.elementor .rmenu__inner {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.9fr);
	}

	.rmenu__visual,
.elementor .rmenu__visual {
		display: none;
	}
}

@media (max-width: 899px) {
	.rmenu,
.elementor .rmenu {
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	.rmenu__inner,
.elementor .rmenu__inner {
		flex: none;
		grid-template-columns: 1fr;
		align-items: start;
		gap: 2rem;
		padding-top: 5.5rem;
	}

	.rmenu__word,
.elementor .rmenu__word {
		font-size: clamp(2.2rem, 10vw, 3.2rem);
	}

	.rmenu__link,
.elementor .rmenu__link {
		grid-template-columns: 2rem 1fr auto;
		gap: 0.75rem;
		padding-block: 0.6rem;
	}

	.rmenu__label small,
.elementor .rmenu__label small {
		font-size: 0.64rem;
	}

	.rmenu__go,
.elementor .rmenu__go {
		width: 2.3rem;
		height: 2.3rem;
	}

	.rmenu__bar-hint,
.elementor .rmenu__bar-hint {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rmenu,
	.rmenu *,
	.menu-open .rmenu,
	.menu-open .rmenu * {
		transition-duration: 0.01s !important;
		transition-delay: 0s !important;
	}
}

/* ================= ENTRANCE — carved doors ================= */
.rpl {
	position: fixed;
	inset: 0;
	z-index: 500;
	display: grid;
	place-items: center;
	perspective: 2200px;
	perspective-origin: 50% 50%;
	pointer-events: none;
}

.rpl__backdrop {
	position: absolute;
	inset: 0;
	background: var(--night);
}

.rpl__doors {
	position: absolute;
	inset: 0;
	perspective: 2200px;
	will-change: transform, opacity;
}

.door {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 50.2%;
	will-change: transform;
	backface-visibility: hidden;
}

.door--left {
	left: 0;
	transform-origin: left center;
}

.door--right {
	right: 0;
	transform-origin: right center;
}

.door__face,
.elementor .door__face {
	position: absolute;
	inset: 0;
	overflow: hidden;
	backface-visibility: hidden;
	/* Dark lacquered wood with a warm ember sheen. */
	background: radial-gradient(120% 60% at 100% 50%, rgb(var(--c-primary-rgb) / calc(0.16 * var(--glow))), transparent 60%),
		repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.015) 0 2px, transparent 2px 9px),
		linear-gradient(180deg, var(--c-surface-2) 0%, var(--c-surface) 50%, var(--c-surface) 100%);
	box-shadow: inset 0 0 60px rgb(0 0 0 / calc(0.7 * var(--shadow)));
}

.door--right .door__face {
	background: radial-gradient(120% 60% at 0% 50%, rgb(var(--c-primary-rgb) / calc(0.16 * var(--glow))), transparent 60%),
		repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.015) 0 2px, transparent 2px 9px),
		linear-gradient(180deg, var(--c-surface-2) 0%, var(--c-surface) 50%, var(--c-surface) 100%);
}

.door__frame,
.elementor .door__frame {
	position: absolute;
	inset: clamp(1.2rem, 3vw, 3rem) clamp(1.2rem, 3.4vw, 3.6rem);
	display: grid;
	grid-template-rows: 1.55fr 1fr;
	gap: clamp(1rem, 2.4vw, 2.2rem);
	padding: clamp(0.8rem, 1.6vw, 1.4rem);
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.45 * var(--border)));
	border-radius: 999px 999px 10px 10px;
	box-shadow: inset 0 0 0 6px rgb(0 0 0 / calc(0.35 * var(--shadow))), inset 0 0 0 7px rgb(var(--c-accent-rgb) / calc(0.18 * var(--glow)));
}

.door__panel,
.elementor .door__panel {
	position: relative;
	overflow: hidden;
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.35 * var(--border)));
	box-shadow: inset 0 0 40px rgb(0 0 0 / calc(0.6 * var(--shadow)));
}

.door__panel--top,
.elementor .door__panel--top {
	border-radius: 999px 999px 6px 6px;
}

.door__panel--bottom,
.elementor .door__panel--bottom {
	border-radius: 6px;
}

/* Lattice (jali) inlay: diagonal trellis in fine saffron lines. */
.door__jali,
.elementor /* Lattice (jali) inlay: diagonal trellis in fine saffron lines. */
.door__jali {
	position: absolute;
	inset: 0.6rem;
	border-radius: inherit;
	opacity: 0.55;
	background: repeating-linear-gradient(45deg, rgb(var(--c-accent-rgb) / 0.28) 0 1px, transparent 1px 22px),
		repeating-linear-gradient(-45deg, rgb(var(--c-accent-rgb) / 0.28) 0 1px, transparent 1px 22px),
		radial-gradient(circle at 50% 30%, rgb(var(--c-primary-rgb) / calc(0.25 * var(--glow))), transparent 60%);
	-webkit-mask-image: radial-gradient(ellipse at 50% 50%, #000 40%, transparent 85%);
	mask-image: radial-gradient(ellipse at 50% 50%, #000 40%, transparent 85%);
}

/* Brass studs along the outer edge. */
.door__studs {
	position: absolute;
	top: 6%;
	bottom: 6%;
	width: 10px;
	background: radial-gradient(circle, var(--c-accent) 0 2.5px, transparent 3px) center / 10px 46px repeat-y;
	opacity: 0.6;
}

.door--left .door__studs {
	left: 0.6rem;
}

.door--right .door__studs {
	right: 0.6rem;
}

/* Ring knocker near the seam. */
.door__knocker,
.elementor /* Ring knocker near the seam. */
.door__knocker {
	position: absolute;
	top: 74%;
	width: clamp(2.6rem, 4vw, 3.6rem);
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, var(--c-accent-2), var(--c-accent-deep) 60%, var(--c-accent-deep));
	box-shadow: 0 6px 14px rgb(0 0 0 / calc(0.6 * var(--shadow)));
}

.door__knocker i,
.elementor .door__knocker i {
	position: absolute;
	left: 50%;
	top: 55%;
	width: 170%;
	aspect-ratio: 1;
	translate: -50% 0;
	border: clamp(3px, 0.4vw, 5px) solid var(--c-accent-deep);
	border-radius: 50%;
	box-shadow: 0 6px 14px rgb(0 0 0 / calc(0.55 * var(--shadow))), inset 0 1px 1px rgb(var(--c-accent-2-rgb) / calc(0.6 * var(--glow)));
}

.door--left .door__knocker {
	right: clamp(1.4rem, 4vw, 4rem);
}

.door--right .door__knocker {
	left: clamp(1.4rem, 4vw, 4rem);
}

/* Darkens the leaves as they swing away from the light. */
.door__shade {
	position: absolute;
	inset: 0;
	opacity: 0;
	background: linear-gradient(90deg, rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.4));
}

.door--right .door__shade {
	background: linear-gradient(-90deg, rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.4));
}

/* Firelight leaking through the seam. */
.rpl__light,
.elementor /* Firelight leaking through the seam. */
.rpl__light {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 4px;
	margin-left: -2px;
	background: linear-gradient(180deg, transparent, var(--c-accent-2) 20%, var(--c-primary-2) 50%, var(--c-accent-2) 80%, transparent);
	box-shadow: 0 0 40px 12px rgb(var(--c-primary-2-rgb) / calc(0.65 * var(--glow))), 0 0 120px 40px rgb(var(--c-primary-rgb) / calc(0.35 * var(--glow)));
	transform-origin: 50% 50%;
}

.rpl__medallion {
	position: relative;
	z-index: 2;
	display: grid;
	justify-items: center;
	gap: 1.1rem;
	padding: 2.5rem 3rem;
}

.rpl__halo,
.elementor .rpl__halo {
	position: absolute;
	inset: -10%;
	z-index: -1;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgb(var(--c-bg-rgb) / 0.95), rgb(var(--c-bg-rgb) / 0.7) 60%, transparent);
}

.rpl__word {
	display: flex;
	gap: 0.3em;
	font-family: var(--f-display);
	font-size: clamp(2.4rem, 1.5rem + 3vw, 4rem);
	letter-spacing: 0.12em;
}

.rpl__mask {
	display: inline-block;
	overflow: hidden;
}

.rpl__letter {
	display: inline-block;
	background: var(--gilt);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.rpl__tag {
	font-family: var(--f-display);
	font-size: 1.15rem;
	font-style: italic;
	color: var(--muted);
}

@media (max-width: 599px) {
	.door__frame,
.elementor .door__frame {
		grid-template-rows: 1.4fr 1fr;
	}

	.door__studs,
.elementor .door__studs {
		display: none;
	}
}

/* ================= HERO ================= */
.rhero {
	position: relative;
	z-index: 3;
	display: flex;
	align-items: center;
	min-height: 100svh;
	padding: clamp(5.5rem, 12svh, 8rem) 0 clamp(5.5rem, 13svh, 8rem);
	overflow-x: clip;
	isolation: isolate;
}

.rhero__bg {
	position: absolute;
	inset: 0;
	z-index: -2;
	overflow: hidden;
	background: var(--night);
}

.rhero__bg-img,
.elementor .rhero__bg-img {
	position: absolute;
	top: -20%;
	left: -4%;
	width: 108%;
	height: 140%;
	max-width: none;
	object-fit: cover;
	object-position: 30% 45%;
	will-change: transform;
}

.rhero__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgb(var(--c-bg-rgb) / 0.96) 0%, rgb(var(--c-bg-rgb) / 0.86) 34%, rgb(var(--c-bg-rgb) / 0.55) 60%, rgb(var(--c-bg-rgb) / 0.78) 100%),
		linear-gradient(180deg, rgb(var(--c-night-rgb) / 0.75) 0%, transparent 25%, transparent 65%, var(--em-0) 100%);
}

/* Warm light rays sweeping slowly from the top right. */
.rhero__rays,
.elementor /* Warm light rays sweeping slowly from the top right. */
.rhero__rays {
	position: absolute;
	top: -40%;
	right: -20%;
	width: 120%;
	height: 160%;
	opacity: 0.55;
	background: conic-gradient(from 200deg at 80% 0%, transparent 0deg, rgb(var(--c-primary-2-rgb) / 0.13) 8deg, transparent 16deg, transparent 24deg, rgb(var(--c-accent-rgb) / 0.1) 30deg, transparent 38deg, transparent 50deg, rgb(var(--c-primary-rgb) / 0.12) 56deg, transparent 64deg);
	transform-origin: 80% 0%;
	animation: rays 14s ease-in-out infinite alternate;
	will-change: transform;
	pointer-events: none;
}

@keyframes rays {
	from {
		transform: rotate(-6deg);
	}
	to {
		transform: rotate(8deg);
	}
}

.rhero__vignette {
	position: absolute;
	inset: 0;
	background: radial-gradient(60% 70% at 72% 50%, rgb(var(--c-primary-rgb) / calc(0.18 * var(--glow))), transparent 70%);
}

.rhero .gold-dust {
	z-index: -1;
}

.rhero__grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	align-items: center;
	gap: clamp(1.5rem, 4vw, 5rem);
}

.rhero__title {
	margin-bottom: clamp(1rem, 2.4svh, 1.6rem);
	font-family: var(--f-display);
	/* Scales with width AND height so it never pushes the hero past the screen. */
	font-size: min(clamp(3rem, 1.2rem + 6vw, 7.6rem), 11.5svh);
	line-height: 0.92;
	letter-spacing: 0.005em;
	text-transform: uppercase;
}

.rhero__line {
	display: block;
	overflow: hidden;
	padding-bottom: 0.06em;
}

.rhero__line--2 {
	padding-left: 0.5em;
}

.rhero__char {
	display: inline-block;
}

.rhero__title em {
	font-style: italic;
	text-transform: none;
	letter-spacing: -0.01em;
}

.rhero__title em,
.rhero__title em .rhero__char {
	background: var(--gilt);
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.rhero__title em:has(.rhero__char) {
	background: none;
	color: inherit;
}

.rhero__title em .rhero__char {
	padding-right: 0.03em;
}

.rhero__text,
.elementor .rhero__text {
	max-width: 32rem;
	margin-bottom: clamp(1.4rem, 3.4svh, 2.25rem);
	font-size: clamp(1rem, 0.95rem + 0.3vw, 1.15rem);
	color: rgb(var(--c-text-rgb) / 0.82);
}

.rhero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
}

/* Signature dish composition. */
.rdish {
	--size: min(38vw, 56svh, 580px);
	position: relative;
	justify-self: center;
	width: var(--size);
	aspect-ratio: 1;
	will-change: transform;
}

.rdish__glow,
.elementor .rdish__glow {
	position: absolute;
	inset: -18%;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgb(var(--c-primary-2-rgb) / calc(0.35 * var(--glow))), rgb(var(--c-primary-rgb) / calc(0.12 * var(--glow))) 55%, transparent);
	animation: breathe 4s ease-in-out infinite alternate;
}

@keyframes breathe {
	from {
		transform: scale(0.94);
		opacity: 0.75;
	}
	to {
		transform: scale(1.05);
		opacity: 1;
	}
}

.rdish__ring,
.elementor .rdish__ring {
	position: absolute;
	inset: -7%;
	width: 114%;
	height: 114%;
	max-width: none;
	animation: spin 40s linear infinite;
}

.rdish__ring text {
	fill: var(--gold);
	font-size: 7.4px;
	font-weight: 700;
	letter-spacing: 0.3em;
	text-transform: uppercase;
}

.rdish__orbit,
.elementor .rdish__orbit {
	position: absolute;
	inset: -16%;
	border: 1px dashed rgb(var(--c-accent-rgb) / calc(0.25 * var(--border)));
	border-radius: 50%;
	animation: spin 60s linear infinite;
}

/* Satellite dishes sit fully outside the main plate and float gently. */
.rdish__moon {
	position: absolute;
	z-index: 2;
	width: 25%;
	aspect-ratio: 1;
	animation: bob 6s ease-in-out infinite;
}

.rdish__moon--1 { left: -27%; top: 2%; }
.rdish__moon--2 { left: -31%; top: 52%; width: 21%; animation-delay: -2s; }
.rdish__moon--3 { right: -26%; top: 44%; width: 23%; animation-delay: -4s; }

@keyframes bob {
	0%,
	100% {
		translate: 0 0;
	}
	50% {
		translate: 0 -10px;
	}
}

.rdish__moon img,
.elementor .rdish__moon img {
	width: 100%;
	height: 100%;
	border: 2px solid var(--gold);
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 18px 34px -10px rgb(0 0 0 / calc(0.9 * var(--shadow))), 0 0 0 6px rgb(var(--c-bg-rgb) / 0.6);
}

.rdish__tilt {
	position: absolute;
	inset: 0;
	transform-style: preserve-3d;
}

.rdish__plate,
.elementor .rdish__plate {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	box-shadow: 0 60px 100px -30px rgb(0 0 0 / calc(0.95 * var(--shadow))),
		0 0 0 clamp(8px, 1vw, 14px) var(--c-surface),
		0 0 0 calc(clamp(8px, 1vw, 14px) + 1.5px) var(--gold),
		0 0 70px -10px rgb(var(--c-primary-2-rgb) / calc(0.55 * var(--glow)));
}

.rdish__plate-spin,
.elementor .rdish__plate-spin {
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 50%;
	animation: spin 70s linear infinite;
}

.rdish__plate-spin img,
.elementor .rdish__plate-spin img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.4);
	transform-origin: 50% 58%;
}

.rdish__rim,
.elementor .rdish__rim {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	pointer-events: none;
	background: radial-gradient(circle at 30% 22%, rgba(255, 255, 255, 0.18), transparent 36%),
		radial-gradient(circle, transparent 62%, rgba(0, 0, 0, 0.55) 72%);
}

/* Steam wisps (transform + opacity only). */
.rdish__steam,
.elementor /* Steam wisps (transform + opacity only). */
.rdish__steam {
	position: absolute;
	left: 20%;
	right: 20%;
	bottom: 55%;
	height: 75%;
	pointer-events: none;
}

.rdish__steam i,
.elementor .rdish__steam i {
	position: absolute;
	bottom: 0;
	width: 40%;
	height: 70%;
	border-radius: 50%;
	background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.28), transparent 65%);
	opacity: 0;
	animation: steam 6s ease-in-out infinite;
}

.rdish__steam i:nth-child(1) { left: 5%; }
.rdish__steam i:nth-child(2) { left: 32%; animation-delay: 2s; }
.rdish__steam i:nth-child(3) { left: 58%; animation-delay: 4s; }

@keyframes steam {
	0% {
		opacity: 0;
		transform: translateY(20%) scale(0.6, 0.7);
	}
	30% {
		opacity: 0.8;
	}
	100% {
		opacity: 0;
		transform: translateY(-80%) scale(1.3, 1.5);
	}
}

.rdish__tag,
.elementor .rdish__tag {
	position: absolute;
	left: 50%;
	bottom: -6%;
	translate: -50% 0;
	z-index: 3;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.55rem 1.1rem 0.55rem 0.55rem;
	border-radius: var(--btn-r);
	box-shadow: 0 24px 50px -18px rgb(0 0 0 / calc(0.9 * var(--shadow)));
	line-height: 1.2;
}

.rdish__tag span {
	display: grid;
}

.rdish__tag small {
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gold);
}

.rdish__tag strong {
	font-family: var(--f-display);
	font-size: 1.2rem;
	font-weight: 400;
	white-space: nowrap;
}

.rdish__tag em,
.elementor .rdish__tag em {
	margin-left: 0.4rem;
	padding: 0.35rem 0.75rem;
	border-radius: var(--btn-r);
	background: var(--metal);
	color: #fff;
	font-style: normal;
	font-weight: 800;
	font-size: 0.85rem;
}

.rdish__hot,
.elementor .rdish__hot {
	position: absolute;
	right: -14%;
	top: 4%;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.5rem 0.95rem;
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.35 * var(--border)));
	border-radius: var(--btn-r);
	background: rgb(var(--c-bg-rgb) / 0.7);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--gold-2);
}

.rdish__hot .icon,
.elementor .rdish__hot .icon {
	width: 0.95rem;
	height: 0.95rem;
	color: var(--c-primary-2);
}

.rhero__deco {
	position: absolute;
	z-index: 1;
	pointer-events: none;
}

.rhero__deco--sprig { left: -1%; bottom: 10%; width: clamp(70px, 8vw, 140px); aspect-ratio: 140 / 200; rotate: -20deg; }
.rhero__deco--chili { left: 44%; top: 26%; width: clamp(60px, 7vw, 120px); aspect-ratio: 140 / 48; rotate: 24deg; }
.rhero__deco--anise { right: 3%; bottom: 14%; width: clamp(44px, 4.4vw, 76px); aspect-ratio: 1; }
.rhero__deco--pod { left: 44%; bottom: 18%; width: clamp(20px, 2.2vw, 34px); aspect-ratio: 60 / 110; rotate: 40deg; }

@keyframes spin {
	to {
		transform: rotate(360deg);
	}
}

.rstats,
.elementor .rstats {
	position: absolute;
	left: 50%;
	bottom: -3.4rem;
	z-index: 5;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	width: min(calc(100% - var(--gutter) * 2), 64rem);
	padding: 1.4rem 1rem;
	translate: -50% 0;
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.3 * var(--border)));
	border-radius: var(--btn-r);
	background: linear-gradient(160deg, rgb(var(--c-primary-deep-rgb) / 0.95), rgb(var(--c-surface-2-rgb) / 0.97));
	box-shadow: 0 40px 80px -30px rgb(0 0 0 / calc(0.95 * var(--shadow))), inset 0 1px 0 rgb(var(--c-accent-2-rgb) / calc(0.18 * var(--glow)));
}

.rstats__item {
	display: grid;
	justify-items: center;
	gap: 0.2rem;
	text-align: center;
}

.rstats__item + .rstats__item {
	border-left: 1px solid var(--line);
}

.rstats__item strong {
	font-family: var(--f-display);
	font-size: clamp(2rem, 1.4rem + 1.6vw, 3rem);
	font-weight: 400;
	line-height: 1;
	background: var(--gilt);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.rstats__item span {
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--muted);
}

@media (max-width: 899px) {
	.rhero,
.elementor .rhero {
		align-items: flex-start;
		min-height: auto;
		padding: 6.5rem 0 9rem;
	}

	.rhero__grid,
.elementor .rhero__grid {
		grid-template-columns: 1fr;
	}

	.rdish,
.elementor .rdish {
		--size: min(60vw, 300px);
		order: -1;
		margin: 1.5rem 0 2rem;
	}

	.rdish__tag,
.elementor .rdish__tag {
		bottom: -14%;
	}

	.rdish__moon--1,
.elementor .rdish__moon--1 { left: -22%; top: -2%; }
	.rdish__moon--2,
.elementor .rdish__moon--2 { left: -24%; top: 60%; }
	.rdish__moon--3,
.elementor .rdish__moon--3 { right: -22%; top: 40%; }

	.rdish__hot,
.elementor .rdish__hot {
		right: -6%;
		top: -6%;
	}

	.rhero__title,
.elementor .rhero__title {
		font-size: clamp(2.6rem, 10vw, 4.4rem);
	}

	.rhero__line--2,
.elementor .rhero__line--2 {
		padding-left: 0;
	}

	.rhero__deco--chili,
.rhero__deco--pod,
.elementor .rhero__deco--chili,
.elementor .rhero__deco--pod {
		display: none;
	}

	.rstats,
.elementor .rstats {
		grid-template-columns: 1fr 1fr;
		row-gap: 1.2rem;
		border-radius: var(--r-lg);
		bottom: -6rem;
	}

	.rstats__item:nth-child(3),
.elementor .rstats__item:nth-child(3) {
		border-left: 0;
	}
}

/* ================= PLATE WHEEL ================= */
/* Everything is sized from the viewport height so the head,
plate and caption always fit. */
.wheel,
.elementor /* ================= PLATE WHEEL ================= */
/* Everything is sized from the viewport height so the head,
.elementor plate and caption always fit. */
.wheel {
	--plate: clamp(140px, min(24vw, calc(100svh - 25rem)), 340px);
	--wheel-r: calc(var(--plate) * 1.95);
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100svh;
	min-height: 560px;
	padding-top: clamp(4.5rem, 10svh, 6.5rem);
	overflow: hidden;
	background: radial-gradient(50% 45% at 50% 55%, rgb(var(--c-primary-rgb) / calc(0.16 * var(--glow))), transparent 70%),
		rgb(var(--c-surface-rgb) / 0.55);
}

.wheel__head {
	position: relative;
	z-index: 3;
	flex: none;
}

.wheel__head .section-head {
	gap: 0.6rem;
	margin-bottom: 0;
}

.wheel__head .eyebrow {
	margin-bottom: 0.4rem;
}

.wheel__head .title {
	font-size: min(clamp(2.2rem, 1.3rem + 2.8vw, 4.2rem), 7.5svh);
}

.wheel__stage {
	position: relative;
	flex: 1;
	margin-top: clamp(1rem, 3svh, 2rem);
}

.wheel__ring,
.elementor .wheel__ring {
	position: absolute;
	left: 50%;
	/* Top slot centre sits exactly plate/2 below the stage top. */
	top: calc(var(--plate) / 2);
	width: calc(var(--wheel-r) * 2);
	height: calc(var(--wheel-r) * 2);
	margin-left: calc(var(--wheel-r) * -1);
	border-radius: 50%;
	will-change: transform;
}

.wheel__ring::before,
.elementor .wheel__ring::before {
	content: '';
	position: absolute;
	inset: 0;
	border: 1px dashed rgb(var(--c-accent-rgb) / calc(0.22 * var(--border)));
	border-radius: 50%;
}

.wheel__slot,
.elementor .wheel__slot {
	position: absolute;
	left: 50%;
	top: 50%;
	width: var(--plate);
	height: var(--plate);
	margin: calc(var(--plate) / -2) 0 0 calc(var(--plate) / -2);
	transform: rotate(var(--a)) translateY(calc(var(--wheel-r) * -1));
}

.plate,
.elementor .plate {
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 50%;
	box-shadow: 0 50px 90px -30px rgb(0 0 0 / calc(0.95 * var(--shadow))),
		0 0 0 clamp(6px, 0.9vw, 12px) rgb(var(--c-text-rgb) / 0.06),
		0 0 0 calc(clamp(6px, 0.9vw, 12px) + 1px) rgb(var(--c-accent-rgb) / calc(0.25 * var(--glow)));
	transform: scale(0.8);
	opacity: 0.55;
	transition: transform 0.9s var(--ease), opacity 0.9s var(--ease), box-shadow 0.9s;
}

.plate img,
.elementor .plate img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.35);
}

.wheel__slot.is-active .plate,
.elementor .wheel__slot.is-active .plate {
	transform: scale(1);
	opacity: 1;
	box-shadow: 0 60px 110px -30px rgb(0 0 0 / calc(0.95 * var(--shadow))),
		0 0 0 clamp(6px, 0.9vw, 12px) rgb(var(--c-accent-rgb) / calc(0.18 * var(--glow))),
		0 0 0 calc(clamp(6px, 0.9vw, 12px) + 1.5px) var(--gold),
		0 0 80px -10px rgb(var(--c-primary-2-rgb) / calc(0.5 * var(--glow)));
}

.wheel__info {
	position: absolute;
	left: 50%;
	top: calc(var(--plate) + clamp(0.8rem, 2.4svh, 1.6rem));
	z-index: 2;
	display: grid;
	justify-items: center;
	gap: 0.3rem;
	width: min(90vw, 30rem);
	translate: -50% 0;
	text-align: center;
}

.wheel__count {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.24em;
	color: var(--gold);
}

.wheel__count i {
	font-style: normal;
	color: var(--faint);
}

.wheel__name {
	font-family: var(--f-display);
	font-size: min(clamp(1.8rem, 1.3rem + 1.4vw, 2.8rem), 6svh);
	line-height: 1.05;
	animation: rise 0.7s var(--ease);
}

.wheel__note {
	font-family: var(--f-display);
	font-size: 1.1rem;
	font-style: italic;
	color: var(--muted);
	animation: rise 0.8s var(--ease);
}

.wheel__price,
.elementor .wheel__price {
	margin-top: 0.3rem;
	padding: 0.4rem 1.15rem;
	border-radius: var(--btn-r);
	background: var(--metal);
	color: #fff;
	font-weight: 800;
	letter-spacing: 0.06em;
	animation: rise 0.9s var(--ease);
}

.wheel__hint {
	position: absolute;
	left: 50%;
	bottom: 1.2rem;
	z-index: 3;
	translate: -50% 0;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--faint);
}

@keyframes rise {
	from {
		opacity: 0;
		transform: translateY(16px);
	}
}

@media (max-width: 699px) {
	.wheel,
.elementor .wheel {
		--plate: clamp(150px, min(52vw, calc(100svh - 25rem)), 240px);
		--wheel-r: calc(var(--plate) * 1.6);
	}
}

/* ================= STORY ================= */
.rstory {
	overflow: hidden;
	background: radial-gradient(60% 60% at 80% 30%, rgb(var(--c-primary-deep-rgb) / 0.45), transparent 70%);
}

.rstory__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	align-items: center;
	gap: clamp(3rem, 1rem + 6vw, 8rem);
}

.rstory__visual {
	position: relative;
	padding: 0 2.5rem 3rem 0;
}

.rstory__outline,
.elementor .rstory__outline {
	position: absolute;
	inset: 1.4rem 1rem 1.6rem -1.4rem;
	border: 1px solid var(--line);
	border-radius: 400px 400px var(--r-lg) var(--r-lg);
}

.rstory__frame,
.elementor .rstory__frame {
	position: relative;
	aspect-ratio: 4 / 5.2;
	overflow: hidden;
	border-radius: 400px 400px var(--r-lg) var(--r-lg);
	box-shadow: 0 60px 120px -40px rgb(0 0 0 / calc(0.95 * var(--shadow)));
}

.rstory__frame img,
.elementor .rstory__frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rstory__round,
.elementor .rstory__round {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 42%;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: 50%;
	box-shadow: 0 30px 60px -10px rgb(0 0 0 / calc(0.9 * var(--shadow))), 0 0 0 10px var(--em-0), 0 0 0 11px var(--gold);
}

.rstory__round img,
.elementor .rstory__round img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.35);
}

.rstory__badge,
.elementor .rstory__badge {
	position: absolute;
	top: 10%;
	left: -1.5rem;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.6rem 1.2rem 0.6rem 0.6rem;
	border: 1px solid var(--line);
	border-radius: var(--btn-r);
	background: rgb(var(--c-night-rgb) / 0.75);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	font-size: 0.78rem;
	line-height: 1.3;
	color: var(--muted);
}

.rstory__badge strong {
	display: block;
	font-family: var(--f-display);
	font-size: 1.1rem;
	color: var(--gold-2);
}

.rstory__copy .section-head {
	margin-bottom: 1.75rem;
}

.rstory__p {
	margin-bottom: 1.1rem;
	font-size: clamp(1.02rem, 0.96rem + 0.3vw, 1.15rem);
	color: var(--muted);
}

.rstory__quote {
	margin: 2rem 0 2.25rem;
	padding-left: 1.5rem;
	border-left: 1px solid var(--gold);
}

.rstory__quote p {
	font-family: var(--f-display);
	font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.1rem);
	font-style: italic;
	line-height: 1.3;
}

.rstory__quote cite {
	display: block;
	margin-top: 0.8rem;
	font-size: 0.7rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--gold);
}

@media (max-width: 899px) {
	.rstory__grid,
.elementor .rstory__grid {
		grid-template-columns: 1fr;
	}

	.rstory__visual,
.elementor .rstory__visual {
		width: min(100%, 30rem);
		justify-self: center;
	}

	.rstory__badge,
.elementor .rstory__badge {
		left: 0;
	}
}

/* ================= SPECIALTIES (ivory) ================= */
.spec,
.elementor /* ================= SPECIALTIES (ivory) ================= */
.spec {
	position: relative;
	overflow: hidden;
	margin-inline: clamp(0.5rem, 0.2rem + 0.8vw, 1rem);
	padding-block: var(--section-y);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: radial-gradient(55% 45% at 0% 0%, rgb(var(--c-primary-rgb) / calc(0.28 * var(--glow))), transparent 65%),
		radial-gradient(45% 45% at 100% 100%, rgb(var(--c-accent-rgb) / calc(0.12 * var(--glow))), transparent 65%),
		linear-gradient(160deg, var(--em-3), var(--em-1) 70%);
	box-shadow: 0 50px 120px -50px rgb(0 0 0 / calc(0.9 * var(--shadow)));
}

.spec__orn {
	color: var(--gold);
}

.spec__deco {
	position: absolute;
	z-index: 0;
	pointer-events: none;
	opacity: 0.9;
}

.spec__deco--a { left: -1.5rem; top: 8%; width: clamp(90px, 10vw, 170px); aspect-ratio: 140 / 200; rotate: 20deg; }
.spec__deco--b { right: 4%; top: 12%; width: clamp(50px, 5vw, 80px); aspect-ratio: 1; }
.spec__deco--c { left: 6%; bottom: 6%; width: clamp(70px, 8vw, 130px); aspect-ratio: 140 / 48; rotate: -30deg; }
.spec__deco--d { right: -2rem; bottom: 4%; width: clamp(90px, 10vw, 170px); aspect-ratio: 140 / 200; rotate: -160deg; }

.spec__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 0.6rem + 1.2vw, 1.75rem);
}

.spec__card,
.elementor .spec__card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.22 * var(--border)));
	border-radius: var(--r-lg);
	background: radial-gradient(80% 50% at 100% 100%, rgb(var(--c-primary-rgb) / calc(0.14 * var(--glow))), transparent 60%),
		linear-gradient(170deg, var(--c-surface-2), var(--c-surface) 70%);
	box-shadow: 0 40px 80px -40px rgb(0 0 0 / calc(0.9 * var(--shadow)));
	transition: translate 0.7s var(--ease), border-color 0.5s, box-shadow 0.7s var(--ease);
}

.spec__card:hover,
.elementor .spec__card:hover {
	translate: 0 -8px;
	border-color: rgb(var(--c-accent-rgb) / calc(0.55 * var(--border)));
	box-shadow: 0 50px 90px -40px rgb(var(--c-primary-rgb) / calc(0.45 * var(--glow)));
}

.spec__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.spec__media img,
.elementor .spec__media img {
	width: 100%;
	height: 124%;
	margin-top: -12%;
	object-fit: cover;
	transition: scale 1.2s var(--ease);
}

.spec__card:hover .spec__media img {
	scale: 1.06;
}

.spec__media::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 55%, rgb(var(--c-surface-rgb) / 0.9));
}

.spec__label,
.elementor .spec__label {
	position: absolute;
	z-index: 1;
	top: 1rem;
	left: 1rem;
	padding: 0.45rem 0.95rem;
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.35 * var(--border)));
	border-radius: var(--btn-r);
	background: rgb(var(--c-bg-rgb) / 0.6);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	font-family: var(--f-display);
	font-size: 1rem;
	font-style: italic;
	color: var(--gold-2);
}

.spec__body {
	position: relative;
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.7rem;
	padding: 2.4rem 1.8rem 1.8rem;
}

.spec__icon,
.elementor .spec__icon {
	position: absolute;
	top: -1.9rem;
	left: 1.8rem;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 3.8rem;
	height: 3.8rem;
	border-radius: 50%;
	background: var(--metal);
	color: #fff;
	box-shadow: 0 0 0 6px var(--c-surface-2), 0 0 0 7px rgb(var(--c-accent-rgb) / calc(0.45 * var(--glow))), 0 14px 30px -8px rgb(var(--c-primary-rgb) / calc(0.7 * var(--glow)));
}

.spec__icon .icon,
.elementor .spec__icon .icon {
	width: 1.45rem;
	height: 1.45rem;
}

.spec__num {
	position: absolute;
	top: 1rem;
	right: 1.6rem;
	font-family: var(--f-display);
	font-size: 2.8rem;
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px rgb(var(--c-accent-rgb) / 0.45);
}

.spec__body h3 {
	margin-top: 0.4rem;
	font-family: var(--f-display);
	font-size: clamp(1.8rem, 1.4rem + 1vw, 2.3rem);
	line-height: 1.05;
}

.spec__body p {
	flex: 1;
	font-size: 0.95rem;
	color: var(--muted);
}

.spec__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin-top: 0.5rem;
	padding-top: 1rem;
	border-top: 1px solid rgb(var(--c-accent-rgb) / calc(0.15 * var(--border)));
}

.spec__tags li,
.elementor .spec__tags li {
	padding: 0.35rem 0.8rem;
	border-radius: var(--btn-r);
	background: rgb(var(--c-accent-rgb) / 0.1);
	color: var(--gold-2);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

@media (max-width: 899px) {
	.spec__grid,
.elementor .spec__grid {
		grid-template-columns: 1fr;
		max-width: 30rem;
		margin-inline: auto;
	}
}

/* ================= MENU BOARD ================= */
.mboard {
	background: radial-gradient(50% 50% at 0% 40%, rgb(var(--c-primary-deep-rgb) / 0.4), transparent 70%);
}

.mboard__head-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.mboard__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	align-items: start;
	gap: clamp(1.5rem, 1rem + 3vw, 4rem);
}

.mboard__photo,
.elementor .mboard__photo {
	position: sticky;
	top: 7rem;
	min-height: 38rem;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
}

.mboard__photo > img,
.elementor .mboard__photo > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mboard__photo-shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgb(var(--c-night-rgb) / 0.2), rgb(var(--c-night-rgb) / 0.85));
}

.mboard__cats {
	position: absolute;
	left: 1.5rem;
	right: 1.5rem;
	bottom: 1.5rem;
	display: grid;
	gap: 0.6rem;
}

.mboard__cat,
.elementor .mboard__cat {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.4rem;
	border: 1px solid rgb(var(--c-text-rgb) / calc(0.14 * var(--border)));
	border-radius: 16px;
	background: rgb(var(--c-night-rgb) / 0.55);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	font-family: var(--f-display);
	font-size: clamp(1.4rem, 1rem + 1.4vw, 2.3rem);
	font-weight: 400;
	letter-spacing: 0.04em;
	text-align: left;
	text-transform: uppercase;
	transition: background 0.5s var(--ease), color 0.4s, border-color 0.4s, padding 0.6s var(--ease);
}

.mboard__cat .icon,
.elementor .mboard__cat .icon {
	width: 1.6rem;
	height: 1.6rem;
	transition: transform 0.6s var(--ease);
}

.mboard__cat:hover {
	padding-left: 1.8rem;
	border-color: var(--gold);
}

.mboard__cat.is-active {
	border-color: transparent;
	background: var(--metal);
	color: var(--on-metal);
}

.mboard__cat.is-active .icon {
	transform: rotate(45deg);
}

.mboard__list-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem 1rem;
	margin-bottom: 1.25rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--line);
}

.mboard__list-head h3 {
	font-family: var(--f-display);
	font-size: clamp(2rem, 1.5rem + 1.5vw, 3rem);
	font-weight: 400;
}

.mboard__list-head span {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.85rem;
	color: var(--muted);
}

.mboard__list-head .icon,
.elementor .mboard__list-head .icon {
	width: 1rem;
	height: 1rem;
	color: var(--gold);
}

.mboard__list ul {
	display: grid;
	gap: 0.75rem;
}

.mboard__item,
.elementor .mboard__item {
	display: grid;
	grid-template-columns: 4.6rem minmax(0, 1fr) auto;
	align-items: center;
	gap: 1.1rem;
	padding: 0.85rem 1.2rem 0.85rem 0.85rem;
	overflow: hidden;
	border: 1px solid var(--line-soft);
	border-radius: 18px;
	background: rgb(var(--c-text-rgb) / 0.03);
	transition: border-color 0.4s, transform 0.6s var(--ease), background-color 0.4s;
}

.mboard__item:hover {
	border-color: var(--line);
	background: rgb(var(--c-accent-rgb) / 0.06);
	transform: translateX(6px);
}

.mboard__item img,
.elementor .mboard__item img {
	position: relative;
	width: 4.6rem;
	height: 4.6rem;
	border-radius: 12px;
	object-fit: cover;
}

.mboard__item h4 {
	position: relative;
	font-family: var(--f-display);
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.1;
}

.mboard__item h4 em,
.elementor .mboard__item h4 em {
	margin-left: 0.6rem;
	padding: 0.2rem 0.55rem;
	border-radius: var(--btn-r);
	background: rgb(var(--c-accent-rgb) / 0.15);
	color: var(--gold-2);
	font-family: var(--f-sans);
	font-size: 0.6rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	vertical-align: middle;
}

.mboard__item p {
	position: relative;
	margin-top: 0.2rem;
	font-size: 0.875rem;
	color: var(--muted);
}

.mboard__price {
	position: relative;
	font-family: var(--f-display);
	font-size: 1.7rem;
	font-weight: 400;
	color: var(--gold-2);
}

@media (max-width: 899px) {
	.mboard__grid,
.elementor .mboard__grid {
		grid-template-columns: 1fr;
	}

	.mboard__photo,
.elementor .mboard__photo {
		position: relative;
		top: auto;
		min-height: 30rem;
	}
}

/* ================= ARCHES ================= */
.arches {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 100svh;
	overflow: hidden;
	padding: 6rem var(--gutter);
	background: radial-gradient(45% 45% at 50% 50%, rgb(var(--c-primary-deep-rgb) / 0.55), transparent 75%),
		linear-gradient(180deg, transparent, rgb(var(--c-night-rgb) / 0.6) 18%, rgb(var(--c-night-rgb) / 0.6) 82%, transparent);
}

.arch,
.elementor .arch {
	position: absolute;
	overflow: hidden;
	border: 1px solid var(--line);
	box-shadow: 0 40px 80px -30px rgb(0 0 0 / calc(0.95 * var(--shadow)));
}

.arch img,
.elementor .arch img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.arch--a,
.elementor .arch--a {
	left: 5%;
	top: 9%;
	width: clamp(130px, min(20vw, 34svh), 320px);
	aspect-ratio: 3 / 3.6;
	border-radius: 999px 999px 18px 18px;
}

.arch--b,
.elementor .arch--b {
	right: 5%;
	top: 12%;
	width: clamp(130px, min(18vw, 31svh), 290px);
	aspect-ratio: 3 / 3.6;
	border-radius: 999px 999px 18px 18px;
}

.arch--c,
.elementor .arch--c {
	left: 50%;
	bottom: 3svh;
	width: clamp(200px, min(30vw, 44svh), 480px);
	aspect-ratio: 2 / 1.15;
	margin-left: calc(clamp(200px, min(30vw, 44svh), 480px) / -2);
	border-radius: 999px 999px 18px 18px;
	border-radius: 999px 999px 0 0;
}

.arches__center,
.elementor .arches__center {
	position: relative;
	z-index: 2;
	display: grid;
	justify-items: center;
	gap: 1.75rem;
	max-width: 54rem;
	margin-top: -14svh;
	text-align: center;
}

.arches__title {
	font-family: var(--f-display);
	font-size: min(clamp(2.8rem, 1.4rem + 5.4vw, 7rem), 10svh);
	font-weight: 400;
	line-height: 0.95;
	text-transform: uppercase;
	text-shadow: 0 10px 40px rgb(0 0 0 / calc(0.6 * var(--shadow)));
}

.arches__title em {
	font-style: italic;
	font-weight: 400;
	text-transform: none;
}

.arches__word {
	display: inline-block;
}

.arches__title em .arches__word {
	background: var(--gilt);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.arches__sub {
	display: grid;
	justify-items: center;
	gap: 1.5rem;
}

.arches__sub p,
.elementor .arches__sub p {
	max-width: 30rem;
	color: var(--muted);
}

@media (max-width: 899px) {
	.arch--a,
.arch--b,
.elementor .arch--a,
.elementor .arch--b {
		top: 4%;
		opacity: 0.55;
	}

	.arch--c,
.elementor .arch--c {
		opacity: 0.5;
	}
}

/* ================= BENTO ================= */
.rbento {
	background: linear-gradient(180deg, transparent, rgb(var(--c-surface-rgb) / 0.6) 20%, rgb(var(--c-surface-rgb) / 0.6) 80%, transparent);
}

.bento {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-template-areas: 'about about fire bbq'
		'rating wide wide hours';
	grid-auto-rows: minmax(16rem, auto);
	gap: 1rem;
}

.bento__img--wide {
	min-height: 22rem;
}

.bento__tile,
.elementor .bento__tile {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--r);
	background: linear-gradient(160deg, rgb(var(--c-text-rgb) / 0.05), rgb(var(--c-text-rgb) / 0.01));
}

.bento__about {
	grid-area: about;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 2.2rem;
	background: radial-gradient(70% 70% at 100% 0%, rgb(var(--c-accent-rgb) / calc(0.14 * var(--glow))), transparent 60%),
		linear-gradient(160deg, var(--em-3), var(--em-2));
}

.bento__about p {
	position: relative;
	font-family: var(--f-display);
	font-size: clamp(1.5rem, 1.1rem + 1.1vw, 2.2rem);
	line-height: 1.25;
}

.bento__sign {
	font-family: var(--f-display);
	font-style: italic;
	color: var(--gold-2);
}

.bento__img img,
.elementor .bento__img img {
	width: 100%;
	height: 120%;
	margin-top: -10%;
	object-fit: cover;
	transition: scale 1.2s var(--ease);
}

.bento__img:hover img {
	scale: 1.08;
}

.bento__img figcaption,
.elementor .bento__img figcaption {
	position: absolute;
	left: 1rem;
	bottom: 1rem;
	padding: 0.45rem 0.95rem;
	border-radius: var(--btn-r);
	background: rgb(var(--c-night-rgb) / 0.7);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0.06em;
}

.bento__img--tall {
	grid-area: fire;
}

.bento__img:not(.bento__img--tall):not(.bento__img--wide) {
	grid-area: bbq;
}

.bento__img--wide {
	grid-area: wide;
}

.bento__rating {
	grid-area: rating;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: 0.6rem;
	padding: 2rem;
	text-align: center;
}

.bento__avatars {
	display: flex;
}

.bento__avatars span,
.elementor .bento__avatars span {
	display: grid;
	place-items: center;
	width: 2.7rem;
	height: 2.7rem;
	margin-left: -0.7rem;
	border: 2px solid var(--em-1);
	border-radius: 50%;
	background: var(--em-3);
	font-size: 0.7rem;
	font-weight: 700;
}

.bento__avatars span:first-child {
	margin-left: 0;
	background: var(--metal);
	color: var(--on-metal);
}

.bento__rating strong {
	font-family: var(--f-display);
	font-size: 3.4rem;
	font-weight: 400;
	line-height: 1;
	background: var(--gilt);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.bento__stars {
	display: flex;
	gap: 0.2rem;
	color: var(--gold);
}

.bento__stars .icon,
.elementor .bento__stars .icon {
	width: 1rem;
	height: 1rem;
}

.bento__rating small {
	color: var(--muted);
}

.bento__hours {
	grid-area: hours;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: 1.6rem;
}

.bento__hours ul {
	flex: 1;
	align-content: center;
}

.bento__hours h3 {
	padding-bottom: 0.8rem;
	border-bottom: 1px solid var(--line);
}

.bento__hours h3 {
	font-family: var(--f-display);
	font-size: 1.8rem;
	font-weight: 400;
}

.bento__hours ul {
	display: grid;
	gap: 0.45rem;
	font-size: 0.82rem;
}

.bento__hours li {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	color: var(--muted);
}

.bento__hours li i {
	flex: 1;
	border-bottom: 1px dotted rgb(var(--c-accent-rgb) / calc(0.35 * var(--border)));
}

.bento__hours li span:first-child {
	color: var(--text);
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-size: 0.74rem;
}

.bento__hours li.is-today,
.bento__hours li.is-today span:first-child {
	color: var(--gold-2);
}

.bento__call {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 700;
	color: var(--gold-2);
}

@media (max-width: 1023px) {
	.bento,
.elementor .bento {
		grid-template-columns: 1fr 1fr;
		grid-template-areas: 'about about'
			'fire bbq'
			'rating hours'
			'wide wide';
	}
}

@media (max-width: 599px) {
	.bento,
.elementor .bento {
		grid-template-columns: 1fr;
		grid-template-areas: 'about' 'fire' 'rating' 'bbq' 'hours' 'wide';
	}
}

/* ================= QUOTES ================= */
.rquotes {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(6rem, 4rem + 8vw, 11rem);
	text-align: center;
}

.rquotes__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	-webkit-mask-image: linear-gradient(180deg, transparent, #000 22%, #000 78%, transparent);
	mask-image: linear-gradient(180deg, transparent, #000 22%, #000 78%, transparent);
}

.rquotes__bg img,
.elementor .rquotes__bg img {
	width: 100%;
	height: 130%;
	margin-top: -15%;
	object-fit: cover;
	filter: blur(4px) brightness(0.35) saturate(0.8);
}

.rquotes__bg::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, var(--em-1), rgb(var(--c-bg-rgb) / 0.55) 30%, rgb(var(--c-bg-rgb) / 0.55) 70%, var(--em-0));
}

.rquotes__inner,
.elementor .rquotes__inner {
	display: grid;
	justify-items: center;
	gap: 1.5rem;
	max-width: 62rem;
}

.rquotes__mark,
.elementor .rquotes__mark {
	display: grid;
	place-items: center;
	width: 4rem;
	height: 4rem;
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--gold);
}

.rquotes__mark .icon,
.elementor .rquotes__mark .icon {
	width: 1.6rem;
	height: 1.6rem;
}

.rquotes__text {
	animation: rise 0.9s var(--ease);
}

.rquotes__text p {
	font-family: var(--f-display);
	font-size: clamp(1.7rem, 1.1rem + 2vw, 3rem);
	font-style: italic;
	font-weight: 400;
	line-height: 1.3;
}

.rquotes__text cite {
	display: block;
	margin-top: 1.5rem;
	font-size: 0.72rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--gold);
}

.rquotes__text cite span {
	color: var(--muted);
}

.rquotes__nav {
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

.rquotes__nav > button,
.elementor .rquotes__nav > button {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--gold);
	transition: background 0.3s, color 0.3s;
}

.rquotes__nav > button:hover {
	background: var(--metal);
	color: var(--on-metal);
}

.rquotes__dots {
	display: flex;
	gap: 0.5rem;
}

.rquotes__dots button,
.elementor .rquotes__dots button {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: var(--btn-r);
	background: rgb(var(--c-text-rgb) / 0.25);
	transition: width 0.5s var(--ease), background 0.4s;
}

.rquotes__dots button.is-on {
	width: 2rem;
	background: var(--gold);
}

/* ================= PRIVATE DINING ================= */
.pd {
	padding: clamp(2rem, 1rem + 3vw, 4rem) clamp(0.5rem, 0.2rem + 0.8vw, 1rem);
}

.pd__frame,
.elementor .pd__frame {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: min(85svh, 52rem);
	overflow: hidden;
	border-radius: 40px;
}

.pd__frame img,
.elementor .pd__frame img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pd__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgb(var(--c-night-rgb) / 0.1), rgb(var(--c-night-rgb) / 0.35) 45%, rgb(var(--c-night-rgb) / 0.92));
}

.pd__content,
.elementor .pd__content {
	position: relative;
	z-index: 1;
	display: grid;
	justify-items: start;
	gap: 1.1rem;
	max-width: 40rem;
	padding: clamp(2rem, 1rem + 4vw, 5rem);
}

.pd__content .reyebrow {
	margin-bottom: 0;
}

.pd h2 {
	font-family: var(--f-display);
	font-size: clamp(2.8rem, 1.5rem + 4vw, 5.5rem);
	font-weight: 400;
	line-height: 0.98;
}

.pd__content > p:not(.reyebrow) {
	color: rgb(var(--c-text-rgb) / 0.82);
}

/* ================= RESERVATION PANEL (royal look) ================= */
.reserve {
	margin-top: clamp(3rem, 2rem + 3vw, 6rem);
}

.royal .reserve .panel,
.royal .panel--wine {
	background: radial-gradient(60% 70% at 100% 0%, rgb(var(--c-accent-rgb) / calc(0.14 * var(--glow))), transparent 60%),
		linear-gradient(160deg, var(--em-2), var(--em-1) 75%);
}

/* ================= FOOTER ================= */
.rfoot {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-top: clamp(5rem, 3rem + 5vw, 9rem);
	background: var(--night);
}

/* Dish photograph behind the footer with a deep overlay. */
.rfoot__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	overflow: hidden;
}

.rfoot__bg img,
.elementor .rfoot__bg img {
	position: absolute;
	inset: -10% 0;
	width: 100%;
	height: 120%;
	max-width: none;
	object-fit: cover;
	object-position: 50% 40%;
}

.rfoot__bg::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, var(--em-0) 0%, rgb(var(--c-bg-rgb) / 0.82) 18%, rgb(var(--c-bg-rgb) / 0.78) 50%, rgb(var(--c-bg-rgb) / 0.92) 80%, var(--night) 100%),
		radial-gradient(60% 50% at 50% 20%, rgb(var(--c-primary-rgb) / calc(0.25 * var(--glow))), transparent 70%);
}

.rfoot__top {
	position: relative;
	z-index: 1;
	display: grid;
	justify-items: center;
	gap: 1.2rem;
	padding-bottom: clamp(3rem, 2rem + 3vw, 5rem);
	text-align: center;
}

.rfoot__cta {
	font-family: var(--f-display);
	font-size: clamp(3rem, 1.5rem + 5.5vw, 7rem);
	font-weight: 400;
	line-height: 0.95;
}

.rfoot__top > p {
	color: var(--muted);
}

.rfoot__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
	margin-top: 0.75rem;
}

.rfoot__orn {
	margin-top: 1.5rem;
}

.rfoot__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1.3fr 0.7fr 1.1fr 1.1fr;
	gap: clamp(2rem, 1rem + 3vw, 4rem);
	padding-block: clamp(2.5rem, 2rem + 2vw, 4rem);
	border-top: 1px solid var(--line);
}

.rfoot__grid h3 {
	margin-bottom: 1.2rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--gold);
}

.rfoot__brand p,
.elementor .rfoot__brand p {
	max-width: 24ch;
	margin-bottom: 1.5rem;
	font-family: var(--f-display);
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
	line-height: 1.2;
}

.rfoot__socials {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.rfoot__socials a,
.elementor .rfoot__socials a {
	padding: 0.55rem 1.1rem;
	border: 1px solid var(--line);
	border-radius: var(--btn-r);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	transition: background 0.3s, color 0.3s;
}

.rfoot__socials a:hover {
	background: var(--metal);
	color: var(--on-metal);
}

.rfoot__links {
	display: grid;
	gap: 0.65rem;
}

.rfoot__links a {
	color: var(--muted);
	transition: color 0.3s, letter-spacing 0.5s var(--ease);
}

.rfoot__links a:hover {
	color: var(--gold-2);
	letter-spacing: 0.04em;
}

.rfoot__contact {
	display: grid;
	gap: 0.75rem;
	color: var(--muted);
}

.rfoot__contact li {
	display: flex;
	gap: 0.6rem;
}

.rfoot__contact .icon,
.elementor .rfoot__contact .icon {
	width: 1rem;
	height: 1rem;
	margin-top: 0.35em;
	color: var(--gold);
}

.rfoot__contact a:hover {
	color: var(--gold-2);
}

.rfoot__photos {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.4rem;
	margin-top: 1.25rem;
}

.rfoot__photos img,
.elementor .rfoot__photos img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 50%;
	border: 1px solid var(--line);
	transition: transform 0.6s var(--ease);
}

.rfoot__photos img:hover {
	transform: scale(1.1) rotate(-6deg);
}

.rfoot__word {
	position: relative;
	z-index: 1;
	display: flex;
	justify-content: center;
	gap: 0.04em;
	overflow: hidden;
	padding-inline: var(--gutter);
	font-family: var(--f-display);
	font-size: 11.5vw;
	font-weight: 400;
	line-height: 0.85;
	letter-spacing: 0.02em;
	user-select: none;
}

.rfoot__word span {
	display: inline-block;
	padding-bottom: 0.05em;
	background: linear-gradient(180deg, rgb(var(--c-accent-2-rgb) / 0.55), rgb(var(--c-accent-rgb) / 0.18) 55%, rgb(var(--c-accent-rgb) / 0.02) 95%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.rfoot__bottom {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem 1.5rem;
	padding-block: 1.6rem;
	border-top: 1px solid var(--line);
	font-size: 0.8rem;
	color: var(--faint);
}

@media (max-width: 1023px) {
	.rfoot__grid,
.elementor .rfoot__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 599px) {
	.rfoot__grid,
.elementor .rfoot__grid {
		grid-template-columns: 1fr;
	}
}

/* ================= AMBIENT BACKDROP ================= */
.royal main,
.royal .rfoot {
	position: relative;
	z-index: 1;
}

.ambient {
	position: fixed;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
	background: radial-gradient(120% 80% at 50% 0%, var(--c-surface), var(--em-0) 60%);
}

.ambient__glow,
.elementor .ambient__glow {
	position: absolute;
	width: 75vmax;
	height: 75vmax;
	border-radius: 50%;
	will-change: transform;
}

.ambient__glow--a {
	top: -35vmax;
	left: -25vmax;
	background: radial-gradient(closest-side, rgb(var(--c-primary-rgb) / calc(0.2 * var(--glow))), transparent);
	animation: amb-a 32s ease-in-out infinite alternate;
}

.ambient__glow--b {
	right: -30vmax;
	bottom: -40vmax;
	background: radial-gradient(closest-side, rgb(var(--c-accent-rgb) / calc(0.13 * var(--glow))), transparent);
	animation: amb-b 38s ease-in-out infinite alternate;
}

.ambient__glow--c,
.elementor .ambient__glow--c {
	top: 30%;
	left: 40%;
	width: 50vmax;
	height: 50vmax;
	background: radial-gradient(closest-side, rgb(var(--c-primary-2-rgb) / calc(0.09 * var(--glow))), transparent);
	animation: amb-c 26s ease-in-out infinite alternate;
}

@keyframes amb-a {
	to {
		transform: translate(18vmax, 20vmax) scale(1.15);
	}
}

@keyframes amb-b {
	to {
		transform: translate(-22vmax, -16vmax) scale(1.1);
	}
}

@keyframes amb-c {
	to {
		transform: translate(-30vmax, -10vmax) scale(0.85);
	}
}

/* Eight-point star lattice (girih), very faint, fading toward the edges. */
.ambient__jali {
	position: absolute;
	inset: 0;
	opacity: 0.07;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23f3b23a' stroke-width='1'%3E%3Cpath d='M48 8 L58 38 L88 48 L58 58 L48 88 L38 58 L8 48 L38 38 Z'/%3E%3Cpath d='M20 20 L48 30 L76 20 L66 48 L76 76 L48 66 L20 76 L30 48 Z'/%3E%3Ccircle cx='48' cy='48' r='6'/%3E%3Cpath d='M0 0 L8 8 M96 0 L88 8 M0 96 L8 88 M96 96 L88 88'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 96px 96px;
	-webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, #000 10%, transparent 80%);
	mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, #000 10%, transparent 80%);
}

/* Soft smoke band drifting across. */
.ambient__smoke,
.elementor /* Soft smoke band drifting across. */
.ambient__smoke {
	position: absolute;
	left: -50%;
	bottom: -10%;
	width: 200%;
	height: 60%;
	opacity: 0.5;
	background: radial-gradient(30% 50% at 20% 60%, rgb(var(--c-text-rgb) / 0.035), transparent 70%),
		radial-gradient(25% 45% at 55% 70%, rgb(var(--c-text-rgb) / 0.03), transparent 70%),
		radial-gradient(30% 50% at 85% 55%, rgb(var(--c-text-rgb) / 0.035), transparent 70%);
	animation: smoke 40s linear infinite;
	will-change: transform;
}

@keyframes smoke {
	to {
		transform: translateX(25%);
	}
}


/* Wheel progress dots */
.wheel__dots {
	position: absolute;
	right: var(--gutter);
	top: 50%;
	z-index: 3;
	display: grid;
	gap: 0.55rem;
	translate: 0 -50%;
}

.wheel__dots span,
.elementor .wheel__dots span {
	width: 0.45rem;
	height: 0.45rem;
	border-radius: var(--btn-r);
	background: rgb(var(--c-text-rgb) / 0.22);
	transition: height 0.5s var(--ease), background-color 0.4s;
}

.wheel__dots span.is-on,
.elementor .wheel__dots span.is-on {
	height: 1.8rem;
	background: var(--gold);
}

.wheel-locked .wheel {
	touch-action: none;
}

/* Nothing behind the closed doors animates — the entrance gets the whole frame budget. */
.is-loading .ambient *,
.is-loading .rhero * {
	animation-play-state: paused !important;
}


/* Arches backdrop: dim fire-lit kitchen, a slow mandala behind the statement, embers. */
.arches {
	isolation: isolate;
}

.arches__bg {
	position: absolute;
	inset: 0;
	z-index: -2;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(180deg, transparent, #000 18%, #000 82%, transparent);
	mask-image: linear-gradient(180deg, transparent, #000 18%, #000 82%, transparent);
}

.arches__bg img,
.elementor .arches__bg img {
	position: absolute;
	top: -12%;
	left: 0;
	width: 100%;
	height: 124%;
	max-width: none;
	object-fit: cover;
	object-position: 50% 40%;
	opacity: 0.32;
}

.arches__bg::after {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(42% 52% at 50% 46%, rgb(var(--c-primary-deep-rgb) / 0.55), transparent 72%),
		radial-gradient(ellipse at center, rgb(var(--c-bg-rgb) / 0.35) 0%, rgb(var(--c-bg-rgb) / 0.88) 75%);
}

.arches .gold-dust {
	z-index: -1;
}

.arches__mandala,
.elementor .arches__mandala {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: -1;
	width: min(78vw, 92svh, 820px);
	height: min(78vw, 92svh, 820px);
	margin: calc(min(78vw, 92svh, 820px) / -2) 0 0 calc(min(78vw, 92svh, 820px) / -2);
	color: rgb(var(--c-accent-rgb) / 0.2);
	pointer-events: none;
}

/* Google's "open in Maps" card turns into a black box under the dark filter: crop it out. */
.map-card iframe,
.elementor /* Google's "open in Maps" card turns into a black box under the dark filter: crop it out. */
.map-card iframe {
	inset: -64px 0 0 0;
	height: calc(100% + 64px);
}

/* Date field matches the other underlined fields. */
.field input[type='date'] {
	padding-right: 0.2rem;
}

.field input[type='date']::-webkit-calendar-picker-indicator {
	filter: invert(0.8) sepia(1) saturate(4) hue-rotate(-10deg);
	opacity: 0.8;
	cursor: pointer;
}

/* Leave room for the floating back-to-top button. */
.rfoot__bottom {
	padding-right: calc(var(--gutter) + 4rem);
}



/* =====================================================================
   Inner pages, page transition, glow accents
   ===================================================================== */

/* ---------- Page transition curtain ---------- */
.ptr {
	position: fixed;
	inset: 0;
	z-index: 480;
	display: grid;
	place-items: center;
	pointer-events: none;
	visibility: hidden;
}

.ptr.is-active {
	visibility: visible;
	pointer-events: auto;
}

.ptr__panel {
	position: absolute;
	inset: 0;
	transform: translateY(100%);
	will-change: transform;
}

.ptr__panel--back {
	background: linear-gradient(160deg, var(--c-primary), var(--c-primary-deep));
}

.ptr__panel--front {
	background: radial-gradient(60% 50% at 50% 100%, rgb(var(--c-primary-rgb) / calc(0.35 * var(--glow))), transparent 70%),
		var(--night);
}

.ptr__inner {
	position: relative;
	display: grid;
	justify-items: center;
	gap: 1rem;
	opacity: 0;
}

.ptr__label {
	font-family: var(--f-display);
	font-size: clamp(2.6rem, 1.6rem + 3vw, 4.4rem);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	background: var(--gilt);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.page-loading {
	min-height: 100svh;
}

/* ---------- Header: current page ---------- */
.rh__link[aria-current='page'] {
	color: var(--gold-2);
}

.rh__link[aria-current='page'] .roll span::after {
	content: '';
}

.rh__link {
	position: relative;
}

.rh__link[aria-current='page']::after,
.elementor .rh__link[aria-current='page']::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -0.55rem;
	width: 5px;
	height: 5px;
	margin-left: -2.5px;
	border-radius: 50%;
	background: var(--gold);
	box-shadow: 0 0 10px var(--gold);
}

.rh__order[aria-current='page'] {
	border-color: var(--gold);
	color: var(--gold-2);
}

.rmenu__nav a[aria-current='page'] {
	color: var(--gold-2);
	font-style: italic;
}

/* ---------- Pointer glow (ambient) ---------- */
.ambient__pointer,
.elementor /* ---------- Pointer glow (ambient) ---------- */
.ambient__pointer {
	position: absolute;
	top: 0;
	left: 0;
	width: 46rem;
	height: 46rem;
	margin: -23rem 0 0 -23rem;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgb(var(--c-primary-2-rgb) / calc(0.11 * var(--glow))), rgb(var(--c-primary-rgb) / calc(0.05 * var(--glow))) 45%, transparent 72%);
	will-change: transform;
}

/* Reusable glow orbs placed inside sections. */
.glow-orb,
.elementor /* Reusable glow orbs placed inside sections. */
.glow-orb {
	position: absolute;
	z-index: -1;
	width: 40rem;
	height: 40rem;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgb(var(--c-primary-rgb) / calc(0.22 * var(--glow))), rgb(var(--c-accent-rgb) / calc(0.06 * var(--glow))) 55%, transparent 75%);
	pointer-events: none;
	animation: orb 14s ease-in-out infinite alternate;
	will-change: transform;
}

.glow-orb--left {
	top: 10%;
	left: -18rem;
}

.glow-orb--right {
	top: 20%;
	right: -18rem;
	animation-delay: -6s;
}

@keyframes orb {
	to {
		transform: translate3d(4rem, 3rem, 0) scale(1.15);
	}
}

/* Extra glow behind key homepage sections. */
.is-home .rstory::before,
.is-home .spec::before,
.is-home .mboard::before,
.elementor /* Extra glow behind key homepage sections. */
.is-home .rstory::before,
.elementor .is-home .spec::before,
.elementor .is-home .mboard::before {
	content: '';
	position: absolute;
	z-index: -1;
	top: 12%;
	width: 55vw;
	height: 55vw;
	max-width: 50rem;
	max-height: 50rem;
	border-radius: 50%;
	pointer-events: none;
	background: radial-gradient(closest-side, rgb(var(--c-primary-rgb) / calc(0.18 * var(--glow))), rgb(var(--c-accent-rgb) / calc(0.05 * var(--glow))) 55%, transparent 75%);
}

.is-home .rstory::before {
	right: -10%;
}

.is-home .mboard::before {
	left: -15%;
}

.is-home .spec::before {
	left: 50%;
	translate: -50% 0;
	top: -10%;
	background: radial-gradient(closest-side, rgb(var(--c-accent-rgb) / calc(0.1 * var(--glow))), transparent 70%);
}

.rstory,
.mboard,
.tl,
.contact {
	isolation: isolate;
}

/* ---------- Page hero ---------- */
.phero {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: flex-end;
	min-height: clamp(30rem, 82svh, 52rem);
	padding: clamp(7rem, 15svh, 9rem) 0 clamp(3rem, 7svh, 5rem);
	overflow: hidden;
	isolation: isolate;
}

.phero__media,
.elementor .phero__media {
	position: absolute;
	inset: clamp(0.5rem, 0.2rem + 0.8vw, 1rem);
	z-index: -2;
	overflow: hidden;
	border-radius: var(--r-lg);
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.15 * var(--border)));
}

.phero__media img,
.elementor .phero__media img {
	position: absolute;
	top: -12%;
	left: 0;
	width: 100%;
	height: 124%;
	max-width: none;
	object-fit: cover;
	will-change: transform;
}

.phero__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgb(var(--c-night-rgb) / 0.92) 0%, rgb(var(--c-night-rgb) / 0.72) 42%, rgb(var(--c-night-rgb) / 0.25) 75%, rgb(var(--c-night-rgb) / 0.45) 100%),
		linear-gradient(180deg, rgb(var(--c-night-rgb) / 0.55), transparent 30%, transparent 60%, rgb(var(--c-night-rgb) / 0.85));
}

.phero__glow,
.elementor .phero__glow {
	position: absolute;
	z-index: -1;
	left: -10%;
	bottom: -30%;
	width: 70vw;
	height: 70vw;
	max-width: 60rem;
	max-height: 60rem;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgb(var(--c-primary-rgb) / calc(0.35 * var(--glow))), rgb(var(--c-primary-2-rgb) / calc(0.08 * var(--glow))) 55%, transparent 75%);
	pointer-events: none;
	animation: orb 12s ease-in-out infinite alternate;
}

.phero .gold-dust {
	z-index: -1;
}

.phero__content {
	position: relative;
}

.phero__crumb {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1.4rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--muted);
}

.phero__crumb a:hover {
	color: var(--gold-2);
}

.phero__crumb .icon,
.elementor .phero__crumb .icon {
	width: 0.85rem;
	height: 0.85rem;
	color: var(--gold);
}

.phero__crumb [aria-current] {
	color: var(--gold-2);
}

.phero__title,
.elementor .phero__title {
	max-width: 15ch;
	font-family: var(--f-display);
	font-size: min(clamp(3rem, 1.4rem + 5.6vw, 7.4rem), 13svh);
	line-height: 0.95;
	letter-spacing: -0.01em;
}

.phero__title em {
	font-style: italic;
	background: var(--gilt);
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.phero__text,
.elementor .phero__text {
	max-width: 34rem;
	margin-top: 1.4rem;
	font-size: clamp(1rem, 0.95rem + 0.3vw, 1.18rem);
	color: rgb(var(--c-text-rgb) / 0.82);
}

.phero__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 2rem;
}

.phero__facts li,
.elementor .phero__facts li {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.55rem 1.2rem 0.55rem 0.55rem;
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.25 * var(--border)));
	border-radius: var(--btn-r);
	background: rgb(var(--c-bg-rgb) / 0.55);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	font-family: var(--f-display);
	font-size: 1.15rem;
	line-height: 1.15;
}

.phero__facts .icon,
.elementor .phero__facts .icon {
	box-sizing: content-box;
	padding: 0.55rem;
	border-radius: 50%;
	background: var(--metal);
	color: #fff;
	width: 1rem;
	height: 1rem;
}

.phero__facts small {
	display: block;
	font-family: var(--f-sans);
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gold);
}

.phero__scroll,
.elementor .phero__scroll {
	position: absolute;
	right: calc(var(--gutter) + 0.5rem);
	bottom: 2.5rem;
	width: 1px;
	height: 4.5rem;
	overflow: hidden;
	background: rgb(var(--c-text-rgb) / 0.15);
}

.phero__scroll i {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent, var(--gold));
	animation: drip 2s ease-in-out infinite;
}

@keyframes drip {
	from {
		transform: translateY(-100%);
	}
	to {
		transform: translateY(100%);
	}
}

/* ---------- Values / counters band ---------- */
.vals {
	position: relative;
	padding-block: clamp(2.5rem, 2rem + 2vw, 4rem);
	border-block: 1px solid var(--line);
	background: linear-gradient(90deg, transparent, rgb(var(--c-primary-rgb) / 0.08), transparent);
}

.vals__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}

.vals__item {
	text-align: center;
}

.vals__item + .vals__item {
	border-left: 1px solid var(--line);
}

.vals__num {
	font-family: var(--f-display);
	font-size: clamp(3rem, 2rem + 3vw, 5.2rem);
	line-height: 1;
	background: var(--gilt);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-variant-numeric: tabular-nums;
}

.vals__num sup {
	font-size: 0.45em;
}

.vals__label {
	margin-top: 0.6rem;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--muted);
}

/* ---------- Timeline ---------- */
.tl {
	position: relative;
	overflow: hidden;
}

.tl__list,
.elementor .tl__list {
	position: relative;
	display: grid;
	gap: clamp(2rem, 1.5rem + 2vw, 3.5rem);
	max-width: 62rem;
	margin: 0 auto;
}

.tl__line {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 2px;
	margin-left: -1px;
	background: var(--line);
}

.tl__fill,
.elementor .tl__fill {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, var(--gold), var(--c-primary));
	box-shadow: 0 0 18px rgb(var(--c-accent-rgb) / calc(0.6 * var(--glow)));
	transform-origin: top;
}

.tl__item {
	--lit: 0;
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: clamp(2.5rem, 4vw, 5rem);
}

.tl__dot,
.elementor .tl__dot {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 1;
	width: 18px;
	height: 18px;
	margin: -9px 0 0 -9px;
	border: 2px solid var(--gold);
	border-radius: 50%;
	background: var(--em-0);
	box-shadow: 0 0 calc(var(--lit) * 24px) rgb(var(--c-accent-rgb) / calc(0.8 * var(--glow)));
	scale: calc(1 + var(--lit) * 0.3);
}

.tl__dot::after,
.elementor .tl__dot::after {
	content: '';
	position: absolute;
	inset: 3px;
	border-radius: 50%;
	background: var(--gold);
	opacity: var(--lit);
}

.tl__year {
	justify-self: end;
	font-family: var(--f-display);
	font-size: clamp(3rem, 2rem + 3vw, 5.5rem);
	font-style: italic;
	line-height: 1;
	background: var(--gilt);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	opacity: calc(0.35 + var(--lit) * 0.65);
}

.tl__card {
	padding: 1.6rem 1.8rem;
}

.tl__card h3 {
	position: relative;
	margin-bottom: 0.5rem;
	font-family: var(--f-display);
	font-size: clamp(1.6rem, 1.3rem + 0.8vw, 2.1rem);
	line-height: 1.1;
}

.tl__card p {
	position: relative;
	color: var(--muted);
}

.tl__item--right .tl__year {
	order: 2;
	justify-self: start;
}

.tl__item--right .tl__card {
	order: 1;
}

/* ---------- Full menu ---------- */
.mfull {
	position: relative;
	padding-bottom: var(--section-y);
}

.mfull__chips {
	position: sticky;
	top: 5.2rem;
	transition: top 0.6s var(--ease);
	z-index: 20;
	display: flex;
	justify-content: center;
	padding: 1rem var(--gutter);
}

html:has(.rh.is-hidden) .mfull__chips {
	top: 1rem;
}

.mfull__chips-list,
.elementor .mfull__chips-list {
	display: flex;
	gap: 0.3rem;
	max-width: 100%;
	padding: 0.35rem;
	overflow-x: auto;
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.25 * var(--border)));
	border-radius: var(--btn-r);
	background: rgb(var(--c-bg-rgb) / 0.82);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	box-shadow: 0 20px 40px -20px rgb(0 0 0 / calc(0.9 * var(--shadow)));
	scrollbar-width: none;
}

.mfull__chips-list::-webkit-scrollbar {
	display: none;
}

.mfull__chips-list a,
.elementor .mfull__chips-list a {
	flex: none;
	padding: 0.7rem 1.2rem;
	border-radius: var(--btn-r);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--muted);
	transition: background 0.4s var(--ease), color 0.3s;
}

.mfull__chips-list a:hover {
	color: var(--text);
}

.mfull__chips-list a.is-active {
	background: var(--metal);
	color: #fff;
}

.mnotes {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	margin: 1.5rem 0 clamp(3rem, 2rem + 3vw, 5rem);
}

.mnote {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1.3rem 1.4rem;
	font-size: 0.9rem;
	color: var(--muted);
}

.mnote strong {
	display: block;
	margin-bottom: 0.2rem;
	font-family: var(--f-display);
	font-size: 1.35rem;
	font-weight: 400;
	color: var(--text);
}

.mnote__icon,
.icard__icon,
.elementor .mnote__icon,
.elementor .icard__icon {
	position: relative;
	display: grid;
	place-items: center;
	flex: none;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--metal);
	color: #fff;
	box-shadow: 0 10px 24px -8px rgb(var(--c-primary-rgb) / calc(0.7 * var(--glow)));
}

.mfull__cat {
	scroll-margin-top: 10rem;
	margin-bottom: clamp(3.5rem, 2.5rem + 3vw, 6rem);
}

.mfull__banner,
.elementor .mfull__banner {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	min-height: clamp(14rem, 30vw, 22rem);
	margin-bottom: 1.5rem;
	padding: clamp(1.5rem, 1rem + 2vw, 2.5rem);
	overflow: hidden;
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.2 * var(--border)));
	border-radius: var(--r-lg);
}

.mfull__banner img,
.elementor .mfull__banner img {
	position: absolute;
	top: -15%;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 130%;
	max-width: none;
	object-fit: cover;
}

.mfull__banner {
	isolation: isolate;
}

.mfull__banner-shade {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, rgb(var(--c-night-rgb) / 0.92), rgb(var(--c-night-rgb) / 0.55) 55%, rgb(var(--c-night-rgb) / 0.2)), linear-gradient(0deg, rgb(var(--c-night-rgb) / 0.7), transparent 60%);
}

.mfull__index {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	color: var(--gold);
}

.mfull__banner h2 {
	margin: 0.3rem 0 0.4rem;
	font-family: var(--f-display);
	font-size: clamp(2.4rem, 1.6rem + 3vw, 4.4rem);
	line-height: 1;
}

.mfull__banner p {
	color: rgb(var(--c-text-rgb) / 0.78);
}

.mfull__count,
.elementor .mfull__count {
	padding: 0.5rem 1rem;
	border: 1px solid rgb(var(--c-accent-rgb) / calc(0.35 * var(--border)));
	border-radius: var(--btn-r);
	background: rgb(var(--c-bg-rgb) / 0.55);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--gold-2);
	white-space: nowrap;
}

.mfull__items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.9rem;
}

.mitem,
.elementor .mitem {
	position: relative;
	display: grid;
	grid-template-columns: 5.2rem minmax(0, 1fr);
	align-items: center;
	gap: 1.2rem;
	padding: 0.9rem 1.3rem 0.9rem 0.9rem;
	overflow: hidden;
	border: 1px solid var(--line-soft);
	border-radius: 20px;
	background: linear-gradient(160deg, rgb(var(--c-text-rgb) / 0.045), rgb(var(--c-text-rgb) / 0.01));
	transition: border-color 0.4s, translate 0.6s var(--ease), background-color 0.4s;
}

.mitem:hover {
	translate: 0 -4px;
	border-color: rgb(var(--c-accent-rgb) / calc(0.4 * var(--border)));
}

.mitem img,
.elementor .mitem img {
	position: relative;
	width: 5.2rem;
	height: 5.2rem;
	border-radius: 14px;
	object-fit: cover;
}

.mitem__body {
	position: relative;
}

.mitem__head {
	display: flex;
	align-items: baseline;
	gap: 0.7rem;
}

.mitem__head h3 {
	font-family: var(--f-display);
	font-size: 1.45rem;
	line-height: 1.1;
}

.mitem__head i {
	flex: 1;
	min-width: 1rem;
	border-bottom: 1px dotted rgb(var(--c-accent-rgb) / calc(0.4 * var(--border)));
}

.mitem__price {
	font-family: var(--f-display);
	font-size: 1.6rem;
	color: var(--gold-2);
}

.mitem p {
	margin-top: 0.25rem;
	font-size: 0.88rem;
	color: var(--muted);
}

.mitem__tag {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin-top: 0.5rem;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--c-primary-2);
}

.mitem__tag .icon,
.elementor .mitem__tag .icon {
	width: 0.75rem;
	height: 0.75rem;
}

/* ---------- Info / contact cards ---------- */
.icards {
	position: relative;
	z-index: 2;
	padding-block: clamp(1.5rem, 1rem + 2vw, 3rem) clamp(2rem, 1rem + 3vw, 4rem);
}

.icards__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.icards__grid--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.icard,
.ccard,
.elementor .icard,
.elementor .ccard {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	padding: 1.6rem;
	background: radial-gradient(80% 60% at 100% 0%, rgb(var(--c-primary-rgb) / calc(0.14 * var(--glow))), transparent 60%),
		linear-gradient(160deg, rgb(var(--c-surface-2-rgb) / 0.92), rgb(var(--c-surface-rgb) / 0.95));
	border-color: rgb(var(--c-accent-rgb) / calc(0.2 * var(--border)));
	box-shadow: 0 30px 60px -30px rgb(0 0 0 / calc(0.9 * var(--shadow)));
	transition: translate 0.6s var(--ease), border-color 0.4s;
}

.icard:hover,
.ccard:hover {
	translate: 0 -6px;
	border-color: rgb(var(--c-accent-rgb) / calc(0.5 * var(--border)));
}

.icard h3 {
	position: relative;
	margin-top: 0.6rem;
	font-family: var(--f-display);
	font-size: 1.7rem;
	line-height: 1.1;
}

.icard ul {
	position: relative;
	display: grid;
	gap: 0.35rem;
	color: var(--muted);
	font-size: 0.92rem;
}

.ccard small {
	position: relative;
	margin-top: 0.6rem;
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gold);
}

.ccard strong {
	position: relative;
	font-family: var(--f-display);
	font-size: 1.45rem;
	font-weight: 400;
	line-height: 1.15;
	overflow-wrap: anywhere;
}

.ccard__note {
	position: relative;
	font-size: 0.85rem;
	color: var(--muted);
}

.ccard__go,
.elementor .ccard__go {
	position: absolute;
	top: 1.4rem;
	right: 1.4rem;
	display: grid;
	place-items: center;
	width: 2.4rem;
	height: 2.4rem;
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--gold);
	transition: transform 0.5s var(--ease), background 0.3s, color 0.3s;
}

.ccard:hover .ccard__go {
	transform: rotate(45deg);
	background: var(--metal);
	color: #fff;
}

/* ---------- Contact form + map ---------- */
.contact {
	position: relative;
	overflow: hidden;
}

.contact__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: stretch;
	gap: clamp(2rem, 1rem + 4vw, 5rem);
}

.contact .section-head {
	margin-bottom: 2rem;
}

.cform {
	display: grid;
	gap: 1.5rem;
	padding: clamp(1.5rem, 1rem + 2vw, 2.4rem);
}

.contact .map-card {
	min-height: 36rem;
}

/* Reservation page: the form section follows the info cards closely. */
.is-inner .reserve {
	margin-top: 1rem;
}

/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
	.icards__grid--4,
.elementor .icards__grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.mfull__items,
.elementor .mfull__items {
		grid-template-columns: 1fr;
	}

	.contact__grid,
.elementor .contact__grid {
		grid-template-columns: 1fr;
	}

	.contact .map-card,
.elementor .contact .map-card {
		min-height: 26rem;
	}
}

@media (max-width: 767px) {
	.icards__grid,
.icards__grid--4,
.mnotes,
.elementor .icards__grid,
.elementor .icards__grid--4,
.elementor .mnotes {
		grid-template-columns: 1fr;
	}

	.vals__grid,
.elementor .vals__grid {
		grid-template-columns: 1fr 1fr;
		row-gap: 2rem;
	}

	.vals__item:nth-child(3),
.elementor .vals__item:nth-child(3) {
		border-left: 0;
	}

	.tl__line,
.tl__dot,
.elementor .tl__line,
.elementor .tl__dot {
		left: 1rem;
	}

	.tl__item,
.elementor .tl__item {
		grid-template-columns: 1fr;
		gap: 0.75rem;
		padding-left: 2.8rem;
	}

	.tl__item .tl__year,
.tl__item--right .tl__year,
.elementor .tl__item .tl__year,
.elementor .tl__item--right .tl__year {
		order: 0;
		justify-self: start;
	}

	.tl__item--right .tl__card,
.elementor .tl__item--right .tl__card {
		order: 1;
	}

	.tl__dot,
.elementor .tl__dot {
		top: 1.6rem;
	}

	.phero__facts li,
.elementor .phero__facts li {
		font-size: 1rem;
	}

	.mfull__banner,
.elementor .mfull__banner {
		flex-direction: column;
		align-items: flex-start;
	}

	.mfull__chips,
.elementor .mfull__chips {
		top: 4.6rem;
	}
}

/* ---------- Performance ----------
   backdrop-filter re-blurs everything behind an element on every scroll frame. Keep it only on the
   floating header; everything else uses a slightly denser tint, which looks the same on this dark UI. */
.royal *:not(.rh__bar):not(.rh) {
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
}

.royal .glass {
	background: rgb(var(--c-surface-rgb) / 0.86);
}

.royal .rquotes__bg img {
	filter: brightness(0.32) saturate(0.85);
}

/* Placeholder that reserves space while the homepage sections below the fold are being built. */
.home-pending {
	min-height: 200vh;
}

/* ---------- Integrated-GPU friendly backdrop ----------
   One static fixed layer (glows + star lattice) instead of several animated full-screen layers. */
.royal body::after {
	display: none;
}

.royal .ambient {
	background: radial-gradient(60vmax 50vmax at 8% -5%, rgb(var(--c-primary-rgb) / calc(0.16 * var(--glow))), transparent 70%),
		radial-gradient(55vmax 45vmax at 100% 105%, rgb(var(--c-accent-rgb) / calc(0.09 * var(--glow))), transparent 70%),
		radial-gradient(40vmax 35vmax at 60% 45%, rgb(var(--c-primary-2-rgb) / calc(0.05 * var(--glow))), transparent 70%),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23f3b23a' stroke-opacity='.045' stroke-width='1'%3E%3Cpath d='M48 8 L58 38 L88 48 L58 58 L48 88 L38 58 L8 48 L38 38 Z'/%3E%3Cpath d='M20 20 L48 30 L76 20 L66 48 L76 76 L48 66 L20 76 L30 48 Z'/%3E%3Ccircle cx='48' cy='48' r='6'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 96px 96px,
		radial-gradient(120% 80% at 50% 0%, var(--c-surface), var(--c-bg) 60%);
}

/* Gradient text is painted once, not re-painted every frame. */
.royal .title em,
.royal .rstory__quote em,
.royal .pd h2 em,
.royal .rfoot__cta em,
.royal .phero__title em {
	animation: none;
}

/* Large decorative layers stay still — their glow is kept, the per-frame cost is not. */
.royal .rhero__rays,
.royal .glow-orb,
.royal .phero__glow,
.royal .rdish__glow {
	animation: none;
	will-change: auto;
}

/* ---------- Hero scroll performance (measured on an integrated GPU) ----------
   Elements that move/fade on scroll get their own compositor layer, so they are
   not re-painted every frame. The huge light-ray layer is replaced by a static glow. */
.rhero__copy,
.rhero__deco,
.rdish__moon,
.rdish__ring,
.rdish__tag,
.rdish__hot,
.phero__content {
	will-change: transform, opacity;
}

.rhero__rays {
	display: none;
}

.rhero__vignette {
	background: radial-gradient(60% 70% at 72% 50%, rgb(var(--c-primary-rgb) / calc(0.2 * var(--glow))), transparent 70%),
		radial-gradient(35% 45% at 85% 10%, rgb(var(--c-primary-2-rgb) / calc(0.12 * var(--glow))), transparent 70%);
}

/* Arches: fade the backdrop edges with an overlay instead of mask-image (masks are re-applied
   every frame while the photo moves), and keep the moving parts on their own layers. */
.arches__bg {
	-webkit-mask-image: none;
	mask-image: none;
}

.arches__bg::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, var(--em-0) 0%, transparent 20%, transparent 80%, var(--em-0) 100%);
}

.arches__bg img,
.arches__mandala,
.arch,
.arches__center {
	will-change: transform;
}

.mboard__photo {
	will-change: transform;
}

/* Every photo that moves on scroll gets its own layer (moved by the GPU, never re-painted). */
.rstory__frame img,
.rstory__round,
.spec__media img,
.spec__deco,
.bento__img img,
.mfull__banner img,
.rfoot__bg img,
.rquotes__bg img,
.pd__frame img,
.reserve__media img {
	will-change: transform;
}

/* Hide Google's 'open in Maps' card fully (it turns into a dark box under the map filter). */
.map-card iframe,
.elementor /* Hide Google's 'open in Maps' card fully (it turns into a dark box under the map filter). */
.map-card iframe {
	inset: -120px 0 0 0;
	height: calc(100% + 120px);
}


@media (max-width: 767px) {
	.phero__scroll,
.elementor .phero__scroll {
		display: none;
	}

	.icards__grid--4,
.elementor .icards__grid--4 {
		grid-template-columns: 1fr 1fr;
		gap: 0.75rem;
	}

	.ccard,
.elementor .ccard {
		padding: 1.15rem;
	}

	.ccard strong,
.elementor .ccard strong {
		font-size: 1.15rem;
	}

	.ccard__go,
.elementor .ccard__go {
		top: 1rem;
		right: 1rem;
		width: 2rem;
		height: 2rem;
	}
}

/* The entrance can be skipped with a click. */
.rpl {
	pointer-events: auto;
	cursor: pointer;
}


/* ---------- Glow layer ----------
   Static light only (painted once, never animated), so it stays cheap on integrated GPUs. */

/* Warm halo behind every section heading. */
.section-head {
	position: relative;
	isolation: isolate;
}

.section-head::before,
.elementor .section-head::before {
	content: '';
	position: absolute;
	z-index: -1;
	top: 50%;
	left: -8%;
	width: min(46rem, 90vw);
	height: 22rem;
	translate: 0 -50%;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgb(var(--c-primary-rgb) / calc(0.16 * var(--glow))), rgb(var(--c-accent-rgb) / calc(0.05 * var(--glow))) 55%, transparent 78%);
	pointer-events: none;
}

.section-head--center::before {
	left: 50%;
	translate: -50% -50%;
}

/* Gold accent words and eyebrows carry a soft ember bloom. */
.royal .title em,
.royal .phero__title em,
.royal .pd h2 em,
.royal .rfoot__cta em,
.royal .rstory__quote em {
	filter: drop-shadow(0 0 22px rgb(var(--c-primary-rgb) / calc(0.38 * var(--glow))));
}

.reyebrow,
.eyebrow {
	text-shadow: 0 0 18px rgb(var(--c-accent-rgb) / calc(0.35 * var(--glow)));
}

.rstats__item strong {
	filter: drop-shadow(0 0 16px rgb(var(--c-accent-rgb) / calc(0.3 * var(--glow))));
}

/* Cards: a lit top edge at rest,
an ember rim glow on hover. */
.spec__card,
.icard,
.ccard,
.tl__card,
.mnote,
.panel,
.faq__item,
.bento__tile,
.elementor /* Cards: a lit top edge at rest,
.elementor an ember rim glow on hover. */
.spec__card,
.elementor .icard,
.elementor .ccard,
.elementor .tl__card,
.elementor .mnote,
.elementor .panel,
.elementor .faq__item,
.elementor .bento__tile {
	box-shadow: inset 0 1px 0 rgb(var(--c-accent-2-rgb) / calc(0.1 * var(--glow))),
		0 30px 70px -36px rgb(0 0 0 / calc(0.9 * var(--shadow)));
}

.spec__card:hover,
.icard:hover,
.ccard:hover,
.tl__card:hover,
.mnote:hover,
.bento__tile:hover,
.elementor .spec__card:hover,
.elementor .icard:hover,
.elementor .ccard:hover,
.elementor .tl__card:hover,
.elementor .mnote:hover,
.elementor .bento__tile:hover {
	border-color: rgb(var(--c-accent-rgb) / calc(0.5 * var(--border)));
	box-shadow: inset 0 1px 0 rgb(var(--c-accent-2-rgb) / calc(0.22 * var(--glow))),
		0 0 0 1px rgb(var(--c-accent-rgb) / calc(0.18 * var(--glow))),
		0 30px 70px -30px rgb(var(--c-primary-rgb) / calc(0.5 * var(--glow))),
		0 0 48px -12px rgb(var(--c-accent-rgb) / calc(0.28 * var(--glow)));
}

.tl__card,
.mnote,
.bento__tile {
	transition: border-color 0.4s, box-shadow 0.5s var(--ease), translate 0.6s var(--ease);
}

.icard,
.ccard {
	transition: translate 0.6s var(--ease), border-color 0.4s, box-shadow 0.5s var(--ease);
}

.faq__item.is-open,
.elementor .faq__item.is-open {
	box-shadow: inset 0 1px 0 rgb(var(--c-accent-2-rgb) / calc(0.18 * var(--glow))),
		0 0 0 1px rgb(var(--c-accent-rgb) / calc(0.12 * var(--glow))),
		0 24px 60px -30px rgb(var(--c-primary-rgb) / calc(0.45 * var(--glow)));
}

/* Booking / contact panels glow from the top corner. */
.reserve .panel,
.cform,
.elementor /* Booking / contact panels glow from the top corner. */
.reserve .panel,
.elementor .cform {
	box-shadow: inset 0 1px 0 rgb(var(--c-accent-2-rgb) / calc(0.16 * var(--glow))),
		0 0 0 1px rgb(var(--c-accent-rgb) / calc(0.08 * var(--glow))),
		0 50px 120px -50px rgb(var(--c-primary-rgb) / calc(0.45 * var(--glow))),
		0 50px 120px -50px rgb(0 0 0 / calc(0.9 * var(--shadow)));
}

/* Framed photos sit in a faint ember light. */
.rstory__frame,
.pd__frame,
.mboard__photo,
.reserve__media,
.phero__media,
.elementor /* Framed photos sit in a faint ember light. */
.rstory__frame,
.elementor .pd__frame,
.elementor .mboard__photo,
.elementor .reserve__media,
.elementor .phero__media {
	box-shadow: 0 0 0 1px rgb(var(--c-accent-rgb) / calc(0.16 * var(--glow))),
		0 40px 100px -40px rgb(var(--c-primary-rgb) / calc(0.45 * var(--glow)));
}

/* Form fields light up on focus. */
.royal input:focus-visible,
.royal textarea:focus-visible,
.royal select:focus-visible,
.elementor /* Form fields light up on focus. */
.royal input:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px rgb(var(--c-accent-rgb) / calc(0.18 * var(--glow))), 0 0 24px -6px rgb(var(--c-primary-rgb) / calc(0.5 * var(--glow)));
}

/* Gilt hairline with a glowing centre between the footer and the page. */
.rfoot::before,
.elementor /* Gilt hairline with a glowing centre between the footer and the page. */
.rfoot::before {
	content: '';
	position: absolute;
	z-index: 2;
	top: 0;
	left: 10%;
	right: 10%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgb(var(--c-accent-rgb) / 0.7), rgb(var(--c-primary-rgb) / 0.8), rgb(var(--c-accent-rgb) / 0.7), transparent);
	box-shadow: 0 0 18px 1px rgb(var(--c-primary-rgb) / calc(0.45 * var(--glow)));
	pointer-events: none;
}

@media (max-width: 767px) {
	.section-head::before,
.elementor .section-head::before {
		height: 14rem;
	}

	.royal .title em,
	.royal .phero__title em {
		filter: drop-shadow(0 0 14px rgb(var(--c-primary-rgb) / calc(0.32 * var(--glow))));
	}
}
