
/* ==========================================================================
   Memphis Blues BBQ — theme styles ("smokehouse diner", neon accents)
   ========================================================================== */

:root {
  /* light (default) */
  --paper:     #FAF4E6;
  --paper-2:   #FFFDF6;
  --paper-3:   #F1E7D0;
  --ink:       #232A3F;
  --ink-soft:  #5A6376;
  --line-lt:   rgba(35, 42, 63, .14);
  --line-lt-soft: rgba(35, 42, 63, .08);
  --blue:      #3557D4;
  --blue-deep: #2743A8;
  --pink:      #EFC4BC;
  --pink-soft: #F7E2DD;
  --pink-deep: #BC5A49;

  /* night (dark accent sections, header sign moments) */
  --night:    #0A0C13;
  --night-2:  #0E1220;
  --night-3:  #141929;
  --panel:    #10141F;
  --line:     rgba(127, 178, 255, .15);
  --line-soft: rgba(127, 178, 255, .09);
  --cream:    #F4EDD0;
  --cream-hi: #FFFBE6;
  --body-dk:  #B9BFD3;
  --muted-dk: #98A0B6;
  --neon:     #7FB2FF;
  --neon-2:   #4D7EF2;
  --glow-blue: 0 0 7px rgba(127,178,255,.9), 0 0 22px rgba(77,126,242,.55), 0 0 46px rgba(77,126,242,.30);
  --glow-blue-soft: 0 0 18px rgba(77,126,242,.35);

  --radius: 18px;
  --shadow-card: 0 10px 30px rgba(35, 42, 63, .08);
  --font-disp: "Rye", "Georgia", serif;
  --font-script: "Pacifico", "Brush Script MT", cursive;
  --font-body: "Archivo", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;
  --container: 1200px;
  --pad-x: 24px;
  --sec-pad: clamp(60px, 8vw, 100px);
}

html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 16.5px;
  line-height: 1.75;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--blue); text-decoration-color: rgba(53, 87, 212, .35); }
a:hover { color: var(--blue-deep); }
::selection { background: rgba(53, 87, 212, .22); }
[id] { scroll-margin-top: 96px; }

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--blue); color: #fff; padding: 10px 18px;
  border-radius: 0 0 10px 0;
}
.skip-link:focus { left: 0; color: #fff; }

/* ------------------------------------------------------------------ layout */

.mbb-container {
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--pad-x);
}
body .elementor .elementor-section-boxed > .elementor-container {
  max-width: var(--container);
  padding-inline: var(--pad-x);
}

.mbb-sec { padding-block: var(--sec-pad); position: relative; }
.mbb-sec.row-after-head { padding-top: 0; }
.mbb-sec.sec-head.head-of-row { padding-bottom: 34px; }
.mbb-sec.outro-pad { padding-bottom: var(--sec-pad); }

/* Fallback column system (used only when Elementor is not rendering) */
.mbb-container { display: flex; flex-wrap: wrap; gap: 24px; }
.mbb-col { min-width: 0; flex: 1 1 0; }
.mbb-col.w-100 { flex-basis: 100%; }
.colwrap > * { margin: 0 0 18px; }
.colwrap > *:last-child { margin-bottom: 0; }
.mbb-sec.sec-head .mbb-container,
.mbb-sec.hero .mbb-container { display: block; }

/* Elementor widget rhythm inside our sections */
body .elementor .mbb-sec .elementor-widget:not(:last-child) { margin-bottom: 18px; }

/* Card / grid rows — both DOMs get CSS grid */
.mbb-sec[class*="grid-"] > .mbb-container,
body .elementor .mbb-sec[class*="grid-"] > .elementor-container { display: grid; gap: 22px; }
.mbb-sec.grid-2 > .mbb-container, body .elementor .mbb-sec.grid-2 > .elementor-container { grid-template-columns: repeat(2, 1fr); }
.mbb-sec.grid-3 > .mbb-container, body .elementor .mbb-sec.grid-3 > .elementor-container { grid-template-columns: repeat(3, 1fr); }
.mbb-sec.grid-4 > .mbb-container, body .elementor .mbb-sec.grid-4 > .elementor-container { grid-template-columns: repeat(4, 1fr); }
body .elementor .mbb-sec[class*="grid-"] > .elementor-container > .elementor-column { width: 100%; }

/* ------------------------------------------------------------ type & tone */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-body);
  color: var(--ink);
  margin: 0 0 14px;
  line-height: 1.16;
}
body .elementor .mbb-sec .elementor-widget-heading .elementor-heading-title {
  font-family: var(--font-body);
  color: var(--ink);
  line-height: 1.16;
}
body .elementor .mbb-sec { color: var(--ink); }

h1, body .elementor .mbb-sec .elementor-widget-heading h1.elementor-heading-title {
  font-family: var(--font-disp);
  font-weight: 400;
  font-size: clamp(38px, 5.2vw, 66px);
  line-height: 1.05;
  letter-spacing: .01em;
  color: var(--ink);
}
h2, body .elementor .mbb-sec .elementor-widget-heading h2.elementor-heading-title {
  font-family: var(--font-disp);
  font-weight: 400;
  font-size: clamp(28px, 3.6vw, 42px);
  line-height: 1.12;
  letter-spacing: .01em;
}
h3, body .elementor .mbb-sec h3.elementor-heading-title {
  font-size: 18px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

body .elementor .mbb-sec .elementor-widget-text-editor {
  color: inherit; font-size: 16.5px; line-height: 1.75;
}
.mbb-sec p { margin: 0 0 16px; }
.mbb-sec p:last-child { margin-bottom: 0; }
body .elementor .mbb-sec .elementor-widget-text-editor p { margin: 0 0 16px; }
body .elementor .mbb-sec .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Eyebrow labels — terracotta with brand-blue stars */
.eyebrow-text,
body .elementor .mbb-sec .eyebrow .elementor-heading-title {
  font-family: var(--font-body);
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--pink-deep);
  margin-bottom: 0;
}
.eyebrow-text::before, .eyebrow-text::after,
body .elementor .mbb-sec .eyebrow .elementor-heading-title::before,
body .elementor .mbb-sec .eyebrow .elementor-heading-title::after {
  content: "\2605";
  color: var(--blue);
  opacity: .75;
  font-size: .85em;
  letter-spacing: 0;
  vertical-align: 1px;
}
.eyebrow-text::before,
body .elementor .mbb-sec .eyebrow .elementor-heading-title::before { margin-right: 14px; }
.eyebrow-text::after,
body .elementor .mbb-sec .eyebrow .elementor-heading-title::after { margin-left: 14px; }
body .elementor .mbb-sec .elementor-widget.eyebrow:not(:last-child) { margin-bottom: 10px; }

/* Script line — blue diner script on light, neon on dark */
.script-line,
body .elementor .mbb-sec .script-line .elementor-heading-title {
  font-family: var(--font-script);
  font-weight: 400;
  text-transform: none;
  letter-spacing: .015em;
  font-size: clamp(23px, 2.8vw, 34px);
  line-height: 1.3;
  color: var(--blue);
  text-shadow: 0 1px 0 rgba(255, 255, 255, .6);
  margin: 0 0 8px;
}
body .elementor .mbb-sec .elementor-widget.script-line:not(:last-child) { margin-bottom: 10px; }

/* Section heads */
.mbb-sec.sec-head { text-align: center; }
body .elementor .sec-head .elementor-widget-wrap { text-align: center; }
.sec-head-copy, body .elementor .sec-head .elementor-widget-text-editor { color: var(--ink-soft); font-size: 17px; }
.sec-head-copy { max-width: 700px; margin-inline: auto; }
body .elementor .sec-head .elementor-widget-text-editor .elementor-widget-container { max-width: 700px; margin-inline: auto; }

/* ------------------------------------------------------- dark tone system */

