html,
body {
	background: #030303;
	color: #f3ede3;
	overflow-x: hidden;
}

body.home {
	background:
		radial-gradient(circle at 80% 8%, rgba(200, 168, 90, 0.12), transparent 28rem),
		radial-gradient(circle at 15% 40%, rgba(255, 255, 255, 0.055), transparent 22rem),
		#030303;
}

body.home .site-main,
body.home .page-content,
body.home .elementor-11,
body.home .elementor-location-header,
body.home .elementor-location-footer {
	background: #030303;
}

body.home .bp-smoke,
body.home .bp-section {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}

body.home .bp-smoke::after,
body.home .bp-section::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background:
		radial-gradient(circle at 18% 12%, rgba(255, 255, 255, 0.08), transparent 18rem),
		radial-gradient(circle at 88% 88%, rgba(255, 255, 255, 0.055), transparent 20rem),
		linear-gradient(90deg, rgba(255, 255, 255, 0.045), transparent 30%, transparent 70%, rgba(255, 255, 255, 0.035));
	mix-blend-mode: screen;
	opacity: 0.58;
}

body.home .bp-section,
body.home .bp-hero,
body.home .bp-header,
body.home .elementor-location-footer .e-con {
	border-color: rgba(200, 168, 90, 0.26);
}

body.home .bp-header {
	min-height: 112px;
	padding-inline: clamp(24px, 4vw, 48px) !important;
	border-bottom: 1px solid rgba(200, 168, 90, 0.2);
	background:
		linear-gradient(180deg, rgba(18, 18, 16, 0.98), rgba(5, 5, 5, 0.95)),
		#050505 !important;
}

body.home .elementor-22 .elementor-element.elementor-element-77d3bbc img {
	width: 86px !important;
	filter: brightness(0) invert(1) drop-shadow(0 8px 20px rgba(0, 0, 0, 0.7));
}

body.home .elementor-22 .elementor-element.elementor-element-77d3bbc a {
	display: inline-flex;
	align-items: center;
}

body.home .bp-nav {
	gap: 4px !important;
	font-family: "Bebas Neue", "Inter", sans-serif !important;
	font-size: 16px !important;
	letter-spacing: 3px !important;
}

body.home .bp-nav a {
	color: #d6cdbf !important;
}

body.home .bp-nav a:hover {
	color: #d7ad43 !important;
}

body.home .elementor-button {
	transition: transform 180ms ease, background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

body.home .elementor-button:hover {
	transform: translateY(-1px);
}

body.home .elementor-22 .elementor-element.elementor-element-5948eff .elementor-button {
	border-color: #d2a73d !important;
	color: #d2a73d !important;
	padding: 18px 34px !important;
}

body.home .bp-hero {
	min-height: 610px;
	padding: clamp(58px, 6.5vw, 82px) clamp(32px, 6vw, 96px) 72px !important;
	border-bottom: 1px solid rgba(200, 168, 90, 0.18);
	background:
		linear-gradient(90deg, rgba(0, 0, 0, 0.94) 0%, rgba(0, 0, 0, 0.65) 18%, rgba(0, 0, 0, 0) 32%),
		radial-gradient(circle at 73% 50%, rgba(200, 168, 90, 0.12), transparent 28rem),
		url("https://bp.lavackdesign.com/wp-content/uploads/2026/05/bp-home-hero-real-v4.png") right center / cover no-repeat,
		#050505 !important;
}

body.home .bp-hero-text,
body.home .bp-hero > .e-con.bp-hero-text {
	max-width: 690px;
	padding-right: 0 !important;
	align-items: flex-start !important;
	text-align: left !important;
}

body.home .bp-hero-text .elementor-widget-heading,
body.home .bp-hero-text .elementor-widget-text-editor,
body.home .bp-hero-text .elementor-widget-image,
body.home .bp-hero-text .elementor-widget-button {
	align-self: flex-start !important;
}

body.home .bp-hero-text .elementor-heading-title,
body.home .bp-hero-text .elementor-text-editor {
	text-align: left !important;
}

body.home .elementor-11 .elementor-element.elementor-element-6a7e9d4 .elementor-heading-title,
body.home .elementor-11 .elementor-element.elementor-element-d2d0ce5 .elementor-heading-title {
	font-family: "Bebas Neue", "Inter", sans-serif !important;
	font-size: 30px !important;
	letter-spacing: 0.52em !important;
	color: #ded3c2 !important;
}

body.home .elementor-11 .elementor-element.elementor-element-0f22087 .elementor-heading-title {
	font-family: "Anton", "Bebas Neue", sans-serif !important;
	font-size: clamp(92px, 12.3vw, 176px) !important;
	line-height: 0.82 !important;
	letter-spacing: -0.035em !important;
	color: #efe6d6 !important;
	text-shadow: 0 4px 0 rgba(0, 0, 0, 0.18), 0 20px 70px rgba(0, 0, 0, 0.65);
}

body.home .elementor-11 .elementor-element.elementor-element-21b98e1 {
	font-family: "Bebas Neue", "Inter", sans-serif !important;
	font-size: clamp(25px, 2.25vw, 34px) !important;
	letter-spacing: 0.2em !important;
	line-height: 1.06 !important;
	max-width: 660px;
	color: #e8dfd1 !important;
}

body.home .bp-hero-img {
	align-self: stretch;
	justify-content: flex-end !important;
}

body.home .bp-hero-img img {
	width: min(52vw, 610px) !important;
	max-width: none !important;
	transform: translateX(18px) scale(1.12);
	filter: contrast(1.12) saturate(1.12) drop-shadow(0 32px 46px rgba(0, 0, 0, 0.76));
}

/* Remove redundant section borders - let surface tone separate sections.
   Keep only deliberate dividers where they earn their place. */
body.home .bp-section {
	border-top: 0;
}

/* Vary section density by content weight, not blanket-uniform.
   Feature rows are tighter; story/showcase sections breathe more. */
body.home .bp-difference {
	padding-top: clamp(56px, 6vw, 80px) !important;
	padding-bottom: clamp(64px, 7vw, 92px) !important;
}

body.home .bp-signature {
	padding-top: clamp(72px, 8vw, 104px) !important;
	padding-bottom: clamp(72px, 8vw, 104px) !important;
}

body.home .bp-reviews {
	padding-top: clamp(64px, 7vw, 88px) !important;
	padding-bottom: clamp(48px, 5vw, 64px) !important;
}

body.home .bp-instagram,
body.home .bp-insider {
	padding-top: clamp(48px, 7vw, 74px) !important;
	padding-bottom: clamp(48px, 7vw, 78px) !important;
}

/* Subtle alternating surface tones — restaurants pair black with deep charcoal.
   Creates rhythm without lines, like a well-bound book of pages. */
body.home .bp-section:nth-of-type(odd of .bp-section) {
	background-color: #060606 !important;
}
body.home .bp-section:nth-of-type(even of .bp-section) {
	background-color: #0b0b0b !important;
}

body.home .elementor-11 .bp-difference h2.elementor-heading-title,
body.home .elementor-11 .bp-signature h2.elementor-heading-title,
body.home .elementor-11 .bp-reviews h2.elementor-heading-title,
body.home .elementor-11 .bp-insider h2.elementor-heading-title {
	font-family: "Anton", "Bebas Neue", sans-serif !important;
	font-size: clamp(62px, 8.4vw, 96px) !important;
	line-height: 0.88 !important;
	letter-spacing: -0.02em !important;
	color: #eee4d5 !important;
	text-shadow: 0 18px 40px rgba(0, 0, 0, 0.58);
}

body.home .bp-difference .elementor-widget-html,
body.home .bp-signature .elementor-widget-html {
	width: 100%;
}

body.home .elementor-11 .elementor-element.elementor-element-2087cc2 {
	max-width: 1280px;
	gap: clamp(18px, 4vw, 56px) !important;
}

/* Difference feature pillars — give them card weight so they read as
   substantial pillars, not wireframe icons-with-text. The hairline at the
   top edge is the only border on each card; the rest is surface tone. */
body.home .bp-difference > .e-con > .e-con {
	flex: 1 1 0;
	padding: 36px 28px 30px !important;
	background:
		linear-gradient(180deg, rgba(200, 168, 90, 0.045), transparent 55%),
		#0d0d0d !important;
	border-top: 1px solid rgba(200, 168, 90, 0.45) !important;
	box-shadow: 0 14px 32px rgba(0, 0, 0, 0.35);
	transition: transform 240ms ease, box-shadow 240ms ease, border-color 240ms ease;
}

body.home .bp-difference > .e-con > .e-con:hover {
	transform: translateY(-3px);
	border-top-color: #d7ad43 !important;
	box-shadow: 0 22px 48px rgba(0, 0, 0, 0.5), 0 0 32px rgba(200, 168, 90, 0.1);
}

body.home .elementor-11 .elementor-element.elementor-element-a584c01 svg,
body.home .elementor-11 .elementor-element.elementor-element-12fb313 svg,
body.home .elementor-11 .elementor-element.elementor-element-f309f26 svg,
body.home .elementor-11 .elementor-element.elementor-element-18014b6 svg {
	display: none;
}

body.home .elementor-11 .elementor-element.elementor-element-a584c01 > div,
body.home .elementor-11 .elementor-element.elementor-element-12fb313 > div,
body.home .elementor-11 .elementor-element.elementor-element-f309f26 > div,
body.home .elementor-11 .elementor-element.elementor-element-18014b6 > div {
	margin-bottom: 18px !important;
}

body.home .elementor-11 .elementor-element.elementor-element-a584c01 > div::before,
body.home .elementor-11 .elementor-element.elementor-element-12fb313 > div::before,
body.home .elementor-11 .elementor-element.elementor-element-f309f26 > div::before,
body.home .elementor-11 .elementor-element.elementor-element-18014b6 > div::before {
	content: "";
	display: inline-block;
	width: 64px;
	height: 64px;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	opacity: 0.9;
}

body.home .elementor-11 .elementor-element.elementor-element-a584c01 > div::before {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23C8A85A' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M25 38h36c9 0 16 7 16 16v10c0 6-4 10-10 10H31c-9 0-16-7-16-16v-4c0-9 5-16 10-16Z'/%3E%3Cpath d='M15 55H6M24 74v9M64 74v9M28 38c0-12 9-21 22-21M60 38l9-13h12l-4 13M77 43l10-8M80 50l11-2M17 46c-5 0-9 4-10 9M24 37c-2-8 2-14 9-17M70 42l3-6'/%3E%3C/svg%3E");
}

body.home .elementor-11 .elementor-element.elementor-element-12fb313 > div::before {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23C8A85A' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 74 70 25c5-5 12-5 17 0s5 12 0 17L38 91 21 74Z'/%3E%3Cpath d='M30 65l17 17M63 32l17 17M20 74l-9 9M38 91l-7-7M28 77l-5 12'/%3E%3C/svg%3E");
}

body.home .elementor-11 .elementor-element.elementor-element-f309f26 > div::before {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23C8A85A' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M41 10h14v16l8 9v8H33v-8l8-9V10Z'/%3E%3Cpath d='M31 43h34v38c0 5-4 9-9 9H40c-5 0-9-4-9-9V43Z'/%3E%3Cpath d='M39 58h18M39 70h18'/%3E%3C/svg%3E");
}

body.home .elementor-11 .elementor-element.elementor-element-18014b6 > div::before {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23C8A85A' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 38c4-17 18-28 32-28s28 11 32 28H16Z'/%3E%3Cpath d='M18 51c7 0 7 6 15 6s8-6 15-6 7 6 15 6 8-6 15-6M18 67h60M23 76c7 7 14 10 25 10s18-3 25-10H23Z'/%3E%3Ccircle cx='35' cy='27' r='2.4' fill='%23C8A85A' stroke='none'/%3E%3Ccircle cx='48' cy='22' r='2.4' fill='%23C8A85A' stroke='none'/%3E%3Ccircle cx='61' cy='27' r='2.4' fill='%23C8A85A' stroke='none'/%3E%3C/svg%3E");
}

body.home .bp-burger-card {
	border: 1px solid #c89f3c;
	border-radius: 8px;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0)),
		#070707 !important;
	box-shadow: 0 22px 50px rgba(0, 0, 0, 0.38), inset 0 0 0 1px rgba(255, 255, 255, 0.035);
	padding: 16px 28px 24px !important;
	transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

