/* ============================================================================
   jr-cart — drop-in WhatsApp ordering for a static menu page.
   Hosted once on jr-web-lb.com, so a fix here reaches every client at once.

   Theme per client by setting these on :root in the page:
     --jrc-accent, --jrc-accent-ink, --jrc-bg, --jrc-panel, --jrc-fg,
     --jrc-muted, --jrc-line, --jrc-bar-offset
   Everything below falls back to a dark/gold default.
   All selectors are .jrcart-* so nothing collides with the client's CSS.
   ========================================================================= */

:root{
  --jrc-accent:#D4AF37;
  --jrc-accent-ink:#0A0A0A;
  --jrc-bg:#0A0A0A;
  --jrc-panel:#141414;
  --jrc-fg:#FFFFFF;
  --jrc-muted:rgba(255,255,255,.5);
  --jrc-line:rgba(255,255,255,.12);
  --jrc-bar-offset:0px;      /* raise the bar clear of a client's own bottom nav */
  --jrc-radius:14px;
}

/* control + price folded together so the row keeps exactly two flex
   children -- see the comment on mount() in cart.js for why that matters. */
.jrcart-trailer{
  flex:none;display:flex;align-items:center;gap:12px;
}
.jrcart-ctl{
  flex:none;align-self:center;
  display:inline-flex;align-items:center;gap:2px;
}

/* add button, collapses into the stepper once the line has a quantity */
.jrcart-add,.jrcart-step{
  font:inherit;cursor:pointer;border:1px solid var(--jrc-line);
  background:transparent;color:var(--jrc-fg);
  height:32px;min-width:32px;padding:0 10px;
  border-radius:999px;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease;
  -webkit-tap-highlight-color:transparent;
}
.jrcart-add{border-color:color-mix(in srgb,var(--jrc-accent) 45%,transparent);color:var(--jrc-accent)}
.jrcart-add:hover,.jrcart-step:hover{border-color:var(--jrc-accent);color:var(--jrc-accent)}
.jrcart-step--minus{border-radius:999px 0 0 999px}
.jrcart-step--plus{border-radius:0 999px 999px 0}
.jrcart-qty{
  min-width:30px;text-align:center;font-variant-numeric:tabular-nums;
  color:var(--jrc-fg);font-weight:600;
}
.jrcart-row--active{background:color-mix(in srgb,var(--jrc-accent) 7%,transparent)}

/* ---- bottom summary bar ------------------------------------------------- */
.jrcart-bar{
  position:fixed;left:0;right:0;bottom:var(--jrc-bar-offset);z-index:90;
  transform:translateY(130%);transition:transform .28s cubic-bezier(.22,.8,.3,1);
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  background:color-mix(in srgb,var(--jrc-bg) 92%,transparent);
  border-top:1px solid var(--jrc-line);backdrop-filter:blur(12px);
}
.jrcart-bar[data-open="1"]{transform:none}
.jrcart-bar__btn{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:100%;max-width:640px;margin:0 auto;
  font:inherit;font-weight:600;cursor:pointer;border:0;
  background:var(--jrc-accent);color:var(--jrc-accent-ink);
  padding:13px 18px;border-radius:999px;
}
.jrcart-bar__count{
  background:color-mix(in srgb,var(--jrc-accent-ink) 18%,transparent);
  border-radius:999px;padding:2px 9px;font-variant-numeric:tabular-nums;
}
.jrcart-bar__total{font-variant-numeric:tabular-nums}

/* ---- drawer ------------------------------------------------------------- */
.jrcart-scrim{
  position:fixed;inset:0;z-index:95;background:rgba(0,0,0,.6);
  opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.jrcart-scrim[data-open="1"]{opacity:1;pointer-events:auto}

.jrcart-panel{
  position:fixed;left:0;right:0;bottom:0;z-index:96;
  max-height:86vh;display:flex;flex-direction:column;
  background:var(--jrc-panel);color:var(--jrc-fg);
  border-top:1px solid var(--jrc-line);
  border-radius:var(--jrc-radius) var(--jrc-radius) 0 0;
  transform:translateY(100%);transition:transform .3s cubic-bezier(.22,.8,.3,1);
}
.jrcart-panel[data-open="1"]{transform:none}
@media(min-width:720px){
  .jrcart-panel{left:auto;right:24px;bottom:24px;width:400px;border-radius:var(--jrc-radius)}
}

.jrcart-panel__head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 18px;border-bottom:1px solid var(--jrc-line);
}
.jrcart-panel__title{font-weight:600;font-size:1.05rem}
.jrcart-x{
  font:inherit;cursor:pointer;background:transparent;color:var(--jrc-muted);
  border:1px solid var(--jrc-line);border-radius:999px;
  height:32px;width:32px;line-height:1;
}
.jrcart-x:hover{color:var(--jrc-fg);border-color:var(--jrc-accent)}

