/* JPRM Menu – reset */
.jp-menu { margin: 0; padding: 0; list-style: none; }
.jp-menu li { list-style-type: none !important; margin: 0; padding: 0; }
.jp-menu > li::marker { content: ''; } /* kill stubborn bullets */
.jp-menu__meta {list-style-type: none}

/* Structure */
.jp-menu__item { margin: 0 0 .9rem 0; }
.jp-menu__inner { display: grid; grid-template-columns: 1fr auto; gap: .4rem .8rem; align-items: start; }
.jp-menu__content { min-width: 0; }
.jp-menu__title { margin: 0; }
.jp-menu__desc { opacity: .85; }
.jp-menu__badges-legend { margin: 1.5rem 0 0; text-align: center; }
.jp-menu__badges-legend-title { margin: 0 0 .6rem; }
.jp-menu__badges-legend-items { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .5rem 1rem; }
.jp-menu__badges-legend-item { display: inline-flex; align-items: center; gap: .35rem; }
.jp-menu__item-separator { margin: .45rem 0 .8rem; color: var(--jprm-muted, inherit); font-style: italic; text-align: center; }
.jp-menu__item-separator--matrix { grid-column: 1 / -1; }

/* =====================================================================
   Design presets
   These are a base layer. Elementor Style-tab selectors can override them.
   ===================================================================== */
.jprm-menu-preset {
  --jprm-accent: currentColor;
  --jprm-text: inherit;
  --jprm-muted: #626262;
  --jprm-surface: transparent;
  --jprm-border: transparent;
  --jprm-radius: 0;
  color: var(--jprm-text);
}

.jprm-menu-preset .jp-menu-grid {
  background: var(--jprm-surface);
  color: var(--jprm-text);
}
.jprm-menu-preset .jp-menu__meta--global { margin: 0 0 2rem; text-align: center; }
.jprm-menu-preset .jp-menu__meta--global .jp-menu__title { color: var(--jprm-accent); }
.jprm-menu-preset .jp-menu__daily-meta { display: flex; justify-content: center; align-items: baseline; flex-wrap: wrap; gap: .5rem 1rem; margin-top: .75rem; }
.jprm-menu-preset .jp-menu__daily-date { color: var(--jprm-muted); }
.jprm-menu-preset .jp-menu__daily-price { color: var(--jprm-accent); font-weight: 700; }
.jprm-menu-preset .jp-menu__daily-meta--price-below { flex-direction: column; align-items: center; }
.jprm-menu-preset .jp-menu__meta--bottom { margin: 2rem 0 0; text-align: center; }
.jprm-menu-preset .jp-menu__meta-desc,
.jprm-menu-preset .jp-menu__desc,
.jprm-menu-preset .jp-section__desc { color: var(--jprm-muted); }
.jprm-menu-preset .jp-menu__section-box { border-radius: var(--jprm-radius); }

/* Classic — warm, familiar restaurant typography. */
.jprm-preset--classic {
  --jprm-accent: #74452f;
  --jprm-text: #29231f;
  --jprm-muted: #6f625a;
  --jprm-surface: #fffdf8;
  --jprm-border: #d8c8b8;
  --jprm-radius: 2px;
  font-family: Georgia, 'Times New Roman', serif;
}
.jprm-preset--classic .jp-menu-grid { padding: clamp(1.25rem, 3vw, 2.5rem); border: 1px solid var(--jprm-border); }
.jprm-preset--classic .jp-section__title { color: var(--jprm-accent); border-bottom: 1px solid var(--jprm-border); padding-bottom: .35rem; letter-spacing: .04em; text-transform: uppercase; }
.jprm-preset--classic .jp-menu__title { font-weight: 600; }
.jprm-preset--classic .jp-menu__amount { color: var(--jprm-accent); }

