/* ═══════════════════════════════════════════════════════════════════════
   head.css — REHEBO bundle: konsolidované CSS hlavičky (fonty, header
   contact, per-stránkové fixy šablony/doplňků + legacy katalog).
   Načítá: hlavička (admin → Kód hlavičky) přes <link rel="stylesheet">,
   jako POSLEDNÍ z pdu-code stylů — po global.css a sections/*, ale PŘED
   jgm style.css (id=jgm). Viz meta/manual.md kap. 4 „Načítání / wiring";
   kanon polí = meta/admin-hlavicka.html (LIVE) / .TEST.html (TEST 785157).
   Prefix tříd: různé — viz mapa (vlastní .pdu-* i overridy šablony a doplňků)
   Původ: konsolidace 10 inline <style> z hlavičky + HEADER CONTACT z patičky
          + migrace janpikla/extend.css + merge external-code/style.css?v=54
   ───────────────────────────────────────────────────────────────────────
   MAPA SEKCÍ (Ctrl+F na "SEKCE N."):
     0.  Font fallback s metric overrides — @font-face Arial s naměřenými
         metrikami, aby swap webfontu nedělal reflow (CLS)
     1.  Odstranění podtržení textu z tlačítek
     2.  Oprava pravého sloupce v detailu produktu (992–1199px)
     3.  Kalkulátor dopravy — skrýt menu-item-5848 a empty-cart-boxes /extra/
     4.  Smooth scroll
     5.  Sklady v detailu produktu (dkLAB)
     6.  Galerie (kategorie id-5140) — skrytí e-shopových prvků u realizací
     7.  Skrýt newsletter checkbox v registraci
     8.  Skrýt category-perex u prázdných kategorií (5188, 5003, 5911)
     9.  Podtržení nadpisu Hodnocení a reference v hover menu
    10.  HEADER CONTACT INFO + sticky menu bar (mobil)
    11.  Janpikla migrace — zbytek po úklidu: 4sloupcový grid ≥1400px
         a skrytí .browse-p .p-all
    12.  Legacy katalog CSS (external-code/style.css?v=54) — SE formuláře,
         slevová kolečka, products grid mobil, Hodnocení obchodu+, banner…
    12b. JGM GALLERY FALLBACK — dormantní pojistka, aktivuje ji až
         body.jgm-failed z foot.js (číslo 12b schválně: viz hlavička sekce)
    13.  FONT-DISPLAY OVERRIDE — redeklarace fontů šablony s font-display:optional
    14.  Promo bar „Prázdninová sleva" (.pdu-promobar-praz) — ⏳ DOČASNÉ do 31. 7. 2026
    15.  Detail produktu — galerie (extended description, JGM doostření, :root vars)
   ═══════════════════════════════════════════════════════════════════════ */


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 0. FONT FALLBACK S METRIC OVERRIDES (CLS audit 2026-07-24)
   Šablona: Source Sans 3 + Exo 2, display:swap, všechny řezy preloadované →
   swap okno je malé, ale na pomalém spojení fallback (Arial) má jiné metriky
   → reflow při swapu. Hodnoty ZMĚŘENÉ canvasem z reálných woff2 (ne odhad):
   SS3 šířka = 91,3 % Arialu, ascent 1.02em / descent 0.40em (fontBoundingBox);
   Exo 2 = 100,2 %, ascent 1.00em / descent 0.20em.
   ascent/descent-override = cíl ÷ size-adjust (overrides se škálují size-adjustem).
   ─────────────────────────────────────────────────────────────────────── */
@font-face {
  font-family: 'pdu-ss3-fallback';
  src: local('Arial');
  size-adjust: 91.3%;
  ascent-override: 111.7%;
  descent-override: 43.8%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'pdu-exo-fallback';
  src: local('Arial');
  size-adjust: 100.2%;
  ascent-override: 99.8%;
  descent-override: 20%;
  line-gap-override: 0%;
}
body { font-family: 'Source Sans 3', 'pdu-ss3-fallback', sans-serif; }
h1, h2, h3, h4, h5, h6 { font-family: 'Exo 2', 'pdu-exo-fallback', sans-serif; }


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 1. ODSTRANĚNÍ PODTRŽENÍ TEXTU Z TLAČÍTEK
   Šablonové i pdu- třídy obsahující „button"/„btn" v názvu.
   ─────────────────────────────────────────────────────────────────────── */
a[class*="button-"],
a[class*="btn-"],
a[class*="button2"],
a[class*="button4"] {
  text-decoration: none !important;
}


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 2. OPRAVA PRAVÉHO SLOUPCE V DETAILU PRODUKTU (992–1199px)
   V tomto pásmu se rozšířený popis nevejde vedle — roztáhne se na 100 %.
   ─────────────────────────────────────────────────────────────────────── */
