/* Chez Jose catalog + shell components. Verbatim from the approved 1:1 design.
   Loaded on the frontend (header/footer/cart drawer appear site-wide). */

.cj-page{min-height:100vh;display:flex;flex-direction:column;overflow-anchor:none;}

/* Header */
.cj-head{height:var(--cj-header-h);background:var(--cj-cream);display:flex;align-items:center;justify-content:space-between;padding:0 40px;direction:ltr;position:sticky;top:0;z-index:20;}

/* WordPress admin bar offsets for sticky / fixed elements (logged-in users).
   The drawer also needs its height reduced or its footer falls below the screen. */
.admin-bar .cj-head{top:32px;}
.admin-bar .cj-cart-overlay{top:32px;}
.admin-bar .cj-drawer{top:32px;height:calc(100% - 32px);}
@media screen and (max-width:782px){
  .admin-bar .cj-head{top:46px;}
  .admin-bar .cj-cats{top:calc(var(--cj-header-h) + 46px);}
  .admin-bar .cj-cart-overlay{top:46px;}
  .admin-bar .cj-drawer{top:46px;height:calc(100% - 46px);}
  .admin-bar.page-template-template-chez-jose .cj-main{min-height:calc(100svh - var(--cj-header-h) - 46px);}
}
.cj-wordmark{font-family:var(--cj-font-display);font-size:34px;font-weight:var(--cj-w-medium);letter-spacing:var(--cj-track-wordmark);color:var(--cj-ink-strong);line-height:1;white-space:nowrap;direction:ltr;display:inline-block;text-decoration:none;}
.cj-head-actions{display:flex;align-items:center;gap:16px;}
.cj-acct{display:inline-flex;align-items:center;gap:14px;height:50px;padding:0 20px;background:#fff;border:none;border-radius:var(--cj-radius-md);box-shadow:var(--cj-shadow-card);font-family:var(--cj-font-body);font-size:var(--cj-text-base);color:var(--cj-ink);cursor:pointer;text-decoration:none;transition:transform var(--cj-dur) var(--cj-ease),box-shadow var(--cj-dur) var(--cj-ease);}
.cj-acct:hover{transform:translateY(-1px);box-shadow:var(--cj-shadow-hover);}
.cj-iconbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;padding:0;background:#fff;border:none;border-radius:var(--cj-radius-card);box-shadow:var(--cj-shadow-float);color:var(--cj-ink);cursor:pointer;transition:transform var(--cj-dur) var(--cj-ease),box-shadow var(--cj-dur) var(--cj-ease);}
.cj-iconbtn:hover{transform:translateY(-1px);box-shadow:var(--cj-shadow-hover);}
.cj-iconbtn .cj-count{position:absolute;top:-6px;inset-inline-end:-6px;min-width:22px;height:22px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;background:var(--cj-rose-deep);color:#fff;font-size:var(--cj-text-xs);font-weight:var(--cj-w-bold);line-height:1;border-radius:var(--cj-radius-pill);}

/* Intro */
.cj-intro{display:flex;flex-direction:column;align-items:center;padding:44px 24px 0;}
.cj-plaque{display:block;width:230px;height:230px;object-fit:cover;}
.cj-info{text-align:center;margin-top:30px;line-height:1.5;font-size:var(--cj-text-2xl);color:#000;}
.cj-info .store{font-weight:var(--cj-w-bold);}

/* Categories - desktop: a normal row that scrolls away (1:1 approved at-rest
   design); once it passes under the header, the header chips (.cj-head-cats)
   take over. Mobile (<=680): the strip itself is sticky. */
.cj-cats{display:flex;justify-content:flex-start;gap:60px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:56px 24px 8px;direction:ltr;}
.cj-cats::-webkit-scrollbar{display:none;}
/* Auto margins: the row centers while it fits, start-anchors once it overflows. */
.cj-cat:first-child{margin-inline-start:auto;}
.cj-cat:last-child{margin-inline-end:auto;}
.cj-cat{flex:0 0 auto;display:inline-flex;flex-direction:column;align-items:center;gap:14px;background:transparent;border:none;cursor:pointer;padding:0;}
.cj-cat-disc{width:115px;height:115px;border-radius:var(--cj-radius-pill);overflow:hidden;display:block;box-shadow:0 0 0 0 var(--cj-rose-300);transition:box-shadow var(--cj-dur) var(--cj-ease),transform var(--cj-dur) var(--cj-ease);}
.cj-cat-disc img{display:block;width:100%;height:100%;object-fit:cover;}
.cj-cat:hover .cj-cat-disc{transform:scale(1.05);box-shadow:0 0 0 3px var(--cj-rose-300);}
.cj-cat:focus-visible{outline:none;}
.cj-cat:focus-visible .cj-cat-disc{box-shadow:0 0 0 3px var(--cj-rose-300);}
.cj-cat-label{font-family:var(--cj-font-body);font-size:var(--cj-text-md);font-weight:var(--cj-w-regular);color:var(--cj-ink);white-space:nowrap;}

/* ---- Header category chips (clones of .cj-cat, injected by cj-shop.js) ---- */
.cj-head-cats{flex:1 1 auto;min-width:0;height:100%;display:flex;align-items:center;gap:6px;margin:0 20px;direction:ltr;overflow-x:auto;scrollbar-width:none;visibility:hidden;}
.cj-head-cats::-webkit-scrollbar{display:none;}
.cj-head-cats:empty{display:none;}
/* Chip overrides: row layout, pill hover, small disc. The .cj-cat first/last
   auto-margins center the group while it fits and start-anchor on overflow,
   same proven pattern as the big row. */
.cj-head-cats .cj-cat{flex-direction:row;align-items:center;gap:9px;padding:5px 12px 5px 6px;border-radius:var(--cj-radius-pill);transition:background var(--cj-dur) var(--cj-ease);}
.cj-head-cats .cj-cat-disc,.cj-head-cats .cj-cat-disc img{width:34px;height:34px;}
.cj-head-cats .cj-cat-label{font-size:13px;}
.cj-head-cats .cj-cat:hover{background:var(--cj-rose-100);}
.cj-head-cats .cj-cat:hover .cj-cat-disc{transform:none;}
/* 2px rings at chip scale - 3px reads clumsy on a 34px disc */
.cj-head-cats .cj-cat:hover .cj-cat-disc,.cj-head-cats .cj-cat:focus-visible .cj-cat-disc{box-shadow:0 0 0 2px var(--cj-rose-300);}
.cj-head-cats .cj-cat.is-active{background:var(--cj-rose-100);}
.cj-head-cats .cj-cat.is-active .cj-cat-disc{box-shadow:0 0 0 2px var(--cj-rose-deep);}

/* Header on scroll: bg SNAPS to white (deliberately NOT in the transition list -
   a bg transition shows a see-through frame; cream->white between two opaque
   near-identical tones is invisible as a snap). Only the shadow animates. */
.cj-head{transition:box-shadow .25s var(--cj-ease);}
body.cj-scrolled .cj-head{background:var(--cj-white);box-shadow:0 6px 16px -10px rgba(61,58,54,.18);}

/* Entrance: "souffle rise" - each chip rises 8px, grows from 88%, settles with
   a barely-there overshoot. 45ms stagger in DOM order (left->right: the bar
   grows out of the wordmark, matching the approved ltr circle order).
   `backwards` holds delayed chips invisible during their delay. Exit is an
   instant visibility flip, which resets the keyframes for a real re-entry. */
@keyframes cj-chip-in{from{opacity:0;transform:translateY(8px) scale(.88);}to{opacity:1;transform:none;}}
body.cj-scrolled .cj-head-cats{visibility:visible;}
body.cj-scrolled .cj-head-cats .cj-cat{animation:cj-chip-in .38s cubic-bezier(.3,1.25,.45,1) backwards;}
body.cj-scrolled .cj-head-cats .cj-cat:nth-child(2){animation-delay:45ms}
body.cj-scrolled .cj-head-cats .cj-cat:nth-child(3){animation-delay:90ms}
body.cj-scrolled .cj-head-cats .cj-cat:nth-child(4){animation-delay:135ms}
body.cj-scrolled .cj-head-cats .cj-cat:nth-child(5){animation-delay:180ms}
body.cj-scrolled .cj-head-cats .cj-cat:nth-child(n+6){animation-delay:225ms}

/* 681-1279px: discs only (img alt keeps each button's accessible name). */
@media (min-width:681px) and (max-width:1279px){
  .cj-head-cats{gap:4px;margin:0 14px;}
  .cj-head-cats .cj-cat{padding:5px 8px;}
  .cj-head-cats .cj-cat-label{display:none;}
}
/* Mid widths: tighter gap so 6 big circles fit in one row longer before scrolling. */
@media (min-width:681px) and (max-width:1100px){
  .cj-cats{gap:36px;}
}
/* Tablets: icon-only account button (the label wraps inside the pill) */
@media (max-width:960px){
  .cj-acct span{display:none;}
  .cj-acct{padding:0 14px;}
}
@media (prefers-reduced-motion:reduce){
  .cj-cat-disc,.cj-head-cats .cj-cat,.cj-head{transition:none;}
  body.cj-scrolled .cj-head-cats .cj-cat{animation:none;}
}

/* Product grid */
.cj-main{padding:48px 24px 80px;}

/* Two-screens: the catalog (.cj-main) always holds at least a full screen below the
   header, so few/no results never reveal a void or jump the footer. Scoped to the
   catalog page so prose / account / checkout footers still sit at the bottom. */
html{scroll-padding-top:var(--cj-header-h);}
/* Two-screens: .cj-main grows to fill the 100vh .cj-page so the catalog always
   holds a full screen below the header (few/no results never leave a void above
   the footer). flex-grow avoids the scroll breakage that min-height/svh caused. */
body.page-template-template-chez-jose .cj-main{flex:1 0 auto;display:flex;flex-direction:column;}
body.page-template-template-chez-jose .cj-grid{align-content:start;}

/* Empty state (no products in the chosen category) - centered in the full-screen stage */
.cj-empty{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;direction:rtl;padding:48px 20px;color:var(--cj-ink);}
.cj-empty[hidden]{display:none;}
.cj-empty-art{width:88px;height:88px;border-radius:var(--cj-radius-pill);background:var(--cj-cream);display:grid;place-items:center;}
.cj-empty-art svg{width:44px;height:44px;stroke:var(--cj-sage);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.cj-empty-title{margin:0;font-family:var(--cj-font-body);font-size:var(--cj-text-xl);font-weight:var(--cj-w-bold);color:var(--cj-ink-strong);}
.cj-empty-sub{margin:0;font-family:var(--cj-font-body);font-size:var(--cj-text-sm);color:var(--cj-muted);max-width:34ch;line-height:1.5;}
.cj-empty-cta{margin-top:6px;padding:10px 22px;border:1px solid var(--cj-rose-300);background:#fff;color:var(--cj-rose-deep);border-radius:var(--cj-radius-card);font-family:var(--cj-font-body);font-size:var(--cj-text-base);cursor:pointer;transition:background var(--cj-dur) var(--cj-ease),color var(--cj-dur) var(--cj-ease);}
.cj-empty-cta:hover{background:var(--cj-rose-deep);color:#fff;border-color:var(--cj-rose-deep);}
/* Flex (not grid) so 1-2 results center instead of pinning to a column, and rows
   wrap responsively. Capped at 4 cards wide. */
.cj-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:26px 22px;direction:ltr;max-width:calc(var(--cj-card-w) * 4 + 22px * 3);margin:0 auto;}
.cj-grid .cj-card{flex:0 0 var(--cj-card-w);width:var(--cj-card-w);}

.cj-card{width:100%;max-width:var(--cj-card-w);background:#fff;border-radius:var(--cj-radius-card);box-shadow:var(--cj-shadow-card);overflow:hidden;display:flex;flex-direction:column;direction:rtl;transition:transform var(--cj-dur) var(--cj-ease),box-shadow var(--cj-dur) var(--cj-ease);}
.cj-card:hover{transform:translateY(-4px);box-shadow:var(--cj-shadow-hover);}
.cj-card-img{position:relative;aspect-ratio:1/1;background-color:#fff;background-repeat:no-repeat;background-position:center;}
.cj-card-img.fit-cover{background-size:cover;}
.cj-card-img.fit-contain{background-size:contain;}
/* Legacy alias: stretched 100%/100% distorted the photos; contain shows the
   full pastry (the photos carry their own white plating margin). */
.cj-card-img.fit-fill{background-size:contain;}
.cj-badge{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;justify-content:center;padding:4px 11px;font-family:var(--cj-font-body);font-size:var(--cj-text-xs);font-weight:var(--cj-w-bold);line-height:1;border-radius:var(--cj-radius-sm);color:#fff;}
.cj-badge.tone-new{background:var(--cj-rose-deep);}
.cj-badge.tone-pareve{background:var(--cj-sage);}

.cj-card-body{padding:16px;display:flex;flex-direction:column;align-items:center;gap:7px;}
.cj-card-title{margin:0;font-family:var(--cj-font-body);font-size:var(--cj-text-lg);font-weight:var(--cj-w-bold);color:var(--cj-ink);text-align:center;line-height:1.2;}
/* Clamped at 3 lines so a long regular description cannot stretch its card
   and break the grid row alignment (the popup shows the full text). */
.cj-card-desc{margin:0;font-family:var(--cj-font-body);font-size:var(--cj-text-sm);font-weight:var(--cj-w-regular);color:var(--cj-muted);text-align:center;line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;}
.cj-card-price{margin:4px 0 8px;font-family:var(--cj-font-body);font-size:var(--cj-text-xl);font-weight:var(--cj-w-bold);color:var(--cj-ink);}
.cj-card-soon{margin:10px 0 12px;font-family:var(--cj-font-body);font-size:var(--cj-text-md);font-weight:var(--cj-w-medium);color:#c98b87;letter-spacing:.02em;}
.cj-card-actions{display:flex;align-items:center;gap:10px;width:100%;}

.cj-add{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;font-family:var(--cj-font-body);font-size:var(--cj-text-base);font-weight:var(--cj-w-regular);line-height:1;background:#fff;color:var(--cj-rose);border:1px solid var(--cj-rose-300);border-radius:var(--cj-radius-sm);cursor:pointer;white-space:nowrap;transition:background var(--cj-dur) var(--cj-ease),color var(--cj-dur) var(--cj-ease),transform var(--cj-dur) var(--cj-ease);}
.cj-add:hover{background:var(--cj-rose-deep);color:#fff;border-color:var(--cj-rose-deep);}
.cj-add:active{transform:scale(0.97);}
.cj-add:disabled{opacity:.45;pointer-events:none;}
.cj-add:focus-visible,.cj-iconbtn:focus-visible,.cj-acct:focus-visible,.cj-empty-cta:focus-visible{outline:2px solid var(--cj-rose-deep);outline-offset:2px;}
.cj-add.is-loading{opacity:.7;pointer-events:none;}
.cj-add.is-added{background:var(--cj-sage);color:#fff;border-color:var(--cj-sage);}

.cj-qty{display:inline-flex;align-items:center;gap:14px;padding:8px 12px;border:1px solid var(--cj-sand);border-radius:var(--cj-radius-sm);background:#fff;}
.cj-qty button{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--cj-ink);font-family:var(--cj-font-body);font-size:var(--cj-text-md);line-height:1;cursor:pointer;padding:0;border-radius:6px;transition:background var(--cj-dur) var(--cj-ease);}
.cj-qty button:hover{background:var(--cj-rose-100);}
.cj-qty .cj-qty-val{min-width:16px;text-align:center;font-family:var(--cj-font-body);font-size:var(--cj-text-base);color:var(--cj-ink);}

/* Footer - contact rows form one right-anchored column so the icons align. */
.cj-foot{background:var(--cj-paper-grey);padding:46px 40px 30px;direction:ltr;margin-top:auto;}
.cj-foot-rows{display:flex;flex-direction:column;gap:16px;align-items:stretch;width:max-content;max-width:100%;margin:0 auto;}
.cj-foot-row{display:flex;align-items:center;justify-content:flex-end;gap:12px;}
.cj-foot-row span{font-family:var(--cj-font-body);font-size:var(--cj-text-md);color:var(--cj-forest);}
.cj-foot-row a{text-decoration:none;color:inherit;}
.cj-foot-icon{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;flex:none;}
.cj-foot-legal{max-width:1336px;margin:30px auto 0;display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;}
.cj-foot-legal a{font-family:var(--cj-font-body);font-size:var(--cj-text-sm);color:var(--cj-muted-2);text-decoration:none;}
.cj-foot-legal a:hover{color:var(--cj-forest);}
.cj-fbar{max-width:1336px;margin:30px auto 0;display:flex;align-items:center;justify-content:space-between;}
.cj-fbar span{font-family:var(--cj-font-fine);font-size:var(--cj-text-xl);color:var(--cj-forest);}
.cj-credit{display:flex;gap:5px;text-decoration:none;}
.cj-credit span{font-family:var(--cj-font-fine);font-size:var(--cj-text-xl);color:var(--cj-forest);white-space:nowrap;}
.cj-credit img{height:26px;width:auto;display:block;}

/* Floating WhatsApp - lifted above the third-party accessibility widget
   button that sits at the bottom-left corner. */
.cj-wa{position:fixed;bottom:104px;left:24px;z-index:30;width:60px;height:60px;border:none;border-radius:var(--cj-radius-pill);background:var(--cj-sage-bg);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;box-shadow:var(--cj-shadow-float);transition:transform var(--cj-dur) var(--cj-ease),box-shadow var(--cj-dur) var(--cj-ease);}
.cj-wa:hover{transform:scale(1.06);box-shadow:var(--cj-shadow-hover);}

/* Content pages (legal / prose) - inherit brand, simple readable column */
.cj-prose-wrap{max-width:860px;margin:0 auto;padding:56px 24px 80px;direction:rtl;}
.cj-prose-wrap h1{font-family:var(--cj-font-body);font-size:32px;font-weight:var(--cj-w-extra);color:var(--cj-ink-strong);margin:0 0 24px;}
.cj-prose{font-family:var(--cj-font-body);font-size:var(--cj-text-md);line-height:1.8;color:var(--cj-ink);}
.cj-prose h2{font-size:21px;font-weight:var(--cj-w-bold);color:var(--cj-ink-strong);margin:32px 0 12px;}
.cj-prose h3{font-size:17px;font-weight:var(--cj-w-bold);color:var(--cj-ink-strong);margin:22px 0 8px;}
.cj-prose p,.cj-prose li{margin:0 0 12px;}
.cj-prose ul,.cj-prose ol{padding-inline-start:22px;margin:0 0 16px;}
.cj-prose a{color:var(--cj-rose-deep);}
.cj-prose .cj-draft-note{display:block;background:var(--cj-rose-100);border:1px solid var(--cj-rose-200);border-radius:var(--cj-radius-md);padding:12px 16px;font-size:var(--cj-text-sm);color:var(--cj-wine);margin:0 0 28px;}
/* Legal pages: highlighted fill-me markers + last-updated line */
.cj-prose mark{background:#fff3bf;padding:1px 6px;border-radius:4px;}
.cj-prose .cj-updated{color:var(--cj-muted);font-size:var(--cj-text-sm);margin:0 0 24px;}

/* Category filtering (toggle, stays 1:1 - no extra chips) */
.cj-cat.is-active .cj-cat-disc{box-shadow:0 0 0 3px var(--cj-rose-deep);}
.cj-cat.is-active .cj-cat-label{font-weight:var(--cj-w-bold);color:var(--cj-ink-strong);}
.cj-card.is-hidden{display:none;}
.cj-count.is-zero{display:none;}

/* Mini-cart drawer */
.cj-cart-overlay{position:fixed;inset:0;background:rgba(24,20,18,.42);opacity:0;visibility:hidden;transition:opacity .25s var(--cj-ease),visibility .25s var(--cj-ease);z-index:40;}
.cj-cart-overlay.is-open{opacity:1;visibility:visible;}
.cj-drawer{position:fixed;top:0;right:0;height:100%;width:384px;max-width:88vw;background:var(--cj-cream-soft);box-shadow:-8px 0 30px rgba(0,0,0,.16);transform:translateX(100%);visibility:hidden;transition:transform .28s var(--cj-ease),visibility .28s var(--cj-ease);z-index:41;display:flex;flex-direction:column;direction:rtl;}
.cj-drawer.is-open{transform:translateX(0);visibility:visible;}
.cj-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:22px 22px 16px;border-bottom:1px solid var(--cj-rose-100);}
.cj-drawer-title{font-family:var(--cj-font-body);font-size:20px;font-weight:var(--cj-w-bold);color:var(--cj-ink-strong);margin:0;}
.cj-drawer-close{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--cj-muted-2);font-size:24px;line-height:1;cursor:pointer;border-radius:var(--cj-radius-pill);transition:background var(--cj-dur) var(--cj-ease);}
.cj-drawer-close:hover{background:var(--cj-rose-100);}
.cj-drawer-body{flex:1;overflow-y:auto;padding:8px 22px;}
.cj-drawer-foot{padding:18px 22px 24px;border-top:1px solid var(--cj-rose-100);background:var(--cj-cream);}
.cj-cart-empty{text-align:center;color:var(--cj-muted);padding:54px 8px;font-size:var(--cj-text-md);}
.cj-ci{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--cj-rose-100);}
.cj-ci-img{width:64px;height:64px;border-radius:10px;background:#fff no-repeat center/cover;flex:none;box-shadow:var(--cj-shadow-card);}
.cj-ci-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;}
.cj-ci-title{font-family:var(--cj-font-body);font-size:var(--cj-text-base);font-weight:var(--cj-w-bold);color:var(--cj-ink);line-height:1.25;margin:0;}
.cj-ci-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.cj-ci-price{font-family:var(--cj-font-body);font-size:var(--cj-text-base);font-weight:var(--cj-w-bold);color:var(--cj-ink);}
.cj-ci-remove{border:none;background:transparent;color:var(--cj-muted);font-size:var(--cj-text-sm);cursor:pointer;padding:2px 4px;text-decoration:underline;}
.cj-ci-remove:hover{color:var(--cj-rose-deep);}
.cj-ci .cj-qty{padding:5px 10px;gap:10px;}
.cj-cart-total{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.cj-cart-total .lbl{font-size:var(--cj-text-md);color:var(--cj-muted-2);}
.cj-cart-total .amt{font-size:var(--cj-text-2xl);font-weight:var(--cj-w-bold);color:var(--cj-ink-strong);}
.cj-checkout-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:15px;font-family:var(--cj-font-body);font-size:var(--cj-text-lg);font-weight:var(--cj-w-bold);background:var(--cj-rose-deep);color:#fff;border:none;border-radius:var(--cj-radius-md);cursor:pointer;text-decoration:none;transition:background var(--cj-dur) var(--cj-ease),transform var(--cj-dur) var(--cj-ease);}
.cj-checkout-btn:hover{background:var(--cj-rose);transform:translateY(-1px);}
.cj-cart-note{margin:12px 0 0;text-align:center;font-size:var(--cj-text-sm);color:var(--cj-muted);}
/* Orders-closed locked state: buttons stay visible, click opens the popup */
.cj-checkout-btn.is-locked,.cj-locked-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:15px;font-family:var(--cj-font-body);font-size:var(--cj-text-lg);font-weight:var(--cj-w-bold);background:#eceae7;color:var(--cj-muted);border:none;border-radius:var(--cj-radius-md);cursor:not-allowed;text-decoration:none;}
.cj-checkout-btn.is-locked:hover,.cj-locked-btn:hover{background:#eceae7;transform:none;}
.cj-closed-banner{margin:0 0 18px;padding:14px 18px;background:var(--cj-rose-100,#f9ecea);color:var(--cj-rose-deep);border:1px solid var(--cj-rose-300,#e5c8c4);border-radius:var(--cj-radius-md);font-family:var(--cj-font-body);font-size:var(--cj-text-md);text-align:center;}
.cj-drawer-loading{opacity:.45;pointer-events:none;}

/* Checkout pickup notice (req D) */
.cj-checkout-pickup{background:var(--cj-cream);border:1px solid var(--cj-rose-100);border-radius:var(--cj-radius-md);padding:16px 18px;margin:0 0 20px;direction:rtl;text-align:right;}
.cj-checkout-pickup strong{display:block;font-size:var(--cj-text-md);color:var(--cj-ink-strong);margin-bottom:6px;}
.cj-checkout-pickup p{margin:0 0 10px;font-size:var(--cj-text-sm);color:var(--cj-muted-2);line-height:1.5;}
.cj-checkout-waze{display:inline-flex;align-items:center;padding:7px 15px;background:transparent;color:var(--cj-forest);border:1px solid var(--cj-sage);font-size:var(--cj-text-sm);font-weight:var(--cj-w-bold);border-radius:var(--cj-radius-pill);text-decoration:none;transition:background var(--cj-dur) var(--cj-ease);}
.cj-checkout-waze:hover{background:var(--cj-sage-bg);}

/* Product quick-view modal - centered typography, matching the cards */
.cj-card-img{cursor:pointer;}
.cj-card-title{cursor:pointer;}
body.cj-modal-open{overflow:hidden;}
.cj-pmodal,.cj-modal.cj-pmodal{position:relative;max-width:560px;width:100%;padding:0;text-align:right;overflow:hidden;}
.cj-pmodal-close{position:absolute;top:10px;inset-inline-start:10px;z-index:2;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:none;background:rgba(255,255,255,.85);color:var(--cj-ink);font-size:24px;line-height:1;cursor:pointer;border-radius:var(--cj-radius-pill);box-shadow:var(--cj-shadow-card);}
/* The popup photo is NEVER cropped: contain at every ratio / resolution. */
.cj-pmodal-img{height:280px;background:#fff no-repeat center;background-size:contain;}
.cj-pmodal-body{padding:20px 24px 24px;display:flex;flex-direction:column;gap:10px;align-items:stretch;}
.cj-pmodal-body .cj-modal-title{margin:0;text-align:right;}
.cj-pmodal-desc{font-family:var(--cj-font-body);font-size:var(--cj-text-md);line-height:1.7;color:var(--cj-muted-2);max-height:200px;overflow-y:auto;text-align:right;}
.cj-pmodal-desc:empty{display:none;}
.cj-pmodal-desc p{margin:0 0 10px;}
.cj-pmodal-desc p:last-child{margin-bottom:0;}
/* The popup renders the short description as entered: lists, bold, breaks. */
.cj-pmodal-desc ul,.cj-pmodal-desc ol{margin:0 0 10px;padding-inline-start:22px;}
.cj-pmodal-desc li{margin:0 0 4px;}
.cj-pmodal-desc strong,.cj-pmodal-desc b{color:var(--cj-ink);font-weight:var(--cj-w-bold);}
.cj-pmodal-body .cj-card-price{margin:0;text-align:right;}
.cj-pmodal-body .cj-card-actions{margin-top:4px;}
.cj-pmodal-soon{display:none;font-family:var(--cj-font-body);font-size:var(--cj-text-lg);font-weight:var(--cj-w-medium);color:#c98b87;text-align:right;}
/* is-soon is toggled on the overlay (#cj-product-modal) by cj-shop.js */
.cj-pmodal-overlay.is-soon .cj-pmodal-soon{display:block;}
.cj-pmodal-overlay.is-soon .cj-card-price,.cj-pmodal-overlay.is-soon .cj-card-actions{display:none;}
@media (max-width:680px){
  /* Bottom sheet. Doubled selectors beat the later generic .cj-modal-overlay/
     .cj-modal rules (same class specificity, later in file). */
  .cj-modal-overlay.cj-pmodal-overlay{align-items:flex-end;padding:0;}
  .cj-modal.cj-pmodal{max-width:none;border-radius:var(--cj-radius-card) var(--cj-radius-card) 0 0;max-height:88dvh;display:flex;flex-direction:column;transform:translateY(14px);}
  .cj-modal-overlay.is-open .cj-modal.cj-pmodal{transform:translateY(0);}
  .cj-pmodal-img{height:min(230px,32dvh);flex:none;}
  .cj-pmodal-body{flex:1;min-height:0;overflow:hidden;padding-bottom:calc(84px + env(safe-area-inset-bottom));align-self:stretch;}
  .cj-pmodal-desc{flex:1;min-height:0;max-height:none;overflow-y:auto;}
}

/* Generic modal (orders-closed popup, req A) */
.cj-modal-overlay{position:fixed;inset:0;background:rgba(24,20,18,.5);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;visibility:hidden;transition:opacity .2s var(--cj-ease),visibility .2s var(--cj-ease);z-index:50;}

/* Stock / availability toast - above every layer, incl. the drawer and modals. */
.cj-toast{position:fixed;top:calc(var(--cj-header-h) + 14px);left:50%;transform:translateX(-50%) translateY(-8px);z-index:60;max-width:min(92vw,480px);background:#fff;border:1px solid var(--cj-rose-300);color:var(--cj-ink);font-family:var(--cj-font-body);font-size:var(--cj-text-base);line-height:1.5;padding:12px 18px;border-radius:var(--cj-radius-card);box-shadow:var(--cj-shadow-hover);opacity:0;pointer-events:none;transition:opacity .25s var(--cj-ease),transform .25s var(--cj-ease);text-align:center;direction:rtl;}
.cj-toast.is-show{opacity:1;transform:translateX(-50%) translateY(0);}
.cj-modal-overlay.is-open{opacity:1;visibility:visible;}
.cj-modal{background:#fff;border-radius:var(--cj-radius-card);padding:30px 28px;max-width:380px;width:100%;text-align:center;direction:rtl;box-shadow:var(--cj-shadow-hover);transform:translateY(8px);transition:transform .2s var(--cj-ease);}
.cj-modal-overlay.is-open .cj-modal{transform:translateY(0);}
.cj-modal-title{font-family:var(--cj-font-body);font-size:20px;font-weight:var(--cj-w-bold);color:var(--cj-ink-strong);margin:0 0 12px;}
.cj-modal-text{font-family:var(--cj-font-body);font-size:var(--cj-text-md);color:var(--cj-muted-2);line-height:1.5;margin:0 0 22px;}
.cj-modal-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 28px;font-family:var(--cj-font-body);font-size:var(--cj-text-base);font-weight:var(--cj-w-bold);background:var(--cj-rose-deep);color:#fff;border:none;border-radius:var(--cj-radius-md);cursor:pointer;}
.cj-modal-btn:hover{background:var(--cj-rose);}

@media (max-width:680px){
  /* Mobile: everything compact. Header 64px (the var drives every sticky
     offset), strip sized so exactly ~4.5 discs are visible - the half disc
     IS the scroll affordance. */
  :root{
    --cj-header-h:60px;
    /* 5.5 discs: (100vw - 14px pad-start - 5x12px gaps) / 5.5, clamped so
       landscape / large phones never exceed the desktop disc scale */
    --cj-disc:clamp(46px, calc((100vw - 74px)/5.5), 72px);
    /* strip height = 10 pad-top + disc + 5 gap + 15 label + 8 pad-bottom */
    --cj-strip-h:calc(var(--cj-disc) + 38px);
  }
  html{scroll-padding-top:calc(var(--cj-header-h) + var(--cj-strip-h));}
  /* RTL strip: starts from the right (שונות first), drags naturally leftward */
  /* Same LTR item flow as desktop (loaf ends up rightmost); cj-shop.js opens
     the scroller at its right edge so RTL reading starts at עוגות פס. */
  .cj-cats{gap:12px;padding:10px 14px 8px;position:sticky;top:var(--cj-header-h);z-index:15;background:var(--cj-white);box-shadow:0 6px 16px -10px rgba(61,58,54,.18);scroll-snap-type:x proximity;}
  .cj-head-cats{display:none;}
  .cj-cat{scroll-snap-align:center;gap:5px;flex:0 0 var(--cj-disc);width:var(--cj-disc);}
  .cj-cat-disc{width:var(--cj-disc);height:var(--cj-disc);}
  .cj-cat-disc img{width:100%;height:100%;}
  /* Labels may exceed the disc width slightly (long names like עוגות עגולות) */
  .cj-cat-label{font-size:11px;line-height:15px;max-width:calc(100% + 18px);margin-inline:-9px;overflow:hidden;text-overflow:ellipsis;}
  .cj-head{padding:0 14px;}
  .cj-head-actions{gap:10px;}
  .cj-acct span{display:none;}
  .cj-acct{padding:0 11px;height:38px;}
  .cj-iconbtn{width:40px;height:40px;}
  .cj-iconbtn svg,.cj-acct svg{width:18px;height:18px;}
  .cj-iconbtn .cj-count{min-width:19px;height:19px;font-size:11px;top:-5px;inset-inline-end:-5px;}
  .cj-wordmark{font-size:20px;}
  .cj-intro{padding:24px 20px 0;}
  .cj-plaque{width:150px;height:150px;}
  .cj-info{font-size:16px;margin-top:18px;}
  .cj-main{padding:32px 16px 60px;}
  /* Never overflow tiny phones (320px): card yields to the viewport */
  .cj-grid .cj-card{flex:0 0 min(var(--cj-card-w),100%);width:min(var(--cj-card-w),100%);}
  /* Footer: stacked, centered, clear of the floating buttons */
  .cj-foot{padding:36px 20px 96px;}
  .cj-fbar{flex-direction:column;gap:12px;align-items:center;text-align:center;}
  .cj-fbar span{font-size:var(--cj-text-md);white-space:nowrap;padding-top:3px;}
  .cj-foot-legal{gap:14px;}
  .cj-wa{width:54px;height:54px;bottom:88px;left:14px;}
  .cj-wa svg{width:26px;height:26px;}
}