body.home .bp-burger-card:hover {
	transform: translateY(-6px);
	border-color: #e0bd62;
	box-shadow: 0 34px 70px rgba(0, 0, 0, 0.52), 0 0 42px rgba(200, 168, 90, 0.16);
}

body.home .bp-burger-card img {
	width: 100% !important;
	height: 230px !important;
	max-height: 230px;
	object-fit: contain;
	filter: saturate(1.12) contrast(1.08) drop-shadow(0 18px 20px rgba(0, 0, 0, 0.52));
}

body.home .bp-burger-card h3.elementor-heading-title {
	font-family: "Bebas Neue", "Anton", sans-serif !important;
	font-size: clamp(52px, 5vw, 66px) !important;
	display: block;
	letter-spacing: 0.12em !important;
	color: #d2a73d !important;
}

body.home .elementor-11 .elementor-element.elementor-element-df7132f h3.elementor-heading-title {
	font-size: 0 !important;
	letter-spacing: 0 !important;
}

body.home .elementor-11 .elementor-element.elementor-element-df7132f h3.elementor-heading-title::before {
	content: "";
	display: block;
	width: 42px;
	height: 42px;
	margin: 0 auto 8px;
	background: #d2a73d;
	-webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M33 4c4 11-4 16-4 24 0 4 3 8 7 8 7 0 9-8 7-16 8 6 13 15 13 25 0 9-8 17-24 17S8 54 8 44c0-9 6-17 15-25-1 8 2 13 7 13 4 0 7-3 7-8 0-6-5-10-4-20Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M33 4c4 11-4 16-4 24 0 4 3 8 7 8 7 0 9-8 7-16 8 6 13 15 13 25 0 9-8 17-24 17S8 54 8 44c0-9 6-17 15-25-1 8 2 13 7 13 4 0 7-3 7-8 0-6-5-10-4-20Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

body.home .elementor-11 .elementor-element.elementor-element-df7132f h3.elementor-heading-title::after {
	content: "FIRE";
	display: block;
	font-family: "Bebas Neue", "Anton", sans-serif;
	font-size: clamp(52px, 5vw, 66px);
	letter-spacing: 0.12em;
	line-height: 1;
}

body.home .bp-burger-card .elementor-widget-text-editor {
	font-family: Georgia, serif !important;
	font-size: 20px !important;
	color: #d9cbb7 !important;
}

body.home .bp-story {
	border-top: 0;
	border-bottom: 0;
}

body.home .bp-story img {
	height: 100% !important;
	min-height: 315px;
	object-fit: cover;
	filter: contrast(1.12) saturate(0.95);
}

body.home .bp-story .elementor-heading-title,
body.home .bp-story .elementor-widget-text-editor {
	max-width: 620px;
}

body.home .bp-review-card {
	--padding-top: 30px !important;
	--padding-bottom: 30px !important;
	--padding-left: 32px !important;
	--padding-right: 32px !important;
	--gap: 8px 8px !important;
	min-height: 205px;
	border: 1px solid rgba(200, 168, 90, 0.8);
	border-radius: 4px;
	background: rgba(8, 8, 8, 0.78) !important;
	box-shadow: inset 0 0 24px rgba(200, 168, 90, 0.055);
}

body.home .bp-review-card .elementor-widget-spacer {
	display: none;
}

body.home .bp-review-card .elementor-widget-text-editor {
	margin-bottom: 0 !important;
}

body.home .bp-review-card .elementor-widget-text-editor:first-child {
	font-size: 18px !important;
	line-height: 1 !important;
	color: #d2a73d !important;
}

body.home .elementor-11 .elementor-element.elementor-element-5c0010e {
	max-width: 1080px;
	gap: 22px !important;
}

body.home .bp-instagram {
	background:
		radial-gradient(circle at 50% 20%, rgba(255, 255, 255, 0.065), transparent 26rem),
		#030303 !important;
}

body.home .bp-after-dark {
	min-height: 390px;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, 0.92) 0%, rgba(0, 0, 0, 0.54) 34%, rgba(0, 0, 0, 0.08) 72%),
		url("https://bp.lavackdesign.com/wp-content/uploads/2026/05/exterior_hires.png") !important;
	background-position: center center !important;
	background-size: cover !important;
}

body.home .bp-after-dark::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.48) 38%, rgba(0, 0, 0, 0.05) 78%),
		url("https://bp.lavackdesign.com/wp-content/uploads/2026/05/exterior_hires.png") center center / cover no-repeat;
}

body.home .bp-after-dark > * {
	position: relative;
	z-index: 1;
}

body.home .bp-after-dark-overlay {
	max-width: 420px;
	padding: clamp(42px, 7vw, 72px) 0 clamp(42px, 7vw, 72px) clamp(32px, 7vw, 80px) !important;
}

body.home .bp-after-dark h2.elementor-heading-title {
	font-family: "Anton", "Bebas Neue", sans-serif !important;
	font-size: clamp(64px, 8vw, 94px) !important;
	line-height: 0.94 !important;
	color: #efe6d6 !important;
}

body.home .bp-after-dark-strip {
	border-top: 1px solid rgba(200, 168, 90, 0.22);
	border-bottom: 1px solid rgba(200, 168, 90, 0.22);
	background: linear-gradient(90deg, #10100f, #070707, #10100f) !important;
}

body.home .bp-feature-strip-item:not(:last-child) {
	border-right: 1px solid rgba(243, 237, 227, 0.4);
}

body.home .bp-insider .elementor-widget-text-editor {
	max-width: 560px;
}

body.home .bp-subscribe {
	box-shadow: 0 0 0 1px rgba(200, 168, 90, 0.35), 0 20px 48px rgba(0, 0, 0, 0.45);
}

body.home .bp-catering-cta {
	min-height: 320px;
	border-top: 0;
	border-bottom: 0;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, 0.86) 0%, rgba(0, 0, 0, 0.34) 52%, rgba(0, 0, 0, 0.72) 100%),
		url("https://bp.lavackdesign.com/wp-content/uploads/2026/05/b4a12696-671a-47a3-b61f-135d886dac72.png") center center / cover no-repeat !important;
}

body.home .bp-delivery-strip span[style*="font-size:18px"] {
	font-size: clamp(34px, 4vw, 48px) !important;
	letter-spacing: -0.04em;
}

body.home .bp-final-cta > .e-con {
	align-items: flex-start !important;
	text-align: left !important;
}

body.home .bp-final-cta .elementor-widget-heading,
body.home .bp-final-cta .elementor-widget-button,
body.home .bp-final-cta .elementor-widget-text-editor,
body.home .bp-final-cta .elementor-widget-spacer {
	align-self: flex-start !important;
}

body.home .bp-final-cta .elementor-heading-title,
body.home .bp-final-cta .elementor-text-editor {
	text-align: left !important;
}

body.home .bp-final-cta {
	padding-top: 56px !important;
	padding-bottom: 0 !important;
	border-top: 1px solid rgba(200, 168, 90, 0.18);
	background:
		linear-gradient(90deg, rgba(0, 0, 0, 0.94) 0%, rgba(0, 0, 0, 0.65) 18%, rgba(0, 0, 0, 0) 35%),
		url("https://bp.lavackdesign.com/wp-content/uploads/2026/05/bp-home-cta-real-v3.png") right center / cover no-repeat,
		#030303 !important;
}

body.home .bp-final-cta img {
	width: min(43vw, 560px) !important;
	filter: contrast(1.12) saturate(1.1) drop-shadow(0 24px 36px rgba(0, 0, 0, 0.75));
}

body.home .elementor-11 .elementor-element.elementor-element-5bb34f5 .elementor-heading-title,
body.home .elementor-11 .elementor-element.elementor-element-97a1ae2 .elementor-heading-title {
	color: #eee4d5 !important;
	-webkit-text-fill-color: #eee4d5;
	opacity: 1 !important;
}

body.home .elementor-location-footer {
	border-top: 1px solid rgba(200, 168, 90, 0.24);
}

body:not(.home) {
	background: #050505;
	color: #f3ede3;
}

body:not(.home) .site-main,
body:not(.home) .page-content,
body:not(.home) [class*="elementor-page-"] {
	background:
		radial-gradient(circle at 12% 12%, rgba(255, 255, 255, 0.04), transparent 20rem),
		radial-gradient(circle at 90% 48%, rgba(200, 168, 90, 0.055), transparent 26rem),
		#050505;
}

body:not(.home) .bp-header {
	min-height: 92px;
	border-bottom: 1px solid rgba(200, 168, 90, 0.2);
	background: linear-gradient(180deg, rgba(10, 10, 9, 0.98), rgba(3, 3, 3, 0.98)) !important;
}

body:not(.home) .elementor-22 .elementor-element.elementor-element-77d3bbc img {
	width: 92px !important;
	filter: brightness(0) invert(1) drop-shadow(0 8px 20px rgba(0, 0, 0, 0.72));
}

body:not(.home) .bp-nav {
	font-family: "Bebas Neue", "Inter", sans-serif !important;
	font-size: 15px !important;
	letter-spacing: 3px !important;
}

body:not(.home) .bp-nav a {
	color: #d9d0c2 !important;
}

body:not(.home) .bp-nav a:hover {
	color: #d2a73d !important;
}

body:not(.home) .bp-section {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border-top: 1px solid rgba(200, 168, 90, 0.12);
}

body:not(.home) .bp-smoke::after,
body:not(.home) .bp-section::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background:
		radial-gradient(circle at 18% 8%, rgba(255, 255, 255, 0.07), transparent 18rem),
		radial-gradient(circle at 86% 92%, rgba(200, 168, 90, 0.07), transparent 22rem);
	opacity: 0.52;
}

body:not(.home) .elementor-widget-heading .elementor-heading-title {
	text-wrap: balance;
}

body:not(.home) .bp-menu-hero,
body:not(.home) .bp-story-hero,
body:not(.home) .bp-visit-hero,
body:not(.home) .bp-catering-hero,
body:not(.home) .bp-contact-hero {
	min-height: clamp(420px, 58vw, 720px);
	padding-inline: clamp(28px, 6vw, 90px) !important;
}

body:not(.home) .bp-menu-hero h1.elementor-heading-title,
body:not(.home) .bp-story-hero h1.elementor-heading-title,
body:not(.home) .bp-visit-hero h1.elementor-heading-title,
body:not(.home) .bp-catering-hero h1.elementor-heading-title,
body:not(.home) .bp-contact-hero h1.elementor-heading-title,
body:not(.home) .bp-menu-hero h2.elementor-heading-title,
body:not(.home) .bp-story-hero h2.elementor-heading-title,
body:not(.home) .bp-visit-hero h2.elementor-heading-title,
body:not(.home) .bp-catering-hero h2.elementor-heading-title,
body:not(.home) .bp-contact-hero h2.elementor-heading-title {
	font-family: "Anton", "Bebas Neue", sans-serif !important;
	font-size: clamp(68px, 11vw, 150px) !important;
	line-height: 0.88 !important;
	letter-spacing: -0.025em !important;
	color: #efe6d6 !important;
	text-shadow: 0 20px 48px rgba(0, 0, 0, 0.62);
}

body:not(.home) .bp-menu-hero .elementor-widget-heading:first-child .elementor-heading-title,
body:not(.home) .bp-story-hero .elementor-widget-heading:first-child .elementor-heading-title,
body:not(.home) .bp-visit-hero .elementor-widget-heading:first-child .elementor-heading-title,
body:not(.home) .bp-catering-hero .elementor-widget-heading:first-child .elementor-heading-title,
body:not(.home) .bp-contact-hero .elementor-widget-heading:first-child .elementor-heading-title,
body:not(.home) .elementor-widget-heading div.elementor-heading-title {
	font-family: "Bebas Neue", "Inter", sans-serif !important;
	letter-spacing: 0.28em !important;
	color: #c8a85a !important;
}