@media (min-width: 992px) and (max-width: 1199px) {
  div.extended-description {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 3. KALKULÁTOR DOPRAVY — SKRYTÍ VSTUPŮ
   Skrývá položku menu 5848 a odkaz na /extra/ v prázdném košíku.
   ─────────────────────────────────────────────────────────────────────── */
.menu-item-5848,
#cat-5848 {
  display: none !important;
}
.row.empty-cart-boxes li:has(> a[href="/extra/"]) {
  display: none;
}


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 4. SMOOTH SCROLL
   Plynulé skákání na kotvy (#anchor) v celém e-shopu.
   ─────────────────────────────────────────────────────────────────────── */
html {
  scroll-behavior: smooth;
}


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 5. SKLADY V DETAILU PRODUKTU (dkLAB)
   Styl boxu dostupnosti z doplňku dkLAB + skrytí nativního počtu kusů.
   ─────────────────────────────────────────────────────────────────────── */
.p-info-wrapper .availability-amount {
  display: none;
}
.dkLabDostupnostDetail {
  box-shadow: 0px 0px 20px rgb(0 0 0 / 10%);
  width: 100%;
  padding: 10px;
  margin-bottom: 20px;
  max-width: 800px;
  margin-top: -10px;
}
.dkLabSladDostupnost {
  float: right;
  font-weight: 700;
  color: #ffc702;
}
.dkLabSladDostupnost.dkLabAvailable {
  color: #009901;
}
@media screen and (max-width: 767px) {
  .dkLabDostupnostDetail {
    font-size: 12px;
  }
}


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 6. GALERIE REALIZACÍ (kategorie id-5140)
   Realizace jsou technicky produkty — tady se z nich schovávají e-shopové
   prvky (ceny, dostupnost, hodnocení) a přepisují texty na „galerijní".
   ─────────────────────────────────────────────────────────────────────── */
body.id-5140 #category-header,
body.id-5140 .ratings-wrapper,
body.id-5140 .p-bottom,
body.id-5140 .p-code,
body.id-5140 .slider-wrapper,
body.id-5140 .filter-section-boolean {
  display: none;
}
body.id-5140 .pagination-loader .load-products {
  font-size: 0px;
}
body.id-5140 .pagination-loader .load-products:before {
  font-size: 14px;
  content: 'Další galerie';
}
body.type-detail.id-5140 .shp-tabs-row.responsive-nav,
body.type-detail.id-5140 .p-final-price-wrapper,
body.type-detail.id-5140 .availability-value,
body.type-detail.id-5140 .basic-description > h3:nth-of-type(1) {
  display: none;
}
.dkLabVisitedProductsBox .products-inline.products-top > div .p .p-in .p-bottom {
  display: none !important;
}
body.type-detail.id-5140 #description {
  display: flex;
  flex-direction: column;
}
body.inDklabFavourites .product .prices {
  display: none;
}
body.type-detail.id-5140 .sold-out {
  display: none;
}
body.type-detail.id-5140 .stars-wrapper {
  display: none;
}
body.type-detail.id-5140 .dkLabDostupnostDetail {
  display: none;
}
body.inDklabFavourites .products-block .p-bottom .p-tools {
  text-align: left;
}


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 7. SKRÝT NEWSLETTER CHECKBOX V REGISTRACI
   ─────────────────────────────────────────────────────────────────────── */
label[for=sendNewsletter] {
  display: none !important;
}
#registration-page > #reg-form > fieldset:last-of-type {
  display: none;
}


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 8. SKRÝT CATEGORY-PEREX U PRÁZDNÝCH KATEGORIÍ (5188, 5003, 5911)
   ─────────────────────────────────────────────────────────────────────── */
body.id-5188 .category-perex.empty-content-category,
body.id-5003 .category-perex.empty-content-category,
body.id-5911 .category-perex.empty-content-category {
  display: none;
}


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 9. PODTRŽENÍ NADPISU HODNOCENÍ A REFERENCE V HOVER MENU
   Žlutá linka se po otevření menu „vypíše" animací rehebo-menu-hover-slide.
   ─────────────────────────────────────────────────────────────────────── */
.menu-level-2 a[href*="/hodnoceni/"] span,
.menu-level-1 a[href*="/hodnoceni/"] span {
  position: relative;
  display: inline-block;
  line-height: 1.2;
}
.menu-level-2 a[href*="/hodnoceni/"] span::after,
.menu-level-1 a[href*="/hodnoceni/"] span::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 2px;
  background-color: #F7DF05;
  animation: rehebo-menu-hover-slide 0.6s ease-out 0.3s forwards;
}
@keyframes rehebo-menu-hover-slide {
  to { width: 100%; }
}


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 10. HEADER CONTACT INFO + STICKY MENU BAR (přesun z patičky)
   Kontaktní blok v hlavičce (HTML injektuje early.js / foot.js §5) a mobilní
   plovoucí lišta .pdu-stickybar (injekt foot.js §7 — dnes vypnutý přepínačem
   STICKYBAR_ENABLED, CSS je tedy dormantní, ale připravené).
   ─────────────────────────────────────────────────────────────────────── */
.navigation-buttons {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-end;
}
.header-contact-info {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
}
/* CLS pozn. (2026-07-24): pokus o rezervaci min-width:460px na .navigation-buttons
   REVERTOVÁN — řádek hlavičky nemá slack (search fixní šířka), min-width ≥ dostupné
   místo → nav se zalomí pod logo (ověřeno togglem na TEST, /radce-.../, 1920px).
   Zbytkový horizontální shift contact bloku (~0,01–0,02) správně řeší až statické
   vložení contact HTML přímo do hlavičky v adminu (zrušení foot.js §5 injektu). */
