/* BLKLUX Food Truck - public site styles (widgets, ordering app). Grows per phase. */

/* --- Widget mount points ------------------------------------------------- */
.blklux-widget { color: var(--blklux-ivory); font-family: var(--blklux-font-body); }
.blklux-widget[data-blklux-widget] { min-height: 48px; }
.blklux-widget .blklux-skeleton { border-radius: var(--blklux-r-lg); }
.blklux-widget .blklux-error { padding: 12px 14px; border-radius: var(--blklux-r-md); background: rgba(217, 101, 79, 0.08); }

/* --- Ordering app --------------------------------------------------------- */
.blklux-oa { position: relative; }
.blklux-oa__head { display: flex; align-items: center; gap: var(--blklux-s-3); margin: 0 0 var(--blklux-s-5); padding-top: 40px; }
@media (max-width: 767px) { .blklux-oa__head { padding-top: 24px; } }
.blklux-oa__title, .blklux-ui h1.blklux-oa__title { font-size: clamp(var(--blklux-fs-2xl), 5vw, var(--blklux-fs-4xl)); line-height: 1.05; margin: 0; text-wrap: balance; }
.blklux-oa__hint { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: var(--blklux-s-5) 0 0; }

/* Order type: three tall tiles, the icon sits in a thin gold ring so it reads as a "coin" */
/* Order type: two photo cards, nothing else on the step */
.blklux-oa__types { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.blklux-oa__type {
  appearance: none;
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 400px;
  padding: 28px;
  text-align: left;
  color: var(--blklux-ivory);
  border: 0;
  border-radius: var(--blklux-r-lg);
  overflow: hidden;
  background: var(--blklux-charcoal) center / cover no-repeat;
  font: inherit;
  touch-action: manipulation;
  cursor: pointer;
}
.blklux-oa__type::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8, 8, 8, 0.05) 0%, rgba(8, 8, 8, 0.25) 60%, rgba(8, 8, 8, 0.6) 100%); }
/* Copy sits on a solid plate across the bottom of the card, so it reads on any photo */
.blklux-oa__type-body { display: grid; gap: 4px; justify-items: start; margin: 0 -28px -28px; padding: 20px 28px 26px; background: rgba(10, 10, 10, 0.94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-top: 1px solid rgba(212, 165, 72, 0.28); }
.blklux-oa__type .blklux-oa__type-icon { position: absolute; top: -28px; left: 28px; width: 56px; height: 56px; background: var(--blklux-onyx); box-shadow: 0 0 0 4px rgba(10, 10, 10, 0.94); }
.blklux-oa__type-body { position: relative; padding-top: 40px; }
.blklux-oa__type-title { font-size: 32px; line-height: 1; margin-top: 0; }
.blklux-oa__type-sub { font-size: 16px; color: var(--blklux-ivory); }
.blklux-oa__type-fact { margin-top: 4px; font-size: 13px; letter-spacing: 0.02em; color: var(--blklux-gold-light); }
.blklux-oa__type-cta { margin-top: 16px; pointer-events: none; }
.blklux-oa__type-check { position: absolute; top: 16px; right: 16px; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--blklux-gold-gradient); color: var(--blklux-gold-ink); opacity: 0; transform: scale(0.6); transition: opacity var(--blklux-dur-fast), transform var(--blklux-dur-fast) var(--blklux-ease-out); }
.blklux-oa__type-check svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.blklux-oa__type.blklux-card--selected .blklux-oa__type-check { opacity: 1; transform: scale(1); }
@media (max-width: 900px) { .blklux-oa__type { min-height: 300px; padding: 20px; } .blklux-oa__type-body { margin: 0 -20px -20px; padding: 36px 20px 22px; } .blklux-oa__type .blklux-oa__type-icon { left: 20px; top: -26px; width: 52px; height: 52px; } .blklux-oa__type-title { font-size: 28px; } }
.blklux-oa__type:focus-visible { outline: 2px solid var(--blklux-gold-light); outline-offset: 3px; }
.blklux-oa__type-icon {
  display: inline-grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin-bottom: 0;
  border-radius: 50%;
  border: 1px solid var(--blklux-line-strong);
  color: var(--blklux-gold);
  background: radial-gradient(circle at 30% 25%, rgba(212, 165, 72, 0.18), transparent 60%);
}
.blklux-oa__type-icon .blklux-icon, .blklux-oa__type-icon svg { width: 22px; height: 22px; }
.blklux-oa__type-title { font-size: 24px; line-height: 1.05; }
/* Hover/selected: keep the dark surface (the theme's button:hover would flood it pale gold) — gold rim, a lift,
   the disc lights up and the title warms. */
button.blklux-oa__type, .blklux-oa__type { box-shadow: var(--blklux-rim); transition: box-shadow var(--blklux-dur) var(--blklux-ease-out), transform var(--blklux-dur-fast) var(--blklux-ease-out); }
button.blklux-oa__type:hover, button.blklux-oa__type:focus, .blklux-oa__type:hover, .blklux-oa__type:focus { background-color: var(--blklux-charcoal); color: var(--blklux-ivory); box-shadow: 0 0 0 1px rgba(212, 165, 72, 0.6), 0 18px 40px -18px rgba(212, 165, 72, 0.45); transform: translateY(-3px); }
button.blklux-oa__type:active, .blklux-oa__type:active { transform: translateY(0) scale(0.995); }
.blklux-oa__type:hover .blklux-oa__type-icon { border-color: rgba(212, 165, 72, 0.7); background: radial-gradient(circle at 30% 25%, rgba(212, 165, 72, 0.35), rgba(212, 165, 72, 0.06) 70%); color: var(--blklux-gold-light); }
.blklux-oa__type:hover .blklux-oa__type-title { color: var(--blklux-gold-light); }
.blklux-oa__type .blklux-muted { color: var(--blklux-ash); }
.blklux-oa__type.blklux-card--selected, button.blklux-oa__type.blklux-card--selected { box-shadow: 0 0 0 1px var(--blklux-gold), 0 18px 40px -18px rgba(212, 165, 72, 0.55); }
.blklux-oa__type.blklux-card--selected .blklux-oa__type-icon { background: var(--blklux-gold-gradient); color: var(--blklux-gold-ink); border-color: transparent; }

/* Location step */
.blklux-oa__loc { display: grid; gap: var(--blklux-s-4); max-width: 560px; }
.blklux-oa__or { display: flex; align-items: center; gap: var(--blklux-s-3); color: var(--blklux-ash); font-size: var(--blklux-fs-sm); }
.blklux-oa__or::before, .blklux-oa__or::after { content: ""; flex: 1; height: 1px; background: var(--blklux-line-soft); }
.blklux-oa__saved { display: flex; flex-wrap: wrap; gap: var(--blklux-s-2); }

/* Truck cards */
.blklux-oa__trucks { display: grid; gap: var(--blklux-s-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.blklux-truck__media { aspect-ratio: 16 / 9; }
.blklux-truck__media-pill { position: absolute; left: 14px; bottom: 14px; z-index: 1; }
.blklux-truck__facts { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: var(--blklux-s-3); font-size: var(--blklux-fs-sm); color: var(--blklux-ash); }
.blklux-truck__facts > span { display: inline-flex; align-items: center; gap: 6px; }
.blklux-truck__facts .blklux-icon, .blklux-truck__facts svg { width: 16px; height: 16px; color: var(--blklux-gold); flex: none; }

/* Menu step: order context strip + sticky toolbar (chips left, search right) */
.blklux-oa__context { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 16px 28px; margin: 0 0 var(--blklux-s-5); padding: 18px 22px; border-radius: var(--blklux-r-lg); background: linear-gradient(90deg, rgba(212, 165, 72, 0.10), rgba(212, 165, 72, 0.02) 60%, transparent), var(--blklux-charcoal); box-shadow: var(--blklux-rim); }
.blklux-oa__context-main { display: grid; gap: 2px; min-width: 0; }
.blklux-oa__context-eyebrow { font-family: var(--blklux-font-display); font-style: italic; font-size: 17px; color: var(--blklux-gold); }
.blklux-oa__context-place { font-size: 24px; line-height: 1.1; color: var(--blklux-ivory); }
.blklux-oa__context-addr { font-size: 13px; color: var(--blklux-ash); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.blklux-oa__context-facts { display: flex; gap: 24px; margin: 0; padding: 0 0 0 24px; border-left: 1px solid rgba(212, 165, 72, 0.25); }
.blklux-oa__context-facts > div { display: grid; gap: 4px; }
.blklux-oa__context-facts dt { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--blklux-ash); }
.blklux-oa__context-facts dd { margin: 0; font-family: var(--blklux-font-display); font-size: 19px; font-weight: 600; color: var(--blklux-ivory); font-variant-numeric: var(--blklux-nums); white-space: nowrap; }
.blklux-oa__context-facts dd .blklux-status { vertical-align: middle; }
.blklux-oa__context-change { justify-self: end; }
.blklux-oa__context-note { grid-column: 1 / -1; margin: 0; color: var(--blklux-warn); }
.blklux-oa__toolbar { position: sticky; top: var(--blklux-sticky-top, 0px); z-index: var(--blklux-z-sticky); display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 12px; align-items: center; margin: 0 calc(var(--blklux-gutter) * -1) var(--blklux-s-5); padding: 10px var(--blklux-gutter); background: linear-gradient(var(--blklux-onyx) 88%, transparent); }
.blklux-oa__cats { display: flex; gap: var(--blklux-s-2); overflow-x: auto; padding: 2px 0; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; }
.blklux-oa__cats::-webkit-scrollbar { display: none; }
.blklux-oa__cats .blklux-chip { flex: none; scroll-snap-align: start; }
.blklux-oa__search { margin: 0; }
.blklux-oa__search .blklux-input { height: 44px; border-radius: 999px; padding-left: 44px; }
@media (max-width: 900px) {
  .blklux-oa__context { grid-template-columns: minmax(0, 1fr) auto; padding: 16px 18px; }
  .blklux-oa__context-facts { grid-column: 1 / -1; padding-left: 0; border-left: 0; border-top: 1px solid rgba(212, 165, 72, 0.2); padding-top: 12px; gap: 20px; }
  .blklux-oa__toolbar { grid-template-columns: minmax(0, 1fr); gap: 10px; }
}
/* Category sections: generous rhythm, titles with a hairline, a fixed 3-up grid on desktop so the cards fill the
   width and every category reads as one block (auto-fill left a 4th empty track beside 3-item categories). */
.blklux-oa__grid { display: grid; gap: clamp(40px, 5vw, 64px); }
.blklux-oa__cat { scroll-margin-top: calc(var(--blklux-sticky-top, 0px) + 72px); }
.blklux-oa__cat + .blklux-oa__cat { margin-top: clamp(48px, 5vw, 72px); }
.blklux-oa__cat-title { font-size: var(--blklux-fs-2xl); margin: 0 0 var(--blklux-s-5); padding-bottom: var(--blklux-s-3); border-bottom: 1px solid var(--blklux-line); }
.blklux-oa__cat > .blklux-muted { margin: calc(var(--blklux-s-4) * -1) 0 var(--blklux-s-5); max-width: 60ch; }
.blklux-oa__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--blklux-s-5); }
@media (min-width: 900px) { .blklux-oa__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--blklux-s-6); } }
@media (max-width: 480px) {
  .blklux-oa__cards { grid-template-columns: minmax(0, 1fr); gap: var(--blklux-s-3); }
}

/* Menu card: the portrait photo is the hero; price is set in the display face */
.blklux-menu-card { display: flex; flex-direction: column; }
.blklux-menu-card .blklux-card__media { aspect-ratio: 4 / 3; }
.blklux-menu-card .blklux-card__body { flex: 1; display: flex; flex-direction: column; gap: 2px; padding: var(--blklux-s-3) var(--blklux-s-4) var(--blklux-s-4); }
.blklux-menu-card .blklux-card__body > .blklux-row:last-child { margin-top: auto !important; padding-top: 12px; }
/* A three-word dish name was running to three lines at 22px, which made the
   card about its own typography instead of the food. 19px holds two lines at
   worst, and the price steps back with it so the name still leads. */
/* Elementor's kit styles every h3 at 30px with .elementor-kit-N h3, which outranks
   a bare class — which is why this name was 30px however it was set here. Scoping
   to the widget wrapper wins on specificity without reaching for !important. */
.blklux-ui .blklux-menu-card__name, h3.blklux-menu-card__name { font-family: var(--blklux-font-display); font-weight: 600; font-size: 22px; line-height: 1.12; margin: 0; letter-spacing: 0.01em; text-transform: none; hyphens: auto; text-wrap: balance; }
/* Name on its own line, price underneath — never side by side */
.blklux-menu-card .blklux-row--between:first-child { flex-direction: column; align-items: flex-start; gap: 4px !important; }
.blklux-menu-card .blklux-price { margin-top: 2px; }
.blklux-menu-card .blklux-price { font-size: var(--blklux-fs-lg); white-space: nowrap; }
.blklux-menu-card__desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 2px 0 0; }
.blklux-menu-card__noimg { display: grid; place-items: center; width: 100%; height: 100%; color: var(--blklux-gold-deep); background: radial-gradient(circle at 50% 40%, rgba(212, 165, 72, 0.14), var(--blklux-raised) 70%); }
.blklux-menu-card__noimg svg { width: 40px; height: 40px; opacity: 0.8; }
.blklux-menu-card__badges { position: absolute; left: 10px; top: 10px; z-index: 1; display: flex; flex-wrap: wrap; gap: 4px; max-width: calc(100% - 64px); }
.blklux-menu-card__fav {
  position: absolute;
  right: 6px;
  top: 6px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: rgba(243, 238, 228, 0.85);
  cursor: pointer;
  touch-action: manipulation;
  transition: color var(--blklux-dur-fast) var(--blklux-ease-out), transform var(--blklux-dur-fast) var(--blklux-ease-out);
}
.blklux-menu-card__fav svg { width: 22px; height: 22px; fill: none; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.6)); }
.blklux-menu-card__fav.is-on { color: var(--blklux-gold-light); }
.blklux-menu-card__fav.is-on svg { fill: currentColor; }
.blklux-menu-card__fav:active { transform: scale(0.9); }
.blklux-menu-card__fav:focus-visible { outline: 2px solid var(--blklux-gold-light); outline-offset: -4px; }
.blklux-menu-card__soldout {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: center;
  font-family: var(--blklux-font-display);
  font-size: var(--blklux-fs-xl);
  letter-spacing: var(--blklux-track-display);
  text-transform: uppercase;
  color: var(--blklux-ivory);
  background: rgba(8, 8, 8, 0.62);
}
.blklux-menu-card.is-soldout .blklux-card__media img { filter: grayscale(1); }
.blklux-menu-card.is-soldout { cursor: not-allowed; }
.blklux-menu-card.is-soldout .blklux-card__body { opacity: 0.6; }
.blklux-badge--promo { background: var(--blklux-gold-gradient); color: var(--blklux-gold-ink); border-color: transparent; }
/* On the menu the whole card is the button, so its "Customize" pill is a span
   that must not swallow the click. Real controls — Order and Remove on the
   favourites card — are links and buttons, and keep theirs. */
.blklux-menu-card span.blklux-btn { pointer-events: none; }

