/* CARTUI1 — košík, pokladňa a stav objednávky (mockup KOSIKZAHON1 variant A „karty").
 * DESIGNSYS2-B (7. 10. 2026): vzhľad domova v2 / dizajn systému DESIGNSYS1 — načítava sa za tokens + chrome + components;
 * obal = <main class="sp shop">, tmavý úvod .sp-dtop (kroky + H1), obsah na papieri, karty --surface, súhrn Ihličie + zrno.
 * Farby, písmo, rádiusy a tiene len z tokens.css (⛔ nové farby natvrdo), ⛔ verzálky, selektory na 1 riadku. Obsah kreslí /ds/shop.js.
 * Karta projektu = .cpj (⛔ .sp — to je obal stránky v components.css). */

/* hlavička: ikona košíka (len pri SITE_SHOP_API ≠ off) */
.gg-hdr__cart { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--r-ctl); background: var(--leaf-mist); color: var(--leaf-deep); flex: none; }
.gg-hdr__cart:hover, .gg-hdr__cart[aria-current] { background: var(--leaf); color: #fff; }

.shop { background: var(--paper); }
.shop__top { padding-bottom: var(--s-6); }
.shop__top .sp-dtop__head { gap: 12px; }
/* KOSIKHERO1 (owner 13. 10.): úvod košíka kompaktný — H1 + kroky v 1 riadku, menší nadpis; prvá položka bez scrollu (1440×900, 390×844) */
.shop__top--cart { padding: calc(var(--hdr-h) + clamp(14px, 2vw, 24px)) 0 clamp(14px, 2vw, 24px); }
.shop__top--cart .sp-dtop__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; max-width: none; }
.shop__top--cart h1 { order: -1; font-size: clamp(30px, 3.2vw, 44px); line-height: 1.05; letter-spacing: -.04em; max-width: none; }
.shop__top--cart .shop__steps { margin: 0; }
/* košík: počet položiek menším písmom, prázdny košík bez obrieho nadpisu */
.shop[data-shop-page="cart"] .shop__sub { margin-bottom: var(--s-4); font-size: var(--fs-body); }
.shop[data-shop-page="cart"] .shop__empty h2 { font-size: var(--fs-h3); }
/* pätička pod prvou obrazovkou: výmena obsahu v krátkej stránke („čoskoro", načítanie) by ju posunula (CLS) */
.shop__body { min-height: 70vh; min-height: 70svh; padding: var(--s-6) 0 var(--s-9); }
/* plávajúce CTA „Navrhni v Studiu“ na košíku/pokladni nie — dole je lišta so súčtom */
body:has(.shop) .gg-fcta { display: none; }
/* kroky na tmavom úvode (reťaz domova: aktuálny krok = --sun) */
.shop__steps { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0 0 4px; padding: 0; font: 500 var(--fs-small)/1.3 var(--font); letter-spacing: -.01em; color: var(--on-dark-muted); }
.shop__steps li { display: inline-flex; align-items: center; gap: 8px; }
.shop__steps .n { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid rgb(244 241 234 / .35); font: 600 13px/1 var(--font); font-variant-numeric: tabular-nums; }
.shop__steps [aria-current] { color: var(--on-dark); font-weight: 600; }
.shop__steps [aria-current] .n { background: var(--sun); border-color: var(--sun); color: var(--soil); }
.shop__steps .is-done .n { background: var(--mint); border-color: var(--mint); color: var(--soil); }
.shop__sub { margin: 0 0 var(--s-5); font-size: var(--fs-lead); line-height: var(--lh-lead); letter-spacing: var(--track-lead); color: var(--sub); }
.shop__app { margin-top: var(--s-2); }
.shop__loading { margin: var(--s-6) 0; color: var(--muted); }

