/* ================================================
   NUTIVA LISTING DETAIL — štruktúra v5.1 + nákupný blok detailu (V30)
   v1.4 — 8. 9. 2026 — Frank; hero, odpovede FAQ a citát cez CELÚ šírku stĺpca (strop 680 px z rannej typografickej
          prehliadky Šimon zamietol) a na mobile má blok balení rovnakú medzeru hore aj dole (20/22 px namiesto 6/22 —
          lepil sa na fotky). Číslo 1.3 už bolo nasadené s predošlým obsahom, preto rovno 1.4.
   v1.3 — 8. 9. 2026 — Frank; galéria fotiek aj na mobile (pás sivých štvorcov namiesto miniatúr šablóny, fotky v 600 px,
          šípky 42 px), zľavová bublina na fotke skrytá aj proti nutiva-custom.css v9.4, O Nutive cez celú šírku.
          POZOR na číslovanie: 8.9. sa pri nasadení rozišlo — v Záhlaví bolo `?v=1.2`, kým súbor niesol v1.1.
          Od v1.3 opäť platí pravidlo „číslo v hlavičke = `?v=` v Záhlaví" (jadro/eshop.md).
   v1.1 — 8. 9. 2026 — Frank; ZLÚČENIE: do v1.0 (vzhľad blokov popisu v5.1) pribudol celý nákupný blok detailu
          a vzhľad V30 schválený so Šimonom v živom náhľade 5.–8. 9. 2026 (bol testovaný ako listing-detail-v51-test.css
          v0.4 → v0.20 cez snippet FRANK TEST v Záhlaví; test zrušený). Párový skript: listing-detail-v51.js v1.2.
   v1.0 — 5. 9. 2026 (prvé vydanie: dlaždice, FAQ akordeón, súvisí, značky, dáta)

   Konvencia je rovnaká ako pri nutiva-custom.css (jadro/eshop.md): číslo tu hore sa DRŽÍ
   ROVNÉ `?v=` v Záhlaví. Poradie nasadenia: najprv nahrať súbor, až potom prepnúť `?v=`.
   Volať AŽ ZA nutiva-custom.css — pri rovnakej sile rozhoduje v CSS poradie.
   Master: Nutiva_kod/katalog/css/listing-detail-v51.css
   Cesta na webe: /user/documents/upload/CSS/listing-detail-v51.css

   STAVBA SÚBORU (poradie je záväzné — ČASŤ B prebíja ČASŤ A tam, kde sa stretnú):
   ČASŤ A — základ v5.1 (obsah v1.0 bez zmeny): bloky popisu .listing-detail-v51 / ld5-*, platí aj bez skriptu.
   ČASŤ B — nákupný blok + vzhľad V30 (z testu v0.4–v0.20): scopnuté na body.type-detail. Platí pre VŠETKY karty
            (v4 aj v5.1) — bočný panel preč, poradie blokov, karta ceny, balenia, desktopová galéria, záložky;
            dvojstĺpcový popis a presun dát len tam, kde je .listing-detail-v51 (skript dá na <html> triedu ld5-detail).
            Bez skriptu ostáva popis v jednom stĺpci — nič sa nerozbije.
   Za ČASŤOU B sú značky ikon dlaždíc (vkladá nastroje/ikony.py --zapis; sada zatiaľ neexistuje, ikony/README.md).

   Čo je v ČASTI B (história testu):
   v0.4  zamrazený stav schválený so Šimonom v živom náhľade 5.–7. 9. 2026
   v0.5  veľkosti písma v popise cez premenné (jedno miesto); FAQ odpoveď a text dlaždíc 15 px (Kvasnička: obsah 15–17);
         „Nakúpili za posledný mesiac“ (dklab) ako tichá pilulka v karte ceny
   v0.6  mobil (≤767 px): záložky v jednom riadku (☰ šablóny), info riadok pod štítkami, karta ceny v jednom bloku,
         TIP bez vysúvania, „Viac o produkte“ na vlastnom riadku
   v0.7  dostupnosť: Skladom · doručíme na jednej osi; cross-sell bez poradia z CSS (poradie dáva skript podľa doplnku)
   v0.8  stepper a tlačidlo v jednom rade sa naťahujú na spoločnú výšku (align-items: stretch)
   v0.9  názvy riadkov v tabuľke Zloženie a alergény natvrdo zľava
   v0.10 pilulky balení na mobile v desktopovej veľkosti; Možnosti doručenia na desktope v riadku so Skladom
   v0.11 pilulka balenia ako v katalógu + tieň; bubliny dlaždíc len v zelených odtieňoch; oprava mobilných miniatúr
         (text-align: center na celom .p-image-wrapper ich posunul 70 000 px mimo obrazovku)
   v0.13 desktopová galéria: hlavná fotka na sivom podklade + karusel 2 fotiek v sivých štvorcoch so šípkami
   v0.14 pilulka balenia so zaoblením 9 px (zladené so štítkami a katalógom)
   v0.17 desktop: fotka vyplní celý sivý blok (cover), pás štartuje 2. fotkou; mobil: galéria späť zo šablóny
   v0.18 minimalizmus: pilulka balenia sivá, aktívny štvorec tmavý rám; sivý blok fotky aj pri 1 fotke
   v0.19 prekliky (Možnosti doručenia, čo sú Nutibody, Viac o produkte) tmavé s tenkým podčiarknutím, Skladom tmavé,
         rám pilulky svetlý — konverzné farby len na tlačidlách (Šimon 7.9. večer)
   v0.20 (Šimon 8.9.) dostupnosť ako TRI riadky s ikonami v jednom stĺpci (fajka · autíčko · žetón Nutibodov);
         chip s kódom biely s tenkým rámom a tieňom (zelenkavý podklad preč); Zloženie, Nutričné hodnoty a Dodatočné
         parametre ako tri karty (.nd-box); štítky na DETAILE skryté (zľavu nesie cena, kód chip); balenia o 20 px
         vyššie (mobil 14); mobilná galéria: packshot na sivom štvorci ako na desktope, pás miniatúr štartuje 2. fotkou,
         miniatúry zaoblené a vybraná s tmavým rámom namiesto zeleného
   (v0.12, v0.15, v0.16 = mobilný karusel a mobilná sivá dlaždica — zrušené v0.17, pravidlá ostali len pre prípad návratu)

   Farby: eshop.md → Farebný systém (zelená #89C43E, limetka #A5CD39, #97C93D, hover preklikov #61971E,
   tint #eef6e2, slabosivá #f6f6f6, text/prekliky #1e1e1c). Písmo nikde pod 13 px (Kvasnička).
   ================================================ */

/* ======================= ČASŤ A — základ v5.1 (obsah v1.0, nemenené) ======================= */

/* listing-detail-v51.css — vzhľad blokov ŠTRUKTÚRY v5.1 v detaile produktu.
   Zdroj: schválený mockup Ecom_Data/nutiva-listing/nahlady/0069_navrh_v51b.html (Šimon 4.9.2026).
   Do popisu produktu sa NIKDY nevkladá <style> ani obrázok ikony — popis nesie len triedy,
   vzhľad drží tento súbor v šablóne Shoptetu. Chýbajúca trieda = prvok bez ozdoby, nič sa nerozbije.
   Ikony dlaždíc (ld5-ico-*) generuje skript z priečinka katalog/ikony/ ako data-URI.

   NÁZVY TRIED: všetko má predponu ld5- a koreň je .listing-detail-v51. Je to zámer, nie
   ozdoba — v téme Shoptetu musia byť oba súbory naraz (1900 kariet je vo v4), takže sa
   verzie nesmú deliť o žiadny selektor. Párový súbor: listing-detail-v4.css. */

:root {
  --ld5-green: #5a8a00;
  --ld5-lime: #a1bf37;
  --ld5-line: #e5e7eb;
  --ld5-bg: #f6f7f4;
  --ld5-muted: #6b7280;
}

/* --- hero ------------------------------------------------------------------ */
.ld5-hero p { font-size: 15.5px; line-height: 1.6; margin: 0 0 10px; }
.ld5-hero-img { margin: 14px 0 4px; }
.ld5-hero-img img { width: 100%; height: auto; border-radius: 12px; display: block; }