/* --- Customizer sheet ----------------------------------------------------- */
.blklux-customizer .blklux-sheet__body { padding-top: 0; }
.blklux-cz { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--blklux-s-4); padding-top: var(--blklux-s-4); }
.blklux-cz > * { min-width: 0; } /* fieldsets/legends would otherwise widen the grid past the sheet and add a horizontal scrollbar */
.blklux-cz__hero { position: relative; margin: 0 calc(var(--blklux-s-5) * -1); height: clamp(180px, 34vh, 280px); overflow: hidden; background: var(--blklux-onyx); }
.blklux-cz__hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.blklux-cz__hero::after { content: ""; position: absolute; inset: auto 0 0 0; height: 56px; background: linear-gradient(180deg, rgba(19, 19, 19, 0) 0%, var(--blklux-charcoal) 100%); pointer-events: none; }
.blklux-cz .blklux-badge + .blklux-badge { margin-left: 6px; }
.blklux-cz__desc { margin: 0; color: var(--blklux-ash); line-height: var(--blklux-lh-body); max-width: 60ch; }
.blklux-cz__group { border: 0; padding: var(--blklux-s-3) 0 0; margin: 0; border-top: 1px solid var(--blklux-line-soft); }
.blklux-cz__legend {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--blklux-s-3);
  width: 100%;
  margin: 0 0 var(--blklux-s-2);
  padding: 0;
  font-family: var(--blklux-font-display);
  font-size: var(--blklux-fs-xl);
  font-weight: 600;
  color: var(--blklux-ivory);
}
.blklux-cz__group legend { float: left; }
.blklux-cz__group legend + * { clear: both; }
.blklux-cz__upsells { padding-top: var(--blklux-s-3); border-top: 1px solid var(--blklux-line-soft); }
.blklux-cz__upsell-row { display: flex; gap: var(--blklux-s-2); overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
.blklux-cz__upsell-row::-webkit-scrollbar { display: none; }
.blklux-cz__upsell-row .blklux-chip { flex: none; }
.blklux-customizer .blklux-sheet__foot .blklux-row { align-items: stretch; }
/* Customizer polish: rows with hairlines, pill hints, quiet zero prices, on-brand scrollbar */
.blklux-customizer .blklux-sheet__body { scrollbar-width: thin; scrollbar-color: rgba(212, 165, 72, 0.35) transparent; }
.blklux-customizer .blklux-sheet__body::-webkit-scrollbar { width: 8px; }
.blklux-customizer .blklux-sheet__body::-webkit-scrollbar-thumb { background: rgba(212, 165, 72, 0.35); border-radius: 4px; }
.blklux-customizer .blklux-sheet__body::-webkit-scrollbar-track { background: transparent; }
.blklux-cz__legend { padding-right: 2px; margin-bottom: 4px; }
.blklux-cz__hint { flex: none; font-family: var(--blklux-font-body); font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; color: var(--blklux-ash); padding: 4px 10px; border: 1px solid var(--blklux-line); border-radius: 999px; }
.blklux-cz__hint--required { color: var(--blklux-gold); border-color: rgba(212, 165, 72, 0.5); }
.blklux-cz__group .blklux-option { min-height: 52px; padding: 8px 10px; border-radius: 0; border: 0; border-bottom: 1px solid var(--blklux-line-soft); }
.blklux-cz__group .blklux-option:last-of-type { border-bottom: 0; }
.blklux-cz__group .blklux-option:hover { background: rgba(212, 165, 72, 0.05); }
.blklux-cz__group .blklux-option:has(input:checked) { background: rgba(212, 165, 72, 0.07); }
.blklux-option__price--zero { color: var(--blklux-ash); font-weight: 500; }
.blklux-cz__upsell-row { flex-wrap: wrap; overflow: visible; padding-bottom: 0; }
.blklux-cz__upsell-row .blklux-chip .blklux-gold { margin-left: 4px; }
.blklux-customizer .blklux-sheet__head { padding-top: var(--blklux-s-4); padding-bottom: var(--blklux-s-4); }
.blklux-customizer .blklux-sheet__head button[aria-label="Close"] { width: 40px; height: 40px; min-height: 40px; padding: 0; border: 1px solid var(--blklux-line); border-radius: 50%; }
.blklux-customizer .blklux-sheet__foot { box-shadow: 0 -18px 30px -16px rgba(0, 0, 0, 0.7); }
/* Footer: stepper and add button share one height, one radius, one hairline language */
.blklux-customizer .blklux-sheet__foot { padding: 12px var(--blklux-s-5) calc(12px + env(safe-area-inset-bottom)); }
.blklux-customizer .blklux-sheet__foot .blklux-row { gap: 12px; justify-content: space-between; }
.blklux-customizer .blklux-sheet__foot .blklux-cz__add { margin-left: auto; }
.blklux-qty--lg { grid-template-columns: 44px 40px 44px; height: 50px; border-radius: 14px; border: 1px solid rgba(212, 165, 72, 0.45); background: var(--blklux-onyx); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); }
.blklux-qty--lg button { height: 48px; width: 100%; padding: 0; margin: 0; line-height: 1; display: grid; place-items: center; font-size: 20px; color: var(--blklux-gold); transition: background-color var(--blklux-dur-fast), color var(--blklux-dur-fast), opacity var(--blklux-dur-fast); }
.blklux-qty--lg button:disabled { color: var(--blklux-ash); opacity: 0.45; cursor: default; background: transparent; }
.blklux-qty--lg output { font-family: var(--blklux-font-body); font-size: 17px; font-weight: 700; color: var(--blklux-ivory); line-height: 1; }
.blklux-cz__add { flex: 0 0 auto; width: auto; min-width: 0; justify-content: center; gap: 16px; padding: 0 24px; min-height: 50px; font-size: 13px; border-radius: 14px; letter-spacing: 0.1em; white-space: nowrap; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), inset 0 -1px 0 rgba(0, 0, 0, 0.18), 0 14px 30px -14px rgba(212, 165, 72, 0.7); }
.blklux-cart .blklux-cz__add { width: 100%; justify-content: space-between; }
.blklux-cz__add-price { font-family: var(--blklux-font-body); font-size: 15px; font-weight: 800; letter-spacing: 0; text-transform: none; font-variant-numeric: tabular-nums; padding-left: 16px; border-left: 1px solid rgba(26, 19, 5, 0.25); line-height: 1; }
.blklux-cz__add:hover { filter: brightness(1.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), inset 0 -1px 0 rgba(0, 0, 0, 0.18), 0 18px 34px -14px rgba(212, 165, 72, 0.85); }
.blklux-cz__add:active { transform: scale(0.985); }
@media (max-width: 480px) {
  .blklux-qty--lg { grid-template-columns: 38px 32px 38px; }
  .blklux-qty--lg output { font-size: 16px; }
  .blklux-cz__add { padding: 0 16px; gap: 12px; font-size: 12.5px; letter-spacing: 0.06em; }
  .blklux-cz__add-price { padding-left: 0; border-left: 0; font-size: 15px; }
}
@media (min-width: 768px) {
  .blklux-customizer.blklux-sheet { width: min(92vw, 640px); }
}

/* --- Cart sheet ----------------------------------------------------------- */
.blklux-cart__items { display: grid; gap: var(--blklux-s-3); }
.blklux-cart__item { display: grid; grid-template-columns: 72px 1fr; gap: var(--blklux-s-3); padding-bottom: var(--blklux-s-3); border-bottom: 1px solid var(--blklux-line-soft); }
.blklux-cart__img { width: 72px; height: 72px; object-fit: cover; border-radius: var(--blklux-r-md); background: var(--blklux-raised); }
.blklux-cart__body { min-width: 0; display: grid; gap: 4px; align-content: start; }
.blklux-cart__body strong { font-weight: 600; overflow-wrap: anywhere; }
.blklux-qty--sm { grid-template-columns: 40px 40px 40px; }
.blklux-qty--sm button { height: 40px; font-size: 20px; }
.blklux-cart__coupon { margin: var(--blklux-s-4) 0; }
.blklux-cart__coupon .blklux-chip { min-height: 40px; }
.blklux-cart__totals { margin: 0; display: grid; gap: 8px; padding-top: var(--blklux-s-3); border-top: 1px solid var(--blklux-line-soft); }
.blklux-cart__totals > div { display: flex; justify-content: space-between; align-items: baseline; gap: var(--blklux-s-3); }
.blklux-cart__totals dt { color: var(--blklux-ash); font-size: var(--blklux-fs-sm); }
.blklux-cart__totals dd { margin: 0; font-variant-numeric: var(--blklux-nums); }
.blklux-cart__totals .is-total { margin-top: 4px; padding-top: 10px; border-top: 1px solid var(--blklux-line); }
.blklux-cart__totals .is-total dt { color: var(--blklux-ivory); font-family: var(--blklux-font-display); font-size: var(--blklux-fs-xl); font-weight: 600; }
.blklux-cart__totals .is-total dd { font-size: var(--blklux-fs-2xl); }
@media (min-width: 768px) {
  .blklux-cart.blklux-sheet { left: auto; right: 0; top: 0; bottom: 0; max-height: none; width: min(440px, 100%); border-radius: 0; transform: translateX(100%); opacity: 1; }
  .blklux-cart.blklux-sheet.is-open { transform: translateX(0); }
  .blklux-cart .blklux-sheet__handle { display: none; }
  .blklux-cart .blklux-sheet__body { flex: 1; }
}

/* --- Sticky cart bar (gold, ink-on-gold, floats above the safe area) ------- */
.blklux-cartbar {
  position: fixed;
  left: 50%;
  bottom: calc(var(--blklux-s-4) + env(safe-area-inset-bottom));
  z-index: var(--blklux-z-sticky);
  display: flex;
  align-items: center;
  gap: 12px;
  width: auto;
  max-width: calc(100% - var(--blklux-gutter) * 2);
  min-height: 54px;
  padding: 0 22px 0 18px;
  border: 0;
  border-radius: var(--blklux-r-pill);
  background: var(--blklux-gold-gradient-h, var(--blklux-gold-gradient));
  color: var(--blklux-gold-ink);
  font: 700 14px / 1 var(--blklux-font-body);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(243, 217, 138, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.35);
  cursor: pointer;
  touch-action: manipulation;
  transform: translate(-50%, 0);
  transition: transform var(--blklux-dur) var(--blklux-ease-out), opacity var(--blklux-dur) var(--blklux-ease-out);
}
.blklux-cartbar[hidden] { display: none; }
.blklux-cartbar:active { transform: translate(-50%, 0) scale(0.98); }
.blklux-cartbar:focus-visible { outline: 2px solid var(--blklux-ivory); outline-offset: 3px; }
.blklux-cartbar__icon { position: relative; flex: none; display: grid; place-items: center; width: 30px; height: 30px; margin-right: 2px; }
.blklux-cartbar__icon svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.blklux-cartbar__count { position: absolute; top: -6px; right: -8px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 10px; display: grid; place-items: center; background: var(--blklux-onyx); color: var(--blklux-gold-light); font-size: 11px; font-weight: 700; letter-spacing: 0; font-variant-numeric: tabular-nums; box-shadow: 0 0 0 2px rgba(243, 217, 138, 0.7); }
.blklux-cartbar__label { flex: none; }
.blklux-cartbar__total { font-size: 16px; font-weight: 800; letter-spacing: 0; font-variant-numeric: tabular-nums; padding-left: 14px; border-left: 1px solid rgba(26, 19, 5, 0.25); }
.blklux-cartbar:hover { filter: brightness(1.05); color: var(--blklux-gold-ink); }
body.has-blklux-cartbar-visible { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
body.has-blklux-appnav .blklux-cartbar { bottom: calc(var(--blklux-appnav-h) + var(--blklux-s-3) + env(safe-area-inset-bottom)); }

/* --- Today's location ------------------------------------------------------ */
.blklux-today__media { aspect-ratio: 16 / 9; }
.blklux-today__body { display: grid; gap: 2px; }
.blklux-today__eyebrow { font-family: var(--blklux-font-display); font-style: italic; font-size: var(--blklux-fs-lg); color: var(--blklux-gold); }
.blklux-today__title { font-size: clamp(var(--blklux-fs-2xl), 4.5vw, var(--blklux-fs-3xl)); margin: 0; }
.blklux-today__map { margin-top: var(--blklux-s-4); aspect-ratio: 16 / 9; }
.blklux-today__actions { display: flex; flex-wrap: wrap; gap: var(--blklux-s-2); margin-top: var(--blklux-s-4); }
.blklux-today__actions .blklux-btn { flex: 1 1 auto; }

/* --- Schedule --------------------------------------------------------------- */
.blklux-schedule + .blklux-schedule { margin-top: var(--blklux-s-6); }
.blklux-schedule__list { list-style: none; margin: 0; padding: 0; display: grid; }
.blklux-schedule__day { display: grid; grid-template-columns: 112px 1fr; gap: var(--blklux-s-3); padding: var(--blklux-s-3) 0; border-top: 1px solid var(--blklux-line-soft); }
.blklux-schedule__day:last-child { border-bottom: 1px solid var(--blklux-line-soft); }
.blklux-schedule__when { display: grid; align-content: start; gap: 2px; }
.blklux-schedule__dow { font-family: var(--blklux-font-display); font-size: var(--blklux-fs-xl); font-weight: 600; line-height: 1.1; }
.blklux-schedule__day.is-today .blklux-schedule__dow { color: var(--blklux-gold); }
.blklux-schedule__day.is-today .blklux-schedule__dow::before { content: ""; display: inline-block; width: 8px; height: 8px; margin: 0 8px 3px 0; border-radius: 50%; background: var(--blklux-gold); box-shadow: 0 0 0 3px rgba(212, 165, 72, 0.22); }
.blklux-schedule__day.is-closed { color: var(--blklux-ash); }
.blklux-schedule__slots { display: grid; gap: var(--blklux-s-2); }
.blklux-schedule__slot { display: grid; gap: 2px; justify-items: start; }
.blklux-schedule__slot strong { font-weight: 600; }
@media (max-width: 480px) {
  .blklux-schedule__day { grid-template-columns: 88px 1fr; }
  .blklux-schedule__dow { font-size: var(--blklux-fs-lg); }
}

/* --- Live map ---------------------------------------------------------------- */
.blklux-map, .blklux-ui .leaflet-container { position: relative; z-index: 0; isolation: isolate; }
.blklux-livemap__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: var(--blklux-s-3); }
.blklux-livemap__bar .blklux-btn { margin-left: auto; }
.blklux-map .leaflet-container { background: var(--blklux-charcoal); font-family: var(--blklux-font-body); }
.blklux-map .leaflet-tile-pane { filter: grayscale(1) invert(1) contrast(0.92) brightness(0.72) sepia(0.28) hue-rotate(5deg) saturate(1.1); }
.blklux-map .leaflet-control-zoom a { background: var(--blklux-charcoal); color: var(--blklux-gold); border-color: var(--blklux-line); width: 36px; height: 36px; line-height: 36px; }
.blklux-map .leaflet-control-zoom a:hover { background: var(--blklux-raised); }
.blklux-map .leaflet-bar { border: 1px solid var(--blklux-line); box-shadow: none; }
.blklux-map .leaflet-control-attribution { background: rgba(8, 8, 8, 0.7); color: var(--blklux-ash); font-size: 10px; }
.blklux-map .leaflet-control-attribution a { color: var(--blklux-gold); }
.blklux-map .leaflet-popup-content-wrapper { background: var(--blklux-charcoal); color: var(--blklux-ivory); border: 1px solid var(--blklux-line-strong); border-radius: var(--blklux-r-md); box-shadow: var(--blklux-elev-2); }
.blklux-map .leaflet-popup-tip { background: var(--blklux-charcoal); border: 1px solid var(--blklux-line-strong); border-top: 0; border-left: 0; }
.blklux-map .leaflet-popup-close-button { color: var(--blklux-ash); }
.blklux-pin svg { width: 36px; height: 44px; filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.6)); }
.blklux-pin--truck svg { animation: blklux-pin-pulse 2.4s var(--blklux-ease-out) infinite; transform-origin: 50% 100%; }
@keyframes blklux-pin-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }

/* --- Events ------------------------------------------------------------------ */
.blklux-events { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.blklux-event .blklux-card__media { aspect-ratio: 3 / 2; }

/* --- App bottom nav (mobile) ------------------------------------------------- */
.blklux-appnav {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--blklux-z-appnav);
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  height: calc(var(--blklux-appnav-h) + env(safe-area-inset-bottom));
  padding-bottom: env(safe-area-inset-bottom);
  background: rgba(8, 8, 8, 0.92);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-top: 1px solid var(--blklux-line);
}
.blklux-appnav a, .blklux-appnav button {
  appearance: none;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 4px;
  min-width: 44px;
  border: 0;
  background: transparent;
  color: var(--blklux-ash);
  font: 500 11px / 1 var(--blklux-font-body);
  text-decoration: none;
  letter-spacing: 0.02em;
  cursor: pointer;
  touch-action: manipulation;
  position: relative;
  transition: color var(--blklux-dur-fast) var(--blklux-ease-out);
}
.blklux-appnav svg { width: 22px; height: 22px; }
.blklux-appnav a.is-active, .blklux-appnav a[aria-current="page"] { color: var(--blklux-gold-light); }
.blklux-appnav a:hover, .blklux-appnav button:hover, .blklux-appnav button:focus { background: transparent; color: var(--blklux-gold-light); }
.blklux-appnav a.is-active::before { content: ""; position: absolute; top: 0; left: 50%; width: 24px; height: 2px; border-radius: 0 0 2px 2px; background: var(--blklux-gold-gradient-h, var(--blklux-gold-gradient)); transform: translateX(-50%); }
.blklux-appnav a:focus-visible, .blklux-appnav button:focus-visible { outline: 2px solid var(--blklux-gold-light); outline-offset: -4px; }
.blklux-appnav__badge { position: absolute; top: 6px; left: calc(50% + 6px); min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; display: grid; place-items: center; background: var(--blklux-gold-gradient); color: var(--blklux-gold-ink); font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; }
.blklux-appnav__badge[hidden] { display: none; }
body.has-blklux-appnav { padding-bottom: calc(var(--blklux-appnav-h) + env(safe-area-inset-bottom)); }
/* Astra scroll-to-top sits bottom-right, exactly over the Account tab; the app-nav already has Home. */
@media (max-width: 1023px) { body.has-blklux-appnav #ast-scroll-top, body.has-blklux-appnav .ast-scroll-top-icon { display: none !important; } }
@media (min-width: 1024px) {
  .blklux-appnav { display: none; }
  body.has-blklux-appnav { padding-bottom: 0; }
  body.has-blklux-appnav .blklux-cartbar { bottom: calc(var(--blklux-s-5) + env(safe-area-inset-bottom)); }
}

/* --- Loyalty balance widget --------------------------------------------------- */
.blklux-loyalty { display: grid; gap: var(--blklux-s-3); }
.blklux-loyalty__num { font-family: var(--blklux-font-display); font-size: var(--blklux-fs-4xl); font-weight: 600; line-height: 1; font-variant-numeric: var(--blklux-nums); color: var(--blklux-gold-light); }

/* --- Account: rewards ------------------------------------------------------ */
.blklux-account-hero { margin-bottom: var(--blklux-s-5); }
.blklux-rewards__hero { display: grid; gap: 10px; }
.blklux-rewards__balance { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.blklux-rewards__balance .blklux-display { font-size: var(--blklux-fs-4xl); }
.blklux-rewards__tier { display: grid; gap: 6px; padding-top: 12px; border-top: 1px solid var(--blklux-line-soft); }
.blklux-rewards__bar { height: 6px; border-radius: 3px; background: rgba(255, 255, 255, 0.06); overflow: hidden; }
.blklux-rewards__bar span { display: block; height: 100%; background: var(--blklux-gold-gradient); border-radius: 3px; transition: width 600ms var(--blklux-ease-out); }
/* The reward card now lives in woocommerce.css, where the account pages are
   styled; the old definition here sized its items to content, which collapsed
   a media block that has no in-flow child. */

/* --- Catering ----------------------------------------------------------- */
.blklux-catering__packages { margin-bottom: var(--blklux-s-5); grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.blklux-catering__package { display: grid; gap: 6px; align-content: start; justify-items: start; cursor: pointer; }
.blklux-catering__package:has(input:focus-visible) { outline: 2px solid var(--blklux-gold-light); outline-offset: 3px; }

/* --- Motion ---------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .blklux-pin--truck svg { animation: none; }
  .blklux-cartbar, .blklux-menu-card__fav, .blklux-oa__type { transition: none; }
}

/* --- Site chrome (Astra + Xpro Theme Builder + Elementor pages) ------------- */
body.blklux-theme { background-color: var(--blklux-onyx); color: var(--blklux-ivory); }
body.blklux-theme .ast-container, body.blklux-theme #content, body.blklux-theme .site-content { background: transparent; }
body.blklux-theme .elementor-widget-text-editor a, body.blklux-theme .entry-content a:where(:not(.blklux-btn)), .blklux-site-footer a { color: var(--blklux-gold); }
body.blklux-theme .elementor-widget-text-editor a:hover, body.blklux-theme .entry-content a:where(:not(.blklux-btn)):hover, .blklux-site-footer a:hover { color: var(--blklux-gold-light); }
body.blklux-theme ::selection { background: var(--blklux-gold); color: var(--blklux-gold-ink); }
.xpro-theme-builder-header { position: relative; z-index: var(--blklux-z-sticky); }
.xtb-header-sticky.xtb-appear .xpro-theme-builder-header-nav { z-index: calc(var(--blklux-z-sticky) + 5); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.xpro-theme-builder-header .main-title.xpro-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.blklux-site-header .blklux-widget--status-badge { white-space: nowrap; }
@media (max-width: 767px) { .blklux-site-header .blklux-widget--status-badge { display: none; } }
.xpro-theme-builder-footer .blklux-widget .blklux-card { background: transparent; box-shadow: none; padding: 0; border-radius: 0; }
body.blklux-theme .elementor-accordion .elementor-accordion-item { border-color: var(--blklux-line) !important; border-radius: var(--blklux-r-md); overflow: hidden; margin-bottom: 8px; }
body.blklux-theme .elementor-accordion .elementor-tab-title { font-family: var(--blklux-font-display); font-size: var(--blklux-fs-xl); text-transform: none; letter-spacing: 0; }
body.blklux-theme .elementor-accordion .elementor-tab-content { border-top-color: var(--blklux-line-soft) !important; }
body.blklux-theme .elementor-widget-text-editor ul { padding-left: 1.2em; }
body.blklux-theme .elementor-widget-text-editor li::marker { color: var(--blklux-gold); }

/* Header navigation (Xpro horizontal menu inside the BLKLUX header template) */
.blklux-site-header .xpro-elementor-horizontal-navbar-nav > li > a.xpro-elementor-nav-link { font-family: var(--blklux-font-body); font-size: 11.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; padding: 16px 6px; color: var(--blklux-ivory); transition: color var(--blklux-dur-fast) var(--blklux-ease-out); }
.blklux-site-header .xpro-elementor-horizontal-navbar-nav > li > a.xpro-elementor-nav-link:hover, .blklux-site-header .xpro-elementor-horizontal-navbar-nav > li.current-menu-item > a.xpro-elementor-nav-link { color: var(--blklux-gold-light); }
.blklux-site-header .xpro-elementor-horizontal-navbar-nav > li.current-menu-item > a.xpro-elementor-nav-link { text-decoration: underline; text-underline-offset: 8px; text-decoration-color: var(--blklux-gold); }
.blklux-site-header .xpro-elementor-horizontal-menu-toggle, .blklux-site-header .xpro-elementor-horizontal-menu-close { color: var(--blklux-gold); }
@media (max-width: 1024px) {
  /* Drawer menu: editorial list in the display face, gold hairlines, brand mark on top */
  .blklux-site-header .xpro-elementor-horizontal-menu-responsive-tablet { border-left: 1px solid rgba(212, 165, 72, 0.25); box-shadow: -24px 0 60px rgba(0, 0, 0, 0.6); }
  .blklux-site-header .xpro-elementor-horizontal-menu-responsive-tablet .xpro-elementor-horizontal-navbar { padding-top: 32px; }
  .blklux-site-header .xpro-elementor-horizontal-menu-responsive-tablet .xpro-elementor-horizontal-navbar::before { content: "Black Lux"; display: block; text-align: left; margin: 0 20px 18px; padding-bottom: 14px; border-bottom: 1px solid rgba(212, 165, 72, 0.35); font-family: var(--blklux-font-body); font-size: 11px; font-weight: 700; letter-spacing: 0.32em; text-transform: uppercase; color: var(--blklux-gold); }
  .blklux-site-header .xpro-elementor-horizontal-navbar-nav > li > a.xpro-elementor-nav-link { font-family: var(--blklux-font-display); font-size: 28px; font-weight: 500; letter-spacing: 0.06em; padding: 16px 20px; line-height: 1.1; }
  .blklux-site-header .xpro-elementor-horizontal-navbar-nav > li.current-menu-item > a.xpro-elementor-nav-link { text-decoration: none; }
  .blklux-site-header .xpro-elementor-horizontal-navbar-nav > li.current-menu-item > a.xpro-elementor-nav-link::before { content: ""; display: inline-block; width: 18px; height: 1px; margin-right: 10px; vertical-align: middle; background: var(--blklux-gold); }
  .blklux-site-header button.xpro-elementor-horizontal-menu-toggler, .blklux-site-header button.xpro-elementor-horizontal-menu-close { min-width: 44px; min-height: 44px; }
}

/* Header: compact on phones/tablets */
.blklux-site-header .elementor-widget-button .elementor-button { white-space: nowrap; }
@media (max-width: 1279px) {
  .blklux-site-header .elementor-widget-blklux-status-badge .blklux-widget--status-badge { display: none; }
}
@media (max-width: 1024px) {
  .blklux-site-header .elementor-widget-button .elementor-button { padding: 10px 16px; font-size: 11px; letter-spacing: 0.1em; }
  .blklux-site-header .elementor-widget-heading .elementor-heading-title { font-size: 16px !important; letter-spacing: 0.08em !important; }
}
@media (max-width: 767px) {
  .blklux-site-header .elementor-widget-button .elementor-button { padding: 9px 12px; font-size: 11px; letter-spacing: 0.08em; }
}
/* Status badge widget: inline, centres inside centred containers */
.elementor-widget-blklux-status-badge .blklux-widget--status-badge, .blklux-widget--status-badge { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 10px; text-align: center; min-height: 0; }
.blklux-widget--status-badge > .blklux-small, .blklux-widget--status-badge > .blklux-muted { margin-left: 0 !important; }
/* Business info rows */
.blklux-widget--business-info .blklux-list-row { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--blklux-ivory); }
.blklux-widget--business-info .blklux-list-row .blklux-icon { width: 18px; height: 18px; color: var(--blklux-gold); flex: none; }
.blklux-widget--business-info a.blklux-list-row:hover { color: var(--blklux-gold-light); }

/* Elementor Button widget + native inputs on Elementor pages get the BLKLUX look here
   (not via kit globals, which would leak into the ordering app's own controls). */
body.blklux-theme .elementor-widget-button .elementor-button {
  font-family: var(--blklux-font-body); font-weight: 700; font-size: 13px; letter-spacing: var(--blklux-track-button); text-transform: uppercase;
  color: var(--blklux-gold-ink); background: var(--blklux-gold-gradient); border-radius: var(--blklux-r-pill); padding: 14px 28px;
  box-shadow: 0 0 0 1px rgba(243, 217, 138, 0.25); transition: transform var(--blklux-dur-fast) var(--blklux-ease-out), filter var(--blklux-dur-fast) var(--blklux-ease-out);
}
body.blklux-theme .elementor-widget-button .elementor-button:hover { color: var(--blklux-gold-ink); filter: brightness(1.08); }
body.blklux-theme .elementor-widget-button .elementor-button:active { transform: scale(0.98); }
body.blklux-theme .elementor-widget-button .elementor-button:focus-visible { outline: 2px solid var(--blklux-gold-light); outline-offset: 3px; }
body.blklux-theme .elementor-widget-button .elementor-button-link.elementor-size-sm { padding: 10px 20px; font-size: 12px; }
body.blklux-theme .elementor-widget-button .elementor-button-link.elementor-size-lg { padding: 16px 34px; font-size: 14px; }
body.blklux-theme .elementor-widget-text-editor, body.blklux-theme .elementor-widget-heading .elementor-heading-title { color: inherit; }
body.blklux-theme .elementor-widget-heading .elementor-heading-title { color: var(--blklux-ivory); }
body.blklux-theme .elementor-widget-text-editor { color: #d8d2c6; }
body.blklux-theme .elementor-widget-text-editor a { color: var(--blklux-gold); }

/* Menu cards: never overflow at two columns on phones */
.blklux-menu-card .blklux-card__body > * { min-width: 0; }
.blklux-menu-card .blklux-row { min-width: 0; }
.blklux-menu-card .blklux-row > * { min-width: 0; }
.blklux-menu-card__name { overflow-wrap: normal; }
/* Phones: one stacked card per dish — photo on top, then name, price, description, then the action row. */
@media (max-width: 480px) {
  .blklux-menu-card { display: flex; flex-direction: column; }
  .blklux-menu-card .blklux-card__media { order: 0; aspect-ratio: 16 / 10; height: auto; min-height: 0; }
  .blklux-menu-card .blklux-card__body { order: 1; padding: 14px 16px 16px; gap: 4px; }
  .blklux-menu-card .blklux-row--between:first-child { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 12px !important; }
  .blklux-ui h3.blklux-menu-card__name, .blklux-menu-card__name { font-size: 21px; line-height: 1.15; }
  .blklux-menu-card .blklux-price { font-size: 20px; }
  .blklux-menu-card__desc { -webkit-line-clamp: 2; font-size: 14px; }
  .blklux-menu-card .blklux-row--between:last-child { margin-top: auto !important; padding-top: 12px; gap: 12px; }
  .blklux-menu-card .blklux-btn--sm { padding: 0 16px; font-size: 11.5px; min-height: 36px; letter-spacing: 0.1em; }
  .blklux-menu-card__badges { left: 10px; top: 10px; max-width: calc(100% - 64px); }
  .blklux-menu-card__badges .blklux-badge { font-size: 10.5px; }
}

/* Toasts sit above the cart bar / app nav */
body.has-blklux-cartbar-visible .blklux-toasts { bottom: calc(var(--blklux-appnav-h) + env(safe-area-inset-bottom) + 84px); }
@media (min-width: 1024px) { body.has-blklux-cartbar-visible .blklux-toasts { bottom: calc(env(safe-area-inset-bottom) + 96px); } }

/* Section titles inside sheets never inherit theme heading sizes */
.blklux-ui h3.blklux-cz__legend, .blklux-ui h2.blklux-cz__legend { font-size: var(--blklux-fs-xl); text-transform: none; letter-spacing: 0; line-height: 1.2; }

/* Outline variant of the Elementor button (Pages installer adds .blklux-btn-outline) */
body.blklux-theme .elementor-widget-button.blklux-btn-outline .elementor-button { background: transparent; color: var(--blklux-gold); box-shadow: inset 0 0 0 1px var(--blklux-gold); }
body.blklux-theme .elementor-widget-button.blklux-btn-outline .elementor-button:hover { background: var(--blklux-gold-gradient); color: var(--blklux-gold-ink); filter: none; }

/* Theme/kit input rules (input[type=…]) must not restyle BLKLUX fields */
.blklux-ui input.blklux-input, .blklux-ui select.blklux-select, .blklux-ui textarea.blklux-textarea, body.blklux-theme input.blklux-input, body.blklux-theme textarea.blklux-textarea {
  appearance: none; width: 100%; min-height: 48px; padding: 12px 14px; border-radius: var(--blklux-r-md); border: 1px solid var(--blklux-line);
  background: var(--blklux-raised); color: var(--blklux-ivory); font-family: var(--blklux-font-body); font-size: 16px; line-height: 1.4; box-shadow: none;
}
.blklux-ui input.blklux-input:focus, body.blklux-theme input.blklux-input:focus, .blklux-ui textarea.blklux-textarea:focus { border-color: var(--blklux-gold); box-shadow: 0 0 0 3px rgba(212, 165, 72, 0.18); outline: none; }
.blklux-ui .blklux-input-group input.blklux-input, body.blklux-theme .blklux-input-group input.blklux-input { padding-left: 44px; }
.blklux-ui select.blklux-select, body.blklux-theme select.blklux-select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23d4a548' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 40px; }
/* Keep the gold picker glyphs (ui.css) — the hardened background shorthand above must not wipe them. */
body.blklux-theme input.blklux-input[type="date"], body.blklux-theme input.blklux-input[type="time"], body.blklux-theme input.blklux-input[type="datetime-local"] { background-repeat: no-repeat; background-position: right 14px center; background-size: 18px 18px; padding-right: 44px; }
body.blklux-theme input.blklux-input[type="date"], body.blklux-theme input.blklux-input[type="datetime-local"] { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23d4a548' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E"); }
body.blklux-theme input.blklux-input[type="time"] { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23d4a548' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.blklux-ui input.blklux-input::placeholder, body.blklux-theme input.blklux-input::placeholder { color: var(--blklux-ash); }

/* ==========================================================================
   Home v2 — editorial "night service" compositions
   ========================================================================== */

/* Section heading rule: a short gold hairline under H2s (structure, not decoration) */
.blklux-theme .elementor-widget-heading.blklux-h-rule .elementor-heading-title { position: relative; padding-bottom: 14px; }
.blklux-theme .elementor-widget-heading.blklux-h-rule .elementor-heading-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 56px; height: 1px; background: var(--blklux-gold-gradient-h, var(--blklux-gold)); }

/* Hero poster */
.blklux-hero { position: relative; isolation: isolate; }
.blklux-hero::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(180deg, rgba(8,8,8,0.55) 0%, rgba(8,8,8,0.15) 35%, rgba(8,8,8,0.35) 70%, var(--blklux-onyx) 100%); }
.blklux-hero > .e-con-inner { position: relative; z-index: 1; }
.blklux-hero__title .elementor-heading-title { text-wrap: balance; text-shadow: 0 2px 24px rgba(0,0,0,0.6); }
.blklux-hero__lede { max-width: 46ch; font-size: 18px; line-height: 1.55; color: rgba(243,238,228,0.82) !important; }
@media (max-width: 1024px) { .blklux-hero__aside { max-width: 480px; } }

/* Ticket — gold-foil stub used for tonight's stop (hero, footer) */
.blklux-ticket { position: relative; display: grid; gap: 10px; padding: 22px 22px 18px; background: linear-gradient(160deg, #171512 0%, #0f0e0c 100%); border: 1px solid rgba(212,165,72,0.42); border-radius: 6px; box-shadow: 0 30px 60px -30px rgba(0,0,0,0.9), inset 0 0 0 1px rgba(255,255,255,0.02); overflow: visible; }
.blklux-ticket::before, .blklux-ticket::after { content: ""; position: absolute; top: 50%; width: 22px; height: 22px; border-radius: 50%; background: var(--blklux-onyx); border: 1px solid rgba(212,165,72,0.42); transform: translateY(-50%); }
.blklux-ticket::before { left: -12px; clip-path: inset(0 0 0 50%); }
.blklux-ticket::after { right: -12px; clip-path: inset(0 50% 0 0); }
.blklux-hero .blklux-ticket::before, .blklux-hero .blklux-ticket::after { background: #0c0b09; }
.blklux-ticket__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding-bottom: 12px; border-bottom: 1px dashed rgba(212,165,72,0.35); }
.blklux-ticket__eyebrow { font-family: var(--blklux-font-display); font-style: italic; font-size: 20px; color: var(--blklux-gold); }
.blklux-ticket__title { font-size: clamp(26px, 2.6vw, 34px); line-height: 1.05; margin: 4px 0 0; }
.blklux-ticket__addr { margin: 0; color: var(--blklux-ash); font-size: var(--blklux-fs-sm); }
.blklux-ticket__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 10px 16px; margin: 8px 0 4px; padding: 12px 0; border-top: 1px dashed rgba(212,165,72,0.35); border-bottom: 1px dashed rgba(212,165,72,0.35); }
.blklux-ticket__facts div { display: grid; gap: 2px; }
.blklux-ticket__facts dt { font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--blklux-ash); }
.blklux-ticket__facts dd { margin: 0; font-family: var(--blklux-font-display); font-size: 20px; font-weight: 600; color: var(--blklux-ivory); font-variant-numeric: var(--blklux-nums); }
/* Ticket actions: two equal, full-width buttons — solid "Order ahead" over an outlined "Directions" */
.blklux-ticket__actions { display: grid; gap: 10px; margin-top: 4px; }
.blklux-ticket__actions .blklux-btn { width: 100%; min-height: 48px; }
.blklux-ticket__actions .blklux-btn svg { width: 18px; height: 18px; }
.blklux-ticket__stub { position: absolute; right: 14px; top: -9px; padding: 2px 10px; background: var(--blklux-onyx); border: 1px solid rgba(212,165,72,0.42); border-radius: 999px; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--blklux-gold); }

/* Framed photo: image with an offset gold hairline frame */
.blklux-theme .elementor-widget-image.blklux-framed { position: relative; padding: 0 14px 14px 0; }
.blklux-theme .elementor-widget-image.blklux-framed img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 4px; box-shadow: 0 40px 80px -40px rgba(0,0,0,0.95); }
.blklux-theme .elementor-widget-image.blklux-framed::after { content: ""; position: absolute; inset: 14px 0 0 14px; border: 1px solid rgba(212,165,72,0.55); border-radius: 4px; pointer-events: none; }
@media (max-width: 767px) { .blklux-theme .elementor-widget-image.blklux-framed img { aspect-ratio: 4 / 3; } }

/* Menu board: name ... price */
.blklux-board { list-style: none; margin: 12px 0 0; padding: 0; display: grid; }
.blklux-board__row { padding: 14px 0; border-bottom: 1px solid rgba(212,165,72,0.14); cursor: pointer; transition: padding-left var(--blklux-dur-fast) var(--blklux-ease-out); }
.blklux-board__row:hover, .blklux-board__row:focus-visible { padding-left: 6px; outline: none; }
.blklux-board__row:focus-visible .blklux-board__name { color: var(--blklux-gold-light); }
.blklux-board__row.is-soldout { opacity: 0.5; cursor: not-allowed; }
.blklux-board__line { display: flex; align-items: baseline; gap: 10px; }
.blklux-board__name { font-family: var(--blklux-font-display); font-size: clamp(20px, 1.6vw, 24px); font-weight: 600; color: var(--blklux-ivory); letter-spacing: 0.01em; }
.blklux-board__star { color: var(--blklux-gold); font-size: 14px; margin-left: 8px; vertical-align: middle; }
.blklux-board__leader { flex: 1; min-width: 24px; border-bottom: 1px dotted rgba(212,165,72,0.5); transform: translateY(-6px); }
.blklux-board__price { font-family: var(--blklux-font-display); font-size: clamp(20px, 1.6vw, 24px); font-weight: 700; color: var(--blklux-gold); font-variant-numeric: var(--blklux-nums); white-space: nowrap; }
.blklux-board__price s { color: var(--blklux-ash); font-weight: 400; font-size: 0.8em; margin-right: 6px; }
.blklux-board__desc { margin: 4px 0 0; max-width: 56ch; color: var(--blklux-ash); font-size: var(--blklux-fs-sm); line-height: 1.5; }

/* Steps strip */
.blklux-theme .elementor-widget-heading.blklux-step__num .elementor-heading-title { font-variant-numeric: var(--blklux-nums); letter-spacing: 0.04em; position: relative; padding-top: 18px; }
.blklux-theme .elementor-widget-heading.blklux-step__num .elementor-heading-title::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 1px; background: linear-gradient(90deg, var(--blklux-gold) 0, rgba(212,165,72,0.15) 100%); }
.blklux-steps-section .blklux-widget--order-type { margin-top: 8px; }

/* Membership card (loyalty) */
.blklux-membercard { position: relative; aspect-ratio: 1.586; max-width: 480px; padding: 26px 28px; border-radius: 18px; display: grid; grid-template-rows: auto 1fr auto; color: var(--blklux-ivory); overflow: hidden;
  background: radial-gradient(120% 90% at 100% 0%, rgba(212,165,72,0.28), transparent 55%), radial-gradient(80% 60% at 0% 100%, rgba(154,111,30,0.25), transparent 60%), linear-gradient(160deg, #1a1712 0%, #0a0a0a 60%, #111 100%);
  border: 1px solid rgba(212,165,72,0.45); box-shadow: 0 40px 80px -40px rgba(0,0,0,0.95), inset 0 1px 0 rgba(255,255,255,0.06); }
.blklux-membercard::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(212,165,72,0.18); border-radius: 12px; pointer-events: none; }
.blklux-membercard__top { display: flex; align-items: center; justify-content: space-between; }
.blklux-membercard__program { font-family: var(--blklux-font-display); font-style: italic; font-size: 22px; color: var(--blklux-gold-light); }
.blklux-membercard__mark { width: 44px; height: 44px; border-radius: 50%; opacity: 0.95; }
.blklux-membercard__points { align-self: center; display: flex; align-items: baseline; gap: 10px; font-family: var(--blklux-font-display); font-weight: 600; font-size: clamp(44px, 5vw, 64px); line-height: 1; font-variant-numeric: var(--blklux-nums); background: var(--blklux-gold-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; }
.blklux-membercard__points small { font-family: var(--blklux-font-body); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--blklux-ash); -webkit-text-fill-color: var(--blklux-ash); }
.blklux-membercard__foot { display: flex; justify-content: space-between; gap: 16px; }
.blklux-membercard__foot > div { display: grid; gap: 2px; }
.blklux-membercard__label { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--blklux-ash); }
.blklux-membercard__name { font-family: var(--blklux-font-display); font-size: 20px; letter-spacing: 0.06em; text-transform: uppercase; }
.blklux-membercard__next { display: block; margin-top: 10px; font-size: 12px; color: var(--blklux-ash); }
.blklux-membercard__next:empty { display: none; }
.blklux-widget--loyalty-balance[data-variant="card"] { display: grid; }