body:not(.home) .bp-menu-card,
body:not(.home) .bp-package-card,
body:not(.home) .bp-contact-card,
body:not(.home) .bp-flagship-card,
body:not(.home) .bp-review-card,
body:not(.home) .bp-testimonials .e-con,
body:not(.home) .bp-follow .e-con > .e-con,
body:not(.home) .bp-promises .e-con,
body:not(.home) .bp-occasions .e-con,
body:not(.home) .bp-how-it-works .e-con {
	border: 1px solid rgba(200, 168, 90, 0.48);
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0)),
		#101010 !important;
	box-shadow: 0 24px 52px rgba(0, 0, 0, 0.35), inset 0 0 0 1px rgba(255, 255, 255, 0.025);
}

body:not(.home) .bp-menu-card {
	min-height: 520px;
	padding: 18px 18px 22px !important;
}

/* "NEW" pill badge for newly-added menu items.
   Matches the red "NEW" callout style from the printed menu PDF.
   Note: Elementor sets `inset:0` on .elementor-element::before for overlay effects,
   so we explicitly override bottom/left/width/height to make this a small pill. */
body:not(.home) .bp-item-new {
	position: relative;
}

body:not(.home) .bp-item-new::before {
	content: "NEW" !important;
	position: absolute !important;
	top: -8px !important;
	right: -8px !important;
	bottom: auto !important;
	left: auto !important;
	width: auto !important;
	height: auto !important;
	z-index: 5;
	display: inline-block !important;
	padding: 4px 10px !important;
	background: #d83a3a !important;
	color: #fff !important;
	font-family: "Inter", sans-serif !important;
	font-size: 10px !important;
	font-weight: 800 !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
	border-radius: 3px !important;
	box-shadow: 0 4px 10px rgba(216, 58, 58, 0.4);
	pointer-events: none;
	line-height: 1.4 !important;
	background-image: none !important;
	inset: auto !important;
}

/* In the dipping-sauces grid the cards are smaller, so tighten the badge.
   Offset outside the corner so it acts like a tag rather than an overlay. */
body:not(.home) .bp-chip-grid .bp-item-new::before,
body:not(.home) [class*="dipping"] .bp-item-new::before {
	font-size: 9px !important;
	padding: 3px 7px !important;
	letter-spacing: 1px !important;
	top: -7px !important;
	right: -7px !important;
}

body:not(.home) .bp-menu-card img {
	width: 100% !important;
	height: 300px !important;
	object-fit: cover;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	filter: contrast(1.08) saturate(1.08) drop-shadow(0 18px 24px rgba(0, 0, 0, 0.5));
}

body:not(.home) .bp-menu-card .elementor-widget-image,
body:not(.home) .bp-menu-card .elementor-widget-image > div,
body:not(.home) .bp-menu-card .elementor-widget-image img {
	display: block !important;
	min-height: 1px;
	animation: none !important;
}

body:not(.home) .bp-menu-card h3.elementor-heading-title,
body:not(.home) .bp-package-card h3.elementor-heading-title,
body:not(.home) .bp-contact-card h4.elementor-heading-title,
body:not(.home) .bp-follow h4.elementor-heading-title {
	font-family: "Bebas Neue", "Inter", sans-serif !important;
	letter-spacing: 0.14em !important;
	color: #d2a73d !important;
}

body:not(.home) .bp-menu-card .elementor-widget-text-editor {
	line-height: 1.45 !important;
	color: #a8a19a !important;
}

body:not(.home) .bp-menu-filters {
	position: sticky;
	top: 0;
	z-index: 6;
	border-block: 1px solid rgba(200, 168, 90, 0.2);
	background: rgba(5, 5, 5, 0.88) !important;
	backdrop-filter: blur(10px);
}

body:not(.home) .bp-cat-01,
body:not(.home) .bp-cat-02,
body:not(.home) .bp-cat-03,
body:not(.home) .bp-cat-04,
body:not(.home) .bp-byo,
body:not(.home) .bp-packages,
body:not(.home) .bp-how-it-works,
body:not(.home) .bp-gallery,
body:not(.home) .bp-testimonials,
body:not(.home) .bp-inquire,
body:not(.home) .bp-contact-cards,
body:not(.home) .bp-contact-form,
body:not(.home) .bp-follow,
body:not(.home) .bp-press-kit,
body:not(.home) .bp-hiring,
body:not(.home) .bp-faq-teaser {
	padding-block: clamp(56px, 8vw, 108px) !important;
	padding-inline: clamp(24px, 5vw, 72px) !important;
}

body:not(.home) .bp-cat-01 h2.elementor-heading-title,
body:not(.home) .bp-cat-02 h2.elementor-heading-title,
body:not(.home) .bp-cat-03 h2.elementor-heading-title,
body:not(.home) .bp-cat-04 h2.elementor-heading-title,
body:not(.home) .bp-packages h2.elementor-heading-title,
body:not(.home) .bp-gallery h2.elementor-heading-title,
body:not(.home) .bp-testimonials h2.elementor-heading-title,
body:not(.home) .bp-contact-form h2.elementor-heading-title,
body:not(.home) .bp-follow h2.elementor-heading-title {
	font-family: "Anton", "Bebas Neue", sans-serif !important;
	font-size: clamp(48px, 7vw, 90px) !important;
	line-height: 0.92 !important;
	color: #efe6d6 !important;
}

body:not(.home) .bp-package-card,
body:not(.home) .bp-contact-card,
body:not(.home) .bp-follow .e-con > .e-con {
	transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

body:not(.home) .bp-package-card:hover,
body:not(.home) .bp-contact-card:hover,
body:not(.home) .bp-follow .e-con > .e-con:hover,
body:not(.home) .bp-menu-card:hover {
	transform: translateY(-4px);
	border-color: rgba(224, 189, 98, 0.86);
	box-shadow: 0 34px 68px rgba(0, 0, 0, 0.46), 0 0 32px rgba(200, 168, 90, 0.1);
}

body:not(.home) .bp-popular {
	background:
		linear-gradient(180deg, rgba(200, 168, 90, 0.16), rgba(200, 168, 90, 0.04)),
		#141006 !important;
}

body:not(.home) input,
body:not(.home) textarea,
body:not(.home) select {
	background: #121212 !important;
	border: 1px solid rgba(200, 168, 90, 0.24) !important;
	color: #f3ede3 !important;
}

body:not(.home) input::placeholder,
body:not(.home) textarea::placeholder {
	color: #8a8580 !important;
}

body:not(.home) button,
body:not(.home) .elementor-button {
	border-radius: 0 !important;
}

body:not(.home) .bp-gallery img,
body:not(.home) .bp-team img,
body:not(.home) .bp-map img,
body:not(.home) .bp-flagship-card img,
body:not(.home) .bp-beginning img,
body:not(.home) .bp-why-wagyu img {
	filter: contrast(1.08) saturate(0.96);
}

body:not(.home) .bp-gallery {
	padding-block: clamp(48px, 7vw, 86px) !important;
}

body:not(.home) .bp-gallery .elementor-widget-image,
body:not(.home) .bp-gallery .elementor-widget-image > div,
body:not(.home) .bp-gallery img {
	display: block !important;
	width: 100% !important;
	opacity: 1 !important;
	visibility: visible !important;
	animation: none !important;
	transform: none !important;
}

body:not(.home) .bp-gallery img {
	aspect-ratio: 1.35 / 1;
	height: auto !important;
	object-fit: cover;
	border: 1px solid rgba(200, 168, 90, 0.34);
	box-shadow: 0 18px 34px rgba(0, 0, 0, 0.36);
}

body:not(.home) .bp-follow i {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	font-size: 0 !important;
	color: transparent !important;
	background: #c8a85a;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}

body:not(.home) .elementor-16 .elementor-element.elementor-element-68ea3f4 i {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='4'%3E%3Crect x='14' y='14' width='36' height='36' rx='10'/%3E%3Ccircle cx='32' cy='32' r='9'/%3E%3Ccircle cx='43' cy='21' r='2.5' fill='black'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='4'%3E%3Crect x='14' y='14' width='36' height='36' rx='10'/%3E%3Ccircle cx='32' cy='32' r='9'/%3E%3Ccircle cx='43' cy='21' r='2.5' fill='black'/%3E%3C/svg%3E");
}

body:not(.home) .elementor-16 .elementor-element.elementor-element-5c0a9f1 i {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg' fill='black'%3E%3Cpath d='M24 8h11c1 8 6 13 14 14v11c-5 0-10-2-14-5v15c0 9-7 15-16 15S4 51 4 43s7-15 15-15c2 0 3 0 5 1v11c-1-1-3-1-4-1-3 0-5 2-5 5s2 5 5 5 5-2 5-5V8Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg' fill='black'%3E%3Cpath d='M24 8h11c1 8 6 13 14 14v11c-5 0-10-2-14-5v15c0 9-7 15-16 15S4 51 4 43s7-15 15-15c2 0 3 0 5 1v11c-1-1-3-1-4-1-3 0-5 2-5 5s2 5 5 5 5-2 5-5V8Z'/%3E%3C/svg%3E");
}

body:not(.home) .elementor-16 .elementor-element.elementor-element-459be5e i {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg' fill='black'%3E%3Cpath d='M32 6c12 0 22 9 22 20 0 15-10 31-18 31-3 0-5-3-8-3s-5 3-8 3C12 57 2 41 2 26 2 15 20 6 32 6Zm-9 20c0 2 2 4 4 4s4-2 4-4-2-4-4-4-4 2-4 4Zm16 0c0 2 2 4 4 4s4-2 4-4-2-4-4-4-4 2-4 4Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg' fill='black'%3E%3Cpath d='M32 6c12 0 22 9 22 20 0 15-10 31-18 31-3 0-5-3-8-3s-5 3-8 3C12 57 2 41 2 26 2 15 20 6 32 6Zm-9 20c0 2 2 4 4 4s4-2 4-4-2-4-4-4-4 2-4 4Zm16 0c0 2 2 4 4 4s4-2 4-4-2-4-4-4-4 2-4 4Z'/%3E%3C/svg%3E");
}

body:not(.home) .elementor-16 .elementor-element.elementor-element-25d9eb9 i {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='7' stroke-linecap='square'%3E%3Cpath d='M13 13l38 38M51 13 13 51'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='7' stroke-linecap='square'%3E%3Cpath d='M13 13l38 38M51 13 13 51'/%3E%3C/svg%3E");
}

.page-id-12 .bp-accurate-menu {
	width: min(1180px, 100%);
	margin: 0 auto;
	color: #f3ede3;
}

.page-id-12 .bp-menu-nav {
	position: sticky;
	top: 92px;
	z-index: 8;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-bottom: clamp(34px, 5vw, 64px);
	padding: 14px;
	border-top: 1px solid rgba(200, 168, 90, 0.24);
	border-bottom: 1px solid rgba(200, 168, 90, 0.24);
	background: rgba(3, 3, 3, 0.86);
	backdrop-filter: blur(14px);
}

.page-id-12 .bp-menu-nav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 10px 18px;
	border: 1px solid rgba(200, 168, 90, 0.36);
	color: #d4b55f;
	font-family: "Bebas Neue", "Anton", sans-serif;
	font-size: 20px;
	letter-spacing: 2.4px;
	text-transform: uppercase;
	transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.page-id-12 .bp-menu-nav a:hover,
.page-id-12 .bp-menu-nav a.is-active {
	border-color: rgba(224, 189, 98, 0.9);
	background: #d4b55f;
	color: #050505;
	transform: translateY(-1px);
}

.page-id-12 .bp-menu-section {
	position: relative;
	scroll-margin-top: 180px;
	margin-bottom: clamp(42px, 6vw, 72px);
	padding: clamp(24px, 4vw, 42px);
	border: 1px solid rgba(200, 168, 90, 0.28);
	background:
		radial-gradient(circle at 12% 0%, rgba(200, 168, 90, 0.12), transparent 34%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.01)),
		#090909;
	box-shadow: 0 30px 70px rgba(0, 0, 0, 0.34);
}

.page-id-12 .bp-menu-section .bp-kicker {
	margin: 0 0 6px;
	color: #c8a85a;
	font-family: "Bebas Neue", "Anton", sans-serif;
	font-size: 19px;
	letter-spacing: 6px;
}

.page-id-12 .bp-menu-section h2 {
	margin: 0 0 24px;
	color: #efe6d6;
	font-family: "Anton", "Bebas Neue", sans-serif;
	font-size: clamp(48px, 7vw, 86px);
	line-height: 0.9;
	text-transform: uppercase;
}

.page-id-12 .bp-menu-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.page-id-12 .bp-menu-grid-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.page-id-12 .bp-menu-item {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 20px;
	min-height: 360px;
	padding: 18px;
	border: 1px solid rgba(200, 168, 90, 0.26);
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.008)),
		rgba(0, 0, 0, 0.64);
	transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.page-id-12 .bp-menu-item:hover {
	transform: translateY(-4px);
	border-color: rgba(224, 189, 98, 0.82);
	box-shadow: 0 28px 60px rgba(0, 0, 0, 0.36);
}

