/* EzdossFood front-end styles. All colors/fonts come from CSS custom
   properties set inline per active theme (see class-ezdf-theme-manager.php).
   Deliberately NOT redeclared here: this selector previously hardcoded the
   "Red (Default)" theme's own values directly on `.ezdossfood-wrap`, which
   has the exact same selector/specificity as the active theme's inline
   override — so it only "worked" by relying on the inline block loading
   later in the page's <head>. Any CSS optimization/combine plugin that
   reorders or merges stylesheets can flip that order and silently revert
   every site back to red regardless of which theme is actually active.
   Each var(--ezdf-*, fallback) below still degrades gracefully to the Red
   defaults in the rare case the inline override never printed at all, but
   nothing here can outright override a real active theme anymore. */

.ezdossfood-wrap {
	font-family: var(--ezdf-font, Poppins, sans-serif);
	color: var(--ezdf-text, #222222);
}

.ezdossfood-wrap * {
	box-sizing: border-box;
}

.ezdf-layout {
	display: flex;
	gap: 24px;
	align-items: flex-start;
	flex-wrap: wrap;
}

.ezdf-menu-column {
	flex: 1 1 640px;
	min-width: 280px;
	/* 1.4.0: never wider than the menu — a one-row tab bar scrolls inside it
	   instead of stretching the column to the width of every tab. */
	max-width: 100%;
	background: var(--ezdf-container-bg, transparent);
	border-radius: var(--ezdf-radius, 6px);
	padding: 16px;
}

.ezdf-cart-column {
	flex: 0 0 320px;
	min-width: 280px;
	position: sticky;
	top: 16px;
	background: var(--ezdf-container-bg, transparent);
	border-radius: var(--ezdf-radius, 6px);
	padding: 16px;
}

/* ---------- Buttons ---------- */
.ezdf-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: none;
	border-radius: var(--ezdf-radius, 6px);
	padding: 8px 18px;
	font-family: var(--ezdf-font, Poppins, sans-serif);
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	transition: opacity 0.15s ease;
}
.ezdf-btn:hover {
	opacity: 0.88;
}
.ezdf-btn-select,
.ezdf-btn-solid {
	background: var(--ezdf-button, #F2C94C);
	color: var(--ezdf-button-text, #FFFFFF);
}
.ezdf-btn-outline {
	background: transparent;
	color: var(--ezdf-primary, #E8433C);
	border: 1px solid var(--ezdf-primary, #E8433C);
}

/* ---------- Accordion ---------- */
.ezdf-accordion-item {
	margin-bottom: 12px;
	border-radius: var(--ezdf-radius, 6px);
	overflow: hidden;
}
.ezdf-accordion-header {
	width: 100%;
	overflow: hidden;
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--ezdf-section-bg, #E8433C);
	color: var(--ezdf-section-text, #fff);
	border: none;
	padding: 16px 20px;
	font-size: 16px;
	font-weight: 700;
	font-family: var(--ezdf-font, Poppins, sans-serif);
	cursor: pointer;
	text-align: left;
}
.ezdf-accordion-cat-img {
	/* 1.4.0: size/shape from the theme's Categories settings (see settings_css). */
	width: var(--ezdf-cat-img-w, var(--ezdf-cat-img-h, 28px));
	height: var(--ezdf-cat-img-h, 28px);
	border-radius: var(--ezdf-cat-img-r, 50%);
	object-fit: cover;
	flex-shrink: 0;
}
/* "Tuck the picture into the header edge" — the picture fills the bar's left end. */
.ezdf-catimg-flush .ezdf-accordion-cat-img {
	margin: -10px 0 -10px -13px;
}
.ezdf-accordion-title {
	flex: 1;
}
.ezdf-accordion-caret {
	transition: transform 0.2s ease;
}
.ezdf-accordion-item.is-open .ezdf-accordion-caret {
	transform: rotate(180deg);
}
.ezdf-accordion-body {
	display: none;
	background: var(--ezdf-bg, #fff);
	padding: 20px;
}
.ezdf-accordion-item.is-open .ezdf-accordion-body {
	display: block;
}

/* ---------- Product row (accordion + tabs) ---------- */
.ezdf-product-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 16px;
}
.ezdf-product-row {
	display: flex;
	align-items: center;
	gap: 12px;
}
.ezdf-product-img {
	width: 56px;
	height: 56px;
	border-radius: var(--ezdf-radius, 6px);
	object-fit: cover;
	flex-shrink: 0;
}
.ezdf-product-info {
	flex: 1;
	min-width: 0;
}
.ezdf-product-name {
	font-weight: var(--ezdf-item-name-weight, 600);
	font-size: var(--ezdf-item-name-size, 14px);
}
.ezdf-product-price {
	font-weight: 700;
	color: var(--ezdf-accent, #E8433C);
	white-space: nowrap;
	font-size: 13px;
}

/* ---------- Grid template ---------- */
.ezdf-grid-category {
	margin-bottom: 28px;
	background: var(--ezdf-item-area-bg, transparent);
	padding: var(--ezdf-item-area-pad, 0);
	border-radius: var(--ezdf-item-area-r, 0);
}
.ezdf-grid-category-title {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--ezdf-section-bg, #E8433C);
	color: var(--ezdf-section-text, #fff);
	padding: 12px 16px;
	border-radius: var(--ezdf-radius, 6px);
	margin-bottom: 12px;
}
.ezdf-grid-cat-img {
	width: var(--ezdf-cat-img-w, var(--ezdf-cat-img-h, 26px));
	height: var(--ezdf-cat-img-h, 26px);
	border-radius: var(--ezdf-cat-img-r, 50%);
	object-fit: cover;
}
.ezdf-grid-products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(var(--ezdf-grid-min, 180px), 1fr));
	gap: 16px;
}
.ezdf-grid-card {
	border: 1px solid var(--ezdf-card-border, #eee);
	background: var(--ezdf-card-bg, transparent);
	border-radius: var(--ezdf-radius, 6px);
	padding: 12px;
	text-align: center;
}
.ezdf-grid-card-img {
	width: 100%;
	height: 120px;
	object-fit: cover;
	border-radius: var(--ezdf-radius, 6px);
	margin-bottom: 8px;
}
.ezdf-grid-card-name {
	font-weight: var(--ezdf-item-name-weight, 600);
	font-size: var(--ezdf-item-name-size, 14px);
	margin-bottom: 4px;
}
.ezdf-grid-card-price {
	color: var(--ezdf-accent, #E8433C);
	font-weight: 700;
	margin-bottom: 8px;
}

/* ---------- List template ---------- */
.ezdf-list-category {
	margin-bottom: 24px;
	background: var(--ezdf-item-area-bg, transparent);
	padding: var(--ezdf-item-area-pad, 0);
	border-radius: var(--ezdf-item-area-r, 0);
}
.ezdf-list-category-title {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--ezdf-section-bg, #E8433C);
	color: var(--ezdf-section-text, #fff);
	padding: 12px 16px;
	border-radius: var(--ezdf-radius, 6px);
	margin-bottom: 12px;
}
.ezdf-list-cat-img {
	width: var(--ezdf-cat-img-w, var(--ezdf-list-cat-img-h, var(--ezdf-cat-img-h, 26px)));
	height: var(--ezdf-list-cat-img-h, var(--ezdf-cat-img-h, 26px));
	border-radius: var(--ezdf-cat-img-r, 50%);
	object-fit: cover;
}
.ezdf-list-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid #f0f0f0;
}
.ezdf-list-row-img {
	width: 48px;
	height: 48px;
	border-radius: var(--ezdf-radius, 6px);
	object-fit: cover;
}
.ezdf-list-row-name {
	flex: 1;
	font-weight: var(--ezdf-item-name-weight, 600);
	font-size: var(--ezdf-item-name-size, 14px);
}
.ezdf-list-row-price {
	color: var(--ezdf-accent, #E8433C);
	font-weight: 700;
	white-space: nowrap;
}

/* ---------- Tabs template ---------- */
.ezdf-tabs-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
}
.ezdf-tab-btn {
	display: flex;
	align-items: center;
	gap: 6px;
	border: 1px solid var(--ezdf-primary, #E8433C);
	background: var(--ezdf-tab-bg, transparent);
	color: var(--ezdf-primary, #E8433C);
	padding: 8px 16px;
	border-radius: var(--ezdf-radius, 6px);
	cursor: pointer;
	font-family: var(--ezdf-font, Poppins, sans-serif);
	font-weight: 600;
}
.ezdf-tab-btn.is-active {
	background: var(--ezdf-section-bg, #E8433C);
	border-color: var(--ezdf-section-bg, #E8433C);
	color: var(--ezdf-section-text, #fff);
}
.ezdf-tab-cat-img {
	width: var(--ezdf-cat-img-w, var(--ezdf-cat-img-h, 20px));
	height: var(--ezdf-cat-img-h, 20px);
	border-radius: var(--ezdf-cat-img-r, 50%);
	object-fit: cover;
	flex-shrink: 0;
}
.ezdf-tab-panel {
	display: none;
}
.ezdf-tab-panel.is-active,
.ezdf-searching .ezdf-tab-panel.is-search-shown {
	display: block;
	background: var(--ezdf-item-area-bg, transparent);
	padding: var(--ezdf-item-area-pad, 0);
	border-radius: var(--ezdf-item-area-r, 0);
}

/* ---------- Tabs, 1.4.0 ---------- */
.ezdf-tabs-bar {
	position: relative;
	margin-bottom: 20px;
}
.ezdf-tabs-bar .ezdf-tabs-nav {
	margin-bottom: 0;
}
.ezdf-tab-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 10px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	background: rgba(0, 0, 0, 0.08);
	color: inherit;
}
.ezdf-tab-btn.is-active .ezdf-tab-count {
	background: rgba(255, 255, 255, 0.25);
}
/* Picture only / title only. The title stays for screen readers. */
.ezdf-tabs-only-image .ezdf-tab-title {
	position: absolute !important;
	width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.ezdf-tabs-only-image .ezdf-tab-btn { padding: 6px; }
.ezdf-tabs-only-title .ezdf-tab-cat-img { display: none; }

/* All tabs on one row: it scrolls sideways (drag, swipe, wheel or the arrows). */
.ezdf-tabs-scroll .ezdf-tabs-nav {
	flex-wrap: nowrap;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-behavior: smooth;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding: 2px;
	cursor: grab;
}
.ezdf-tabs-scroll .ezdf-tabs-nav::-webkit-scrollbar { display: none; }
.ezdf-tabs-scroll .ezdf-tabs-nav.is-dragging { cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; }
.ezdf-tabs-scroll .ezdf-tabs-nav.is-dragging .ezdf-tab-btn { pointer-events: none; }
.ezdf-tabs-scroll .ezdf-tab-btn {
	flex: 0 0 auto;
	white-space: nowrap;
	scroll-snap-align: start;
}
/* Fade at an edge that has more tabs past it. */
.ezdf-tabs-scroll .ezdf-tabs-bar::before,
.ezdf-tabs-scroll .ezdf-tabs-bar::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 36px;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.15s ease;
	z-index: 1;
}
.ezdf-tabs-scroll .ezdf-tabs-bar::before { left: 0; background: linear-gradient(90deg, var(--ezdf-container-bg, #fff), transparent); }
.ezdf-tabs-scroll .ezdf-tabs-bar::after { right: 0; background: linear-gradient(270deg, var(--ezdf-container-bg, #fff), transparent); }
.ezdf-tabs-scroll .ezdf-tabs-bar.can-left::before,
.ezdf-tabs-scroll .ezdf-tabs-bar.can-right::after { opacity: 1; }
/* Arrows */
.ezdf-tabs-arrow {
	display: none;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 34px;
	height: 34px;
	border: none;
	border-radius: 50%;
	background: var(--ezdf-section-bg, #E8433C);
	color: var(--ezdf-section-text, #fff);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
	font-size: 18px;
	line-height: 34px;
	text-align: center;
	cursor: pointer;
	padding: 0;
}
.ezdf-tabs-arrow.is-prev { left: -6px; }
.ezdf-tabs-arrow.is-next { right: -6px; }
.ezdf-tabs-scroll.ezdf-tabs-arrows .ezdf-tabs-bar.can-left .ezdf-tabs-arrow.is-prev,
.ezdf-tabs-scroll.ezdf-tabs-arrows .ezdf-tabs-bar.can-right .ezdf-tabs-arrow.is-next { display: block; }
.ezdf-tabs-scroll.ezdf-tabs-arrows .ezdf-tabs-bar.can-left .ezdf-tabs-nav { padding-left: 34px; }
.ezdf-tabs-scroll.ezdf-tabs-arrows .ezdf-tabs-bar.can-right .ezdf-tabs-nav { padding-right: 34px; }
/* The tab bar stays on screen while the items scroll. */
.ezdf-tabs-sticky .ezdf-tabs-bar {
	position: sticky;
	top: var(--ezdf-tabs-top, 0);
	z-index: 5;
	background: var(--ezdf-container-bg, #fff);
	padding: 8px 0;
	border-radius: var(--ezdf-radius, 6px);
}
.ezdf-tabs-sticky .ezdf-menu-column { overflow: visible; }
@media (prefers-reduced-motion: reduce) {
	.ezdf-tabs-scroll .ezdf-tabs-nav { scroll-behavior: auto; }
}

/* ---------- Cart panel ---------- */
.ezdf-cart-panel {
	border: 1px solid #eee;
	border-radius: var(--ezdf-radius, 6px);
	overflow: hidden;
	background: var(--ezdf-bg, #fff);
}
.ezdf-cart-header {
	background: var(--ezdf-section-bg, #E8433C);
	color: var(--ezdf-section-text, #fff);
	font-weight: 700;
	padding: 14px 18px;
}
.ezdf-cart-items {
	padding: 14px 18px;
	max-height: 360px;
	overflow-y: auto;
}
.ezdf-cart-empty {
	font-size: 13px;
	color: #888;
}
.ezdf-cart-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 0;
	border-bottom: 1px solid #f2f2f2;
	position: relative;
}
.ezdf-cart-item-img {
	width: 44px;
	height: 44px;
	border-radius: var(--ezdf-radius, 6px);
	object-fit: cover;
}
.ezdf-cart-item-info {
	flex: 1;
	min-width: 0;
}
.ezdf-cart-item-name {
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 4px;
}
.ezdf-cart-item-qty {
	display: flex;
	align-items: center;
	gap: 6px;
}
.ezdf-qty-btn {
	width: 20px;
	height: 20px;
	border-radius: 4px;
	border: none;
	background: var(--ezdf-primary, #E8433C);
	color: #fff;
	cursor: pointer;
	font-weight: 700;
	line-height: 1;
}
.ezdf-qty-value {
	font-size: 13px;
	min-width: 16px;
	text-align: center;
}
.ezdf-cart-item-price {
	font-size: 13px;
	font-weight: 700;
	color: var(--ezdf-accent, #E8433C);
	white-space: nowrap;
}
.ezdf-cart-item-remove {
	background: none;
	border: none;
	color: var(--ezdf-primary, #E8433C);
	font-size: 16px;
	cursor: pointer;
	line-height: 1;
}
.ezdf-cart-totals {
	padding: 14px 18px;
	border-top: 1px solid #f0f0f0;
}
.ezdf-cart-row {
	display: flex;
	justify-content: space-between;
	font-size: 13px;
	padding: 4px 0;
}
.ezdf-cart-total {
	font-weight: 700;
	font-size: 15px;
	margin-top: 4px;
}
.ezdf-cart-actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 14px 18px;
}
.ezdf-cart-actions .ezdf-btn {
	width: 100%;
}

/* ---------- Product Modal ---------- */
.ezdf-modal-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
	z-index: 100000;
	align-items: flex-start;
	justify-content: center;
	overflow-y: auto;
	padding: 60px 20px;
}
.ezdf-modal-overlay.is-open {
	display: flex;
}
body.ezdf-modal-open {
	overflow: hidden;
}
.ezdf-modal-box {
	background: var(--ezdf-bg, #fff);
	border-radius: var(--ezdf-radius, 6px);
	width: 100%;
	max-width: 780px;
	overflow: hidden;
	font-family: var(--ezdf-font, Poppins, sans-serif);
	color: var(--ezdf-text, #222222);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}
.ezdf-modal-header {
	background: var(--ezdf-primary, #E8433C);
	padding: 14px 18px;
	display: flex;
	justify-content: flex-end;
}
.ezdf-modal-close {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	border: none;
	background: rgba(255, 255, 255, 0.25);
	color: #fff;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
}
.ezdf-modal-body {
	display: flex;
	gap: 28px;
	padding: 28px;
	flex-wrap: wrap;
}
.ezdf-modal-image-col {
	flex: 0 0 260px;
}
.ezdf-modal-image-col img {
	width: 100%;
	border-radius: var(--ezdf-radius, 6px);
	object-fit: cover;
}
.ezdf-modal-info-col {
	flex: 1 1 300px;
	min-width: 240px;
}
.ezdf-modal-title {
	margin: 0 0 8px;
	font-size: 24px;
}
.ezdf-modal-price {
	color: var(--ezdf-accent, #E8433C);
	font-weight: 700;
	font-size: 18px;
	margin-bottom: 14px;
}
.ezdf-modal-description {
	font-size: 14px;
	color: #555;
	margin-bottom: 16px;
}
.ezdf-modal-variations {
	margin-bottom: 16px;
}
.ezdf-modal-body--no-image .ezdf-modal-info-col {
	flex: 1 1 100%;
}
.ezdf-modal-addons {
	margin-bottom: 16px;
}
.ezdf-modal-addon-group {
	margin-bottom: 14px;
}
.ezdf-modal-addon-group-title {
	font-size: 13px;
	font-weight: 600;
	margin: 0 0 6px;
}
.ezdf-modal-addon-required {
	font-weight: 400;
	font-style: italic;
	color: var(--ezdf-accent, #E8433C);
	font-size: 12px;
}
.ezdf-modal-addon-option {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	padding: 6px 0;
	cursor: pointer;
}
.ezdf-modal-addon-option input {
	accent-color: var(--ezdf-primary, #E8433C);
}
.ezdf-modal-addon-price {
	color: #777;
	font-size: 13px;
}
.ezdf-modal-addon-required-note {
	color: var(--ezdf-accent, #E8433C);
	font-size: 12px;
	margin: 2px 0 0;
}
.ezdf-modal-addon-bucket {
	margin: 6px 0 0 4px;
	padding-left: 10px;
	border-left: 2px solid #eee;
}
.ezdf-modal-addon-bucket-title {
	font-size: 12px;
	font-weight: 600;
	color: #777;
	margin: 4px 0;
}
.ezdf-modal-attribute-row {
	margin-bottom: 10px;
}
.ezdf-modal-attribute-row label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 4px;
}
.ezdf-modal-attribute-row select {
	width: 100%;
	padding: 8px;
	border-radius: var(--ezdf-radius, 6px);
	border: 1px solid #ddd;
}
.ezdf-modal-notes {
	width: 100%;
	min-height: 70px;
	border: 1px solid #ddd;
	border-radius: var(--ezdf-radius, 6px);
	padding: 10px 12px;
	font-family: var(--ezdf-font, Poppins, sans-serif);
	font-size: 14px;
	resize: vertical;
	margin-bottom: 18px;
}
.ezdf-modal-actions {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}
.ezdf-modal-qty {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #f5f5f5;
	border-radius: var(--ezdf-radius, 6px);
	padding: 8px 14px;
}
.ezdf-modal-qty-value {
	font-weight: 600;
	min-width: 16px;
	text-align: center;
}
.ezdf-modal-add-to-cart {
	flex: 1;
	background: var(--ezdf-primary, #E8433C);
	color: #fff;
	font-weight: 700;
	letter-spacing: 0.03em;
	padding: 12px 24px;
}
.ezdf-modal-add-to-cart:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}
.ezdf-modal-outofstock {
	color: #b32d2e;
	font-size: 13px;
	margin-top: 10px;
}

@media (max-width: 600px) {
	.ezdf-modal-body {
		flex-direction: column;
	}
	.ezdf-modal-image-col {
		flex: 0 0 auto;
	}
}

/* ---------- Responsive ---------- */
@media (max-width: 782px) {
	.ezdf-layout {
		flex-direction: column;
	}
	.ezdf-cart-column {
		position: static;
		width: 100%;
	}
	.ezdf-menu-column {
		width: 100%;
	}
}

/* ============================================================
   v1.2.0 — search, badges, closed banner, mobile cart
   ============================================================ */
.ezdf-search-row { margin: 0 0 16px; }
.ezdf-menu-search {
  width: 100%; max-width: 420px; padding: 12px 16px;
  border: 1px solid var(--ezdf-border, #ddd); border-radius: 24px;
  font-size: 1rem; outline: none;
}
.ezdf-menu-search:focus { border-color: var(--ezdf-primary, #c0392b); }

.ezdf-badge { font-size: .85em; margin-left: 2px; }

.ezdf-closed-banner {
  background: #fff7e6; border: 1px solid #f0c36d; color: #7a5c00;
  border-radius: 8px; padding: 12px 16px; margin: 0 0 14px; font-size: .95rem;
}
.ezdf-closed-banner.ezdf-closed-blocking { background: #fdecea; border-color: #e08f8f; color: #8a1f1f; }
[data-ordering-closed="1"] .ezdf-add-to-cart { opacity: .45; cursor: not-allowed; }
@keyframes ezdfShake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-6px)} 75%{transform:translateX(6px)} }
.ezdf-closed-banner--shake { animation: ezdfShake .3s ease 2; }

/* Phones (1.5.2): "My Order" is a slim bar with the count and total; tapping it
   opens the cart as a sheet. Before, the whole cart sat at the bottom and grew
   with every item until the menu could not be seen. */
.ezdf-cart-bar { display: none; }
@media (max-width: 782px) {
  .ezdf-cart-column {
    position: fixed; left: 0; right: 0; top: auto; bottom: 0; z-index: 9990;
    display: flex; flex-direction: column;
    margin: 0; padding: 0 10px calc(10px + env(safe-area-inset-bottom));
    background: transparent; border-radius: 0; box-shadow: none;
    min-width: 0; width: auto; max-height: none; overflow: visible;
    pointer-events: none; /* only the bar and the open sheet take taps */
  }
  .ezdf-cart-column.is-empty { display: none; }
  .ezdf-cart-bar {
    order: 2;
    display: flex; align-items: center; gap: 10px;
    width: 100%; margin: 0; padding: 13px 16px;
    border: 0; border-radius: 12px;
    background: var(--ezdf-primary, #c0392b); color: #fff;
    font: 600 15px/1.2 var(--ezdf-font, Poppins, sans-serif);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.28);
    cursor: pointer; pointer-events: auto; text-align: left;
  }
  .ezdf-cart-bar-count { white-space: nowrap; }
  .ezdf-cart-bar-total { margin-left: auto; font-weight: 700; white-space: nowrap; }
  .ezdf-cart-bar-total .woocommerce-Price-amount { color: inherit; }
  .ezdf-cart-bar-cta { padding-left: 10px; border-left: 1px solid rgba(255, 255, 255, 0.4); white-space: nowrap; }
  .ezdf-cart-bar-cta::after { content: ' \25B4'; }
  .ezdf-cart-bar-close { display: none; }
  .ezdf-cart-column.is-open .ezdf-cart-bar-open { display: none; }
  .ezdf-cart-column.is-open .ezdf-cart-bar-close { display: inline; }
  .ezdf-cart-column.is-open .ezdf-cart-bar-cta::after { content: ' \25BE'; }
  .ezdf-cart-bar.is-bump { animation: ezdf-cart-bump 0.5s ease; }
  @keyframes ezdf-cart-bump { 0% { transform: scale(1); } 35% { transform: scale(1.05); } 100% { transform: scale(1); } }

  .ezdf-cart-column .ezdf-cart-panel { display: none; }
  .ezdf-cart-column.is-open .ezdf-cart-panel {
    order: 1;
    display: block; pointer-events: auto;
    max-height: 70vh; overflow-y: auto; overscroll-behavior: contain;
    margin: 0 -10px 10px; padding: 12px 14px;
    background: var(--ezdf-bg, #fff);
    border-radius: 14px 14px 0 0;
    box-shadow: 0 -6px 24px rgba(0, 0, 0, 0.18);
  }
  .ezdf-cart-backdrop {
    position: fixed; inset: 0; z-index: 9989;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0; pointer-events: none; transition: opacity 0.2s ease;
  }
  .ezdf-cart-backdrop.is-on { opacity: 1; pointer-events: auto; }
  body.ezdf-cart-sheet-open { overflow: hidden; }
  .ezdf-layout { padding-bottom: 84px; }
}
@media (prefers-reduced-motion: reduce) {
  .ezdf-cart-bar.is-bump { animation: none; }
}

/* ── Half & half ─────────────────────────────────────────────────────────
   The side picker belongs to the topping above it and appears only while
   that topping is chosen, so an untouched list stays a plain list. */
.ezdf-modal-portions {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	margin: 2px 0 10px 26px;
	padding: 6px 10px;
	border-left: 3px solid currentColor;
	border-radius: 0 4px 4px 0;
	font-size: .88em;
	opacity: .9;
}
.ezdf-modal-portions[hidden] { display: none; }
.ezdf-portion-pick { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.ezdf-portion-pick input { margin: 0; }

/* The same two hues the register uses, so "1st half" looks like the same
   thing whether it was chosen online or at the counter. */
.ezdf-portion-pick { --pl: #0f7c8c; --pr: #7c3fbf; }
.ezdf-portion-pick:has(input[value="left"]:checked)  { color: var(--pl); font-weight: 600; }
.ezdf-portion-pick:has(input[value="right"]:checked) { color: var(--pr); font-weight: 600; }
.ezdf-portion-pick input[value="left"]  { accent-color: #0f7c8c; }
.ezdf-portion-pick input[value="right"] { accent-color: #7c3fbf; }


/* ---------- Menu banner (1.3.3) ---------- */
.ezdf-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--ezdf-hero-h, 220px);
	margin: 0 0 18px;
	padding: 28px 24px;
	border-radius: var(--ezdf-radius, 6px);
	overflow: hidden;
	text-align: center;
	color: var(--ezdf-hero-text, #fff);
	background: var(--ezdf-hero-bg, var(--ezdf-primary, #E8433C));
}
.ezdf-hero.has-image {
	background:
		/* 1.4.0: how dark the shade over the picture is (Page & Banner ▸ Darken). */
		linear-gradient(180deg, rgba(0, 0, 0, calc(var(--ezdf-hero-shade, 0.45) * 0.55)), rgba(0, 0, 0, var(--ezdf-hero-shade, 0.45))),
		var(--ezdf-hero-img) center / cover no-repeat,
		var(--ezdf-hero-bg, var(--ezdf-primary, #E8433C));
}
.ezdf-hero-inner { max-width: 720px; }
.ezdf-hero.is-left { justify-content: flex-start; text-align: left; }
.ezdf-hero.is-left .ezdf-hero-inner { margin-right: auto; }
.ezdf-hero-title {
	margin: 0;
	font-family: var(--ezdf-font, Poppins, sans-serif);
	font-size: clamp(1.6rem, 3.4vw, 2.6rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: inherit;
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.25);
}
.ezdf-hero-sub {
	margin: 10px 0 0;
	font-size: clamp(0.95rem, 1.6vw, 1.15rem);
	line-height: 1.45;
	opacity: 0.92;
	color: inherit;
}
@media (max-width: 600px) {
	.ezdf-hero { min-height: calc(var(--ezdf-hero-h, 220px) * 0.7); padding: 22px 16px; }
}

/* ---------- 1.4.1: category name on/off, and the chosen tab widening ---------- */
/* Name hidden: still read by screen readers, and the tab keeps it as a tooltip. */
.ezdf-cat-no-title .ezdf-cat-name,
.ezdf-tabs-name-active .ezdf-tab-btn:not(.is-active) .ezdf-tab-title {
	position: absolute !important;
	width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.ezdf-cat-no-title .ezdf-tab-btn { padding: 6px; }
/* Horizontal accordion: every tab shows its picture, the chosen one opens
   sideways to show its name too. */
.ezdf-tabs-name-active .ezdf-tab-btn { transition: padding .2s ease; }
.ezdf-tabs-name-active .ezdf-tab-btn:not(.is-active) { padding: 6px; }
.ezdf-tabs-name-active .ezdf-tab-btn.is-active .ezdf-tab-title {
	display: inline-block;
	max-width: 260px;
	white-space: nowrap;
	animation: ezdf-tab-open .25s ease;
}
/* Only the fade animates: the name's width never depends on an animation running. */
@keyframes ezdf-tab-open { from { opacity: 0; transform: translateX(-6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
	.ezdf-tabs-name-active .ezdf-tab-btn.is-active .ezdf-tab-title { animation: none; }
}
/* A hidden name is placed against its own tab / heading — not the tab row,
   which would push it past the edge of the page. */
.ezdf-tab-btn,
.ezdf-accordion-header,
.ezdf-grid-category-title,
.ezdf-list-category-title { position: relative; }

/* ---------- 1.4.2: name below the picture, fixed tab width, long names ---------- */
.ezdf-tab-title { min-width: 0; overflow: hidden; white-space: nowrap; }
.ezdf-tab-title-text { display: inline-block; white-space: nowrap; }
/* Every tab the same width (Layout ▸ Tabs ▸ Tab width). */
.ezdf-tabs-fixed .ezdf-tab-btn { width: var(--ezdf-tab-w, auto); flex: 0 0 var(--ezdf-tab-w, auto); min-width: 0; }
.ezdf-tabs-fixed .ezdf-tab-title { flex: 1 1 auto; }
/* Name under the picture. */
.ezdf-tabs-name-below .ezdf-tab-btn {
	flex-direction: column;
	justify-content: center;
	text-align: center;
	gap: 4px;
	padding: 8px 10px;
}
.ezdf-tabs-name-below .ezdf-tab-title { align-self: stretch; max-width: 100%; }
.ezdf-tabs-name-below .ezdf-tab-btn .ezdf-tab-count { position: absolute; top: 4px; right: 4px; }
/* A name wider than its tab glides to its end and back. */
.ezdf-tab-title.is-long { text-align: left; }
.ezdf-tabs-long-scroll .ezdf-tab-title.is-long .ezdf-tab-title-text,
.ezdf-tabs-long-hover .ezdf-tab-btn.is-active .ezdf-tab-title.is-long .ezdf-tab-title-text,
.ezdf-tabs-long-hover .ezdf-tab-btn:hover .ezdf-tab-title.is-long .ezdf-tab-title-text,
.ezdf-tabs-long-hover .ezdf-tab-btn:focus-visible .ezdf-tab-title.is-long .ezdf-tab-title-text {
	animation: ezdf-name-glide var(--ezdf-glide-dur, 6s) ease-in-out infinite alternate;
}
@keyframes ezdf-name-glide {
	0%, 15% { transform: translateX(0); }
	85%, 100% { transform: translateX(var(--ezdf-glide, 0)); }
}
/* Cut off with … — and the resting state of "scroll when chosen / pointed at". */
.ezdf-tabs-long-cut .ezdf-tab-title-text,
.ezdf-tabs-long-hover .ezdf-tab-btn:not(.is-active):not(:hover):not(:focus-visible) .ezdf-tab-title-text {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
}
@media (prefers-reduced-motion: reduce) {
	.ezdf-tab-title.is-long .ezdf-tab-title-text { animation: none !important; display: block; overflow: hidden; text-overflow: ellipsis; }
}

/* ---------- 1.5.0: search the whole menu ---------- */
.ezdf-search-empty {
	display: none;
	margin: 0 0 14px;
	padding: 12px 14px;
	border-radius: var(--ezdf-radius, 6px);
	background: var(--ezdf-item-area-bg, rgba(0, 0, 0, 0.04));
	color: var(--ezdf-text, inherit);
	font-size: 14px;
}
/* Tabs while searching: every category with matches, one under another. */
.ezdf-search-cat-head { display: none; }
.ezdf-searching .ezdf-tab-panel { display: none !important; }
.ezdf-searching .ezdf-tab-panel.is-search-shown { display: block !important; margin-bottom: 14px; }
.ezdf-searching .ezdf-search-cat-head {
	display: block;
	margin: 0 0 8px;
	font-weight: 700;
	font-size: 15px;
	color: var(--ezdf-primary, #E8433C);
}
/* Match counts on the tab row; tabs with none fade back. */
.ezdf-tab-hits { display: none; }
.ezdf-searching .ezdf-tab-btn.has-hits .ezdf-tab-hits {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 10px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	background: var(--ezdf-primary, #E8433C);
	color: #fff;
}
.ezdf-searching .ezdf-tab-btn.is-active .ezdf-tab-hits { background: rgba(255, 255, 255, 0.3); }
.ezdf-tabs-name-below .ezdf-tab-btn .ezdf-tab-hits { position: absolute; top: 4px; left: 4px; }
.ezdf-searching .ezdf-tab-btn .ezdf-tab-count { display: none; }
.ezdf-searching .ezdf-tab-btn.no-hits { opacity: 0.4; }
/* While searching, "selected" means the tab the results are narrowed to. */
.ezdf-searching .ezdf-tab-btn.is-active:not(.is-search-narrow) {
	background: var(--ezdf-tab-bg, transparent);
	border-color: var(--ezdf-primary, #E8433C);
	color: var(--ezdf-primary, #E8433C);
}
.ezdf-searching .ezdf-tab-btn.is-active:not(.is-search-narrow) .ezdf-tab-hits { background: var(--ezdf-primary, #E8433C); }

/* =====================================================================
   1.7.0 — Home page in front of the menu (EzdossFood → Page & Banner)
   ===================================================================== */
.ezdf-has-home.is-home .ezdf-menu-view { display: none; }
.ezdf-has-home.is-menu .ezdf-home { display: none; }
.ezdf-has-home.is-home .ezdf-hb-back { display: none; }
.ezdf-has-home.is-menu .ezdf-hb-order { display: none; }

/* The page around it: no page title above the home page, no sideways scroll
   from the full-width sections, and (optionally) no theme header/footer. */
body.ezdf-home-on { overflow-x: clip; }
body.ezdf-home-on .entry-title,
body.ezdf-home-on .wp-block-post-title,
body.ezdf-home-on .page-title { display: none; }
body.ezdf-hide-chrome header.wp-block-template-part,
body.ezdf-hide-chrome footer.wp-block-template-part,
body.ezdf-hide-chrome .site-header,
body.ezdf-hide-chrome .site-footer,
body.ezdf-hide-chrome #masthead,
body.ezdf-hide-chrome #colophon { display: none !important; }

/* Full-width sections, whatever column the page content sits in. */
.ezdf-home-bar,
.ezdf-h-sec {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.ezdf-h-wrap { max-width: 1180px; margin: 0 auto; padding: 0 20px; }

/* ── Top bar ── */
.ezdf-home-bar {
	position: relative;
	z-index: 900;
	background: var(--ezdf-h-bar-bg, rgba(17, 17, 17, .92));
	color: #fff;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.ezdf-home-bar.is-stuck { position: fixed; left: 0; right: 0; margin: 0; box-shadow: 0 2px 14px rgba(0, 0, 0, .25); }
.ezdf-hb-inner {
	max-width: 1180px; margin: 0 auto; padding: 10px 20px;
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.ezdf-hb-brand { display: flex; align-items: center; color: inherit; text-decoration: none; min-width: 0; }
.ezdf-hb-logo { max-height: 46px; width: auto; display: block; }
.ezdf-hb-name { font-weight: 800; font-size: 20px; letter-spacing: .3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ezdf-hb-actions { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.ezdf-hb-call, .ezdf-hb-back { color: inherit; text-decoration: none; font-weight: 600; white-space: nowrap; }
.ezdf-hb-call:hover, .ezdf-hb-back:hover { text-decoration: underline; }
.ezdf-hb-ico { font-size: 18px; margin-right: 6px; }

/* ── Buttons ── */
.ezdf-h-btn {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 10px 22px; border-radius: 999px; border: 2px solid var(--ezdf-primary, #E8433C);
	background: var(--ezdf-primary, #E8433C); color: var(--ezdf-button-text, #fff);
	font-weight: 700; text-decoration: none; letter-spacing: .3px; line-height: 1.2;
	transition: transform .12s ease, filter .12s ease; cursor: pointer;
}
.ezdf-h-btn:hover { filter: brightness(1.08); transform: translateY(-1px); color: var(--ezdf-button-text, #fff); }
.ezdf-h-btn-big { padding: 15px 34px; font-size: 18px; }
.ezdf-h-btn-ghost { background: transparent; color: inherit; border-color: currentColor; }
.ezdf-h-btn-ghost:hover { color: inherit; }
.ezdf-hb-order { padding: 9px 20px; text-transform: uppercase; font-size: 14px; }

/* ── Sections ── */
.ezdf-home { color: var(--ezdf-h-text, #1d1d1d); }
.ezdf-h-sec { background: var(--ezdf-h-bg, #ffffff); padding: 64px 0; }
.ezdf-h-sec:nth-of-type(even) { background: var(--ezdf-h-alt, color-mix(in srgb, var(--ezdf-primary, #E8433C) 6%, var(--ezdf-h-bg, #ffffff))); }
.ezdf-h-title { font-size: clamp(26px, 3.4vw, 40px); font-weight: 800; margin: 0 0 22px; line-height: 1.15; color: inherit; }
.ezdf-home p { line-height: 1.65; }

/* Hero */
.ezdf-h-hero {
	position: relative; min-height: var(--ezdf-h-hero-h, 80vh); padding: 0;
	display: flex; align-items: center; justify-content: center; text-align: center;
	background: var(--ezdf-primary, #E8433C); color: #fff; overflow: hidden;
}
.ezdf-h-hero.has-media { background: #111; }
.ezdf-h-hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ezdf-h-hero.has-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.55)); }
.ezdf-h-hero-inner { position: relative; z-index: 1; padding: 60px 20px; max-width: 900px; }
.ezdf-h-hero-title { font-size: clamp(38px, 7vw, 78px); font-weight: 900; line-height: 1.02; margin: 0 0 14px; color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.35); }
.ezdf-h-hero-line { font-size: clamp(17px, 2.2vw, 24px); margin: 0 0 30px; opacity: .95; text-transform: uppercase; letter-spacing: 1.5px; }
.ezdf-h-hero-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.ezdf-h-hero .ezdf-h-btn-ghost { color: #fff; }

/* About */
.ezdf-h-about-grid.has-img { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center; }
.ezdf-h-about-img img { width: 100%; height: auto; border-radius: 14px; display: block; box-shadow: 0 12px 30px rgba(0,0,0,.18); }

/* Favourites */
.ezdf-h-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 22px; }
.ezdf-h-card { background: #fff; color: #1d1d1d; border-radius: 14px; overflow: hidden; box-shadow: 0 6px 22px rgba(0,0,0,.10); display: flex; flex-direction: column; }
.ezdf-h-card-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.ezdf-h-card-body { padding: 16px 18px 18px; display: flex; flex-direction: column; flex: 1; }
.ezdf-h-card-name { font-size: 19px; font-weight: 800; margin: 0 0 6px; }
.ezdf-h-card-desc { font-size: 14px; opacity: .75; margin: 0 0 12px; line-height: 1.45; }
.ezdf-h-card-foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ezdf-h-card-price { font-weight: 800; color: var(--ezdf-primary, #E8433C); }

/* Rows that scroll sideways: reviews and photos */
.ezdf-h-strip { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; -webkit-overflow-scrolling: touch; }
.ezdf-h-review { flex: 0 0 min(340px, 82vw); scroll-snap-align: start; margin: 0; background: #fff; color: #1d1d1d; border-radius: 14px; padding: 22px; box-shadow: 0 6px 22px rgba(0,0,0,.08); }
.ezdf-h-stars { color: #f5b301; letter-spacing: 2px; margin-bottom: 8px; }
.ezdf-h-review blockquote { margin: 0 0 10px; padding: 0; border: 0; font-size: 16px; line-height: 1.55; font-style: normal; }
.ezdf-h-review figcaption { font-weight: 700; opacity: .8; }
.ezdf-h-photos { padding: 0 20px 8px; }
.ezdf-h-photos img { flex: 0 0 auto; height: clamp(200px, 32vw, 340px); width: auto; border-radius: 12px; scroll-snap-align: start; object-fit: cover; }

/* Hours & location */
.ezdf-h-visit-grid.has-map { display: grid; grid-template-columns: 1fr 1.3fr; gap: 40px; align-items: start; }
.ezdf-h-visit h3 { font-size: 18px; margin: 0 0 10px; }
.ezdf-h-hours { border-collapse: collapse; margin: 0 0 24px; width: 100%; max-width: 420px; }
.ezdf-h-hours th, .ezdf-h-hours td { text-align: left; padding: 6px 0; border-bottom: 1px solid rgba(128,128,128,.25); font-weight: 400; }
.ezdf-h-hours th { font-weight: 700; padding-right: 18px; }
.ezdf-h-addr { margin: 0 0 12px; }
.ezdf-h-phone a { font-size: 20px; font-weight: 800; color: inherit; }
.ezdf-h-map iframe { width: 100%; height: 360px; border: 0; border-radius: 14px; display: block; }

/* Footer */
.ezdf-h-foot { background: #111 !important; color: #ddd; padding: 40px 0 24px; }
.ezdf-h-foot a { color: #fff; }
.ezdf-h-foot-grid { display: grid; grid-template-columns: 1.4fr 1fr auto; gap: 24px; align-items: center; }
.ezdf-h-foot-grid > div > div { margin-top: 4px; }
.ezdf-h-social { display: flex; gap: 16px; flex-wrap: wrap; }
.ezdf-h-copy { margin-top: 22px; font-size: 13px; opacity: .6; }

@media (max-width: 800px) {
	.ezdf-h-sec { padding: 46px 0; }
	.ezdf-h-about-grid.has-img,
	.ezdf-h-visit-grid.has-map,
	.ezdf-h-foot-grid { grid-template-columns: 1fr; gap: 26px; }
	.ezdf-h-about-img { order: -1; }
	.ezdf-hb-phone { display: none; }               /* the phone icon alone, to save room */
	.ezdf-hb-ico { font-size: 22px; margin: 0; }
	.ezdf-hb-inner { padding: 8px 14px; }
	.ezdf-hb-logo { max-height: 38px; }
	.ezdf-hb-name { font-size: 17px; }
	.ezdf-h-map iframe { height: 260px; }
}
/* Hero without a photo: its colour is the theme colour, so the main button
   turns white to stand out from it. */
.ezdf-h-hero:not(.has-media) .ezdf-h-btn:not(.ezdf-h-btn-ghost) { background: #fff; color: var(--ezdf-primary, #E8433C); border-color: #fff; }
/* Site themes often round or square every link; keep ours pill-shaped. */
.ezdossfood-wrap .ezdf-h-btn { border-radius: 999px; }
/* Sub-headings: site themes size h3 themselves; these are ours. */
.ezdossfood-wrap .ezdf-h-visit h3 { font-size: 20px; font-weight: 800; margin: 0 0 10px; line-height: 1.3; color: inherit; }
/* Bar: a wide logo shrinks rather than running under the buttons. */
.ezdf-hb-brand { flex: 1 1 auto; }
.ezdf-hb-logo { max-width: 100%; object-fit: contain; object-position: left center; }
@media (max-width: 800px) {
	.ezdf-hb-actions { gap: 12px; }
	.ezdf-hb-logo { max-height: 34px; }
}

/* ── 1.7.1 ── */
/* Bar icons: account and cart (with the number of items). */
.ezdf-hb-icon { position: relative; display: inline-flex; color: inherit; text-decoration: none; padding: 4px; }
.ezdf-hb-icon:hover { opacity: .8; }
.ezdf-hb-cart-n {
	position: absolute; top: -4px; right: -6px; min-width: 18px; height: 18px; padding: 0 5px;
	border-radius: 9px; background: var(--ezdf-primary, #E8433C); color: #fff;
	font-size: 11px; font-weight: 700; line-height: 18px; text-align: center;
}
.ezdf-hb-cart-n[hidden] { display: none; }
/* 'Keep the site header': a slim bar with phone and Order Now, no second logo. */
.ezdf-home-bar.is-slim .ezdf-hb-inner { padding-top: 7px; padding-bottom: 7px; }
/* Cart, checkout and account pages: just the bar, sticking to the top. */
.ezdossfood-wrap.ezdf-bar-only { display: contents; }
body.ezdf-bar-page .ezdf-home-bar { position: sticky; top: 0; margin: 0; width: 100%; max-width: none; }
body.admin-bar.ezdf-bar-page .ezdf-home-bar { top: 32px; }
@media (max-width: 782px) { body.admin-bar.ezdf-bar-page .ezdf-home-bar { top: 46px; } }
/* Videos in place of photos: fill their box like the photo would. */
.ezdf-h-about-img video { width: 100%; height: auto; border-radius: 14px; display: block; box-shadow: 0 12px 30px rgba(0,0,0,.18); }
.ezdf-h-photos video { flex: 0 0 auto; height: clamp(200px, 32vw, 340px); width: auto; border-radius: 12px; scroll-snap-align: start; object-fit: cover; background: #000; }
@media (max-width: 800px) {
	.ezdf-hb-icon svg { width: 22px; height: 22px; }
	.ezdf-home-bar.is-header .ezdf-hb-account { display: none; }   /* phone: cart is enough */
}

/* ── 1.7.2 ── */
/* On the menu, the bar stays at the top as the page's header; the menu's own
   sticky parts sit under it instead of behind it. */
.ezdf-has-home.is-menu > .ezdf-home-bar { position: sticky; top: var(--ezdf-ab-h, 0px); }
.ezdf-has-home.is-menu.ezdf-tabs-sticky .ezdf-tabs-bar { top: calc(var(--ezdf-tabs-top, 0px) + var(--ezdf-hb-h, 0px) + var(--ezdf-ab-h, 0px)); }
.ezdf-has-home.is-menu .ezdf-cart-column { top: calc(16px + var(--ezdf-hb-h, 0px) + var(--ezdf-ab-h, 0px)); }
.ezdf-has-home .ezdf-menu-view { scroll-margin-top: calc(var(--ezdf-hb-h, 0px) + var(--ezdf-ab-h, 0px)); }
.ezdf-has-home.is-menu .ezdf-search-row { margin-top: 14px; }

/* Stars that can show part of a star (4.6 ★). */
.ezdf-h-stars { --ezdf-stars: 100%; display: inline-block; font-size: 17px; letter-spacing: 2px; line-height: 1;
	background: linear-gradient(90deg, #f5b301 var(--ezdf-stars), rgba(128,128,128,.35) var(--ezdf-stars));
	-webkit-background-clip: text; background-clip: text; color: transparent; }
.ezdf-h-stars::before { content: "\2605\2605\2605\2605\2605"; }
.ezdf-h-review .ezdf-h-stars { margin-bottom: 10px; }
/* Google: the overall rating, linking to the Google listing. */
.ezdf-h-grating { display: inline-flex; align-items: center; gap: 10px; margin: -8px 0 20px; color: inherit; text-decoration: none; flex-wrap: wrap; }
.ezdf-h-grating-num { font-size: 30px; font-weight: 800; }
.ezdf-h-grating .ezdf-h-stars { font-size: 22px; }
.ezdf-h-grating-src { opacity: .75; text-decoration: underline; }
.ezdf-h-review figcaption { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ezdf-h-review figcaption a { color: inherit; }
.ezdf-h-rev-photo { width: 28px; height: 28px; border-radius: 50%; }
.ezdf-h-rev-when { font-weight: 400; opacity: .6; font-size: 13px; }
.ezdf-h-gfoot { margin: 14px 0 0; font-size: 14px; opacity: .8; }
.ezdf-h-gfoot a { color: inherit; }
/* Instagram posts, side by side. */
.ezdf-h-igposts { align-items: flex-start; }
.ezdf-h-igposts .instagram-media { flex: 0 0 min(340px, 86vw) !important; min-width: 0 !important; margin: 0 !important; }
.ezdf-h-card-cat { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--ezdf-primary, #E8433C); margin-bottom: 2px; }

/* =====================================================================
   1.8.0 — Menu-first home style (Page & Banner → Home page → Style)
   The menu sits right under a short dark hero; the bar stays on top.
   ===================================================================== */
.ezdf-style-mf .ezdf-hb-back { display: none; }
.ezdf-style-mf.is-menu .ezdf-hb-order { display: inline-flex; }
.ezdf-style-mf > .ezdf-home-bar { position: sticky; top: var(--ezdf-ab-h, 0px); background: #111; }
.ezdf-style-mf .ezdf-hb-brand { flex: 0 1 auto; }
.ezdf-hb-nav { display: flex; gap: 22px; flex: 1 1 auto; margin-left: 18px; }
.ezdossfood-wrap .ezdf-hb-nav a { color: #fff; text-decoration: none; font-weight: 500; font-size: 15px; white-space: nowrap; }
.ezdossfood-wrap .ezdf-hb-nav a:hover { text-decoration: underline; }

/* Strip above the bar */
.ezdf-mf-promo {
	width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
	background: var(--ezdf-primary, #E8433C); color: var(--ezdf-button-text, #fff);
	text-align: center; padding: 9px 16px; font-size: 14px; font-weight: 600; letter-spacing: .2px;
}

/* Hero: words on the left, an order card on the right */
.ezdf-mf-hero { position: relative; background: #161616; color: #fff; padding: 64px 0 72px; overflow: hidden; }
.ezdf-mf-hero.has-media::after { content: ''; position: absolute; inset: 0; background: rgba(0, 0, 0, .62); }
.ezdf-mf-hero .ezdf-h-wrap { position: relative; z-index: 1; }
.ezdf-mf-hero-grid { display: grid; grid-template-columns: 1fr; gap: 48px; align-items: center; }
.ezdf-mf-hero-grid.has-card { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.ezdf-mf-hero-copy { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ezdf-mf-eyebrow { font-weight: 700; font-size: 14px; letter-spacing: 3px; text-transform: uppercase; color: color-mix(in srgb, var(--ezdf-primary, #E8433C) 45%, #fff); }
.ezdossfood-wrap .ezdf-mf-title { margin: 0; font-size: clamp(46px, 7vw, 86px); font-weight: 900; line-height: .95; letter-spacing: -1.5px; color: #fff; }
.ezdf-mf-addr { margin: 0; font-size: 19px; color: #d6d6d6; }
.ezdf-mf-pills { display: flex; gap: 10px; flex-wrap: wrap; font-size: 14px; font-weight: 600; }
.ezdf-mf-pill { background: #262626; color: #e6e6e6; padding: 7px 12px; border-radius: 999px; }
.ezdf-mf-pill.is-open { background: #22301f; color: #8fe0a3; }
.ezdf-mf-pill.is-open::before { content: '\25CF\00a0'; }
.ezdf-mf-pill.is-closed { background: #3a2222; color: #ffb4ab; }
.ezdf-mf-btns { justify-content: flex-start; margin-top: 8px; }
.ezdf-mf-hero .ezdf-h-btn-ghost { color: #fff; }

.ezdossfood-wrap a.ezdf-mf-card {
	display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 20px; align-items: center;
	background: #fff; color: #1a1a1a; text-decoration: none; border-radius: 20px; padding: 22px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, .35); transition: transform .12s ease;
}
.ezdossfood-wrap a.ezdf-mf-card:hover { transform: translateY(-2px); color: #1a1a1a; }
.ezdf-mf-card-img img { display: block; width: 170px; height: 170px; object-fit: cover; border-radius: 16px; }
.ezdf-mf-card-body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ezdf-mf-card-cat { font-weight: 700; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--ezdf-primary, #E8433C); }
.ezdf-mf-card-name { font-weight: 900; font-size: 26px; line-height: 1.05; }
.ezdf-mf-card-desc { font-size: 15px; color: #555; line-height: 1.45; }
.ezdf-mf-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 6px; }
.ezdf-mf-card-price { font-weight: 700; font-size: 16px; }
.ezdf-mf-card-go { background: #111; color: #fff; font-weight: 800; font-size: 14px; padding: 10px 18px; border-radius: 999px; }

/* The menu, right under the hero */
.ezdf-mf-menu { padding: 0 0 56px; }
.ezdf-style-mf .ezdf-mf-menu .ezdf-cards-bar { padding-left: 0; }
.ezdf-style-mf .ezdf-search-row { margin-top: 0; }
.ezdf-style-mf .ezdf-closed-banner { margin-top: 18px; }
.ezdf-mf-menu .ezdf-layout-cards { padding-top: 8px; }

/* After the menu: about with a photo collage */
.ezdf-mf-after > .ezdf-h-sec:first-child { background: var(--ezdf-h-alt, color-mix(in srgb, var(--ezdf-primary, #E8433C) 6%, #fff)); }
.ezdf-mf-collage { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.ezdf-mf-collage span { display: block; aspect-ratio: 1 / 1; border-radius: 18px; overflow: hidden; box-shadow: 0 8px 22px rgba(0, 0, 0, .12); }
.ezdf-mf-collage img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ezdf-mf-visit .ezdf-h-sec { background: var(--ezdf-h-bg, #fff); }

@media (max-width: 900px) {
	.ezdf-hb-nav { display: none; }
	.ezdf-mf-hero { padding: 30px 0 28px; }
	.ezdf-mf-hero-grid.has-card { grid-template-columns: 1fr; gap: 22px; }
	.ezdossfood-wrap .ezdf-mf-title { font-size: clamp(40px, 12vw, 56px); letter-spacing: -1px; }
	.ezdf-mf-eyebrow { font-size: 11px; letter-spacing: 2.5px; }
	.ezdf-mf-addr { font-size: 15px; }
	.ezdf-mf-pills { font-size: 12px; }
	.ezdf-mf-btns .ezdf-h-btn-big { padding: 12px 24px; font-size: 16px; }
	.ezdossfood-wrap a.ezdf-mf-card { grid-template-columns: 92px minmax(0, 1fr); gap: 12px; padding: 12px; border-radius: 16px; }
	.ezdf-mf-card-img img { width: 92px; height: 92px; border-radius: 12px; }
	.ezdf-mf-card-name { font-size: 19px; }
	.ezdf-mf-card-desc { font-size: 13px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
	.ezdf-mf-card-go { font-size: 12px; padding: 7px 12px; }
	.ezdf-mf-collage { gap: 8px; }
	.ezdf-mf-collage span { border-radius: 12px; }
	.ezdf-mf-promo { font-size: 13px; padding: 8px 12px; }
}
/* The menu gets the page's full width (centred), whatever column the theme gives the page. */
.ezdf-mf-menu { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.ezdf-mf-inner { max-width: 1240px; margin: 0 auto; padding: 0 20px; }
@media (max-width: 600px) { .ezdf-mf-inner { padding: 0 14px; } }
/* Menu first: the home parts show with the menu (the classic style hides
   them while the menu is shown), and the menu has its own light background
   whatever colour the site theme's page is. */
.ezdf-has-home.ezdf-style-mf .ezdf-home { display: block; }
.ezdf-mf-menu { background: var(--ezdf-h-bg, #fff); color: var(--ezdf-h-text, #1d1d1d); }
.ezdf-mf-menu .ezdf-cards-title { color: var(--ezdf-h-text, #1d1d1d); }
/* Phones: the order bar sits at the bottom of the screen (a sticky "top" set
   for wide screens must not pull it up under the header). */
@media (max-width: 782px) {
	.ezdossfood-wrap .ezdf-layout .ezdf-cart-column { top: auto; }
}