/* Events as tickets */
.blklux-events .blklux-event { border-radius: 6px; box-shadow: none; border: 1px solid rgba(212,165,72,0.35); background: linear-gradient(160deg, #151310, #0e0d0b); }
.blklux-events .blklux-event .blklux-card__body { position: relative; }
.blklux-events .blklux-event .blklux-card__body::before { content: ""; position: absolute; left: 16px; right: 16px; top: 0; border-top: 1px dashed rgba(212,165,72,0.35); }
.blklux-events .blklux-event .blklux-badge { background: transparent; border-color: rgba(212,165,72,0.5); }

/* Bands */
.blklux-band .blklux-today { border-radius: 6px; }
.blklux-band__lede { max-width: 52ch; font-size: 18px; }
.blklux-catering-band { border-top: 1px solid rgba(212,165,72,0.2); }
.blklux-catering-band .elementor-widget-heading .elementor-heading-title { text-shadow: 0 2px 20px rgba(0,0,0,0.6); }

/* Ghost button */
body.blklux-theme .elementor-widget-button.blklux-btn-ghost .elementor-button { background: transparent; box-shadow: none; color: var(--blklux-gold); padding-left: 0; padding-right: 0; text-decoration: underline; text-underline-offset: 6px; text-decoration-color: rgba(212,165,72,0.5); }
body.blklux-theme .elementor-widget-button.blklux-btn-ghost .elementor-button:hover { filter: none; color: var(--blklux-gold-light); text-decoration-color: currentColor; }

/* Header logo + footer */
.blklux-site-header .elementor-widget-image.blklux-logo img { height: 52px; width: auto; max-width: none; }
@media (max-width: 1024px) { .blklux-site-header .elementor-widget-image.blklux-logo img { height: 40px; } }
@media (max-width: 480px) { .blklux-site-header .elementor-widget-image.blklux-logo img { height: 34px; } }

/* Hero entrance: one orchestrated reveal, nothing else animates on load */
@media (prefers-reduced-motion: no-preference) {
  .blklux-hero__copy > .elementor-element { opacity: 0; transform: translateY(18px); animation: blklux-rise 900ms var(--blklux-ease-out) forwards; }
  .blklux-hero__copy > .elementor-element:nth-child(2) { animation-delay: 80ms; }
  .blklux-hero__copy > .elementor-element:nth-child(3) { animation-delay: 160ms; }
  .blklux-hero__copy > .elementor-element:nth-child(4) { animation-delay: 240ms; }
  .blklux-hero__aside { opacity: 0; animation: blklux-rise 900ms 380ms var(--blklux-ease-out) forwards; }
  @keyframes blklux-rise { to { opacity: 1; transform: none; } }
}

/* Desktop cart bar sits bottom-right so it never covers hero content */
@media (min-width: 1024px) { .blklux-cartbar { left: auto; right: 28px; transform: none; width: auto; } .blklux-cartbar:active { transform: scale(0.98); } }
/* …and Astra scroll-to-top moves above it while the bar is showing, instead of covering the total */
@media (min-width: 1024px) { body.has-blklux-cartbar-visible #ast-scroll-top { bottom: calc(env(safe-area-inset-bottom) + 110px) !important; } }
#ast-scroll-top { background: var(--blklux-charcoal); color: var(--blklux-gold); border: 1px solid rgba(212, 165, 72, 0.35); border-radius: var(--blklux-r-md); box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5); }
#ast-scroll-top:hover { background: var(--blklux-raised); color: var(--blklux-gold-light); }
.blklux-site-header .xpro-elementor-horizontal-navbar-nav > li { margin: 0; }
.blklux-ticket__facts dd { font-size: 18px; }

/* Anchor buttons keep their own colour inside Elementor content (kit link colour must not win) */
body.blklux-theme a.blklux-btn, body.blklux-theme .blklux-ui a.blklux-btn, body.blklux-theme .elementor a.blklux-btn { color: var(--btn-fg); }
body.blklux-theme a.blklux-btn:hover, body.blklux-theme a.blklux-btn:focus, body.blklux-theme .elementor a.blklux-btn:hover, body.blklux-theme button.blklux-btn:hover, body.blklux-theme button.blklux-btn:focus { color: var(--btn-fg); background: var(--btn-bg); background-origin: border-box; border-color: var(--btn-rim); }
.blklux-ticket__facts { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.blklux-ticket__facts dd { font-size: 17px; text-wrap: balance; }
/* ---------------------------------------------------------------- Footer v3: the back of the menu card */
.blklux-site-footer { color: var(--blklux-ivory); }
.blklux-site-footer .elementor-widget-image.blklux-logo img { width: 220px; height: auto; }
.blklux-site-footer__name .elementor-heading-title { font-family: var(--blklux-font-display); font-size: 30px; text-transform: uppercase; letter-spacing: var(--blklux-track-display); }
body.blklux-theme .blklux-site-footer__tagline p { margin: 0; max-width: 34ch; font-size: 16px; line-height: 1.6; color: var(--blklux-ivory); }
.blklux-site-footer__contact p { margin: 0; display: grid; gap: 4px; }
body.blklux-theme .blklux-site-footer__contact a { display: inline-block; min-height: 28px; line-height: 28px; color: var(--blklux-ash); text-decoration: none; text-underline-offset: 4px; }
body.blklux-theme .blklux-site-footer__contact a:hover { color: var(--blklux-gold-light); text-decoration: underline; text-decoration-color: rgba(212, 165, 72, 0.6); }
.blklux-site-footer .elementor-widget-button .elementor-button { margin-top: 6px; }
/* Group titles: italic display voice, then a short gold rule */
.blklux-site-footer__heading .elementor-heading-title { color: var(--blklux-gold); }
.blklux-site-footer__heading .elementor-heading-title::after { content: ""; display: block; width: 28px; height: 1px; margin-top: 10px; background: var(--blklux-gold); opacity: 0.55; }
/* This week */
.blklux-week { list-style: none; margin: 0; padding: 0; display: grid; }
.blklux-week__truck { margin: 0 0 6px; font-family: var(--blklux-font-display); font-size: 20px; color: var(--blklux-ivory); }
.blklux-week__day { display: grid; grid-template-columns: 76px 1fr auto; column-gap: 16px; align-items: baseline; padding: 11px 0; border-top: 1px solid rgba(212, 165, 72, 0.14); font-size: 15px; line-height: 1.4; }
.blklux-week__day:last-child { border-bottom: 1px solid rgba(212, 165, 72, 0.14); }
.blklux-week__dow { display: grid; font-family: var(--blklux-font-display); font-size: 20px; font-weight: 600; line-height: 1; letter-spacing: 0.02em; color: var(--blklux-ivory); }
.blklux-week__dow small { margin-top: 3px; font-family: var(--blklux-font-body); font-size: 11px; font-weight: 500; letter-spacing: 0.04em; color: var(--blklux-ash); }
.blklux-week__where { color: var(--blklux-ivory); }
.blklux-week__hours { font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--blklux-ash); }
.blklux-week__day.is-today { position: relative; }
.blklux-week__day.is-today .blklux-week__dow, .blklux-week__day.is-today .blklux-week__hours { color: var(--blklux-gold-light); }
.blklux-week__day.is-today .blklux-week__dow::before { content: ""; position: absolute; left: -16px; top: 50%; width: 6px; height: 6px; border-radius: 50%; transform: translateY(-50%); background: var(--blklux-gold); box-shadow: 0 0 0 3px rgba(212, 165, 72, 0.22); }
.blklux-week__day.is-closed .blklux-week__where, .blklux-week__day.is-closed .blklux-week__dow { color: var(--blklux-ash); }
/* Link groups */
body.blklux-theme .blklux-site-footer__links ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
body.blklux-theme .blklux-site-footer__links ul a { display: inline-block; min-height: 32px; line-height: 32px; font-size: 15px; color: var(--blklux-ash); text-decoration: none; transition: color var(--blklux-dur-fast) var(--blklux-ease-out); }
body.blklux-theme .blklux-site-footer__links ul a:hover, body.blklux-theme .blklux-site-footer__links ul a:focus-visible { color: var(--blklux-gold-light); }
/* Wordmark: outlined in gold, deliberately quiet */
.blklux-site-footer__wordmark { overflow: hidden; }
body.blklux-theme .blklux-site-footer .blklux-site-footer__wordmark .elementor-heading-title { margin: 0; font-size: clamp(40px, 6.1vw, 90px); white-space: nowrap; color: transparent; -webkit-text-stroke: 1px rgba(212, 165, 72, 0.6); }
@supports not (-webkit-text-stroke: 1px #000) { body.blklux-theme .blklux-site-footer .blklux-site-footer__wordmark .elementor-heading-title { color: rgba(212, 165, 72, 0.22); } }
/* Legal bar */
body.blklux-theme .blklux-site-footer__bar p { margin: 0; font-size: 12.5px; letter-spacing: 0.02em; color: var(--blklux-ash); }
body.blklux-theme .blklux-site-footer__bar a { display: inline-block; padding: 6px 0; color: var(--blklux-ash); margin-right: 18px; text-decoration: none; }
body.blklux-theme .blklux-site-footer__bar a:last-child { margin-right: 0; }
body.blklux-theme .blklux-site-footer__bar a:hover { color: var(--blklux-gold-light); text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1024px) {
  body.blklux-theme .blklux-site-footer .blklux-site-footer__wordmark .elementor-heading-title { font-size: clamp(40px, 11vw, 96px); white-space: normal; text-wrap: balance; }
}
@media (max-width: 767px) {
  .blklux-site-footer .elementor-widget-image.blklux-logo img { width: 180px; }
  .blklux-week__day { grid-template-columns: 56px minmax(0, 1fr) auto; column-gap: 12px; padding: 9px 0; font-size: 14px; }
  .blklux-week__dow { font-size: 18px; }
  .blklux-week__where { overflow-wrap: anywhere; }
  .blklux-week__hours { font-size: 13px; }
  .blklux-week__day.is-today .blklux-week__dow::before { left: -12px; }
  .blklux-site-footer__bar { flex-direction: column; align-items: flex-start; }
}

/* Event mode banner (session scanned an event QR): explains the limited menu and offers the regular one */
.blklux-eventbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 var(--blklux-s-4); padding: 10px 12px 10px 16px; border-radius: var(--blklux-r-md); border: 1px solid rgba(212, 165, 72, 0.35); background: linear-gradient(90deg, rgba(212, 165, 72, 0.12), rgba(212, 165, 72, 0.04)); color: var(--blklux-ivory); font-size: 14px; }
.blklux-eventbar__text { display: flex; align-items: center; gap: 10px; min-width: 0; }
.blklux-eventbar__text strong { color: var(--blklux-gold-light); font-weight: 700; }
.blklux-eventbar .blklux-btn { flex: none; }
@media (max-width: 480px) { .blklux-eventbar { flex-wrap: wrap; } }

/* Page hero with a photo (Menu page): copy sits on the darkened lower third */
.blklux-page-hero { position: relative; isolation: isolate; }
.blklux-page-hero > .e-con-inner { position: relative; z-index: 1; }
.blklux-page-hero__title .elementor-heading-title { text-shadow: 0 2px 24px rgba(0, 0, 0, 0.6); }
body.blklux-theme .blklux-page-hero__lede p { color: rgba(243, 238, 228, 0.85); font-size: 17px; max-width: 58ch; margin: 0 auto; }

/* Catering page: facts strip, checklist, occasions */
.blklux-fact__num .elementor-heading-title { letter-spacing: 0.02em; }
body.blklux-theme .blklux-fact__label p { margin: 4px 0 0; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--blklux-ash); }
body.blklux-theme .elementor-widget-text-editor ul.blklux-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
body.blklux-theme .elementor-widget-text-editor ul.blklux-checklist li { position: relative; padding-left: 30px; font-size: 16px; line-height: 1.5; color: var(--blklux-ivory); }
body.blklux-theme .elementor-widget-text-editor ul.blklux-checklist li::before { content: ""; position: absolute; left: 0; top: 4px; width: 18px; height: 18px; border-radius: 50%; border: 1px solid rgba(212, 165, 72, 0.6); background: radial-gradient(circle at 30% 25%, rgba(212, 165, 72, 0.35), transparent 65%); }
body.blklux-theme .elementor-widget-text-editor ul.blklux-checklist li::after { content: ""; position: absolute; left: 6px; top: 8px; width: 5px; height: 9px; border: solid var(--blklux-gold-light); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }
.blklux-steps .blklux-step__num .elementor-heading-title { line-height: 1; }

/* Catering form */
.blklux-catering__form { padding: 28px 28px 24px; }
.blklux-catering__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 0 16px; align-items: start; }
.blklux-catering__form .blklux-field { margin-bottom: 18px; }
.blklux-catering__form .blklux-help { margin-top: -2px; }
.blklux-catering__form .blklux-btn--block { margin-top: 6px; }
@media (max-width: 480px) { .blklux-catering__form { padding: 20px 16px; } }

/* Occasion photo cards + included strip (Catering) */
.blklux-occasion { overflow: hidden; transition: transform var(--blklux-dur) var(--blklux-ease-out), box-shadow var(--blklux-dur) var(--blklux-ease-out); }
.blklux-occasion:hover { transform: translateY(-3px); box-shadow: 0 24px 48px -24px rgba(212, 165, 72, 0.45), 0 0 0 1px rgba(212, 165, 72, 0.5); }
.blklux-occasion__title .elementor-heading-title { text-shadow: 0 2px 16px rgba(0, 0, 0, 0.7); }
body.blklux-theme .blklux-occasion__sub p { margin: 0; font-size: 14px; line-height: 1.45; color: rgba(243, 238, 228, 0.8); max-width: 32ch; }
.blklux-occasions + .blklux-occasions { margin-top: 0; }
.elementor-widget.blklux-included { height: 100%; padding: 20px 20px 18px; border-radius: var(--blklux-r-md); background: var(--blklux-charcoal); box-shadow: var(--blklux-rim); position: relative; }
.elementor-widget.blklux-included > .elementor-widget-container { padding: 0; }
.elementor-widget.blklux-included::before { content: ""; display: block; width: 28px; height: 28px; margin-bottom: 14px; border-radius: 50%; border: 1px solid rgba(212, 165, 72, 0.6); background: radial-gradient(circle at 30% 25%, rgba(212, 165, 72, 0.35), transparent 65%); }
.elementor-widget.blklux-included::after { content: ""; position: absolute; left: 30px; top: 27px; width: 6px; height: 11px; border: solid var(--blklux-gold-light); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }
body.blklux-theme .blklux-included__title { margin: 0 0 6px; font-family: var(--blklux-font-display); font-size: 21px; font-weight: 600; line-height: 1.15; color: var(--blklux-ivory); }
body.blklux-theme .blklux-included__desc { margin: 0; font-size: 14px; line-height: 1.5; color: var(--blklux-ash); }

/* Location step: photo poster beside the address panel */
.blklux-oa__loc2 { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
.blklux-oa__poster { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; min-height: 380px; padding: 28px; border-radius: var(--blklux-r-lg); overflow: hidden; background: var(--blklux-charcoal) center / cover no-repeat; box-shadow: var(--blklux-rim); }
.blklux-oa__poster::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8, 8, 8, 0.15) 0%, rgba(8, 8, 8, 0.55) 45%, rgba(8, 8, 8, 0.94) 100%); }
.blklux-oa__poster-eyebrow { font-family: var(--blklux-font-display); font-style: italic; font-size: 20px; color: var(--blklux-gold); }
.blklux-oa__poster-title { font-size: clamp(26px, 2.6vw, 34px); line-height: 1.08; margin: 0; text-wrap: balance; text-shadow: 0 2px 20px rgba(0, 0, 0, 0.6); }
.blklux-oa__poster-copy { margin: 0; max-width: 44ch; font-size: 15px; line-height: 1.55; color: rgba(243, 238, 228, 0.82); }
.blklux-oa__poster-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 10px; padding-top: 14px; border-top: 1px solid rgba(212, 165, 72, 0.3); font-size: 14px; color: var(--blklux-ivory); }
.blklux-oa__poster-meta strong { font-weight: 700; }
.blklux-oa__locpanel { display: grid; gap: 16px; align-content: center; padding: 28px; }
.blklux-oa__locpanel .blklux-label { display: block; margin-bottom: 8px; }
.blklux-oa__locrow { gap: 10px; }
.blklux-oa__locrow .blklux-btn { min-height: 48px; padding: 0 22px; }
.blklux-oa__saved { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.blklux-oa__saved .blklux-label { width: 100%; margin: 0; }
body.blklux-theme .blklux-oa__locnote { margin: 0; line-height: 1.5; }
@media (max-width: 900px) {
  .blklux-oa__loc2 { grid-template-columns: minmax(0, 1fr); }
  .blklux-oa__poster { min-height: 240px; padding: 22px; }
  .blklux-oa__locpanel { padding: 20px; }
}

/* Location step, single focus: one address panel */
.blklux-oa__locpanel--solo { max-width: 680px; padding: 36px 32px; gap: 16px; }
/* Step hero: photo band with the title centred; the address card floats up over its bottom edge */
/* Full-bleed like the Menu page hero: spans the viewport (minus the scrollbar), flush under the site header */
.blklux-oa__stephero { position: relative; isolation: isolate; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 6px; width: calc(100vw - var(--blklux-scrollbar, 0px)); margin-left: calc(50% - (100vw - var(--blklux-scrollbar, 0px)) / 2); min-height: 440px; padding: 120px 24px 120px; text-align: center; border-radius: 0; overflow: hidden; background: var(--blklux-charcoal) center / cover no-repeat; }
.blklux-oa__stephero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8, 8, 8, 0.55) 0%, rgba(8, 8, 8, 0.35) 45%, var(--blklux-onyx) 100%); }
.blklux-oa__stephero-back { position: absolute; left: max(16px, calc(50% - 550px)); top: 20px; }
.blklux-oa__stephero-eyebrow { font-family: var(--blklux-font-display); font-style: italic; font-size: 20px; color: var(--blklux-gold); }
.blklux-oa__stephero-title { text-shadow: 0 2px 24px rgba(0, 0, 0, 0.6); }
.blklux-oa__locpanel--float { position: relative; z-index: 2; margin: -76px auto 0; box-shadow: var(--blklux-rim), 0 30px 60px -30px rgba(0, 0, 0, 0.9); }
@media (max-width: 700px) { .blklux-oa__stephero { min-height: 300px; padding: 80px 20px 84px; } .blklux-oa__locpanel--float { margin: -56px 12px 0; } }
body.blklux-theme .blklux-oa__lochelp { margin: 10px 0 0; font-size: 13px; color: var(--blklux-ash); line-height: 1.5; }
body.blklux-theme button.blklux-oa__gps, .blklux-ui button.blklux-oa__gps, .blklux-oa__gps { appearance: none; display: inline-flex; width: auto; min-height: 0; align-items: center; gap: 8px; margin: 0; padding: 6px 0; border: 0; border-radius: 0; box-shadow: none; background: none; color: var(--blklux-gold); font: 600 14px / 1 var(--blklux-font-body); letter-spacing: 0; text-transform: none; cursor: pointer; justify-self: start; }
.blklux-oa__gps svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.blklux-theme button.blklux-oa__gps:hover, body.blklux-theme button.blklux-oa__gps:focus, .blklux-oa__gps:hover, .blklux-oa__gps:focus-visible { background: none; color: var(--blklux-gold-light); text-decoration: underline; text-underline-offset: 4px; outline: none; }
@media (max-width: 480px) { .blklux-oa__locpanel--solo { padding: 20px 16px; } .blklux-oa__locrow { flex-direction: column; } .blklux-oa__locrow .blklux-btn { width: 100%; } }
.blklux-oa__gps.blklux-btn--loading { opacity: 0.6; cursor: progress; }
.blklux-oa__gps.blklux-btn--loading span::after { content: "…"; }