/* --- dlaždice --------------------------------------------------------------- */
.ld5-dlazdice { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 18px 0 22px; }
.ld5-dl { background: var(--ld5-bg); border-radius: 12px; padding: 16px 14px 14px; text-align: center; }
.ld5-dl b { display: block; font-size: 14.5px; color: #1f2937; margin-bottom: 3px; }
.ld5-dl span { display: block; font-size: 12.5px; color: #4b5563; line-height: 1.4; }
.ld5-dl[class*="ld5-ico-"]::before {
  content: ""; display: block; width: 40px; height: 40px; margin: 0 auto 8px;
  /* rozpísané zámerne: skratka `background` resetuje background-image, ktorý o pár riadkov
     nižšie nastavuje pravidlo konkrétnej ikony — a to má nižšiu špecificitu, takže by ho
     táto deklarácia prebila a dlaždice by ostali bez ikon (nájdené 5.9.2026 na živej karte) */
  background-repeat: no-repeat; background-position: center; background-size: contain;
}

/* --- časté otázky ----------------------------------------------------------- */
.ld5-faq { margin: 18px 0; }
.ld5-faq h2 { font-size: 17px; margin: 0 0 6px; }
.ld5-faq details { border-top: 1px solid var(--ld5-line); padding: 8px 0; }
.ld5-faq details:last-child { border-bottom: 1px solid var(--ld5-line); }
.ld5-faq summary {
  cursor: pointer; font-weight: 600; font-size: 15px;
  list-style: none; display: flex; justify-content: space-between; gap: 12px;
}
.ld5-faq summary::-webkit-details-marker { display: none; }
.ld5-faq summary::after { content: "+"; color: var(--ld5-green); font-size: 20px; line-height: 1; }
.ld5-faq details[open] summary::after { content: "−"; }
.ld5-faq details p { margin: 8px 0 4px; font-size: 14.5px; line-height: 1.55; }

/* --- súvisí ----------------------------------------------------------------- */
.ld5-suvisi {
  margin: 20px 0; padding: 12px 16px; border-left: 4px solid var(--ld5-lime);
  background: #f3f9f0; border-radius: 8px; font-size: 14.5px;
}
.ld5-suvisi p { margin: 4px 0; }
.ld5-tip { color: var(--ld5-green); }

/* --- značky, citát, dátum ---------------------------------------------------- */
.ld5-brand {
  margin: 22px 0 6px; font-size: 14px; color: #444;
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
}
.ld5-brand b { display: block; color: #1f2937; margin-bottom: 2px; }
.ld5-citat { font-size: 14.5px; color: #4b5563; margin: 10px 0 4px; }
.ld5-meta { font-size: 12px; color: var(--ld5-muted); margin: 6px 0 0; }

/* --- dáta (zloženie + výživové hodnoty) -------------------------------------- */
/* Triedy ld5-zlozenie a ld5-nutrition sú stabilné — skript šablóny ich na desktope
   presúva do pravého stĺpca pod nákupný blok. Nepremenovávať. */
.ld5-zlozenie, .ld5-nutrition { margin-bottom: 4px; }
.ld5-data { margin-top: 22px; border-top: 1px solid var(--ld5-line); padding-top: 6px; }
.ld5-data h4 {
  margin: 14px 0 6px; font-size: 14px; text-transform: uppercase;
  letter-spacing: .04em; color: #555;
}
table.ld5-par { width: 100%; border-collapse: collapse; font-size: 13.5px; }
table.ld5-par th { text-align: left; font-weight: 500; width: 34%; padding: 6px 8px; color: #444; vertical-align: top; }
table.ld5-par td { padding: 6px 8px; }
table.ld5-par tr:nth-child(even) { background: #fafafa; }
table.ld5-nutri { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.ld5-nutri thead tr { background: var(--ld5-green); color: #fff; }
.ld5-nutri th, .ld5-nutri td { padding: 6px 8px; }
.ld5-nutri td:last-child, .ld5-nutri th:last-child { text-align: right; }
.ld5-nutri tbody tr:nth-child(even) { background: #f3f9f0; }

@media (max-width: 800px) {
  .ld5-dlazdice { grid-template-columns: 1fr 1fr; }
  .ld5-brand { grid-template-columns: 1fr; }
}

/* ======================= ČASŤ B — nákupný blok + vzhľad V30 (z testu v0.4–v0.20) ======================= */

body.type-detail {
  --nd-akcent: #1e1e1c;   /* v0.19: prekliky v karte ceny a krátkom popise TMAVÉ s podčiarknutím (Šimon 7.9. večer: konverzné farby len
                             na tlačidlách); zelená #61971E ostáva na hover a v popise (TIP, bubliny) */
  --nd-akcent-h: #61971E; /* hover preklikov */
  --nd-link-line: #b5b5b5; /* podčiarknutie preklikov — bez neho by tmavý odkaz nebol rozoznateľný (Kvasnička: čierne odkazy = chyba) */
  --nd-z1: #89C43E;       /* zelená značky (bublina 1, linka Zloženie, otvorené FAQ) */
  --nd-z2: #A5CD39;       /* limetka (bublina 2, linka Dodatočné parametre, rám aktívnej gramáže) */
  --nd-z3: #97C93D;       /* stredná zelená (linka Nutričné hodnoty) */
  --nd-k1: #F07276;       /* koralová (bublina 4) */
  --nd-k2: #F3868D;       /* ružová (bublina 3) */
  --nd-tint: #eef6e2;     /* svetlý zelený podklad (TIP, aktívna gramáž, bublina „?“) */
  --nd-line: #e3e6dc;
  --nd-ink: #1f2937;
  --nd-muted: #6b7280;
  --nd-siva: #f6f6f6;     /* slabosivá z hlavičky/pätičky (eshop.md, Farebný systém) */
  --nd-blob: 58% 42% 55% 45% / 48% 55% 45% 52%;   /* základný nepravidelný tvar bublín */
  /* VEĽKOSTI PÍSMA — jediné miesto, kde sa ladia (HTML popisu nenesie žiadne veľkosti, render.py ich nepíše).
     Kvasnička (Vizualne_UX checklist): nič pod 13 px, dlhší obsah 15–17 px. */
  --nd-fs-hero: 16;       /* úvodný odsek dlhého popisu */
  --nd-fs-text: 15;       /* bežný text obsahu: krátky popis, text dlaždíc, odpoveď FAQ, TIP, O Nutive */
  --nd-fs-otazka: 15;     /* otázka vo FAQ (tučná) */
  --nd-fs-citat: 17;      /* citát v bloku značky */
  --nd-fs-tab: 14;        /* tabuľky: zloženie, nutričné hodnoty, dodatočné parametre */
  --nd-fs-min: 13;        /* najmenšie povolené: riadok info pod názvom, štítky */
  --nd-dl-tit: 16;        /* titulok dlaždice */
  --nd-nadpis-faq: 20;    /* nadpis Časté otázky */
  --nd-col-r: 35;         /* pravý stĺpec popisu v % */
  --nd-col-gap: 44;
  --nd-obsah: 1280;       /* šírka obsahu bez bočného panela */
  --nd-step: 34;          /* tlačidlá + − */
  --nd-gram-fs: 16;
  --nd-nadpis: 18;        /* nadpisy dát */
  --nd-dych: 30;          /* medzera medzi blokmi dát */
}

/* ---------- 1. bočný panel (Top 10, Kontakt, prilepený košík) na detaile preč, obsah na stred ---------- */
body.type-detail .sidebar { display: none !important; }
body.type-detail .content-wrapper { display: block !important; }
body.type-detail #content {
  width: 100% !important; max-width: calc(var(--nd-obsah) * 1px) !important;
  margin: 0 auto !important; float: none !important; flex: none !important;
}

/* ---------- 2. nákupný blok — poradie cez flex order (.p-info-wrapper je flex column), kroky po 10 ----------
   názov → info riadok → balenia → karta ceny → krátky popis (+ Viac o produkte).
   Cross-sell (.up-product-wrapper) poradie z CSS NEMÁ: skript mu dá poradie prvku, za ktorý ho vložil doplnok Cross-upsell
   (nastavenie nad/pod je v doplnku, nie tu — Šimon 7.9.). */
body.type-detail .p-info-wrapper > .p-detail-inner-header { order: 0; }
body.type-detail .p-info-wrapper > .p-detail-info { order: 10; }
body.type-detail .p-info-wrapper > .detail-parameters { order: 10; }
body.type-detail .p-info-wrapper > .up-product-wrapper { margin: 4px 0 12px; }
body.type-detail .p-info-wrapper > .ld5-balenia { order: 40; }
body.type-detail .p-info-wrapper > .price-line { order: 50; }
/* krátky popis: vzdušnejší, do bloku ako dlhý popis (Šimon 7.9.) */
body.type-detail .p-info-wrapper > .p-short-description {
  order: 60; font-size: calc(var(--nd-fs-text) * 1px); line-height: 1.7; color: #374151; margin: 6px 0 10px;
  text-align: left;   /* v0.20: zarovnanie do bloku zrušené — pozri komentár pri texte popisu nižšie */
}
body.type-detail .p-info-wrapper > .social-buttons-wrapper { display: none !important; }
body.type-detail .p-info-wrapper > p.nd-hide { display: none !important; }   /* „Detailné informácie“ — nahradené odkazom v krátkom popise */

body.type-detail .p-short-description .nd-viac { white-space: nowrap; color: var(--nd-akcent) !important; font-weight: 700; text-decoration: underline; text-decoration-color: var(--nd-link-line); text-underline-offset: 3px; border-bottom: 0 !important; margin-left: 6px; }
body.type-detail .p-short-description .nd-viac:hover { color: var(--nd-akcent-h) !important; }
body.type-detail .p-detail-info a { color: var(--nd-akcent) !important; }

/* riadok pod názvom: Novinka · hviezdy · Značka · Kód, jedna os; Kvasnička: nič pod 13 px */
body.type-detail .p-detail-inner-header h1 { margin-bottom: 6px; }
body.type-detail .p-detail-inner-header .p-code { display: none; }   /* skript ho klonuje do riadku info */
body.type-detail .p-detail-info {
  display: flex !important; flex-wrap: wrap; gap: 6px 18px; align-items: center;
  margin: 4px 0 14px !important; padding: 0 !important;
}
body.type-detail .p-detail-info > * { margin: 0 !important; padding: 0 !important; line-height: 1.3 !important; display: flex; align-items: center; gap: 6px; }
body.type-detail .p-detail-info, body.type-detail .p-detail-info * { font-size: calc(var(--nd-fs-min) * 1px) !important; }
body.type-detail .p-detail-info .p-code { color: var(--nd-muted); }
/* štítky = chip z katalógu (V50): zaoblenie 9, 6×12, tučné 13 px, bez tieňa; farby z adminu */
body.type-detail .p-detail-info .flags { display: flex !important; gap: 4px !important; flex-wrap: wrap; }
body.type-detail .p-detail-info .flags .flag {
  border-radius: 9px !important; padding: 6px 12px !important; font-weight: 700 !important; font-size: 13px !important;
  line-height: 1.2 !important; letter-spacing: .2px !important; box-shadow: none !important; margin: 0 !important;
  display: inline-block !important; white-space: nowrap !important; height: auto !important; min-height: 0 !important;
}
/* v0.20 (Šimon 8.9.): na DETAILE žiadne štítky — „Novinka“ aj kupónový „-20 % | LYO20“ preč. Zľavu nesie červená cena
   s bublinou %, kód nesie chip pri cene, takže sa nestráca nič. V katalógu štítky ostávajú (V50).
   Sú skryté, NIE zmazané: chip s kódom si z kupónového štítku číta text (cenaSKodom v skripte) — display:none mu nevadí.
   Ak by sa mali vrátiť stlmené do sivej, stačí zmazať toto pravidlo a farby dať v admine. */
body.type-detail .p-detail-info > .flags { display: none !important; }

/* na fotke NULA štítkov (pravidlo V50) — zľavové koliesko šablóny preč, % ide k cene.
   v0.20: pridané `body.type-detail` do selektora. Dôvod: nutiva-custom.css v9.4 (8.9.2026) má vlastný blok
   ZĽAVOVÁ BUBLINA presne na `html body #content-wrapper .p-image-wrapper .flags-extra .flag.flag-discount`,
   teda na rovnakú silu selektora — a keďže v Záhlaví je master načítaný AŽ ZA týmto súborom, prebíjal nás
   a bublina sa na fotke vrátila (Šimon 8.9., karta Slivky 1 kg). Trieda navyše nás dvíha nad neho bez ohľadu
   na poradie súborov. Poradie treba aj tak opraviť — oblastný súbor patrí AŽ ZA master (jadro/eshop.md). */
html body.type-detail #content-wrapper .p-image-wrapper .flags-extra .flag.flag-discount,
html body.type-detail .p-image-wrapper .flags-extra .flag.flag-discount,
html body.type-detail #content-wrapper .p-image .flags-extra .flag.flag-discount { display: none !important; }

/* ---------- 3. karta ceny: slabosivá, dve poschodia (cena + tlačidlo / dostupnosť + doručenie + Nutibody) ---------- */
body.type-detail .price-line {
  display: grid !important; grid-template-columns: 1fr; gap: 12px; margin: 6px 0 14px;
}
body.type-detail .p-info-wrapper > .price-line {
  padding: 18px 20px !important; min-height: 0 !important;
  background: var(--nd-siva) !important; border: 1px solid #eaeaea !important; border-radius: 12px !important;
}
body.type-detail .price-line::before, body.type-detail .price-line::after { display: none !important; content: none !important; }   /* šablóna kreslí nad price-line absolútnu linku */
body.type-detail .price-line > * { margin: 0 !important; }

/* riadok ceny ako v katalógu (V50/V53): nová (červená pri akcii) · stará prečiarknutá · bublina % · [cena s kódom] */
body.type-detail .price-line > .p-final-price-wrapper { order: 1 !important; display: flex !important; flex-wrap: wrap; align-items: baseline; column-gap: 10px; row-gap: 4px; width: 100% !important; max-width: none !important; }   /* šablóna dáva obalu 250 px → chip by padal pod cenu */
body.type-detail .price-line .price-final { order: 1; margin: 0 !important; font-size: 30px; letter-spacing: -.01em; }
body.type-detail .price-line .price-final.price-action,
body.type-detail .price-line .price-final.price-action .price-final-holder { color: #d42424 !important; }
body.type-detail .price-line .p-final-price-wrapper .price-standard {
  order: 2; font-size: 18px !important; font-weight: 500; color: #555 !important; white-space: nowrap;
  text-decoration: line-through; text-decoration-thickness: 1px; text-decoration-color: #999;
}
body.type-detail .price-line .p-final-price-wrapper .price-standard * { color: #555 !important; font-size: 18px !important; }
body.type-detail .price-line .p-final-price-wrapper .price-save {
  order: 3; align-self: center; display: inline-flex; align-items: center; height: 28px; padding: 0 9px; border-radius: 14px;
  background: #d32f2f; color: #fff !important; font-size: 14px !important; font-weight: 700; white-space: nowrap;
}
body.type-detail .price-line .p-final-price-wrapper .price-measure { order: 9; flex-basis: 100%; }
/* cena s kódom (kupónový štítok „-20% | KÓD“) — rovnaký chip ako v katalógu, vkladá skript */
body.type-detail .price-line .p-final-price-wrapper .custom-code-price {
  order: 4; align-self: center; display: inline-flex !important; flex-direction: row; align-items: baseline; gap: 8px;
  margin: 0 0 0 14px !important; padding: 5px 12px !important; line-height: 1.15 !important; white-space: nowrap !important; box-sizing: border-box;
  /* v0.20: zelenkavý podklad preč — biely chip s tenkým rámom a tieňom, zaoblenie 9 px ako pilulky balení a štítky (Šimon 8.9.) */
  background: #fff !important; border: 1px solid #e0e0e0; border-radius: 9px; box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 3px 8px rgba(0,0,0,.07);
}   /* desktop: [9,98 €] 24 px medzera [7,98 € s kódom LYO20] — suma vpredu a väčšia, popis za ňou (Šimon 5.9.) */
body.type-detail .price-line .custom-code-price .nv-code-p { order: 0; font-size: 22px; font-weight: 800; color: #d32f2f; }
body.type-detail .price-line .custom-code-price .nv-code-l { order: 1; font-size: 16px; font-weight: 700; color: #444; }
body.type-detail .price-line .custom-code-price .nv-code-l i { font-style: normal; font-weight: 500; }
/* tlačidlo kopírovania v chipe — LEN IKONA (Šimon 7.9.), tooltip nesie „Skopírovať zľavový kód LYO20“; po kliknutí 1,8 s zelená fajka */
body.type-detail .price-line .custom-code-price .nv-code-copy {
  order: 2; align-self: center; display: inline-flex; align-items: center; justify-content: center; margin: 0 0 0 6px !important;
  width: 26px !important; min-width: 0 !important; height: 26px !important; min-height: 0 !important; padding: 0 !important;   /* šablóna dáva tlačidlám min-width 80 px */
  border: 1px solid #e0e0e0; border-radius: 6px; background: #f6f6f6; color: #374151; line-height: 1 !important; font-size: 0 !important;
  cursor: pointer; transition: background .15s, border-color .15s;
}
body.type-detail .price-line .custom-code-price .nv-code-copy:hover { border-color: var(--nd-akcent); color: var(--nd-akcent); }
body.type-detail .price-line .custom-code-price .nv-code-copy.je-ok { background: #e3f5e4; border-color: #9ccc9f; color: #2f5f00; }
body.type-detail .price-line .custom-code-price .nv-code-copy svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
body.type-detail .price-line .custom-code-price .nv-code-copy .ico-ok { display: none; }
body.type-detail .price-line .custom-code-price .nv-code-copy.je-ok .ico-ok { display: block; }
body.type-detail .price-line .custom-code-price .nv-code-copy.je-ok .ico-copy { display: none; }

/* stepper + tlačidlo v jednom rade; input má od šablóny okraje 31/40 px a znaky kreslí 12px ::before v rohu — všetko prebité */
body.type-detail .price-line > .add-to-cart { order: 2 !important; display: flex; flex-wrap: nowrap !important; gap: 10px; align-items: stretch; width: 100%; }
body.type-detail .price-line > .add-to-cart .btn-conversion {
  flex: 1; width: auto !important; font-size: 16px; height: auto !important; min-height: 48px; box-sizing: border-box;
  display: flex; align-items: center; justify-content: center; padding-top: 0 !important; padding-bottom: 0 !important; line-height: 1.2;
}   /* rovnaká výška ako stepper vedľa (Šimon 7.9.: tlačidlo bolo o pár px kratšie) */
body.type-detail .price-line .add-to-cart .quantity {
  flex: 0 0 auto !important; width: calc(var(--nd-step) * 4.4px) !important; height: 48px; margin: 0 !important;
  position: relative !important; display: block !important; overflow: visible;
}
body.type-detail .price-line .add-to-cart .quantity label { display: block !important; width: 100% !important; height: 48px !important; margin: 0 !important; padding: 0 !important; }
body.type-detail .price-line .add-to-cart .quantity .increase-tooltip,
body.type-detail .price-line .add-to-cart .quantity .decrease-tooltip { display: none !important; }
body.type-detail .price-line .add-to-cart .quantity .amount {
  width: 100% !important; height: 48px; margin: 0 !important; box-sizing: border-box !important; background: #fff !important;
  text-align: center; font-size: 17px !important; font-weight: 600; padding: 0 calc(var(--nd-step) * 1.2px) !important;
}
body.type-detail .price-line .add-to-cart .quantity .increase,
body.type-detail .price-line .add-to-cart .quantity .decrease {
  width: calc(var(--nd-step) * 1px) !important; height: calc(var(--nd-step) * 1px) !important;
  top: 50% !important; transform: translateY(-50%); margin: 0 !important; line-height: 1 !important;
  display: flex; align-items: center; justify-content: center; border-radius: 6px;
  background: #fff !important; border: 1px solid #e3e3e3 !important;
}
body.type-detail .price-line .add-to-cart .quantity .increase { right: 6px !important; left: auto !important; }
body.type-detail .price-line .add-to-cart .quantity .decrease { left: 6px !important; }
body.type-detail .price-line .quantity .increase::before, body.type-detail .price-line .quantity .decrease::before,
body.type-detail .price-line .quantity .increase::after, body.type-detail .price-line .quantity .decrease::after { display: none !important; content: none !important; }
/* znaky + − ako čiary (pseudo-prvky), nie písmom — glyf fontu sedí nad optickým stredom */
body.type-detail .price-line .quantity .increase__sign, body.type-detail .price-line .quantity .decrease__sign {
  display: block !important; position: relative !important; width: calc(var(--nd-step) * 0.42px); height: calc(var(--nd-step) * 0.42px);
  margin: 0 !important; padding: 0 !important; font-size: 0 !important; color: transparent !important; opacity: 1 !important; visibility: visible !important; overflow: hidden;
}
body.type-detail .price-line .quantity .increase__sign::before, body.type-detail .price-line .quantity .decrease__sign::before,
body.type-detail .price-line .quantity .increase__sign::after {
  content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  background: #1e1e1c; border-radius: 1px; width: 100%; height: 2px;
}
body.type-detail .price-line .quantity .increase__sign::after { width: 2px; height: 100%; }

/* dostupnosť ako TRI riadky (Šimon 8.9.), ikony v jednom stĺpci — fajka · autíčko · žetón Nutibodov:
     [✓] Skladom (viac ako 20 kusov)
     [🚚] doručíme 11.9.2026 · Možnosti doručenia
     [žetón] +30,24 Nutibodov · čo sú Nutibody          ← blok Ellity, samostatný prvok karty (poradie 4)
   Stĺpec ikony má šírku --nd-ico-col (33 px, na mobile 28) a medzeru 10 px — presne ako žetón Nutibodov, takže texty
   všetkých troch riadkov začínajú na jednej osi. Riadky 1 a 2 skladá skript (dostupnost()): .nd-r1 / .nd-r2, v každom
   ikona + .nd-tx s textom. Ikona autíčka NIE JE natvrdo — skript prečíta obrázok z ::before šablónového odkazu
   a vloží ho do premennej --nd-ico-truck, takže ide so šablónou. Fajka je tá istá ikona zo sady šablóny (check.svg,
   ťah M20 6L9 17L4 12), len prefarbená na zelenú — nič sa nekreslí od oka. Dátum aj počet kusov sú zo šablóny;
   skript prepíše „(>20 ks)“ na „(viac ako 20 kusov)“, aby sa riadok čítal ako veta. */
body.type-detail .price-line { --nd-ico-col: 33px; }
body.type-detail .price-line > .availability-value {
  order: 3 !important; display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important;
  align-items: stretch !important; gap: 9px !important; font-size: 15px;
  padding-top: 12px; border-top: 1px solid #e3e3e3; margin: 0;
}
body.type-detail .price-line > .availability-value .nd-r1,
body.type-detail .price-line > .availability-value .nd-r2 { display: flex !important; align-items: center; gap: 10px; margin: 0; padding: 0; }
body.type-detail .price-line > .availability-value .nd-tx { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 7px; min-width: 0; }
body.type-detail .price-line > .availability-value .nd-tx > * { line-height: 1.3; margin: 0; padding: 0; }
body.type-detail .price-line > .availability-value .nd-ico {
  flex: 0 0 var(--nd-ico-col); width: var(--nd-ico-col); height: 22px; align-self: center;
  background-repeat: no-repeat; background-position: center;
}
body.type-detail .price-line > .availability-value .nd-ico-ok {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M20 6L9 17L4 12' stroke='%2361971E' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 21px 21px;
}
body.type-detail .price-line > .availability-value .nd-ico-truck { background-image: var(--nd-ico-truck, none); background-size: 23px 19px; }
body.type-detail .price-line > .availability-value .availability-label { font-weight: 700; font-size: 16px; color: #1e1e1c !important; }   /* v0.19: Skladom tmavé (šablóna dáva zelenú inline) */
body.type-detail .price-line > .availability-value .availability-amount { color: var(--nd-muted); font-size: 14px; }
body.type-detail .price-line > .availability-value .nd-dot { color: #9aa3ae; }
body.type-detail .price-line > .availability-value .nd-dorucime { color: var(--nd-ink); }
body.type-detail .price-line > .availability-value .delivery-time,
body.type-detail .price-line > .availability-value .delivery-time span { font-weight: 700; color: var(--nd-ink); display: inline !important; font-size: 15px; }
body.type-detail .price-line > .availability-value .delivery-time-label { display: none; }
body.type-detail .price-line > .availability-value .delivery-line { display: none !important; }   /* obal šablóny ostal prázdny — odkaz je v .nd-r2 */
body.type-detail .price-line > .availability-value a.shipping-options {
  display: inline !important; color: var(--nd-akcent) !important; font-weight: 700;
  font-size: 15px !important; text-decoration: underline !important; text-decoration-color: var(--nd-link-line); text-underline-offset: 3px; border-bottom: 0 !important;
  padding: 0 !important; margin: 0 !important; position: static !important;   /* šablóna: padding-left 30 + margin 2 + absolútna ikona */
}
body.type-detail .price-line > .availability-value a.shipping-options:hover { color: var(--nd-akcent-h) !important; }
body.type-detail .price-line > .availability-value a.shipping-options::before { display: none !important; }   /* ikonu kreslí .nd-ico-truck na začiatku riadku; `content` sa NEruší — skript si z tohto ::before číta obrázok */

/* Nutibody (Ellity): text tmavý, tučná suma 16 px, odkaz zelený 15 px, pred textom žetón Nutibody (Maskot/ikona_mince.svg) 33 px.
   Skript DOČASNE mení „Nutibodov do Bonusového programu“ na „Nutibodov · čo sú Nutibody“ — naostro text v nastavení Ellity. */
body.type-detail .price-line > .mehub-bonus-product-detail-container { order: 4 !important; font-size: 15px !important; color: #374151; margin-top: -3px !important; }   /* karta má gap 12, riadky dostupnosti 9 — zrovnané */
body.type-detail .price-line .mehub-bonus-product-detail-container .card { box-shadow: none !important; border: 0 !important; background: transparent !important; padding: 0 !important; margin: 0 !important; max-width: none !important; }
body.type-detail .price-line .mehub-bonus-product-detail-container .card-text { padding: 0 !important; font-size: 15px !important; }
body.type-detail .price-line .mehub-bonus-product-detail-container .card-text,
body.type-detail .price-line .mehub-bonus-product-detail-container .card-text * { color: #1e1e1c !important; }   /* modrá Ellity sedí na vnútornom spane */
body.type-detail .price-line .mehub-bonus-product-detail-container .card-text b { font-size: 16px !important; font-weight: 700; }
body.type-detail .price-line .mehub-bonus-product-detail-container .card-text a { color: var(--nd-akcent) !important; font-weight: 700; font-size: 15px !important; text-decoration: underline !important; text-decoration-color: var(--nd-link-line); text-underline-offset: 3px; border-bottom: 0 !important; }
body.type-detail .price-line .mehub-bonus-product-detail-container .card-text a:hover { color: var(--nd-akcent-h) !important; }
body.type-detail .price-line .mehub-bonus-product-detail-container .card-text > span { display: inline-flex; align-items: center; gap: 10px; }
body.type-detail .price-line .mehub-bonus-product-detail-container .card-text > span::before {
  content: ""; display: inline-block; width: 33px; height: 33px; flex: 0 0 auto; margin: 0; border-radius: 0; vertical-align: middle;
  background: url("/user/documents/upload/Maskot/ikona_mince.svg") center / contain no-repeat;
}

/* „Nakúpili za posledný mesiac: 692x“ (doplnok dklab, .dklabNaposledyZakoupiliCelkem) — v karte ceny hore, ale ako tichá
   pilulka v tinte s bublinou „i“, nie zelený blok 250 px s bielym písmom (Šimon 7.9.: sociálny dôkaz nechať, zaobliť) */
body.type-detail .price-line > .dklabNaposledyZakoupiliCelkem {
  order: 0; display: inline-flex !important; align-items: center; gap: 8px; width: auto !important; max-width: none; justify-self: start;
  margin: 0 !important; padding: 7px 14px 7px 8px !important; border-radius: 999px !important;
  background: var(--nd-tint) !important; color: #1e1e1c !important; font-size: 14px !important; line-height: 1.2;
}
body.type-detail .price-line > .dklabNaposledyZakoupiliCelkem > span {
  width: 22px !important; height: 22px !important; display: inline-flex !important; align-items: center; justify-content: center;
  margin: 0 !important; padding: 0 !important; border-radius: var(--nd-blob) !important; background: var(--nd-z1) !important;
  color: #fff !important; font-size: 13px !important; font-weight: 800; font-style: normal; line-height: 1;
}
body.type-detail .price-line > .dklabNaposledyZakoupiliCelkem strong { font-size: 15px !important; font-weight: 700; color: #1e1e1c !important; }   /* doplnok dáva číslu bielu */

/* ---------- 4. balenia (pilulky gramáží) — blok .ld5-balenia vkladá render.py do popisu, skript ho dvíha nad cenu ----------
   V popise je skrytý (nepreblesne pred presunom); zobrazí sa až v .p-info-wrapper. Bez skriptu ho vidí len robot.
   Tvar: nepravidelné „mango“ (Šimon 7.9.), aktívna = tint + limetkový rám + tučné, ostatné biele s tenkým rámom, každá iný tvar. */
body.type-detail .listing-detail-v51 .ld5-balenia { display: none; }
body.type-detail .p-info-wrapper > .ld5-balenia { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 15px; color: #374151; margin: 2px 0 22px !important; }   /* v0.20: o 20 px vyššie — po skrytí štítkov sa pod názvom uvoľnilo miesto (Šimon 8.9.) */
body.type-detail .ld5-balenia > span { font-weight: 500; }
/* v0.11 (Šimon 7.9. večer): pilulka ako v katalógu (V50 — #e3f5e4, tmavý text, oblé konce), k tomu tieň, nech je jasné, že sa dá kliknúť */
body.type-detail .ld5-balenia a {
  display: inline-block; padding: 15px 26px !important; border: 1px solid #d9d9d9; border-radius: 9px;   /* v0.14: 999 → 9, ako štítky a pilulka v katalógu (Šimon 7.9. večer) */
  background: #fff; color: #374151; text-decoration: none; font-weight: 500; font-size: calc(var(--nd-gram-fs) * 1px); line-height: 1.2;
  box-shadow: 0 1px 2px rgba(0,0,0,.10), 0 4px 10px rgba(0,0,0,.12); transition: box-shadow .15s, transform .15s, border-color .15s, background .15s;
}
body.type-detail .ld5-balenia a:hover { border-color: var(--nd-z2); background: #f6faef; box-shadow: 0 2px 4px rgba(0,0,0,.12), 0 8px 18px rgba(0,0,0,.16); transform: translateY(-1px); }
body.type-detail .ld5-balenia a.ld5-akt { background: var(--nd-siva); border-color: #cfcfcf; color: #1f1f1f; font-weight: 600; }   /* v0.19: rám svetlý, nie výrazný */   /* v0.18: sivá ako karta ceny, tmavý rám, tieň ostáva (minimalizmus — Šimon 7.9. večer) */

/* ---------- 4b. galéria fotiek (skript galeriaDesktop()): hlavná fotka na slabosivom podklade, pod ňou pás štvorcov
   s ďalšími fotkami. mix-blend-mode: multiply = biele pozadie fotky splynie so sivou.
   v0.20 (Šimon 8.9.): platí UŽ AJ NA MOBILE — pás zo šablóny sa na telefóne zle ovládal (šípky 23 × 17 px) a miniatúry
   boli rozmazané (šablóna ich pýta v 100 px a v 100 px ich aj zobrazuje, čo je na retine tretinové rozlíšenie).
   Náš pás berie veľké fotky, posúva sa prstom (scroll-snap) a šípky majú 38–42 px. Pás miniatúr šablóny sa skrýva. ---------- */
body.type-detail .p-image-wrapper.nd-grid-on .p-thumbnails-wrapper { display: none !important; }
/* v0.17: fotka vyplní celý blok (fotky sú štvorcové 1024 × 1024 → object-fit: cover nič neoreže); biele pozadie fotky
   cez multiply splynie so sivou, takže sa fotky nemusia upravovať (Šimon 7.9. večer) */
/* v0.18: sivý blok aj pri produkte s JEDNOU fotkou (Šimon 7.9.: „ak je len 1 produkt, je biele pozadie“ — nechceme) */
body.type-detail .p-image-wrapper .p-image { background: var(--nd-siva); border-radius: 14px; padding: 0; margin: 0 0 12px; aspect-ratio: 1 / 1; overflow: hidden; display: block; }
body.type-detail .p-image-wrapper .p-image a { display: block; width: 100%; height: 100%; }
body.type-detail .p-image-wrapper .p-image img { width: 100% !important; height: 100% !important; max-height: none !important; max-width: none !important; object-fit: cover; display: block; mix-blend-mode: multiply; }
body.type-detail .p-image-wrapper:not(.nd-grid-on) .p-thumbnails-wrapper { display: none !important; }   /* pri jednej fotke šablóna kreslí prázdny pás miniatúr */
body.type-detail .nd-grid-box { position: relative; }
body.type-detail .nd-grid { display: flex; gap: 12px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; }
body.type-detail .nd-grid::-webkit-scrollbar { display: none; }
body.type-detail .nd-grid a { flex: 0 0 calc(50% - 6px); scroll-snap-align: start; display: flex !important; align-items: center; justify-content: center; background: var(--nd-siva) !important; border-radius: 14px; aspect-ratio: 1 / 1; overflow: hidden; padding: 0; box-sizing: border-box; }
body.type-detail .nd-grid-sipka { position: absolute; top: 50%; transform: translateY(-50%); width: 38px; height: 38px; border-radius: 50%; border: 0; padding: 0 !important; min-width: 0 !important; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.18); cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 2; }
body.type-detail .nd-grid-sipka[hidden] { display: none !important; }
body.type-detail .nd-grid-sipka.nd-prev { left: 10px; }
body.type-detail .nd-grid-sipka.nd-next { right: 10px; }
body.type-detail .nd-grid-sipka svg { width: 18px; height: 18px; fill: none; stroke: #1e1e1c; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
body.type-detail .nd-grid-sipka:hover { background: var(--nd-tint); }
body.type-detail .nd-grid img { width: 100% !important; height: 100% !important; max-width: 100% !important; max-height: 100% !important; object-fit: cover; display: block !important; mix-blend-mode: multiply; }
body.type-detail .nd-grid a.nd-akt { box-shadow: inset 0 0 0 2px #1e1e1c; }   /* fotka, ktorá je práve hore — tmavý rám (v0.18: menej farieb) */

/* ---------- 5. záložky Popis / Podobné / Hodnotenie / Diskusia — na desktope všetky viditeľné (skript ich vyberá z ☰);
   na mobile ostáva ☰ šablóny: Popis + Podobné v jednom riadku, Hodnotenie a Diskusia po rozkliknutí (Šimon 7.9.) ---------- */
@media (min-width: 768px) {
  body.type-detail .shp-tabs-row .navigation-btn, body.type-detail .shp-tabs-row .hidden-links { display: none !important; }
  body.type-detail .shp-tabs-row .shp-tabs-holder { width: 100% !important; }
}

/* ---------- 6. popis v5.1: dva stĺpce cez celú šírku, dáta vpravo prilepené (len html.ld5-detail) ---------- */
html.ld5-detail #description .description-inner {
  display: grid; grid-template-columns: minmax(0, 1fr) calc(var(--nd-col-r) * 1%);
  gap: 0 calc(var(--nd-col-gap) * 1px); align-items: start;
}
html.ld5-detail #description .basic-description, html.ld5-detail #description .extended-description {
  width: auto !important; max-width: none !important; float: none !important; padding: 0 !important; margin: 0 !important; flex: none !important;
}
html.ld5-detail #description .extended-description { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 0; }
html.ld5-detail .extended-description > .ld5-data { order: 1; margin-top: 0 !important; border-top: 0; padding-top: 0; }
html.ld5-detail .extended-description > h3 { order: 5; }
html.ld5-detail .extended-description > table.detail-parameters { order: 6; }
html.ld5-detail [id^="nd-"] { scroll-margin-top: 96px; }

/* v0.20 (Šimon 8.9.): Zloženie a alergény, Nutričné hodnoty a Dodatočné parametre sú tri samostatné KARTY, nech
   nesplývajú do jednej steny tabuliek. Triedu .nd-box dáva skript (boxyDat()) — .ld5-zlozenie a .ld5-nutrition ju
   dostanú, nadpis + tabuľku parametrov skript zabalí do .nd-box.nd-box-par (šablóna ich má ako dvoch súrodencov).
   Nadpis je hlavička karty: 18 px tučné, pod ním 2px linka v inom zelenom odtieni značky, tabuľka ide po okraje karty.
   „Podrobný popis“ preč — hero odsek je úvod sám o sebe (Šimon 7.9.). */
html.ld5-detail #description .basic-description > h3 { display: none !important; }
body.type-detail .nd-box {
  background: #fff; border: 1px solid #e6e6e6; border-radius: 12px; overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.06); margin: 0 0 18px !important; padding: 0 !important;   /* v0.20: tieň jemnejší a kratší (Šimon 8.9.) */
}
body.type-detail .nd-box table { margin: 0 !important; }
body.type-detail .ld5-data { border-top: 0 !important; padding-top: 0 !important; margin-top: 0 !important; }   /* linku nad dátami nahradili karty */
html.ld5-detail .extended-description .nd-box.nd-box-par { order: 6; }   /* poradie prešlo z tabuľky na obal, ktorý dal skript */
html.ld5-detail .extended-description .nd-box > h3,
html.ld5-detail .extended-description .ld5-data h4 {
  font-size: calc(var(--nd-nadpis) * 1px) !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: 0 !important;
  color: var(--nd-ink) !important; margin: 0 !important; padding: 14px 18px 11px !important; line-height: 1.25;
  border: 0 !important; border-bottom: 2px solid var(--nd-z1) !important;
}
html.ld5-detail .extended-description .ld5-nutrition h4 { border-bottom-color: var(--nd-z3) !important; }
html.ld5-detail .extended-description .nd-box > h3 { border-bottom-color: var(--nd-z2) !important; }
html.ld5-detail .extended-description .nd-box > h3::before, html.ld5-detail .extended-description .nd-box > h3::after { display: none !important; content: none !important; }

/* tabuľky: rovnaký formát (14 px, bunky 8×10, pruhy slabosivé, názvy riadkov tučné vo všetkých troch),
   Dodatočné parametre bez zeleného podkladu a bez dvojbodiek */
html.ld5-detail .extended-description table.ld5-par, html.ld5-detail .extended-description table.ld5-nutri { font-size: calc(var(--nd-fs-tab) * 1px); }
html.ld5-detail .extended-description table.ld5-par th, html.ld5-detail .extended-description table.ld5-par td,
html.ld5-detail .extended-description .ld5-nutri th, html.ld5-detail .extended-description .ld5-nutri td { padding: 8px 18px; }   /* v0.20: po okraje karty, zarovnané s nadpisom */
html.ld5-detail .extended-description table.ld5-par th { width: 38%; font-weight: 700 !important; color: #1e1e1c !important; text-align: left !important; vertical-align: top; }   /* zľava ako ostatné dve tabuľky (šablóna centruje th) */
html.ld5-detail .extended-description .ld5-nutri td:first-child { font-weight: 700; color: #1e1e1c; }
html.ld5-detail .extended-description table.detail-parameters {
  width: 100%; border-collapse: collapse; background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important;
}
html.ld5-detail .extended-description table.detail-parameters tr,
html.ld5-detail .extended-description table.detail-parameters th,
html.ld5-detail .extended-description table.detail-parameters td { background: transparent !important; border: 0 !important; }
html body #content-wrapper .extended-description table.detail-parameters th, html body #content-wrapper .extended-description table.detail-parameters td,
html body .extended-description table.detail-parameters th, html body .extended-description table.detail-parameters td { padding: 8px 18px !important; font-size: calc(var(--nd-fs-tab) * 1px) !important; text-align: left !important; }
html.ld5-detail .extended-description table.detail-parameters th { width: 38%; font-weight: 700 !important; color: #1e1e1c !important; vertical-align: top; }
html.ld5-detail .extended-description table.detail-parameters .row-header-label-colon { display: none !important; }
html.ld5-detail .extended-description table.detail-parameters td,
html.ld5-detail .extended-description table.detail-parameters td a { color: var(--nd-ink) !important; font-weight: 400 !important; text-decoration: none !important; }
html.ld5-detail .extended-description table.detail-parameters td a:hover { color: var(--nd-akcent) !important; text-decoration: underline !important; }
html.ld5-detail .extended-description table.ld5-par tr:nth-child(even),
html.ld5-detail .extended-description table.detail-parameters tr:nth-child(even),
html.ld5-detail .extended-description .ld5-nutri tbody tr:nth-child(even) { background: var(--nd-siva) !important; }
/* nutričná tabuľka: nadpis nesie „na 100 g“ (render.py / skript), zelený riadok hlavičky preč, tabuľka začína Energiou bez linky */
html.ld5-detail .ld5-nutrition table.ld5-nutri thead { display: none !important; }
html.ld5-detail .ld5-nutrition table.ld5-nutri tbody tr:first-child td { border-top: 0 !important; }

/* ---------- 7. bloky popisu v5.1 (platia aj bez skriptu) ---------- */
body.type-detail .listing-detail-v51, body.type-detail .listing-detail-v51 > * { max-width: none !important; }   /* strop 680 px zo šablóny preč */
/* ZAROVNANIE: text je zarovnaný VĽAVO (pravý okraj strapkatý), nie do bloku. Zarovnanie do bloku (7.9.) sa 8.9.
   zrušilo — prehliadač ho robí naťahovaním medzier a namerané to bolo takto: v TIPe 6,7 px medzi slovami oproti
   prirodzeným 3,9 (o 72 % viac), v odseku O Nutive 3,9–5,5 px, teda každý riadok inak. Práve tá nerovnomernosť
   pôsobí „na preskáčku“ (Šimon 8.9.). Delenie slov (hyphens) ide preč s tým — bez naťahovania medzier netreba,
   a v slovenčine lámalo aj názov („NU-TIVA“). Dlaždice a otázky FAQ boli zľava odjakživa, takže celý stĺpec
   je teraz jednotný. */
body.type-detail .listing-detail-v51 .ld5-hero p, body.type-detail .listing-detail-v51 .ld5-faq details p,
body.type-detail .listing-detail-v51 .ld5-brand > div, body.type-detail .listing-detail-v51 .ld5-suvisi p { text-align: left; hyphens: manual; -webkit-hyphens: manual; }
body.type-detail .listing-detail-v51 .ld5-hero { margin-top: 10px; }
/* DĹŽKA RIADKU: strop 680 px (~70 znakov) bol 8.9. skúšaný a Šimon ho ZAMIETOL — odseky majú ísť cez celú šírku
   stĺpca ako dlaždice, inak vyzerajú osekane. Typograficky je to ~92 znakov na riadok (odporúčanie 60–75); je to
   vedomé rozhodnutie majiteľa, nie prehliadnutie. Ak sa k tomu niekedy vrátime, stačí sem dať max-width. */
body.type-detail .listing-detail-v51 .ld5-hero p { font-size: calc(var(--nd-fs-hero) * 1px); line-height: 1.7; margin: 0 0 14px; max-width: none; }

/* dlaždice = zoznam s bublinou (Šimon 7.9.): žiadne karty, dva stĺpce, vľavo bublina s číslom v štyroch farbách značky
   (zelená, limetka, ružová, koralová — „ako lístky“), každá v inom nepravidelnom tvare, vedľa tučný titulok a text.
   Ikony zostávajú vypnuté — sada neexistuje (odovzdávka 5.9.). */
body.type-detail .listing-detail-v51 .ld5-dlazdice {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 44px; margin: 34px 0 38px; counter-reset: dl;
}
body.type-detail .listing-detail-v51 .ld5-dl {
  display: grid; grid-template-columns: 40px 1fr; grid-template-rows: auto auto; column-gap: 14px; row-gap: 5px; align-items: start;
  background: transparent; border: 0; border-radius: 0; padding: 0; box-shadow: none; text-align: left; counter-increment: dl;
}
body.type-detail .listing-detail-v51 .ld5-dl::before {
  content: counter(dl); display: flex; align-items: center; justify-content: center; grid-row: 1 / 3; margin: 0; padding: 0;
  width: 36px; height: 36px; font-size: 15px; font-weight: 800; line-height: 1; letter-spacing: 0; color: #fff;
  background: var(--nd-z1); border-radius: var(--nd-blob);   /* prebíja pravidlo ikon z ČASTI A (v1.0) */
}
/* v0.11: len zelené odtiene značky, od tmavej po svetlú (Šimon 7.9. večer — ružová a koralová preč)
   v0.20: prvá bublina mala #61971E, čo je farba tlačidiel a kruhu účtu v hlavičke — vyzerala ako ovládací prvok.
   Nahradená #7FB733: odvodené od značkovej #89C43E (o niečo sýtejšie), takže rad štyroch bublín ide plynulo
   od sýtejšej po limetkovú a žiadna nevyzerá klikateľne (Šimon 8.9.). */
body.type-detail .listing-detail-v51 .ld5-dl:nth-child(1)::before { background: #7FB733; }
body.type-detail .listing-detail-v51 .ld5-dl:nth-child(2)::before { background: var(--nd-z1); border-radius: 45% 55% 50% 50% / 50% 45% 55% 50%; }
body.type-detail .listing-detail-v51 .ld5-dl:nth-child(3)::before { background: var(--nd-z3); border-radius: 48% 52% 44% 56% / 58% 42% 58% 42%; }
body.type-detail .listing-detail-v51 .ld5-dl:nth-child(4)::before { background: var(--nd-z2); border-radius: 52% 48% 56% 44% / 46% 60% 40% 54%; }
body.type-detail .listing-detail-v51 .ld5-dl b { font-size: calc(var(--nd-dl-tit) * 1px); line-height: 1.2; color: var(--nd-ink); margin: 0; }
body.type-detail .listing-detail-v51 .ld5-dl span { font-size: calc(var(--nd-fs-text) * 1px); line-height: 1.55; color: #4b5563; }

/* FAQ (variant C, Šimon 7.9.): otázka s bublinou „?“ vľavo ako čísla dlaždíc (tint → zelená po otvorení),
   vpravo + / −, odpoveď odsadená pod otázkou, bez liniek */
body.type-detail .listing-detail-v51 .ld5-faq { margin: 34px 0; }
body.type-detail .listing-detail-v51 .ld5-faq h2 { font-size: calc(var(--nd-nadpis-faq) * 1px); margin: 0 0 12px; }
body.type-detail .listing-detail-v51 .ld5-faq details { border: 0 !important; padding: 12px 0 !important; }
body.type-detail .listing-detail-v51 .ld5-faq details + details { border-top: 1px solid #ececec !important; }   /* v0.20: zoznam sa dá prebehnúť očami a vidno, kam otázka siaha (Šimon 8.9.) */
body.type-detail .listing-detail-v51 .ld5-faq summary { display: grid; grid-template-columns: 36px 1fr auto; column-gap: 14px; align-items: center; font-size: calc(var(--nd-fs-otazka) * 1px); font-weight: 600; }
body.type-detail .listing-detail-v51 .ld5-faq summary::before {
  content: "?"; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center;
  border-radius: var(--nd-blob); background: var(--nd-tint); color: #61971E; font-size: 17px; font-weight: 800;
}
body.type-detail .listing-detail-v51 .ld5-faq details[open] summary::before { background: var(--nd-z1); color: #fff; }
body.type-detail .listing-detail-v51 .ld5-faq summary::after { content: "+"; color: var(--nd-z1); }
body.type-detail .listing-detail-v51 .ld5-faq details[open] summary::after { content: "−"; }
body.type-detail .listing-detail-v51 .ld5-faq details p { margin: 8px 0 6px 50px !important; max-width: none; font-size: calc(var(--nd-fs-text) * 1px); line-height: 1.65; }   /* ČASŤ A má 14,5 — pod odporúčaním */

/* TIP (variant D, Šimon 7.9.): tintový blok v nepravidelnom tvare s limetkovým „tieňom“, vľavo zelená bublina TIP 60 px
   s bielym prstencom, ktorá vyčnieva 24 px pred okraj bloku; „NÁŠ TIP:“ v texte je skryté */
body.type-detail .listing-detail-v51 .ld5-suvisi {
  position: relative; display: block !important; overflow: visible; max-width: none;
  margin: 36px 0 !important; padding: 22px 30px 22px 62px !important;
  background: var(--nd-tint) !important; border: 0 !important; border-radius: 48px 26px 56px 30px / 34px 52px 28px 50px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);   /* v0.20: tvrdý limetkový tieň posunutý o 8/10 px preč — bol to najkričanejší prvok popisu a k systému kariet nesadol (Šimon 8.9.) */
  font-size: calc(var(--nd-fs-text) * 1px) !important; line-height: 1.55; color: var(--nd-ink);
}
body.type-detail .listing-detail-v51 .ld5-suvisi::before {
  content: "TIP"; position: absolute; left: -24px; top: 50%; transform: translateY(-50%);
  width: 60px; height: 60px; display: flex; align-items: center; justify-content: center;
  border-radius: var(--nd-blob); background: var(--nd-z1); box-shadow: 0 0 0 5px #fff;
  color: #fff; font-size: 17px; font-weight: 800; line-height: 1; letter-spacing: .02em; padding: 0;
}
body.type-detail .listing-detail-v51 .ld5-suvisi p { margin: 0 !important; position: relative; z-index: 1; }
body.type-detail .listing-detail-v51 .ld5-suvisi .ld5-tip { display: none; }
body.type-detail .listing-detail-v51 .ld5-suvisi a { color: var(--nd-akcent) !important; font-weight: 700; text-decoration: underline; text-decoration-color: var(--nd-link-line); text-underline-offset: 3px; border-bottom: 0 !important; }
body.type-detail .listing-detail-v51 .ld5-suvisi a:hover { color: var(--nd-akcent-h) !important; }

/* značka: nadpis „O Nutive“ (cez ::before — bez zmeny HTML, naostro do šablóny), bez hornej linky, do bloku;
   citát bez zelenej linky; dátum 13 px (Kvasnička) */
body.type-detail .listing-detail-v51 .ld5-brand {
  display: block; margin: 38px 0 0; padding: 0 !important; border-top: 0 !important;
  font-size: calc(var(--nd-fs-text) * 1px); line-height: 1.7; color: #444; max-width: none;
}
body.type-detail .listing-detail-v51 .ld5-brand::before { content: "O Nutive"; display: block; font-size: calc(var(--nd-nadpis-faq) * 1px); font-weight: 700; color: var(--nd-ink); margin: 0 0 10px; line-height: 1.25; }   /* v0.20: rovnako ako „Časté otázky“ — dve úrovne nadpisov (sekcie 20, karty dát 18), nie tri */
html[lang^="cs"] body.type-detail .listing-detail-v51 .ld5-brand::before { content: "O Nutivě"; }
body.type-detail .listing-detail-v51 .ld5-brand > div { margin: 0 0 10px; max-width: none; }   /* v0.20: O Nutive ide cez CELÚ šírku — pod ním už nie je pravý stĺpec, takže strop 680 px tam vyzeral ako osekaný blok (Šimon 8.9., rovnako ako 5.9.) */
body.type-detail .listing-detail-v51 .ld5-brand b { display: inline; margin-right: 0; color: var(--nd-ink); }   /* medzera je už v texte — s margin-right vznikla dvojitá (Šimon 8.9., screen) */
/* v0.20: citát je pointa odseku o značke, nie popiska pod ním — väčší a tmavší, bez linky (Šimon 8.9.) */
body.type-detail .listing-detail-v51 .ld5-citat { font-size: 20px; line-height: 1.5; color: var(--nd-ink); margin: 22px 0 6px; padding-left: 0 !important; border-left: 0 !important; max-width: none; }
/* .ld5-meta (Aktualizované…) zrušené 7. 9. — šablóna v5.1 ho už negeneruje, z HTML 8349 vyhodený ručne */

/* ---------- 8. mobil (≤ 767 px) — desktop a mobil sa ladia oddelene (Šimon 7.9.) ---------- */
@media (max-width: 767px) {
  html.ld5-detail #description .description-inner { display: block; }
  html.ld5-detail #description .extended-description { position: static; }
  body.type-detail .listing-detail-v51 .ld5-dlazdice { grid-template-columns: 1fr; gap: 16px; }
  /* v0.20 (Šimon 8.9.): hlavná fotka na sivom štvorci ako na desktope — sivá je tým na detaile aj v katalógu rovnaká.
     Pás miniatúr (.p-thumbnails) ostáva šablóne: má vnútro široké 140 000 px, ktoré posúva vlastnosťou `left`, a
     text-align: center ho kedysi posunul o 70 000 px mimo obrazovku → galéria „zablokovaná“ (Bonitas jahody 30 g, 7.9.).
     Preto je zarovnanie scopnuté len na .p-image a s pásom hýbe skript (mobilnyPas) presne o jednu miniatúru. */
  body.type-detail .p-image-wrapper .p-image { margin: 0 0 10px; }   /* sivý štvorec drží blok 4b (platí pre obe šírky), tu len tesnejší odstup */
  body.type-detail .p-image-wrapper .p-thumbnails, body.type-detail .p-image-wrapper .p-thumbnails-inner { text-align: left; }
  /* náš pás fotiek na mobile: rovnaké sivé štvorce ako na desktope, len o kúsok väčšie šípky pre prst */
  body.type-detail .nd-grid { gap: 10px; }
  body.type-detail .nd-grid a { flex-basis: calc(50% - 5px); }
  body.type-detail .nd-grid-sipka { width: 42px; height: 42px; }
  body.type-detail .nd-grid-sipka.nd-prev { left: 8px; }
  body.type-detail .nd-grid-sipka.nd-next { right: 8px; }

  /* miniatúry šablóny (fallback, keď skript nebeží alebo je fotka jedna): zaoblené, vybraná s tmavým rámom */
  body.type-detail .p-thumbnails .p-thumbnail { border-radius: 12px !important; overflow: hidden; border-color: transparent !important; }
  body.type-detail .p-thumbnails .p-thumbnail img { border-radius: 12px; display: block; }
  body.type-detail .p-thumbnails .p-thumbnail.highlighted { border-color: transparent !important; box-shadow: inset 0 0 0 2px #1e1e1c; }
  /* šípky pásu miniatúr: šablóna im dáva 23 × 17 px, čo je tretina odporúčaného dotykového cieľa (44 × 44).
     Glyf necháme, kde je, a plochu na prst zväčšíme neviditeľným ::after — klik naň spadne na odkaz (Šimon 8.9.). */
  body.type-detail .p-thumbnails-wrapper .thumbnail-prev::after,
  body.type-detail .p-thumbnails-wrapper .thumbnail-next::after {
    content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 44px; height: 44px;
  }

  /* riadok štítkov presunutý skriptom pod názov (mobilInfo()) — tu už nie je vo flex stĺpci, poradie nerieši */
  body.type-detail .p-detail-inner-header > .p-detail-info { margin: 2px 0 12px !important; }
  /* v0.17: mobilná galéria = pôvodná zo šablóny (hlavná fotka + miniatúry), karusel vypnutý v skripte (MOBILNY_KARUSEL = false);
     pravidlá karusela nižšie ostávajú pre prípad návratu */
  /* mobilná galéria = karusel (skript galeria(), v0.12): pás so scroll-snap, bodky, počítadlo; pôvodná fotka + miniatúry skryté */
  body.type-detail .p-image-wrapper.nd-gal-on .p-image, body.type-detail .p-image-wrapper.nd-gal-on .p-thumbnails-wrapper { display: none !important; }
  body.type-detail .nd-gal { position: relative; margin: 0 0 6px; }
  body.type-detail .nd-gal-pas { display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  body.type-detail .nd-gal-pas::-webkit-scrollbar { display: none; }
  body.type-detail .nd-gal-slide { flex: 0 0 100%; width: 100%; scroll-snap-align: center; scroll-snap-stop: always; display: flex; align-items: center; justify-content: center; min-height: 62vw; }
  body.type-detail .nd-gal-slide img { max-height: 62vw; max-width: 100%; width: auto; height: auto; display: block; }
  body.type-detail .nd-gal-bodky { display: flex; justify-content: center; gap: 6px; margin: 10px 0 0; }
  body.type-detail .nd-gal-bodky i { width: 8px; height: 8px; border-radius: 50%; background: #d9d9d9; transition: width .15s, background .15s; }
  body.type-detail .nd-gal-bodky i.akt { width: 22px; border-radius: 4px; background: var(--nd-z1); }
  body.type-detail .nd-gal-bodky.nd-vela { display: none; }   /* nad 8 fotiek sú bodky nečitateľné — ostáva počítadlo */
  body.type-detail .nd-gal-pocet { position: absolute; right: 10px; top: 8px; padding: 3px 9px; border-radius: 999px; background: rgba(255,255,255,.88); color: #374151; font-size: 13px; font-weight: 600; line-height: 1.3; box-shadow: 0 1px 3px rgba(0,0,0,.12); }

  /* info riadok: štítky na vlastnom riadku, pod nimi hviezdy · Značka · Kód v jednom riadku; text „Neohodnotené“ /
     „n hodnotení“ skrytý, hviezdy ostávajú klikateľné (odkaz show-ratings) */
  body.type-detail .p-detail-info { gap: 6px 12px; margin: 6px 0 12px !important; }
  body.type-detail .p-detail-info > .flags { flex-basis: 100%; margin-bottom: 6px !important; }
  body.type-detail .p-detail-info .stars-wrapper .stars-label, body.type-detail .p-detail-info .stars-wrapper .stars-link { display: none !important; }
  body.type-detail .p-detail-info .stars-wrapper { width: auto !important; flex: 0 0 auto !important; }   /* šablóna mu dáva 100 % → hviezdy by boli na vlastnom riadku */

  /* pilulky balení: rovnaké ako na desktope (15 × 26, 16 px) — menšia verzia sa Šimonovi nepáčila (7.9. večer), len menšia medzera okolo bloku */
  body.type-detail .p-info-wrapper > .ld5-balenia { gap: 8px; margin: 16px 0 16px !important; }   /* v0.20: rovnaká medzera hore aj dole — blok bol prilepený na fotky (Šimon 8.9. večer) */

  /* karta ceny v jednom bloku: stepper 123 px + tlačidlo bez min-width 160 zo šablóny (pretekalo o 27 px cez okraj karty) */
  body.type-detail .p-info-wrapper > .price-line { padding: 14px 12px !important; margin: 6px 0 14px !important; gap: 10px; }
  body.type-detail .price-line .price-final { font-size: 26px; }
  body.type-detail .price-line .p-final-price-wrapper .price-standard, body.type-detail .price-line .p-final-price-wrapper .price-standard * { font-size: 16px !important; }
  body.type-detail .price-line .p-final-price-wrapper .price-save { height: 24px; font-size: 13px !important; padding: 0 8px; }
  body.type-detail .price-line .p-final-price-wrapper .custom-code-price { margin-left: 0 !important; padding: 4px 10px !important; }   /* na 375 px sa chip zalomí pod cenu, bez odsadenia */
  body.type-detail .price-line .custom-code-price .nv-code-p { font-size: 19px; }
  body.type-detail .price-line .custom-code-price .nv-code-l { font-size: 14px; }
  body.type-detail .price-line > .add-to-cart { gap: 8px; }
  body.type-detail .price-line .add-to-cart .quantity { width: 124px !important; height: 46px; }   /* užší, ale + − ostávajú 36 px na dotyk */
  body.type-detail .price-line .add-to-cart .quantity label, body.type-detail .price-line .add-to-cart .quantity .amount { height: 46px !important; }
  body.type-detail .price-line .add-to-cart .quantity .amount { padding: 0 42px !important; font-size: 16px !important; }
  body.type-detail .price-line .add-to-cart .quantity .increase, body.type-detail .price-line .add-to-cart .quantity .decrease { width: 36px !important; height: 36px !important; }
  body.type-detail .price-line .add-to-cart .quantity .increase { right: 4px !important; }
  body.type-detail .price-line .add-to-cart .quantity .decrease { left: 4px !important; }
  body.type-detail .price-line > .add-to-cart .btn-conversion { min-width: 0 !important; padding: 0 10px !important; font-size: 15px; min-height: 46px; white-space: nowrap; }
  /* dostupnosť: tie isté tri riadky ako na desktope, len stĺpec ikony 28 px — presne ako žetón Nutibodov na mobile */
  body.type-detail .price-line { --nd-ico-col: 28px; }
  body.type-detail .price-line > .availability-value { font-size: 14px; gap: 8px !important; padding-top: 10px; }
  body.type-detail .price-line > .availability-value .availability-label { font-size: 15px; }
  body.type-detail .price-line > .availability-value .delivery-time, body.type-detail .price-line > .availability-value .delivery-time span,
  body.type-detail .price-line > .availability-value a.shipping-options { font-size: 14px !important; }
  body.type-detail .price-line > .mehub-bonus-product-detail-container, body.type-detail .price-line .mehub-bonus-product-detail-container .card-text,
  body.type-detail .price-line .mehub-bonus-product-detail-container .card-text a { font-size: 14px !important; }
  body.type-detail .price-line .mehub-bonus-product-detail-container .card-text b { font-size: 15px !important; }
  body.type-detail .price-line .mehub-bonus-product-detail-container .card-text > span::before { width: 28px; height: 28px; }

  /* karty dát: menšie okraje, aby na 390 px ostalo miesto na text */
  body.type-detail .nd-box { margin: 0 0 14px !important; }
  html.ld5-detail .extended-description .ld5-data h4, html.ld5-detail .extended-description .nd-box > h3 { padding: 12px 14px 10px !important; }
  html.ld5-detail .extended-description .nd-box table.ld5-par th, html.ld5-detail .extended-description .nd-box table.ld5-par td,
  html.ld5-detail .extended-description .nd-box .ld5-nutri th, html.ld5-detail .extended-description .nd-box .ld5-nutri td,
  html body .extended-description .nd-box table.detail-parameters th, html body .extended-description .nd-box table.detail-parameters td { padding: 8px 14px !important; }

  /* krátky popis: odkaz na vlastnom riadku — inline odkaz s nowrap zalomil poslednú vetu a zarovnanie do bloku ju roztiahlo */
  body.type-detail .p-short-description .nd-viac { display: block; margin: 6px 0 0; width: max-content; }


  /* TIP: bublina vnútri bloku (na desktope vyčnieva 24 px pred okraj, na mobile nie je kam), menší tvar aj tieň */
  body.type-detail .listing-detail-v51 .ld5-suvisi { margin: 30px 0 !important; padding: 18px 16px 18px 66px !important; border-radius: 30px 18px 34px 20px / 22px 30px 18px 30px !important; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
  body.type-detail .listing-detail-v51 .ld5-suvisi::before { left: 10px; width: 46px; height: 46px; font-size: 15px; box-shadow: 0 0 0 4px #fff; }
}

/* === IKONY DLAŽDÍC — generuje nastroje/ikony.py, needituj ručne === */
/* === koniec ikon === */
