/**
 * Chef X Cafe — scoped mobile fixes (Elementor page 67, menu 70, Astra breakpoints).
 * Loaded via mu-plugin; selectors prefixed with body.chefx-mobile-fixes.
 */

/* Hosted Elementor videos: block display + fill wrapper (Chrome collapses display:flex on <video>). */
body.chefx-mobile-fixes .elementor-widget-video .elementor-wrapper {
	position: relative;
	overflow: hidden;
}

body.chefx-mobile-fixes .elementor-widget-video .elementor-wrapper video {
	display: block !important;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* --- Horizontal overflow (tablet + phone) --- */
@media (max-width: 921px) {
	body.chefx-mobile-fixes {
		max-width: 100vw;
	}

	body.chefx-mobile-fixes .site-content,
	body.chefx-mobile-fixes .ast-container,
	body.chefx-mobile-fixes .elementor-location-footer {
		max-width: 100%;
		overflow-x: clip;
	}

	body.chefx-mobile-fixes .elementor-section,
	body.chefx-mobile-fixes .e-con {
		max-width: 100%;
	}
}

/* --- Homepage hero: background video (b72bff8) + overlap spacer (c220800) --- */

/* Overlap spacer: Elementor black block (526px, -300px margin) — gap source at all widths */
body.chefx-mobile-fixes .elementor-67 .elementor-element-c220800 {
	display: none !important;
	min-height: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	--min-height: 0px !important;
	--margin-top: 0px !important;
	overflow: hidden;
}

/* No top padding above hero; hero path must not clip 100vw breakout at any width */
body.chefx-mobile-fixes #content.site-content,
body.chefx-mobile-fixes .ast-container {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

body.chefx-mobile-fixes #content.site-content,
body.chefx-mobile-fixes #content.site-content > .ast-container,
body.chefx-mobile-fixes .elementor-67 {
	overflow-x: visible !important;
}

body.chefx-mobile-fixes {
	overflow-x: clip;
	/* ~500px content in 1280px frame — light zoom to trim side pillarbox without over-cropping */
	--chefx-hero-video-pillarbox-scale: 1.35;
	--chefx-hero-video-scrim-opacity: 0.38;
	--chefx-header-bar-bg: var(--e-global-color-primary, var(--e-global-color-6f62c2d, #000000));
	--chefx-header-bar-border: rgba(209, 164, 96, 0.22);
	--chefx-header-icon-color: var(--e-global-color-c54927e, #dcc8b5);
	--chefx-menu-overlay-bg: var(--e-global-color-primary, var(--e-global-color-6f62c2d, #000000));
	--chefx-menu-header-height: clamp(4.5rem, 4rem + 15vw, 7.875rem);
	--chefx-menu-bg-logo: none;
	/* Elementor 8ec1515: 20px + text line + 20px + 2px border; JS refines when measurable */
	--chefx-header-order-btn-height: calc(
		20px + var(--e-global-typography-text-font-size, 19.5px) + 20px + 2px
	);
	--chefx-header-hamburger-icon-ratio: 0.58;
	--chefx-menu-ease: cubic-bezier(0.65, 0, 0.35, 1);
	--chefx-menu-duration: 0.55s;
	--chefx-menu-close-duration: 0.4s;
	--chefx-menu-stagger: 0.08s;
	--chefx-menu-stagger-base: 0.15s;
	/* Close: nav links exit bottom→top, then the overlay fades. */
	--chefx-menu-close-stagger: 0.055s;
	--chefx-menu-item-out-duration: 0.3s;
	--chefx-menu-close-overlay-delay: 0.18s;
	/* Inline footer watermark beside Order Now (501–800px overridden below) */
	--chefx-menu-watermark-size: min(50vw, 12.5rem);
}

/*
 * Hero video: edge-to-edge at every width.
 * Full-bleed via margin calc (not translateX — fights motion-FX and subpixel gaps).
 * Breaks out of Astra .ast-container padding (20px) and Elementor e-con-boxed.
 */
body.chefx-mobile-fixes .elementor-67 .elementor-element-b72bff8 {
	position: relative;
	left: auto;
	right: auto;
	transform: none;
	display: flex !important;
	align-self: stretch !important;
	width: 100vw !important;
	max-width: 100vw !important;
	--width: 100vw !important;
	--content-width: 100% !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	--margin-left: calc(50% - 50vw) !important;
	--margin-right: calc(50% - 50vw) !important;
	--min-height: 100svh !important;
	min-height: 100vh !important;
	min-height: 100svh !important;
	height: 100svh !important;
	padding: 0 !important;
	overflow: hidden;
	z-index: 0;
}

/* Pull hero under transparent header (JS sets --chefx-menu-header-height from 078714f) */
body.chefx-mobile-fixes:not(.chefx-scrolled) .elementor-67 .elementor-element-b72bff8 {
	margin-top: calc(-1 * var(--chefx-menu-header-height, 4.5rem)) !important;
	--margin-top: calc(-1 * var(--chefx-menu-header-height, 4.5rem)) !important;
}

body.admin-bar.chefx-mobile-fixes:not(.chefx-scrolled) .elementor-67 .elementor-element-b72bff8 {
	margin-top: calc(-1 * (var(--chefx-menu-header-height, 4.5rem) + 32px)) !important;
	--margin-top: calc(-1 * (var(--chefx-menu-header-height, 4.5rem) + 32px)) !important;
}

@media (max-width: 782px) {
	body.admin-bar.chefx-mobile-fixes:not(.chefx-scrolled) .elementor-67 .elementor-element-b72bff8 {
		margin-top: calc(-1 * (var(--chefx-menu-header-height, 4.5rem) + 46px)) !important;
		--margin-top: calc(-1 * (var(--chefx-menu-header-height, 4.5rem) + 46px)) !important;
	}
}

/* e-con-boxed inner + post-67 --content-width:1284px (768px+): full viewport at ALL breakpoints */
body.chefx-mobile-fixes .elementor-67 .elementor-element-b72bff8 > .e-con-inner {
	position: relative;
	align-self: stretch !important;
	width: 100% !important;
	max-width: none !important;
	--content-width: 100% !important;
	height: 100%;
	min-height: 100%;
	flex: 1 1 auto;
	margin: 0 !important;
	margin-inline: 0 !important;
	padding: 0 !important;
}

body.chefx-mobile-fixes .elementor-67 .elementor-element-b72bff8 .elementor-background-video-container {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	overflow: hidden;
	opacity: 1 !important;
	background-color: transparent !important;
}

/* Hero video darkening: semi-transparent scrim above video, below logo/Order Now overlay */
body.chefx-mobile-fixes .elementor-67 .elementor-element-b72bff8 .elementor-background-video-container::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background-color: rgba(0, 0, 0, var(--chefx-hero-video-scrim-opacity, 0.38));
	pointer-events: none;
}

/* Elementor post-67: black fallback + overlay vars — override in all motion-FX states */
body.chefx-mobile-fixes .elementor-67 .elementor-element-b72bff8,
body.chefx-mobile-fixes
	.elementor-67
	.elementor-element-b72bff8.elementor-motion-effects-element-type-background,
body.chefx-mobile-fixes
	.elementor-67
	.elementor-element-b72bff8.elementor-motion-effects-element,
body.chefx-mobile-fixes
	.elementor-67
	.elementor-element-b72bff8
	> .elementor-motion-effects-container
	> .elementor-motion-effects-layer {
	background-color: transparent !important;
	--overlay-opacity: 0 !important;
}

/*
 * Elementor Pro motion_fx_opacity (in-out, 2–22%) sets inline opacity on the
 * whole container; on full-viewport mobile heroes that reads as a dark scrim.
 */
body.chefx-mobile-fixes.home .elementor-67 .elementor-element-b72bff8,
body.chefx-mobile-fixes.home
	.elementor-67
	.elementor-element-b72bff8.elementor-motion-effects-element {
	opacity: 1 !important;
	filter: none !important;
	transform: none !important;
}

body.chefx-mobile-fixes
	.elementor-67
	.elementor-element-b72bff8
	> .elementor-motion-effects-container {
	pointer-events: none;
}

body.chefx-mobile-fixes
	.elementor-67
	.elementor-element-b72bff8
	> .elementor-motion-effects-container
	> .elementor-motion-effects-layer {
	opacity: 1 !important;
	background: none !important;
}

/* Kill Elementor container / video overlay pseudo-scrims (post-67 ::before rules) */
body.chefx-mobile-fixes .elementor-67 .elementor-element-b72bff8::before,
body.chefx-mobile-fixes
	.elementor-67
	.elementor-element-b72bff8
	> .elementor-motion-effects-container
	> .elementor-motion-effects-layer::before,
body.chefx-mobile-fixes
	.elementor-67
	.elementor-element-b72bff8
	.elementor-background-video-container::before,
body.chefx-mobile-fixes
	.elementor-67
	.elementor-element-b72bff8
	> .e-con-inner
	> .elementor-background-video-container::before {
	content: none !important;
	display: none !important;
	opacity: 0 !important;
	background: none !important;
}

body.chefx-mobile-fixes .elementor-67 .elementor-element-b72bff8 .elementor-background-video-hosted {
	display: block !important;
	position: absolute !important;
	inset: 0 !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 100%;
	min-height: 100%;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center 46% !important;
	transform: scale(var(--chefx-hero-video-pillarbox-scale, 1.35)) !important;
	transform-origin: center center !important;
	opacity: 1 !important;
	filter: none !important;
}

@media (max-width: 1199px) {
	body.chefx-mobile-fixes {
		--chefx-hero-video-pillarbox-scale: 1.2;
	}
}

@media (max-width: 899px) {
	body.chefx-mobile-fixes {
		--chefx-hero-video-pillarbox-scale: 1;
	}

	body.chefx-mobile-fixes.home {
		overflow-x: visible;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-b72bff8 {
		width: 100dvw !important;
		max-width: 100dvw !important;
		--width: 100dvw !important;
		margin-left: calc(50% - 50dvw) !important;
		margin-right: calc(50% - 50dvw) !important;
		--margin-left: calc(50% - 50dvw) !important;
		--margin-right: calc(50% - 50dvw) !important;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-b72bff8 .elementor-background-video-hosted {
		transform: none !important;
	}
}

/*
 * Mobile homepage hero: full viewport height so overlay logo + Order Now stay
 * centered inside the hero. A short height clamp (~352px) pushed the CTA below
 * overflow:hidden and out of view.
 */
@media (max-width: 767px) {
	body.chefx-mobile-fixes.home .elementor-67 .elementor-element-b72bff8 {
		--min-height: 100svh !important;
		min-height: 100vh !important;
		min-height: 100svh !important;
		height: 100svh !important;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-b72bff8 .elementor-background-video-hosted {
		object-position: center 44% !important;
	}

	body.chefx-mobile-fixes.home .chefx-hero-overlay {
		padding: clamp(3.5rem, 10vh, 5rem) clamp(1rem, 4vw, 1.25rem)
			clamp(1rem, 4vh, 2rem);
		gap: clamp(0.75rem, 2.5vh, 1.25rem);
		justify-content: center;
	}

	body.chefx-mobile-fixes.home .chefx-hero-overlay__logo {
		width: min(74vw, 18rem);
		max-height: min(32vh, 12.5rem);
	}
}

/*
 * Tablet homepage hero: full viewport height (mirrors phone fix).
 * Short height clamp (~520px at 768px) clipped overlay Order Now.
 */
@media (min-width: 768px) and (max-width: 899px) {
	body.chefx-mobile-fixes.home .elementor-67 .elementor-element-b72bff8 {
		--min-height: 100svh !important;
		min-height: 100vh !important;
		min-height: 100svh !important;
		height: 100svh !important;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-b72bff8 .elementor-background-video-hosted {
		object-position: center 44% !important;
	}

	body.chefx-mobile-fixes.home .chefx-hero-overlay {
		padding: clamp(3.5rem, 10vh, 5rem) clamp(1rem, 4vw, 1.25rem)
			clamp(1rem, 4vh, 2rem);
		gap: clamp(0.75rem, 2.5vh, 1.25rem);
		justify-content: center;
	}

	body.chefx-mobile-fixes.home .chefx-hero-overlay__logo {
		width: min(60vw, 20rem);
		max-height: min(34vh, 15rem);
	}
}

/* Homepage hero overlay: large logo + Order Now (hidden after ~50% hero scroll) *//* Homepage hero overlay: large logo + Order Now (hidden after ~50% hero scroll) */
body.chefx-mobile-fixes.home .elementor-67 .elementor-element-b72bff8 > .e-con-inner {
	z-index: 1;
}

body.chefx-mobile-fixes.home .chefx-hero-overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: clamp(1rem, 3.5vh, 2rem);
	padding: clamp(4.5rem, 14vh, 7rem) clamp(1.25rem, 5vw, 2.5rem)
		clamp(1.5rem, 5vh, 3rem);
	pointer-events: none;
	transition: opacity 0.35s cubic-bezier(0.77, 0, 0.175, 1),
		visibility 0.35s cubic-bezier(0.77, 0, 0.175, 1),
		transform 0.35s cubic-bezier(0.77, 0, 0.175, 1);
}

body.chefx-mobile-fixes.home .chefx-hero-overlay::before {
	content: none;
	display: none;
}

body.chefx-mobile-fixes.home .chefx-hero-overlay__logo-link,
body.chefx-mobile-fixes.home .chefx-hero-overlay__order {
	position: relative;
	z-index: 1;
	pointer-events: auto;
}

body.chefx-mobile-fixes.home .chefx-hero-overlay__logo-link {
	display: block;
	line-height: 0;
	text-decoration: none;
}

body.chefx-mobile-fixes.home .chefx-hero-overlay__logo {
	display: block;
	width: min(90vw, 520px);
	height: auto;
	max-width: min(98vw, 56rem);
	max-height: clamp(18rem, 62vh, 40rem);
	object-fit: contain;
	filter: drop-shadow(0 8px 20px rgba(0, 0, 0, 0.28));
}

body.chefx-mobile-fixes.home.chefx-scrolled .chefx-hero-overlay {
	opacity: 0;
	visibility: hidden;
	transform: translateY(-0.75rem);
}

/* Homepage at top: hero fills viewport; header row is hamburger-only overlay */
body.chefx-mobile-fixes.home:not(.chefx-scrolled) .elementor-67 .elementor-element-b72bff8 {
	margin-top: 0 !important;
	--margin-top: 0px !important;
}

body.admin-bar.chefx-mobile-fixes.home:not(.chefx-scrolled) .elementor-67 .elementor-element-b72bff8 {
	margin-top: 0 !important;
	--margin-top: 0px !important;
}

/* At page top (all routes): pin header bar over hero; inner pages keep logo + Order Now */
body.chefx-mobile-fixes:not(.chefx-scrolled):not(.chefx-menu-open):not(.chefx-menu-closing)
	.elementor-87.elementor-location-header
	.elementor-element.elementor-element-078714f,
body.chefx-mobile-fixes:not(.chefx-scrolled):not(.chefx-menu-open):not(.chefx-menu-closing)
	.elementor-87.elementor-location-header
	.elementor-element.elementor-element-078714f:not(.elementor-motion-effects-element-type-background),
body.chefx-mobile-fixes:not(.chefx-scrolled):not(.chefx-menu-open):not(.chefx-menu-closing)
	.elementor-87.elementor-location-header
	.elementor-element.elementor-element-078714f
	> .elementor-motion-effects-container
	> .elementor-motion-effects-layer {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	max-width: 100vw;
	margin: 0 !important;
	background-color: transparent !important;
	box-shadow: none;
	border-bottom: 0;
	z-index: 1001;
}

body.chefx-mobile-fixes.home:not(.chefx-scrolled):not(.chefx-menu-open):not(.chefx-menu-closing)
	.elementor-87.elementor-location-header
	.elementor-element.elementor-element-078714f,
body.chefx-mobile-fixes.home:not(.chefx-scrolled):not(.chefx-menu-open):not(.chefx-menu-closing)
	.elementor-87.elementor-location-header
	.elementor-element.elementor-element-078714f:not(.elementor-motion-effects-element-type-background),
body.chefx-mobile-fixes.home:not(.chefx-scrolled):not(.chefx-menu-open):not(.chefx-menu-closing)
	.elementor-87.elementor-location-header
	.elementor-element.elementor-element-078714f
	> .elementor-motion-effects-container
	> .elementor-motion-effects-layer {
	pointer-events: none;
}

body.admin-bar.chefx-mobile-fixes:not(.chefx-scrolled):not(.chefx-menu-open):not(.chefx-menu-closing)
	.elementor-87.elementor-location-header
	.elementor-element.elementor-element-078714f,
body.admin-bar.chefx-mobile-fixes:not(.chefx-scrolled):not(.chefx-menu-open):not(.chefx-menu-closing)
	.elementor-87.elementor-location-header
	.elementor-element.elementor-element-078714f:not(.elementor-motion-effects-element-type-background) {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar.chefx-mobile-fixes:not(.chefx-scrolled):not(.chefx-menu-open):not(.chefx-menu-closing)
		.elementor-87.elementor-location-header
		.elementor-element.elementor-element-078714f,
	body.admin-bar.chefx-mobile-fixes:not(.chefx-scrolled):not(.chefx-menu-open):not(.chefx-menu-closing)
		.elementor-87.elementor-location-header
		.elementor-element.elementor-element-078714f:not(.elementor-motion-effects-element-type-background) {
		top: 46px;
	}
}

body.chefx-mobile-fixes.home:not(.chefx-scrolled):not(.chefx-menu-open)
	.elementor-location-header
	.elementor-element-078714f
	> .e-con-inner {
	justify-content: flex-end !important;
	padding-block: clamp(0.55rem, 2vw, 0.85rem);
	pointer-events: none;
}

body.chefx-mobile-fixes.home:not(.chefx-scrolled):not(.chefx-menu-open)
	.elementor-location-header
	.elementor-element-3297390,
body.chefx-mobile-fixes.home:not(.chefx-scrolled):not(.chefx-menu-open)
	.elementor-location-header
	.elementor-element-b789d2a {
	display: none !important;
}

body.chefx-mobile-fixes.home:not(.chefx-scrolled):not(.chefx-menu-open)
	.elementor-location-header
	.elementor-element-2a92055 {
	order: 3;
	width: auto !important;
	margin-left: auto;
	margin-right: 0;
	pointer-events: auto;
}

body.chefx-mobile-fixes.home:not(.chefx-scrolled):not(.chefx-menu-open)
	.elementor-location-header
	.elementor-element-7a3a117,
body.chefx-mobile-fixes.home:not(.chefx-scrolled):not(.chefx-menu-open)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-toggle {
	pointer-events: auto;
}

/* Badge row directly under hero */
body.chefx-mobile-fixes .elementor-67 .elementor-element-2c145db {
	margin-top: 0 !important;
	--margin-top: 0px !important;
}

/* --- Header (87): transparent at top; fixed dark bar when scrolled; hamburger at all widths --- */
body.chefx-mobile-fixes #page,
body.chefx-mobile-fixes .hfeed.site {
	overflow: visible;
	padding-top: 0;
}

/* Scrolled-only fallbacks; chefxcafe-order-btn.js syncs from measured 078714f height */
body.chefx-mobile-fixes.chefx-scrolled {
	--chefx-sticky-header-height: 5.75rem;
}

@media (max-width: 1220px) {
	body.chefx-mobile-fixes.chefx-scrolled {
		--chefx-sticky-header-height: 5.5rem;
	}
}

@media (max-width: 921px) {
	body.chefx-mobile-fixes.chefx-scrolled {
		--chefx-sticky-header-height: 4.5rem;
	}
}

html:has(body.chefx-mobile-fixes.chefx-scrolled) {
	scroll-padding-top: var(--chefx-sticky-header-height);
}

/* Sticky breaks when ancestors clip overflow (Astra / Elementor); fixed bar is reliable */
body.chefx-mobile-fixes.chefx-scrolled #page,
body.chefx-mobile-fixes.chefx-scrolled .hfeed.site {
	padding-top: var(--chefx-sticky-header-height);
}

body.admin-bar.chefx-mobile-fixes.chefx-scrolled #page,
body.admin-bar.chefx-mobile-fixes.chefx-scrolled .hfeed.site {
	padding-top: calc(var(--chefx-sticky-header-height) + 32px);
}

@media (max-width: 782px) {
	body.admin-bar.chefx-mobile-fixes.chefx-scrolled #page,
	body.admin-bar.chefx-mobile-fixes.chefx-scrolled .hfeed.site {
		padding-top: calc(var(--chefx-sticky-header-height) + 46px);
	}
}

/* Smoke-cursor + anchor rows — keep out of layout stack (ui polish disabled) */
body.chefx-mobile-fixes .elementor-location-header .elementor-element-c1076d8,
body.chefx-mobile-fixes .elementor-location-header .elementor-element-41dda5e {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
	overflow: hidden;
	margin: 0 !important;
	padding: 0 !important;
	border: 0;
	visibility: hidden;
	pointer-events: none;
}

body.chefx-mobile-fixes .elementor-location-header {
	position: relative;
	z-index: 1000;
	overflow: visible;
	padding: 0;
	margin: 0;
	background: transparent;
}

/*
 * Homepage at top: header bar is position:fixed (out of flow). Collapse the
 * header shell so no empty black band sits above the full-bleed hero.
 */
body.chefx-mobile-fixes:not(.chefx-scrolled):not(.chefx-menu-open):not(.chefx-menu-closing)
	.elementor-location-header {
	height: 0;
	min-height: 0;
	overflow: visible;
}

/* Fixed bar (078714f) is out of flow when pinned; collapse header shell */
body.chefx-mobile-fixes.chefx-scrolled .elementor-location-header {
	height: 0;
	min-height: 0;
}

/* Homepage: hide overlap spacer once pinned bar reserves #page padding */
body.chefx-mobile-fixes.chefx-scrolled .elementor-67 .elementor-element-c220800 {
	display: none !important;
	margin: 0 !important;
	--margin-top: 0px !important;
	min-height: 0 !important;
	--min-height: 0px !important;
	height: 0 !important;
	padding: 0 !important;
}

body.chefx-mobile-fixes.chefx-scrolled .elementor-67 .elementor-element-b72bff8 {
	margin-top: 0 !important;
	--margin-top: 0px !important;
}

/* Top of page: transparent row in flow (Elementor #02010100) */
body.chefx-mobile-fixes .elementor-87.elementor-location-header .elementor-element.elementor-element-078714f,
body.chefx-mobile-fixes .elementor-87.elementor-location-header .elementor-element.elementor-element-078714f:not(.elementor-motion-effects-element-type-background),
body.chefx-mobile-fixes .elementor-87.elementor-location-header .elementor-element.elementor-element-078714f > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	position: relative;
	z-index: 1001;
	background-color: transparent !important;
	box-shadow: none;
	border-bottom: 0;
	isolation: isolate;
}

body.chefx-mobile-fixes .elementor-87.elementor-location-header .elementor-element.elementor-element-078714f::before {
	content: none;
}

/* Scrolled: pinned dark brand bar */
body.chefx-mobile-fixes.chefx-scrolled .elementor-87.elementor-location-header .elementor-element.elementor-element-078714f,
body.chefx-mobile-fixes.chefx-scrolled .elementor-87.elementor-location-header .elementor-element.elementor-element-078714f:not(.elementor-motion-effects-element-type-background),
body.chefx-mobile-fixes.chefx-scrolled .elementor-87.elementor-location-header .elementor-element.elementor-element-078714f > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	max-width: 100vw;
	margin: 0 !important;
	--margin-top: 0px !important;
	background-color: var(--chefx-header-bar-bg) !important;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.45);
	border-bottom: 1px solid var(--chefx-header-bar-border);
}

/* Full-bleed backdrop behind boxed inner — covers logo / CTA / hamburger edge-to-edge */
body.chefx-mobile-fixes.chefx-scrolled .elementor-87.elementor-location-header .elementor-element.elementor-element-078714f::before {
	content: "";
	position: absolute;
	inset: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	max-width: 100vw;
	background-color: inherit;
	z-index: -1;
	pointer-events: none;
}

body.admin-bar.chefx-mobile-fixes.chefx-scrolled .elementor-87.elementor-location-header .elementor-element.elementor-element-078714f,
body.admin-bar.chefx-mobile-fixes.chefx-scrolled .elementor-87.elementor-location-header .elementor-element.elementor-element-078714f:not(.elementor-motion-effects-element-type-background) {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar.chefx-mobile-fixes.chefx-scrolled .elementor-87.elementor-location-header .elementor-element.elementor-element-078714f,
	body.admin-bar.chefx-mobile-fixes.chefx-scrolled .elementor-87.elementor-location-header .elementor-element.elementor-element-078714f:not(.elementor-motion-effects-element-type-background) {
		top: 46px;
	}
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-078714f > .e-con-inner {
	position: relative;
	z-index: 1;
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 0.35rem;
	padding-block: clamp(0.4rem, 1vw, 0.75rem);
	padding-inline: clamp(0.65rem, 3vw, 1.25rem);
	background-color: inherit;
}

/* Nav row child containers: inherit solid bar (Elementor defaults are transparent) */
body.chefx-mobile-fixes .elementor-location-header .elementor-element-078714f .elementor-element-3297390,
body.chefx-mobile-fixes .elementor-location-header .elementor-element-078714f .elementor-element-b789d2a,
body.chefx-mobile-fixes .elementor-location-header .elementor-element-078714f .elementor-element-a77e55d,
body.chefx-mobile-fixes .elementor-location-header .elementor-element-078714f .elementor-element-2a92055 {
	background-color: transparent;
}

/* Logo left; Order Now + nav/hamburger grouped on the right */
body.chefx-mobile-fixes .elementor-location-header .elementor-element-3297390 {
	order: 1;
	width: auto !important;
	max-width: min(45vw, 13.5rem);
	flex: 0 1 auto;
	min-width: 0;
	align-self: center;
	align-items: center !important;
	justify-content: flex-start !important;
}

/* Header bar logo — compact at all widths (hero overlay uses .chefx-hero-overlay__logo only) */
body.chefx-mobile-fixes .elementor-location-header .elementor-element-d7d521c {
	text-align: left;
	margin: 0 !important;
	align-self: center;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-d7d521c img {
	display: block;
	margin-inline: 0;
	width: auto !important;
	height: auto !important;
	max-width: min(45vw, 13.5rem) !important;
	max-height: clamp(3.35rem, 12.5vw, 5rem) !important;
	object-fit: contain;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-b789d2a {
	order: 2;
	display: flex !important;
	width: auto !important;
	max-width: none !important;
	--width: auto !important;
	flex: 0 0 auto;
	flex-shrink: 0;
	min-width: 0;
	margin-left: auto;
	margin-right: 0;
	align-items: center !important;
	justify-content: flex-end !important;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-a77e55d {
	display: flex !important;
	width: auto !important;
	grid-template-columns: unset !important;
	justify-items: unset !important;
	align-items: center !important;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-2a92055 {
	order: 3;
	width: auto !important;
	max-width: none !important;
	--width: auto !important;
	flex: 0 0 auto;
	flex-shrink: 0;
	min-width: 0;
	margin-left: 0.35rem;
	align-items: center !important;
	justify-content: flex-end !important;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-8ec1515 {
	display: block !important;
	padding: 0 !important;
	margin: 0 !important;
	width: auto;
	max-width: none;
	flex-shrink: 0;
	align-self: center;
}

/* Elementor Pro sticky on Order Now fights the fixed bar — keep CTA in document flow */
body.chefx-mobile-fixes .elementor-location-header .elementor-element-8ec1515,
body.chefx-mobile-fixes .elementor-location-header .elementor-element-8ec1515.elementor-sticky,
body.chefx-mobile-fixes .elementor-location-header .elementor-element-8ec1515.elementor-sticky--active,
body.chefx-mobile-fixes .elementor-location-header .elementor-element-8ec1515.elementor-sticky--effects {
	position: static !important;
	inset: auto !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	bottom: auto !important;
	width: auto !important;
	max-width: none !important;
	transform: none !important;
	opacity: 1 !important;
	visibility: visible !important;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-8ec1515 + .elementor-sticky__spacer,
body.chefx-mobile-fixes .elementor-location-header .elementor-sticky__spacer {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Hamburger + fullscreen overlay at all viewport widths (Elementor shows inline nav on desktop by default) */
body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 {
	width: auto;
	max-width: none;
	--n-menu-toggle-icon-color: var(--chefx-header-icon-color);
	--n-menu-toggle-icon-size: calc(
		var(--chefx-header-order-btn-height) * var(--chefx-header-hamburger-icon-ratio)
	);
	--n-menu-wrapper-display: none;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 > .e-n-menu {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-end;
	gap: 0;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-toggle {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	min-height: var(--chefx-header-order-btn-height) !important;
	min-width: var(--chefx-header-order-btn-height) !important;
	height: var(--chefx-header-order-btn-height) !important;
	width: var(--chefx-header-order-btn-height) !important;
	padding: 0 !important;
	color: var(--chefx-header-icon-color);
	background: transparent;
	border: 0;
	position: relative;
	z-index: 9999;
	flex-shrink: 0;
	transition: background-color 0.3s cubic-bezier(0.77, 0, 0.175, 1),
		transform 0.3s cubic-bezier(0.77, 0, 0.175, 1);
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-toggle span {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 100% !important;
	padding: 0 !important;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-toggle svg {
	width: calc(
		var(--chefx-header-order-btn-height) * var(--chefx-header-hamburger-icon-ratio)
	) !important;
	height: calc(
		var(--chefx-header-order-btn-height) * var(--chefx-header-hamburger-icon-ratio)
	) !important;
	max-width: none !important;
	max-height: none !important;
	fill: currentColor;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-toggle[aria-expanded="true"],
body.chefx-mobile-fixes.chefx-menu-open .elementor-location-header .elementor-element-7a3a117 .e-n-menu-toggle {
	background-color: #000000;
	border-radius: 50%;
	min-height: var(--chefx-header-order-btn-height) !important;
	min-width: var(--chefx-header-order-btn-height) !important;
	height: var(--chefx-header-order-btn-height) !important;
	width: var(--chefx-header-order-btn-height) !important;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-wrapper {
	display: none !important;
}

/*
 * Pin overlay from body class — chefx-menu-open keeps layout (Order Now, header chrome).
 * aria-expanded fallback covers the brief gap before JS adds chefx-menu-open on open.
 */
body.chefx-mobile-fixes.chefx-menu-open .elementor-location-header .elementor-element-7a3a117 .e-n-menu-wrapper,
body.chefx-mobile-fixes.chefx-menu-closing .elementor-location-header .elementor-element-7a3a117 .e-n-menu-wrapper,
body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-toggle[aria-expanded="true"] + .e-n-menu-wrapper {
	--n-menu-wrapper-display: flex !important;
	--n-menu-dropdown-content-box-height: 100vh !important;
	display: flex !important;
	position: fixed !important;
	inset: 0 !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	max-height: none !important;
	z-index: 9998 !important;
	flex-direction: column !important;
	justify-content: flex-start !important;
	align-items: flex-end !important;
	margin: 0 !important;
	padding: calc(var(--chefx-menu-header-height, 4.5rem) + clamp(1rem, 3vh, 2rem))
		clamp(1.5rem, 6vw, 4rem) clamp(2rem, 6vh, 4rem)
		clamp(2rem, 8vw, 5rem);
	background-color: var(--chefx-menu-overlay-bg) !important;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	isolation: isolate;
	animation: none;
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-menu-closing)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper {
	opacity: 0;
	transform: translate3d(2.5%, 0, 0);
	animation: chefx-menu-overlay-in var(--chefx-menu-duration) var(--chefx-menu-ease) forwards;
	will-change: opacity, transform;
}

/* Retired full-overlay ::before watermark — inline footer logo only */
body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-menu-closing)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper::before {
	content: none !important;
	display: none !important;
}

/*
 * Watermark footer.
 * Narrow widths (default): in flow, right-aligned, a CONTROLLED distance below
 * the last nav item. (Was margin-top:auto, which shoved it to the very bottom
 * and left a huge vertical gap on tall phones.) Wider widths reposition it to
 * the side — see the min-width:768px block.
 */
body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .chefx-menu-overlay-footer {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: flex-end;
	justify-content: flex-end;
	gap: clamp(0.65rem, 2.5vw, 1.5rem);
	width: 100%;
	max-width: 36rem;
	margin-top: clamp(1rem, 4vh, 2.25rem);
	margin-left: auto;
	margin-right: 0;
	margin-bottom: 0;
	padding-top: 0;
	flex-shrink: 0;
	position: relative;
	z-index: 1;
	pointer-events: none;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .chefx-menu-watermark {
	flex: 0 0 auto;
	display: block;
	width: var(--chefx-menu-watermark-size);
	height: var(--chefx-menu-watermark-size);
	background-image: var(--chefx-menu-bg-logo, none);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	filter: brightness(1.4);
	opacity: 0.45;
	pointer-events: none;
}

body.chefx-mobile-fixes.chefx-menu-open
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.chefx-menu-overlay-footer
	.chefx-menu-watermark {
	opacity: 0;
	transform: scale(1.06);
	animation: chefx-menu-watermark-in var(--chefx-menu-duration) var(--chefx-menu-ease) forwards;
	animation-delay: calc(var(--chefx-menu-stagger-base) + 0.04s);
	will-change: opacity, transform;
}

body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-menu-closing)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.chefx-menu-overlay-order {
	opacity: 0;
	transform: translate3d(1.25rem, 0, 0);
	animation: chefx-menu-order-in var(--chefx-menu-duration) var(--chefx-menu-ease) forwards;
	animation-delay: calc(var(--chefx-menu-stagger-base) + 0.04s);
	will-change: opacity, transform;
}

/* Phone: compact nav text */
@media (max-width: 767px) {
	body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-heading {
		gap: clamp(0.35rem, 1.5vh, 0.65rem);
	}

	body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-title {
		padding: 0.05rem 0 !important;
	}

	body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-title-text {
		font-size: clamp(1.35rem, 6.5vw, 2.25rem);
		line-height: 1.08;
		letter-spacing: 0.015em;
	}
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-heading {
	position: relative;
	z-index: 1;
	flex-direction: column;
	align-items: flex-end;
	justify-content: flex-start;
	gap: clamp(0.65rem, 2.5vw, 1.25rem);
	width: 100%;
	max-width: 36rem;
	margin: 0 0 0 auto;
	padding: 0;
	text-align: right;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-item {
	width: 100%;
}

body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-menu-closing)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item {
	opacity: 0;
	transform: translate3d(1.25rem, 0, 0);
	animation: chefx-menu-item-in var(--chefx-menu-duration) var(--chefx-menu-ease) forwards;
	will-change: opacity, transform;
}

body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-menu-closing)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-child(1) {
	animation-delay: calc(var(--chefx-menu-stagger-base) + var(--chefx-menu-stagger) * 0);
}

body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-menu-closing)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-child(2) {
	animation-delay: calc(var(--chefx-menu-stagger-base) + var(--chefx-menu-stagger) * 1);
}

body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-menu-closing)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-child(3) {
	animation-delay: calc(var(--chefx-menu-stagger-base) + var(--chefx-menu-stagger) * 2);
}

body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-menu-closing)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-child(4) {
	animation-delay: calc(var(--chefx-menu-stagger-base) + var(--chefx-menu-stagger) * 3);
}

body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-menu-closing)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-child(5) {
	animation-delay: calc(var(--chefx-menu-stagger-base) + var(--chefx-menu-stagger) * 4);
}

body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-menu-closing)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-child(6) {
	animation-delay: calc(var(--chefx-menu-stagger-base) + var(--chefx-menu-stagger) * 5);
}

body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-menu-closing)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-child(7) {
	animation-delay: calc(var(--chefx-menu-stagger-base) + var(--chefx-menu-stagger) * 6);
}

body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-menu-closing)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-child(8) {
	animation-delay: calc(var(--chefx-menu-stagger-base) + var(--chefx-menu-stagger) * 7);
}

/*
 * Close sequence (JS keeps chefx-menu-open until the timer ends):
 *   1. nav links slide+fade out in REVERSE order (bottom link first → top last)
 *   2. the whole overlay (bg + footer + Order Now + watermark) fades out
 *
 * CRITICAL: never set opacity/transform with !important here. Inline and
 * !important author declarations outrank @keyframes in the cascade, so doing
 * so freezes the animation and the overlay just blinks out when classes drop.
 */
body.chefx-mobile-fixes.chefx-menu-closing
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper {
	pointer-events: none !important;
	animation: chefx-menu-overlay-out var(--chefx-menu-close-duration) var(--chefx-menu-ease) both !important;
	animation-delay: var(--chefx-menu-close-overlay-delay, 0.18s) !important;
	will-change: opacity, transform;
}

/* Footer chrome rides the overlay fade (parent opacity), no own exit animation */
body.chefx-mobile-fixes.chefx-menu-closing
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.chefx-menu-overlay-order,
body.chefx-mobile-fixes.chefx-menu-closing
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.chefx-menu-watermark,
body.chefx-mobile-fixes.chefx-menu-closing
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.chefx-menu-overlay-footer {
	animation: none !important;
	opacity: 1;
	transform: none;
}

/* Nav links exit first, reverse-staggered via nth-last-child (count-agnostic) */
body.chefx-mobile-fixes.chefx-menu-closing
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item {
	animation: chefx-menu-item-out var(--chefx-menu-item-out-duration, 0.3s) var(--chefx-menu-ease) both;
	will-change: opacity, transform;
}

body.chefx-mobile-fixes.chefx-menu-closing
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-last-child(1) {
	animation-delay: calc(var(--chefx-menu-close-stagger) * 0);
}

body.chefx-mobile-fixes.chefx-menu-closing
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-last-child(2) {
	animation-delay: calc(var(--chefx-menu-close-stagger) * 1);
}

body.chefx-mobile-fixes.chefx-menu-closing
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-last-child(3) {
	animation-delay: calc(var(--chefx-menu-close-stagger) * 2);
}

body.chefx-mobile-fixes.chefx-menu-closing
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-last-child(4) {
	animation-delay: calc(var(--chefx-menu-close-stagger) * 3);
}

body.chefx-mobile-fixes.chefx-menu-closing
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-last-child(5) {
	animation-delay: calc(var(--chefx-menu-close-stagger) * 4);
}

body.chefx-mobile-fixes.chefx-menu-closing
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-last-child(6) {
	animation-delay: calc(var(--chefx-menu-close-stagger) * 5);
}

body.chefx-mobile-fixes.chefx-menu-closing
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-last-child(7) {
	animation-delay: calc(var(--chefx-menu-close-stagger) * 6);
}

body.chefx-mobile-fixes.chefx-menu-closing
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper
	.e-n-menu-item:nth-last-child(8) {
	animation-delay: calc(var(--chefx-menu-close-stagger) * 7);
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-title {
	width: 100%;
	background: transparent !important;
	border: 0 !important;
	padding: 0.15rem 0 !important;
	text-align: right;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-title-container {
	display: block;
	text-align: right;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-title-text {
	font-family: var(--e-global-typography-primary-font-family, "Montserrat", sans-serif);
	font-size: clamp(1.75rem, 7vw, 3.25rem);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--chefx-header-icon-color);
	transition: color 0.25s ease;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-title:hover .e-n-menu-title-text,
body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-title.e-current .e-n-menu-title-text {
	color: var(--e-global-color-bf40bb4, #d1a460);
}

body.chefx-mobile-fixes.chefx-menu-open,
body.chefx-mobile-fixes.chefx-menu-closing {
	overflow: hidden;
}

body.chefx-mobile-fixes.chefx-menu-open .elementor-location-header,
body.chefx-mobile-fixes.chefx-menu-closing .elementor-location-header {
	z-index: 10000;
	height: auto;
	min-height: 0;
	overflow: visible;
}

/* Open menu: header row on dark canvas (hamburger/close top-right; header logo hidden) */
body.chefx-mobile-fixes.chefx-menu-open .elementor-87.elementor-location-header .elementor-element-078714f,
body.chefx-mobile-fixes.chefx-menu-open .elementor-87.elementor-location-header .elementor-element-078714f:not(.elementor-motion-effects-element-type-background),
body.chefx-mobile-fixes.chefx-menu-open .elementor-87.elementor-location-header .elementor-element-078714f > .elementor-motion-effects-container > .elementor-motion-effects-layer,
body.chefx-mobile-fixes.chefx-menu-closing .elementor-87.elementor-location-header .elementor-element-078714f,
body.chefx-mobile-fixes.chefx-menu-closing .elementor-87.elementor-location-header .elementor-element-078714f:not(.elementor-motion-effects-element-type-background),
body.chefx-mobile-fixes.chefx-menu-closing .elementor-87.elementor-location-header .elementor-element-078714f > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	max-width: 100vw;
	margin: 0 !important;
	--margin-top: 0px !important;
	background-color: transparent !important;
	box-shadow: none;
	border-bottom: 0;
	z-index: 10000;
}

body.chefx-mobile-fixes.chefx-menu-open .elementor-87.elementor-location-header .elementor-element-078714f::before,
body.chefx-mobile-fixes.chefx-menu-closing .elementor-87.elementor-location-header .elementor-element-078714f::before {
	content: none;
}

/* Scrolled + open: keep one fullscreen dark canvas (no separate pinned bar) */
body.chefx-mobile-fixes.chefx-scrolled.chefx-menu-open .elementor-87.elementor-location-header .elementor-element-078714f,
body.chefx-mobile-fixes.chefx-scrolled.chefx-menu-open .elementor-87.elementor-location-header .elementor-element-078714f:not(.elementor-motion-effects-element-type-background),
body.chefx-mobile-fixes.chefx-scrolled.chefx-menu-open .elementor-87.elementor-location-header .elementor-element-078714f > .elementor-motion-effects-container > .elementor-motion-effects-layer,
body.chefx-mobile-fixes.chefx-scrolled.chefx-menu-closing .elementor-87.elementor-location-header .elementor-element-078714f,
body.chefx-mobile-fixes.chefx-scrolled.chefx-menu-closing .elementor-87.elementor-location-header .elementor-element-078714f:not(.elementor-motion-effects-element-type-background),
body.chefx-mobile-fixes.chefx-scrolled.chefx-menu-closing .elementor-87.elementor-location-header .elementor-element-078714f > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-color: transparent !important;
	box-shadow: none;
	border-bottom: 0;
}

body.chefx-mobile-fixes.chefx-scrolled.chefx-menu-open .elementor-87.elementor-location-header .elementor-element-078714f::before,
body.chefx-mobile-fixes.chefx-scrolled.chefx-menu-closing .elementor-87.elementor-location-header .elementor-element-078714f::before {
	content: none;
}

body.admin-bar.chefx-mobile-fixes.chefx-menu-open .elementor-87.elementor-location-header .elementor-element-078714f,
body.admin-bar.chefx-mobile-fixes.chefx-menu-open .elementor-87.elementor-location-header .elementor-element-078714f:not(.elementor-motion-effects-element-type-background),
body.admin-bar.chefx-mobile-fixes.chefx-menu-closing .elementor-87.elementor-location-header .elementor-element-078714f,
body.admin-bar.chefx-mobile-fixes.chefx-menu-closing .elementor-87.elementor-location-header .elementor-element-078714f:not(.elementor-motion-effects-element-type-background) {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar.chefx-mobile-fixes.chefx-menu-open .elementor-87.elementor-location-header .elementor-element-078714f,
	body.admin-bar.chefx-mobile-fixes.chefx-menu-open .elementor-87.elementor-location-header .elementor-element-078714f:not(.elementor-motion-effects-element-type-background),
	body.admin-bar.chefx-mobile-fixes.chefx-menu-closing .elementor-87.elementor-location-header .elementor-element-078714f,
	body.admin-bar.chefx-mobile-fixes.chefx-menu-closing .elementor-87.elementor-location-header .elementor-element-078714f:not(.elementor-motion-effects-element-type-background) {
		top: 46px;
	}
}

/*
 * Keep the page behind the (position:fixed, full-screen) overlay perfectly
 * static between closed<->open. Opening the menu switches the header bar
 * (078714f) from its resting flow position to position:fixed; the flow space it
 * occupied then collapses and would yank .site-content up. We compensate with a
 * padding-top equal to the header's ACTUAL resting in-flow height, measured live
 * by chefxcafe-order-btn.js (syncMenuFlowPad) into --chefx-menu-flow-pad:
 *   - sub-page at top (header fixed overlay): bar out of flow -> 0
 *   - home (transparent fixed header) / scrolled (pinned fixed bar): bar is
 *     already out of flow -> measured 0 -> no padding, no shift
 * This replaces the old hardcoded --chefx-menu-header-height (86px) compensation
 * block above, which never matched the relative header's real height. The
 * :not(.chefx-scrolled) guard keeps the scrolled-state padding (applied equally
 * open and closed, so it never shifts) and the black-bar-on-scroll behaviour
 * untouched. The closed/resting padding-top stays 0 on every page.
 */
body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-scrolled) #page,
body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-scrolled) .hfeed.site,
body.chefx-mobile-fixes.chefx-menu-closing:not(.chefx-scrolled) #page,
body.chefx-mobile-fixes.chefx-menu-closing:not(.chefx-scrolled) .hfeed.site,
body.admin-bar.chefx-mobile-fixes.chefx-menu-open:not(.chefx-scrolled) #page,
body.admin-bar.chefx-mobile-fixes.chefx-menu-open:not(.chefx-scrolled) .hfeed.site,
body.admin-bar.chefx-mobile-fixes.chefx-menu-closing:not(.chefx-scrolled) #page,
body.admin-bar.chefx-mobile-fixes.chefx-menu-closing:not(.chefx-scrolled) .hfeed.site {
	padding-top: var(--chefx-menu-flow-pad, 0px) !important;
}

body.chefx-mobile-fixes.chefx-menu-open .elementor-location-header .elementor-element-078714f > .e-con-inner,
body.chefx-mobile-fixes.chefx-menu-closing .elementor-location-header .elementor-element-078714f > .e-con-inner {
	position: relative;
	z-index: 10001;
	pointer-events: none;
	justify-content: flex-end !important;
}

body.chefx-mobile-fixes.chefx-menu-open .elementor-location-header .elementor-element-3297390,
body.chefx-mobile-fixes.chefx-menu-open .elementor-location-header .elementor-element-d7d521c,
body.chefx-mobile-fixes.chefx-menu-closing .elementor-location-header .elementor-element-3297390,
body.chefx-mobile-fixes.chefx-menu-closing .elementor-location-header .elementor-element-d7d521c {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

body.chefx-mobile-fixes.chefx-menu-open .elementor-location-header .elementor-element-2a92055,
body.chefx-mobile-fixes.chefx-menu-open .elementor-location-header .elementor-element-7a3a117,
body.chefx-mobile-fixes.chefx-menu-closing .elementor-location-header .elementor-element-2a92055,
body.chefx-mobile-fixes.chefx-menu-closing .elementor-location-header .elementor-element-7a3a117 {
	position: relative;
	z-index: 10001;
	pointer-events: none;
}

body.chefx-mobile-fixes.chefx-menu-open:not(.chefx-menu-closing)
	.elementor-location-header
	.elementor-element-7a3a117
	.e-n-menu-wrapper {
	pointer-events: auto;
}

body.chefx-mobile-fixes.chefx-menu-open .elementor-location-header .elementor-element-7a3a117 .e-n-menu-toggle,
body.chefx-mobile-fixes.chefx-menu-closing .elementor-location-header .elementor-element-7a3a117 .e-n-menu-toggle {
	position: relative;
	z-index: 10002;
	pointer-events: auto;
}

@media (max-width: 1220px) {
	body.chefx-mobile-fixes .elementor-location-header .elementor-element-078714f {
		margin-top: 0 !important;
		--margin-top: 0px !important;
	}
}

/* Open menu: close top-right — header logo hidden; Order Now lives in overlay (moved via JS) */
body.chefx-mobile-fixes.chefx-menu-open .elementor-location-header .elementor-element-2a92055 {
	margin-left: 0;
	margin-right: 0;
}

/*
 * Order Now in overlay — pinned top-left, vertically centered on the same row
 * as the close X (toggle). The wrapper is position:fixed inset:0, so this
 * absolute child is measured from the viewport top; the top calc centers it
 * within the header bar height to match the toggle's vertical center.
 */
body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-wrapper .chefx-menu-overlay-order {
	display: flex !important;
	position: absolute;
	top: calc(
		(var(--chefx-menu-header-height, 4.5rem) - var(--chefx-header-order-btn-height)) / 2
	);
	/*
	 * Left edge matches the closed-header brand logo, not the viewport edge.
	 * chefxcafe-order-btn.js measures the live logo (or header content edge)
	 * and sets --chefx-menu-order-left; the clamp is the pre-JS fallback.
	 */
	left: var(--chefx-menu-order-left, clamp(0.65rem, 3vw, 1.25rem));
	right: auto;
	bottom: auto;
	width: auto;
	height: auto;
	max-width: none;
	margin: 0 !important;
	padding: 0 !important;
	flex: 0 0 auto;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	align-self: flex-start;
	z-index: 2;
	pointer-events: auto;
}

/* Admin bar pushes the fixed header bar (and close X) down; match the offset */
body.admin-bar.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-wrapper .chefx-menu-overlay-order {
	top: calc(
		32px + (var(--chefx-menu-header-height, 4.5rem) - var(--chefx-header-order-btn-height)) / 2
	);
}

@media (max-width: 782px) {
	body.admin-bar.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-wrapper .chefx-menu-overlay-order {
		top: calc(
			46px + (var(--chefx-menu-header-height, 4.5rem) - var(--chefx-header-order-btn-height)) / 2
		);
	}
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-wrapper .chefx-menu-overlay-order .elementor-element-a77e55d {
	display: flex !important;
	width: auto;
	margin: 0 !important;
	padding: 0 !important;
	grid-template-columns: unset !important;
	justify-content: flex-start !important;
	align-items: flex-start !important;
}

body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-wrapper .chefx-menu-overlay-order .elementor-element-8ec1515 {
	width: auto;
	max-width: none;
	margin: 0 !important;
	padding: 0 !important;
	text-align: left;
}

/* Desktop/tablet open overlay: Elementor keeps horizontal menu vars above 767px (center/flex-start) */
@media (min-width: 501px) and (max-width: 800px) {
	body.chefx-mobile-fixes {
		--chefx-menu-watermark-size: min(38vw, 18rem);
	}
}

@media (min-width: 768px) {
	body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 {
		--n-menu-heading-justify-content: flex-end;
		--n-menu-title-justify-content: flex-end;
	}

	body.chefx-mobile-fixes.chefx-menu-open
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper {
		padding-top: calc(var(--chefx-menu-header-height, 4.5rem) + clamp(1.5rem, 4vh, 2.5rem));
		padding-right: clamp(1.25rem, 3vw, 2rem);
		padding-bottom: clamp(2rem, 6vh, 4rem);
		padding-left: clamp(2rem, 10vw, 6rem);
	}

	body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-heading {
		display: flex !important;
		flex-direction: column !important;
		align-items: flex-end !important;
		justify-content: flex-start !important;
		width: auto;
		max-width: min(36rem, calc(100vw - 4rem));
		margin: 0;
		padding: 0;
		list-style: none;
		align-self: flex-end;
	}

	body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-item {
		display: flex !important;
		justify-content: flex-end !important;
		width: 100%;
	}

	body.chefx-mobile-fixes
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-item:not(:last-of-type)
		.e-n-menu-title::after {
		content: none !important;
	}

	body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-title {
		display: flex !important;
		justify-content: flex-end !important;
		align-items: flex-end !important;
		width: 100%;
	}

	body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-title-container {
		display: block !important;
		width: auto;
		max-width: 100%;
		margin-left: auto;
		text-align: right;
	}

	body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .e-n-menu-title-text {
		display: inline !important;
		text-align: right;
	}

	body.chefx-mobile-fixes
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper
		.chefx-menu-overlay-order
		.elementor-element-a77e55d {
		width: auto !important;
	}

	/*
	 * Enough horizontal room here: pull the watermark out of flow and pin it to
	 * the bottom-left, beside/below the right-aligned nav block (instead of
	 * sitting far down the bottom-centre with a big gap). z-index:0 keeps the
	 * faint mark behind the nav text if they ever overlap on short viewports.
	 */
	body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117 .chefx-menu-overlay-footer {
		position: absolute;
		left: clamp(1.5rem, 5vw, 4rem);
		bottom: clamp(1.5rem, 5vh, 3rem);
		right: auto;
		top: auto;
		width: auto;
		max-width: none;
		margin: 0;
		padding-top: 0;
		justify-content: flex-start;
		align-items: flex-end;
		align-self: auto;
		z-index: 0;
	}
}

@media (min-width: 801px) {
	body.chefx-mobile-fixes {
		--chefx-menu-watermark-size: min(42vw, 28rem);
	}
}

@media (min-width: 721px) {
	/* Logo + Order Now + hamburger share one header row — match vertical centering */
	body.chefx-mobile-fixes .elementor-location-header .elementor-element-3297390,
	body.chefx-mobile-fixes .elementor-location-header .elementor-element-d7d521c,
	body.chefx-mobile-fixes .elementor-location-header .elementor-element-7a3a117,
	body.chefx-mobile-fixes .elementor-location-header .elementor-element-2a92055,
	body.chefx-mobile-fixes .elementor-location-header .elementor-element-b789d2a,
	body.chefx-mobile-fixes .elementor-location-header .elementor-element-8ec1515 {
		align-self: center;
	}
}

/*
 * ≤767 + menu closed: Order Now is hidden — pin hamburger to the far right.
 * (Was max-width: 720px, which left 721–767px with margin-left: 0.35rem beside the logo.)
 */
@media (max-width: 767px) {
	body.chefx-mobile-fixes:not(.chefx-menu-open):not(.chefx-menu-closing) .elementor-location-header .elementor-element-2a92055 {
		margin-left: auto !important;
		margin-right: 0 !important;
	}
}

@keyframes chefx-menu-overlay-in {
	from {
		opacity: 0;
		transform: translate3d(2.5%, 0, 0);
	}

	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes chefx-menu-fade-out {
	from {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}

@keyframes chefx-menu-overlay-out {
	from {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}

	to {
		opacity: 0;
		transform: translate3d(1.5%, 0, 0);
	}
}

@keyframes chefx-menu-item-out {
	from {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}

	to {
		opacity: 0;
		transform: translate3d(0.75rem, 0, 0);
	}
}

@keyframes chefx-menu-item-in {
	from {
		opacity: 0;
		transform: translate3d(1.25rem, 0, 0);
	}

	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes chefx-menu-order-in {
	from {
		opacity: 0;
		transform: translate3d(1.25rem, 0, 0);
	}

	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes chefx-menu-watermark-in {
	from {
		opacity: 0;
		transform: scale(1.06);
	}

	to {
		opacity: 0.45;
		transform: scale(1);
	}
}

@media (prefers-reduced-motion: reduce) {
	body.chefx-mobile-fixes.chefx-menu-open
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper,
	body.chefx-mobile-fixes.chefx-menu-closing
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper,
	body.chefx-mobile-fixes.chefx-menu-open
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper::before,
	body.chefx-mobile-fixes.chefx-menu-closing
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper::before,
	body.chefx-mobile-fixes.chefx-menu-open
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper
		.chefx-menu-watermark,
	body.chefx-mobile-fixes.chefx-menu-closing
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper
		.chefx-menu-watermark,
	body.chefx-mobile-fixes.chefx-menu-open
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper
		.e-n-menu-item,
	body.chefx-mobile-fixes.chefx-menu-closing
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper
		.e-n-menu-item,
	body.chefx-mobile-fixes.chefx-menu-open
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper
		.chefx-menu-overlay-order,
	body.chefx-mobile-fixes.chefx-menu-closing
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper
		.chefx-menu-overlay-order {
		animation: none !important;
		transition: none !important;
	}

	body.chefx-mobile-fixes.chefx-menu-open
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper,
	body.chefx-mobile-fixes.chefx-menu-closing
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper {
		opacity: 1 !important;
		transform: none !important;
	}

	body.chefx-mobile-fixes.chefx-menu-open
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper::before,
	body.chefx-mobile-fixes.chefx-menu-closing
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper::before,
	body.chefx-mobile-fixes.chefx-menu-open
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper
		.chefx-menu-watermark,
	body.chefx-mobile-fixes.chefx-menu-closing
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper
		.chefx-menu-watermark {
		opacity: 0.45 !important;
		transform: none !important;
	}

	body.chefx-mobile-fixes.chefx-menu-open
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper
		.e-n-menu-item,
	body.chefx-mobile-fixes.chefx-menu-closing
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper
		.e-n-menu-item,
	body.chefx-mobile-fixes.chefx-menu-open
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper
		.chefx-menu-overlay-order,
	body.chefx-mobile-fixes.chefx-menu-closing
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper
		.chefx-menu-overlay-order {
		opacity: 1 !important;
		transform: none !important;
	}

	body.chefx-mobile-fixes.chefx-menu-closing
		.elementor-location-header
		.elementor-element-7a3a117
		.e-n-menu-wrapper {
		animation-duration: 0.01ms !important;
	}
}

/* Order Now mobile sizing/alignment: chefxcafe-order-btn.css */

/* --- Typography & media: reduce clipping / horizontal scroll --- */
@media (max-width: 767px) {
	body.chefx-mobile-fixes .elementor-67 .elementor-heading-title {
		line-height: 1.25;
		overflow-wrap: anywhere;
		hyphens: auto;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-widget-text-editor {
		font-size: clamp(1rem, 4vw, 1.125rem);
		line-height: 1.5;
	}

	body.chefx-mobile-fixes .elementor-67 img,
	body.chefx-mobile-fixes .elementor-67 .elementor-widget-image img {
		max-width: 100%;
		height: auto;
	}

	body.chefx-mobile-fixes .elementor-67 .e-gallery-container,
	body.chefx-mobile-fixes .elementor-67 .elementor-image-carousel {
		max-width: 100%;
	}
}

/* --- Tablet: hero row spacing between Astra mobile (767) and desktop --- */
@media (min-width: 768px) and (max-width: 921px) {
	body.chefx-mobile-fixes .elementor-67 .elementor-element-01e2c82 {
		padding-top: 2rem;
		padding-bottom: 2rem;
	}
}

/* --- Homepage (67): gallery ↔ Experience Chef X in Motion spacing (all widths) --- */
/*
 * Gap sources: e-gallery JS inline height on eecb145; ba0d5e2 padding (100/50px);
 * 16 off-screen HTML widgets still consuming flex row-gap in ba0d5e2; ba0d5e2 padding-bottom
 * before 3e38a8a video grids.
 */
body.chefx-mobile-fixes .elementor-67 .elementor-element-446ac99,
body.chefx-mobile-fixes .elementor-67 .elementor-element-eecb145 {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

body.chefx-mobile-fixes .elementor-67 .elementor-element-eecb145 .elementor-gallery__container {
	min-height: 0 !important;
	margin-bottom: 0 !important;
}

body.chefx-mobile-fixes .elementor-67 .elementor-element-ba0d5e2 .elementor-widget-html {
	display: none !important;
}

body.chefx-mobile-fixes .elementor-67 .elementor-element-ba0d5e2 {
	--padding-top: 2.5rem;
	--padding-bottom: 1.25rem;
	padding-top: 2.5rem !important;
	padding-bottom: 1.25rem !important;
}

body.chefx-mobile-fixes .elementor-67 .elementor-element-ba0d5e2 > .e-con-inner {
	--widgets-spacing: 0px;
	--gap: 0px;
	gap: 0 !important;
}

body.chefx-mobile-fixes .elementor-67 .elementor-element-ba0d5e2 .elementor-element-a9f799d {
	margin-top: 1.25rem !important;
}

body.chefx-mobile-fixes .elementor-67 .elementor-element-3e38a8a {
	--padding-top: 0px;
	--padding-bottom: 2rem;
	padding-top: 0 !important;
	gap: 0 !important;
	--gap: 0px;
}

/* --- Homepage (67): image galleries & media grids on phone --- */
@media (max-width: 767px) {
	/*
	 * "Our Gallery" — Pro Gallery widget eecb145 (columns_mobile: 1 in Elementor).
	 * e-gallery JS uses absolute positioning; force a 4-column grid on phone (8 items = 2 rows).
	 */
	body.chefx-mobile-fixes .elementor-67 .elementor-element-eecb145 .elementor-gallery__container {
		--columns: 4;
		display: grid !important;
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 0.4rem !important;
		padding-bottom: 0 !important;
		height: auto !important;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-eecb145 .elementor-gallery__container .e-gallery-item {
		position: relative !important;
		top: auto !important;
		left: auto !important;
		width: auto !important;
		transform: none !important;
		opacity: 1 !important;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-eecb145 .e-gallery-image {
		padding-bottom: 100% !important;
	}

	/*
	 * "Our Space" — Image Carousel 890605f (slides_to_show: 3).
	 * One slide visible on phone; cap portrait height.
	 */
	body.chefx-mobile-fixes .elementor-67 .elementor-element-890605f {
		--e-image-carousel-slides-to-show: 1;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-890605f .swiper-slide-image {
		max-height: min(52vh, 320px);
		width: 100%;
		object-fit: cover;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-890605f .swiper-slide-inner {
		max-height: min(52vh, 320px);
		overflow: hidden;
	}

	/*
	 * "Experience Chef X in Motion" — mobile: 4-video vertical stack (scroll down).
	 * 1. 0151846 hash smash (a8e7227)  2. 483e299 Chef X box
	 * 3. 2999c39 steak egg  4. 14292dc chai cup
	 * Desktop/tablet (>767px): unchanged Elementor 3+6 grid.
	 */
	body.chefx-mobile-fixes .elementor-67 .elementor-element-3e38a8a {
		overflow-x: clip;
		display: flex !important;
		flex-direction: column;
		gap: 1rem;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-ba0d5e2 {
		--padding-top: 1.25rem;
		padding-top: 1.25rem !important;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-64fca52 {
		--padding-top: 1.25rem;
		--padding-bottom: 1.25rem;
		padding-top: 1.25rem !important;
		padding-bottom: 1.25rem !important;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-a8e7227 {
		display: flex !important;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		overflow: visible;
		margin: 0 !important;
		padding: 0 !important;
		min-height: 0 !important;
		height: auto !important;
		--e-con-grid-template-columns: none !important;
		grid-template-columns: unset !important;
		gap: 0;
		width: 100%;
		max-width: 100%;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-a8e7227 > .elementor-element-9df9ed6,
	body.chefx-mobile-fixes .elementor-67 .elementor-element-a8e7227 > .elementor-element-6665d24 {
		display: none !important;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-745f6fd > .elementor-element-ce257c3,
	body.chefx-mobile-fixes .elementor-67 .elementor-element-745f6fd > .elementor-element-ca86379,
	body.chefx-mobile-fixes .elementor-67 .elementor-element-745f6fd > .elementor-element-8085053 {
		display: none !important;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-745f6fd {
		display: flex !important;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		overflow: visible;
		grid-template-columns: unset !important;
		--e-con-grid-template-columns: unset !important;
		width: 100% !important;
		max-width: 100%;
		gap: 1rem;
		margin: 0;
		padding: 0;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-a8e7227 > .elementor-element-0151846,
	body.chefx-mobile-fixes .elementor-67 .elementor-element-745f6fd > .elementor-element-483e299,
	body.chefx-mobile-fixes .elementor-67 .elementor-element-745f6fd > .elementor-element-2999c39,
	body.chefx-mobile-fixes .elementor-67 .elementor-element-745f6fd > .elementor-element-14292dc {
		flex: none;
		width: 100%;
		max-width: 100%;
		margin: 0 !important;
		box-sizing: border-box;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-a8e7227 .elementor-widget-video,
	body.chefx-mobile-fixes .elementor-67 .elementor-element-745f6fd .elementor-widget-video {
		min-width: 0;
		width: 100%;
		margin: 0 !important;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-a8e7227 .elementor-widget-video .elementor-wrapper,
	body.chefx-mobile-fixes .elementor-67 .elementor-element-745f6fd .elementor-widget-video .elementor-wrapper {
		position: static;
		overflow: visible;
		width: 100%;
		max-width: 100%;
		height: auto;
		min-height: 0;
		max-height: none;
		aspect-ratio: auto;
		padding-bottom: 0 !important;
		margin: 0 !important;
	}

	body.chefx-mobile-fixes .elementor-67 .elementor-element-a8e7227 .elementor-widget-video iframe,
	body.chefx-mobile-fixes .elementor-67 .elementor-element-a8e7227 .elementor-widget-video video,
	body.chefx-mobile-fixes .elementor-67 .elementor-element-745f6fd .elementor-widget-video iframe,
	body.chefx-mobile-fixes .elementor-67 .elementor-element-745f6fd .elementor-widget-video video {
		position: static;
		display: block !important;
		width: 100% !important;
		max-width: 100%;
		height: auto !important;
		object-fit: contain;
	}

	/*
	 * Scroll-triggered reveal — four visible mobile video widgets only.
	 * JS adds .chefx-video-reveal-ready then .chefx-video-in-view per item.
	 */
	body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-a8e7227 > .elementor-element-0151846:not(.chefx-video-in-view),
	body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-745f6fd > .elementor-element-483e299:not(.chefx-video-in-view),
	body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-745f6fd > .elementor-element-2999c39:not(.chefx-video-in-view),
	body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-745f6fd > .elementor-element-14292dc:not(.chefx-video-in-view) {
		opacity: 0;
		transform: translateY(2rem) scale(0.98);
		will-change: opacity, transform;
	}

	body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-a8e7227 > .elementor-element-0151846,
	body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-745f6fd > .elementor-element-483e299,
	body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-745f6fd > .elementor-element-2999c39,
	body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-745f6fd > .elementor-element-14292dc {
		transition:
			opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
			transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
	}

	body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-a8e7227 > .elementor-element-0151846.chefx-video-in-view,
	body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-745f6fd > .elementor-element-483e299.chefx-video-in-view,
	body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-745f6fd > .elementor-element-2999c39.chefx-video-in-view,
	body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-745f6fd > .elementor-element-14292dc.chefx-video-in-view {
		opacity: 1;
		transform: translateY(0) scale(1);
		will-change: auto;
	}

	@media (prefers-reduced-motion: reduce) {
		body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-a8e7227 > .elementor-element-0151846,
		body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-745f6fd > .elementor-element-483e299,
		body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-745f6fd > .elementor-element-2999c39,
		body.chefx-mobile-fixes.chefx-video-reveal-ready .elementor-67 .elementor-element-745f6fd > .elementor-element-14292dc {
			opacity: 1 !important;
			transform: none !important;
			transition: none !important;
			will-change: auto;
		}
	}

	/* "Our Story" hero pair — keep side-by-side but limit tall portraits */
	body.chefx-mobile-fixes .elementor-67 .elementor-element-2c145db .elementor-widget-image img {
		max-height: 200px;
		width: 100%;
		object-fit: cover;
	}
}

/*
 * --- Inner-page heroes: size + crop control ---
 *
 * Each inner page's hero is a two-container overlap:
 *   container 1 = black "spacer", pulled up (margin-top -300px) behind the
 *                 transparent in-flow header;
 *   container 2 = the background image, pulled up over the spacer.
 *
 * ROOT CAUSE of the "blown up & chopped" look (per feedback): the image
 * containers were ~90vh (desktop) / 100vh (mobile). `background-size: cover`
 * sizes the image to that very tall, narrow box, so on phones/tablets the
 * image is scaled up enormously and a big slice is cropped off the top/bottom
 * (and the sides on portrait sources). The amount varied per image ratio and
 * per device width — exactly the reported symptom.
 *
 * FIX (rebuilt): drive each hero's height from viewport WIDTH (per-page
 * --chefx-ih-h = clamp(360px, (100/AR)vw, 1040px)) so the box AR tracks the
 * image's natural AR and `cover` crops the SIDES rather than the top/bottom. It
 * "resizes with the window"; clamp() floors phones and caps ultra-wide. At
 * 1025px+ a desktop block adds min(vw, vh) + a gentler px cap (~900px) and
 * soft vh ceiling (~76–78vh) so wide screens stay taller than the old 58vh/720px
 * cap but still peek content below. `cover` is kept (no empty bars); plain
 * image-then-content (no over-image overlap).
 *
 * GAP-SAFE overlap math (holds for ANY height value, so no black spacer ever
 * shows below the image):
 *   hero   min-height = --chefx-ih-h
 *   hero   margin-top = -(--chefx-ih-h)            => hero_h == |margin|
 *   spacer min-height = --chefx-ih-h + 40px        => 40px black reveal on top,
 *                                                     spacer bottom == hero bottom
 * The spacer's upward pull is eased on tablet/phone (below) so the now-shorter
 * hero still fills from the top instead of hiding ~190px behind the header.
 *
 * Source image ratios (measured) + framing:
 *   Our Story 69 95eb30a  Shop2.jpg                   1.33  -> center
 *   Menu      70 824b1c1  X-Box-scaled.jpg            0.80  -> center
 *   Franchise 72 2f1e556  Eid-PIC-lassi-and-chai...   1.50  -> center
 *   News      73 5b063ee  uber-awards.jpg             0.75  -> center
 *   Contact   82 8915bb9  mango-lassi-1-scaled.jpg    1.50  -> center
 * Every subject is horizontally centered, so `center` keeps it in frame after
 * the (now small) crop. Spacer ids: 69 e774eb1, 70 837be7c, 72 8927260,
 * 73 82176f8, 82 16acabb.
 *
 * NOTE (local only): Contact's image URL is https on an http local site, so it
 * renders BLACK locally — an environment artifact, not a crop bug. Do not
 * "fix" framing to compensate for the black box.
 */

/*
 * Per-page hero height var, driven by viewport WIDTH so each hero box keeps an
 * aspect ratio close to its image's natural AR. When box AR <= image AR,
 * background-size:cover crops the SIDES and leaves the top/bottom intact — which
 * is exactly the "least top/bottom cropping" the user asked for. The hero
 * "resizes with the window"; clamp() floors small screens and caps ultra-wide so
 * it never gets absurd. Coefficient = 100/AR (the zero-crop width->height ratio):
 *
 *   Our Story 69 95eb30a  Shop2.jpg                 1600x1200  AR 1.333 -> 75vw
 *   Menu      70 824b1c1  X-Box-scaled.jpg          2048x2560  AR 0.80  -> 125vw (portrait)
 *   Franchise 72 2f1e556  Eid-PIC-lassi-and-chai..  2560x1707  AR 1.50  -> 67vw
 *   News      73 5b063ee  uber-awards.jpg           1200x1600  AR 0.75  -> 133vw (portrait)
 *   Contact   82 8915bb9  mango-lassi-1-scaled.jpg  2560x1707  AR 1.50  -> 67vw
 *
 * The var is set on the PAGE WRAPPER (.elementor-XX) so BOTH the hero image
 * container and its black spacer (siblings) inherit the same value — that keeps
 * the gap-proof identity locked (hero min-height = V, hero margin-top = -V =>
 * hero bottom == spacer bottom for any V; spacer min-height = V + 40 so the
 * shorter mobile hero still fills from the top).
 *
 * Portrait sources (Menu 0.80, News 0.75) fit beautifully on phone/tablet but
 * unavoidably crop top/bottom on WIDE desktops — a tall portrait image cannot
 * fill a wide, short box without losing top/bottom. The only real fix there is a
 * landscape source image (content/DB change, out of scope here).
 */
body.chefx-mobile-fixes .elementor-69 { --chefx-ih-h: clamp(360px, 75vw, 1040px); }
body.chefx-mobile-fixes .elementor-70 { --chefx-ih-h: clamp(360px, 125vw, 1040px); }
body.chefx-mobile-fixes .elementor-72 { --chefx-ih-h: clamp(360px, 67vw, 1040px); }
body.chefx-mobile-fixes .elementor-73 { --chefx-ih-h: clamp(360px, 133vw, 1040px); }
body.chefx-mobile-fixes .elementor-82 { --chefx-ih-h: clamp(360px, 67vw, 1040px); }

/*
 * Desktop (1025+): vw-based AR is primary; min(vw, vh) + soft vh cap (~76–78vh)
 * and 900px max keep heroes taller than the old 58vh/720px ceiling without
 * returning to full 1040px viewport dominance. Mobile/tablet (≤1024) unchanged.
 */
@media (min-width: 1025px) {
	body.chefx-mobile-fixes .elementor-69 { --chefx-ih-h: clamp(400px, min(75vw, 76vh), 900px); }
	body.chefx-mobile-fixes .elementor-70 { --chefx-ih-h: clamp(400px, min(125vw, 78vh), 900px); }
	body.chefx-mobile-fixes .elementor-72 { --chefx-ih-h: clamp(400px, min(67vw, 76vh), 900px); }
	body.chefx-mobile-fixes .elementor-73 { --chefx-ih-h: clamp(400px, min(133vw, 78vh), 900px); }
	body.chefx-mobile-fixes .elementor-82 { --chefx-ih-h: clamp(400px, min(67vw, 76vh), 900px); }
}

/* Base: cover + centered subject + apply the responsive box height/overlap. */
body.chefx-mobile-fixes .elementor-69 .elementor-element.elementor-element-95eb30a,
body.chefx-mobile-fixes .elementor-70 .elementor-element.elementor-element-824b1c1,
body.chefx-mobile-fixes .elementor-72 .elementor-element.elementor-element-2f1e556,
body.chefx-mobile-fixes .elementor-73 .elementor-element.elementor-element-5b063ee,
body.chefx-mobile-fixes .elementor-82 .elementor-element.elementor-element-8915bb9 {
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	background-attachment: scroll !important;
	--min-height: var(--chefx-ih-h) !important;
	min-height: var(--chefx-ih-h) !important;
	--margin-top: calc(-1 * var(--chefx-ih-h)) !important;
	margin-top: calc(-1 * var(--chefx-ih-h)) !important;
}

/*
 * Inner heroes: uniform slight scrim on all 5 pages at all widths.
 * Elementor post CSS sets per-page --overlay-opacity: 0.47–0.5; override with
 * one value so brightness matches everywhere (container + motion-FX layer).
 */
body.chefx-mobile-fixes .elementor-69 .elementor-element.elementor-element-95eb30a,
body.chefx-mobile-fixes .elementor-70 .elementor-element.elementor-element-824b1c1,
body.chefx-mobile-fixes .elementor-72 .elementor-element.elementor-element-2f1e556,
body.chefx-mobile-fixes .elementor-73 .elementor-element.elementor-element-5b063ee,
body.chefx-mobile-fixes .elementor-82 .elementor-element.elementor-element-8915bb9,
body.chefx-mobile-fixes .elementor-69 .elementor-element.elementor-element-95eb30a:not(.elementor-motion-effects-element-type-background),
body.chefx-mobile-fixes .elementor-69 .elementor-element.elementor-element-95eb30a > .elementor-motion-effects-container > .elementor-motion-effects-layer,
body.chefx-mobile-fixes .elementor-70 .elementor-element.elementor-element-824b1c1:not(.elementor-motion-effects-element-type-background),
body.chefx-mobile-fixes .elementor-70 .elementor-element.elementor-element-824b1c1 > .elementor-motion-effects-container > .elementor-motion-effects-layer,
body.chefx-mobile-fixes .elementor-72 .elementor-element.elementor-element-2f1e556:not(.elementor-motion-effects-element-type-background),
body.chefx-mobile-fixes .elementor-72 .elementor-element.elementor-element-2f1e556 > .elementor-motion-effects-container > .elementor-motion-effects-layer,
body.chefx-mobile-fixes .elementor-73 .elementor-element.elementor-element-5b063ee:not(.elementor-motion-effects-element-type-background),
body.chefx-mobile-fixes .elementor-73 .elementor-element.elementor-element-5b063ee > .elementor-motion-effects-container > .elementor-motion-effects-layer,
body.chefx-mobile-fixes .elementor-82 .elementor-element.elementor-element-8915bb9:not(.elementor-motion-effects-element-type-background),
body.chefx-mobile-fixes .elementor-82 .elementor-element.elementor-element-8915bb9 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	--overlay-opacity: 0.38 !important;
}

/*
 * Our Story hero (95eb30a): only inner page with motion_fx_opacity direction
 * "in-out" (Menu/Franchise/News/Contact use "out-in-out"). Elementor sets
 * inline opacity ~0.30–0.77 on the whole container at page top — stacks with
 * the 0.38 ::before scrim and reads darker on wide viewports where the hero is
 * shorter (76vh cap). Pin opacity to 1 (same pattern as homepage b72bff8).
 */
body.chefx-mobile-fixes .elementor-69 .elementor-element.elementor-element-95eb30a,
body.chefx-mobile-fixes .elementor-69 .elementor-element.elementor-element-95eb30a.elementor-motion-effects-element {
	opacity: 1 !important;
	filter: none !important;
}

/*
 * Spacers: same height as hero (no extra black reveal). At page top the header
 * bar is position:fixed (out of flow), so content starts at y=0 — no header pull.
 * Scrolled state pulls under the pinned bar only (see .chefx-scrolled rules).
 */
body.chefx-mobile-fixes:not(.home):not(.chefx-scrolled) .elementor-69 .elementor-element.elementor-element-e774eb1,
body.chefx-mobile-fixes:not(.home):not(.chefx-scrolled) .elementor-70 .elementor-element.elementor-element-837be7c,
body.chefx-mobile-fixes:not(.home):not(.chefx-scrolled) .elementor-72 .elementor-element.elementor-element-8927260,
body.chefx-mobile-fixes:not(.home):not(.chefx-scrolled) .elementor-73 .elementor-element.elementor-element-82176f8,
body.chefx-mobile-fixes:not(.home):not(.chefx-scrolled) .elementor-82 .elementor-element.elementor-element-16acabb {
	--min-height: var(--chefx-ih-h) !important;
	min-height: var(--chefx-ih-h) !important;
	--margin-top: 0px !important;
	margin-top: 0 !important;
}

/* Scrolled: header is fixed; pull spacer under the pinned bar only. */
body.chefx-mobile-fixes:not(.home).chefx-scrolled .elementor-69 .elementor-element.elementor-element-e774eb1,
body.chefx-mobile-fixes:not(.home).chefx-scrolled .elementor-70 .elementor-element.elementor-element-837be7c,
body.chefx-mobile-fixes:not(.home).chefx-scrolled .elementor-72 .elementor-element.elementor-element-8927260,
body.chefx-mobile-fixes:not(.home).chefx-scrolled .elementor-73 .elementor-element.elementor-element-82176f8,
body.chefx-mobile-fixes:not(.home).chefx-scrolled .elementor-82 .elementor-element.elementor-element-16acabb {
	--min-height: var(--chefx-ih-h) !important;
	min-height: var(--chefx-ih-h) !important;
	--margin-top: calc(-1 * var(--chefx-sticky-header-height, 4.5rem)) !important;
	margin-top: calc(-1 * var(--chefx-sticky-header-height, 4.5rem)) !important;
}