/* stavy: čoskoro, prázdny, chyba, oznámenia */
.shop__soon, .shop__empty, .shop__error, .st { padding: clamp(28px, 5vw, 56px) clamp(20px, 4vw, 48px); text-align: center; background: var(--surface); border: 1px solid var(--line); border-radius: calc(var(--r-card) + 8px); }
.shop__soon h2, .shop__empty h2, .st h2 { font-size: var(--fs-h2); letter-spacing: var(--track-head); margin: var(--s-3) 0 var(--s-3); }
.shop__soon p, .shop__empty p, .st p { margin: 0 auto var(--s-5); max-width: 37.3em; color: var(--body); }
.shop__error { border-color: var(--larch); background: var(--larch-mist); color: var(--ink); }
.shop__error p { margin: 0 0 var(--s-4); }
.shop__ctas { display: flex; flex-wrap: wrap; gap: var(--s-3); justify-content: center; }
.shop__note { display: flex; gap: var(--s-3); align-items: flex-start; justify-content: space-between; margin: 0 0 var(--s-4); padding: var(--s-3) var(--s-4); border-radius: var(--r-ctl); font-size: var(--fs-small); color: var(--ink); }
.shop__note p { margin: 0; }
.shop__note small { color: var(--muted); }
.shop__note--err { background: var(--larch-mist); border: 1px solid var(--larch); }
.shop__note--info { background: var(--leaf-mist); border: 1px solid var(--leaf); }
.shop__x { flex: none; width: 32px; height: 32px; border: 0; background: transparent; font-size: 20px; line-height: 1; cursor: pointer; color: var(--ink); border-radius: 8px; }
.st--ok { border-color: var(--leaf); }
.st--no { border-color: var(--larch); }
.st__meta { font-family: var(--font); font-size: var(--fs-small); color: var(--muted); }

/* rozloženie: obsah + súhrn */
.shop__cols { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: var(--s-6); align-items: start; }
.shop__main { min-width: 0; display: flex; flex-direction: column; gap: var(--s-5); }