.page-id-12 .bp-menu-photo {
	position: relative;
	overflow: hidden;
	margin: 0 0 4px;
	aspect-ratio: 1.26 / 1;
	border: 1px solid rgba(200, 168, 90, 0.22);
	background:
		radial-gradient(circle at 50% 35%, rgba(255, 207, 114, 0.12), transparent 38%),
		#020202;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.025), 0 18px 34px rgba(0, 0, 0, 0.38);
}

.page-id-12 .bp-menu-photo::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(180deg, rgba(0, 0, 0, 0) 48%, rgba(0, 0, 0, 0.34) 100%),
		radial-gradient(circle at 50% 15%, rgba(255, 255, 255, 0.1), transparent 34%);
	mix-blend-mode: screen;
	opacity: 0.34;
}

.page-id-12 .bp-menu-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: contrast(1.12) saturate(1.08) brightness(0.96);
	transform: scale(1.03);
	transition: transform 220ms ease, filter 220ms ease;
}

.page-id-12 .bp-menu-item:hover .bp-menu-photo img {
	filter: contrast(1.16) saturate(1.14) brightness(1.02);
	transform: scale(1.075);
}

.page-id-12 .bp-menu-item h3 {
	margin: 0 0 10px;
	color: #d4b55f;
	font-family: "Bebas Neue", "Anton", sans-serif;
	font-size: clamp(34px, 4vw, 54px);
	letter-spacing: 5px;
	line-height: 0.98;
	text-transform: uppercase;
}

.page-id-12 .bp-menu-item > div {
	flex: 1;
}

.page-id-12 .bp-menu-item p {
	margin: 0;
	color: rgba(243, 237, 227, 0.78);
	font-size: 16px;
	line-height: 1.55;
}

.page-id-12 .bp-menu-item em {
	color: #f3ede3;
	font-style: italic;
}

.page-id-12 .bp-menu-item span {
	display: inline-block;
	margin-top: 12px;
	color: #45aa4f;
	font-family: "Bebas Neue", "Anton", sans-serif;
	font-size: 18px;
	letter-spacing: 1px;
}

.page-id-12 .bp-menu-item strong {
	display: block;
	padding-top: 18px;
	border-top: 1px solid rgba(200, 168, 90, 0.34);
	color: #d4b55f;
	font-family: "Bebas Neue", "Anton", sans-serif;
	font-size: 31px;
	letter-spacing: 2px;
	line-height: 1;
}

.page-id-12 .bp-chip-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.page-id-12 .bp-chip-grid span {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 64px;
	padding: 16px 18px;
	border: 1px solid rgba(200, 168, 90, 0.28);
	background: rgba(0, 0, 0, 0.48);
	color: #efe6d6;
	font-family: "Bebas Neue", "Anton", sans-serif;
	font-size: 24px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.page-id-12 .bp-chip-grid b {
	color: #d4b55f;
	font-size: 30px;
	font-weight: 400;
}

.page-id-12 .bp-dip-grid {
	grid-template-columns: repeat(8, minmax(0, 1fr));
}

.page-id-12 .bp-dip-grid span {
	flex-direction: column;
	justify-content: center;
	text-align: center;
}

.page-id-12 .bp-dip-option-label {
	margin: 30px 0 18px;
	color: #c8a85a;
	font-family: "Inter", sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 3px;
	text-align: center;
	text-transform: uppercase;
}

.page-id-12 .bp-sauce-photo-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	width: min(880px, 100%);
	margin: 0 auto;
}

/* Subtle spotlight behind the product to make it pop against the dark card */
.page-id-12 .bp-sauce-tile,
.page-id-12 .bp-drink-tile {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(200, 168, 90, 0.34);
	background:
		radial-gradient(ellipse 70% 55% at 50% 35%, rgba(255, 220, 160, 0.10), transparent 70%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0)),
		#0f0f0f;
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.34);
	transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.page-id-12 .bp-sauce-tile:hover {
	transform: translateY(-3px);
	border-color: rgba(224, 189, 98, 0.84);
	box-shadow: 0 30px 64px rgba(0, 0, 0, 0.42);
}

.page-id-12 .bp-sauce-tile::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
}

.page-id-12 .bp-sauce-tile.is-new::before {
	content: "NEW";
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	padding: 5px 9px 4px;
	background: #e53122;
	color: #fff;
	font-family: "Inter", sans-serif;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: 1.2px;
	line-height: 1;
	text-transform: uppercase;
	box-shadow: 0 8px 18px rgba(229, 49, 34, 0.34);
}

.page-id-12 .bp-sauce-tile img {
	display: block;
	width: 100%;
	aspect-ratio: 1.18 / 1;
	object-fit: cover;
	filter: brightness(1.18) contrast(1.12) saturate(1.08);
	background: transparent;
}

.page-id-12 .bp-sauce-tile > div {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-height: 56px;
	padding: 10px 12px 12px;
	background: #0a0a0a;
}

.page-id-12 .bp-sauce-tile h3 {
	margin: 0;
	color: #efe6d6;
	font-family: "Bebas Neue", "Anton", sans-serif;
	font-size: clamp(16px, 1.5vw, 20px);
	font-weight: 400;
	letter-spacing: 1.8px;
	line-height: 1;
	text-align: left;
	text-transform: uppercase;
}

.page-id-12 .bp-sauce-tile span {
	flex: 0 0 auto;
	color: #d4b55f;
	font-family: "Bebas Neue", "Anton", sans-serif;
	font-size: 18px;
	letter-spacing: 1.2px;
	line-height: 1;
}

/* Drink Option B tiles — same dark theme as sauce tiles, but portrait image
   area to suit cans/bottles. Sized to match sauce tile density. */
.page-id-12 .bp-drink-photo-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	width: min(880px, 100%);
	margin: 0 auto;
}

.page-id-12 .bp-drink-tile:hover {
	transform: translateY(-3px);
	border-color: rgba(224, 189, 98, 0.84);
	box-shadow: 0 30px 64px rgba(0, 0, 0, 0.42);
}

.page-id-12 .bp-drink-tile::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
}

.page-id-12 .bp-drink-tile img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: contain;
	padding: 14px 10px 6px;
	box-sizing: border-box;
	filter: brightness(1.18) contrast(1.12) saturate(1.08);
}

.page-id-12 .bp-drink-tile > div {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-height: 56px;
	padding: 10px 12px 12px;
	background: #0a0a0a;
}

.page-id-12 .bp-drink-tile h3 {
	margin: 0;
	color: #efe6d6;
	font-family: "Bebas Neue", "Anton", sans-serif;
	font-size: clamp(15px, 1.4vw, 18px);
	font-weight: 400;
	letter-spacing: 1.6px;
	line-height: 1;
	text-align: left;
	text-transform: uppercase;
}

.page-id-12 .bp-drink-tile h3 small {
	display: block;
	font-size: 9px !important;
	color: #8a8580;
	letter-spacing: 1px;
	margin-top: 3px;
	font-weight: 400;
}

.page-id-12 .bp-drink-tile span {
	flex: 0 0 auto;
	color: #d4b55f;
	font-family: "Bebas Neue", "Anton", sans-serif;
	font-size: 17px;
	letter-spacing: 1.2px;
	line-height: 1;
}

@media (max-width: 1024px) {
	body.home .bp-header {
		min-height: auto;
	}

	body.home .bp-nav {
		font-size: 14px !important;
		letter-spacing: 2px !important;
	}

	body.home .bp-nav a {
		padding-inline: 10px !important;
	}

	body.home .bp-hero {
		min-height: auto;
	}

	body.home .bp-hero-img img {
		width: min(46vw, 460px) !important;
	}

	.page-id-12 .bp-sauce-photo-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	body.home .bp-header {
		justify-content: center !important;
		padding: 18px 20px !important;
	}

	body.home .bp-nav {
		display: none !important;
	}

	body.home .elementor-22 .elementor-element.elementor-element-5948eff {
		display: none;
	}

	body.home .bp-hero {
		min-height: auto;
		padding: 56px 22px 76px !important;
		text-align: center;
	}

	body.home .bp-hero-text,
	body.home .bp-hero-img {
		width: 100% !important;
		align-items: center !important;
	}

	body.home .elementor-11 .elementor-element.elementor-element-0f22087 .elementor-heading-title {
		font-size: clamp(86px, 29vw, 132px) !important;
	}

	body.home .elementor-11 .elementor-element.elementor-element-21b98e1 {
		font-size: 24px !important;
	}

	body.home .bp-hero-img img {
		width: min(82vw, 380px) !important;
		transform: none;
	}

	body.home .bp-difference,
	body.home .bp-signature,
	body.home .bp-reviews,
	body.home .bp-instagram,
	body.home .bp-insider {
		padding-inline: 22px !important;
	}

	body.home .elementor-11 .elementor-element.elementor-element-2087cc2,
	body.home .elementor-11 .elementor-element.elementor-element-749dc8b,
	body.home .elementor-11 .elementor-element.elementor-element-5c0010e,
	body.home .bp-after-dark-strip {
		flex-direction: column !important;
	}

	body.home .bp-feature-strip-item {
		border-right: 0 !important;
		border-bottom: 1px solid rgba(243, 237, 227, 0.2);
	}

	body.home .bp-after-dark-overlay {
		padding: 48px 24px !important;
	}

	body.home .bp-catering-cta .e-con,
	body.home .bp-final-cta {
		flex-direction: column !important;
		text-align: center;
	}

	body.home .bp-final-cta img {
		width: min(84vw, 420px) !important;
	}

	.page-id-12 .bp-menu-nav {
		top: 0;
		justify-content: flex-start;
		flex-wrap: nowrap;
		overflow-x: auto;
		padding-inline: 18px;
		scrollbar-width: none;
	}

	.page-id-12 .bp-menu-nav::-webkit-scrollbar {
		display: none;
	}

	.page-id-12 .bp-menu-section {
		scroll-margin-top: 112px;
	}

	.page-id-12 .bp-menu-grid,
	.page-id-12 .bp-menu-grid-4,
	.page-id-12 .bp-menu-grid-2,
	.page-id-12 .bp-chip-grid,
	.page-id-12 .bp-dip-grid {
		grid-template-columns: 1fr;
	}

	.page-id-12 .bp-sauce-photo-grid {
		grid-template-columns: 1fr;
	}

	.page-id-12 .bp-sauce-tile img {
		aspect-ratio: 1.42 / 1;
	}

	.page-id-12 .bp-menu-section {
		padding: 24px 18px;
	}
}

/* Visit page — flagship card: side-by-side exterior + map (instead of stacked) */
body.page-id-14 .bp-flagship-card {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
}
body.page-id-14 .bp-flagship-card > .e-con {
    flex: 1 1 calc(50% - 12px) !important;
    width: auto !important;
    min-width: 0;
}
body.page-id-14 .bp-flagship-card img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    aspect-ratio: 4 / 3;
    display: block;
}
@media (max-width: 767px) {
    body.page-id-14 .bp-flagship-card > .e-con {
        flex: 1 1 100% !important;
    }
}