/* Locations page */
.blklux-locations__tonight .blklux-ticket { height: 100%; }
.blklux-locations__finder .blklux-finder { max-width: 680px; margin: 0 auto; }
.blklux-finder .blklux-list-rows:empty { display: none; }
.blklux-finder .blklux-list-rows { margin-top: 4px; }
@media (max-width: 700px) { .blklux-locations__tonight .blklux-map { height: 320px !important; } }

/* Schedule, week-grid variant: a card per day; today is double width with the live status pill */
.blklux-wk { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.blklux-wk__day { position: relative; display: flex; flex-direction: column; gap: 18px; min-height: 236px; padding: 22px 22px 24px; border-radius: var(--blklux-r-lg); background: var(--blklux-charcoal); box-shadow: 0 0 0 1px var(--blklux-line-soft); transition: box-shadow var(--blklux-dur) var(--blklux-ease-out), transform var(--blklux-dur-fast) var(--blklux-ease-out); }
.blklux-wk__day:hover { box-shadow: 0 0 0 1px rgba(212, 165, 72, 0.45), 0 20px 40px -26px rgba(0, 0, 0, 0.9); transform: translateY(-2px); }
.blklux-wk__day.is-today { grid-column: span 2; background: radial-gradient(110% 90% at 0% 0%, rgba(212, 165, 72, 0.18), transparent 58%), var(--blklux-charcoal); box-shadow: 0 0 0 1px rgba(212, 165, 72, 0.6), 0 26px 56px -34px rgba(212, 165, 72, 0.45); }
.blklux-wk__day.is-closed { background: transparent; box-shadow: inset 0 0 0 1px var(--blklux-line-soft); }
.blklux-wk__head { display: flex; align-items: flex-start; gap: 14px; }
.blklux-wk__date { display: grid; justify-items: center; flex: none; min-width: 54px; padding: 7px 6px 8px; border-radius: 12px; background: rgba(212, 165, 72, 0.08); box-shadow: inset 0 0 0 1px var(--blklux-line-soft); }
.blklux-wk__day.is-today .blklux-wk__date { background: var(--blklux-gold-gradient); box-shadow: none; }
.blklux-wk__num { font-family: var(--blklux-font-display); font-size: 28px; font-weight: 600; line-height: 1; color: var(--blklux-ivory); font-variant-numeric: tabular-nums; }
.blklux-wk__mon { margin-top: 3px; font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--blklux-gold); }
.blklux-wk__day.is-today .blklux-wk__num, .blklux-wk__day.is-today .blklux-wk__mon { color: var(--blklux-gold-ink); }
.blklux-wk__dow { display: grid; gap: 3px; padding-top: 3px; font-family: var(--blklux-font-display); font-size: 25px; font-weight: 600; line-height: 1.05; color: var(--blklux-ivory); }
.blklux-wk__dow small { font-family: var(--blklux-font-body); font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--blklux-ash); }
.blklux-wk__day.is-today .blklux-wk__dow small { color: var(--blklux-gold); }
.blklux-wk__day.is-closed .blklux-wk__dow { color: var(--blklux-ash); }
.blklux-wk__status { margin-left: auto; padding-top: 2px; }
.blklux-wk__slots { display: grid; gap: 14px; }
.blklux-wk__slot { display: grid; gap: 5px; justify-items: start; padding-top: 14px; border-top: 1px solid var(--blklux-line-soft); }
.blklux-wk__time { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; letter-spacing: 0.04em; color: var(--blklux-gold-light); font-variant-numeric: tabular-nums; }
.blklux-wk__time .blklux-icon { width: 14px; height: 14px; color: var(--blklux-gold); }
.blklux-wk__place { font-size: 17px; font-weight: 600; line-height: 1.3; color: var(--blklux-ivory); }
.blklux-wk__day.is-today .blklux-wk__place { font-size: 19px; }
.blklux-wk__addr { display: inline-flex; align-items: flex-start; gap: 6px; margin: -3px 0; padding: 3px 0; font-size: 14px; line-height: 1.45; color: var(--blklux-ash); text-decoration: none; transition: color var(--blklux-dur-fast); }
.blklux-wk__addr .blklux-icon { width: 14px; height: 14px; flex: none; margin-top: 3px; color: var(--blklux-gold); }
.blklux-wk__addr:hover, .blklux-wk__addr:focus-visible { color: var(--blklux-gold-light); text-decoration: underline; text-underline-offset: 3px; outline: none; }
.blklux-wk__slot .blklux-badge { margin-top: 4px; }
.blklux-wk__closed { margin: auto 0 0; font-family: var(--blklux-font-display); font-style: italic; font-size: 22px; line-height: 1.1; color: var(--blklux-ash); }
.blklux-wk__closed small { display: block; margin-top: 6px; font-family: var(--blklux-font-body); font-style: normal; font-size: 13px; letter-spacing: 0.02em; color: var(--blklux-ash); }
.blklux-wk__day.is-today .blklux-wk__slots { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px 24px; }
@media (max-width: 1100px) { .blklux-wk { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .blklux-wk { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .blklux-wk__day, .blklux-wk__day.is-today { grid-column: auto; min-height: 0; padding: 18px 18px 20px; gap: 14px; }
  .blklux-wk__day:hover { transform: none; }
  .blklux-wk__dow { font-size: 22px; }
  .blklux-wk__closed { margin-top: 0; font-size: 20px; }
}

/* Home: three steps as cards */
.blklux-steps .blklux-step { height: 100%; transition: box-shadow var(--blklux-dur) var(--blklux-ease-out), transform var(--blklux-dur-fast) var(--blklux-ease-out); }
.blklux-steps .blklux-step:hover { box-shadow: 0 0 0 1px rgba(212, 165, 72, 0.5), 0 22px 44px -28px rgba(0, 0, 0, 0.9); transform: translateY(-2px); }
.blklux-step__icon { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; color: var(--blklux-gold); background: rgba(212, 165, 72, 0.1); box-shadow: inset 0 0 0 1px rgba(212, 165, 72, 0.4); }
.blklux-step__icon .blklux-icon { width: 22px; height: 22px; }
.blklux-theme .elementor-widget-heading.blklux-step__n .elementor-heading-title { margin: 0; font-variant-numeric: var(--blklux-nums); letter-spacing: 0.04em; opacity: 0.9; }
.blklux-steps .blklux-step .elementor-widget-heading h3.elementor-heading-title { margin: 0; font-size: 26px; }
.blklux-steps .blklux-step .elementor-widget-text-editor p { margin: 0; color: var(--blklux-ash); font-size: 15px; line-height: 1.6; }
.blklux-steps-section .blklux-widget--order-type { margin-top: 12px; }
.blklux-steps-section .blklux-widget--order-type .blklux-row { justify-content: center; gap: 14px; }
.blklux-steps-section .blklux-widget--order-type .blklux-btn { min-height: 52px; padding: 0 32px; font-size: 13px; }
/* Home: where-we-are facts */
body.blklux-theme .elementor-widget-text-editor.blklux-where__facts ul.blklux-checklist { gap: 10px; }
body.blklux-theme .elementor-widget-text-editor.blklux-where__facts ul.blklux-checklist li { font-size: 15px; color: var(--blklux-ivory); }

/* Events: ticket cards with a date tile */
.blklux-event__body { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 8px 16px; align-items: start; }
.blklux-event__date { grid-row: 1 / span 2; display: grid; justify-items: center; align-content: start; min-width: 56px; padding: 8px 6px 9px; border-radius: 12px; background: rgba(212, 165, 72, 0.08); box-shadow: inset 0 0 0 1px var(--blklux-line-soft); }
.blklux-event__num { font-family: var(--blklux-font-display); font-size: 26px; font-weight: 600; line-height: 1; color: var(--blklux-ivory); font-variant-numeric: tabular-nums; }
.blklux-event__mon { margin-top: 3px; font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--blklux-gold); }
.blklux-event__main { display: grid; gap: 6px; justify-items: start; min-width: 0; }
.blklux-event__title { margin: 4px 0 0; font-size: var(--blklux-fs-xl); line-height: 1.15; }
.blklux-event__meta { display: flex; align-items: flex-start; gap: 8px; margin: 0; }
.blklux-event__meta .blklux-icon { width: 15px; height: 15px; flex: none; margin-top: 2px; color: var(--blklux-gold); }
.blklux-event__desc { margin: 4px 0 0; color: var(--blklux-ivory); }
.blklux-event__actions { grid-column: 2; margin-top: 10px; flex-wrap: wrap; }
.blklux-events--solo { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) {
  .blklux-events--solo .blklux-event { display: grid; grid-template-columns: minmax(0, 1fr); }
  .blklux-events--solo .blklux-event:has(.blklux-card__media) { grid-template-columns: 360px minmax(0, 1fr); }
  .blklux-events--solo .blklux-event .blklux-card__media { aspect-ratio: auto; height: 100%; min-height: 240px; }
  .blklux-events--solo .blklux-event__body { grid-template-columns: 92px minmax(0, 1fr) auto; align-items: center; gap: 28px; padding: 30px 34px; }
  .blklux-events--solo .blklux-event__body::before { display: none; }
  .blklux-events--solo .blklux-event__date { grid-row: auto; min-width: 92px; padding: 14px 10px 15px; }
  .blklux-events--solo .blklux-event__num { font-size: 42px; }
  .blklux-events--solo .blklux-event__mon { font-size: 12px; margin-top: 5px; }
  .blklux-events--solo .blklux-event__title { font-size: 30px; }
  .blklux-events--solo .blklux-event__actions { grid-column: auto; flex-direction: column; align-items: stretch; margin: 0; min-width: 200px; }
  .blklux-events--solo .blklux-event__actions .blklux-btn { justify-content: center; }
}

/* How it works: centred intro, scroll-driven timeline (rail on the left on phones, centred with alternating cards from 1024px) */
.blklux-tl { display: grid; gap: 48px; }
.blklux-tl__head { display: grid; gap: 14px; justify-items: center; max-width: 720px; margin: 0 auto; text-align: center; }
.blklux-tl__eyebrow { margin: 0; font-family: var(--blklux-font-display); font-style: italic; font-size: 22px; line-height: 1.2; color: var(--blklux-gold); }
.blklux-tl__title { margin: 0; font-size: clamp(36px, 4.6vw, 60px); line-height: 1.02; }
.blklux-tl__title::after { content: ""; display: block; width: 56px; height: 2px; margin: 18px auto 0; background: var(--blklux-gold-gradient); }
.blklux-tl__intro { margin: 0; max-width: 54ch; font-size: 16px; line-height: 1.6; color: var(--blklux-ash); }
.blklux-tl__cta { display: flex; justify-content: center; }
.blklux-tl__cta .blklux-row { justify-content: center; gap: 12px; }
.blklux-tl__cta .blklux-btn { min-height: 52px; padding: 0 30px; }
.blklux-tl__track { position: relative; }
.blklux-tl__rail { position: absolute; left: 31px; top: 32px; bottom: 32px; width: 2px; margin-left: -1px; border-radius: 2px; background: var(--blklux-line-soft); }
.blklux-tl__fill { position: absolute; left: 0; top: 0; width: 100%; height: 0; border-radius: 2px; background: linear-gradient(180deg, var(--blklux-gold-light), var(--blklux-gold)); box-shadow: 0 0 14px rgba(212, 165, 72, 0.55); }
.blklux-tl__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 36px; }
.blklux-tl__item { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 26px; align-items: start; }
.blklux-tl__node { position: relative; z-index: 1; grid-column: 1; grid-row: 1; display: grid; place-items: center; width: 64px; height: 64px; margin-top: 12px; border-radius: 50%; color: var(--blklux-gold); background: var(--blklux-onyx); box-shadow: inset 0 0 0 1px rgba(212, 165, 72, 0.35), 0 0 0 6px var(--blklux-onyx); transition: background var(--blklux-dur), box-shadow var(--blklux-dur), color var(--blklux-dur), transform var(--blklux-dur) var(--blklux-ease-out); }
.blklux-tl__node .blklux-icon { width: 26px; height: 26px; }
.blklux-tl__card { position: relative; grid-column: 2; grid-row: 1; padding: 28px 30px 30px; border-radius: var(--blklux-r-lg); background: var(--blklux-charcoal); box-shadow: 0 0 0 1px var(--blklux-line-soft); opacity: 0.5; transform: translateY(10px); transition: opacity var(--blklux-dur-slow) var(--blklux-ease-out), transform var(--blklux-dur-slow) var(--blklux-ease-out), box-shadow var(--blklux-dur), background var(--blklux-dur); }
.blklux-tl__num { display: block; margin-bottom: 10px; font-family: var(--blklux-font-display); font-size: 40px; font-weight: 500; line-height: 1; letter-spacing: 0.04em; color: var(--blklux-gold); font-variant-numeric: var(--blklux-nums); opacity: 0.85; }
.blklux-tl__heading { margin: 0 0 8px; font-family: var(--blklux-font-display); font-size: 28px; font-weight: 600; line-height: 1.1; letter-spacing: 0.02em; color: var(--blklux-ivory); }
.blklux-tl__text { margin: 0; font-size: 16px; line-height: 1.6; color: var(--blklux-ash); }
.blklux-tl__card--media { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; padding: 0; }
.blklux-tl__card--media .blklux-tl__body { padding: 18px 26px 24px; }
.blklux-tl__card--media .blklux-tl__num { font-size: 30px; margin-bottom: 6px; }
.blklux-tl__card--media .blklux-tl__heading { font-size: 24px; margin-bottom: 6px; }
.blklux-tl__card--media .blklux-tl__text { font-size: 15px; }
.blklux-tl__media { position: relative; display: block; order: -1; overflow: hidden; border-radius: var(--blklux-r-lg) var(--blklux-r-lg) 0 0; border-bottom: 1px solid var(--blklux-line-soft); }
.blklux-tl__media::after { content: ""; position: absolute; inset: auto 0 0 0; height: 28%; background: linear-gradient(180deg, transparent, rgba(19, 19, 19, 0.85)); pointer-events: none; }
.blklux-tl__img { display: block; width: 100%; aspect-ratio: 2 / 1; object-fit: cover; object-position: center; filter: saturate(0.9) brightness(0.92); transition: transform var(--blklux-dur-slow) var(--blklux-ease-out), filter var(--blklux-dur-slow); }
.blklux-tl__item.is-active .blklux-tl__img { filter: saturate(1) brightness(1); transform: scale(1.03); }
.blklux-tl__item.is-done .blklux-tl__card { opacity: 0.82; transform: none; }
.blklux-tl__item.is-done .blklux-tl__node, .blklux-tl__item.is-active .blklux-tl__node { background: var(--blklux-gold-gradient); color: var(--blklux-gold-ink); box-shadow: 0 0 0 6px var(--blklux-onyx), 0 0 0 7px rgba(212, 165, 72, 0.35); }
.blklux-tl__item.is-active .blklux-tl__node { transform: scale(1.08); box-shadow: 0 0 0 6px var(--blklux-onyx), 0 0 0 7px rgba(212, 165, 72, 0.5), 0 0 34px rgba(212, 165, 72, 0.45); }
.blklux-tl__item.is-active .blklux-tl__card { opacity: 1; transform: none; background: radial-gradient(120% 100% at 0% 0%, rgba(212, 165, 72, 0.13), transparent 60%), var(--blklux-charcoal); box-shadow: 0 0 0 1px rgba(212, 165, 72, 0.7), 0 30px 60px -36px rgba(212, 165, 72, 0.5); }
.blklux-tl__item.is-active .blklux-tl__num { opacity: 1; }
@media (min-width: 1024px) {
  .blklux-tl__rail { left: 50%; }
  .blklux-tl__list { gap: 44px; }
  .blklux-tl__item { grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr); gap: 0 48px; }
  .blklux-tl__node { grid-column: 2; }
  .blklux-tl__item:nth-child(odd) .blklux-tl__card { grid-column: 1; }
  .blklux-tl__item:nth-child(even) .blklux-tl__card { grid-column: 3; }
  /* hairline connector from the card to its node */
  .blklux-tl__card::before { content: ""; position: absolute; top: 44px; width: 48px; height: 1px; background: linear-gradient(90deg, transparent, rgba(212, 165, 72, 0.55)); opacity: 0.6; transition: opacity var(--blklux-dur); }
  .blklux-tl__item:nth-child(odd) .blklux-tl__card::before { right: -48px; }
  .blklux-tl__item:nth-child(even) .blklux-tl__card::before { left: -48px; background: linear-gradient(270deg, transparent, rgba(212, 165, 72, 0.55)); }
  .blklux-tl__item.is-active .blklux-tl__card::before, .blklux-tl__item.is-done .blklux-tl__card::before { opacity: 1; }
  .blklux-tl__item.is-active .blklux-tl__card { transform: none; }
}
@media (max-width: 640px) {
  .blklux-tl { gap: 36px; }
  .blklux-tl__item { grid-template-columns: 48px minmax(0, 1fr); gap: 16px; }
  .blklux-tl__list { gap: 24px; }
  .blklux-tl__node { width: 48px; height: 48px; margin-top: 10px; }
  .blklux-tl__node .blklux-icon { width: 20px; height: 20px; }
  .blklux-tl__rail { left: 24px; }
  .blklux-tl__card { padding: 20px 20px 22px; }
  .blklux-tl__card--media { padding: 0; }
  .blklux-tl__card--media .blklux-tl__body { padding: 16px 18px 20px; }
  .blklux-tl__card--media .blklux-tl__img { aspect-ratio: 16 / 9; }
  .blklux-tl__num { font-size: 32px; margin-bottom: 6px; }
  .blklux-tl__heading { font-size: 24px; }
  .blklux-tl__text { font-size: 15px; }
  .blklux-tl__title { font-size: 36px; }
  .blklux-tl__cta .blklux-row { flex-direction: column; align-items: stretch; width: 100%; }
}
/* Photo cards are tall, so on desktop let alternating cards overlap the previous one: a tighter zig-zag along the rail */
@media (min-width: 1024px) {
  .blklux-tl__item:has(.blklux-tl__card--media) + .blklux-tl__item:has(.blklux-tl__card--media) { margin-top: -110px; }
}