.header-contact-info-inner {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 11px;
}
.header-contact-info .contact-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  font-weight: 600;
  color: var(--pdu-barva-zelena-akcent, #00B46E);
  text-decoration: none;
  white-space: nowrap;
  line-height: 1.2;
}
.header-contact-info .contact-item:hover {
  color: var(--pdu-barva-zelena-akcent-hover, #009458);
}
/* sjednoceno s mobilním menu: inline SVG, zelený stroke */
.header-contact-info .contact-ico {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
@keyframes pin-pulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.14); }
}
.contact-item-pin .contact-ico {
  animation: pin-pulse 1.6s ease-in-out 0.4s 1;
  transform-origin: center bottom;
}
@media (prefers-reduced-motion: reduce) {
  .contact-item-pin .contact-ico { animation: none; }
}
@media (max-width: 767px) {
  .header-contact-info {
    display: none;
  }
}

/* STICKY MENU BAR (mobil) — plovoucí lišta, sjede při scrollu nahoru (injektuje foot.js §7) */
.pdu-stickybar { display: none; }
@media (max-width: 767px) {
  .pdu-stickybar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 9000;
    height: 54px;
    padding: 0 10px 0 14px;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .12);
    transform: translateY(-100%);
    transition: transform .25s ease;
    will-change: transform;
  }
  body.pdu-sb-show .pdu-stickybar { transform: translateY(0); }
  /* při otevřeném menu lištu úplně pryč (žádný problik / kolize s ✕) */
  body.navigation-window-visible .pdu-stickybar { display: none !important; }
  .pdu-stickybar .pdu-sb-logo { display: flex; align-items: center; height: 100%; text-decoration: none; color: #173a2a; font-weight: 600; }
  .pdu-stickybar .pdu-sb-logo img { max-height: 34px; width: auto; display: block; }
  .pdu-stickybar .pdu-sb-actions { display: flex; align-items: center; gap: 2px; }
  .pdu-stickybar .pdu-sb-btn {
    width: 44px; height: 44px;
    border: 0; background: none; padding: 0;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; color: #1a1a1a;
  }
  /* search + AI = zelené kroužky (jako v hlavičce); hamburger zůstává tmavý */
  .pdu-stickybar .pdu-sb-search,
  .pdu-stickybar .pdu-sb-ai {
    width: 40px; height: 40px;
    border-radius: 50%;
    color: var(--pdu-barva-zelena-akcent, #00B46E);
    background: var(--pdu-barva-zelena-svetla, #E6FFD1);
  }
  /* stroke ikony (lupa, hamburger); AI má vlastní fill, ať ho fill:none neschová */
  .pdu-stickybar .pdu-sb-search svg,
  .pdu-stickybar .pdu-sb-menu svg {
    width: 22px; height: 22px;
    fill: none; stroke: currentColor; stroke-width: 2;
    stroke-linecap: round; stroke-linejoin: round;
  }
  .pdu-stickybar .pdu-sb-ai svg { width: 22px; height: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .pdu-stickybar { transition: none; }
}

/* iOS Safari zoomuje input, pokud má font-size < 16px, a nevrátí se → hledání na 16px */
@media (max-width: 991px) {
  input.searchForm__searchQuery { font-size: 16px !important; }
}


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 11. JANPIKLA MIGRACE — ZBYTEK PO ÚKLIDU
   Původně /user/documents/janpikla/extend.css (info@janpikla.cz, 28. 3. 2018).
   Mrtvé .jp* selektory (jpInputWrap/jpInput/jpAdd/jpRemove/jpRelated) smazány
   2026-07-29; živý zbytek = 4sloupcový výpis produktů ≥1400px a skrytí
   .browse-p .p-all (blok „Zpět do kategorie" v detailu).
   ─────────────────────────────────────────────────────────────────────── */
@media screen and (min-width: 1400px) {
  .products.products-block > div {
    width: 25%;
  }
  .products.products-block > div:nth-child(2n),
  .products.products-block > div:nth-child(3n) {
    border-right-style: solid;
  }
  .products.products-block > div:last-child,
  .products.products-block > div:nth-child(4n) {
    border-right-style: none;
  }
  .products.products-block > div:nth-child(4) {
    border-top-style: none;
  }
}
.browse-p .p-all {
  display: none;
}


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 12. LEGACY KATALOG CSS (původně external-code/style.css?v=54)
   Merge 2026-05-13 jako součást REHEBO konsolidace. Historicky rostlá vrstva
   (2018–2024, více autorů) — proto vlastní start/konec komentáře uvnitř.
   Obsah: SmartEmailing formuláře, slevová kolečka, products grid mobile,
   Hodnocení obchodu+, banner kalkulátoru, filtry, podkategorie, …
   ─────────────────────────────────────────────────────────────────────── */

/* Dva produkty v kategorii vedle sebe na mobilu - lepsi nez nativni reseni od Shoptetu - Tomas Hlad - start */
@media (max-width: 480px) {
.products-block>div {width:50%}
.products-block>div:nth-child(odd) {border-right:1px solid #d5d5d5}
.products-block>div:nth-child(2) {border-top:none}
.products-block.products .p .name {font-size: 13px;line-height:120%;text-align:left;}
}
.no-pcs .quantity-form .quantity .increase, .no-pcs .quantity-form .quantity .decrease{display:none;}
.no-pcs .quantity-form .quantity {padding-right: 0;width: 100%;text-align: center;}
.no-pcs .quantity input {text-align: center;}
/* Dva produkty v kategorii vedle sebe na mobilu - lepsi nez nativni reseni od Shoptetu - Tomas Hlad - konec */

/* horni lista desktop - start */
@media (min-width:992px) {
    .menu-item-29 {
          border-left: solid var(--pdu-barva-tmavomodra, #191932) !important;
    }
    }
/* horni lista desktop - konec */

/* Filtr edit - desktop open, mobil close - Petr Paral - start */
@media screen and (min-width: 768px){
#category-filter-hover {display: block;}
.filter-section.filter-section-button{display: none;}
}
/* Filtr edit - desktop open, mobil close - Petr Paral - konec */

/* Související a podobné produkty (včetně indiv. úpravy fotogalerie) - start */

/* Globálně pro všechny detailové stránky */
body.type-detail div.p-detail {
  display: flex;
  flex-direction: column;
}
body.type-detail div.p-detail .products-related-header {
  order: 30;
}
body.type-detail div.p-detail .products-related.products-additional {
  order: 31;
}
body.type-detail div.p-detail .browse-p {
  order: 32;
}

/* Pro kategorii ID 5140 – vrátit původní pořadí + změnit text */
body.type-detail.id-5140 div.p-detail {
  display: block; /* původní hodnota */
}
body.type-detail.id-5140 div.p-detail .products-related-header,
body.type-detail.id-5140 div.p-detail .products-related.products-additional,
body.type-detail.id-5140 div.p-detail .browse-p {
  order: initial; /* vrátí výchozí */
}

/* Přepsání nadpisu pro ID 5140 */
body.type-detail.id-5140 h2.products-related-header {
  font-size: 0; /* skryje původní text */
}
body.type-detail.id-5140 h2.products-related-header:before {
  content: 'Použitý materiál';
  font-size: 20px;
}

/* Globálně pro všechny produkty - Podobné pod hlavní popis */
body.type-detail .shp-tabs-row a[href$="#productsAlternative"] {
  display: none !important;
}
body.type-detail #tab-content {
  display: flex;
  flex-direction: column;
}
body.type-detail #productsAlternative {
  display: block !important;
  opacity: 1 !important;
  order: 99;
}
body.type-detail #productsAlternative:before {
  content: 'Alternativy k produktu';
  font-size: 140%;
  margin-top: 40px;
  margin-bottom: 12px;
  display: block;
}

/* Jen pro kategorii ID 5140 změň nadpis */
body.type-detail.id-5140 #productsAlternative:before {
  content: 'Podobné realizace';
}

/* Související a podobné produkty (včetně indiv. úpravy fotogalerie) - konec */

/* Odstranění ikonek v detailu produktu - tisk, sdílet apod. - start */
div.social-buttons-wrapper {
	display: none;
}
/* Odstranění ikonek v detailu produktu - tisk, sdílet apod. - konec */

/* Změna barvy - štítky slev - addon od Dominik Martini - start */
.flag-action-percentage  {
  background-color: #e74c3c !important;
  color: #ffffff !important;
} 
/* Změna barvy - štítky slev - addon od Dominik Martini - konec */

/* Slevove kolecko mobil - start */
@media (max-width: 480px) {
    .flags-extra .flag {
           width: 50px;
           height: 50px;
    }
    .flags-extra span.price-save {
           font-size: 10px!important;
    }
    }
    /* Slevove kolecko mobil - konec */
    
    /* Slevove kolecko obecne - start */
    .flag.flag-discount {
        background-color: #e74c3c;
    }
    .flags-extra .price-save {
            color: white;
    }
    .flags-extra .flag .price-save {
            font-size: 13px;
    }
    /* Slevove kolecko obecne - konec */
    
    /* Rozestup mezi clanky blogu - start */
    div#newsWrapper.news-wrapper div.news-item {
        margin-bottom: 35px;
    }
    /* Rozestup mezi clanky blogu - konec */
    
    /* Skryti komentaru k produktum na HP - start */
    .latest-contribution-wrapper {
    display: none;
    }
    /* Skryti komentaru k produktum na HP - konec */
    
    /* unknown (dohledat ceho se to tyka) - start */
    .filter-sections>.filter-section.filter-section-default {
          display: none !important;
    }
    .filters-wrapper h4 {
            font-size: 13px;
    }
    .filters-wrapper {
            font-size: 13px;
    }
    /* unknown (dohledat ceho se to tyka) - konec */
    
    /* edit ramecku podkategorii - start */
    .subcategories.with-image li a .text {
        color: var(--pdu-barva-text-sedy, #666666);
    }
    .subcategories.with-image li a {
        border-color: var(--pdu-barva-zelena-akcent, #00B46E);
    }
    /* edit ramecku podkategorii - konec */

/* Edit - Smartemailing formular - start */
#se-webform-3,
#se-webform-65,
#se-webform-67,
#se-webform-68,
#se-webform-70,
#se-webform-73,
#se-webform-77,
#se-webform-79,
#se-webform-82,
#se-webform-84,
#se-webform-86,
#se-webform-87,
#se-webform-114,
#se-webform-134,
#se-webform-142,
#se-webform-145,
#se-webform-148,
#se-webform-151,
#se-webform-154,
#se-webform-157,
#se-webform-160,
#se-webform-161,
#se-webform-175 {
    width: 100% !important;

}

/* edit fotky, aby se neztracela za okraji  */
#se-webform-101 .se-image {
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
  }

/* Vychozi sirka 100 % pro formular v detailu produktu plus max sire 400px  */
#se-webform-101 {
    width: 100% !important;
    max-width: 400px !important;
  }
  
  /* Pro displeje mezi 992 a 1199 px sirka 50 % */
  @media (min-width: 992px) and (max-width: 1199px) {
    #se-webform-101 {
      width: 50% !important;
    }
  }