/* About page — "04 — THE PEOPLE" row: balance three images to same aspect ratio */
body.page-id-13 .bp-people-row {
    align-items: stretch !important;
}
body.page-id-13 .bp-people-row > .e-con {
    flex: 1 1 0 !important;
}
body.page-id-13 .bp-people-row .elementor-widget-image,
body.page-id-13 .bp-people-row .elementor-widget-image > .elementor-widget-container {
    width: 100%;
}
body.page-id-13 .bp-people-row .elementor-widget-image img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    height: auto;
}
/* For the portrait flagship image, anchor crop to top so the green BIG PAPA sign stays visible */
body.page-id-13 .bp-people-row > .e-con:first-child .elementor-widget-image img {
    object-position: center 28%;
}
@media (max-width: 767px) {
    body.page-id-13 .bp-people-row .elementor-widget-image img {
        aspect-ratio: 16 / 10;
    }
}

/* Menu page — DESSERT section: constrain single card to similar width as chicken cards */
.page-id-12 .bp-cat-dessert .elementor-widget-image {
    max-width: 380px;
    margin: 0 auto;
}
.page-id-12 .bp-cat-dessert .elementor-widget-image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
    border-radius: 2px;
}
.page-id-12 .bp-cat-dessert .elementor-widget-heading,
.page-id-12 .bp-cat-dessert .elementor-widget-text-editor {
    max-width: 380px;
    margin: 0 auto;
}

/* Force-constrain dessert card width (Elementor overrides require !important) */
.page-id-12 .bp-cat-dessert .elementor-widget-image,
.page-id-12 .bp-cat-dessert .elementor-widget-heading,
.page-id-12 .bp-cat-dessert .elementor-widget-text-editor {
    max-width: 380px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.page-id-12 .bp-cat-dessert .elementor-widget-image img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
}

/* Menu — 02 CHICKEN cards: constrain image to natural ratio so whole image is visible (no crop) */
.page-id-12 .bp-cat-chicken .bp-menu-card .elementor-widget-image {
    max-width: 320px !important;
    width: 100% !important;
    margin: 0 auto !important;
}
.page-id-12 .bp-cat-chicken .bp-menu-card .elementor-widget-image img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    display: block !important;
}

/* ============================================================
   ANIMATIONS — entrance, hover, subtle motion
   ============================================================ */

@keyframes bp-fade-up {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes bp-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes bp-scale-in {
    from { opacity: 0; transform: scale(0.94); }
    to   { opacity: 1; transform: scale(1); }
}
@keyframes bp-float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-6px); }
}
@keyframes bp-bokeh-drift {
    0%, 100% { background-position: right center; }
    50%      { background-position: 102% 48%; }
}

/* ---- HERO: staggered text entrance on load ---- */
body.home .bp-hero-text > * {
    opacity: 0;
    animation: bp-fade-up 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both;
}
body.home .bp-hero-text > *:nth-child(2) { animation-delay: 0.27s; }
body.home .bp-hero-text > *:nth-child(3) { animation-delay: 0.39s; }
body.home .bp-hero-text > *:nth-child(4) { animation-delay: 0.51s; }
body.home .bp-hero-text > *:nth-child(5) { animation-delay: 0.63s; }
body.home .bp-hero-text > *:nth-child(6) { animation-delay: 0.75s; }
body.home .bp-hero-text > *:nth-child(7) { animation-delay: 0.87s; }
body.home .bp-hero-text > *:nth-child(8) { animation-delay: 0.99s; }

/* Subtle perpetual bokeh drift in hero/CTA backgrounds */
body.home .bp-hero,
body.home .bp-final-cta {
    animation: bp-bokeh-drift 14s ease-in-out infinite alternate;
}

/* ---- SCROLL-IN: sections fade-up as they enter viewport ---- */
.bp-anim > * {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.bp-anim.in-view > * {
    opacity: 1;
    transform: translateY(0);
}
.bp-anim.in-view > *:nth-child(2) { transition-delay: 0.10s; }
.bp-anim.in-view > *:nth-child(3) { transition-delay: 0.20s; }
.bp-anim.in-view > *:nth-child(4) { transition-delay: 0.30s; }
.bp-anim.in-view > *:nth-child(5) { transition-delay: 0.40s; }
.bp-anim.in-view > *:nth-child(6) { transition-delay: 0.50s; }
.bp-anim.in-view > *:nth-child(7) { transition-delay: 0.60s; }

/* Items inside a grid container (like menu cards / burger cards / package cards / IG grid) get scale-in */
.bp-anim-grid > * {
    opacity: 0;
    transform: translateY(18px) scale(0.96);
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.bp-anim-grid.in-view > * {
    opacity: 1;
    transform: translateY(0) scale(1);
}
.bp-anim-grid.in-view > *:nth-child(2) { transition-delay: 0.08s; }
.bp-anim-grid.in-view > *:nth-child(3) { transition-delay: 0.16s; }
.bp-anim-grid.in-view > *:nth-child(4) { transition-delay: 0.24s; }
.bp-anim-grid.in-view > *:nth-child(5) { transition-delay: 0.32s; }
.bp-anim-grid.in-view > *:nth-child(6) { transition-delay: 0.40s; }
.bp-anim-grid.in-view > *:nth-child(7) { transition-delay: 0.48s; }
.bp-anim-grid.in-view > *:nth-child(8) { transition-delay: 0.56s; }

/* ---- HOVER MICROINTERACTIONS ---- */

/* Headers - nav link underline grow */
.bp-nav a {
    position: relative;
    transition: color 200ms ease;
}
.bp-nav a::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -6px;
    width: 0;
    height: 1px;
    background: currentColor;
    transition: width 280ms cubic-bezier(0.16, 1, 0.3, 1), left 280ms cubic-bezier(0.16, 1, 0.3, 1);
}
.bp-nav a:hover::after {
    width: 80%;
    left: 10%;
}

/* Buttons - subtle slide-shimmer on hover */
.elementor-button {
    position: relative;
    overflow: hidden;
    transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1), background-color 200ms ease, color 200ms ease, border-color 200ms ease;
}
.elementor-button::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 50%;
    height: 100%;
    background: linear-gradient(120deg, transparent, rgba(255,255,255,0.18), transparent);
    transition: left 600ms cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none;
}
.elementor-button:hover::before {
    left: 150%;
}

/* Burger cards on home - smoother hover with image scale */
body.home .bp-burger-card img {
    transition: transform 380ms cubic-bezier(0.16, 1, 0.3, 1), filter 380ms ease;
}
body.home .bp-burger-card:hover img {
    transform: scale(1.04);
    filter: saturate(1.2) contrast(1.12) drop-shadow(0 22px 26px rgba(0, 0, 0, 0.62));
}

/* Difference pillar cards: lift the icon on hover */
body.home .bp-difference > .e-con > .elementor-widget-html > div {
    transition: transform 320ms cubic-bezier(0.16, 1, 0.3, 1);
}
body.home .bp-difference > .e-con:hover > .elementor-widget-html > div {
    transform: translateY(-4px);
}

/* Menu cards (non-home pages) hover scale image */
body:not(.home) .bp-menu-card img {
    transition: transform 420ms cubic-bezier(0.16, 1, 0.3, 1), filter 420ms ease;
}
body:not(.home) .bp-menu-card:hover img {
    transform: scale(1.05);
    filter: contrast(1.14) saturate(1.18) drop-shadow(0 22px 28px rgba(0, 0, 0, 0.55));
}

/* Sauce + drink tile hover */
.page-id-12 .bp-sauce-tile,
.page-id-12 .bp-drink-tile {
    transition: transform 320ms cubic-bezier(0.16, 1, 0.3, 1), border-color 320ms ease, box-shadow 320ms ease;
}

/* Feed Coming Soon card subtle border pulse */
@keyframes bp-border-pulse {
    0%, 100% { border-color: rgba(200, 168, 90, 0.34); }
    50%      { border-color: rgba(200, 168, 90, 0.6); }
}
body.home .elementor-widget-html div[style*="FEED"]::before { /* no-op selector, just a reminder */ }

/* ---- Accessibility: respect prefers-reduced-motion ---- */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    .bp-anim > *,
    .bp-anim-grid > * {
        opacity: 1 !important;
        transform: none !important;
    }
}

/* ============================================================
   HERO VIDEO — burger assembly animation as hero background
   ============================================================ */

body.home .bp-hero {
    position: relative;
    overflow: hidden;
}
body.home .bp-hero .bp-hero-video {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
    z-index: 0;
    pointer-events: none;
}
body.home .bp-hero > .e-con,
body.home .bp-hero > .elementor-widget {
    position: relative;
    z-index: 2;
}
body.home .bp-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.94) 0%, rgba(0, 0, 0, 0.65) 18%, rgba(0, 0, 0, 0) 32%);
}
body.home .bp-hero {
    background-image: none !important;
}
@media (prefers-reduced-motion: reduce), (max-width: 600px) {
    body.home .bp-hero .bp-hero-video {
        display: none;
    }
    body.home .bp-hero {
        background-image: url("https://bp.lavackdesign.com/wp-content/uploads/2026/05/bp-home-hero-real-v4.png") !important;
        background-position: right center !important;
        background-size: cover !important;
        background-repeat: no-repeat !important;
    }
}

/* Fix: hero video widget's Elementor wrapper must NOT participate in flex layout.
   We absolute-position it so the existing bp-hero-text + scroll-indicator layout
   continues to work as before. */
body.home .bp-hero > .elementor-widget:has(.bp-hero-video) {
    position: absolute !important;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 0 !important;
}
/* Fallback for browsers that don't support :has() — target the first widget child if it contains video */
body.home .bp-hero > .elementor-widget .bp-hero-video {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
}

/* ============================================================
   FINAL MOBILE QA — overflow control, hero scaling, hamburger nav
   ============================================================ */

/* Stop horizontal scroll site-wide as a safety net */
html, body {
    overflow-x: hidden;
    max-width: 100vw;
}

/* Hamburger toggle (CSS-only checkbox hack) — hidden on desktop, fixed top-right on mobile */
.bp-nav-burger {
    display: none;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    position: relative;
    z-index: 1001;
}
.bp-nav-burger span {
    display: block;
    width: 24px;
    height: 2px;
    background: #F3EDE3;
    transition: transform 280ms cubic-bezier(0.16, 1, 0.3, 1), opacity 280ms ease;
    position: absolute;
}
.bp-nav-burger span:nth-child(1) { transform: translateY(-7px); }
.bp-nav-burger span:nth-child(2) { transform: translateY(0); }
.bp-nav-burger span:nth-child(3) { transform: translateY(7px); }
.bp-nav-toggle:checked ~ .bp-nav-burger span:nth-child(1) { transform: translateY(0) rotate(45deg); }
.bp-nav-toggle:checked ~ .bp-nav-burger span:nth-child(2) { opacity: 0; }
.bp-nav-toggle:checked ~ .bp-nav-burger span:nth-child(3) { transform: translateY(0) rotate(-45deg); }