/* projekt (karta) */
.cpj { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; }
.sp__h { display: flex; align-items: flex-start; gap: var(--s-4); padding: 22px 24px 20px; border-bottom: 1px solid var(--line); }
.sp__ovl { margin: 0 0 6px; font: 600 15px/1.2 var(--font); letter-spacing: var(--track-body); text-transform: none; color: var(--larch-ink); }
.sp__h h2 { font-size: var(--fs-h3); line-height: var(--lh-head); letter-spacing: var(--track-head); }
.sp__meta { margin: 4px 0 0; font-size: var(--fs-small); color: var(--muted); }
.sp__acts { margin-left: auto; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; flex: none; }
.sp__edit { min-height: 40px; padding: 0 14px; }
.sp__lnk { background: none; border: 0; padding: 0; min-height: 32px; color: var(--leaf-deep); font: 600 var(--fs-small)/1.2 var(--font); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.sp__lnk--mut { color: var(--muted); font-weight: 500; }
/* NOVSIAVERZIA1 — v Studiu je novšia verzia: len informácia (zelená, bežné písmo); blokujúca veta SNAPWEB1 je .sp__snap (larch, tučná) */
.sp__newer { margin: 0; padding: 12px 22px; background: var(--leaf-mist); border-bottom: 1px solid var(--line); font-size: var(--fs-small); color: var(--ink); }
.sp__newer a { color: var(--leaf-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
/* SNAPWEB1 — návrh bez snímky: treba ho znova poslať zo Studia (pokladňa ho neprijme) */
.sp__snap { margin: 0; padding: 12px 22px; background: var(--larch-mist); border-block: 1px solid var(--larch); font-size: var(--fs-small); color: var(--ink); font-weight: 600; }
.sp__snap a { color: inherit; text-decoration: underline; }

/* záhon */
.sb { display: grid; grid-template-columns: 176px minmax(0, 1fr) 176px; gap: 20px; align-items: start; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.sb__img { width: 176px; height: 128px; border-radius: 14px; border: 1px solid var(--line); background: var(--mist); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.sb__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sb__img--none { flex-direction: column; gap: 4px; color: var(--muted); }
.sb__img--none svg { width: 56px; height: 36px; }
.sb__img--none small { font-size: 12px; }
.sb__name { margin: 2px 0 0; font-size: 20px; font-weight: var(--w-head); letter-spacing: -.015em; line-height: 1.2; }
.sb__chips { margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.sb__anc { margin: 8px 0 0; font-size: var(--fs-small); color: var(--body); }
.sb__diff { display: inline-block; margin: 8px 0 0; font-size: 13px; color: var(--larch-ink); background: var(--larch-mist); border-radius: var(--r-tag); padding: 3px 8px; }
.sb__links { margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; }
.sb__rt { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.sb__price { text-align: right; }
.sb__price b { display: block; font-size: 22px; font-weight: var(--w-head); color: var(--ink); letter-spacing: -.01em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.sb__price small { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.4; color: var(--muted); }
.qty { display: inline-flex; align-items: center; height: 44px; border: 1.5px solid var(--line-strong); border-radius: var(--r-ctl); background: #fff; }
.qty button { width: 40px; height: 100%; border: 0; background: transparent; font-size: 20px; cursor: pointer; color: var(--ink); }
.qty button:disabled { color: var(--patina); cursor: not-allowed; }
.qty output { min-width: 30px; text-align: center; font-weight: 650; color: var(--ink); }
/* CARTFIX1 — štítok „ks záhonu" pod počtom (mockup KOSIKZAHON1 A `.qwrap`/`.qlab`; na telefóne ho mockup skrýva) */
.sb__qw { display: flex; flex-direction: column; align-items: flex-end; }
.sb__qlab { display: block; margin: 4px 0 0; font-size: 12px; color: var(--muted); text-align: right; }
.sb__kit { grid-column: 2 / -1; margin: -4px 0 0; padding: 12px 14px; background: var(--paper); border: 1px solid var(--line); border-radius: 14px; }
.sb__kit h4 { margin: 0 0 8px; font-size: var(--fs-small); }
.sb__kit ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 4px 18px; }
.sb__kit li { display: flex; justify-content: space-between; gap: 8px; padding: 3px 0; border-bottom: 1px dashed var(--line); font-size: var(--fs-small); }
.sb__kit li span:last-child { white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--ink); font-weight: 600; }
.sb__kit p { margin: 8px 0 0; font-size: 13px; color: var(--muted); }
.sb--gone { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding: 12px 22px; background: var(--paper); color: var(--muted); font-size: var(--fs-small); }
.sb--gone p { margin: 0; }
.sb--gone b { color: var(--ink); }

/* spoločné diely, súčet projektu */
.sp__shared { display: flex; gap: 14px; align-items: center; padding: 14px 22px; background: var(--paper-2); border-bottom: 1px solid var(--line); font-size: var(--fs-small); }
.sp__sic { width: 40px; height: 40px; flex: none; display: flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--paper); border: 1px solid var(--line); color: var(--muted); }
.sp__stx { flex: 1; min-width: 0; }
.sp__stx b { color: var(--ink); }
.sp__stx small { display: block; font-size: 13px; color: var(--muted); }
.sp__spr { font-weight: 700; color: var(--ink); white-space: nowrap; }
.sp__f { display: flex; justify-content: space-between; align-items: center; padding: 14px 22px; background: var(--paper); font-size: 15px; }
.sp__f small { color: var(--muted); }
.sp__f b { font-size: 19px; color: var(--ink); font-variant-numeric: tabular-nums; }
/* CARTSECT1 — samostatné diely (mimo záhonov) v projekte + „Nie je v košíku" (mockup KOSIKZAHON1 A) */
.sp__loose { display: flex; gap: 14px; align-items: flex-start; padding: 14px 22px; border-bottom: 1px solid var(--line); font-size: var(--fs-small); }
.sp__lst { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 4px; }
.sp__lst li { display: flex; gap: 10px; justify-content: space-between; color: var(--body); font-variant-numeric: tabular-nums; }
.sp__lst li span:first-child { flex: 1; min-width: 0; }
.sp__lst li b { font-weight: 600; color: var(--ink); white-space: nowrap; }
.shop__sech { margin: var(--s-2) 0 var(--s-3); font-size: 20px; color: var(--ink); letter-spacing: -.015em; }
.shop__notin { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.shop__ni { border: 1px dashed var(--line-strong); border-radius: 16px; padding: 14px 16px; }
.shop__ni b { display: block; color: var(--ink); font-size: 15.5px; }
.shop__ni p { margin: 4px 0 10px; font-size: 14px; color: var(--muted); }

/* súhrn (Ihličie + zrno) */
.ss { position: sticky; top: calc(var(--hdr-h) + 24px); background: var(--grain-layer), var(--soil); color: var(--on-dark); border-radius: calc(var(--r-card) + 8px); padding: 26px; box-shadow: var(--sh-3); }
.ss h2 { margin: 0 0 16px; font-size: var(--fs-h3); letter-spacing: var(--track-head); color: var(--on-dark); scroll-margin-top: calc(var(--hdr-h) + 16px); }
.ss__fld { display: block; margin: 0 0 12px; }
.ss__fld > span, .ss__fld > label { display: block; margin: 0 0 5px; font-size: 13px; color: var(--on-dark-muted); }
.ss select, .ss input { width: 100%; height: 46px; padding: 0 12px; border-radius: var(--r-ctl); border: 1.5px solid var(--on-dark-muted); background: var(--soil-2); color: var(--on-dark); font: 15.5px var(--font); }
.ss input:disabled, .ss select:disabled { opacity: .6; }
.ss__zip { display: flex; gap: 8px; }
.ss__zip input { flex: 1; min-width: 0; }
.ss__zip .gg-btn { min-height: 46px; padding: 0 14px; flex: none; }
.ss__car { margin: 4px 0 8px; padding: 0; border: 0; }
.ss__opt { display: flex; align-items: center; gap: 10px; min-height: 44px; margin: 0; padding: 4px 0; font-size: 15px; border-bottom: 1px solid var(--soil-2); }
.ss__opt input { width: 20px; height: 20px; flex: none; accent-color: var(--mint); }
.ss__opt span { flex: 1; }
.ss__opt small { color: var(--on-dark-muted); font-size: 12.5px; }
.ss__opt b { white-space: nowrap; font-variant-numeric: tabular-nums; }
.ss__opt--na { color: var(--on-dark-muted); }
.ss__nocar { margin: 8px 0 0; font-size: 13.5px; color: var(--sun); }
/* CARTFIX2 — neplatné PSČ: veta pri poli (role=alert), doprava sa nepočíta */
.ss__zerr { margin: 8px 0 0; font-size: 13.5px; line-height: 1.4; color: var(--sun); font-weight: 600; }
.ss__zip input[aria-invalid="true"] { border-color: var(--sun); box-shadow: 0 0 0 1px var(--sun); }
/* DISCWEB1 — zľavový kód v súhrne (košík aj pokladňa): uplatnený / nepoužiteľný + „Odstrániť kód"; riadok zľavy v súčtoch */
.ss__disc { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 12px; margin: 0 0 12px; padding: 10px 12px; border-radius: var(--r-ctl); background: var(--soil-2); font-size: 14px; line-height: 1.45; }
.ss__disc p { margin: 0; flex: 1 1 200px; color: var(--on-dark); }
.ss__disc--bad p { color: var(--sun); font-weight: 600; }
.ss__disc small { font-weight: 400; color: var(--on-dark-muted); }
.ss__drm { flex: none; min-height: 32px; padding: 0; border: 0; background: none; color: var(--on-dark); font: inherit; font-size: 13.5px; text-decoration: underline; text-underline-offset: .18em; cursor: pointer; }
.ss__drm:disabled { opacity: .5; cursor: default; }
.ss__rows .ss__dsc dt { color: var(--on-dark); }
.ss__rows .ss__dsc dd { color: var(--mint); font-weight: 600; }
.ss__rows { margin: 16px 0 0; border-top: 1px solid var(--soil-2); }
.ss__rows > div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--soil-2); font-size: 15px; }
.ss__rows dt { color: var(--on-dark-muted); }
.ss__rows dt b { color: var(--on-dark); font-weight: 600; }
.ss__rows dd { margin: 0; color: var(--on-dark); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ss__pend { color: var(--sun) !important; font-style: italic; white-space: normal !important; }
.ss__est { color: var(--on-dark-muted); font-size: 12px; }
/* SHIPWEB1 — odhad bez PSČ (veta pod súhrnom) a výzva zadať PSČ (server bez odhadu) — informácia, nie chyba */
.ss__noz { margin: 10px 0 0; font-size: 13px; line-height: 1.45; color: var(--on-dark-muted); }
.ss__zneed { margin: 8px 0 0; font-size: 13.5px; line-height: 1.4; color: var(--on-dark); }
.ss__rows .ss__tot { border-bottom: 0; padding-top: 14px; align-items: baseline; }
.ss__tot dt { color: var(--on-dark); font-weight: 650; font-size: 16px; }
.ss__tot dt small { display: block; font-weight: 400; font-size: 12.5px; color: var(--on-dark-muted); }
.ss__tot dd { font-family: var(--font-display); font-size: 28px; font-weight: var(--w-head); letter-spacing: -.02em; }
/* VATSHOW2 — „z toho DPH" pod súčtom (riadky nad ním DPH už obsahujú). */
.ss__rows .ss__vat { border-bottom: 0; padding-top: 0; font-size: 13px; }
.ss__fine { margin: 6px 0 14px; font-size: 13px; line-height: 1.45; color: var(--on-dark-muted); }
.ss__next { width: 100%; }
.ss__next:disabled { opacity: .5; cursor: not-allowed; }
/* CARTFIX1 — platba ešte nie je spustená (server PAY_ENABLED=0) */
.ss__payoff { margin: 10px 0 0; padding: 10px 12px; border-radius: var(--r-ctl); background: var(--larch-mist); color: var(--ink); font-size: 13.5px; line-height: 1.45; }
.ss__trust { list-style: none; margin: 14px 0 0; padding: 0; font-size: 13.5px; color: var(--on-dark-muted); }
.ss__trust li { display: flex; gap: 8px; margin: 0 0 6px; }
.ss__trust li::before { content: ''; flex: none; width: 6px; height: 6px; margin-top: 8px; border-radius: 50%; background: var(--mint); }
.ss__list { list-style: none; margin: 0; padding: 0; }
.ss__list li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--soil-2); font-size: 15px; }
.ss__list small { display: block; color: var(--on-dark-muted); font-size: 13px; }
.ss__list .ss__newer { display: block; margin-top: 6px; padding: 6px 0 0 10px; border-left: 2px solid var(--leaf); color: var(--on-dark); font-size: 13px; line-height: 1.45; }
.ss__list .ss__newer a { color: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.ss .ss__back { color: var(--mint); }

/* telefón: lišta so súčtom */
.shop__pbar { display: none; }

/* STOCKCART1 / DESIGNSYS2-B — vypredaný diel v košíku: riadok označený, „Odstrániť" ako tlačidlo, Pokračovať zablokované s dôvodom */
.sb--so { background: linear-gradient(90deg, var(--larch-mist), transparent 60%); box-shadow: inset 4px 0 0 var(--larch); }
.sb__so { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 10px 0 0; font-size: var(--fs-small); font-weight: 600; color: var(--larch-ink); }
.sb__so small { font-weight: 500; color: var(--body); }
.gg-chip--so { background: var(--larch); color: #fff; border-color: transparent; font-weight: 600; white-space: normal; height: auto; min-height: 26px; padding-block: 4px; line-height: 1.25; max-width: 100%; }
.sb__sorm { min-height: 40px; padding: 0 16px; --b-bg: var(--larch-ink); --b-bd: var(--larch-ink); --b-fg: #fff; }
.sb__sorm:hover { --b-bg: var(--ink); --b-bd: var(--ink); }
.sb__pso { margin-left: 6px; font-style: normal; font-weight: 600; color: var(--larch-ink); }
.sp__so { margin: 6px 0 0; font-size: 13px; font-weight: 600; color: var(--larch-ink); }
.sp__meta .gg-chip--so { margin-left: 6px; vertical-align: 1px; }
.ss__block { margin: 0 0 12px; padding: 10px 12px; border-radius: var(--r-ctl); background: var(--larch-mist); color: var(--ink); font-size: 13.5px; line-height: 1.45; }

/* pokladňa */
.co { min-width: 0; display: flex; flex-direction: column; gap: var(--s-4); }
.co__box { margin: 0; padding: 18px 22px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); }
.co__box legend { padding: 0 6px; font-size: 18px; font-weight: var(--w-head); color: var(--ink); }
.co__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
.co__f { display: flex; flex-direction: column; gap: 5px; margin: 0 0 4px; font-size: var(--fs-small); color: var(--body); }
.co__f input, .co__f select, .co__f textarea { width: 100%; min-height: 46px; padding: 10px 12px; border: 1.5px solid var(--line-strong); border-radius: var(--r-ctl); background: #fff; color: var(--ink); font: 16px var(--font); }
.co__f [aria-invalid="true"] { border-color: var(--larch-ink); box-shadow: 0 0 0 3px var(--larch-mist); }
.co__f small { color: var(--muted); font-size: 13px; }
/* ADRESA1 — celá šírka (krajina, ulica, 2. riadok); skryté pole štát/provincia (krajina ho nemá) */
.co__f--wide { grid-column: 1 / -1; }
.co__f[hidden] { display: none; }
.co__fe { font-style: normal; color: var(--larch-ink); font-size: 13px; font-weight: 600; }
.co__chk { display: flex; gap: 10px; align-items: flex-start; margin: 8px 0; font-size: var(--fs-small); color: var(--ink); cursor: pointer; }
.co__chk input { width: 22px; height: 22px; margin: 0; flex: none; accent-color: var(--leaf-deep); }
.co__chk input[aria-invalid="true"] { outline: 2px solid var(--larch-ink); outline-offset: 2px; }
.co__chk small { color: var(--muted); }
.co__me { margin: 0 0 8px; font-weight: 600; color: var(--ink); }
.co__acc { margin: 0 0 8px; font-size: var(--fs-small); color: var(--muted); }
.co__wait { margin: 0; color: var(--muted); font-size: var(--fs-small); }
.co__box .ss__opt { border-bottom-color: var(--line); color: var(--ink); }
.co__box .ss__opt small { color: var(--muted); }
.co__box .ss__opt input { accent-color: var(--leaf-deep); }
.co__box .ss__nocar { color: var(--larch-ink); }
.co__box .ss__zerr { color: var(--larch-ink); }
.co__box .ss__noz { color: var(--muted); }
.co__box .ss__zneed { margin: 0; color: var(--ink); font-size: var(--fs-small); }
.co__f input[aria-invalid="true"] { border-color: var(--larch-ink); }
.co__err { padding: 12px 14px; border-radius: var(--r-ctl); background: var(--larch-mist); border: 1px solid var(--larch); color: var(--ink); font-size: var(--fs-small); }
.co__err p { margin: 0; }
.co__pay { align-self: stretch; }
.co__pay:disabled { opacity: .6; cursor: progress; }
.co__note { margin: 0; font-size: 13px; color: var(--muted); }
/* PARTNERPAY1 — partner: karta alebo prevod na predfaktúru; potvrdenie s platobnými údajmi */
.co__pm { font-size: var(--fs-body, 16px); }
.co__pmhelp { margin: 4px 0 0 32px; font-size: 13px; color: var(--muted); }
.st__pay { list-style: none; margin: 0 auto var(--s-5); padding: 0; max-width: 30em; text-align: left; }
.st__pay li { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 8px 0; border-bottom: 1px solid var(--line); }
.st__pay b { font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.co__payoff { margin: 0; padding: 12px 14px; border-radius: var(--r-ctl); background: var(--larch-mist); border: 1px solid var(--larch); color: var(--ink); font-size: var(--fs-small); }
.co__pay[aria-disabled="true"] { cursor: not-allowed; }
/* VOP94FIX1 — novšia verzia nad tlačidlom platby len keď je súhrn pod formulárom (≤1099px); vtedy sa v súhrne skryje */
.co__newer { display: none; margin: 0; padding: 12px 14px; border-radius: var(--r-ctl); background: var(--leaf-mist); border: 1px solid var(--line); color: var(--ink); font-size: var(--fs-small); }
.co__total { display: none; margin: 0; padding: 12px 0 0; border-top: 1px solid var(--line); justify-content: space-between; align-items: baseline; gap: 12px; color: var(--ink); }
.co__total small { display: block; font-size: 12px; color: var(--muted); font-weight: 400; }
.co__total b { font-size: 20px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.co__newer a { color: var(--leaf-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1099px) {
  .shop__cols { grid-template-columns: minmax(0, 1fr); }
  .ss { position: static; }
  .co__newer { display: block; }
  .co__total { display: flex; }
  .ss__list .ss__newer { display: none; }
}
@media (max-width: 699px) {
  .sp__h { flex-direction: column; gap: 10px; padding: 14px 16px; }
  .sp__h h2 { font-size: 20px; }
  .sp__acts { margin-left: 0; flex-direction: row; align-items: center; gap: 14px; }
  .sb { grid-template-columns: 96px minmax(0, 1fr); gap: 10px 12px; padding: 14px 16px; }
  .sb__img { width: 96px; height: 76px; border-radius: 10px; }
  .sb__name { font-size: 16.5px; }
  .sb__rt { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; }
  .sb__price { text-align: left; }
  .sb__price b { font-size: 19px; }
  .sb__qlab { display: none; }
  .sb__kit { grid-column: 1 / -1; margin: 0; }
  .sb__kit ul { grid-template-columns: 1fr; }
  .sp__shared { padding: 12px 16px; flex-wrap: wrap; }
  .sp__loose { padding: 12px 16px; flex-wrap: wrap; }
  .shop__notin { grid-template-columns: 1fr; }
  .shop__sech { font-size: 18px; }
  .sp__f, .sp__newer, .sp__snap, .sb--gone { padding-inline: 16px; }
  .ss { padding: 18px; }
  .co__box { padding: 14px 16px; }
  .co__grid { grid-template-columns: minmax(0, 1fr); }
  /* CARTFIX1 — sticky v .shop__main (nie fixed): pruh drží spodok obrazovky len kým je vidno obsah košíka, potom zostane nad súhrnom a neprekryje „Súhrn objednávky“ */
  .shop__pbar { display: flex; transition: opacity var(--t-state) var(--ease-out), visibility var(--t-state); position: sticky; bottom: 0; z-index: 30; margin: 0 calc(-1 * var(--page-pad)); align-items: center; gap: 12px; padding: 10px 16px calc(14px + env(safe-area-inset-bottom)); background: var(--grain-layer), var(--soil); color: var(--on-dark); border-top: 1px solid var(--soil-2); }
  .shop__pbar > div { flex: 1; min-width: 0; }
  .shop__pbar small { display: block; font-size: 12px; color: var(--on-dark-muted); }
  .shop__pbar b { font-size: 20px; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
  /* DESIGNSYS2-B (CARTSTICKY) — keď je vidno „Súhrn objednávky“, pruh zmizne (shop.js IntersectionObserver) — ⛔ prekrytie nadpisu súhrnu */
  .shop__pbar.is-off { opacity: 0; visibility: hidden; pointer-events: none; }
  .ss { border-radius: var(--r-card); }
}