/* Modern — clean spacing, sans-serif type and subtle cards. */
.jprm-preset--modern {
  --jprm-accent: #176b68;
  --jprm-text: #172322;
  --jprm-muted: #60706e;
  --jprm-surface: #f4f8f7;
  --jprm-border: #d8e4e2;
  --jprm-radius: 12px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.jprm-preset--modern .jp-menu-grid { padding: clamp(1rem, 2.5vw, 2rem); }
.jprm-preset--modern .jp-menu__section-box { background: #fff; border: 1px solid var(--jprm-border); padding: 1.25rem; box-shadow: 0 8px 24px rgba(23, 107, 104, .07); }
.jprm-preset--modern .jp-menu--col > .jp-menu__section-box:not(:last-child) { margin-bottom: 1.5rem; }
.jprm-preset--modern .jp-section__title { color: var(--jprm-accent); font-weight: 700; letter-spacing: -.015em; }
.jprm-preset--modern .jp-menu__title { font-weight: 650; }
.jprm-preset--modern .jp-menu__amount { color: var(--jprm-accent); font-weight: 700; }
.jprm-preset--modern .jp-badge { background: #e7f2f0; border-radius: 999px; padding: .15em .5em; }

/* Elegant — high contrast, restrained gold accents and generous spacing. */
.jprm-preset--elegant {
  --jprm-accent: #9a7428;
  --jprm-text: #171717;
  --jprm-muted: #6a655c;
  --jprm-surface: #fff;
  --jprm-border: #c7ad73;
  --jprm-radius: 0;
  font-family: 'Cormorant Garamond', Garamond, Georgia, serif;
}
.jprm-preset--elegant .jp-menu-grid { padding: clamp(1.5rem, 4vw, 3.5rem); border-top: 1px solid var(--jprm-border); border-bottom: 1px solid var(--jprm-border); }
.jprm-preset--elegant .jp-menu__meta--global .jp-menu__title { letter-spacing: .12em; text-transform: uppercase; }
.jprm-preset--elegant .jp-section__title { color: var(--jprm-accent); font-weight: 500; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.jprm-preset--elegant .jp-menu__item { margin-bottom: 1.15rem; }
.jprm-preset--elegant .jp-menu__title { font-size: 1.06em; font-weight: 600; letter-spacing: .015em; }
.jprm-preset--elegant .jp-menu__amount { color: var(--jprm-accent); font-weight: 600; }

/* Price group */
.jp-menu__pricegroup { display: flex; flex-direction: column; gap: .25rem; text-align: right; }

/* One price line (price+currency wrapper) */
.jp-menu__price {
  display: inline-flex;
  align-items: center;
  gap: 0;                    /* spacing controlled via classes below */
  justify-content: flex-end;
  line-height: 1.2;
}

/* Amount text */
.jp-menu__amount { font-weight: 600; white-space: nowrap; }

/* Label + icon */
.jp-menu__label { display: inline-flex; gap: .35em; align-items: center; white-space: nowrap; opacity: .95; }
.jp-menu__icon {
  width: 1.1em !important;
  height: 1.1em !important;
  max-width: 1.1em !important;
  max-height: 1.1em !important;
  object-fit: contain;
  vertical-align: -0.2em;
  display: inline-block;
  border-radius: 2px;
}
/* If WP injects width/height attributes, force them down */
.jp-menu__icon[width], .jp-menu__icon[height] { width: 1.1em !important; height: 1.1em !important; }

/* Horizontal layout for label + price rows */
.jp-menu__pricegroup .jp-menu__row { display: inline-flex; align-items: center; gap: .35em; flex-wrap: nowrap; }
.jp-menu__pricegroup .jp-menu__price,
.jp-menu__pricegroup .jp-menu__label { display: inline-flex; align-items: center; }

/* Currency order + spacing (class-driven, no entities) */
/* Before symbol */
.jp-menu__price.jp-currency-pos-before .jp-menu__currency { order: 0; }
.jp-menu__price.jp-currency-pos-before .jp-menu__amount   { order: 1; }
/* After symbol */
.jp-menu__price.jp-currency-pos-after  .jp-menu__amount   { order: 0; }
.jp-menu__price.jp-currency-pos-after  .jp-menu__currency { order: 1; }
/* Spacing sizes */
.jp-menu__price.jp-currency-pos-before.jp-currency-sp-none   .jp-menu__currency { margin-right: 0; }
.jp-menu__price.jp-currency-pos-before.jp-currency-sp-thin   .jp-menu__currency { margin-right: .15em; }
.jp-menu__price.jp-currency-pos-before.jp-currency-sp-normal .jp-menu__currency { margin-right: .3em; }

.jp-menu__price.jp-currency-pos-after.jp-currency-sp-none    .jp-menu__currency { margin-left: 0; }
.jp-menu__price.jp-currency-pos-after.jp-currency-sp-thin    .jp-menu__currency { margin-left: .15em; }
.jp-menu__price.jp-currency-pos-after.jp-currency-sp-normal  .jp-menu__currency { margin-left: .3em; }

/* =====================================================================
   Multi-column wrapper (UNIFIED, variable-driven)
   PHP outputs:
     <div class="jp-menu-grid jp-menu-grid--cols-3" style="--jp-cols:3">
   ===================================================================== */
.jp-menu-grid {
  display: grid !important;
  grid-template-columns: repeat(var(--jp-cols, 1), minmax(0, 1fr));
  gap: var(--jp-gap, 24px);
}

/* Fallback helpers (match PHP classes) */
.jp-menu-grid--cols-1 { --jp-cols: 1; }
.jp-menu-grid--cols-2 { --jp-cols: 2; }
.jp-menu-grid--cols-3 { --jp-cols: 3; }

/* Responsive collapse */
@media (max-width: 992px) {
  .jp-menu-grid { --jp-cols: min(var(--jp-cols, 1), 2); }
}
@media (max-width: 768px) {
  .jp-menu-grid { --jp-cols: 1; }
}

/* Column UL should not fight the grid */
.jp-menu-grid .jp-menu--col {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Keep section blocks intact; avoid internal splitting by the browser */
.jp-menu__section-header,
.jp-menu__infoblock-li,
.jp-matrix,
.jp-inline,
.jp-inline-below,
.jp-menu__item {
  break-inside: avoid;
}

/* Section headers inside columns */
.jp-menu-grid.jp-menu-grid--section-columns {
  --jp-cols: var(--jp-section-base-cols, 1);
  grid-template-columns: minmax(0, 1fr);
}
@media (max-width: 992px) {
  .jp-menu-grid.jp-menu-grid--section-columns { --jp-cols: min(var(--jp-section-base-cols, 1), 2); }
}
@media (max-width: 768px) {
  /* Keep the responsive Elementor value (including Tablet = 2) instead of
     forcing section-heading layouts back to one column at this breakpoint. */
  .jp-menu-grid.jp-menu-grid--section-columns { --jp-cols: min(var(--jp-section-base-cols, 1), 2); }
}
.jp-menu-grid--section-columns .jp-menu__section-items {
  column-count: var(--jp-cols, 1);
  column-gap: var(--jp-item-column-gap, 24px);
  column-fill: balance;
}
/* Inline grids own their columns; do not fragment their parent wrapper with
   the legacy CSS multi-column flow. Matrix keeps the multi-column path below. */
.jp-menu-grid--section-columns .jp-menu__section-items:has(> .jp-inline),
.jp-menu-grid--section-columns .jp-menu__section-items:has(> .jp-inline-below) {
  column-count: 1;
  column-gap: 0;
  column-fill: auto;
}
/* Explicit groups avoid browser-dependent table fragmentation. The inner
   column-count exposes Elementor's responsive count to the balancing script. */
.jp-menu-grid--section-columns .jp-menu__section-items--matrix { column-count: auto; }
.jp-matrix-columns {
  display: grid;
  grid-template-columns: repeat(var(--jprm-matrix-group-count, 1), minmax(0, 1fr));
  column-count: var(--jp-cols, 1);
  gap: var(--jp-item-column-gap, 24px);
  align-items: start;
  min-width: 0;
}
.jp-matrix-columns > .jp-matrix { min-width: 0; }
.jp-menu-grid--section-columns .jp-inline,
.jp-menu-grid--section-columns .jp-inline-below {
  display: grid;
  column-count: 1;
  column-gap: 0;
  grid-template-columns: repeat(var(--jp-cols, 1), minmax(0, 1fr));
  grid-auto-rows: max-content;
  grid-auto-flow: row;
  column-gap: var(--jp-item-column-gap, 24px);
  row-gap: 0;
}
.jp-menu-grid--section-columns .jp-matrix {
  break-inside: auto;
}
@media (max-width: 992px) {
  .jp-menu-grid--section-columns .jp-inline,
  .jp-menu-grid--section-columns .jp-inline-below {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 768px) {
  .jp-menu-grid--section-columns .jp-inline,
  .jp-menu-grid--section-columns .jp-inline-below {
    grid-template-columns: 1fr;
  }
}
.jp-menu-grid--section-columns .jp-menu__item-separator {
  break-after: avoid;
}
.jp-menu-grid--section-columns .jp-matrix__row { break-inside: avoid; }
/* Table formatting keeps matrix prices aligned and each item row intact
   while allowing the table to fragment between item columns. */
@media (min-width: 768px) {
  .jp-menu-grid--section-columns .jp-matrix {
    display: table;
    width: 100%;
    border-spacing: 0;
  }
  .jp-menu-grid--section-columns .jp-matrix__row {
    display: table-row;
    break-inside: avoid;
  }
  .jp-menu-grid--section-columns .jp-matrix__row--header {
    display: table-header-group;
  }
  .jp-menu-grid--section-columns .jp-matrix__cell {
    display: table-cell;
    vertical-align: top;
  }
  .jp-menu-grid--section-columns .jp-matrix__cell:not(.jp-matrix__cell--item) {
    padding-inline-start: 1.25rem;
  }
}
.jp-menu__section-header { margin: 0 0 6px 0; padding: 0; }
.jp-section__title { margin: 0 0 2px 0; font-size: 1.05em; line-height: 1.2; }
.jp-section__desc  { margin: 0 0 8px 0; font-size: 0.95em; opacity: 0.8; }

/* Badges: keep icons small and inline */
.jp-menu__badges { display: inline-flex; gap: .35em; align-items: center; }
.jp-badge { display: inline-flex; align-items: center; gap: .35em; }

.jp-badge__icon,
.jp-badge__icon img {
  width: 16px !important;
  height: 16px !important;
  max-width: 16px !important;
  max-height: 16px !important;
  display: inline-block;
  object-fit: contain;
  vertical-align: -0.2em;
  border-radius: 2px;
}

/* Title line: title + badges stay on one line */
.jp-menu__titleline{
  display:flex;
  align-items:center;
  gap:.35em;
  flex-wrap:wrap; /* allows wrap only if very narrow */
}
.jp-menu__titleline .jp-menu__title{
  margin:0;            /* kill block margins */
  line-height:1.2;
}

/* Badges inline next to the title */
.jp-menu__badges{
  display:inline-flex;
  align-items:center;
  gap:.35em;
}

/* Badge icon sizing (matches our earlier patch) */
.jp-badge{ display:inline-flex; align-items:center; gap:.35em; }
.jp-badge__icon, .jp-badge__icon img{
  width:16px !important;
  height:16px !important;
  max-width:16px !important;
  max-height:16px !important;
  display:inline-block;
  object-fit:contain;
  vertical-align:-0.2em;
  border-radius:2px;
}

/* === Matrix   layout (structural + responsive) === */
.jp-menu__matrix,
.jp-menu__matrix > li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.jp-menu__matrix { padding-inline-start: 0; }

/* Desktop / tablet default: real matrix grid */
.jp-matrix{
  display: grid;
  grid-auto-rows: auto;
  /* Let the title column shrink on small screens so the grid never overflows */
  grid-template-columns: minmax(0, 1fr) repeat(var(--jp-matrix-cols, 1), auto);
  column-gap: 1.25rem;
  row-gap: 0;
  max-width: 100%;
}

.jp-matrix__row{ display: contents; }
.jp-matrix__cell{ display: block; }
.jp-matrix__cell--value{ text-align: left; }

/* Matrix headers use label styling */
/* Pad every cell equally in grid/table mode. On mobile, pad the whole
   stacked item once instead. Unset controls retain the existing spacing. */
@media (min-width: 768px) {
  .jp-matrix > .jp-matrix__row[data-post-id] > .jp-matrix__cell {
    padding-top: var(--jprm-matrix-row-padding-top, 0px);
    padding-bottom: var(--jprm-matrix-row-padding-bottom, 0px);
  }
}
@media (max-width: 767px) {
  .jp-matrix > .jp-matrix__row[data-post-id] {
    padding-top: var(--jprm-matrix-row-padding-top, .25rem);
    padding-bottom: var(--jprm-matrix-row-padding-bottom, .25rem);
  }
}

.jp-matrix .jp-matrix__cell--head .jp-menu__label{
  display:inline-flex;
  align-items:center;
  gap:.35em;
}

/* -------- MOBILE: stack rows vertically, no overflow -------- */
@media (max-width: 767px) {

  /* kill grid, make block list */
  .jp-matrix{
    display:block;
    width:100%;
  }

  /* each item row becomes a vertical block */
  .jp-matrix__row{
    display:block;
    margin-bottom:.5rem;
  }

  /* title/desc take full width */
  .jp-matrix__cell--item{
    display:block;
    margin-bottom:.15rem;
  }

  /* each price on its own line, indented */
  .jp-matrix__cell--value{
    display:block;
    text-align:left;
    margin-left:1.5rem;
    margin-bottom:.1rem;
    white-space:normal;
  }

  /* hide header row completely */
  .jp-matrix__row--header{
    display:none;
  }
}

/* Ensure full width for Info Blocks background color */
.jprm-infoblock{ width:100%; color:var(--jprm-info-color,inherit); background-color:var(--jprm-info-bg,transparent); text-align:var(--jprm-info-align,inherit); }
.jprm-infoblock__content{ color:var(--jprm-info-color,inherit); font-size:var(--jprm-info-font-size,inherit); }
.jprm-infoblock__image img{ width:var(--jprm-info-image-width,auto); height:auto; }

/* Default Inline: vertical stack at right (kept) */
.jp-menu__inner { display:grid; grid-template-columns: 1fr auto; gap:.4rem .8rem; }
.jp-menu__pricegroup { display:flex; flex-direction:column; gap:.25rem; text-align:right; }
.jp-menu__pricegroup .jp-menu__row { display:flex; align-items:center; gap:.35em; }

/* Separators: off by default; on only in Inline-Below */
.jp-chip-sep { display:none; }
.jp-menu__inner.jp--inline-below .jp-chip-sep { display:inline-block; opacity:.75; }

/* Make the price row items share a baseline: labels/icons centered with price */
.jp-price-row { display: flex; align-items: center; gap: .35em; }

/* Labels themselves: icon + text centered */
.jp-menu__label { display: inline-flex; align-items: center; gap: .35em; }
.jp-menu__icon { display: inline-block; vertical-align: middle; }  /* works for <img> icons */

/* =========================
   INLINE-BELOW (clean rules)
   ========================= */

/* container that holds all label/price pairs */
.jp-menu__pricegroup--below .jp-inline-below__line {
  display: flex;
  flex-wrap: wrap;
  /* space BETWEEN pairs (row gap, column gap) */
  gap: 0.35rem 1rem;
  align-items: center;
  margin-top: 0.25rem;
}

/* a single tuple (label, price, optional sep) */
.jp-menu__pricegroup--below .jp-chipline {
  display: inline-flex;
  align-items: center;
  gap: 0;
}

/* label chip: make icon + text align nicely */
.jp-menu__pricegroup--below .jp-chip .jp-menu__label {
  display: inline-flex;
  align-items: center;
  gap: .35em;
}

/* price: ALWAYS provide default space after label, even if no separator */
.jp-menu__pricegroup--below .jp-chipline .jp-price {
  display: inline-flex;
  align-items: center;
  line-height: 1;
  margin-left: 0.25em;
}

/* separator */
.jp-menu__pricegroup--below .jp-chipline .jp-sep {
  display: inline-flex;
  align-items: center;
  line-height: 1;
  opacity: .75;
  padding-left: .45em;
  padding-right: 0;
}

/* never show a separator for no-price rows */
.jp-menu__pricegroup--below .jp-chipline--noprice .jp-sep { display: none !important; }

/* belt-and-suspenders: kill any trailing padding/margin on last child */
.jp-menu__pricegroup--below .jp-chipline > :last-child {
  margin-right: 0 !important;
  padding-right: 0 !important;
}

/* keep icon elements from baseline wobble in some themes */
.jp-menu__pricegroup--below .jp-menu__icon {
  display: inline-block;
  vertical-align: middle;
}

/* =========================
   INLINE-BELOW — force stack
   ========================= */
.jp-inline-below .jp-menu__inner {
  display: grid;
  grid-template-columns: 1fr;  /* single column */
  align-items: start;
  gap: 0.25rem;
}
.jp-inline-below .jp-menu__content,
.jp-inline-below .jp-menu__pricegroup--below {
  grid-column: 1 / -1;         /* full width */
}

/* Defensive fallback if no .jp-inline-below wrapper is present. */
.jp-menu__pricegroup--below {
  display: block;
  width: 100%;
  flex: 0 0 100%;
}
.jp-menu__content { flex: 0 0 100%; }

/* =========================
   Label Position (Inline + Inline-Below)
   ========================= */

/* Ensure rows are flex so we can re-order children */
.jprm-labelpos-left  .jp-inline .jp-price-row,
.jprm-labelpos-right .jp-inline .jp-price-row {
  display: inline-flex;
  align-items: center;
}

.jprm-labelpos-left  .jp-menu__pricegroup--below .jp-chipline,
.jprm-labelpos-right .jp-menu__pricegroup--below .jp-chipline {
  display: inline-flex;
  align-items: center;
}

/* ---------- LEFT: chip(1) → price(2) → sep(3) ---------- */
.jprm-labelpos-left  .jp-inline .jp-price-row .jp-chip,
.jprm-labelpos-left  .jp-menu__pricegroup--below .jp-chipline .jp-chip  { order: 1; margin-left: 0; }

.jprm-labelpos-left  .jp-inline .jp-price-row .jp-price,
.jprm-labelpos-left  .jp-menu__pricegroup--below .jp-chipline .jp-price { order: 2; margin-left: .45em; line-height: 1; }

.jprm-labelpos-left  .jp-inline .jp-price-row .jp-sep,
.jprm-labelpos-left  .jp-menu__pricegroup--below .jp-chipline .jp-sep   { order: 3; padding-left: .45em; padding-right: 0; line-height: 1; }

/* ---------- RIGHT: price(1) → chip(2) → sep(3) ---------- */
.jprm-labelpos-right .jp-inline .jp-price-row .jp-price,
.jprm-labelpos-right .jp-menu__pricegroup--below .jp-chipline .jp-price { order: 1; margin-left: 0; line-height: 1; }

.jprm-labelpos-right .jp-inline .jp-price-row .jp-chip,
.jprm-labelpos-right .jp-menu__pricegroup--below .jp-chipline .jp-chip  { order: 2; margin-left: .45em; }

.jprm-labelpos-right .jp-inline .jp-price-row .jp-sep,
.jprm-labelpos-right .jp-menu__pricegroup--below .jp-chipline .jp-sep   { order: 3; padding-left: .45em; padding-right: 0; line-height: 1; }

/* Never show separator on no-price rows */
.jprm-labelpos-left  .jp-inline .jp-price-row.jp-chipline--noprice .jp-sep,
.jprm-labelpos-right .jp-inline .jp-price-row.jp-chipline--noprice .jp-sep,
.jprm-labelpos-left  .jp-menu__pricegroup--below .jp-chipline--noprice .jp-sep,
.jprm-labelpos-right .jp-menu__pricegroup--below .jp-chipline--noprice .jp-sep {
  display: none !important;
}

/* BADGES FIX */
.jp-menu__titlewrap { display: flex; width: 100%; align-items: baseline; gap: .35rem; }
.jp-menu__badges    { display: inline-flex; align-items: center; gap: .35rem; }
.jp-badge           { display: inline-flex; align-items: center; gap: .25rem; line-height: 1; }
.jp-badge__icon     { display: inline-block; height: 1em; width: auto; }
.jp-badge__label    { display: inline-block; }

/* Masks (color via currentColor) */
.jp-icon-mask,
.jp-badge__icon--mask,
.jp-label__icon--mask{
  display:inline-block;
  width:1em; height:1em;
  background-color: var(--jprm-label-icon-color, currentColor);
  -webkit-mask-image: var(--jprm-icon-image);
  mask-image: var(--jprm-icon-image);
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-size:contain;     mask-size:contain;
  -webkit-mask-position:center;  mask-position:center;
}

/* Inline SVGs: force to currentColor */
.jp-badge__svg,
.jp-label__svg,
.jp-menu__label svg{
  fill: currentColor !important;
  stroke: currentColor !important;
}

/* LEADER STYLING */
/* === Inline leader — consume Elementor variables === */
/* Put this near your existing inline layout rules */

.jp-layout-inline .jp-menu__inner{
  display:flex;
  align-items:baseline;
  gap:.5rem;
}

.jp-layout-inline .jp-menu__content{ flex:0 1 auto; min-width:0; }
.jp-layout-inline .jp-menu__pricegroup{ flex:0 0 auto; }

/* The leader expands between content and price */
.jp-layout-inline .jp-leader{
  flex:1 1 auto;
  min-width:1rem;

  /* use the Elementor-driven variables */
  margin:0 var(--jprm-leader-gap, .5rem);
  border-bottom-width: var(--jprm-leader-weight, 1px);
  border-bottom-color: var(--jprm-leader-color, currentColor);

  /* default fallback; overridden by the data-style rules below */
  border-bottom-style: dotted;

  /* keeps the line visually centered on text baseline */
  align-self:center;
  transform: translateY(-0.1em);
}

/* Style coming from the data-style attribute that inline.php renders */
.jp-layout-inline .jp-leader[data-style="dotted"]{ border-bottom-style:dotted; }
.jp-layout-inline .jp-leader[data-style="dashed"]{ border-bottom-style:dashed; }
.jp-layout-inline .jp-leader[data-style="solid"] { border-bottom-style:solid; }

/*EXTRA TWEAK*/
/* === Inline layout baseline fix ======================================= */
.jp-layout-inline .jp-menu__inner{ display:block; }

/* Row that holds title + leader + pricegroup on a single baseline */
.jp-layout-inline .jp-row--titleline{
  display:flex;
  align-items:baseline; /* <- key for clean alignment */
  gap:.5rem;
}

/* Title block can wrap; leader will still align to its first line */
.jp-layout-inline .jp-menu__content{ flex:0 1 auto; min-width:0; }
.jp-layout-inline .jp-menu__titlewrap{ display:flex; width:100%; align-items:baseline; gap:.35rem; }

/* Daily Menus with a fixed price use the full item width. */
.jp-layout-inline--no-prices .jp-grid--inline {
  grid-template-columns: minmax(0, 1fr);
}
.jp-layout-inline--no-prices .jp-left-title,
.jp-layout-inline--no-prices .jp-left-desc {
  grid-column: 1;
  width: 100%;
}
.jp-layout-inline--no-prices .jp-menu__content,
.jp-layout-inline--no-prices .jp-menu__titlewrap,
.jp-layout-inline--no-prices .jp-menu__desc {
  width: 100%;
}
.jp-layout-inline--no-prices .jp-leader,
.jp-layout-inline--no-prices .jp-right-pricegroup {
  display: none;
}

/* Price group stays compact on the right */
.jp-layout-inline .jp-menu__pricegroup{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  gap:.25rem;
}

/* Leader expands between content and price */
.jp-layout-inline .jp-leader{
  flex:1 1 auto;
  min-width:1rem;
  margin:0 var(--jprm-leader-gap, .5rem);

  border-bottom-width: var(--jprm-leader-weight, 1px);
  border-bottom-color: var(--jprm-leader-color, currentColor);
  border-bottom-style: dotted; /* fallback; overridden by data-style below */

  /* fine-tune vertical feel if needed from Style tab */
  transform: translateY(var(--jprm-leader-offset, 0));
}

/* Map data-style to actual line style */
.jp-layout-inline .jp-leader[data-style="dotted"]{ border-bottom-style:dotted; }
.jp-layout-inline .jp-leader[data-style="dashed"]{ border-bottom-style:dashed; }
.jp-layout-inline .jp-leader[data-style="solid"] { border-bottom-style:solid; }

/* ===== Inline grid to keep description under title, prices on the right ===== */
.jp-layout-inline .jp-grid--inline{
  display:grid;
  grid-template-columns: auto 1fr auto; /* title | leader | prices */
  grid-template-rows: auto auto;        /* row1: title/leader/prices ; row2: desc / (spacer) / prices */
  column-gap:.5rem;
  row-gap:.25rem;
  align-items:first baseline; /* modern browsers; falls back to baseline */
}

/* Place items into the grid cells */
.jp-layout-inline .jp-left-title{ grid-column:1; grid-row:1; min-width:0; }
/* Let descriptions span title + leader so they do not widen the title column. */
.jp-layout-inline .jp-left-desc { grid-column:1 / 3; grid-row:2; min-width:0; }
.jp-layout-inline .jp-leader    { grid-column:2; grid-row:1; align-self:baseline; }
.jp-layout-inline .jp-right-pricegroup{
  grid-column:3;
  grid-row:1 / span 2; /* prices occupy both rows */
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:.25rem;
}

/* Title area details */
/* Collapsed content must not reserve an empty title/description grid row. */
.jp-layout-inline .jp-grid--no-description,
.jp-layout-inline .jp-grid--no-titleline { grid-template-rows: auto; row-gap: 0; }
.jp-layout-inline .jp-grid--no-description .jp-right-pricegroup,
.jp-layout-inline .jp-grid--no-titleline .jp-right-pricegroup { grid-row: 1; }
.jp-layout-inline .jp-grid--no-titleline .jp-left-desc { grid-row: 1; }
.jp-inline-below .jp-menu__pricegroup--below:first-child { margin-top: 0; }
.jp-matrix.jp-matrix--no-item-text {
  grid-template-columns: auto repeat(var(--jp-matrix-cols, 1), auto);
}
/* Override Elementor's generated item-text minimum width when that text is hidden. */
.jp-matrix.jp-matrix--no-item-text .jp-matrix__cell--item { min-width: 0 !important; }
.jp-matrix.jp-matrix--no-item-text .jp-matrix__cell--item:empty { margin: 0; padding: 0; }

.jp-layout-inline .jp-menu__titlewrap{ display:flex; width:100%; align-items:baseline; gap:.35rem; }

/* Price rows baseline tidy */
.jp-layout-inline .jp-price-row{ display:inline-flex; align-items:baseline; gap:.35rem; }

/* --- Leader styling driven by Elementor variables --- */
.jp-layout-inline .jp-leader{
  min-width:1rem;
  border-bottom-width: var(--jprm-leader-weight, 1px);
  border-bottom-color: var(--jprm-leader-color, currentColor);
  border-bottom-style: dotted; /* fallback; overridden below */
  margin: 0 var(--jprm-leader-gap, .5rem);
  transform: translateY(var(--jprm-leader-offset, 0));
}
.jp-layout-inline .jp-leader[data-style="dotted"]{ border-bottom-style:dotted; }
.jp-layout-inline .jp-leader[data-style="dashed"]{ border-bottom-style:dashed; }
.jp-layout-inline .jp-leader[data-style="solid"] { border-bottom-style:solid; }

/* When leader is logically off, keep a 0-size placeholder so grid stays stable */
.jp-layout-inline .jp-leader.jp-leader--off{ border:0; width:0; margin:0; }
/* Mobile behaviour for Matrix
   - No grid
   - Title full-width, wrapping
   - Prices inline below
*/
@media (max-width: 767px) {

  /* Kill the grid itself */
  .jp-matrix {
    display: block;
    width: 100%;
  }

  /* Each logical row becomes a simple block */
  .jp-matrix__row {
    display: block;
    padding: 0.25rem 0;
  }

  /* Hide the matrix header row completely on mobile */
  .jp-matrix__row--header {
    display: none !important;
  }

  /* Item cell: title + desc on their own line(s) */
  .jp-matrix__cell--item {
    margin-bottom: 0.15rem;
  }

  .jp-matrix__cell--item .jp-menu__titleline {
    display: block;
  }

  .jp-matrix__cell--item .jp-menu__titlewrap {
    display: flex;
    width: 100%;
  }

  .jp-matrix__cell--item .jp-menu__title {
    display: block;
    width: 100%;
    white-space: normal;      /* allow wrapping */
  }

  /* Prices: inline chips under the title, no overflow */
  .jp-matrix__cell--value {
    display: inline-flex;
    align-items: center;
    text-align: left;
    margin-right: 0.75rem;
    margin-bottom: 0.1rem;
    white-space: nowrap;
  }

  /* Make sure any inline-layout specific grids don't mess up inside matrix */
  .jp-matrix .jp-grid--inline,
  .jp-matrix .jp-row--titleline {
    display: block;
  }
}

/* UNLABELED MATRIX PRICES */
.jp-matrix__unlabeled {
  margin-top: 0.15rem;
  font-size: 0.9em;
  opacity: .8;
}

.jp-matrix__unlabeled-price {
  display: inline-flex;
  align-items: center;
  gap: .25em;
  margin-right: .75em;
}

.jp-matrix__unlabeled-warning {
  display: inline-block;
  font-weight: 700;
  border-radius: 999px;
  padding: 0 0.3em;
  font-size: 0.75em;
  border: 1px solid currentColor;
}
/* =========================
   MOBILE – force title wrapping
   ========================= */
@media (max-width: 767px) {
  .jp-menu__title {
    white-space: normal !important;  /* override any nowrap */
    line-height: 1.3 !important;                /* give lines room */
    word-break: break-word;          /* long words won't overflow */
  }
}

/* Daily Menu final layout override: no reserved leader/price columns. */
.jp-layout-inline.jp-layout-inline--no-prices .jp-grid.jp-grid--inline {
  grid-template-columns: minmax(0, 1fr) !important;
}

.jp-layout-inline.jp-layout-inline--no-prices .jp-left-title,
.jp-layout-inline.jp-layout-inline--no-prices .jp-left-desc {
  grid-column: 1 / -1 !important;
  width: 100% !important;
}

.jp-layout-inline.jp-layout-inline--no-prices .jp-menu__content,
.jp-layout-inline.jp-layout-inline--no-prices .jp-menu__titlewrap,
.jp-layout-inline.jp-layout-inline--no-prices .jp-menu__desc {
  width: 100% !important;
  max-width: none !important;
}

.jp-layout-inline.jp-layout-inline--no-prices .jp-leader,
.jp-layout-inline.jp-layout-inline--no-prices .jp-right-pricegroup {
  display: none !important;
}




