/* Style D v15: local scope protects the shared frame, cart and checkout. */
.petit-main.petit-d-main { max-width:1296px; padding:24px 20px 48px; }
.d-shop { direction:rtl; color:var(--ink); font:400 16px/1.6 var(--sans); }
.d-shop [hidden] { display:none!important; }
.d-shop h1,.d-shop h2,.d-shop h3 { font-family:var(--head); font-weight:var(--head-w); line-height:1.25; margin:0; }
.d-shop h1 { font-size:32px; font-weight:var(--h1-w); }
.d-shop h2 { font-size:26px; }
.d-shop :focus-visible { outline:2px solid var(--olive); outline-offset:3px; }
.d-shop a,.d-shop button,.d-shop select,.d-shop input { touch-action:manipulation; }
.d-shop button,.d-shop select,.d-shop input { min-height:44px; }
.d-shop a { text-underline-offset:4px; }
.d-shop-categories,.d-shop-subcategories { display:flex; gap:8px; overflow-x:auto; padding:4px 3px 12px; }
.d-shop-categories a,.d-shop-subcategories a { flex:none; min-width:44px; min-height:44px; display:inline-flex; align-items:center; padding:0 16px; border-radius:999px; text-decoration:none; }
.d-shop-categories { border-bottom:1px solid var(--line); }
.d-shop-subcategories { margin-top:12px; }
.d-shop-subcategories a { background:var(--surface); }
.d-shop-categories a:hover { background:var(--surface); }
.d-shop-categories a[aria-current],.d-shop-subcategories a[aria-current] { background:var(--olive); color:#fff; }
.d-shop-opening { padding-block:24px 16px; }
.d-shop .term-description { color:var(--muted); max-width:760px; }
.d-shop-toolbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; margin-block:16px 24px; }
.d-shop-toolbar:before,.d-shop-toolbar:after { display:none; }
.d-shop-toolbar .woocommerce-notices-wrapper { flex-basis:100%; }
.d-shop-toolbar .woocommerce-result-count,.d-shop-toolbar .woocommerce-ordering { float:none; margin:0; }
.d-shop-toolbar select { border:1px solid var(--line); border-radius:999px; background:var(--bg); padding:6px 16px; max-width:100%; }
.d-products { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.d-card { position:relative; min-width:0; background:var(--surface); }
.d-card-media { position:relative; }
.d-card-photos { display:block; }
.d-card.is-open .d-card-price { display:none; }
.d-card .d-shop-photo,.d-card .petit-empty-photo { width:100%; aspect-ratio:4/5; height:auto; object-fit:cover; display:block; border-radius:0; }
.d-card .petit-empty-photo { display:grid; place-items:center; padding:20px; text-align:center; }
.d-card-tags { position:absolute; top:14px; right:8px; max-width:calc(100% - 70px); display:flex; flex-direction:column; align-items:flex-start; gap:4px; pointer-events:none; }
.d-card-tags span { min-height:28px; padding:0 9px; font-size:12.5px; font-weight:600; border-radius:999px; }
.d-card-tags span,.d-card-band { background:var(--cap); box-shadow:inset 0 0 0 1px rgba(31,32,28,.12); backdrop-filter:blur(9px); }
.d-card-top { position:absolute; top:8px; left:8px; z-index:2; display:flex; flex-direction:column; align-items:flex-end; gap:2px; }
.d-card-buy { margin:0; }
.d-shop .d-plus,.d-shop .d-heart { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; min-width:44px; padding:0; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink); font-size:26px; line-height:1; text-decoration:none; cursor:pointer; }
/* Final card controls from style.css (Yossi 16/10), with 44px hit targets. */
.d-card-top .d-plus,.d-card-top .d-heart { border:0; border-radius:0; background:transparent; color:#FFFFFF; backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:none; }
/* A soft dark glow behind the white + and heart, for light photos (tester 20/10). No circle: Yossi's + sits bare. */
/* One soft glow per icon, centred on it (tester 20/10: one glow for the column barely reached the +). No hard edge. */
/* Tester 20/10: a shadow alone left the + under 3:1 on 26 of 46 cards at 1366, the glow on 4. The glow stays, at every width. */
.d-card-top::before { content:""; position:absolute; inset:-14px -16px; z-index:-1; pointer-events:none;
  background:radial-gradient(circle at 50% 36px,rgba(31,32,28,.5) 0,rgba(31,32,28,.5) 10px,rgba(31,32,28,0) 34px),
    radial-gradient(circle at 50% calc(100% - 36px),rgba(31,32,28,.5) 0,rgba(31,32,28,.5) 10px,rgba(31,32,28,0) 34px); }
.d-card-top .d-plus svg,.d-card-top .d-heart svg { filter:drop-shadow(0 0 1px rgba(0,0,0,.6)) drop-shadow(0 1px 3px rgba(0,0,0,.35)); stroke-width:2.4; }
.d-card-top .d-plus svg { width:26px; height:26px; }
.d-card-top .d-heart svg { width:24px; height:24px; }
.d-card-top .d-heart[aria-pressed="true"] svg { fill:#FFFFFF; }
.d-card-foot .d-heart svg { width:24px; height:24px; stroke-width:1.7; }
.d-card-foot .d-plus svg { width:20px; height:20px; stroke-width:2; }
.d-card-foot .d-heart[aria-pressed="true"] svg { fill:var(--olive); color:var(--olive); }
.d-card.is-open .d-card-top { display:none; }
.d-card-band { margin:8px; display:flex; flex-direction:column; }
.d-card .d-card-heading { flex:none; font-family:var(--sans); font-size:16px; }
.d-card-toggle { width:100%; min-height:56px!important; display:flex; align-items:center; gap:8px; padding:6px 12px; border:0; background:transparent; color:var(--ink); text-align:start; cursor:pointer; }
.d-card-name { flex:1; min-width:0; font-size:15px; font-weight:600; line-height:1.25; overflow-wrap:anywhere; }
.d-card-price { flex:none; font-size:14.5px; font-weight:400; color:#3E3E38; font-variant-numeric:tabular-nums; }
.d-card-price del,.d-card-price ins,.d-card-price .petit-tax-label { display:block; }
.d-card-price ins { text-decoration:none; }
.d-card-price .petit-tax-label { font-size:10px; margin:0; }
.d-card-toggle svg { flex:none; width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2; transition:transform .3s; }
.d-card-more { display:flex; flex-direction:column; gap:8px; padding:0 12px 12px; min-height:0; }
.d-card-description { flex:1; min-height:0; overflow-y:auto; font-size:14.5px; line-height:1.5; color:#34342F; }
.d-card-description p { margin:0 0 8px; }
.d-card-description a { display:inline-flex; align-items:center; min-height:44px; color:var(--olive); font-weight:600; }
.d-card-foot { display:flex; justify-content:flex-end; align-items:center; gap:8px; }
.d-card.is-enhanced .d-card-band { position:absolute; inset:auto 8px 8px; margin:0; max-height:calc(100% - 16px); }
.d-card.is-enhanced:not(.is-open) .d-card-name { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.d-card.d-card-bundle.is-enhanced:not(.is-open) .d-card-name { display:block; -webkit-line-clamp:unset; overflow:visible; }
.d-card.is-open .d-card-tags { visibility:hidden; }
.d-card.is-open .d-card-toggle svg { transform:rotate(180deg); }
.d-shop .woocommerce-pagination { margin-block:32px; }
/* The catalog loads without the WooCommerce stylesheets (mobile LCP, 20/10): the page list is laid out here. */
.d-shop .woocommerce-pagination ul.page-numbers { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; list-style:none; margin:0; padding:0; border:0; }
.d-shop .woocommerce-pagination ul.page-numbers li { margin:0; border:0; }
.d-shop .woocommerce-pagination .page-numbers a,.d-shop .woocommerce-pagination .page-numbers span.dots { border:1px solid var(--line); border-radius:999px; color:var(--ink); text-decoration:none; }
.d-shop .woocommerce-pagination .page-numbers span.current { border-radius:999px; background:var(--olive); color:#fff; font-weight:600; }
.d-shop .woocommerce-pagination .page-numbers a,.d-shop .woocommerce-pagination .page-numbers span { min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
.d-shop .woocommerce-breadcrumb a { min-height:44px; display:inline-flex; align-items:center; }
.d-product { display:grid; gap:28px; padding-top:16px; }
.d-product-gallery { display:flex; flex-direction:column; gap:10px; min-width:0; }
.d-product-photo { aspect-ratio:4/5; background:var(--surface); }
.d-product-photo .d-shop-photo { width:100%; height:100%; object-fit:cover; display:block; border-radius:0; }
@media(max-width:900px) {
  /* Reserve 560px for the mobile header, breadcrumb, spacing and purchase details.
     Small viewport units keep the same budget while the browser toolbar is visible. */
  .single-product .d-product-photo { aspect-ratio:auto; height:clamp(120px, calc(100vh - 610px), 50vh); height:clamp(120px, calc(100svh - 610px), 50svh); }
  .single-product .d-product-photo > .d-shop-photo { object-fit:cover; object-position:center; }
}
.d-product-gallery-rest { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.d-product-gallery-rest img { width:100%; height:auto; }
.d-product-info { display:flex; flex-direction:column; gap:18px; min-width:0; }
.d-shop-price { font-size:24px; font-variant-numeric:tabular-nums; }
.d-shop-price ins { text-decoration:none; }
.d-shop-description { color:#3A3A34; max-width:52ch; }
.d-shop-description p { margin:0 0 12px; }
.d-product-buy form.cart { margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.d-product-buy .variations_form.cart { display:block; }
.d-product:has(.variations_form) .d-shop-price { display:none; }
.d-product-buy .single_variation_wrap .woocommerce-variation-add-to-cart { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.d-product-buy .quantity { float:none!important; margin:0!important; }
.d-product-buy .quantity input.qty { border:1px solid var(--line); border-radius:999px; width:80px; background:var(--surface); color:var(--ink); min-height:48px; }
.d-shop .d-product-buy button.button,.d-shop .petit-bundle-bar button { min-height:48px; border:1px solid var(--olive); border-radius:999px; background:var(--olive); color:#fff; padding:10px 24px; float:none; }
.d-shop .d-product-buy button.button:hover,.d-shop .petit-bundle-bar button:hover { background:var(--olive-2); }
.d-product-buy .variations { border:0; width:100%; }
.d-product-buy .variations th,.d-product-buy .variations td { border:0; text-align:start; }
.d-product-buy select { border:1px solid var(--line); border-radius:999px; background:#fff; padding:8px 16px; max-width:100%; }
.d-product-buy .reset_variations { min-height:44px; display:inline-flex; align-items:center; }
.d-shop .petit-product-details { margin:0; }
.d-shop .petit-product-facts { gap:8px; }
.d-shop .petit-product-facts div { background:var(--surface); border-radius:999px; padding:4px 12px; flex-wrap:wrap; font-size:14px; }
.d-shop .petit-kitchen-note { background:var(--surface); border:1px solid var(--line); padding:16px; }
.d-shop .petit-kitchen-note h2 { font-size:18px; margin-bottom:6px; }
.d-shop .petit-product-accordion { border-color:var(--line); }
.d-shop .petit-product-accordion summary { min-height:54px; }
.d-shop-delivery { border-top:1px solid var(--line); padding-top:16px; color:var(--muted); font-size:14.5px; }
.d-shop-delivery p { margin:0 0 8px; }
.d-shop-delivery a { display:inline-flex; min-height:44px; align-items:center; color:var(--olive); font-weight:600; }
/* The CTO 28/10: WhatsApp 649 with the product's name, a clear button in the site's second style. */
.d-shop-delivery a.d-shop-whatsapp { gap:8px; margin-top:4px; padding:0 20px; border:1.5px solid var(--olive); border-radius:999px; background:#fff; text-decoration:none; }
.d-shop-delivery a.d-shop-whatsapp:hover { background:#F3F4EF; }
.d-shop-delivery a.d-shop-whatsapp svg { width:20px; height:20px; flex:none; }
.d-shop-long-description { margin-top:32px; max-width:75ch; }
.d-bundle-hero { position:relative; margin-top:16px; }
.d-bundle-photo { aspect-ratio:16/9; max-height:520px; width:100%; background:var(--surface); }
.d-bundle-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.d-bundle-glass { padding:20px 0 0; display:flex; flex-direction:column; gap:6px; }
@media(min-width:760px) {
  .d-bundle-glass { position:absolute; right:24px; bottom:24px; width:min(520px,46%); padding:24px; background:var(--panel); max-height:calc(100% - 48px); overflow-y:auto; }
}
@media(min-width:900px) {
  .petit-main.petit-d-main { padding-inline:48px; }
  .d-shop h1 { font-size:48px; }
  .d-shop h2 { font-size:32px; }
  .d-card .d-card-heading { font-size:16px; }
  .d-card-name { font-size:16px; }
  .d-card-price { font-size:15px; }
  .d-product { grid-template-columns:1.2fr 1fr; gap:48px; align-items:start; }
  .d-shop .petit-kitchen-note { transform:rotate(-.5deg); }
}
@media(max-width:899px) {
  .d-products { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; margin-inline:-20px; padding:4px 20px 16px; scroll-padding-inline:20px; }
  .d-products>.d-card { flex:0 0 64%; scroll-snap-align:start; }
}
@media(max-width:899px) and (min-width:600px) { .d-products>.d-card { flex-basis:40%; } }
/* Desktop stage A. The photo controls keep the same position in both states. */
@media(min-width:901px) {
  .petit-main.petit-d-main { box-sizing:border-box; width:100%; max-width:1760px; padding-inline:80px; }
  .d-products { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
  /* The glow centres follow the 48px buttons. An open card shows dark icons on white, so it has no glow. */
  .d-card-top::before { background:radial-gradient(circle at 50% 38px,rgba(31,32,28,.5) 0,rgba(31,32,28,.5) 10px,rgba(31,32,28,0) 34px),
      radial-gradient(circle at 50% calc(100% - 38px),rgba(31,32,28,.5) 0,rgba(31,32,28,.5) 10px,rgba(31,32,28,0) 34px); }
  .d-card.is-open .d-card-top::before { content:none; }
  .d-card.is-open .d-card-top { display:flex; }
  .d-card-foot { display:none; }
  .d-card-top .d-plus,.d-card-top .d-heart,.d-card-foot .d-plus,.d-card-foot .d-heart {
    width:48px; height:48px; min-width:48px; min-height:48px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none;
  }
  .d-card-top .d-plus svg,.d-card-foot .d-plus svg { width:30px; height:30px; stroke-width:2.8; }
  .d-card-top .d-heart svg,.d-card-foot .d-heart svg { width:28px; height:28px; stroke-width:2.4; }
  .d-card.is-open .d-card-top .d-plus,.d-card.is-open .d-card-top .d-heart,.d-card-foot .d-plus,.d-card-foot .d-heart { color:#1F201C; }
  .d-card.is-open .d-card-top svg,.d-card-foot svg { filter:none; }
  .d-card-top .d-heart[aria-pressed="true"] svg,.d-card-foot .d-heart[aria-pressed="true"] svg { fill:currentColor; color:inherit; }
  .d-card.is-enhanced.is-open .d-card-band { inset:8px; }
  .d-card.is-open .d-card-toggle,.d-card.is-open .d-card-more { padding-left:64px; }
  .d-card.is-open .d-card-more { flex:1; }
  .d-card.is-open .d-card-more { animation:d-card-reveal 160ms ease-out; }
  .d-card-toggle svg { transition:transform 160ms; }
}
@media(min-width:1200px) { .d-products { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@keyframes d-card-reveal { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { .d-shop * { transition:none!important; scroll-behavior:auto!important; } }
@media(prefers-reduced-motion:reduce) { .d-card-more { animation:none!important; } }
.d-shop-lead { margin:6px 0 0; color:var(--muted); font-size:17px; line-height:1.5; }

/* Desktop clean card band 20/10: start */
@media(min-width:901px) {
  .d-card.is-enhanced.is-open .d-card-band { inset:auto 8px 8px 8px; max-height:55%; background:var(--cap); box-shadow:none; backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px); }
  .d-card.is-open .d-card-more { min-height:0; overflow-y:auto; }
  .d-card.is-open .d-card-description { flex:none; overflow-y:visible; }
  .d-card.is-open .d-card-top::before { content:""; }
  .d-card.is-open .d-card-top .d-plus,.d-card.is-open .d-card-top .d-heart { color:#FFFFFF; }
  .d-card.is-open .d-card-top svg { filter:drop-shadow(0 0 1px rgba(0,0,0,.6)) drop-shadow(0 1px 3px rgba(0,0,0,.35)); }
}
/* Desktop clean card band 20/10: end */

/* Catalogue filters and product page 21/10: start */
/* Filters beside the catalogue (Yossi 21/10): a row of chips up to 1199px, a column on the right from 1200px. */
.d-shop-body { display:grid; gap:8px 40px; }
.d-shop-main { min-width:0; }
.d-shop-filters form { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.d-shop .d-filter-title { font:600 16px/1.4 var(--sans); }
.d-filter-list { display:flex; gap:8px; overflow-x:auto; padding:3px; max-width:100%; }
.d-filter { flex:none; display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 14px; border:1px solid var(--line); border-radius:999px; cursor:pointer; }
.d-shop .d-filter input { min-height:0; width:18px; height:18px; margin:0; accent-color:var(--olive); }
.d-filter:has(input:checked) { border-color:var(--olive); background:var(--surface); }
.d-filter-count { color:var(--muted); font-size:13px; }
.d-filter-actions { display:flex; gap:12px; align-items:center; }
.d-filter-apply { border:1px solid var(--line); border-radius:999px; background:var(--bg); padding:0 16px; }
.d-shop-filters form.is-live .d-filter-apply { display:none; }
@media(min-width:1200px) {
  .d-shop-body:has(> .d-shop-filters) { grid-template-columns:200px minmax(0,1fr); align-items:start; }
  .d-shop-filters { padding-top:16px; }
  .d-shop-filters form { flex-direction:column; align-items:stretch; }
  .d-filter-list { flex-direction:column; overflow:visible; padding:0; }
  .d-filter { border-color:transparent; border-radius:8px; padding:0 8px; }
  .d-filter:hover { background:var(--surface); }
  .d-filter-count { margin-inline-start:auto; }
}
/* Product page (Yossi 21/10: "צר יותר ומעוצב... התמונה ענקית"): one centred column of about 1060px, the photo 460px at most. */
@media(min-width:901px) {
  .d-product-page:has(> .d-product) { max-width:1060px; margin-inline:auto; }
  .d-product-page .d-product { grid-template-columns:minmax(0,460px) minmax(0,1fr); gap:56px; padding-top:24px; }
  .d-product-page .d-product-info h1 { font-size:38px; }
  .d-product-page .d-product-info { padding-top:8px; }
}
/* Bundle page (Yossi 21/10: "רחוק לי הכמות... לצמצם למסגרת קטנה יותר... אולי 2 עמודות"): the same narrow frame,
   and from 1100px the items in two columns, so each quantity sits next to its item. */
@media(min-width:901px) {
  .d-product-page:has(> .d-bundle-page) { max-width:1060px; margin-inline:auto; }
}
@media(min-width:1100px) {
  .d-shop .petit-bundle-selection,.d-shop .petit-bundle-extras ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:40px; }
}
.d-bundle-add { align-self:flex-start; min-height:44px; margin-top:12px; padding:0 28px; border:0; border-radius:999px; background:var(--olive); color:#fff; font:600 16px/1 var(--sans); cursor:pointer; }
/* Yossi 21/10 ("מסגרת... גם בפלוס - לא צריך"): on cards the focus ring is for keyboard users only (d-catalog.js marks Tab). */
html:not([data-kbd]) .d-card :focus-visible { outline:none; }
/* Yossi 21/10: a parent category on one page, a heading per subcategory; the chips jump below the sticky header. */
.d-group { scroll-margin-top:140px; }
.d-group+.d-group { margin-top:32px; }
.d-shop .d-group-title { font-size:22px; margin:0 0 12px; }
@media(min-width:901px) { .d-shop .d-group-title { font-size:26px; } }
/* Category bottom 21/10: inherits the shared pd-faq accordion, below the complete product list. */
.d-shop .d-category-bottom { max-width:80ch; margin-block:48px 24px; overflow-wrap:anywhere; }
.d-category-bottom-intro { margin:0 0 24px; }
.d-category-bottom .pd-faq summary { min-height:44px; }
.d-category-bottom-article { margin:20px 0 0; }
.d-category-bottom-article a { display:inline-flex; align-items:center; min-height:44px; color:var(--olive); }
.d-category-bottom :focus-visible { outline:3px solid var(--olive); outline-offset:4px; }
/* Catalogue filters and product page 21/10: end */

/* DESK-E 21/10: start */
/* Yossi: "בלי חץ קטן", "המחיר משמאל לשם המוצר", "להקטין ושיהיה בשורה אחת". */
.d-card-toggle { flex-direction:row; align-items:flex-start; }
.d-card-price { white-space:nowrap; text-align:start; }
.d-card .d-card-name,
.d-card.is-enhanced:not(.is-open) .d-card-name { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.d-card-tags { top:8px; max-width:calc(100% - 64px); height:22px; flex-direction:row; flex-wrap:wrap; align-content:flex-start; gap:4px; overflow:hidden; }
.d-card-tags span { flex:none; min-height:0; max-width:100%; padding:2px 8px; font-size:12px; line-height:18px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; box-sizing:border-box; }
/* A second tag fits alongside the first or wraps completely outside the one-line viewport. */
.d-card-tags span:nth-child(n+3) { display:none; }
.d-card-top { gap:4px; }
/* Remove the inline button's baseline space between the two hit targets. */
.d-card-top > .d-card-buy { display:flex; }
.d-row { display:contents; }
.d-row-hint { display:none; }
@media(max-width:900px) {
  .petit-main.petit-d-main:has(.d-catalog) { padding-inline:20px; }
  .d-catalog .d-shop-body { grid-template-columns:minmax(0,1fr); }
  .d-catalog .d-products-mobile { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; overflow:visible; margin:0; padding:0; scroll-snap-type:none; }
  .d-catalog .d-products-rows { grid-template-columns:minmax(0,1fr); }
  .d-products-rows .d-row { display:flex; direction:rtl; gap:12px; width:calc(100% + 20px); box-sizing:border-box; padding:0 0 0 20px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:0 20px; scrollbar-width:none; }
  .d-products-rows .d-row::-webkit-scrollbar { display:none; }
  /* Yossi 22/10: the size of the two-column cards ("כמו של הביס סושי"), two to a screen. */
  .d-row > .d-card { flex:0 0 calc((100vw - 52px) / 2); scroll-snap-align:start; }
  .d-row-hint { display:inline-block; margin-bottom:12px; color:var(--olive); font:400 14.5px/1.5 var(--sans); }
  .d-group-head { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 12px; margin:0 0 12px; }
  .d-group-head .d-group-title { margin:0; }
  .d-group-head .d-row-hint { margin:0; }
  /* Checked 21/10 at 390: "פרסבורגר" broke as "פרסבורג ר" next to the price. Whole words, a smaller price. */
  .d-row > .d-card .d-card-name, .d-products-mobile .d-card-name { overflow-wrap:normal; word-break:normal; font-size:14px; }
  .d-row > .d-card .d-card-price, .d-products-mobile .d-card-price { font-size:13px; }
}
/* DESK-E 21/10: end */

/* DESK-H 22/10: "מבחינת הקטלוג. הייתי רוצה גודל כמו של הביס סושי. עדיין אגב לשמור על תמונות 9:16. אב להציג 2 בשורה ולעשות אולי חיווי קטן לצד שיראו שניתן לגלול." */
.d-row-wrap { display:contents; }
.d-row-more { display:none; }
@media(max-width:900px) {
  .d-products-rows > .d-row-wrap { display:block; position:relative; min-width:0; }
  .d-row-more { display:flex; position:absolute; left:6px; top:50%; z-index:2; width:32px; height:32px; margin-top:-16px; align-items:center; justify-content:center; border-radius:50%; background:rgba(255,255,255,.92); box-shadow:0 1px 4px rgba(0,0,0,.2); color:#1F201C; pointer-events:none; transition:opacity .2s; }
  .d-row-wrap[data-row-end] > .d-row-more { opacity:0; }
}
/* DESK-H 22/10, tags: "תגיות- בנייד- צריכיות להיות קטנות יותר ופחות גבוהות. צריך לכל תגית צבע- מתאים לילדים- ורוד, ללא קמח- צהוב, טבעוני- ירוק. אם שי שני תגים יחד בנייד- לשים את שני עיגולי הצבע בלי הטקסט. ואת התג תשימו בתוך דף המוצר" */
:root { --tag-kids:#F4C9D7; --tag-kids-dot:#DB7096; --tag-flour:#F4E19C; --tag-flour-dot:#D6AE2B; --tag-vegan:#CFE3BA; --tag-vegan-dot:#6A9A45; }
.d-tag-text { font-weight:inherit; }
.d-product-tags { display:flex; flex-wrap:wrap; gap:6px; margin:4px 0 12px; }
.d-product-tags .d-tag { padding:3px 12px; border-radius:999px; font-size:14px; font-weight:600; line-height:20px; background:var(--surface); }
.d-card-tags .d-tag-kids,.d-product-tags .d-tag-kids { background:var(--tag-kids); color:#5E1F38; }
.d-card-tags .d-tag-flour,.d-product-tags .d-tag-flour { background:var(--tag-flour); color:#4E3F0B; }
.d-card-tags .d-tag-vegan,.d-product-tags .d-tag-vegan { background:var(--tag-vegan); color:#28401A; }
.d-tag-dot { display:inline-block; flex:none; width:10px; height:10px; margin-inline-end:6px; border-radius:50%; }
.d-tag-dot.d-tag-kids { background:var(--tag-kids-dot); }
.d-tag-dot.d-tag-flour { background:var(--tag-flour-dot); }
.d-tag-dot.d-tag-vegan { background:var(--tag-vegan-dot); }
@media(max-width:900px) {
  .d-card-tags { height:18px; }
  .d-card-tags span { padding:1px 7px; font-size:11px; line-height:16px; }
  /* Two tags or more: only the colour dots; the names stay for screen readers. */
  .d-card-tags:has(> .d-tag + .d-tag) { height:14px; gap:5px; }
  .d-card-tags:has(> .d-tag + .d-tag) > .d-tag { width:14px; height:14px; padding:0; border-radius:50%; box-shadow:0 0 0 1.5px #fff; backdrop-filter:none; }
  .d-card-tags:has(> .d-tag + .d-tag) > .d-tag-kids { background:var(--tag-kids-dot); }
  .d-card-tags:has(> .d-tag + .d-tag) > .d-tag-flour { background:var(--tag-flour-dot); }
  .d-card-tags:has(> .d-tag + .d-tag) > .d-tag-vegan { background:var(--tag-vegan-dot); }
  .d-card-tags:has(> .d-tag + .d-tag) .d-tag-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
}
/* Yossi 22/10: "הסינונים בנייד נראים לי תופסים יותר מדי מקום. תעשה אותם בשורה אחת שזזה מצד לצד. אבל שגם יהיו קטנים יותר מבחירת הקטגוריות".
   One sideways row again (it replaces the wrap of a12a963), and on the phone the filter chips are smaller than the
   category chips (44px, 16px text): 32px, 13px text, a smaller box and dot, so most of the five show at once. */
@media(max-width:600px) {
  .d-filter-list:not([data-group-filters]) { gap:6px; }
  .d-filter-list:not([data-group-filters]) .d-filter { min-height:32px; gap:5px; padding:0 10px; font-size:13px; }
  .d-shop .d-filter-list:not([data-group-filters]) .d-filter input { width:14px; height:14px; }
  .d-filter-list:not([data-group-filters]) .d-filter-count { font-size:11px; }
  .d-filter-list:not([data-group-filters]) .d-tag-dot { width:8px; height:8px; margin-inline-end:4px; }
}
/* End DESK-H 22/10. */

/* DESK-I 22/10, Yossi: "כשגוללים צריך להקפיא גם את החלוקה לקטגוריות של מגשי האירוח. גם הסינון צריך 'לרדת עם הגלילה'. גם כפתור חץ בדפים ארוכים של חזרה למעלה. משהו עדין"
   --pd-stuck is the visible height of the frozen header and --pd-chips the subcategory row, both measured by d-catalog.js. */
.d-shop-subcategories { position:sticky; top:var(--pd-stuck, 98px); z-index:30; background:var(--bg, #fff); box-shadow:0 6px 8px -8px rgba(31,32,28,.25); }
@media(min-width:901px) { .d-shop-subcategories { top:var(--pd-stuck, 120px); } }
@media(min-width:1200px) {
  .d-shop-body > .d-shop-filters:has(form) { position:sticky; top:calc(var(--pd-stuck, 120px) + var(--pd-chips, 64px) + 16px); align-self:start;
    max-height:calc(100vh - var(--pd-stuck, 120px) - var(--pd-chips, 64px) - 32px); overflow-y:auto; }
}
/* End DESK-I 22/10. */

/* CARD-TIGHT 26/10, Yossi: on the phone the + and the heart sit tight in the top-left corner, the heart under the +.
   Each keeps a 40x40 target; the icons move toward each other inside it, about 4px apart. The glows follow the icons. */
@media(max-width:900px) {
  .d-card-top { top:0; left:0; gap:0; }
  .d-card-top .d-plus,.d-card-top .d-heart { width:40px; height:40px; min-width:40px; min-height:40px; }
  .d-card-top .d-plus { align-items:flex-end; padding-bottom:2px; }
  .d-card-top .d-heart { align-items:flex-start; padding-top:2px; }
  .d-card-top::before { background:radial-gradient(circle at 50% 39px,rgba(31,32,28,.5) 0,rgba(31,32,28,.5) 10px,rgba(31,32,28,0) 34px),
      radial-gradient(circle at 50% calc(100% - 40px),rgba(31,32,28,.5) 0,rgba(31,32,28,.5) 10px,rgba(31,32,28,0) 34px); }
}
/* End CARD-TIGHT 26/10. */

/* STRICT-FIX 26/10 (the strict user test on live; Yossi: "שאר התיקונים בסדר").
   1. The catalog keeps its full width on the phone (Yossi 26/10: "אני רוצה לשמור על הרוחב"; a lane for the floating
      column made the cards 151px instead of 169px). */
@media(max-width:900px) {
  /* The tight + and heart sit at the card's very top: their keyboard ring is drawn inside, so the row does not clip it. */
  .d-card-top .d-plus:focus-visible,.d-card-top .d-heart:focus-visible { outline-offset:-2px; }
  /* Instead, the floating column steps aside while the customer scrolls down the catalog (d-catalog.js sets the class
     on the shop and the categories only) and comes back on a small scroll up. `translate` leaves `transform` alone. */
  body .pd-tools,body #wp_access_helper_container .aicon_link { transition:translate .22s ease,opacity .22s ease; }
  body.pd-tools-away .pd-tools:not(:focus-within),body.pd-tools-away #wp_access_helper_container:not(.active):not(:focus-within) .aicon_link { translate:calc(-100% - 20px) 0; opacity:0; pointer-events:none; }
}
@media(max-width:900px) and (prefers-reduced-motion:reduce) {
  body .pd-tools,body #wp_access_helper_container .aicon_link { transition:none; }
}
/* 2. A product's first photo, then its name, price and "הוספה לסל", then its other photos (inc/shop.php, in this order
      for screen readers too). On the phone they stood in between, and the button was at 1030px of an 844px screen.
      From 900px the two columns stay as they were: the other photos under the first one, 10px apart, the words beside. */
@media(min-width:900px) {
  .d-product,.d-product-page .d-product { grid-template-rows:auto 1fr; row-gap:10px; }
  .d-product > .d-product-gallery,.d-product > .d-product-gallery-rest { grid-column:1; }
  .d-product > .d-product-gallery-rest { grid-row:2; align-self:start; }
  .d-product > .d-product-info { grid-column:2; grid-row:1 / span 2; }
}
@media(max-width:899px) {
  /* The words keep out of the floating column's lane too (the photos stay full width): 20px page edge + 36px = 56px. */
  .single-product .d-product-info { padding-left:36px; }
}
/* 3. A bundle's top "להוסיף לסל" carries its price, the same total as the form below (bundles.js keeps them equal). */
.d-bundle-top-buy { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin-top:12px; }
.d-bundle-top-buy .d-bundle-add { margin-top:0; }
.d-bundle-top-price { margin:0; font-size:18px; font-variant-numeric:tabular-nums; }
.d-bundle-top-price small { color:var(--muted); font-size:13px; }
/* End STRICT-FIX 26/10. */

/* REFRESH-1 26/10 (Yossi 17:2x).
   1. "הגלילה- בסדר גמור": on the phone catalog, scrolling down leaves only the products; scrolling up brings back the bar
      with the categories, city and date, the subcategories and the filters (pinned under them) together with the floating
      column. body.pd-tools-away comes from d-catalog.js, which also measures --pd-header and --pd-filters. The sticky
      `top` moves them out of view: a transform on the header would capture the floating column (position:fixed) and
      make the page scroll sideways. */
@media(max-width:900px) {
  body:not(.woocommerce-cart):not(.woocommerce-checkout) .wp-site-blocks > header:has(.pd-top),.d-shop-subcategories { transition:top .25s ease; }
  body.pd-tools-away:not(.woocommerce-cart):not(.woocommerce-checkout) .wp-site-blocks > header:has(.pd-top) { top:calc(-8px - var(--pd-header, 320px)); }
  body.pd-tools-away .d-shop-subcategories { top:calc(-8px - var(--pd-chips, 140px)); }
  .d-catalog .d-shop-filters:has(form) { position:sticky; top:calc(var(--pd-stuck, 100px) + var(--pd-chips, 0px)); z-index:29; background:#fff;
    padding-block:6px; box-shadow:0 6px 10px -10px rgba(31,32,28,.35); transition:top .25s ease; }
  body.pd-tools-away .d-catalog .d-shop-filters:has(form) { top:calc(-8px - var(--pd-filters, 240px)); }
}
@media(max-width:900px) and (prefers-reduced-motion:reduce) {
  body:not(.woocommerce-cart):not(.woocommerce-checkout) .wp-site-blocks > header:has(.pd-top),.d-shop-subcategories,.d-catalog .d-shop-filters:has(form) { transition:none; }
}
/* 2. Product page, "ללכת על הנקודות": serving and tray size read as the label, a fine dotted line and the value, as in the
      checkout's list; no filled capsules, no full-width rule. */
.d-shop .petit-product-facts { display:block; margin:4px 0 20px; }
.d-shop .petit-product-facts div { display:flex; flex-wrap:nowrap; align-items:baseline; gap:8px; padding:6px 0; background:none; border-radius:0; font-size:15px; }
.d-shop .petit-product-facts div::after { content:""; order:2; flex:1 1 16px; min-width:16px; border-bottom:2px dotted #C9CAC3; transform:translateY(-4px); }
.d-shop .petit-product-facts dt { order:1; color:#6B6C66; font-weight:400; }
.d-shop .petit-product-facts dd { order:3; font-weight:600; }
/* End REFRESH-1 26/10. */
/* The CTO 28/10: linked products as catalogue cards, two at most: "שדרוג" under the product, "להשלמת האירוח" under
   the cart's totals. On the phone two to a row, as in the catalogue. */
.d-linked { margin-top:40px; }
.d-linked-cart .d-linked { margin-top:32px; }
@media(max-width:900px) {
  .d-linked .d-products-mobile { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; overflow:visible; margin:0; padding:0; scroll-snap-type:none; }
}