#se-webform-3,
#se-webform-40,
#se-webform-65,
#se-webform-67,
#se-webform-68,
#se-webform-70,
#se-webform-73,
#se-webform-77,
#se-webform-79,
#se-webform-82,
#se-webform-84,
#se-webform-86,
#se-webform-87,
#se-webform-90,
#se-webform-114,
#se-webform-134,
#se-webform-142,
#se-webform-145,
#se-webform-148,
#se-webform-151,
#se-webform-154,
#se-webform-157,
#se-webform-160,
#se-webform-161,
#se-webform-175 {
    background: var(--pdu-barva-sede-svetla, #f5f5f5) !important;
    border: solid 3px !important;
    border-color: var(--pdu-barva-zelena-akcent, #00B46E) !important;
}

#se-webform-101 {
  background: var(--pdu-barva-sede-svetla, #f5f5f5) !important;
  border: solid 2px !important;
  border-color: var(--pdu-barva-zelena-akcent, #00B46E) !important;
}

#se-webform-101 .se-image {
    margin-top: 5px !important;
    margin-bottom: 5px !important;
    transition: opacity 0.5s ease;  /* Plynulý přechod pro změnu opacity */
    opacity: 1; /* Nastavení počáteční opacity */
}

#se-webform-3 ul li::before,
#se-webform-40 ul li::before,
#se-webform-65 ul li::before,
#se-webform-67 ul li::before,
#se-webform-68 ul li::before,
#se-webform-70 ul li::before,
#se-webform-73 ul li::before,
#se-webform-77 ul li::before,
#se-webform-79 ul li::before,
#se-webform-82 ul li::before,
#se-webform-84 ul li::before,
#se-webform-86 ul li::before,
#se-webform-87 ul li::before,
#se-webform-101 ul li::before,
#se-webform-114 ul li::before,
#se-webform-134 ul li::before,
#se-webform-142 ul li::before,
#se-webform-145 ul li::before,
#se-webform-148 ul li::before,
#se-webform-151 ul li::before,
#se-webform-154 ul li::before,
#se-webform-157 ul li::before,
#se-webform-160 ul li::before,
#se-webform-161 ul li::before,
#se-webform-175 ul li::before {
    display: none;
}
#se-webform-3 input[type="radio"],
#se-webform-40 input[type="radio"],
#se-webform-65 input[type="radio"],
#se-webform-67 input[type="radio"],
#se-webform-68 input[type="radio"],
#se-webform-70 input[type="radio"],
#se-webform-73 input[type="radio"],
#se-webform-77 input[type="radio"],
#se-webform-79 input[type="radio"],
#se-webform-82 input[type="radio"],
#se-webform-84 input[type="radio"],
#se-webform-86 input[type="radio"],
#se-webform-87 input[type="radio"],
#se-webform-101 input[type="radio"],
#se-webform-114 input[type="radio"],
#se-webform-134 input[type="radio"],
#se-webform-142 input[type="radio"],
#se-webform-145 input[type="radio"],
#se-webform-148 input[type="radio"],
#se-webform-151 input[type="radio"],
#se-webform-154 input[type="radio"],
#se-webform-157 input[type="radio"],
#se-webform-160 input[type="radio"],
#se-webform-161 input[type="radio"],
#se-webform-175 input[type="radio"] {
    display: inline-block;
    position: relative;
    width: auto;
    height: auto;
    appearance: auto;
    top: 1px;
}
#se-webform-3.se-webform .se-header h3,
#se-webform-40.se-webform .se-header h3,
#se-webform-65.se-webform .se-header h3,
#se-webform-67.se-webform .se-header h3,
#se-webform-68.se-webform .se-header h3,
#se-webform-70.se-webform .se-header h3,
#se-webform-73.se-webform .se-header h3,
#se-webform-77.se-webform .se-header h3,
#se-webform-79.se-webform .se-header h3,
#se-webform-82.se-webform .se-header h3,
#se-webform-84.se-webform .se-header h3,
#se-webform-86.se-webform .se-header h3,
#se-webform-87.se-webform .se-header h3,
#se-webform-101.se-webform .se-header h3,
#se-webform-114.se-webform .se-header h3,
#se-webform-134.se-webform .se-header h3,
#se-webform-142.se-webform .se-header h3,
#se-webform-145.se-webform .se-header h3,
#se-webform-148.se-webform .se-header h3,
#se-webform-151.se-webform .se-header h3,
#se-webform-154.se-webform .se-header h3,
#se-webform-157.se-webform .se-header h3,
#se-webform-160.se-webform .se-header h3,
#se-webform-161.se-webform .se-header h3,
#se-webform-175.se-webform .se-header h3 {
    color: var(--pdu-barva-zelena-akcent, #00B46E) !important;
    margin-bottom: -14px !important;
}
#se-webform-3.se-webform .se-submit button,
#se-webform-3.se-webform .se-submit div.se-fake,
#se-webform-40.se-webform .se-submit button,
#se-webform-40.se-webform .se-submit div.se-fake,
#se-webform-65.se-webform .se-submit button,
#se-webform-65.se-webform .se-submit div.se-fake,
#se-webform-67.se-webform .se-submit button,
#se-webform-67.se-webform .se-submit div.se-fake,
#se-webform-68.se-webform .se-submit button,
#se-webform-68.se-webform .se-submit div.se-fake,
#se-webform-70.se-webform .se-submit button,
#se-webform-70.se-webform .se-submit div.se-fake,
#se-webform-73.se-webform .se-submit button,
#se-webform-73.se-webform .se-submit div.se-fake,
#se-webform-77.se-webform .se-submit button,
#se-webform-77.se-webform .se-submit div.se-fake,
#se-webform-79.se-webform .se-submit button,
#se-webform-79.se-webform .se-submit div.se-fake,
#se-webform-82.se-webform .se-submit button,
#se-webform-82.se-webform .se-submit div.se-fake,
#se-webform-84.se-webform .se-submit button,
#se-webform-84.se-webform .se-submit div.se-fake,
#se-webform-86.se-webform .se-submit button,
#se-webform-86.se-webform .se-submit div.se-fake,
#se-webform-87.se-webform .se-submit button,
#se-webform-87.se-webform .se-submit div.se-fake,
#se-webform-101.se-webform .se-submit button,
#se-webform-101.se-webform .se-submit div.se-fake,
#se-webform-114.se-webform .se-submit button,
#se-webform-114.se-webform .se-submit div.se-fake,
#se-webform-134.se-webform .se-submit button,
#se-webform-134.se-webform .se-submit div.se-fake,
#se-webform-142.se-webform .se-submit button,
#se-webform-142.se-webform .se-submit div.se-fake,
#se-webform-145.se-webform .se-submit button,
#se-webform-145.se-webform .se-submit div.se-fake,
#se-webform-148.se-webform .se-submit button,
#se-webform-148.se-webform .se-submit div.se-fake,
#se-webform-151.se-webform .se-submit button,
#se-webform-151.se-webform .se-submit div.se-fake,
#se-webform-154.se-webform .se-submit button,
#se-webform-154.se-webform .se-submit div.se-fake,
#se-webform-157.se-webform .se-submit button,
#se-webform-157.se-webform .se-submit div.se-fake,
#se-webform-160.se-webform .se-submit button,
#se-webform-160.se-webform .se-submit div.se-fake,
#se-webform-161.se-webform .se-submit button,
#se-webform-161.se-webform .se-submit div.se-fake,
#se-webform-175.se-webform .se-submit button,
#se-webform-175.se-webform .se-submit div.se-fake {
    background: var(--pdu-barva-zelena-akcent, #00B46E) !important;
}
/* Edit - Smartemailing formular - konec */