/* Rewards & referrals hub */
.blklux-hub { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.blklux-hub--single { grid-template-columns: minmax(0, 720px); justify-content: center; }
.blklux-hub__panel { position: relative; display: flex; flex-direction: column; gap: 22px; padding: 28px; border-radius: var(--blklux-r-lg); background: var(--blklux-charcoal); box-shadow: 0 0 0 1px var(--blklux-line-soft); }
.blklux-hub__panel--referral { background: radial-gradient(120% 90% at 100% 0%, rgba(212, 165, 72, 0.14), transparent 55%), var(--blklux-charcoal); box-shadow: 0 0 0 1px rgba(212, 165, 72, 0.32); }
.blklux-hub__panel .blklux-membercard { max-width: 440px; }
.blklux-hub__facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.blklux-hub__facts li { display: grid; gap: 2px; padding: 12px 14px; border-radius: 12px; background: rgba(212, 165, 72, 0.06); box-shadow: inset 0 0 0 1px var(--blklux-line-soft); }
.blklux-hub__facts .blklux-icon { width: 16px; height: 16px; color: var(--blklux-gold); margin-bottom: 4px; }
.blklux-hub__facts strong { font-family: var(--blklux-font-display); font-size: 26px; font-weight: 600; line-height: 1; color: var(--blklux-ivory); font-variant-numeric: var(--blklux-nums); }
.blklux-hub__facts span { font-size: 12px; letter-spacing: 0.02em; color: var(--blklux-ash); }
.blklux-hub__note { margin: -6px 0 0; font-size: 14px; line-height: 1.55; color: var(--blklux-ash); }
.blklux-hub__block { display: grid; gap: 10px; }
.blklux-hub__h { margin: 0; font-family: var(--blklux-font-display); font-size: 22px; font-weight: 600; letter-spacing: 0.02em; color: var(--blklux-ivory); }
.blklux-hub__list { list-style: none; margin: 0; padding: 0; display: grid; }
.blklux-hub__reward { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid var(--blklux-line-soft); }
.blklux-hub__reward:last-child { border-bottom: 1px solid var(--blklux-line-soft); }
.blklux-hub__reward-img { width: 44px; height: 44px; border-radius: 10px; object-fit: cover; box-shadow: 0 0 0 1px var(--blklux-line-soft); }
.blklux-hub__reward-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 10px; color: var(--blklux-gold); background: rgba(212, 165, 72, 0.08); box-shadow: inset 0 0 0 1px var(--blklux-line-soft); }
.blklux-hub__reward-ic .blklux-icon { width: 20px; height: 20px; }
.blklux-hub__reward-main { display: grid; gap: 2px; min-width: 0; }
.blklux-hub__reward-main strong { font-weight: 600; color: var(--blklux-ivory); }
.blklux-hub__reward-main small { font-size: 13px; color: var(--blklux-ash); }
.blklux-hub__pts { padding: 6px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; color: var(--blklux-gold-ink); background: var(--blklux-gold-gradient); font-variant-numeric: var(--blklux-nums); }
.blklux-hub__pts::after { content: " PTS"; }
.blklux-hub__cta { margin-top: auto; gap: 8px 14px; align-items: center; }
.blklux-hub__eyebrow { font-family: var(--blklux-font-display); font-style: italic; font-size: 20px; line-height: 1.2; color: var(--blklux-gold); }
.blklux-hub__title { margin: -8px 0 0; font-size: clamp(34px, 3.4vw, 46px); line-height: 1.02; }
.blklux-hub__lede { margin: -6px 0 0; font-size: 16px; line-height: 1.6; color: var(--blklux-ash); }
.blklux-hub__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; counter-reset: hub; }
.blklux-hub__steps li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; align-items: start; }
.blklux-hub__steps li > .blklux-icon { width: 40px; height: 40px; padding: 10px; border-radius: 50%; color: var(--blklux-gold); background: var(--blklux-onyx); box-shadow: inset 0 0 0 1px rgba(212, 165, 72, 0.4); }
.blklux-hub__steps span { display: grid; gap: 2px; font-size: 14px; line-height: 1.5; color: var(--blklux-ash); }
.blklux-hub__steps strong { font-size: 16px; color: var(--blklux-ivory); }
.blklux-hub__code { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 14px 18px; border-radius: 12px; border: 1px dashed rgba(212, 165, 72, 0.55); background: rgba(8, 8, 8, 0.5); }
.blklux-hub__code-label { font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--blklux-ash); }
.blklux-hub__code-value { font-family: var(--blklux-font-display); font-size: 30px; font-weight: 600; letter-spacing: 0.14em; color: var(--blklux-gold-light); }
.blklux-hub__code--locked { opacity: 0.55; }
.blklux-hub__fine { margin: 0; font-size: 13px; line-height: 1.55; color: var(--blklux-ash); }
.blklux-hub__share { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; }
.blklux-ui input.blklux-input.blklux-hub__link { min-width: 0; font-size: 13px; color: var(--blklux-ash); }
.blklux-hub__stats { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 14px; color: var(--blklux-ash); }
.blklux-hub__stats .blklux-icon { width: 18px; height: 18px; color: var(--blklux-gold); flex: none; }
.blklux-hub__stats strong { color: var(--blklux-ivory); font-variant-numeric: var(--blklux-nums); }
body.blklux-theme .blklux-hub__reward .blklux-btn[disabled] { opacity: 0.45; cursor: not-allowed; }
.blklux-rewards-section .elementor-widget-text-editor.blklux-section-lede p { margin: 0 0 6px; font-size: 16px; line-height: 1.6; color: var(--blklux-ash); }
@media (max-width: 900px) {
  .blklux-hub { grid-template-columns: minmax(0, 1fr); }
  .blklux-hub__panel { padding: 22px 20px; gap: 18px; }
  .blklux-hub__share { grid-template-columns: minmax(0, 1fr) 1fr; }
  .blklux-hub__share .blklux-hub__link { grid-column: 1 / -1; }
  .blklux-hub__code-value { font-size: 26px; }
}

/* Account area: the prose link colour above must not reach into our own
   components — a card, an action or the account tabs carry their own text
   colour, and the current tab has to stay readable on gold. */
body.blklux-theme .entry-content a.blklux-action,
body.blklux-theme .entry-content a.blklux-action:hover,
body.blklux-theme .entry-content a.blklux-action:focus,
body.blklux-theme .entry-content a.blklux-card,
body.blklux-theme .entry-content a.blklux-card:hover,
body.blklux-theme .entry-content a.blklux-card:focus { color: var(--blklux-ivory); text-decoration: none; }
body.blklux-theme .entry-content a.blklux-action strong,
body.blklux-theme .entry-content a.blklux-action span,
body.blklux-theme .entry-content a.blklux-card span { text-decoration: none; }
body.blklux-theme .entry-content a.blklux-action:hover .blklux-icon { color: var(--blklux-gold-light); }
body.blklux-theme .entry-content .woocommerce-MyAccount-navigation li > a { color: var(--blklux-ivory); }
body.blklux-theme .entry-content .woocommerce-MyAccount-navigation li > a:hover,
body.blklux-theme .entry-content .woocommerce-MyAccount-navigation li > a:focus-visible { color: var(--blklux-gold-light); }
body.blklux-theme .entry-content .woocommerce-MyAccount-navigation li.is-active > a,
body.blklux-theme .entry-content .woocommerce-MyAccount-navigation li.is-active > a:hover { color: var(--blklux-ivory); }

/* ---------------------------------------------------------------- header account control
   A quiet round button beside Order now: the guest's initial when they are
   signed in, a user glyph when they are not. It never competes with the gold
   Order now button — hairline rim, ivory mark, gold only on hover and focus. */
.blklux-site-header .blklux-acct,
.blklux-acct {
  display: inline-grid;
  place-items: center;
  position: relative;
  width: 42px;
  height: 42px;
  flex: none;
  border-radius: 50%;
  border: 1px solid var(--blklux-line);
  background: rgba(255, 255, 255, 0.03);
  color: var(--blklux-ivory);
  text-decoration: none;
  transition: border-color var(--blklux-dur) var(--blklux-ease-out), color var(--blklux-dur) var(--blklux-ease-out), background-color var(--blklux-dur) var(--blklux-ease-out);
}
body.blklux-theme .blklux-acct:hover,
body.blklux-theme .blklux-acct:focus-visible { color: var(--blklux-gold-light); border-color: var(--blklux-line-strong); background: rgba(212, 165, 72, 0.1); text-decoration: none; }
.blklux-acct:focus-visible { outline: 2px solid var(--blklux-gold-light); outline-offset: 3px; }
.blklux-acct .blklux-icon { width: 21px; height: 21px; stroke-width: 1.5; }
.blklux-acct__points {
  position: absolute;
  top: -6px;
  right: -10px;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--blklux-gold-gradient);
  color: var(--blklux-gold-ink);
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: var(--blklux-nums);
}
.blklux-widget--account-link { display: inline-flex; margin-left: 6px; }
/* On a phone the bottom app bar already carries Account, and the header has
   the logo, the menu and Order now to fit. */
@media (max-width: 600px) { .blklux-site-header .blklux-widget--account-link { display: none; } }

/* ==========================================================================
   Site header, drawn by the plugin. Same design the Elementor/Xpro header
   carried, with no third-party plugin underneath it: logo, menu, live status,
   order button, account. The menu becomes a drawer under 1025px.
   ========================================================================== */

.blklux-sitebar {
  position: sticky;
  top: 0;
  /* Below the scrim (100) and the sheet (110): a dialog opened from the menu
     has to cover the header, not slide under it. Above the app nav (90). */
  z-index: 95;
  background: transparent;
  border-bottom: 1px solid rgba(212, 165, 72, 0.18);
}
/* The blur lives on a layer of its own: backdrop-filter on the header itself
   would make it the containing block for the fixed drawer, trapping the menu
   inside the bar. */
.blklux-sitebar::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(8, 8, 8, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
body.admin-bar .blklux-sitebar { top: 32px; }
@media (max-width: 782px) { body.admin-bar .blklux-sitebar { top: 46px; } }
.blklux-sitebar__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 10px var(--blklux-gutter, 20px);
  display: flex;
  align-items: center;
  gap: 16px;
}
.blklux-sitebar__logo { display: inline-flex; align-items: center; flex: none; text-decoration: none; }
.blklux-sitebar__logo img { height: 52px; width: auto; max-width: none; display: block; }
.blklux-sitebar__name { font-family: var(--blklux-font-display); font-size: 20px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--blklux-ivory); }