.mbb-sec.tone-dark {
  background:
    radial-gradient(900px 420px at 85% -80px, rgba(77, 126, 242, .14), transparent 60%),
    linear-gradient(180deg, #0B0E17, var(--night) 70%);
  color: var(--body-dk);
}
body .elementor .mbb-sec.tone-dark { color: var(--body-dk); }
.tone-dark h1, .tone-dark h2, .tone-dark h3, .tone-dark h4,
body .elementor .mbb-sec.tone-dark .elementor-widget-heading .elementor-heading-title,
body .elementor .mbb-sec.tone-dark .elementor-widget-heading h1.elementor-heading-title,
body .elementor .mbb-sec.tone-dark .elementor-widget-heading h2.elementor-heading-title { color: var(--cream); }
.tone-dark .eyebrow-text,
body .elementor .mbb-sec.tone-dark .eyebrow .elementor-heading-title { color: var(--pink); }
.tone-dark .eyebrow-text::before, .tone-dark .eyebrow-text::after,
body .elementor .mbb-sec.tone-dark .eyebrow .elementor-heading-title::before,
body .elementor .mbb-sec.tone-dark .eyebrow .elementor-heading-title::after { color: var(--cream); }
.tone-dark .script-line,
body .elementor .mbb-sec.tone-dark .script-line .elementor-heading-title {
  color: var(--neon);
  text-shadow: var(--glow-blue);
}
.tone-dark .sec-head-copy,
body .elementor .mbb-sec.tone-dark .sec-head .elementor-widget-text-editor,
body .elementor .mbb-sec.tone-dark .elementor-widget-text-editor { color: var(--body-dk); }
.tone-dark ::selection { background: rgba(77, 126, 242, .45); color: var(--cream-hi); }

/* ---------------------------------------------------------------- buttons */

.mbb-btnrow { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 26px; align-items: center; }

.mbb-btn,
body .elementor .mbb-sec .elementor-widget-button .elementor-button {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1;
  padding: 17px 30px;
  border-radius: 12px;
  background: var(--pink-deep);
  color: #FFF6EE;
  text-decoration: none;
  border: 1px solid var(--pink-deep);
  box-shadow: 0 8px 22px rgba(188, 90, 73, .28);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.mbb-btn:hover,
body .elementor .mbb-sec .elementor-widget-button .elementor-button:hover {
  background: #A34A3B;
  border-color: #A34A3B;
  color: #FFF6EE;
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(188, 90, 73, .36);
}
.mbb-btn:focus-visible,
body .elementor .mbb-sec .elementor-widget-button .elementor-button:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}

/* Secondary: blue outline on light; neon tube on dark */
.btn-neon.mbb-btn,
body .elementor .mbb-sec .btn-neon .elementor-button {
  background: transparent;
  border: 1.5px solid rgba(53, 87, 212, .55);
  color: var(--blue);
  box-shadow: none;
  text-shadow: none;
}
.btn-neon.mbb-btn:hover,
body .elementor .mbb-sec .btn-neon .elementor-button:hover {
  background: rgba(53, 87, 212, .08);
  border-color: var(--blue);
  color: var(--blue-deep);
  box-shadow: none;
}
.tone-dark .btn-neon.mbb-btn,
body .elementor .mbb-sec.tone-dark .btn-neon .elementor-button {
  border: 1px solid rgba(127, 178, 255, .65);
  color: var(--neon);
  box-shadow: 0 0 14px rgba(77, 126, 242, .22), inset 0 0 14px rgba(77, 126, 242, .12);
  text-shadow: 0 0 8px rgba(127, 178, 255, .55);
}
.tone-dark .btn-neon.mbb-btn:hover,
body .elementor .mbb-sec.tone-dark .btn-neon .elementor-button:hover {
  background: rgba(77, 126, 242, .14);
  border-color: var(--neon);
  color: var(--cream-hi);
  box-shadow: 0 0 22px rgba(77, 126, 242, .45), inset 0 0 18px rgba(77, 126, 242, .2);
}

/* Plain arrow link */
.link-plain.mbb-btn,
body .elementor .mbb-sec .link-plain .elementor-button {
  background: transparent; border: 0; box-shadow: none;
  color: var(--pink-deep); padding: 6px 2px; border-radius: 4px;
  letter-spacing: .12em;
}
.link-plain.mbb-btn::after { content: " \2192"; }
body .elementor .mbb-sec .link-plain .elementor-button-text::after {
  content: " \2192"; display: inline-block; transition: transform .18s ease;
}
.link-plain.mbb-btn:hover,
body .elementor .mbb-sec .link-plain .elementor-button:hover {
  color: var(--blue-deep); background: transparent; transform: none; box-shadow: none;
}
body .elementor .mbb-sec .link-plain .elementor-button:hover .elementor-button-text::after { transform: translateX(4px); }
.tone-dark .link-plain.mbb-btn,
body .elementor .mbb-sec.tone-dark .link-plain .elementor-button { color: var(--pink); }
.tone-dark .link-plain.mbb-btn:hover,
body .elementor .mbb-sec.tone-dark .link-plain .elementor-button:hover { color: var(--cream-hi); }

/* Inline (auto-width) buttons in Elementor flex rows */
body .elementor .mbb-sec .elementor-widget.btn-inline {
  width: auto; margin-right: 14px; margin-top: 8px;
}
body .elementor .mbb-sec .elementor-widget.btn-inline:not(:last-child) { margin-bottom: 0; }

/* ------------------------------------------------------------------ header */

.mbb-header {
  position: sticky; top: 0; z-index: 90;
  background: rgba(250, 244, 230, .92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line-lt);
}
.mbb-header .mbb-container {
  display: flex; align-items: center; gap: 30px;
  min-height: 76px; flex-wrap: nowrap;
}
.mbb-header.is-stuck { box-shadow: 0 10px 34px rgba(35, 42, 63, .12); }

.mbb-brand { display: flex; align-items: baseline; gap: 9px; text-decoration: none; white-space: nowrap; }
.mbb-brand .b-memphis {
  font-family: var(--font-disp); font-size: 21px; color: var(--ink);
  letter-spacing: .02em;
}
.mbb-brand .b-blues {
  font-family: var(--font-script); font-size: 24px; color: var(--blue);
  position: relative; top: 2px;
  text-shadow: 0 0 12px rgba(53, 87, 212, .25);
}
.mbb-brand .b-bbq {
  font-family: var(--font-body); font-weight: 800; font-size: 17px;
  letter-spacing: .08em; color: var(--pink-deep);
}
.mbb-brand:hover .b-blues { color: var(--blue-deep); }

.mbb-nav { margin-left: auto; }
.mbb-nav ul { list-style: none; display: flex; gap: 6px; margin: 0; padding: 0; }
.mbb-nav a {
  display: block; padding: 10px 14px;
  font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: var(--ink-soft); text-decoration: none; border-radius: 8px;
}
.mbb-nav a:hover { color: var(--blue); background: rgba(53, 87, 212, .07); }
.mbb-nav li.current-menu-item > a, .mbb-nav li.current_page_item > a { color: var(--ink); }

.header-cta { flex: 0 0 auto; }
.header-cta .mbb-btn { padding: 13px 22px; }

.mbb-burger {
  display: none; margin-left: auto;
  background: none; border: 1px solid var(--line-lt); border-radius: 10px;
  width: 46px; height: 42px; cursor: pointer; padding: 10px 11px;
}
.mbb-burger span {
  display: block; height: 2px; background: var(--ink); border-radius: 2px;
  margin: 4px 0; transition: transform .2s ease, opacity .2s ease;
}

@media (max-width: 980px) {
  .mbb-nav {
    display: none;
    position: absolute; left: 0; right: 0; top: 100%;
    background: var(--paper);
    border-bottom: 1px solid var(--line-lt);
    padding: 12px 24px 20px;
    box-shadow: 0 20px 40px rgba(35, 42, 63, .12);
  }
  .mbb-nav.open { display: block; }
  .mbb-nav ul { flex-direction: column; gap: 2px; }
  .mbb-nav a { padding: 12px 8px; font-size: 15px; }
  .mbb-burger { display: block; }
  .header-cta { display: none; }
}

/* -------------------------------------------------------------------- hero */

.mbb-sec.hero {
  padding-block: clamp(64px, 9vw, 118px);
  overflow: hidden;
  background-color: var(--night);
  background-size: cover;
  background-position: center;
  color: var(--body-dk);
}
/* photo scrim: night-blue wash, heavier on the copy side, plus faint stars */
.mbb-sec.hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(1.4px 1.4px at 22% 26%, rgba(244,237,208,.5), transparent 100%),
    radial-gradient(1.2px 1.2px at 68% 14%, rgba(244,237,208,.4), transparent 100%),
    radial-gradient(1.6px 1.6px at 86% 44%, rgba(127,178,255,.5), transparent 100%),
    radial-gradient(1.3px 1.3px at 8% 62%, rgba(127,178,255,.4), transparent 100%),
    linear-gradient(100deg, rgba(7, 9, 16, .93) 0%, rgba(7, 9, 16, .82) 45%, rgba(7, 9, 16, .55) 100%);
}
.mbb-sec.hero::before { z-index: 1; }
.mbb-sec.hero .mbb-container, body .elementor .hero > .elementor-container { position: relative; z-index: 2; }

/* Background video (fallback templates emit .hero-video-wrap; Elementor uses
   its native video background container). Scrim (::before) sits above both. */
.hero-video-wrap { position: absolute; inset: 0; overflow: hidden; z-index: 0; }
.hero-video-wrap video { width: 100%; height: 100%; object-fit: cover; display: block; }
body .elementor .hero .elementor-background-video-container { z-index: 0; }
body.elementor-editor-active .hero-video-wrap { display: none; }
@media (prefers-reduced-motion: reduce) { .hero-video-wrap { display: none; } }

.mbb-sec.hero h1, body .elementor .hero .elementor-widget-heading h1.elementor-heading-title {
  color: var(--cream);
  text-shadow: 0 2px 0 rgba(0,0,0,.35), 0 0 60px rgba(244,237,208,.14);
}
.mbb-sec.hero .eyebrow-text,
body .elementor .hero .eyebrow .elementor-heading-title { color: var(--pink); }
.mbb-sec.hero .eyebrow-text::before, .mbb-sec.hero .eyebrow-text::after,
body .elementor .hero .eyebrow .elementor-heading-title::before,
body .elementor .hero .eyebrow .elementor-heading-title::after { color: var(--cream); }
.mbb-sec.hero .script-line,
body .elementor .hero .script-line .elementor-heading-title {
  color: var(--neon); text-shadow: var(--glow-blue);
  font-size: clamp(24px, 3vw, 36px);
}
.mbb-sec.hero .btn-neon.mbb-btn,
body .elementor .hero .btn-neon .elementor-button {
  border: 1px solid rgba(127, 178, 255, .65);
  color: var(--neon);
  box-shadow: 0 0 14px rgba(77, 126, 242, .22), inset 0 0 14px rgba(77, 126, 242, .12);
  text-shadow: 0 0 8px rgba(127, 178, 255, .55);
}
.mbb-sec.hero .btn-neon.mbb-btn:hover,
body .elementor .hero .btn-neon .elementor-button:hover {
  background: rgba(77, 126, 242, .14); border-color: var(--neon); color: var(--cream-hi);
}