/* Edit - Doplnek Shoptetu: Hodnoceni obchodu+ - start */
#hodnoceniobchodu .vote-wrap:not(.admin-response .vote-wrap),
.id--51 #content .vote-wrap:not(.admin-response .vote-wrap),
.template-14.id--51 .rate-wrapper:not(.admin-response .vote-wrap) {
background-color: #F9F9F9 !important;
border-color: #F9F9F9 !important;
border-width: 0px !important;
border-style: solid !important;
border-radius: 8px !important;
}

#hodnoceniobchodu .shop-stat-all a {
background-color: var(--pdu-barva-zelena-akcent, #00B46E) !important;
color: #ffffff !important;
border-color: var(--pdu-barva-zelena-akcent, #00B46E) !important;
}

#hodnoceniobchodu .shop-stat-all a:hover {
background-color: var(--pdu-barva-zelena-akcent, #00B46E) !important;
color: #ffffff !important;
border-color: var(--pdu-barva-zelena-akcent, #00B46E) !important;
}
/* Edit - Doplnek Shoptetu: Hodnoceni obchodu+ - konec */

/* Banner kalkulátoru čtyřhranné - v detailu produktu na základě ID kategorie - start */
    /* druhý část kódu je v js souboru v patičce */
body.type-detail .banner-kalkulatoru-do-detailu-produktu {
  display: block;
  margin-top: 30px;
  margin-bottom: 40px;
  max-width: 100%;
  height: auto;
}
/* Banner kalkulátoru čtyřhranné - v detailu produktu na základě ID kategorie - konec */
/* ▲ konec SEKCE 12 (legacy katalog) */


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 12b. JGM GALLERY FALLBACK (regrese 2026-05-09) — KOMPLETNÍ selektory
   DORMANTNÍ pojistka: pravidlo se aktivuje jen když foot.js přidá
   body.jgm-failed (tj. když JGM karusel nedostaví galerii). Za normálního
   provozu nedělá nic. Číslo „12b" schválně — vsunutá sekce nesmí posunout
   čísla 13-15, na která odkazují early.js a meta/CHANGELOG.md.
   ───────────────────────────────────────────────────────────────────────
   vendor/jgm/style.css skryje 4 elementy přes opacity:0:
     .p-image-wrapper #wrap                                  ← cloud-zoom inner (hlavní obrázek render)
     .type-detail .p-image-wrapper .p-image                  ← parent main image
     .type-detail .p-image-wrapper .p-main-image             ← main image anchor
     .type-detail .p-image-wrapper .p-thumbnails-wrapper     ← thumbnaily

   jgm má postavit vlastní .gallery-new Splide karusel. Když build nedokončí
   (vendor regrese 2026-05-09 ve verzi v1.3.13957, nebo Shoptet doplněk chybí
   na test 785157), foot.js SEKCE 8 přidá body.jgm-failed → toto pravidlo
   přepíše opacity:1 na VŠECHNY 4 elementy → nativní galerie viditelná.

   Self-disabling: pokud jgm funguje (produkce s doplňkem), .jgm-failed
   se nepřidá a video integrace v karuselu funguje.
   ─────────────────────────────────────────────────────────────────────── */
body.jgm-failed .p-image-wrapper #wrap,
body.jgm-failed.type-detail .p-image-wrapper .p-image,
body.jgm-failed.type-detail .p-image-wrapper .p-main-image,
body.jgm-failed.type-detail .p-image-wrapper .p-thumbnails-wrapper,
body.jgm-failed .p-main-image,
body.jgm-failed .p-thumbnails-wrapper {
  opacity: 1 !important;
}


/* ───────────────────────────────────────────────────────────────────────
   SEKCE 13. FONT-DISPLAY OVERRIDE — fix FOUT při každé navigaci (2026-07-24)
   Shoptet font-face CSS (shared/css/font-face/source-sans-3.css + exo-2.css)
   má na všech řezech font-display:swap → fallback problikne na KAŽDÉM
   page-loadu (MPA), i s fontem v immutable cache. Tady tytéž fonty
   redeklarujeme s font-display:optional — kaskáda (pdu-code se načítá PO
   šablonových font-face) vyhraje poslední definice. Warm cache (většina
   zobrazení) = okamžitý render bez přepnutí; cold první load = jedna
   stránka na fallbacku (bez pozdějšího přehození = žádný layout shift).
   ⚠ src MUSÍ být absolutní URL byte-shodná s originálem (jinak nová
   definice místo přebití). Řezy = přesně těch 13 co deklaruje Shoptet.
   Diagnóza: subagent 2026-07-24 (cache immutable OK, preloady match OK).
   ─────────────────────────────────────────────────────────────────────── */
@font-face { font-display: optional; font-family: 'Source Sans 3'; font-style: normal; font-weight: 300; src: url('https://cdn.myshoptet.com/prj/dist/master/cms/templates/frontend_templates/shared/fonts/source-sans-3/source-sans-3-300.woff2') format('woff2'); }
@font-face { font-display: optional; font-family: 'Source Sans 3'; font-style: normal; font-weight: 400; src: url('https://cdn.myshoptet.com/prj/dist/master/cms/templates/frontend_templates/shared/fonts/source-sans-3/source-sans-3-400.woff2') format('woff2'); }
@font-face { font-display: optional; font-family: 'Source Sans 3'; font-style: normal; font-weight: 500; src: url('https://cdn.myshoptet.com/prj/dist/master/cms/templates/frontend_templates/shared/fonts/source-sans-3/source-sans-3-500.woff2') format('woff2'); }
@font-face { font-display: optional; font-family: 'Source Sans 3'; font-style: normal; font-weight: 600; src: url('https://cdn.myshoptet.com/prj/dist/master/cms/templates/frontend_templates/shared/fonts/source-sans-3/source-sans-3-600.woff2') format('woff2'); }
@font-face { font-display: optional; font-family: 'Source Sans 3'; font-style: normal; font-weight: 700; src: url('https://cdn.myshoptet.com/prj/dist/master/cms/templates/frontend_templates/shared/fonts/source-sans-3/source-sans-3-700.woff2') format('woff2'); }
@font-face { font-display: optional; font-family: 'Source Sans 3'; font-style: normal; font-weight: 900; src: url('https://cdn.myshoptet.com/prj/dist/master/cms/templates/frontend_templates/shared/fonts/source-sans-3/source-sans-3-900.woff2') format('woff2'); }
@font-face { font-display: optional; font-family: 'Exo 2'; font-style: normal; font-weight: 100; src: url('https://cdn.myshoptet.com/prj/dist/master/cms/templates/frontend_templates/shared/fonts/exo-2/exo-2-100.woff2') format('woff2'); }
@font-face { font-display: optional; font-family: 'Exo 2'; font-style: normal; font-weight: 300; src: url('https://cdn.myshoptet.com/prj/dist/master/cms/templates/frontend_templates/shared/fonts/exo-2/exo-2-300.woff2') format('woff2'); }
@font-face { font-display: optional; font-family: 'Exo 2'; font-style: normal; font-weight: 400; src: url('https://cdn.myshoptet.com/prj/dist/master/cms/templates/frontend_templates/shared/fonts/exo-2/exo-2-400.woff2') format('woff2'); }
@font-face { font-display: optional; font-family: 'Exo 2'; font-style: normal; font-weight: 500; src: url('https://cdn.myshoptet.com/prj/dist/master/cms/templates/frontend_templates/shared/fonts/exo-2/exo-2-500.woff2') format('woff2'); }
@font-face { font-display: optional; font-family: 'Exo 2'; font-style: normal; font-weight: 600; src: url('https://cdn.myshoptet.com/prj/dist/master/cms/templates/frontend_templates/shared/fonts/exo-2/exo-2-600.woff2') format('woff2'); }
@font-face { font-display: optional; font-family: 'Exo 2'; font-style: normal; font-weight: 700; src: url('https://cdn.myshoptet.com/prj/dist/master/cms/templates/frontend_templates/shared/fonts/exo-2/exo-2-700.woff2') format('woff2'); }
@font-face { font-display: optional; font-family: 'Exo 2'; font-style: normal; font-weight: 900; src: url('https://cdn.myshoptet.com/prj/dist/master/cms/templates/frontend_templates/shared/fonts/exo-2/exo-2-900.woff2') format('woff2'); }



/* ───────────────────────────────────────────────────────────────────────
   SEKCE 14. PROMO BAR „PRÁZDNINOVÁ SLEVA" (.pdu-promobar-praz)
   Element vkládá mini-skript v admin hlavičce (pre-paint, začátek body) —
   date-gate v něm bar od 1. 8. nevkládá; navíc ho skrývá i gate v snippetu v2.
   Informační proužek (site-msg) šablony NEdotčen — jede vedle baru beze změny
   (restyle varianta z 2026-07-28 vrácena na přání uživatele).
   ⏳ DOČASNÉ: akce do 31. 7. 2026 — po konci akce sekci + mini-skript smazat.
   (Barva #191932 tady ZÁMĚRNĚ netokenizovaná — sekce jde celá pryč.)
   ─────────────────────────────────────────────────────────────────────── */
.pdu-promobar-praz{background:#191932;color:#fff;text-align:center;padding:10px 15px;font-size:14px;line-height:1.4;width:100%;}
.pdu-promobar-praz .ppb-kod{color:#FFC24B;font-weight:700;letter-spacing:.03em;white-space:nowrap;}
.pdu-promobar-praz .ppb-cd{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";}
.pdu-promobar-praz a{color:#fff;text-decoration:underline;font-weight:700;margin-left:5px;}
.pdu-promobar-praz a:hover{text-decoration:none;opacity:.9;}
.pdu-promobar-praz .ppb-desktop{display:none;}
@media(min-width:768px){.pdu-promobar-praz .ppb-mobile{display:none;}.pdu-promobar-praz .ppb-desktop{display:inline;}.pdu-promobar-praz{font-size:15px;}}

/* ───────────────────────────────────────────────────────────────────────
   SEKCE 15. DETAIL PRODUKTU — GALERIE (přesun inline <style> z admin
   hlavičky, refaktor polí 2026-07-28). Extended description fix + JGM
   doostření velkých fotek + Shoptet gallery CSS proměnné.
   Kaskádová pozice zachována: head.css se v hlavičce načítá PŘED
   jgm style.css (id=jgm), stejně jako původní inline blok.
   ─────────────────────────────────────────────────────────────────────── */
.type-detail #description .extended-description.no-display { display: block !important; }
.type-detail .gallery-new a[data-fancybox] > img[src*="/big/"][src*="x=100&y=100"] { opacity: 0; animation: pduGallerySharp 0s linear 1.2s forwards; }
@keyframes pduGallerySharp { to { opacity: 1; } }
:root {
  --gallery-radius: 0;
  --gallery-arrow-opacity: 0.7;
  --gallery-arrow-background: #fff;
  --gallery-arrow-color: #000;
  --gallery-play-background: var(--color-secondary);
  --gallery-play-color: #fff;
  --gallery-main-border-color: transparent;
  --gallery-thumbnail-border-color: var(--colors-foregrounds-borders-secondary);
  --gallery-thumbnail-border-color-active: var(--color-primary);
  --gallery-lightbox-background: rgba(255, 255, 255, 0.9);
  --gallery-lightbox-arrow-color: #000;
}