/* MOBILE BREAKPOINT — applies to ALL pages */
@media (max-width: 767px) {
    /* Hamburger visible, separators hidden, nav becomes fullscreen overlay when toggled */
    .bp-nav-burger {
        display: flex !important;
        position: fixed !important;
        top: 14px !important;
        right: 14px !important;
        width: 48px !important;
        height: 48px !important;
        z-index: 10001 !important;
        background: rgba(5, 5, 5, 0.7) !important;
        border-radius: 4px;
    }
    .bp-nav-dot { display: none !important; }

    .bp-nav {
        display: none !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 9999 !important;
        background: #050505 !important;
        background-color: #050505 !important;
        opacity: 1 !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 12px !important;
        padding: 80px 24px !important;
        overflow-y: auto;
    }
    .bp-nav-toggle:checked ~ .bp-nav {
        display: flex !important;
    }
    .bp-nav-toggle:checked ~ .bp-nav a {
        font-family: "Bebas Neue", "Anton", sans-serif !important;
        font-size: 32px !important;
        letter-spacing: 4px !important;
        padding: 14px 24px !important;
        color: #F3EDE3 !important;
        background: transparent !important;
        text-decoration: none !important;
    }
    /* Hamburger button needs to stay above the open nav */
    .bp-nav-burger { z-index: 10000 !important; }
    .bp-nav-toggle:checked ~ .bp-nav-burger span { background: #F3EDE3 !important; }
    /* Lock background scroll when nav open */
    html:has(.bp-nav-toggle:checked) { overflow: hidden !important; }

    /* Make sure all containers respect viewport width */
    .e-con, .e-con-full, .elementor-section,
    body.home .e-con, body:not(.home) .e-con {
        max-width: 100vw !important;
    }
    .e-con-inner, .elementor-container {
        max-width: 100% !important;
    }

    /* Hero text scaling for inner pages (about, visit, catering, contact, faq) */
    body:not(.home) .bp-menu-hero h1.elementor-heading-title,
    body:not(.home) .bp-menu-hero h2.elementor-heading-title,
    body:not(.home) .bp-story-hero h1.elementor-heading-title,
    body:not(.home) .bp-story-hero h2.elementor-heading-title,
    body:not(.home) .bp-visit-hero h1.elementor-heading-title,
    body:not(.home) .bp-visit-hero h2.elementor-heading-title,
    body:not(.home) .bp-catering-hero h1.elementor-heading-title,
    body:not(.home) .bp-catering-hero h2.elementor-heading-title,
    body:not(.home) .bp-contact-hero h1.elementor-heading-title,
    body:not(.home) .bp-contact-hero h2.elementor-heading-title {
        font-size: clamp(42px, 11vw, 72px) !important;
        line-height: 0.95 !important;
        letter-spacing: -0.02em !important;
        word-break: break-word;
    }
    body:not(.home) .bp-menu-hero,
    body:not(.home) .bp-story-hero,
    body:not(.home) .bp-visit-hero,
    body:not(.home) .bp-catering-hero,
    body:not(.home) .bp-contact-hero {
        min-height: clamp(360px, 56vw, 520px) !important;
        padding: 80px 20px 60px !important;
    }

    /* Hero text containers — give them full width on mobile, center-stack their content */
    body:not(.home) .bp-menu-hero > .e-con,
    body:not(.home) .bp-story-hero > .e-con,
    body:not(.home) .bp-visit-hero > .e-con,
    body:not(.home) .bp-catering-hero > .e-con,
    body:not(.home) .bp-contact-hero > .e-con {
        width: 100% !important;
        max-width: 100% !important;
        align-items: flex-start !important;
        text-align: left !important;
    }

    /* Section titles on inner pages: reduce massive font sizes */
    body:not(.home) .bp-cat-01 h2.elementor-heading-title,
    body:not(.home) .bp-cat-02 h2.elementor-heading-title,
    body:not(.home) .bp-cat-03 h2.elementor-heading-title,
    body:not(.home) .bp-cat-04 h2.elementor-heading-title,
    body:not(.home) .bp-packages h2.elementor-heading-title,
    body:not(.home) .bp-gallery h2.elementor-heading-title,
    body:not(.home) .bp-testimonials h2.elementor-heading-title,
    body:not(.home) .bp-contact-form h2.elementor-heading-title,
    body:not(.home) .bp-follow h2.elementor-heading-title,
    body:not(.home) .bp-occasions h2.elementor-heading-title,
    body:not(.home) .bp-how-it-works h2.elementor-heading-title {
        font-size: clamp(38px, 9vw, 64px) !important;
        line-height: 1 !important;
        word-break: break-word;
    }

    /* Difference + signature card sections on home: full width, no overflow */
    body.home .bp-difference > .e-con > .e-con,
    body.home .bp-signature > .e-con > .e-con {
        width: 100% !important;
        flex: 1 1 100% !important;
        max-width: 100% !important;
        padding: 28px 22px !important;
    }

    /* Catering packages: stack to single column */
    body.page-id-15 .bp-packages > .e-con > .e-con {
        flex: 1 1 100% !important;
        max-width: 100% !important;
    }

    /* Contact cards: stack */
    body.page-id-16 .bp-contact-cards > .e-con > .e-con {
        flex: 1 1 100% !important;
        max-width: 100% !important;
    }

    /* Body text on inner pages — give breathing room */
    body:not(.home) .elementor-widget-text-editor {
        padding-inline: 4px;
    }

    /* Menu page chip grid - already overflow-x: auto, no change */

    /* Footer columns on mobile: brand spans full row, link columns sit 2 per row.
       Using CSS Grid since it sidesteps Elementor's flex CSS-var width calc. */
    body .elementor-23 .bp-footer > .e-con {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 32px 20px !important;
        align-items: start !important;
        padding-inline: 20px !important;
    }
    /* Brand/contact column (1st child) spans both columns */
    body .elementor-23 .bp-footer > .e-con > .e-con:first-child {
        grid-column: 1 / -1 !important;
        width: auto !important;
        max-width: 100% !important;
    }
    /* Remaining link columns naturally fill 1fr each */
    body .elementor-23 .bp-footer > .e-con > .e-con:not(:first-child) {
        width: auto !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
    /* Tighten column heading + link spacing on mobile */
    body .elementor-23 .bp-footer .elementor-widget-heading .elementor-heading-title {
        font-size: 12px !important;
        letter-spacing: 2.5px !important;
        margin-bottom: 10px !important;
    }
    body .elementor-23 .bp-footer ul li { margin: 6px 0 !important; }
    body .elementor-23 .bp-footer ul li a { font-size: 13px !important; }

    /* Footer bottom strips: force wrap, shrink text so nothing clips on mobile */
    body .elementor-23 .bp-footer .elementor-widget-html div[style*="display:flex"] {
        flex-wrap: wrap !important;
        gap: 10px 12px !important;
        justify-content: center !important;
        text-align: center !important;
    }
    body .elementor-23 .bp-footer .elementor-widget-html div[style*="display:flex"] > div,
    body .elementor-23 .bp-footer .elementor-widget-html div[style*="display:flex"] > span {
        max-width: 100% !important;
        text-align: center !important;
    }
    /* Brand strip - smaller text */
    body .elementor-23 .bp-footer div[style*="SAUDI MADE"],
    body .elementor-23 .bp-footer div[style*="Made in Saudi Arabia"] {
        font-size: 9px !important;
    }
    body .elementor-23 .bp-footer span[style*="MAKE IT PAPA"],
    body .elementor-23 .bp-footer div[style*="MAKE IT PAPA"] {
        font-size: 13px !important;
    }
    body .elementor-23 .bp-footer div[style*="ALLERGENS"] {
        font-size: 9px !important;
    }
    body .elementor-23 .bp-footer img[src*="mascot"] {
        width: 36px !important;
        height: auto !important;
    }
    /* WE ACCEPT label + payment chip text */
    body .elementor-23 .bp-footer span[style*="WE ACCEPT"],
    body .elementor-23 .bp-footer span[style*="3px"][style*="uppercase"] {
        font-size: 9px !important;
    }
    body .elementor-23 .bp-footer span[style*="border"][style*="font-weight:600"] {
        font-size: 10px !important;
        padding: 3px 8px !important;
    }
    /* Copyright */
    body .elementor-23 .bp-footer div[style*="2026"],
    body .elementor-23 .bp-footer div[style*="2025"] {
        font-size: 10px !important;
        width: 100% !important;
        text-align: center !important;
    }
    /* Lavack Design credit */
    body .elementor-23 .bp-footer div[style*="LAVACK DESIGN"],
    body .elementor-23 .bp-footer div:has(> a[href*="lavackdesign.com"]) {
        font-size: 9px !important;
        letter-spacing: 0.8px !important;
        padding: 10px 14px 4px !important;
        line-height: 1.5 !important;
        text-align: center !important;
        width: 100% !important;
    }
    body .elementor-23 a[href*="lavackdesign.com"] {
        font-size: 9px !important;
        letter-spacing: 0.8px !important;
        white-space: nowrap;
    }
    body .elementor-23 .bp-footer {
        padding-inline: 14px !important;
        overflow-x: hidden;
    }

    /* Catering CTA inquiry form: single column instead of 2 */
    body.page-id-15 #inquire {
        grid-template-columns: 1fr !important;
    }
    body.page-id-15 #inquire input[style*="grid-column"],
    body.page-id-15 #inquire textarea[style*="grid-column"],
    body.page-id-15 #inquire button[style*="grid-column"] {
        grid-column: span 1 !important;
    }

    /* Hide the FAQ "Coming Soon" outer padding overflow */
    body.page-id-210 h1[style*="font-size"] {
        font-size: clamp(48px, 14vw, 96px) !important;
    }

    /* Page paddings - normalize inner inline padding */
    body:not(.home) .bp-cat-01,
    body:not(.home) .bp-cat-02,
    body:not(.home) .bp-cat-03,
    body:not(.home) .bp-cat-04,
    body:not(.home) .bp-packages,
    body:not(.home) .bp-occasions,
    body:not(.home) .bp-how-it-works,
    body:not(.home) .bp-gallery,
    body:not(.home) .bp-testimonials,
    body:not(.home) .bp-inquire,
    body:not(.home) .bp-contact-cards,
    body:not(.home) .bp-contact-form,
    body:not(.home) .bp-follow,
    body:not(.home) .bp-faq-teaser {
        padding-inline: 20px !important;
    }
}

/* Tablet adjustments (768-1024) */
@media (min-width: 768px) and (max-width: 1024px) {
    body.home .bp-difference > .e-con > .e-con,
    body.home .bp-signature > .e-con > .e-con {
        flex: 1 1 calc(50% - 12px) !important;
        max-width: calc(50% - 12px) !important;
    }
}