.mbb-sec.hero-home .mbb-container,
body .elementor .hero-home > .elementor-container { display: flex; align-items: center; gap: 44px; }
.hero-copy { flex: 1.12 1 0; min-width: 0; }
.hero-media { flex: 1 1 0; min-width: 0; }
body .elementor .hero-home > .elementor-container > .hero-copy-col { flex: 1.12 1 0; width: auto; min-width: 0; }
body .elementor .hero-home > .elementor-container > .hero-media-col { flex: 1 1 0; width: auto; min-width: 0; }

.hero p, body .elementor .hero .elementor-widget-text-editor { font-size: 18px; color: var(--body-dk); }
.hero-copy p, body .elementor .hero .hero-copy-col .elementor-widget-text-editor .elementor-widget-container { max-width: 540px; }

.mbb-sec.hero-page { text-align: center; padding-block: clamp(56px, 7vw, 92px); }
body .elementor .hero-page .elementor-widget-wrap { text-align: center; }
.hero-page .hero-copy p, body .elementor .hero-page .elementor-widget-text-editor .elementor-widget-container {
  max-width: 640px; margin-inline: auto;
}
.hero-page .mbb-btnrow { justify-content: center; }
body .elementor .hero-page .elementor-widget.btn-inline { margin-inline: 7px; }

/* ------------------------------------------------------------------ ticker */

.mbb-sec.ticker-band {
  padding-block: 0;
  background: var(--pink);
  border-block: 1px solid rgba(35, 42, 63, .12);
}
.ticker-wrap { overflow: hidden; padding-block: 14px; }
.ticker-track {
  display: inline-flex; align-items: center; gap: 34px;
  white-space: nowrap; will-change: transform;
  animation: mbb-ticker 46s linear infinite;
}
.ticker-track .tk {
  font-family: var(--font-body); font-weight: 800; font-size: 14px;
  letter-spacing: .3em; text-transform: uppercase; color: #35251F;
}
.ticker-track .tk-star { color: var(--blue-deep); font-size: 12px; }
@keyframes mbb-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
body.elementor-editor-active .ticker-track { animation: none; }
@media (prefers-reduced-motion: reduce) { .ticker-track { animation: none; } }

/* ------------------------------------------------------------------- cards */