/* --- the menu ------------------------------------------------------------- */
.blklux-sitebar__nav { flex: 1 1 auto; display: flex; justify-content: center; min-width: 0; }
.blklux-sitebar__menu { display: flex; align-items: center; gap: 26px; margin: 0; padding: 0; list-style: none; }
.blklux-sitebar__menu li { margin: 0; position: relative; }
body.blklux-theme .blklux-sitebar__menu > li > a {
  font-family: var(--blklux-font-body);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blklux-ivory);
  text-decoration: none;
  padding: 10px 0;
  display: inline-block;
  transition: color var(--blklux-dur) var(--blklux-ease-out);
}
body.blklux-theme .blklux-sitebar__menu > li > a:hover,
body.blklux-theme .blklux-sitebar__menu > li.current-menu-item > a { color: var(--blklux-gold); }
body.blklux-theme .blklux-sitebar__menu > li.current-menu-item > a { text-decoration: underline; text-underline-offset: 8px; text-decoration-thickness: 1px; text-decoration-color: var(--blklux-gold); }
.blklux-sitebar__menu > li > a:focus-visible { outline: 2px solid var(--blklux-gold-light); outline-offset: 3px; border-radius: 4px; }
/* submenus stay simple: one level, opened on hover and on focus */
.blklux-sitebar__menu .sub-menu { position: absolute; left: 0; top: 100%; min-width: 200px; margin: 0; padding: 8px; list-style: none; background: var(--blklux-charcoal); border: 1px solid var(--blklux-line); border-radius: var(--blklux-r-md); box-shadow: var(--blklux-elev-2); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity 140ms, transform 140ms, visibility 140ms; }
.blklux-sitebar__menu li:hover > .sub-menu, .blklux-sitebar__menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
body.blklux-theme .blklux-sitebar__menu .sub-menu a { display: block; padding: 8px 10px; border-radius: 6px; font-size: 13px; letter-spacing: 0.02em; text-transform: none; color: var(--blklux-ivory); text-decoration: none; }
body.blklux-theme .blklux-sitebar__menu .sub-menu a:hover { background: rgba(212, 165, 72, 0.1); color: var(--blklux-gold-light); }

/* --- right-hand controls -------------------------------------------------- */
.blklux-sitebar__actions { display: flex; align-items: center; gap: 10px; margin-left: auto; flex: none; }
.blklux-sitebar .blklux-widget--status-badge { white-space: nowrap; }
.blklux-sitebar__order { white-space: nowrap; }
.blklux-sitebar__close, .blklux-sitebar__drawer-actions { display: none; }

/* hamburger */
.blklux-sitebar__toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 0 10px;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.blklux-sitebar__toggle span { display: block; height: 2px; border-radius: 2px; background: var(--blklux-gold); transition: transform 180ms var(--blklux-ease-out), opacity 140ms; }
.blklux-sitebar__toggle:focus-visible { outline: 2px solid var(--blklux-gold-light); outline-offset: 2px; border-radius: 8px; }
/* Astra paints every bare <button>, hover included, which floods the hamburger
   with its own button colour. Every state is stated here so it cannot. The
   feedback is in the bars, not in a block behind them. */
body.blklux-theme .blklux-sitebar__toggle,
body.blklux-theme .blklux-sitebar__toggle:hover,
body.blklux-theme .blklux-sitebar__toggle:focus,
body.blklux-theme .blklux-sitebar__toggle:active {
  background: transparent;
  border: 0;
  box-shadow: none;
  color: var(--blklux-gold);
}
body.blklux-theme .blklux-sitebar__toggle:hover span,
body.blklux-theme .blklux-sitebar__toggle:focus-visible span { background: var(--blklux-gold-light); }
body.blklux-theme .blklux-sitebar__toggle:active span { background: var(--blklux-gold-light); transform: scaleX(0.88); }

.blklux-sitebar__scrim { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.72); z-index: 118; }

/* --- drawer, on tablets and phones ---------------------------------------- */
@media (max-width: 1024px) {
  .blklux-sitebar__logo img { height: 40px; }
  .blklux-sitebar__toggle { display: flex; }
  .blklux-sitebar__nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(86vw, 340px);
    z-index: 125;
    display: block;
    padding: 72px 20px 28px;
    background: var(--blklux-onyx);
    border-left: 1px solid rgba(212, 165, 72, 0.25);
    box-shadow: -24px 0 60px rgba(0, 0, 0, 0.6);
    transform: translateX(102%);
    transition: transform 240ms var(--blklux-ease-out);
    overflow-y: auto;
  }
  body.blklux-sitenav-open .blklux-sitebar__nav { transform: none; }
  .blklux-sitebar__nav::before { content: attr(data-brand); display: block; font-family: var(--blklux-font-display); font-size: 13px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--blklux-gold); margin: 0 0 18px; padding-bottom: 14px; border-bottom: 1px solid var(--blklux-line); }
  .blklux-sitebar__menu { flex-direction: column; align-items: stretch; gap: 2px; }
  body.blklux-theme .blklux-sitebar__menu > li > a { font-family: var(--blklux-font-display); font-size: 20px; font-weight: 500; letter-spacing: 0.03em; line-height: 1.2; text-transform: none; padding: 12px 0; }
  body.blklux-theme .blklux-sitebar__menu > li.current-menu-item > a { text-decoration: none; }
  body.blklux-theme .blklux-sitebar__menu > li.current-menu-item > a::before { content: ""; display: inline-block; width: 14px; height: 1px; margin-right: 9px; vertical-align: middle; background: var(--blklux-gold); }
  .blklux-sitebar__menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; background: transparent; border: 0; box-shadow: none; padding: 0 0 6px 23px; }
  body.blklux-theme .blklux-sitebar__menu .sub-menu a { font-size: 15px; padding: 9px 0; }
  .blklux-sitebar__close { display: block; position: absolute; top: 16px; right: 16px; width: 44px; height: 44px; border: 1px solid var(--blklux-line); border-radius: 50%; background: var(--blklux-charcoal); color: var(--blklux-gold); font-size: 24px; line-height: 1; cursor: pointer; }
  body.blklux-theme .blklux-sitebar__close,
  body.blklux-theme .blklux-sitebar__close:focus,
  body.blklux-theme .blklux-sitebar__close:active { width: 44px; height: 44px; padding: 0; box-sizing: border-box; background: var(--blklux-charcoal); color: var(--blklux-gold); border: 1px solid var(--blklux-line); box-shadow: none; }
  body.blklux-theme .blklux-sitebar__close:hover { background: rgba(212, 165, 72, 0.1); color: var(--blklux-gold-light); border-color: rgba(212, 165, 72, 0.5); }
  .blklux-sitebar__close:focus-visible { outline: 2px solid var(--blklux-gold-light); outline-offset: 2px; }
  .blklux-sitebar__drawer-actions { display: block; margin-top: 22px; }
  .blklux-sitebar__drawer-actions .blklux-btn { width: 100%; }
  .blklux-sitebar__order { display: none; }
  body.blklux-sitenav-open { overflow: hidden; }
}
@media (max-width: 480px) {
  .blklux-sitebar__logo img { height: 34px; }
  .blklux-sitebar__inner { gap: 8px; padding-left: 12px; padding-right: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .blklux-sitebar__nav, .blklux-sitebar__toggle span, .blklux-sitebar__menu .sub-menu { transition: none; }
}
/* While the drawer is open the whole bar has to clear the page: the drawer is a
   child of the header, so it can never paint above a section that outranks it. */
body.blklux-sitenav-open .blklux-sitebar { z-index: 2000; }

/* --- transparent over a hero, solid once the page moves ------------------- */
.blklux-sitebar--overlay {
  position: fixed;
  left: 0;
  right: 0;
  border-bottom-color: transparent;
}
.blklux-sitebar--overlay::before { opacity: 0; transition: opacity 220ms var(--blklux-ease-out); }
.blklux-sitebar--overlay .blklux-sitebar__inner { padding-top: 16px; padding-bottom: 16px; transition: padding 220ms var(--blklux-ease-out); }
/* a hero sits under a floating header, so its own top padding carries the gap */
body.has-blklux-overlay .blklux-hero > .e-con-inner,
body.has-blklux-overlay .blklux-page-hero > .e-con-inner { padding-top: 92px; }
/* once the page has moved, the bar earns its surface back */
.blklux-sitebar--overlay.is-stuck { border-bottom-color: rgba(212, 165, 72, 0.18); }
.blklux-sitebar--overlay.is-stuck::before { opacity: 1; }
.blklux-sitebar--overlay.is-stuck .blklux-sitebar__inner { padding-top: 10px; padding-bottom: 10px; }
/* the drawer needs a solid bar behind it whatever the scroll position */
body.blklux-sitenav-open .blklux-sitebar--overlay::before { opacity: 1; }
@media (max-width: 1024px) {
  body.has-blklux-overlay .blklux-hero > .e-con-inner,
  body.has-blklux-overlay .blklux-page-hero > .e-con-inner { padding-top: 76px; }
}
@media (prefers-reduced-motion: reduce) {
  .blklux-sitebar--overlay::before, .blklux-sitebar--overlay .blklux-sitebar__inner { transition: none; }
}

/* ==========================================================================
   Site footer, drawn by the plugin. The same design the Xpro template carried
   — brand column, this week's schedule, link columns from the footer menu, the
   outlined wordmark and a quiet legal bar — with nothing third-party under it.
   The columns flex rather than sit in a fixed grid, because a client may add or
   remove whole columns in Appearance > Menus.
   ========================================================================== */

.blklux-sitefoot {
  margin-top: clamp(48px, 7vw, 96px);
  padding: clamp(40px, 5vw, 72px) 0 24px;
  background: var(--blklux-onyx);
  border-top: 1px solid rgba(212, 165, 72, 0.18);
  color: var(--blklux-ivory);
}
.blklux-sitefoot__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--blklux-gutter, 20px);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(32px, 4vw, 52px) clamp(28px, 3vw, 48px);
}
/* Who we are on the left, where to go on the right, and the week's stops
   across the full width underneath — the two top blocks are about the same
   height, so the footer reads as one band rather than a tall left column
   beside a short right one. The four link columns share one grid, so they wrap
   as a block and a fourth column can never strand itself across the width. */
@media (min-width: 1024px) {
  .blklux-sitefoot__inner { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
  .blklux-sitefoot__week { grid-column: 1 / -1; }
}
.blklux-sitefoot__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 3vw, 36px) clamp(18px, 1.8vw, 28px);
  align-content: start;
}
@media (min-width: 1100px) {
  /* min-content keeps a column at least as wide as its heading, which never
     wraps, so the four lists always start on the same line. */
  .blklux-sitefoot__cols { grid-template-columns: repeat(4, minmax(min-content, 1fr)); }
}
.blklux-sitefoot__col .blklux-sitefoot__heading { white-space: nowrap; }

/* --- brand column --------------------------------------------------------- */
.blklux-sitefoot__brand { max-width: 42ch; }
.blklux-sitefoot__logo { display: inline-flex; text-decoration: none; }
.blklux-sitefoot__logo img { width: 200px; height: auto; max-width: 100%; display: block; }
.blklux-sitefoot__name { font-family: var(--blklux-font-display); font-size: 28px; font-weight: 600; letter-spacing: var(--blklux-track-display, 0.06em); text-transform: uppercase; color: var(--blklux-ivory); }
body.blklux-theme .blklux-sitefoot__tagline { margin: 16px 0 0; max-width: 34ch; font-size: 16px; line-height: 1.6; color: var(--blklux-ivory); }
.blklux-sitefoot__contact { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 2px; }
body.blklux-theme .blklux-sitefoot__contact a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 32px;
  font-size: 15px;
  color: var(--blklux-ash);
  text-decoration: none;
  text-underline-offset: 4px;
  transition: color var(--blklux-dur-fast) var(--blklux-ease-out);
}
.blklux-sitefoot__contact svg { width: 16px; height: 16px; flex: none; color: var(--blklux-gold); opacity: 0.8; }
body.blklux-theme .blklux-sitefoot__contact a:hover { color: var(--blklux-gold-light); text-decoration: underline; text-decoration-color: rgba(212, 165, 72, 0.6); }

/* --- social row ----------------------------------------------------------- */
.blklux-sitefoot__social { list-style: none; margin: 24px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
body.blklux-theme .blklux-sitefoot__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--blklux-line);
  border-radius: 50%;
  color: var(--blklux-ash);
  text-decoration: none;
  transition: color var(--blklux-dur-fast) var(--blklux-ease-out), border-color var(--blklux-dur-fast) var(--blklux-ease-out), background-color var(--blklux-dur-fast) var(--blklux-ease-out);
}
.blklux-sitefoot__social svg { width: 18px; height: 18px; }
body.blklux-theme .blklux-sitefoot__social a:hover { color: var(--blklux-gold-light); border-color: rgba(212, 165, 72, 0.55); background: rgba(212, 165, 72, 0.08); }
.blklux-sitefoot__social a:focus-visible { outline: 2px solid var(--blklux-gold-light); outline-offset: 2px; }

/* --- this week + link columns -------------------------------------------- */
.blklux-sitefoot__week { min-width: 0; }
.blklux-sitefoot__col { min-width: 0; }

/* The week runs across the footer, a cell per day, so the stops read at a
   glance instead of as a tall list down one side. Below 1024px the widget's
   own row layout is the right one and this does not apply. */
@media (min-width: 1024px) {
  .blklux-sitefoot__week .blklux-week { grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .blklux-sitefoot__week .blklux-week__day {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 5px;
    align-items: start;
    padding: 14px 18px 16px;
    border-left: 1px solid rgba(212, 165, 72, 0.12);
  }
  .blklux-sitefoot__week .blklux-week__day:first-child { border-left: 0; }
  .blklux-sitefoot__week .blklux-week__day:last-child { border-bottom: 0; }
  .blklux-sitefoot__week .blklux-week__where { font-size: 14px; }
  .blklux-sitefoot__week .blklux-week__hours { font-size: 13px; white-space: normal; }
  .blklux-sitefoot__week .blklux-week__day.is-today { background: rgba(212, 165, 72, 0.05); }
  .blklux-sitefoot__week .blklux-week__day.is-today .blklux-week__dow::before { left: 7px; top: 22px; }
}
body.blklux-theme .blklux-sitefoot__heading {
  margin: 0 0 16px;
  font-family: var(--blklux-font-display);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--blklux-gold);
}
body.blklux-theme .blklux-sitefoot__heading a { color: inherit; text-decoration: none; }
body.blklux-theme .blklux-sitefoot__heading a:hover { color: var(--blklux-gold-light); text-decoration: underline; text-underline-offset: 5px; }
.blklux-sitefoot__heading::after { content: ""; display: block; width: 28px; height: 1px; margin-top: 10px; background: var(--blklux-gold); opacity: 0.55; }
body.blklux-theme .blklux-sitefoot__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
body.blklux-theme .blklux-sitefoot__col a {
  display: inline-block;
  min-height: 32px;
  line-height: 32px;
  font-size: 15px;
  color: var(--blklux-ash);
  text-decoration: none;
  transition: color var(--blklux-dur-fast) var(--blklux-ease-out);
}
body.blklux-theme .blklux-sitefoot__col a:hover { color: var(--blklux-gold-light); }
body.blklux-theme .blklux-sitefoot__col a[aria-current="page"] { color: var(--blklux-ivory); }
.blklux-sitefoot__col a:focus-visible, .blklux-sitefoot__contact a:focus-visible { outline: 2px solid var(--blklux-gold-light); outline-offset: 3px; border-radius: 4px; }

/* --- the wordmark: the one loud thing down here --------------------------- */
.blklux-sitefoot__wordmark {
  max-width: 1280px;
  margin: clamp(40px, 5vw, 72px) auto 0;
  padding: 0 var(--blklux-gutter, 20px);
  overflow: hidden;
  font-family: var(--blklux-font-display);
  font-size: clamp(40px, 6.1vw, 90px);
  font-weight: 600;
  line-height: 0.9;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  color: transparent;
  -webkit-text-stroke: 1px rgba(212, 165, 72, 0.6);
}
@supports not (-webkit-text-stroke: 1px #000) {
  .blklux-sitefoot__wordmark { color: rgba(212, 165, 72, 0.22); }
}