/* Pass 2: tighter mobile typography + word-wrap safety for the remaining overflow */
@media (max-width: 767px) {
    /* Reduce ALL Anton/Bebas display headings further so wide words like OCCASION/WAGYU fit */
    body:not(.home) h1.elementor-heading-title,
    body:not(.home) h2.elementor-heading-title,
    body:not(.home) h3.elementor-heading-title {
        font-size: clamp(32px, 8.5vw, 56px) !important;
        line-height: 0.96 !important;
        letter-spacing: -0.02em !important;
        word-break: break-word;
        hyphens: auto;
        -webkit-hyphens: auto;
    }
    /* The first heading (kicker) in inner hero sections is small Inter - leave it small */
    body:not(.home) .bp-menu-hero .elementor-widget-heading:first-child .elementor-heading-title,
    body:not(.home) .bp-story-hero .elementor-widget-heading:first-child .elementor-heading-title,
    body:not(.home) .bp-visit-hero .elementor-widget-heading:first-child .elementor-heading-title,
    body:not(.home) .bp-catering-hero .elementor-widget-heading:first-child .elementor-heading-title,
    body:not(.home) .bp-contact-hero .elementor-widget-heading:first-child .elementor-heading-title {
        font-size: 11px !important;
        letter-spacing: 0.22em !important;
    }

    /* Hours / other section h2 — same constraint */
    body:not(.home) .bp-hours h2.elementor-heading-title,
    body:not(.home) .bp-occasions h2.elementor-heading-title,
    body:not(.home) .bp-packages h2.elementor-heading-title,
    body:not(.home) .bp-how-it-works h2.elementor-heading-title,
    body:not(.home) .bp-gallery h2.elementor-heading-title,
    body:not(.home) .bp-final-cta h1.elementor-heading-title,
    body:not(.home) .bp-final-cta h2.elementor-heading-title,
    body:not(.home) .bp-inquire h1.elementor-heading-title,
    body:not(.home) .bp-inquire h2.elementor-heading-title,
    body:not(.home) .bp-contact-form h2.elementor-heading-title,
    body:not(.home) .bp-follow h2.elementor-heading-title {
        font-size: clamp(34px, 8.5vw, 56px) !important;
        line-height: 0.98 !important;
        word-break: break-word;
        hyphens: auto;
    }

    /* Delivery partner row: wrap to vertical on tight screens */
    .bp-drink-photo-grid,
    div[class*="ALSO ORDER"] {
        flex-wrap: wrap !important;
    }
    /* The footer / delivery HTML widget has inline flex — force wrap via container */
    body:not(.home) .bp-context-strip > div,
    body .elementor-widget-html div[style*="display:flex"][style*="gap:32px"] {
        flex-wrap: wrap !important;
        justify-content: center !important;
        row-gap: 8px !important;
    }
    /* Specifically for the HungerStation / Keeta / Jahez row */
    body .elementor-widget-html div[aria-label*="Drinks"],
    body .elementor-widget-html div[style*="HungerStation"] {
        flex-wrap: wrap !important;
    }

    /* Body text on inner pages — ensure word-wrap and tighter inline padding */
    body:not(.home) .elementor-widget-text-editor,
    body:not(.home) .elementor-widget-text-editor p {
        word-break: break-word;
        hyphens: auto;
        -webkit-hyphens: auto;
        overflow-wrap: anywhere;
    }

    /* Inner hero text container must allow wrapping fully */
    body:not(.home) .bp-menu-hero,
    body:not(.home) .bp-story-hero,
    body:not(.home) .bp-visit-hero,
    body:not(.home) .bp-catering-hero,
    body:not(.home) .bp-contact-hero {
        padding-inline: 16px !important;
        align-items: flex-start !important;
    }
    body:not(.home) .bp-menu-hero > .e-con,
    body:not(.home) .bp-story-hero > .e-con,
    body:not(.home) .bp-visit-hero > .e-con,
    body:not(.home) .bp-catering-hero > .e-con,
    body:not(.home) .bp-contact-hero > .e-con {
        padding: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* FAQ Coming Soon — the inline styles use !important via attribute already, override safely */
    body.page-id-210 .page-content h1,
    body.page-id-210 [style*="font-family"] h1 {
        font-size: clamp(46px, 14vw, 96px) !important;
    }
    body.page-id-210 .page-content p {
        font-size: 14px !important;
        padding-inline: 8px;
    }

    /* Drink/sauce TILE H3 — keep readable when grid stacks to 1 col */
    .page-id-12 .bp-sauce-tile h3,
    .page-id-12 .bp-drink-tile h3 {
        font-size: 16px !important;
    }
}

/* Pass 3: HIGH-specificity mobile heading overrides
   The original rule used `.bp-X-hero h1.elementor-heading-title` (specificity 0,0,2,2);
   we must match or exceed that to override. */
@media (max-width: 767px) {
    body:not(.home) .bp-menu-hero h1.elementor-heading-title,
    body:not(.home) .bp-menu-hero h2.elementor-heading-title,
    body:not(.home) .bp-story-hero h1.elementor-heading-title,
    body:not(.home) .bp-story-hero h2.elementor-heading-title,
    body:not(.home) .bp-visit-hero h1.elementor-heading-title,
    body:not(.home) .bp-visit-hero h2.elementor-heading-title,
    body:not(.home) .bp-catering-hero h1.elementor-heading-title,
    body:not(.home) .bp-catering-hero h2.elementor-heading-title,
    body:not(.home) .bp-contact-hero h1.elementor-heading-title,
    body:not(.home) .bp-contact-hero h2.elementor-heading-title,
    body:not(.home) .elementor-element h1.elementor-heading-title,
    body:not(.home) .elementor-element h2.elementor-heading-title {
        font-size: clamp(32px, 9vw, 54px) !important;
        line-height: 0.98 !important;
        letter-spacing: -0.02em !important;
        word-break: break-word !important;
        overflow-wrap: anywhere !important;
        hyphens: auto !important;
        -webkit-hyphens: auto !important;
        max-width: 100% !important;
    }
    /* Section h2 headings — match the .bp-cat-XX h2 specificity */
    body:not(.home) .bp-cat-01 h2.elementor-heading-title,
    body:not(.home) .bp-cat-02 h2.elementor-heading-title,
    body:not(.home) .bp-cat-03 h2.elementor-heading-title,
    body:not(.home) .bp-cat-04 h2.elementor-heading-title,
    body:not(.home) .bp-packages h2.elementor-heading-title,
    body:not(.home) .bp-occasions h2.elementor-heading-title,
    body:not(.home) .bp-how-it-works h2.elementor-heading-title,
    body:not(.home) .bp-hours h2.elementor-heading-title,
    body:not(.home) .bp-gallery h2.elementor-heading-title,
    body:not(.home) .bp-testimonials h2.elementor-heading-title,
    body:not(.home) .bp-contact-form h2.elementor-heading-title,
    body:not(.home) .bp-follow h2.elementor-heading-title,
    body:not(.home) .bp-inquire h2.elementor-heading-title,
    body:not(.home) .bp-final-cta h2.elementor-heading-title {
        font-size: clamp(30px, 8vw, 48px) !important;
        line-height: 0.98 !important;
        word-break: break-word !important;
        overflow-wrap: anywhere !important;
        max-width: 100% !important;
    }

    /* Hero kicker (first heading widget) stays small */
    body:not(.home) .bp-menu-hero .elementor-widget-heading:first-child h2.elementor-heading-title,
    body:not(.home) .bp-story-hero .elementor-widget-heading:first-child h2.elementor-heading-title,
    body:not(.home) .bp-visit-hero .elementor-widget-heading:first-child h2.elementor-heading-title,
    body:not(.home) .bp-catering-hero .elementor-widget-heading:first-child h2.elementor-heading-title,
    body:not(.home) .bp-contact-hero .elementor-widget-heading:first-child h2.elementor-heading-title,
    body:not(.home) .bp-menu-hero .elementor-widget-heading:first-child div.elementor-heading-title,
    body:not(.home) .bp-story-hero .elementor-widget-heading:first-child div.elementor-heading-title,
    body:not(.home) .bp-visit-hero .elementor-widget-heading:first-child div.elementor-heading-title,
    body:not(.home) .bp-catering-hero .elementor-widget-heading:first-child div.elementor-heading-title,
    body:not(.home) .bp-contact-hero .elementor-widget-heading:first-child div.elementor-heading-title {
        font-size: 11px !important;
        letter-spacing: 0.22em !important;
        word-break: normal !important;
    }

    /* HOME page headings — constrain so hero text fits above the fold and WAGYU stays on one line */
    body.home .elementor-heading-title {
        word-break: normal !important;
        overflow-wrap: normal !important;
        white-space: nowrap;
        max-width: 100% !important;
    }
    body.home .bp-hero-text .elementor-heading-title {
        white-space: nowrap;
    }
    /* HOME page section h2 headings (DIFFERENCE, SIGNATURE BURGERS, JOIN THE INSIDER LIST, etc.)
       Original CSS pins min at 62px which overflows on mobile. Shrink + word-wrap. */
    html body.home .elementor-11 .bp-difference h2.elementor-heading-title,
    html body.home .elementor-11 .bp-signature h2.elementor-heading-title,
    html body.home .elementor-11 .bp-reviews h2.elementor-heading-title,
    html body.home .elementor-11 .bp-insider h2.elementor-heading-title,
    html body.home .elementor-11 .bp-instagram h2.elementor-heading-title,
    html body.home .bp-after-dark h2.elementor-heading-title,
    html body.home .bp-final-cta h1.elementor-heading-title,
    html body.home .bp-final-cta h2.elementor-heading-title,
    html body.home .bp-catering-cta h1.elementor-heading-title,
    html body.home .bp-catering-cta h2.elementor-heading-title,
    html body.home .bp-story h2.elementor-heading-title,
    html body.home .bp-story h1.elementor-heading-title {
        font-size: clamp(34px, 9vw, 56px) !important;
        line-height: 0.98 !important;
        letter-spacing: -0.02em !important;
        word-break: break-word !important;
        overflow-wrap: anywhere !important;
        max-width: 100% !important;
    }
    /* Burger card title (SOLO, FIRE, TRUFFLE) on signature burgers row */
    html body.home .bp-burger-card h3.elementor-heading-title {
        font-size: clamp(36px, 11vw, 64px) !important;
    }
    /* "THE ART OF" small kicker on home hero (widget d32496d) — small uppercase */
    body.home .elementor-11 .elementor-element-d32496d .elementor-heading-title {
        font-size: 11px !important;
        letter-spacing: 0.28em !important;
        line-height: 1.4 !important;
    }
    /* "WAGYU" main hero title (widget 7a6f5b3) — fit 5 chars in 390px viewport with padding */
    body.home .elementor-11 .elementor-element-7a6f5b3 .elementor-heading-title {
        font-size: clamp(56px, 17vw, 88px) !important;
        line-height: 0.94 !important;
        letter-spacing: -0.01em !important;
        white-space: nowrap;
    }
    /* "MAKE IT PAPA'S WAY." gold subhead (widget 3d2fb76) */
    body.home .elementor-11 .elementor-element-3d2fb76 .elementor-heading-title {
        font-size: 16px !important;
        line-height: 1.1 !important;
        letter-spacing: 1px !important;
        white-space: normal;
    }
    /* Tighten subhead text-editor */
    body.home .elementor-11 .elementor-element-54a6975 {
        font-size: 12px !important;
        line-height: 1.4 !important;
    }
    /* Hero spacers — smaller on mobile to bring everything up */
    body.home .bp-hero-text > .elementor-widget-spacer .elementor-spacer-inner {
        height: 14px !important;
    }
    /* Tighten hero overall padding so everything fits above the fold */
    body.home .bp-hero {
        padding: 44px 22px 56px !important;
        min-height: auto !important;
    }
    /* Logo image at top of hero — keep small */
    body.home .elementor-11 .elementor-element-3f94ee0 img {
        width: 110px !important;
        max-width: 110px !important;
    }
}

/* Pass 4: NUCLEAR mobile override - flat font sizes with maximum-specificity selectors */
@media (max-width: 767px) {
    /* Force smaller flat font on all headings inside Elementor widgets on non-home pages */
    html body:not(.home) .elementor-widget-heading .elementor-heading-title,
    html body:not(.home) .elementor-element .elementor-widget-heading h1.elementor-heading-title,
    html body:not(.home) .elementor-element .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .elementor-element .elementor-widget-heading h3.elementor-heading-title {
        font-size: 36px !important;
        line-height: 1.02 !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    /* Restore small size for first-heading (kicker) in hero containers */
    html body:not(.home) .bp-menu-hero .elementor-widget-heading:first-of-type .elementor-heading-title,
    html body:not(.home) .bp-story-hero .elementor-widget-heading:first-of-type .elementor-heading-title,
    html body:not(.home) .bp-visit-hero .elementor-widget-heading:first-of-type .elementor-heading-title,
    html body:not(.home) .bp-catering-hero .elementor-widget-heading:first-of-type .elementor-heading-title,
    html body:not(.home) .bp-contact-hero .elementor-widget-heading:first-of-type .elementor-heading-title {
        font-size: 11px !important;
        letter-spacing: 0.22em !important;
    }
    /* Ensure section h2s are smaller still if too wide */
    html body:not(.home) .bp-occasions .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-hours .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-packages .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-final-cta .elementor-widget-heading h1.elementor-heading-title,
    html body:not(.home) .bp-final-cta .elementor-widget-heading h2.elementor-heading-title {
        font-size: 32px !important;
        line-height: 1.0 !important;
    }
    /* Catch any inner section title heading widgets (.bp-cat-XX h2) */
    html body:not(.home) .bp-section .elementor-widget-heading h2.elementor-heading-title {
        font-size: 32px !important;
        word-break: break-word !important;
    }
    /* HOME hero per-widget mobile sizing (replaces broad 64px rule).
       Per-element rules with matching specificity that target the actual widget IDs. */
    html body.home .elementor-11 .elementor-element.elementor-element-d32496d .elementor-heading-title {
        /* THE ART OF kicker */
        font-size: 11px !important;
        letter-spacing: 0.28em !important;
        line-height: 1.4 !important;
        font-family: "Inter", sans-serif !important;
    }
    html body.home .elementor-11 .elementor-element.elementor-element-7a6f5b3 .elementor-heading-title {
        /* WAGYU main title — fit 5 chars on one line within viewport minus padding */
        font-size: clamp(48px, 13.5vw, 72px) !important;
        line-height: 0.96 !important;
        letter-spacing: -0.02em !important;
        white-space: nowrap !important;
    }
    html body.home .elementor-11 .elementor-element.elementor-element-3d2fb76 .elementor-heading-title {
        /* MAKE IT PAPA'S WAY subhead */
        font-size: 18px !important;
        line-height: 1.1 !important;
        letter-spacing: 1.5px !important;
    }
}
/* Pass 5: Force containment so no heading can ever overflow regardless of font-size */
@media (max-width: 767px) {
    /* Widget container max-width */
    body:not(.home) .elementor-widget-heading,
    body:not(.home) .elementor-widget-heading .elementor-widget-container {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    /* Heading text itself - allow breaking anywhere */
    body:not(.home) .elementor-widget-heading .elementor-heading-title {
        max-width: 100% !important;
        word-break: break-word !important;
        overflow-wrap: anywhere !important;
        hyphens: auto !important;
    }
    /* Also constrain the parent containers on these pages */
    body:not(.home) .e-con,
    body:not(.home) .e-con-inner {
        max-width: 100vw !important;
        box-sizing: border-box !important;
    }
    /* Force inner widget container to respect parent width */
    body .elementor-widget {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}

/* Pass 6: switch wide Anton font to condensed Bebas Neue on mobile for long headings */
@media (max-width: 767px) {
    html body:not(.home) .elementor-widget-heading h1.elementor-heading-title,
    html body:not(.home) .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .elementor-widget-heading h3.elementor-heading-title {
        font-family: "Bebas Neue", "Anton", "Inter", sans-serif !important;
        font-size: 38px !important;
        letter-spacing: 0.02em !important;
        line-height: 1.02 !important;
    }
    html body:not(.home) .bp-menu-hero .elementor-widget-heading h1.elementor-heading-title,
    html body:not(.home) .bp-story-hero .elementor-widget-heading h1.elementor-heading-title,
    html body:not(.home) .bp-visit-hero .elementor-widget-heading h1.elementor-heading-title,
    html body:not(.home) .bp-catering-hero .elementor-widget-heading h1.elementor-heading-title,
    html body:not(.home) .bp-contact-hero .elementor-widget-heading h1.elementor-heading-title,
    html body:not(.home) .bp-menu-hero .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-story-hero .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-visit-hero .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-catering-hero .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-contact-hero .elementor-widget-heading h2.elementor-heading-title {
        font-size: 48px !important;
        letter-spacing: 0.02em !important;
        line-height: 0.96 !important;
    }
    /* Restore kicker styling for first-of-type small headings */
    html body:not(.home) .bp-menu-hero .elementor-widget-heading:first-of-type .elementor-heading-title,
    html body:not(.home) .bp-story-hero .elementor-widget-heading:first-of-type .elementor-heading-title,
    html body:not(.home) .bp-visit-hero .elementor-widget-heading:first-of-type .elementor-heading-title,
    html body:not(.home) .bp-catering-hero .elementor-widget-heading:first-of-type .elementor-heading-title,
    html body:not(.home) .bp-contact-hero .elementor-widget-heading:first-of-type .elementor-heading-title {
        font-family: "Inter", sans-serif !important;
        font-size: 11px !important;
        letter-spacing: 0.22em !important;
    }
}

/* Pass 7: handle remaining minor overflow — kicker divs, delivery partner row, etc. */
@media (max-width: 767px) {
    /* Kicker divs (those that are .elementor-heading-title but div not h2 — small uppercase gold) */
    html body:not(.home) .elementor-widget-heading div.elementor-heading-title {
        font-family: "Inter", sans-serif !important;
        font-size: 11px !important;
        letter-spacing: 0.22em !important;
        line-height: 1.4 !important;
        word-break: normal !important;
    }
    /* Slightly smaller hero h1 to give more breathing room */
    html body:not(.home) .bp-menu-hero .elementor-widget-heading h1.elementor-heading-title,
    html body:not(.home) .bp-story-hero .elementor-widget-heading h1.elementor-heading-title,
    html body:not(.home) .bp-visit-hero .elementor-widget-heading h1.elementor-heading-title,
    html body:not(.home) .bp-catering-hero .elementor-widget-heading h1.elementor-heading-title,
    html body:not(.home) .bp-contact-hero .elementor-widget-heading h1.elementor-heading-title {
        font-size: 44px !important;
    }
    /* Section h2 smaller still to fit long phrases like PRIVATE PARTIES */
    html body:not(.home) .bp-section .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-occasions .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-packages .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-hours .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-inquire .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-final-cta .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-contact-form .elementor-widget-heading h2.elementor-heading-title,
    html body:not(.home) .bp-follow .elementor-widget-heading h2.elementor-heading-title {
        font-size: 32px !important;
    }

    /* Delivery partner row "HungerStation · Keeta · Jahez" - force wrap onto next line */
    body .elementor-widget-html div[style*="display:flex"][style*="gap:32px"],
    body .elementor-widget-html div[style*="display:flex"][style*="justify-content:center"] {
        flex-wrap: wrap !important;
        gap: 14px 18px !important;
        row-gap: 12px !important;
    }
    /* Make occupy width  */
    body .elementor-widget-html div[style*="HungerStation"] {
        flex-wrap: wrap !important;
        justify-content: center !important;
    }
}

/* ============================================================
   Pass 8 (2026-05-15) — Mobile nav reinforcement,
   consistent ADD-ONS + DRINKS grid, tighter footer/section
   padding, and back-to-top button styling.
   ============================================================ */

/* --- Mobile nav: belt-and-suspenders full-screen fill --- */
@media (max-width: 767px) {
    html body .bp-nav,
    html body.home .bp-nav,
    html body:not(.home) .bp-nav {
        display: none !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        min-height: 100vh !important;
        min-height: 100dvh !important;
        max-width: 100vw !important;
        z-index: 9999 !important;
        background: #050505 !important;
        background-color: #050505 !important;
        background-image: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        opacity: 1 !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 90px 24px 40px !important;
        overflow-y: auto !important;
        margin: 0 !important;
    }
    html body .bp-nav-toggle:checked ~ .bp-nav {
        display: flex !important;
    }
    /* Keep header / hero out of the stacking ladder above nav */
    html body .bp-header,
    html body .bp-hero,
    html body .bp-menu-hero,
    html body .bp-story-hero,
    html body .bp-visit-hero,
    html body .bp-catering-hero,
    html body .bp-contact-hero {
        z-index: 1 !important;
    }
}

/* --- ADD-ONS: 2-col consistent grid on mobile --- */
@media (max-width: 767px) {
    body.page-id-12 .bp-addons {
        --grid-gap: 10px;
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: var(--grid-gap) !important;
        padding-inline: 16px !important;
        padding-top: 32px !important;
        padding-bottom: 36px !important;
        align-items: stretch !important;
    }
    /* Section heading spans full width above the grid */
    body.page-id-12 .bp-addons > .elementor-widget-heading {
        grid-column: 1 / -1 !important;
        margin-bottom: 4px !important;
        text-align: center !important;
    }
    body.page-id-12 .bp-addons > .elementor-widget-heading h2.elementor-heading-title {
        font-family: "Bebas Neue", "Anton", sans-serif !important;
        font-size: 30px !important;
        letter-spacing: 0.05em !important;
        line-height: 1 !important;
    }
    /* Each addon card: compact, dark, centered */
    body.page-id-12 .bp-addon-card {
        --padding-top: 16px !important;
        --padding-bottom: 16px !important;
        --padding-left: 10px !important;
        --padding-right: 10px !important;
        background: #141414 !important;
        border: 1px solid rgba(200, 168, 90, 0.15) !important;
        min-height: 96px !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        flex: 0 0 auto !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }
    body.page-id-12 .bp-addon-card h4.elementor-heading-title,
    body.page-id-12 .bp-addon-card .elementor-heading-title {
        font-family: "Inter", sans-serif !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        letter-spacing: 1.2px !important;
        line-height: 1.25 !important;
        color: #C8A85A !important;
        text-align: center !important;
        word-break: keep-all !important;
        overflow-wrap: break-word !important;
        margin: 0 !important;
    }
    body.page-id-12 .bp-addon-card .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title,
    body.page-id-12 .bp-addon-card div.elementor-heading-title {
        font-size: 11px !important;
        font-weight: 400 !important;
        color: #8A8580 !important;
        letter-spacing: 0.8px !important;
        margin-top: 4px !important;
    }
}

/* --- DRINKS: override inline 4-col grid to 2-col on mobile --- */
@media (max-width: 767px) {
    /* Tighten section padding */
    body.page-id-12 .bp-drinks {
        padding-top: 32px !important;
        padding-bottom: 36px !important;
        padding-inline: 16px !important;
    }
    body.page-id-12 .bp-drinks h2.elementor-heading-title {
        font-size: 30px !important;
        letter-spacing: 0.05em !important;
        line-height: 1 !important;
    }
    /* Override the inline 4-col grid */
    body.page-id-12 .bp-drinks .elementor-widget-html div[style*="grid-template-columns:repeat(4,1fr)"],
    body.page-id-12 .bp-drinks .elementor-widget-html div[style*="display:grid"] {
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        max-width: 100% !important;
        padding-inline: 0 !important;
    }
    /* Drink tiles: match addon visual treatment */
    body.page-id-12 .bp-drinks .elementor-widget-html div[style*="display:grid"] > div {
        padding: 16px 10px !important;
        min-height: 76px !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;
        text-align: center !important;
        font-size: 11px !important;
        letter-spacing: 1px !important;
        line-height: 1.2 !important;
        word-break: keep-all !important;
        overflow-wrap: break-word !important;
        border: 1px solid rgba(200, 168, 90, 0.15) !important;
    }
    body.page-id-12 .bp-drinks .elementor-widget-html div[style*="display:grid"] > div > div {
        font-size: 10px !important;
        letter-spacing: 0.8px !important;
        margin-top: 4px !important;
    }
}

/* --- General mobile section padding tightening (all pages) --- */
@media (max-width: 767px) {
    body .bp-section,
    body.home .bp-section,
    body:not(.home) .bp-section {
        padding-top: clamp(36px, 6vw, 56px) !important;
        padding-bottom: clamp(40px, 6vw, 60px) !important;
    }
    /* Menu category sections */
    body.page-id-12 .bp-cat-beef,
    body.page-id-12 .bp-cat-chicken,
    body.page-id-12 .bp-cat-fries,
    body.page-id-12 .bp-cat-sides,
    body.page-id-12 .bp-cat-combos,
    body.page-id-12 .bp-dipping {
        padding-top: 36px !important;
        padding-bottom: 36px !important;
    }
}

/* --- Footer mobile: tighter padding --- */
@media (max-width: 767px) {
    body .elementor-23 .bp-footer {
        padding-top: 28px !important;
        padding-bottom: 20px !important;
    }
    body .elementor-23 .bp-footer > .e-con {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        gap: 22px 16px !important;
    }
    body .elementor-23 .bp-footer > .e-con > .e-con {
        padding-top: 6px !important;
        padding-bottom: 6px !important;
    }
    body .elementor-23 .bp-footer .elementor-widget {
        margin-bottom: 6px !important;
    }
    body .elementor-23 .bp-footer .elementor-widget-heading {
        margin-bottom: 4px !important;
    }
    body .elementor-23 .bp-footer ul {
        margin: 0 !important;
        padding: 0 !important;
    }
    body .elementor-23 .bp-footer ul li {
        margin: 3px 0 !important;
    }
}

/* --- Back-to-top floating button --- */
.bp-back-to-top {
    position: fixed;
    right: 16px;
    bottom: 16px;
    min-width: 64px;
    height: 40px;
    padding: 0 14px 0 12px;
    border-radius: 999px;
    background: #C8A85A;
    color: #0A0A0A;
    border: 1px solid #C8A85A;
    cursor: pointer;
    z-index: 9998;
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity 0.25s ease, transform 0.25s ease, background-color 0.2s ease;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.5);
    font-family: "Inter", sans-serif;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-decoration: none;
}
.bp-back-to-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}
.bp-back-to-top:hover,
.bp-back-to-top:focus-visible {
    background: #d6b76b;
    outline: none;
}
.bp-back-to-top .bp-back-to-top-arrow {
    font-size: 14px;
    line-height: 1;
    font-weight: 700;
    color: #0A0A0A;
    display: inline-block;
    margin-top: -1px;
}
.bp-back-to-top .bp-back-to-top-label {
    color: #0A0A0A;
    font-weight: 700;
}
/* Hide on print and when nav is open (don't compete with overlay) */
@media print { .bp-back-to-top { display: none !important; } }
html:has(.bp-nav-toggle:checked) .bp-back-to-top {
    opacity: 0 !important;
    pointer-events: none !important;
}
@media (prefers-reduced-motion: reduce) {
    .bp-back-to-top { transition: opacity 0.15s linear; transform: none !important; }
}