.jrcart-groups{
  margin:0;padding:6px 18px;overflow-y:auto;flex:1;
  -webkit-overflow-scrolling:touch;
}

/* one item, one or more lines beneath it */
.jrcart-group{padding:14px 0;border-bottom:1px solid var(--jrc-line)}
.jrcart-group:last-child{border-bottom:0}
.jrcart-group__head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.jrcart-group__name{font-size:.95rem;font-weight:600}
.jrcart-group__each{font-size:.78rem;color:var(--jrc-muted)}
.jrcart-group__add{
  margin-left:auto;font:inherit;font-size:.78rem;cursor:pointer;
  background:transparent;border:0;color:var(--jrc-accent);
  padding:2px 0;-webkit-tap-highlight-color:transparent;
}
.jrcart-group__add:hover{text-decoration:underline}

/* one order line: qty + sum + remove on top, its own note field beneath */
.jrcart-line{padding:6px 0}
.jrcart-line + .jrcart-line{margin-top:2px}
.jrcart-line__top{display:flex;align-items:center;gap:10px}
.jrcart-line__sum{
  flex:1;text-align:right;font-variant-numeric:tabular-nums;font-size:.9rem;
  color:var(--jrc-muted);
}
.jrcart-line__x{
  flex:none;font:inherit;font-size:1.05rem;line-height:1;cursor:pointer;
  background:transparent;border:0;color:var(--jrc-muted);
  height:28px;width:28px;border-radius:999px;
}
.jrcart-line__x:hover{color:var(--jrc-fg);background:var(--jrc-line)}

.jrcart-line__note{
  display:block;width:100%;box-sizing:border-box;margin-top:6px;
  font:inherit;font-size:.85rem;background:transparent;color:var(--jrc-fg);
  border:1px dashed var(--jrc-line);border-radius:8px;padding:7px 10px;
}
.jrcart-line__note::placeholder{color:var(--jrc-muted)}
.jrcart-line__note:focus{outline:none;border-color:var(--jrc-accent);border-style:solid}
.jrcart-line__note:not(:placeholder-shown){border-style:solid;border-color:color-mix(in srgb,var(--jrc-accent) 45%,var(--jrc-line))}

.jrcart-empty{padding:28px 0;text-align:center;color:var(--jrc-muted);font-size:.92rem}

.jrcart-foot{padding:14px 18px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--jrc-line)}
.jrcart-note{
  width:100%;box-sizing:border-box;font:inherit;font-size:.9rem;
  background:transparent;color:var(--jrc-fg);
  border:1px solid var(--jrc-line);border-radius:10px;
  padding:9px 11px;margin-bottom:12px;resize:vertical;min-height:40px;
}
.jrcart-note::placeholder{color:var(--jrc-muted)}
.jrcart-note:focus{outline:none;border-color:var(--jrc-accent)}

.jrcart-total{
  display:flex;align-items:baseline;justify-content:space-between;
  margin-bottom:12px;font-weight:600;
}
.jrcart-total span:last-child{font-variant-numeric:tabular-nums}

.jrcart-go{
  display:flex;align-items:center;justify-content:center;gap:9px;
  width:100%;font:inherit;font-weight:600;font-size:1rem;cursor:pointer;border:0;
  background:var(--jrc-accent);color:var(--jrc-accent-ink);
  padding:13px 18px;border-radius:999px;text-decoration:none;
}
.jrcart-go:disabled{opacity:.45;cursor:not-allowed}
.jrcart-go svg{width:19px;height:19px;fill:currentColor;flex:none}

.jrcart-warn{
  margin-top:10px;font-size:.78rem;line-height:1.45;color:var(--jrc-muted);text-align:center;
}
.jrcart-clear{
  display:block;margin:10px auto 0;font:inherit;font-size:.8rem;
  background:none;border:0;color:var(--jrc-muted);cursor:pointer;text-decoration:underline;
}
.jrcart-clear:hover{color:var(--jrc-fg)}

:where(.jrcart-add,.jrcart-step,.jrcart-go,.jrcart-x,.jrcart-bar__btn):focus-visible{
  outline:2px solid var(--jrc-accent);outline-offset:2px;
}

@media(prefers-reduced-motion:reduce){
  .jrcart-bar,.jrcart-panel,.jrcart-scrim,.jrcart-add,.jrcart-step{transition:none}
}