/* --- legal bar ------------------------------------------------------------ */
.blklux-sitefoot__base {
  max-width: 1280px;
  margin: 28px auto 0;
  padding: 20px var(--blklux-gutter, 20px) 0;
  border-top: 1px solid var(--blklux-line);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px 24px;
}
body.blklux-theme .blklux-sitefoot__base p { margin: 0; font-size: 12.5px; letter-spacing: 0.02em; color: var(--blklux-ash); }
body.blklux-theme .blklux-sitefoot__legal a { display: inline-block; padding: 6px 0; margin-right: 18px; color: var(--blklux-ash); text-decoration: none; }
body.blklux-theme .blklux-sitefoot__legal a:last-child { margin-right: 0; }
body.blklux-theme .blklux-sitefoot__legal a:hover { color: var(--blklux-gold-light); text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 767px) {
  .blklux-sitefoot__wordmark { white-space: normal; text-wrap: balance; }
  .blklux-sitefoot__logo img { width: 170px; }
  .blklux-sitefoot__base { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .blklux-sitefoot__social a, .blklux-sitefoot__contact a, .blklux-sitefoot__col a { transition: none; }
}

/* ==========================================================================
   Customer reviews — three columns drifting upward behind a soft mask, so the
   section reads as a wall of them rather than a list with an end. The motion
   is pure CSS: each track holds its cards twice and travels exactly half its
   own height, which puts the copy where the original started and makes the
   loop invisible.

   Hovering or tabbing into the wall stops it, because nobody can read a moving
   paragraph, and reduced motion gets a plain grid with no mask at all.
   ========================================================================== */

.blklux-reviews {
  display: flex;
  justify-content: center;
  gap: clamp(16px, 2vw, 24px);
  max-height: 740px;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 14%, #000 86%, transparent);
  mask-image: linear-gradient(to bottom, transparent, #000 14%, #000 86%, transparent);
}
.blklux-reviews__col { flex: 0 1 340px; min-width: 0; }
/* a centred heading needs its rule under the middle of it, not the left edge */
.blklux-reviews-section .elementor-widget-heading.blklux-h-rule .elementor-heading-title::after,
.blklux-unlock-section .elementor-widget-heading.blklux-h-rule .elementor-heading-title::after { left: 50%; transform: translateX(-50%); }
.blklux-reviews-section .blklux-section-intro,
.blklux-unlock-section .blklux-section-intro { text-align: center; }
.blklux-reviews__col--md { display: none; }
.blklux-reviews__col--lg { display: none; }
@media (min-width: 768px) { .blklux-reviews__col--md { display: block; } }
@media (min-width: 1100px) { .blklux-reviews__col--lg { display: block; } }

.blklux-reviews__track {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2vw, 24px);
  /* The copy is dissolved into the track so every gap is the same, including
     across the seam, and the trailing pad makes the track exactly two equal
     halves — only then does travelling 50% land where the original started. */
  padding-bottom: clamp(16px, 2vw, 24px);
  animation: blklux-reviews-drift var(--blklux-reviews-dur, 50s) linear infinite;
  will-change: transform;
}
.blklux-reviews__repeat { display: contents; }
@keyframes blklux-reviews-drift {
  from { transform: translateY(0); }
  to { transform: translateY(-50%); }
}
.blklux-reviews:hover .blklux-reviews__track,
.blklux-reviews:focus-within .blklux-reviews__track { animation-play-state: paused; }

/* --- a review ------------------------------------------------------------ */
.blklux-review {
  margin: 0;
  padding: clamp(22px, 2.4vw, 30px);
  background: var(--blklux-charcoal);
  border: 1px solid var(--blklux-line);
  border-radius: var(--blklux-r-lg);
  box-shadow: 0 18px 40px -28px rgba(0, 0, 0, 0.8);
}
body.blklux-theme .blklux-review__text {
  margin: 0;
  padding: 0;
  border: 0;
  quotes: none;
  font-size: 15.5px;
  line-height: 1.65;
  color: var(--blklux-ivory);
}
.blklux-review__by { display: flex; align-items: center; gap: 12px; margin-top: 20px; }
.blklux-review__mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: none;
  border: 1px solid rgba(212, 165, 72, 0.45);
  border-radius: 50%;
  background: rgba(212, 165, 72, 0.08);
  font-family: var(--blklux-font-display);
  font-size: 18px;
  font-weight: 600;
  color: var(--blklux-gold-light);
}
.blklux-review__who { display: grid; gap: 3px; min-width: 0; }
.blklux-review__name { font-size: 14.5px; font-weight: 600; letter-spacing: 0.01em; color: var(--blklux-ivory); }
.blklux-review__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 12.5px; color: var(--blklux-ash); }
.blklux-review__stars { letter-spacing: 1px; line-height: 1; }
.blklux-review__star { color: rgba(243, 238, 228, 0.22); }
.blklux-review__star.is-on { color: var(--blklux-gold); }
.blklux-review__date { font-variant-numeric: tabular-nums; }

/* --- too few to scroll: a plain row, no mask, no motion ------------------ */
.blklux-reviews--row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: clamp(16px, 2vw, 24px);
  max-height: none;
  overflow: visible;
  -webkit-mask-image: none;
  mask-image: none;
}

@media (prefers-reduced-motion: reduce) {
  .blklux-reviews {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    max-height: none;
    overflow: visible;
    -webkit-mask-image: none;
    mask-image: none;
  }
  .blklux-reviews__col--md, .blklux-reviews__col--lg { display: block; }
  .blklux-reviews__track { animation: none; }
  /* the second copy exists only to make the loop seamless; with no loop it is
     just the same reviews printed twice */
  .blklux-reviews__repeat { display: none; }
}

/* Until the owner has ticked a review to show, the section has nothing to say,
   so the heading goes with it rather than standing over an empty space. */
.blklux-reviews-section:not(:has(.blklux-review)) { display: none; }

/* ==========================================================================
   The unlockable rewards, standing on their own. Inside the hub they are a
   column beside the membership card; as a section of their own they spread
   into a row of cards, because there is width to use and no card to sit next
   to. The section heading above them replaces the small one they carried.
   ========================================================================== */

.blklux-hub--rewards-only { display: block; padding: 0; background: none; border: 0; }

/* Reward cards: the same card the menu uses, because a reward is a thing you
   can have and should be shown like one — picture, name, cost, and a way to
   get it. The cost sits where a price sits, in gold. */
/* Eight rewards read as a ladder when they come in two even rows of four, so
   the columns are set rather than left to auto-fill at whatever the gap allows. */
.blklux-rewardcards {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(14px, 1.8vw, 24px);
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 560px) { .blklux-rewardcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .blklux-rewardcards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .blklux-rewardcards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.blklux-rewardcard { display: flex; flex-direction: column; border: 1px solid var(--blklux-line); transition: border-color var(--blklux-dur) var(--blklux-ease-out), box-shadow var(--blklux-dur) var(--blklux-ease-out); }
.blklux-rewardcard:hover { border-color: rgba(212, 165, 72, 0.4); box-shadow: var(--blklux-glow); }
.blklux-rewardcard__media { display: grid; place-items: center; }
.blklux-rewardcard__ic { display: grid; place-items: center; color: var(--blklux-gold); opacity: 0.5; }
.blklux-rewardcard__ic svg { width: 44px; height: 44px; }
.blklux-rewardcard__body { display: flex; flex-direction: column; gap: 6px; flex: 1 1 auto; }
body.blklux-theme .blklux-rewardcard__name { margin: 0; font-family: var(--blklux-font-display); font-size: 19px; font-weight: 600; line-height: 1.25; letter-spacing: 0.01em; color: var(--blklux-ivory); }
body.blklux-theme .blklux-rewardcard__name strong { font-weight: inherit; }
body.blklux-theme .blklux-rewardcard__price { margin: 0 0 4px; color: var(--blklux-gold); font-variant-numeric: tabular-nums; }
.blklux-rewardcard__pts { font-size: 20px; font-weight: 700; letter-spacing: 0.01em; }
.blklux-rewardcard__unit { font-size: 13px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--blklux-ash); }
/* The base button is built for one short line — no vertical padding and a
   line-height of 1. This one carries a sentence, so it gets room to wrap and
   balances the two lines instead of stacking them tight. */
.blklux-rewardcard__cta {
  margin-top: auto;
  width: 100%;
  height: auto;
  min-height: 48px;
  padding: 12px var(--blklux-s-4);
  line-height: 1.3;
  letter-spacing: 0.06em;
  text-align: center;
  text-wrap: balance;
}
.blklux-rewardcard__cta[disabled] { opacity: 0.45; cursor: not-allowed; }

/* The staff door: present for the crew, quiet enough that a customer scanning
   the legal line reads past it. */
body.blklux-theme .blklux-sitefoot__staff { color: var(--blklux-ash); opacity: 0.75; }
body.blklux-theme .blklux-sitefoot__staff:hover { color: var(--blklux-gold-light); opacity: 1; }

/* Checkout: the delivery address asked for when someone picks delivery without
   having told us where. It sits inside the summary card, under the truck. */
.blklux-checkout-deliver { padding: 16px 20px 20px; border-top: 1px solid var(--blklux-line); display: grid; gap: 10px; }
.blklux-checkout-deliver__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.blklux-checkout-deliver__gps { width: 100%; }
.blklux-checkout-deliver__note { margin: 0; }
body.blklux-theme .blklux-checkout-deliver__msg { margin: 0; }
body.blklux-theme .blklux-checkout-deliver__msg.is-ok { color: var(--blklux-open); }
@media (min-width: 560px) {
  .blklux-checkout-deliver__gps { width: auto; justify-self: start; }
}

/* --- Pickup or delivery, asked on arrival at the menu ---------------------- */
/* Two rows, each a gold mark, a name and one line of what is true right now.
   No photograph and no plate: this dialog asks a single question and should
   look like a question, not a gallery. Choosing delivery replaces the rows with
   the address check rather than growing the dialog, so nothing ever scrolls. */
.blklux-asktype.blklux-sheet {
  border: 1px solid transparent;
  background: linear-gradient(var(--blklux-charcoal), var(--blklux-charcoal)) padding-box, var(--blklux-edge) border-box;
}
.blklux-asktype__cards { display: grid; gap: 10px; }
.blklux-asktype__card {
  appearance: none;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 16px;
  width: 100%;
  min-height: 88px;
  padding: 16px 18px;
  border: 1px solid transparent;
  border-radius: var(--blklux-r-lg);
  /* fill inside the border, lit gold in the border itself */
  background: linear-gradient(var(--blklux-raised), var(--blklux-raised)) padding-box, var(--blklux-edge) border-box;
  background-size: auto, 230% 100%;
  background-position: center, 0% 50%;
  color: var(--blklux-ivory);
  font: inherit;
  text-align: left;
  cursor: pointer;
  touch-action: manipulation;
  transition: background-position 760ms var(--blklux-ease-out), background-image var(--blklux-dur) var(--blklux-ease-out), box-shadow var(--blklux-dur) var(--blklux-ease-out);
}
/* the mark is a thin ring, not a filled badge — gold is the accent, not the surface */
/* struck gold, like the buttons: the brushed gradient with ink on top, and a
   dark rim so the coin reads as metal rather than a flat gold dot */
.blklux-asktype__mark {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--blklux-gold-gradient);
  color: var(--blklux-gold-ink);
  box-shadow: inset 0 0 0 1px rgba(26, 19, 5, 0.22), 0 6px 16px -8px rgba(212, 165, 72, 0.65);
  transition: filter var(--blklux-dur) var(--blklux-ease-out), box-shadow var(--blklux-dur) var(--blklux-ease-out);
}
.blklux-asktype__mark svg, .blklux-asktype__mark .blklux-icon { width: 22px; height: 22px; }
/* a touch heavier so ink reads on gold */
.blklux-asktype__mark svg, .blklux-asktype__mark .blklux-icon { stroke-width: 1.9; }
.blklux-oa__nodeliver-mark svg, .blklux-oa__nodeliver-mark .blklux-icon { stroke-width: 1.9; }
.blklux-asktype__lines { display: grid; gap: 4px; min-width: 0; }
.blklux-asktype__name { font-size: 22px; line-height: 1.1; letter-spacing: 0.01em; }
.blklux-asktype__fact { font-size: 13px; line-height: 1.45; color: var(--blklux-ash); overflow-wrap: anywhere; }
.blklux-asktype__go { display: grid; place-items: center; color: var(--blklux-line-strong); transition: transform var(--blklux-dur) var(--blklux-ease-out), color var(--blklux-dur) var(--blklux-ease-out); }
.blklux-asktype__go svg { width: 18px; height: 18px; }
/* the highlight travels the edge under the cursor — the one moving thing here */
.blklux-asktype__card:hover, .blklux-asktype__card:focus-visible {
  background-image: linear-gradient(var(--blklux-charcoal), var(--blklux-charcoal)), var(--blklux-edge-lit);
  background-position: center, 100% 50%;
  box-shadow: 0 20px 44px -26px rgba(212, 165, 72, 0.5);
}
.blklux-asktype__card:hover .blklux-asktype__mark, .blklux-asktype__card:focus-visible .blklux-asktype__mark { filter: brightness(1.08); box-shadow: inset 0 0 0 1px rgba(26, 19, 5, 0.22), 0 10px 22px -10px rgba(212, 165, 72, 0.8); }
.blklux-asktype__card:hover .blklux-asktype__go, .blklux-asktype__card:focus-visible .blklux-asktype__go { transform: translateX(3px); color: var(--blklux-gold); }
/* One ring, never two: an outline outside the card's own gold border read as a
   double frame, so the focus ring is the border, thickened. */
.blklux-asktype__card:focus-visible { outline: none; box-shadow: 0 0 0 1px var(--blklux-gold), 0 20px 44px -26px rgba(212, 165, 72, 0.45); }
.blklux-asktype:focus { outline: none; }
.blklux-asktype__card.is-busy { background-image: linear-gradient(var(--blklux-charcoal), var(--blklux-charcoal)), var(--blklux-edge-lit); opacity: 0.7; }
.blklux-asktype__card[disabled] { cursor: default; }
/* one orchestrated entrance, the rows a beat apart; nothing else moves */
@media (prefers-reduced-motion: no-preference) {
  .blklux-asktype__card { animation: blklux-asktype-rise 380ms var(--blklux-ease-out) both; }
  .blklux-asktype__card:nth-child(2) { animation-delay: 70ms; }
}
@keyframes blklux-asktype-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

.blklux-asktype__step--where { display: grid; gap: 12px; }
.blklux-asktype__back { appearance: none; justify-self: start; display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding: 0; border: 0; background: none; color: var(--blklux-ash); font: inherit; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; }
body.blklux-theme .blklux-asktype__back:hover, body.blklux-theme .blklux-asktype__back:focus-visible { background: none; color: var(--blklux-gold-light); }
.blklux-asktype__back:focus-visible { outline: 2px solid var(--blklux-gold-light); outline-offset: 3px; border-radius: 4px; }
.blklux-asktype__note { margin: 0; font-size: 14px; line-height: 1.5; }
.blklux-asktype__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
/* The quiet way in, but still a control: a hairline pill with a crosshair, half
   the weight of Check so the two never compete. */
.blklux-asktype__gps { justify-self: start; gap: 9px; padding: 0 16px; letter-spacing: 0.08em; }
.blklux-asktype__gps-icon { display: inline-grid; place-items: center; }
.blklux-asktype__gps-icon svg { width: 15px; height: 15px; }
body.blklux-theme .blklux-asktype [data-msg] { margin: 2px 0 0; font-size: 14px; line-height: 1.5; }
body.blklux-theme .blklux-asktype [data-msg].is-ok { color: var(--blklux-open); }

@media (min-width: 768px) {
  .blklux-asktype.blklux-sheet { width: min(92vw, 540px); }
  .blklux-asktype__card { min-height: 96px; padding: 18px 22px; }
  .blklux-asktype__name { font-size: 24px; }
}

/* --- Delivery refused: the panel instead of the truck list ----------------- */
/* It takes the whole row rather than sitting in one grid cell, because there is
   no list to sit beside. Centred, one mark, one sentence, two ways forward. */
.blklux-oa__nodeliver {
  border: 1px solid transparent;
  background: linear-gradient(var(--blklux-charcoal), var(--blklux-charcoal)) padding-box, var(--blklux-edge) border-box;
  grid-column: 1 / -1;
  display: grid;
  justify-items: center;
  gap: 14px;
  max-width: 560px;
  margin-inline: auto;
  padding: 40px 28px;
  text-align: center;
}
.blklux-oa__nodeliver-mark { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--blklux-gold-gradient); color: var(--blklux-gold-ink); box-shadow: inset 0 0 0 1px rgba(26, 19, 5, 0.22), 0 8px 20px -10px rgba(212, 165, 72, 0.65); }
.blklux-oa__nodeliver-mark svg, .blklux-oa__nodeliver-mark .blklux-icon { width: 24px; height: 24px; }
.blklux-oa__nodeliver-title { margin: 0; font-size: 26px; line-height: 1.15; color: var(--blklux-ivory); }
.blklux-oa__nodeliver-sub { max-width: 42ch; margin: -4px 0 2px; font-size: var(--blklux-fs-md); line-height: 1.55; color: var(--blklux-ash); }
/* the labels stay on one line; the row wraps instead of the words */
.blklux-oa__nodeliver-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.blklux-oa__nodeliver-actions .blklux-btn { white-space: nowrap; }
.blklux-oa__nodeliver-note { margin: 2px 0 0; font-size: var(--blklux-fs-sm); }
@media (max-width: 480px) {
  .blklux-oa__nodeliver { padding: 32px 20px; }
  .blklux-oa__nodeliver-title { font-size: 23px; }
  .blklux-oa__nodeliver-actions { width: 100%; flex-direction: column; }
  .blklux-oa__nodeliver-actions .blklux-btn { width: 100%; }
}

/* The favourite star sits on a photo, not in a form — but the theme does not
 * know that and styles it as a button. Measured on the live menu: Astra gives
 * it `padding: 15px 30px`, which beats the 44px width (border-box cannot go
 * narrower than its own padding), so the box became 60×44 and `border-radius:
 * 50%` drew that as an ellipse — the pale oval, filled on hover by the theme's
 * own button background and its 1px shadow.
 *
 * Pin the geometry across every state so no theme rule gets a say, then define
 * the one state we do want: a dark scrim that keeps the photo readable, a
 * hairline gold ring, and the star itself picking up the gold. 44px stays, so
 * the target is still thumb-sized.
 */
body.blklux-theme .blklux-menu-card__fav,
body.blklux-theme .blklux-menu-card__fav:hover,
body.blklux-theme .blklux-menu-card__fav:focus,
body.blklux-theme .blklux-menu-card__fav:active,
.blklux-ui .blklux-menu-card__fav,
.blklux-ui .blklux-menu-card__fav:hover {
  width: 44px;
  height: 44px;
  padding: 0;
  min-width: 0;
  min-height: 0;
  border: 0;
  border-radius: 50%;
  box-shadow: none;
  background: transparent;
}
body.blklux-theme .blklux-menu-card__fav:hover,
body.blklux-theme .blklux-menu-card__fav:focus-visible,
.blklux-ui .blklux-menu-card__fav:hover,
.blklux-ui .blklux-menu-card__fav:focus-visible {
  background: rgba(10, 8, 4, 0.58);
  box-shadow: inset 0 0 0 1px rgba(212, 165, 72, 0.5);
  color: var(--blklux-gold-light);
}
/* Already a favourite: gold at rest, and the ring confirms the press target. */
body.blklux-theme .blklux-menu-card__fav.is-on,
.blklux-ui .blklux-menu-card__fav.is-on { color: var(--blklux-gold-light); }