.cardcol > .colwrap,
body .elementor .mbb-sec .cardcol > .elementor-widget-wrap {
  height: 100%;
  background: var(--paper-2);
  border: 1px solid var(--line-lt);
  border-radius: var(--radius);
  padding: 30px 26px 28px;
  box-shadow: var(--shadow-card);
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.cardcol:hover > .colwrap,
body .elementor .mbb-sec .cardcol:hover > .elementor-widget-wrap {
  transform: translateY(-4px);
  border-color: rgba(53, 87, 212, .4);
  box-shadow: 0 18px 40px rgba(35, 42, 63, .14);
}
.cardcol p, body .elementor .mbb-sec .cardcol .elementor-widget-text-editor { color: var(--ink-soft); font-size: 15.5px; }

/* Food photo bleeding to the card edges. In the Elementor DOM widgets are
   flex items, so width:auto would shrink-to-fit — give the widget an explicit
   width equal to the padding box plus the bled margins. */
.card-photo { margin: -30px -26px 20px; }
body .elementor .mbb-sec .elementor-widget.card-photo {
  width: calc(100% + 52px);
  max-width: none;
  flex-shrink: 0;
  margin: -30px -26px 20px;
}
.card-photo img,
body .elementor .mbb-sec .card-photo img {
  display: block; width: 100%; height: 190px; object-fit: cover;
  border-radius: calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;
}
.cardcol:hover .card-photo img { filter: saturate(1.08); }

/* Icon headings (cico): blue glyph above the title */
h3[class*="cico-"],
body .elementor .mbb-sec .elementor-widget[class*="cico-"] .elementor-heading-title { padding-top: 60px; position: relative; }
h3[class*="cico-"]::before,
body .elementor .mbb-sec .elementor-widget[class*="cico-"] .elementor-heading-title::before {
  content: ""; position: absolute; top: 0; left: 0;
  width: 44px; height: 44px;
  background-repeat: no-repeat; background-size: contain; background-position: center;
  filter: drop-shadow(0 3px 8px rgba(53, 87, 212, .28));
}
h3.cico-flame::before, body .elementor .cico-flame .elementor-heading-title::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233557D4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12 2.2c1.5 3-1.6 4.4.9 7 1.6 1.7 2.6 3 2.6 5a5.5 5.5 0 0 1-11 0c0-2.6 1.6-4 2.6-5.6.9-1.4 1.2-2.8.7-4.4 2 .5 2.8 1.6 3 3 .6-1.6.9-3.4 1.2-5z M12 12.5c.9 1.2 1.4 2 1.4 3.1a2.9 2.9 0 1 1-5.8 0c0-1.2.7-2 1.5-3.1'/></svg>"); }
h3.cico-ribs::before, body .elementor .cico-ribs .elementor-heading-title::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233557D4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6.5h16 M4 12h16 M4 17.5h16 M7.5 4v16 M12 4v16 M16.5 4v16'/></svg>"); }
h3.cico-pig::before, body .elementor .cico-pig .elementor-heading-title::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233557D4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M5.5 10.5C4 10 3 8.5 3.2 6.8c1.7-.2 3 .4 3.8 1.5 M18.5 10.5c1.5-.5 2.5-2 2.3-3.7-1.7-.2-3 .4-3.8 1.5 M12 4.5c4.7 0 8 3.2 8 7.4 0 4.3-3.3 7.6-8 7.6s-8-3.3-8-7.6c0-4.2 3.3-7.4 8-7.4z M9.3 12.6a2.7 2 0 1 0 5.4 0 2.7 2 0 1 0-5.4 0 M11 12.6h.01 M13.6 12.6h.01 M8.2 9.2h.01 M15.8 9.2h.01'/></svg>"); }
h3.cico-wing::before, body .elementor .cico-wing .elementor-heading-title::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233557D4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M14.5 3.5a6 6 0 0 1 6 6c0 3.5-2.7 6-6.2 6l-3 .1-3.6 3.6a1.7 1.7 0 0 1-2.9-1c-.06-.6.2-1.2.6-1.6l.9-.9c-.9-.1-1.6-.9-1.6-1.8 0-.5.2-1 .5-1.3L9 8.8a7.6 7.6 0 0 1 5.5-5.3z M8.5 15.5l-1.5-1.5'/></svg>"); }
h3.cico-pin::before, body .elementor .cico-pin .elementor-heading-title::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233557D4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21.5s7-6.2 7-11.5a7 7 0 1 0-14 0c0 5.3 7 11.5 7 11.5z M12 12.6a2.6 2.6 0 1 0 0-5.2 2.6 2.6 0 0 0 0 5.2z'/></svg>"); }
h3.cico-phone::before, body .elementor .cico-phone .elementor-heading-title::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233557D4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M7 3.5h3l1.5 4.5-2.2 1.7a12.5 12.5 0 0 0 5 5L16 12.5l4.5 1.5v3a2 2 0 0 1-2.2 2A16.5 16.5 0 0 1 3 5.7 2 2 0 0 1 5 3.5z'/></svg>"); }
h3.cico-truck::before, body .elementor .cico-truck .elementor-heading-title::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233557D4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M2.5 6.5h12v10h-12z M14.5 10h4l3 3v3.5h-7 M6 19.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4z M17.5 19.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4z'/></svg>"); }
h3.cico-wood::before, body .elementor .cico-wood .elementor-heading-title::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233557D4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M4 16.5h10 M4 19.5h13 M12 2.5c1.3 2.4-1.3 3.5.7 5.6 1.3 1.3 2.1 2.4 2.1 4a4.4 4.4 0 0 1-8.8 0c0-2 1.3-3.2 2.1-4.4.7-1.1 1-2.2.6-3.5 1.6.4 2.2 1.3 2.4 2.4.5-1.3.7-2.7.9-4.1'/></svg>"); }
h3.cico-bowl::before, body .elementor .cico-bowl .elementor-heading-title::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233557D4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M3.5 11.5h17c0 3.5-2.4 6.4-5.7 7.4l.2 1.6H9l.2-1.6a7.9 7.9 0 0 1-5.7-7.4z M8 8.5c0-1.2 1-1.5 1-2.6 0-.6-.3-1-.6-1.4 M12.5 8.5c0-1.2 1-1.5 1-2.6 0-.6-.3-1-.6-1.4 M17 8.5c0-1.2 1-1.5 1-2.6 0-.6-.3-1-.6-1.4'/></svg>"); }
h3.cico-note::before, body .elementor .cico-note .elementor-heading-title::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233557D4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M9 18.5a2.8 2.8 0 1 1-5.6 0 2.8 2.8 0 0 1 5.6 0z M20 16a2.8 2.8 0 1 1-5.6 0 2.8 2.8 0 0 1 5.6 0z M9 18.5V6.2l11-2.7V16 M9 9.7l11-2.7'/></svg>"); }
h3.cico-heart::before, body .elementor .cico-heart .elementor-heading-title::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233557D4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12 20.5S3.5 15 3.5 9.3A4.8 4.8 0 0 1 8.3 4.5c1.6 0 3 .8 3.7 2a4.4 4.4 0 0 1 3.7-2 4.8 4.8 0 0 1 4.8 4.8C20.5 15 12 20.5 12 20.5z'/></svg>"); }
h3.cico-star::before, body .elementor .cico-star .elementor-heading-title::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233557D4' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l2.5 5.6 6 .6-4.5 4.1 1.3 6-5.3-3.2-5.3 3.2 1.3-6L3.5 9.2l6-.6z'/></svg>"); }

/* Portion tag under meat cards (guard: same class sits on the Elementor
   widget wrapper, which must NOT get the pill box styles) */
.mbb-tag:not(.elementor-widget),
body .elementor .mbb-sec .mbb-tag .elementor-heading-title {
  display: inline-block;
  font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase;
  color: var(--pink-deep);
  background: var(--pink-soft);
  border: 1px solid rgba(188, 90, 73, .32);
  border-radius: 999px;
  padding: 7px 14px;
  margin-top: 2px;
}
body .elementor .mbb-sec .elementor-widget.mbb-tag { width: auto; }
body .elementor .mbb-sec .elementor-widget.mbb-tag .elementor-heading-title { line-height: 1; }

/* Row-level action buttons under a grid */
.mbb-sec.strip-actions { text-align: center; padding-top: 34px; }
.mbb-sec.strip-actions .mbb-btnrow { justify-content: center; margin-top: 0; }
body .elementor .strip-actions .elementor-widget-wrap { justify-content: center; text-align: center; }
body .elementor .strip-actions .elementor-widget.btn-inline { margin-inline: 7px; margin-top: 0; }

/* ------------------------------------------------------------ family packs */

.pack-card > .colwrap,
body .elementor .mbb-sec .pack-card > .elementor-widget-wrap {
  background: var(--paper-2);
  border: 1.5px solid rgba(188, 90, 73, .35);
  border-radius: 24px;
  box-shadow: var(--shadow-card);
  padding: 34px 28px 30px;
  text-align: center;
  height: 100%;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.pack-card:hover > .colwrap,
body .elementor .mbb-sec .pack-card:hover > .elementor-widget-wrap {
  transform: translateY(-4px);
  border-color: rgba(188, 90, 73, .65);
  box-shadow: 0 18px 40px rgba(35, 42, 63, .14);
}
body .elementor .mbb-sec .pack-card .elementor-widget-wrap { align-content: flex-start; }

.pack-tag, body .elementor .mbb-sec .pack-tag .elementor-heading-title {
  font-size: 12px; font-weight: 800; letter-spacing: .3em; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 0;
}
.pack-feeds, body .elementor .mbb-sec .pack-feeds .elementor-heading-title {
  font-family: var(--font-disp); font-weight: 400; text-transform: none; letter-spacing: .02em;
  font-size: clamp(30px, 3vw, 38px); color: var(--pink-deep);
  margin: 2px 0 0;
}
.pack-name, body .elementor .mbb-sec .pack-name .elementor-heading-title {
  font-family: var(--font-script); font-weight: 400; text-transform: none; letter-spacing: .01em;
  font-size: 23px; color: var(--blue);
  margin: 0 0 10px;
}
body .elementor .mbb-sec .elementor-widget.pack-tag,
body .elementor .mbb-sec .elementor-widget.pack-feeds { margin-bottom: 2px; }
.pack-card p, body .elementor .mbb-sec .pack-card .elementor-widget-text-editor { color: var(--ink-soft); font-size: 15.5px; }
.pack-feeds, body .elementor .mbb-sec .pack-feeds .elementor-heading-title { position: relative; display: block; }

/* ------------------------------------------------------- split & features */

.mbb-sec.split .mbb-container, .mbb-sec.feature .mbb-container,
body .elementor .mbb-sec.split > .elementor-container,
body .elementor .mbb-sec.feature > .elementor-container { display: flex; align-items: center; gap: 48px; }
.split-copy, .feature-copy { flex: 1.1 1 0; min-width: 0; }
.split-media-col, .feat-card { flex: 1 1 0; min-width: 0; }
body .elementor .mbb-sec.split > .elementor-container > .split-copy-col,
body .elementor .mbb-sec.feature > .elementor-container > .feature-copy-col { flex: 1.1 1 0; width: auto; min-width: 0; }
body .elementor .mbb-sec.split > .elementor-container > .split-media-col,
body .elementor .mbb-sec.feature > .elementor-container > .feat-card { flex: 1 1 0; width: auto; min-width: 0; }
.mbb-sec.media-left .mbb-container { flex-direction: row-reverse; }
body .elementor .mbb-sec.media-left > .elementor-container { flex-direction: row-reverse; }

.mbb-sec.split .split-copy p, .mbb-sec.feature .feature-copy p { max-width: 520px; }
body .elementor .mbb-sec.split .split-copy-col .elementor-widget-text-editor .elementor-widget-container,
body .elementor .mbb-sec.feature .feature-copy-col .elementor-widget-text-editor .elementor-widget-container { max-width: 520px; }

/* Alternate paper band */
.mbb-sec.tone-alt { background: var(--paper-3); border-block: 1px solid var(--line-lt-soft); }

/* Framed food photo — offset retro frame in brand pink */
.split-photo, body .elementor .mbb-sec .elementor-widget.split-photo { position: relative; }
.split-photo img, body .elementor .mbb-sec .split-photo img {
  display: block; width: 100%; height: auto; border-radius: 20px;
  box-shadow: 0 18px 44px rgba(35, 42, 63, .22);
  position: relative; z-index: 1;
}
.split-photo::after,
body .elementor .mbb-sec .elementor-widget.split-photo .elementor-widget-container::after {
  content: ""; position: absolute; inset: 14px -14px -14px 14px;
  border: 2px solid rgba(188, 90, 73, .45);
  border-radius: 22px;
  z-index: 0;
}
.tone-dark .split-photo::after,
body .elementor .mbb-sec.tone-dark .elementor-widget.split-photo .elementor-widget-container::after {
  border-color: rgba(127, 178, 255, .4);
}
body .elementor .mbb-sec .elementor-widget.split-photo .elementor-widget-container { position: relative; }

/* Inline cut tags (steak cuts, etc.) in copy */
.cut-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.cut-tags span {
  display: inline-block;
  font-size: 12.5px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
  color: var(--pink-deep); background: var(--pink-soft);
  border: 1px solid rgba(188, 90, 73, .32);
  border-radius: 999px; padding: 8px 15px;
}
body .elementor .mbb-sec .elementor-widget-text-editor .cut-tags { margin-bottom: 0; }

/* Feature list card */
.feat-card > .colwrap,
body .elementor .mbb-sec .feat-card > .elementor-widget-wrap {
  background: var(--paper-2);
  border: 1px solid var(--line-lt);
  border-radius: 22px;
  padding: 34px 32px;
  box-shadow: var(--shadow-card);
}

/* Icon lists (native Elementor widget + fallback ul) */
.mbb-list, body .elementor .mbb-sec .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; }
.mbb-list li, body .elementor .mbb-sec .elementor-icon-list-item {
  display: flex; align-items: baseline; gap: 12px;
  padding: 9px 0; color: var(--ink); font-size: 16px; font-weight: 600;
  border-bottom: 1px dashed rgba(35, 42, 63, .18);
}
.mbb-list li:last-child, body .elementor .mbb-sec .elementor-icon-list-item:last-child { border-bottom: 0; }
.mbb-list li::before { content: "\2605"; color: var(--pink-deep); font-size: 11px; }
body .elementor .mbb-sec .elementor-icon-list-icon,
body .elementor .mbb-sec .elementor-icon-list-icon i {
  color: var(--pink-deep); font-size: 11px; font-style: normal;
}
body .elementor .mbb-sec .elementor-icon-list-icon svg { fill: currentColor; width: 12px; height: auto; }
body .elementor .mbb-sec .elementor-icon-list-icon i::before { content: "\2605"; }
body .elementor .mbb-sec .elementor-icon-list-text { color: inherit; }
.tone-dark .mbb-list li,
body .elementor .mbb-sec.tone-dark .elementor-icon-list-item { color: var(--body-dk); border-bottom-color: rgba(244, 237, 208, .14); }
.tone-dark .mbb-list li::before,
body .elementor .mbb-sec.tone-dark .elementor-icon-list-icon i { color: var(--pink); }

/* --------------------------------------------------------------- neon art */

.illo-slot, body .elementor .mbb-sec .elementor-widget.illo-slot .elementor-widget-container { position: relative; }

.neon-sign {
  position: relative;
  border: 2px solid rgba(127, 178, 255, .5);
  border-radius: 28px;
  background:
    radial-gradient(120% 100% at 50% 0%, rgba(77, 126, 242, .14), transparent 60%),
    linear-gradient(180deg, #0D1120, #0A0D17);
  box-shadow:
    0 0 0 1px rgba(10, 12, 19, .8),
    0 0 34px rgba(77, 126, 242, .28),
    inset 0 0 60px rgba(77, 126, 242, .10);
  padding: clamp(26px, 3.4vw, 40px) clamp(20px, 2.6vw, 34px);
  text-align: center;
}
.neon-sign svg { display: block; margin-inline: auto; max-width: 100%; height: auto; }
.neon-sign .sign-logo {
  display: block; margin-inline: auto;
  width: min(400px, 86%); height: auto;
  filter: drop-shadow(0 6px 30px rgba(77, 126, 242, .35));
}
.neon-stroke {
  stroke: #9CC4FF; fill: none; stroke-width: 2.4;
  stroke-linecap: round; stroke-linejoin: round;
}
.neon-stroke-pink { stroke: #EFC4BC; fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.neon-fill-star { fill: #F4EDD0; }
.neon-art { filter: drop-shadow(0 0 5px rgba(127, 178, 255, .85)) drop-shadow(0 0 20px rgba(77, 126, 242, .5)); }
.neon-art-pink { filter: drop-shadow(0 0 5px rgba(239, 196, 188, .8)) drop-shadow(0 0 18px rgba(239, 196, 188, .35)); }

.neon-sign .sign-word {
  display: block;
  font-family: var(--font-body); font-weight: 800;
  font-size: 15px; letter-spacing: .42em; text-transform: uppercase;
  color: var(--cream); text-shadow: 0 0 14px rgba(244, 237, 208, .5);
  margin-top: 20px;
}
.neon-sign .sign-sub {
  display: block;
  font-family: var(--font-script); font-size: 21px; color: var(--neon);
  text-shadow: var(--glow-blue);
  margin-top: 8px;
}
.neon-sign .sign-stars { display: block; margin-top: 12px; color: var(--pink); letter-spacing: 14px; font-size: 12px;
  text-shadow: 0 0 10px rgba(239, 196, 188, .6); }

/* Hanging-sign variant used in the hero */
.hero-sign { transform: rotate(-1.6deg); }
.hero-sign::before, .hero-sign::after {
  content: ""; position: absolute; top: -46px; width: 2px; height: 46px;
  background: linear-gradient(180deg, transparent, rgba(127, 178, 255, .55));
}
.hero-sign::before { left: 22%; transform: rotate(6deg); }
.hero-sign::after { right: 22%; transform: rotate(-6deg); }

/* Sparks around hero sign */
.hero-shot { position: relative; }
.hero-shot .spark {
  position: absolute; color: var(--cream); opacity: .85;
  text-shadow: 0 0 10px rgba(244, 237, 208, .8), 0 0 26px rgba(127, 178, 255, .5);
  font-size: 15px; pointer-events: none;
}
.hero-shot .spark.s1 { top: -8px; left: 4%; }
.hero-shot .spark.s2 { top: 34%; right: -14px; font-size: 11px; color: var(--neon); }
.hero-shot .spark.s3 { bottom: 4%; left: -6px; font-size: 12px; color: var(--pink); }

/* Gentle neon flicker on the sign borders (fail-open: pure decoration) */
@keyframes mbb-flicker {
  0%, 100% { box-shadow: 0 0 0 1px rgba(10,12,19,.8), 0 0 34px rgba(77,126,242,.28), inset 0 0 60px rgba(77,126,242,.10); }
  50%      { box-shadow: 0 0 0 1px rgba(10,12,19,.8), 0 0 44px rgba(77,126,242,.38), inset 0 0 66px rgba(77,126,242,.14); }
}
html.js .neon-sign { animation: mbb-flicker 4.5s ease-in-out infinite; }

/* Neon-tube buzz on the guitar: brief irregular dips, like a real sign */
@keyframes mbb-neon-buzz {
  0%, 100% { opacity: 1; }
  71%   { opacity: 1; }
  71.5% { opacity: .5; }
  72%   { opacity: 1; }
  74%   { opacity: 1; }
  74.4% { opacity: .72; }
  75%   { opacity: 1; }
  92%   { opacity: 1; }
  92.4% { opacity: .6; }
  93%   { opacity: 1; }
}
html.js .neon-sign .gtr-flicker { animation: mbb-neon-buzz 6.5s linear infinite; }

/* Music notes drifting off the guitar */
@keyframes mbb-note-float {
  0%   { opacity: 0; transform: translateY(16px); }
  22%  { opacity: 1; }
  68%  { opacity: 1; }
  100% { opacity: 0; transform: translateY(-30px); }
}
html.js .neon-sign .note { animation: mbb-note-float 5.4s ease-in-out infinite; }
html.js .neon-sign .note.n2 { animation-delay: 1.8s; }
html.js .neon-sign .note.n3 { animation-delay: 3.6s; }

body.elementor-editor-active .neon-sign,
body.elementor-editor-active .neon-sign .gtr-flicker,
body.elementor-editor-active .neon-sign .note { animation: none; }
@media (prefers-reduced-motion: reduce) {
  html.js .neon-sign,
  html.js .neon-sign .gtr-flicker,
  html.js .neon-sign .note { animation: none; }
}

/* ------------------------------------------------------------------- steps */

.step-card > .colwrap,
body .elementor .mbb-sec .step-card > .elementor-widget-wrap {
  height: 100%;
  background: var(--paper-2);
  border: 1px solid var(--line-lt);
  border-radius: var(--radius);
  padding: 30px 28px;
  box-shadow: var(--shadow-card);
}
.step-num, body .elementor .mbb-sec .step-num .elementor-heading-title {
  font-family: var(--font-disp); font-weight: 400;
  font-size: 44px; color: var(--blue);
  text-transform: none; letter-spacing: .04em;
  margin-bottom: 6px;
}
.step-card p, body .elementor .mbb-sec .step-card .elementor-widget-text-editor { color: var(--ink-soft); font-size: 15.5px; }

/* ---------------------------------------------------------------- timeline */

/* Dashed rail behind the row: absolutely positioned, so it never becomes a
   grid item. Card backgrounds mask it, leaving dashes only in the gaps. */
.mbb-sec.tl-row > .mbb-container,
body .elementor .mbb-sec.tl-row > .elementor-container { position: relative; }
.mbb-sec.tl-row > .mbb-container::before,
body .elementor .mbb-sec.tl-row > .elementor-container::before {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  top: 0; left: var(--pad-x); right: var(--pad-x); height: 3px;
  background: repeating-linear-gradient(90deg,
              rgba(53, 87, 212, .35) 0 6px, transparent 6px 13px);
}
.tl-card, body .elementor .mbb-sec .tl-card { position: relative; z-index: 1; }
.tl-card > .colwrap,
body .elementor .mbb-sec .tl-card > .elementor-widget-wrap {
  height: 100%;
  background: var(--paper-2);
  border: 1px solid var(--line-lt);
  border-top: 3px solid var(--blue);
  border-radius: var(--radius);
  padding: 26px 26px 28px;
  box-shadow: var(--shadow-card);
}
.tl-year, body .elementor .mbb-sec .tl-year .elementor-heading-title {
  font-family: var(--font-disp); font-weight: 400;
  font-size: clamp(27px, 2.5vw, 36px); line-height: 1.04;
  color: var(--blue); text-transform: none; letter-spacing: .02em;
  margin-bottom: 2px;
}
.tl-place, body .elementor .mbb-sec .tl-place .elementor-heading-title {
  font-size: 11.5px; font-weight: 800; letter-spacing: .2em;
  text-transform: uppercase; color: var(--pink-deep);
  margin-bottom: 14px;
}
.tl-card h3,
body .elementor .mbb-sec .tl-card .elementor-widget-heading h3.elementor-heading-title {
  font-size: 20px;
}
.tl-card p, body .elementor .mbb-sec .tl-card .elementor-widget-text-editor {
  color: var(--ink-soft); font-size: 15.5px;
}
/* tighter widget rhythm inside a timeline card */
.tl-card .colwrap > * { margin-bottom: 8px; }
.tl-card .colwrap > *:last-child { margin-bottom: 0; }
body .elementor .mbb-sec .tl-card .elementor-widget:not(:last-child) { margin-bottom: 8px; }

/* ----------------------------------------------------------- photo gallery */

.mbb-sec.gallery-row > .mbb-container,
body .elementor .mbb-sec.gallery-row > .elementor-container { gap: 30px 26px; }

.photoframe > .colwrap,
body .elementor .mbb-sec .photoframe > .elementor-widget-wrap {
  height: 100%;
  background: var(--paper-2);
  border: 1px solid var(--line-lt);
  border-radius: var(--radius);
  padding: 14px 14px 16px;
  box-shadow: var(--shadow-card);
  transition: transform .22s ease, box-shadow .22s ease;
}
/* Album tilt — a hair off square, alternating down the wall. */
.photoframe:nth-child(odd) > .colwrap,
body .elementor .mbb-sec .photoframe:nth-child(odd) > .elementor-widget-wrap { transform: rotate(-.55deg); }
.photoframe:nth-child(even) > .colwrap,
body .elementor .mbb-sec .photoframe:nth-child(even) > .elementor-widget-wrap { transform: rotate(.5deg); }
.photoframe:hover > .colwrap,
body .elementor .mbb-sec .photoframe:hover > .elementor-widget-wrap {
  transform: translateY(-5px) rotate(0deg);
  box-shadow: 0 20px 44px rgba(35, 42, 63, .18);
}
.frame-photo img,
body .elementor .mbb-sec .frame-photo img {
  display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover;
  border-radius: calc(var(--radius) - 5px);
  background: var(--paper-3);
}
.frame-cap:not(.elementor-widget),
body .elementor .mbb-sec .frame-cap .elementor-heading-title {
  font-family: var(--font-body);
  font-size: 13px; font-weight: 700; letter-spacing: .04em;
  color: var(--ink-soft); text-align: center;
  margin: 0 2px;
}
.photoframe .colwrap > * { margin-bottom: 12px; }
.photoframe .colwrap > *:last-child { margin-bottom: 0; }
body .elementor .mbb-sec .photoframe .elementor-widget:not(:last-child) { margin-bottom: 12px; }
@media (prefers-reduced-motion: reduce) {
  .photoframe > .colwrap,
  body .elementor .mbb-sec .photoframe > .elementor-widget-wrap { transition: none; }
}

/* ------------------------------------------------------------- menu boards */

.mbb-sec.menu-board-sec { padding-block: 0 44px; scroll-margin-top: 150px; }
.mbb-sec.menu-board-sec:last-of-type { padding-bottom: var(--sec-pad); }

.menu-board { --bp-y: clamp(30px, 3.6vw, 44px); --bp-x: clamp(26px, 3.4vw, 46px); }
.menu-board > .colwrap,
body .elementor .mbb-sec .menu-board > .elementor-widget-wrap {
  background: var(--paper-2);
  border: 1px solid var(--line-lt);
  border-radius: 26px;
  box-shadow: var(--shadow-card);
  padding: var(--bp-y) var(--bp-x);
  overflow: hidden;
}

/* Category jump nav — sticky under the header */
.mbb-sec.menu-nav-sec { padding-block: 0 34px; }
.mnav {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 8px;
  padding: 10px;
  background: var(--paper-2);
  border: 1px solid var(--line-lt);
  border-radius: 999px;
  box-shadow: var(--shadow-card);
}
.mnav-link {
  display: inline-block; text-decoration: none;
  font-family: var(--font-body); font-weight: 800; font-size: 12.5px;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--ink-soft);
  padding: 11px 20px; border-radius: 999px;
  transition: background .18s ease, color .18s ease;
}
.mnav-link:hover { background: var(--pink-soft); color: var(--pink-deep); }
.mnav-link.is-active { background: var(--pink-deep); color: #FFF6EE; }
@media (max-width: 620px) {
  .mnav { border-radius: 20px; }
  .mnav-link { padding: 9px 14px; font-size: 11.5px; letter-spacing: .12em; }
}

/* Framed photo panel beside a board */
.menu-art-col > .colwrap,
body .elementor .mbb-sec .menu-art-col > .elementor-widget-wrap { position: relative; }
.board-photo, body .elementor .mbb-sec .elementor-widget.board-photo { position: relative; }
.board-photo img, body .elementor .mbb-sec .board-photo img {
  display: block; width: 100%; height: clamp(320px, 30vw, 400px);
  object-fit: cover; border-radius: 20px;
  box-shadow: 0 18px 44px rgba(35, 42, 63, .22);
  position: relative; z-index: 1;
}
.board-photo::after,
body .elementor .mbb-sec .elementor-widget.board-photo .elementor-widget-container::after {
  content: ""; position: absolute; inset: 14px -14px -14px 14px;
  border: 2px solid rgba(188, 90, 73, .45);
  border-radius: 22px; z-index: 0;
}
body .elementor .mbb-sec .elementor-widget.board-photo .elementor-widget-container { position: relative; }
.art-left .board-photo::after,
body .elementor .mbb-sec.art-left .elementor-widget.board-photo .elementor-widget-container::after {
  inset: 14px 14px -14px -14px;
}
.board-cap, body .elementor .mbb-sec .board-cap .elementor-heading-title {
  display: block; margin-top: 22px; text-align: center;
  font-family: var(--font-script); font-weight: 400;
  font-size: 19px; line-height: 1.4; letter-spacing: .01em;
  text-transform: none; color: var(--blue);
}

/* Category title chip — the pink brush block from their print menu */
h2.menu-chip, body .elementor .mbb-sec .menu-chip h2.elementor-heading-title {
  display: inline-block;
  font-family: var(--font-body); font-weight: 800;
  font-size: 19px; letter-spacing: .2em; text-transform: uppercase;
  color: #35251F;
  background: var(--pink);
  border-radius: 14px 5px 16px 6px / 12px 9px 13px 8px;
  padding: 11px 24px;
  transform: rotate(-1.2deg);
  box-shadow: 0 6px 18px rgba(188, 90, 73, .2);
  margin-bottom: 8px;
}
/* Widget stays full-row (flex sibling lists must wrap below); the pink pill
   is the inline-block h2 inside it. */
body .elementor .mbb-sec .elementor-widget.menu-chip .elementor-widget-container { display: block; }
.menu-note, body .elementor .mbb-sec .menu-note .elementor-widget-container {
  color: var(--ink-soft); font-size: 15px; max-width: 640px;
}
body .elementor .mbb-sec .elementor-widget.menu-note:not(:last-child) { margin-bottom: 8px; }

/* The item list itself (a text-editor widget → stays editable) */
.mbb-menu { list-style: none; margin: 10px 0 0; padding: 0; }
.mbb-menu li {
  display: flex; align-items: baseline; gap: 14px;
  padding: 13px 2px;
}
.mbb-menu li::after { content: none; }
.mbb-menu li strong {
  font-family: var(--font-body); font-weight: 800; font-size: 15.5px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--ink);
  order: 0;
}
.mbb-menu li::before {
  content: ""; order: 1; flex: 1;
  border-bottom: 2px dotted rgba(35, 42, 63, .28);
  transform: translateY(-4px);
  min-width: 24px;
}
.mbb-menu li em {
  order: 2;
  font-style: normal; font-weight: 800; font-size: 13px;
  letter-spacing: .12em; text-transform: uppercase; color: var(--pink-deep);
  text-align: right; white-space: nowrap;
}
body .elementor .mbb-sec .elementor-widget-text-editor .mbb-menu li { margin: 0; }

/* Two-column boards */
.menu-half { flex: 1 1 46%; }
.menu-board .board-cols { display: flex; gap: 8px 56px; flex-wrap: wrap; }
body .elementor .mbb-sec .elementor-widget.menu-list-half {
  width: calc(50% - 28px); min-width: 260px; flex-grow: 1;
}
body .elementor .mbb-sec .elementor-widget.menu-list-half + .elementor-widget.menu-list-half { margin-left: 56px; }
@media (max-width: 760px) {
  body .elementor .mbb-sec .elementor-widget.menu-list-half { width: 100%; }
  body .elementor .mbb-sec .elementor-widget.menu-list-half + .elementor-widget.menu-list-half { margin-left: 0; }
}

/* Board with a side panel */
.mbb-sec.menu-with-art.art-left .mbb-container,
body .elementor .menu-with-art.art-left > .elementor-container { flex-direction: row-reverse; }
.mbb-sec.menu-with-art .mbb-container,
body .elementor .menu-with-art > .elementor-container { display: flex; align-items: center; gap: 40px; }
.menu-board-col { flex: 1.45 1 0; min-width: 0; }
.menu-art-col { flex: 1 1 0; min-width: 0; }
body .elementor .menu-with-art > .elementor-container > .menu-board-col { flex: 1.45 1 0; width: auto; min-width: 0; }
body .elementor .menu-with-art > .elementor-container > .menu-art-col { flex: 1 1 0; width: auto; min-width: 0; }
@media (max-width: 1024px) {
  .mbb-sec.menu-with-art .mbb-container,
  body .elementor .menu-with-art > .elementor-container { flex-wrap: wrap; }
  .menu-board-col, .menu-art-col,
  body .elementor .menu-with-art > .elementor-container > .menu-board-col,
  body .elementor .menu-with-art > .elementor-container > .menu-art-col { flex: 1 1 100%; }
  .menu-art-col,
  body .elementor .menu-with-art > .elementor-container > .menu-art-col { max-width: 480px; margin-inline: auto; }
}

/* Note strip under the menu hero */
.mbb-sec.note-strip { padding-block: 0 50px; }
.note-strip .note-inner > .colwrap,
body .elementor .note-strip .note-inner > .elementor-widget-wrap {
  border: 1.5px dashed rgba(188, 90, 73, .5);
  border-radius: 16px;
  background: var(--pink-soft);
  padding: 18px 26px;
  text-align: center;
}
.note-strip p, body .elementor .note-strip .elementor-widget-text-editor { color: var(--ink); font-size: 15.5px; }
.note-strip strong { color: var(--pink-deep); }

/* ----------------------------------------------------------------- contact */

.mbb-sec.contact-wrap .mbb-container,
body .elementor .contact-wrap > .elementor-container { display: flex; align-items: stretch; gap: 26px; }
.contact-form-col, .contact-info-col { flex: 1 1 0; min-width: 0; }
body .elementor .contact-wrap > .elementor-container > .contact-form-col,
body .elementor .contact-wrap > .elementor-container > .contact-info-col { flex: 1 1 0; width: auto; min-width: 0; }

.contact-form-col > .colwrap,
body .elementor .contact-wrap .contact-form-col > .elementor-widget-wrap {
  background: var(--paper-2);
  border: 1px solid var(--line-lt);
  border-radius: 22px;
  padding: 36px 32px;
  box-shadow: var(--shadow-card);
  height: 100%;
}

/* Details panel stays a neon sign — the one nod to the juke joint here */
.contact-info-col > .colwrap,
body .elementor .contact-wrap .contact-info-col > .elementor-widget-wrap {
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(77, 126, 242, .17), transparent 60%),
    linear-gradient(180deg, #0D1120, #0A0D17);
  border: 2px solid rgba(127, 178, 255, .45);
  border-radius: 22px;
  box-shadow: 0 0 30px rgba(77, 126, 242, .22), inset 0 0 50px rgba(77, 126, 242, .08);
  padding: 36px 32px;
  height: 100%;
}
.contact-info-col h3,
body .elementor .contact-wrap .contact-info-col .elementor-heading-title { color: var(--cream); }
.contact-info-col strong,
body .elementor .contact-wrap .contact-info-col strong {
  display: block;
  font-size: 12px; font-weight: 800; letter-spacing: .3em; text-transform: uppercase;
  color: var(--pink); margin-bottom: 2px;
}
.contact-info-col p, body .elementor .contact-wrap .contact-info-col .elementor-widget-text-editor p {
  color: var(--cream); font-size: 16.5px; margin-bottom: 20px;
}
.contact-info-col a,
body .elementor .contact-wrap .contact-info-col a { color: var(--neon); text-decoration: none; text-shadow: 0 0 10px rgba(127, 178, 255, .4); }
.contact-info-col a:hover,
body .elementor .contact-wrap .contact-info-col a:hover { color: var(--cream-hi); }

/* Form */
.mbb-form .form-row { margin-bottom: 18px; }
.mbb-form label {
  display: block; font-size: 12px; font-weight: 800;
  letter-spacing: .22em; text-transform: uppercase; color: var(--ink-soft);
  margin-bottom: 8px;
}
.mbb-form input[type="text"], .mbb-form input[type="email"], .mbb-form textarea {
  width: 100%; box-sizing: border-box;
  background: #FFFFFF;
  border: 1px solid var(--line-lt);
  border-radius: 12px;
  color: var(--ink);
  font-family: var(--font-body); font-size: 16px;
  padding: 13px 16px;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.mbb-form textarea { min-height: 130px; resize: vertical; }
.mbb-form input:focus, .mbb-form textarea:focus {
  outline: none; border-color: rgba(53, 87, 212, .7);
  box-shadow: 0 0 0 3px rgba(53, 87, 212, .15);
}
.mbb-form button {
  cursor: pointer;
  font-family: var(--font-body); font-size: 13px; font-weight: 800;
  letter-spacing: .14em; text-transform: uppercase;
  background: var(--pink-deep); color: #FFF6EE;
  border: 1px solid var(--pink-deep); border-radius: 12px;
  padding: 16px 30px;
  box-shadow: 0 8px 22px rgba(188, 90, 73, .28);
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.mbb-form button:hover { background: #A34A3B; border-color: #A34A3B; transform: translateY(-2px); }
.mbb-form .hp-field { position: absolute; left: -9999px; }
.form-notice { border-radius: 12px; padding: 14px 18px; margin-bottom: 18px; font-size: 15px; }
.form-notice.ok { background: rgba(53, 87, 212, .1); border: 1px solid rgba(53, 87, 212, .4); color: var(--ink); }
.form-notice.err { background: rgba(188, 90, 73, .1); border: 1px solid rgba(188, 90, 73, .45); color: var(--pink-deep); }

/* ---------------------------------------------------------------- cta band */

.mbb-sec.cta-band {
  text-align: center;
  background:
    radial-gradient(70% 130% at 50% 110%, rgba(77, 126, 242, .22), transparent 65%),
    linear-gradient(180deg, var(--night-2), #0A0D16);
  border-block: 1px solid var(--line-soft);
  overflow: hidden;
  color: var(--body-dk);
}
.mbb-sec.cta-band::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image:
    radial-gradient(1.4px 1.4px at 18% 30%, rgba(244,237,208,.4), transparent 100%),
    radial-gradient(1.2px 1.2px at 80% 20%, rgba(127,178,255,.45), transparent 100%),
    radial-gradient(1.3px 1.3px at 62% 68%, rgba(244,237,208,.3), transparent 100%);
}
.mbb-sec.cta-band .mbb-container, body .elementor .cta-band > .elementor-container { position: relative; z-index: 1; }
body .elementor .cta-band .elementor-widget-wrap { text-align: center; justify-content: center; }
.cta-band h2,
body .elementor .cta-band .elementor-widget-heading h2.elementor-heading-title { color: var(--cream); }
.cta-band .script-line,
body .elementor .cta-band .script-line .elementor-heading-title { color: var(--neon); text-shadow: var(--glow-blue); }
.cta-band .sec-head-copy, body .elementor .cta-band .elementor-widget-text-editor .elementor-widget-container {
  max-width: 540px; margin-inline: auto; color: var(--muted-dk);
}
body .elementor .cta-band .elementor-widget-text-editor { color: var(--muted-dk); }
.cta-band .mbb-btnrow { justify-content: center; }
body .elementor .cta-band .elementor-widget.btn-inline { margin-inline: 7px; float: none; }

/* ------------------------------------------------------------------ footer */

.mbb-footer { border-top: 1px solid var(--line-soft); background: #070910; }
.foot-main { padding: clamp(48px, 7vw, 76px) 0 40px; }
.foot-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 40px; }
.foot-brand img { width: 190px; height: auto; margin-bottom: 4px; }
.foot-brand p { color: var(--muted-dk); font-size: 15px; max-width: 300px; margin: 12px 0 18px; }
.foot-contact { list-style: none; margin: 0; padding: 0; }
.foot-contact li { padding: 3px 0; color: var(--body-dk); font-size: 15px; }
.foot-contact a { color: var(--body-dk); text-decoration: none; }
.foot-contact a:hover { color: var(--neon); text-shadow: 0 0 10px rgba(127, 178, 255, .6); }
.mbb-footer h4 {
  font-family: var(--font-body);
  color: var(--pink); font-size: 12.5px; font-weight: 800;
  letter-spacing: .3em; text-transform: uppercase; margin: 6px 0 16px;
}
.mbb-footer ul { list-style: none; margin: 0; padding: 0; }
.mbb-footer ul li { padding: 5px 0; }
.mbb-footer ul a { color: var(--body-dk); text-decoration: none; font-size: 15px; }
.mbb-footer ul a:hover { color: var(--neon); text-shadow: 0 0 10px rgba(127, 178, 255, .6); }

.foot-sign {
  border: 1.5px solid rgba(127, 178, 255, .5);
  border-radius: 20px;
  background: radial-gradient(120% 100% at 50% 0%, rgba(77, 126, 242, .15), transparent 60%), #0A0D17;
  box-shadow: 0 0 26px rgba(77, 126, 242, .22), inset 0 0 40px rgba(77, 126, 242, .08);
  padding: 26px 24px; text-align: center;
}
.foot-sign .fs-stars { color: var(--pink); letter-spacing: 12px; font-size: 11px; text-shadow: 0 0 8px rgba(239,196,188,.6); }
.foot-sign .fs-line1 {
  display: block; font-family: var(--font-body); font-weight: 800;
  letter-spacing: .3em; text-transform: uppercase; font-size: 14px;
  color: var(--cream); text-shadow: 0 0 12px rgba(244, 237, 208, .4);
  margin-top: 10px;
}
.foot-sign .fs-line2 {
  display: block; font-family: var(--font-script); font-size: 22px;
  color: var(--neon); text-shadow: var(--glow-blue); margin-top: 6px;
}

.foot-bottom { border-top: 1px solid var(--line-soft); padding: 18px 0; }
.foot-bottom .mbb-container { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.foot-bottom span, .foot-bottom a { color: var(--muted-dk); font-size: 13px; letter-spacing: .04em; text-decoration: none; }
.foot-bottom a:hover { color: var(--neon); }

@media (max-width: 980px) {
  .foot-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
  .foot-grid { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------ blog & plain */

.mbb-sec.article-pad { padding-top: 40px; }
.single-article, .page-plain .entry-content { max-width: 780px; margin-inline: auto; }
.entry-content { color: var(--ink); }
.entry-content h2, .entry-content h3 { color: var(--ink); }
.entry-thumb img { border-radius: var(--radius); }
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.post-card {
  background: var(--paper-2);
  border: 1px solid var(--line-lt); border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  overflow: hidden; display: flex; flex-direction: column;
}
.post-card .thumb { display: block; background: var(--paper-3); min-height: 40px; }
.post-card .thumb img { width: 100%; height: 190px; object-fit: cover; display: block; }
.post-body { padding: 22px 22px 24px; }
.post-meta { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--pink-deep); }
.post-body h2 { font-family: var(--font-body); font-size: 19px; font-weight: 800; text-transform: none; letter-spacing: 0; margin: 8px 0 8px; }
.post-body h2 a { color: var(--ink); text-decoration: none; }
.post-body h2 a:hover { color: var(--blue); }
.excerpt { color: var(--ink-soft); font-size: 15px; }
.read-more { color: var(--pink-deep); text-decoration: none; font-weight: 700; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; }
.read-more:hover { color: var(--blue-deep); }
.mbb-pagination { margin-top: 34px; text-align: center; }
.mbb-pagination .page-numbers {
  display: inline-block; padding: 9px 15px; margin: 0 3px;
  border: 1px solid var(--line-lt); border-radius: 10px;
  color: var(--ink); text-decoration: none; font-size: 14px;
}
.mbb-pagination .page-numbers.current { background: var(--pink-deep); border-color: var(--pink-deep); color: #FFF6EE; }
.empty-state { max-width: 560px; margin-inline: auto; text-align: center; }

/* Blog hero rides the dark hero styles */
.blog-hero p { color: var(--body-dk); }

@media (max-width: 980px) { .blog-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .blog-grid { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------- 404 */

.err-wrap { text-align: center; padding-block: 40px; }
.err-wrap .big {
  font-family: var(--font-disp); font-size: clamp(90px, 16vw, 180px);
  color: var(--blue); line-height: 1;
  text-shadow: 0 4px 0 rgba(35, 42, 63, .08);
}
.err-wrap h1 { font-size: clamp(28px, 4vw, 44px); }
.err-wrap p { color: var(--ink-soft); }
.err-wrap .mbb-btnrow { justify-content: center; }

/* --------------------------------------------------- reveal (fail open) */

.reveal { opacity: 1; transform: none; }
html.js .reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
html.js .reveal.in { opacity: 1; transform: none; }
body.elementor-editor-active .reveal,
body.elementor-editor-active .reveal.in { opacity: 1 !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) {
  html.js .reveal { opacity: 1; transform: none; transition: none; }
}

/* ------------------------------------------------------------- responsive */

@media (max-width: 1024px) {
  .mbb-sec.hero-home .mbb-container,
  body .elementor .hero-home > .elementor-container { flex-wrap: wrap; }
  .hero-copy, .hero-media,
  body .elementor .hero-home > .elementor-container > .hero-copy-col,
  body .elementor .hero-home > .elementor-container > .hero-media-col { flex: 1 1 100%; }
  .hero-media, body .elementor .hero-home > .elementor-container > .hero-media-col { max-width: 560px; margin-inline: auto; }
  .mbb-sec.split .mbb-container, .mbb-sec.feature .mbb-container,
  body .elementor .mbb-sec.split > .elementor-container,
  body .elementor .mbb-sec.feature > .elementor-container { flex-wrap: wrap; }
  .split-copy, .feature-copy, .split-media-col, .feat-card,
  body .elementor .mbb-sec.split > .elementor-container > .split-copy-col,
  body .elementor .mbb-sec.feature > .elementor-container > .feature-copy-col,
  body .elementor .mbb-sec.split > .elementor-container > .split-media-col,
  body .elementor .mbb-sec.feature > .elementor-container > .feat-card { flex: 1 1 100%; }
  .split-media-col,
  body .elementor .mbb-sec.split > .elementor-container > .split-media-col { max-width: 560px; margin-inline: auto; }
  .mbb-sec.grid-4 > .mbb-container, body .elementor .mbb-sec.grid-4 > .elementor-container { grid-template-columns: repeat(2, 1fr); }
  .mbb-sec.contact-wrap .mbb-container,
  body .elementor .contact-wrap > .elementor-container { flex-wrap: wrap; }
  .contact-form-col, .contact-info-col,
  body .elementor .contact-wrap > .elementor-container > .contact-form-col,
  body .elementor .contact-wrap > .elementor-container > .contact-info-col { flex: 1 1 100%; }
}
@media (max-width: 1024px) {
  /* rail only reads across a single row of cards */
  .mbb-sec.tl-row > .mbb-container::before,
  body .elementor .mbb-sec.tl-row > .elementor-container::before { display: none; }
}
@media (max-width: 720px) {
  .mbb-sec.grid-3 > .mbb-container, body .elementor .mbb-sec.grid-3 > .elementor-container { grid-template-columns: 1fr; }
  .mbb-sec.grid-2 > .mbb-container, body .elementor .mbb-sec.grid-2 > .elementor-container { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .mbb-sec.grid-4 > .mbb-container, body .elementor .mbb-sec.grid-4 > .elementor-container { grid-template-columns: 1fr; }
  .mbb-menu li { flex-wrap: wrap; row-gap: 2px; }
  .mbb-menu li::before { display: none; }
  .mbb-menu li em { flex-basis: 100%; text-align: left; white-space: normal; }
  .mbb-brand .b-memphis { font-size: 18px; }
  .mbb-brand .b-blues { font-size: 20px; }
  .split-photo::after,
  body .elementor .mbb-sec .elementor-widget.split-photo .elementor-widget-container::after,
  .board-photo::after,
  body .elementor .mbb-sec .elementor-widget.board-photo .elementor-widget-container::after { display: none; }
}

/* Album wall: 2-up on tablet and phone, single column only when very narrow.
   Declared after the generic grid breakpoints so it wins over grid-3 -> 1fr. */
@media (max-width: 1024px) and (min-width: 361px) {
  /* 2-up on tablet and phone: six full-width portraits would turn the page
     into an endless scroll. */
  .mbb-sec.gallery-row > .mbb-container,
  body .elementor .mbb-sec.gallery-row > .elementor-container { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .photoframe > .colwrap,
  body .elementor .mbb-sec .photoframe > .elementor-widget-wrap { padding: 10px 10px 12px; }
  .mbb-sec.gallery-row > .mbb-container,
  body .elementor .mbb-sec.gallery-row > .elementor-container { gap: 18px 14px; }
  .frame-cap:not(.elementor-widget),
  body .elementor .mbb-sec .frame-cap .elementor-heading-title { font-size: 12px; letter-spacing: 0; }
  .photoframe .colwrap > * { margin-bottom: 9px; }
  body .elementor .mbb-sec .photoframe .elementor-widget:not(:last-child) { margin-bottom: 9px; }
}
@media (max-width: 360px) {
  .mbb-sec.gallery-row > .mbb-container,
  body .elementor .mbb-sec.gallery-row > .elementor-container { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------- wide screens
   Above ~1440px the 1200px column starts floating in empty paper. Grow the
   container, the section rhythm and the display type with the monitor — prose
   keeps its own max-widths, so line length never runs away. */
@media (min-width: 1440px) {
  :root {
    --container: 1320px;
    --pad-x: 32px;
    --sec-pad: clamp(76px, 7vw, 116px);
  }
  .mbb-sec.hero { padding-block: clamp(84px, 8vw, 134px); }
  .mbb-sec.hero-page { padding-block: clamp(74px, 6.5vw, 110px); }
  h1, body .elementor .mbb-sec .elementor-widget-heading h1.elementor-heading-title {
    font-size: clamp(66px, 4.9vw, 78px);
  }
  h2, body .elementor .mbb-sec .elementor-widget-heading h2.elementor-heading-title {
    font-size: clamp(42px, 3.3vw, 50px);
  }
  .script-line, body .elementor .mbb-sec .script-line .elementor-heading-title {
    font-size: clamp(34px, 2.6vw, 40px);
  }
  .sec-head-copy, body .elementor .sec-head .elementor-widget-text-editor { font-size: 18px; }
  .sec-head-copy,
  body .elementor .sec-head .elementor-widget-text-editor .elementor-widget-container { max-width: 760px; }
  .mbb-sec[class*="grid-"] > .mbb-container,
  body .elementor .mbb-sec[class*="grid-"] > .elementor-container { gap: 28px; }
  .mbb-sec.hero-home .mbb-container,
  body .elementor .hero-home > .elementor-container { gap: 60px; }
}
@media (min-width: 1700px) {
  :root { --container: 1440px; --pad-x: 40px; }
  body { font-size: 17.5px; }
  body .elementor .mbb-sec .elementor-widget-text-editor { font-size: 17.5px; }
  .cardcol p, body .elementor .mbb-sec .cardcol .elementor-widget-text-editor,
  .tl-card p, body .elementor .mbb-sec .tl-card .elementor-widget-text-editor,
  .pack-card p, body .elementor .mbb-sec .pack-card .elementor-widget-text-editor,
  .step-card p, body .elementor .mbb-sec .step-card .elementor-widget-text-editor { font-size: 16.5px; }
  .hero-copy p,
  body .elementor .hero .hero-copy-col .elementor-widget-text-editor .elementor-widget-container { max-width: 600px; }
  .mbb-sec.split .split-copy p, .mbb-sec.feature .feature-copy p,
  body .elementor .mbb-sec.split .split-copy-col .elementor-widget-text-editor .elementor-widget-container,
  body .elementor .mbb-sec.feature .feature-copy-col .elementor-widget-text-editor .elementor-widget-container { max-width: 580px; }
  .card-photo img, body .elementor .mbb-sec .card-photo img { height: 215px; }
  /* Snapshots are scans — stop them ballooning past their source resolution. */
  .mbb-sec.gallery-row > .mbb-container,
  body .elementor .mbb-sec.gallery-row > .elementor-container { max-width: 1260px; }
}
@media (min-width: 2100px) {
  :root { --container: 1560px; --pad-x: 56px; }
  .mbb-sec.hero { padding-block: 150px; }
}

/* Buttons: no transform jump inside the editor (avoids ghost offsets) */
body.elementor-editor-active .mbb-sec .elementor-widget-button .elementor-button { transition: none; }
