/*
    header-style.css — custom styly hlavicky a hlavniho menu
    Linkuje se z ADMIN-SHOPTET-ZALOHA/Zahlavi.html (v sekci <!-- Webotvurci.cz -->)
    Scope: cely web (header je sdilena komponenta), zadne body.type-* gating.

    Pred touto upravou:
      - vraceni hlavicky a menu na default Shoptet DISCO (viz docs/HEADER-RESTORE-DEFAULT-SHOPTET.md)
      - legacy override sirek site-name/search/navigation-buttons v doppler-all.css (radky ~61-63)
        zakomentovan jako soucast Bloku 1 (return-to-default-shoptet) — proto zde flex pomery
        nemaji souboj se starym min-width/max-width.

    Postup vyvoje:
      Faze 1 (current): proporce header-top-wrapper (logo / search / navigation-buttons)
      Faze 2 (planned): mega-menu styling dle Figmy
      Faze 3 (planned): mobile drawer styling
      Faze 4 (planned): nove elementy (Doppler+ Klub vyhod, Akce, Vice trigger, Znacky / Kolekce)
*/


/* =============================================================
   GLOBALNI FIX — horizontalni scroll na strankach mimo HP/PDP/kat
   =============================================================
   Default Shoptet `.navigation-in` je position:absolute s shrink-wrap
   sirkou ~180000px (intentne - slouzi jako reference pro Shoptet
   splitMenu() overflow detection). Pokud zadny predek neclipne, 180000px
   proteka az do <body> -> horizontalni scroll napric strankou.

   Symptom: `document.documentElement.scrollWidth = 180076px` pri viewport
   ~1367. Postizene strany: /registrace/, /prihlaseni/, /kontakty/, /kosik/,
   /objednavka/, /podminky/ atd. (type-page bez vlastniho clip mechanizmu).

   Proc HP / PDP / kategorie nemaji symptom:
     - HP ma vlastni overflow handling
     - PDP (.type-product .overall-wrapper) explicit `overflow: visible`
       ale jiny clip mechanismus dal v podstrome
     - Kategorie podobne

   Legacy css/doppler-all.css aktivne nastavuje:
     L347 `.in-index .overall-wrapper { overflow-x: hidden }`  (jen HP)
     L389 `.overall-wrapper { overflow: unset !important }`    (globalne visible)
     L212 `.type-product .overall-wrapper { overflow: visible }` (PDP)

   Fix: `overflow-x: clip` na `.overall-wrapper` univerzalne. `clip` ne
   `hidden` - nevytvari novy scroll container -> nerozbije position:sticky
   v podstrome (PDP TOC bar `.roi-pd-tocbar`, sticky header atd.).

   Specificita: `body .overall-wrapper` = (0,1,1) > legacy `.overall-wrapper`
   (0,1,0). Plus `!important` pro jistotu (legacy ma `!important` na L389).

   ⚠️ NESÁHAT na `.navigation-in { width }` — viz CLAUDE.md gotcha sekce.
   Width constraint rozbije splitMenu() overflow logic. Fix MUSI byt clip
   na predkovi, ne width na .navigation-in. */
body .overall-wrapper {
    overflow-x: clip !important;
}


/* =============================================================
   CHECKOUT (objednavka kroky) — skryt cely .navigation-buttons
   Stranky /objednavka/krok-1/ a /objednavka/krok-2/ maji `body.in-krok-1` resp.
   `body.in-krok-2` (slug-based Shoptet class). Uzivatel chce na techto strankach
   nezobrazovat Klub vyhod / Muj ucet / Odhlasit / Porovnat / Kosik / Menu — at
   se zakaznik soustredi na dokonceni objednavky bez distraktoru.

   2026-05-16 v1.49: pridano puvodne s body.ordering-process.
   2026-05-16 v1.52 FIX: body.ordering-process zahrnuje i /kosik/ (in-kosik), kde
   nav ma byt viditelna. Zmena na konkretni in-krok-1, in-krok-2.
   Plati na desktop i mobile. */
body.in-krok-1 #header .navigation-buttons,
body.in-krok-2 #header .navigation-buttons {
    display: none !important;
}

/* 2026-05-16 v1.53: na DESKTOPu (>=768px) skryt cely .header-bottom (menu)
   na checkout krocich. Mobil ji nechava aby zakaznik mel pristup k navigaci
   pres burger menu. */
@media (min-width: 768px) {
    body.in-krok-1 #header .header-bottom,
    body.in-krok-2 #header .header-bottom {
        display: none !important;
    }
}


/* =============================================================
   FAZE 1 — proporce header-top-wrapper
   Sirky 3 sloupcu hlavicky (logo / search / navigation-buttons)
   resene flex-basis. Default Shoptet DISCO ma vlastni proporce,
   prepiseme je dle Figmy.
   ============================================================= */

@media (min-width: 768px) {
    #header .header-top-wrapper .site-name {
        flex: 0 1 10%;
        padding-right: 32px;
    }
    #header .header-top-wrapper > div.search {
        /* 2026-05-16: zmenseno z 65% -> 55%.
           Po odkryti .top-nav-button-account/logout/register (kazdy 60-70px)
           plus .roi-hdr-klub potrebuje .navigation-buttons vic mista.
           Prihlaseny stav: Klub(90) + Odhlasit(70) + Muj ucet(70) + Porovnani(50)
           + Kosik(90) + gapy(~32) = ~400px minimum. */
        flex: 0 1 55%;
    }
    #header .header-top-wrapper > div.navigation-buttons {
        /* 2026-05-16: zvetseno z 25% -> 35% pro fit vsech 5 visible items
           v prihlasenem stavu (drive 25%=360px @ 1440vp -> nedostacujici). */
        flex: 0 1 35%;
    }

    /* Zajistit ze .navigation-buttons je flex row s gap, items na jedne radce.
       2026-05-16 v1.50: justify-content flex-end -> space-around (uzivatel feedback) */
    #header .header-top-wrapper > div.navigation-buttons {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-around;
        gap: 8px;
        flex-wrap: nowrap;
    }

    /* 2026-05-16 v1.51: legacy doppler-all.css @media min-width:992px ma
       `#dkLabComparerHeaderWrappper, #header .navigation-buttons button[data-target=login],
       #header .header-top a.cart-count { margin: 0 auto }` ktery prida horizontalni
       centering kazdemu z tech itemu. Uzivatel chce odstranit pro VSECHNY 3 (s
       justify-content space-around je auto-margin redundantni a vykladal nadbytecny
       prostor). Specificity legacy: ~1,1,0 az 1,1,2. Nas selektor 1,1,X + !important. */
    body #dkLabComparerHeaderWrappper,
    body #header .navigation-buttons button[data-target="login"],
    body #header .header-top a.cart-count {
        margin: 0 !important;
    }

}


/* =============================================================
   FAZE 1b — odkryti a styling .top-nav-button-account/logout
   PLATI NA VSECH VIEWPORTECH (mobile-first), aby i na mobilu mel
   prihlaseny uzivatel Muj ucet + Odhlasit videt.

   Legacy css/doppler-all.css:39 `.top-navigation-tools a { display: none }`
   skryvalo VSECHNY <a> v top-nav-tools (Muj ucet, Odhlasit, Registrace).
   Default Shoptet ma na .top-nav-button-* font-size 20px + flex-row +
   prazdne ::before (no icon). Mismatch s .top-nav-button-login ktery
   je vizualne ok (Shoptet ho styluje jinak).

   Override: account+logout jednotny vzhled — ikona nahore + maly label dole,
   matching .top-nav-button-login.

   2026-05-16 v1.46: REGISTRACE skryta vsude (uzivatel feedback) — neni v zadnem
   selektoru, takze legacy `.top-navigation-tools a { display: none }` ji skryva.
   Mobile/desktop Logged-out: jen Prihlaseni (.top-nav-button-login - <button>).

   2026-05-16: presunuto z @media min-width:768px na global scope,
   takze mobil ma teď tez Muj ucet + Odhlasit (drive na mobilu
   nebyla zadna logout/account moznost v hlavicce). */
#header .navigation-buttons .top-navigation-tools a.top-nav-button-account,
#header .navigation-buttons .top-navigation-tools a.top-nav-button-logout {
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    padding: 6px 8px !important;
    text-decoration: none !important;
    color: #383838 !important;
    font-size: 0 !important;  /* reset parent 20px, label ma vlastni */
    line-height: 1 !important;
    /* KRITICKE: legacy css/doppler-all.css:120 ma `#header .navigation-buttons a { width: 90px }`
       (specificity 1,1,1) ktery natahuje vsechny <a> v navigation-buttons na 90px.
       Bez tohoto override jsou button shrink-wrap rozbite (icon + label se ztrati uprostred 90px). */
    width: auto !important;
}

/* Person icon pro Muj ucet */
#header .navigation-buttons .top-navigation-tools a.top-nav-button-account::before {
    content: '' !important;
    display: block !important;
    width: 20px !important;
    height: 20px !important;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23383838' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/><circle cx='12' cy='7' r='4'/></svg>") center/contain no-repeat !important;
}

/* Logout icon (sign-out arrow) */
#header .navigation-buttons .top-navigation-tools a.top-nav-button-logout::before {
    content: '' !important;
    display: block !important;
    width: 20px !important;
    height: 20px !important;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23383838' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/><polyline points='16 17 21 12 16 7'/><line x1='21' y1='12' x2='9' y2='12'/></svg>") center/contain no-repeat !important;
}

/* Label (span uvnitr) — male typo matching ostatni top buttons */
#header .navigation-buttons .top-navigation-tools a.top-nav-button-account > span,
#header .navigation-buttons .top-navigation-tools a.top-nav-button-logout > span {
    display: block !important;
    font-family: Roboto, sans-serif !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 14px !important;
    color: #383838 !important;
    text-align: center !important;
    white-space: nowrap !important;
}

/* Layout uvnitr top-navigation-tools — flex row, items vedle sebe */
#header .navigation-buttons .top-navigation-tools {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 8px;
}

/* Mobile-only: zmensit padding + label pro fit do navigation-buttons radky.
   2026-05-16 v1.44: na mobile skryt Odhlasit (uzivatel nechce na mobile).
   2026-05-16 v1.46: odstraneno styling pro .top-nav-button-login > span
                     (Shoptet renderuje text nativne, nas margin-top duplikoval label).
                     Registrace uz neni v zadnem nasem selektoru (legacy ji skryva). */
@media (max-width: 767px) {
    /* Skryt Odhlasit kompletne na mobile (vc. ::before ikony).
       Logged-in mobile uvidi jen Muj ucet.
       2026-05-16 v1.47: pridano `a.` pro specificity match s globalnim pravidlem
       `a.top-nav-button-logout { display: inline-flex !important }` (1,3,1).
       Bez `a.` byl selektor (1,3,0) a global vyhraval. */
    #header .navigation-buttons .top-navigation-tools a.top-nav-button-logout {
        display: none !important;
    }

    #header .navigation-buttons .top-navigation-tools a.top-nav-button-account {
        padding: 4px 4px !important;
        gap: 0 !important;
        width: 90px !important;
        /* 2026-05-16 v1.54: justify-content space-between (icon nahore, label dole)
           misto center (z globalniho rule). Spacing dela margin-top na ::before
           a vlastni mobile design. */
        justify-content: space-between !important;
    }

    /* 2026-05-16 v1.54: ::before ikona ma margin-top 5px (vyssi pozice ikony
       at se vejde do flex space-between layoutu pekne). */
    #header .navigation-buttons .top-navigation-tools a.top-nav-button-account::before {
        margin-top: 5px !important;
    }

    /* Typo pro Muj ucet label na mobile.
       2026-05-16 user feedback: font-weight:300, font-size:13px.
       2026-05-16 v1.54: margin-top 22px -> 0 (uzivatel feedback - spacing dela
       justify-content space-between na rodici + margin-top 5px na ::before). */
    #header .navigation-buttons .top-navigation-tools .top-nav-button-account > span {
        margin-top: 0 !important;
        font-family: Roboto, sans-serif !important;
        font-weight: 300 !important;
        font-size: 13px !important;
        line-height: 1.2 !important;
        color: #383838 !important;
        text-align: center !important;
        white-space: nowrap !important;
        display: block !important;
    }

    #header .navigation-buttons .top-navigation-tools {
        gap: 4px;
    }
}


/* =============================================================
   FAZE 2 — mega-menu thumbnaily kategorii (level-2)
   Default Shoptet renderuje miniaturu z administrace jako ctvercovy
   <img> (140x100). Figma chce kulaty kruh 38x38 s lehkou linkou,
   text vedle vertikalne zarovnany k hornimu okraji kruhu.
   ============================================================= */

/* Thumbnail kruh — 38x38 dle Figmy */
#header .menu-level-2 .menu-image img {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid #F5F5F5;
    object-fit: cover;
}

/* Pravy sloupec polozky (nadpis + level-3) — odstranit default Shoptet
   paddingy (top zustal po drivejsim 14px hacku, left ma default Shoptet 24px).
   <li> je flex container s align-items: flex-start, takze nadpis i kruh
   zacinaji na stejnem top bez paddingu. */
@media (min-width: 992px) {
    .navigation-in > ul > li.ext > ul > li > div {
        padding-top: 0;
    }
}
@media (min-width: 768px) {
    .navigation-in > ul > li.ext > ul > li > div {
        padding-left: 0;
    }
}


/* =============================================================
   FAZE 2 — "Vse v kategorii X" levy sloupec mega-menu
   header/header-script.js injektuje <li.roi-hdr-all-in> jako prvni
   dite kazdeho <ul.menu-level-2>. CSS udela z polozky levy sloupec
   pres vsechny radky gridu, viditelne jen na desktopu (>=992px).
   ============================================================= */

@media (min-width: 992px) {
    /* Override default Shoptet flex layout pro otevreny mega-menu na grid.
       Default Shoptet ma na <ul.menu-level-2> display: flex (column-wrap) —
       proto grid-template-columns/grid-auto-flow z drivejsich pokusu nemely
       efekt (jsou grid-only property, ignorovany pri display: flex).

       Cilime pres body.submenu-visible — Shoptet pridava tuto classu na
       <body> kdyz je mega-menu otevreny. Tim:
         - default state (display: none) zustava — menu se schovava normalne
         - visible state je override na grid — uplatni se naše template
       Tj. nezasahujeme do hover toggle behaviour. */
    /* POZOR: NE pres body.submenu-visible — to je global flag a aplikoval
       by display:grid na VSECHNY menu-level-2 najednou (= bug, vsechny
       3 mega-menu viditelne). Cilime jen na aktivne hover-ovanou pres
       .exp class (Shoptet ji pridava na <li.ext>) + aria-expanded fallback. */
    /* POZN: NESAHAT na .navigation-in width!
       Default Shoptet ma .navigation-in jako position: absolute bez
       width = shrink-wrap na ~180000px (kvuli vnoreny absolute children).
       To je vizualne neviditelne, ale slouzi jako reference pro Shoptet's
       splitMenu() algorithm pro overflow detection.

       Predchozi pokus o "constrain navigation-in { width: 100% }" zpusobil
       BUG: Shoptet splitMenu prepocital overflow se znacne mensim
       prostorem -> oznacilo vic items jako .splitted (Doplnky, Destniky),
       ale .menu-helper popup byl uz naklonovany pro stary layout takze
       tyto nove splitted items nemely klon v hamburgeru. Uzivatel je tedy
       neviděl ani v hlavnim menu (visibility: hidden) ani v "Vice".

       Fix: explicitni px width na mega-menu, nezavisle na navigation-in. */

    #header .navigation-in li.ext.exp > .menu-level-2,
    #header .navigation-in > ul > li.ext > a[aria-expanded="true"] + .menu-level-2 {
        display: grid !important;
        /* 4 sloupce: 280px title | 1fr | 1fr | 280px banner.
           Title (.roi-hdr-all-in) span cely sloupec 1, vsechny radky.
           Banner (.roi-hdr-banner) span cely posledni sloupec, vsechny radky.
           Uprostred 2 sloupce sub-kategorii. Viz FAZE 2d nize. */
        grid-template-columns: 280px repeat(2, 1fr) 280px !important;
        grid-auto-flow: row !important;
        column-gap: 20px;

        /* Explicit width 1420px = plna sirka container (max-width
           container je 1420). fr units pak pocitaji z 1420 - 560 - 60 = 800,
           tj. 400px kazda sub-kolona. max-width: calc(100vw - 40px) je
           safety pro uzsi viewports aby mega-menu neprekryvalo viewport edge. */
        width: 1420px;
        max-width: calc(100vw - 40px);

        /* SK MUTACE FIX (2026-05-18): Explicitni bily background.
           Na CZ Shoptet default style.css davalo menu-level-2 bily background,
           na SK Shoptet default je transparent. Po odkomentovani legacy ".navigation-in
           ul li>ul.menu-level-2 {background: var(--color-primary)}" mega-menu na SK
           pruhledne. Fix: pripsat explicit bg z naseho headeru. */
        background: #FFFFFF !important;
    }

    /* Nas nadpis v levem sloupci, span vsechny radky gridu */
    #header .menu-level-2 .roi-hdr-all-in {
        grid-column: 1;
        grid-row: 1 / span 100;
        padding-top: 14px;
    }

    /* Typografie nadpisu — Poppins 700 20px LH 150% #383838 default.
       width: 100% — bez nej <a> ma default Shoptet width: auto (~min-content),
       takze text se zalamuje na uzkem boxu. 100% dotahuje <a> na sirku
       grid cell (280px). */
    #header .menu-level-2 .roi-hdr-all-in > a {
        display: block;
        width: 100%;
        font-family: Poppins, sans-serif;
        font-weight: 700;
        font-size: 20px;
        line-height: 1.5;
        color: #383838;
        text-decoration: none;
    }

    /* Hover state — brand red + underline */
    #header .menu-level-2 .roi-hdr-all-in > a:hover {
        color: #A72B3A;
        text-decoration: underline;
    }

    /* Hlavni polozky menu — text-transform: none misto default uppercase.
       Plati pro:
         a) hlavni menu (.navigation-in) — vsechny li (i bez submenu, jako Stoly/Lehatka)
         b) overflow popup .menu-helper (DALSI trigger) — Gastro produkty / Kolekce / Prodavane znacky
       Default Shoptet ma .navigation-in>ul>li>a { text-transform: uppercase } (0,1,3),
       overrideujeme #header prefixem (1,1,3). */
    #header .navigation-in > ul > li > a,
    #header .menu-helper > ul > li > a {
        text-transform: none;
    }

    /* SK MUTACE — "DALSI" trigger v menu-helper. Default Shoptet SK renderuje
       text pres span::after { content: 'Ďalej'; text-transform: uppercase; }.
       Prepiseme content na 'Viac' a vypneme uppercase. */
    #header .menu-helper > span::after {
        content: 'Viac';
        text-transform: none;
    }

    /* <li> v menu-level-2 — default Shoptet ma width: 25% (z legacy
       4-column flex layoutu @ min-width 1200px). V nasem grid contextu
       to mackalo subkategorie na ~96px misto plne cell sirky.
       Override na 100% — kazda <li> vyplni svou grid cell. */
    #header .navigation-in > ul > li.ext > ul.menu-level-2 > li {
        width: 100% !important;
        flex-basis: 100% !important;
    }

    /* Default Shoptet ma na <li> v menu-level-3 ::after pseudo-element
       s 1px vertikalni linkou (separator). V Figme to neni — schovavame. */
    #header .menu-level-3 > li::after {
        display: none !important;
    }

    /* Level-3 polozky kazda na vlastnim radku.
       POZOR: <ul.menu-level-3> ma default Shoptet display: flex —
       proto display: block na <li> samostatne nestaci (items zustavaji
       flex-items, flex-row layout je primary). Musime override i <ul>
       na block, plus odstranit default Shoptet padding/margin na <ul>. */
    #header .navigation-in .menu-level-3 {
        display: block !important;
        padding-left: 0 !important;
        margin-left: 0 !important;
    }

    #header .navigation-in .menu-level-3 > li {
        display: block !important;
        padding: 0 !important;
        width: 100% !important;
    }
}

/* Mobile + tablet — schovano (default Shoptet drawer to neumi) */
@media (max-width: 991px) {
    .roi-hdr-all-in {
        display: none;
    }
}


/* =============================================================
   FAZE 2c — "Znacky" + "Kolekce" vpravo v header-bottom (desktop)
   header-script.js (initRightMenuItems) naklonuje polozky:
     - Kolekce: <li class="menu-item-2738">
     - Prodavane znacky: <li>:has(> a[href="/znacka/"])  -> rename na "Znacky"
   do noveho <div.roi-hdr-right> jako sibling nav#navigation
   a .menu-helper v .header-bottom-wrapper (display:flex,
   align-items:center). margin-left:auto pripne wrapper vpravo
   nezavisle na tom, zda je .menu-helper viditelny (= nezavisle
   na tom, zda Shoptet overflow logika spustila "Vice" trigger).

   Originaly v <ul.menu-level-1> dostanou class .roi-hdr-right__original
   a na desktopu jsou skryte (klony jsou v naem wrapperu). Na mobilu
   (< 992px) zustavaji originaly default visible — mobile drawer je
   prevezme jako standardni polozky menu.

   Klony v .menu-helper popupu (kazi je tam Shoptet splitHelperMenu)
   se proaktivne odstranuji v JS a defensive CSS je tu na pripad
   re-clone po resize.
   ============================================================= */

@media (min-width: 992px) {
    /* Skryt originaly Kolekce / Prodavane znacky v hlavnim menu */
    #header .navigation-in > ul.menu-level-1 > li.roi-hdr-right__original {
        display: none !important;
    }

    /* Defensive — schovat klony v .menu-helper popupu pokud by je
       Shoptet znovu vytvoril po resize (JS je odstranuje, toto je
       druha pojistka). */
    #header .menu-helper > ul > li.menu-item-2738,
    #header .menu-helper > ul > li:has(> a[href="/znacka/"]) {
        display: none !important;
    }

    /* Pravy wrapper — POZICOVANO ABSOLUTNE.
       Duvod (verze 1.18 byla broken): wrapper byl pridan jako flex
       sibling <nav#navigation> v .header-bottom-wrapper. To melo dva
       fatal problemy:
         (1) default Shoptet pravidlo .navigation-in .menu-level-2 {
             display:none } neplati pro nase klony (jsme mimo scope) -
             cloned Kolekce submenu (50+ polozek) bylo VIDET stale,
             rendrovalo se jako 4690px tall block.
         (2) tim padem mel wrapper sirku ~461px a vysku ~4690px, nav
             se musel zmenit (flex shrink) z 1420 na 959px - Shoptetuv
             splitMenu pak vyhodnotil ze polozky neoverflowuji nav (= 9
             viditelnych mist) a oznacil zbytek jako splitted.
       Fix: position: absolute - wrapper je out of flow, nav drzi sirku
       containeru. .header-bottom-wrapper uz je position: relative
       (zjisteno inspekci), ale pro jistotu nastavime explicitne. */
    .header-bottom-wrapper {
        position: relative;
    }
    .header-bottom-wrapper .roi-hdr-right {
        position: absolute;
        right: 0;
        top: 0;
        bottom: 0;
        display: flex;
        align-items: center;
        z-index: 5;
        /* Match header-bottom bg (rgb(167, 44, 58) = #A72C3A brand red),
           jinak by za wrapperem prosvitaly polozky nav. */
        background-color: rgb(167, 44, 58);
    }

    /* Pri uzsim viewportu Shoptet aktivuje .menu-helper ("Vice" trigger).
       Default pozicovani je right: 0 - tj. ZA nasim wrapperem -> "Vice"
       neni videt a uzivatel nemuze rozkliknout overflow popup.
       Posuneme helper doleva o sirku wrapperu (JS plni --roi-hdr-right-w
       hodnotou rgB().width klonu po renderu). Pouzivame :has() ze JS plni
       variable jen kdyz nas wrapper opravdu existuje. */
    .header-bottom-wrapper:has(.roi-hdr-right) .menu-helper {
        right: var(--roi-hdr-right-w, 260px) !important;
    }

    /* Vertikalni divider pred Znacky/Kolekce — 1px x 25px #FFFFFF dle Figmy */
    .header-bottom-wrapper .roi-hdr-right::before {
        content: '';
        flex: 0 0 auto;
        width: 1px;
        height: 25px;
        background-color: #FFFFFF;
        margin: 0 16px;
    }

    /* Vlastni UL klonu — flex row, bez default list paddingu */
    .roi-hdr-right > ul.roi-hdr-right__ul {
        display: flex;
        align-items: center;
        list-style: none;
        margin: 0;
        padding: 0;
    }

    /* Klon link styling — zarovnano s hlavnim menu z legacy:
       Roboto 14px / line-height 60px, weight 400, padding 0 20px, bila.
       <b> je 14px Roboto 600 (zdedi z <a>, weight override).
       Plati pro "Znacky" i "Kolekce" — oba jsou flat linky bez dropdownu
       (JS strippnul submenu + sipku + class ext + aria-haspopup). */
    .roi-hdr-right > ul > li > a {
        display: flex;
        align-items: center;
        text-transform: none;
        color: #FFFFFF;
        font-family: Roboto, sans-serif;
        font-weight: 400;
        font-size: 14px;
        line-height: 60px;
        text-decoration: none;
        padding: 0 20px;
    }
    .roi-hdr-right > ul > li > a > b {
        font-family: Roboto, sans-serif;
        font-weight: 600;
        font-size: 14px;
    }

    /* Hover state — underline pouze na nasi pravem wrapperu
       (Znacky / Kolekce). Hlavni menu items v .navigation-in
       maji vlastni hover behavior z Shoptet defaultu. */
    .roi-hdr-right > ul > li > a:hover,
    .roi-hdr-right > ul > li > a:focus {
        text-decoration: underline;
        text-underline-offset: 4px;
    }
}

/* Mobile + tablet — schovat right wrapper, originaly v menu-level-1
   zustavaji default visible (mobile drawer je prevezme). */
@media (max-width: 991px) {
    .roi-hdr-right {
        display: none;
    }
}


/* =============================================================
   FAZE 2d — Globalni banner v pravem sloupci mega-menu
   header-script.js (initMegaMenuBanner) injektuje <li.roi-hdr-banner>
   jako posledni dite kazdeho <ul.menu-level-2> v hlavnim menu (jen u
   .ext kategorii co maji submenu). Banner = <a> s <img> + <span> text
   overlay na bottom. Cely banner je odkaz na zvolenou URL.

   Layout v mega-menu gridu:
     [280px title] [1fr sub] [1fr sub] [280px banner]
   Banner je v gridu na poslednim sloupci a spans pres vsechny radky
   (analogie k titlu vlevo). Mezi spans sloupci je column-gap 20px.

   Aktualne stejny banner pro vsechny kategorie. V budoucnu lze
   parametrizovat per-category (zmena v JS - mapa menu-item-XXX -> config).
   ============================================================= */

/* === BASE STYLY — apply ve VSECH viewportech (desktop mega-menu i mobile drawer) === */

/* Banner kontejner — block flow (override default Shoptet
   .menu-level-2 > li { display: flex } pro thumbnail layout).
   Bez block by <a> byl flex item s shrink-wrap a obsah by se zmacknul.

   !important: Shoptet default ma .navigation-in > ul > li.ext > ul > li
   { display: flex } (specificita 0,1,4) v @media (min-width: 768px),
   coz vyhrava nad nasim .roi-hdr-banner (0,1,0). !important to prebije.
   Symptom bez !important: u kategorii s malo sub-itemy se banner
   rendrovala uzce a velmi vysoko (image+text se zmackly do uzke kolony). */
.roi-hdr-banner {
    display: block !important;
    list-style: none;
}

/* Wrapper <a> — cely banner je klikatelny.
   !important: Shoptet ma .navigation-in > ul > li.ext > ul > li > a
   { width: 64px; flex-grow: 0; ... } (specificita 0,2,5) v @media 768+
   - default styling pro thumbnail thumbnail-image link uvnitr menu-level-2.
   Bez !important by <a> meril 64px sirky (= thumbnail), image se zmackla
   na 64 wide, text wrapnul vertikalne. */
.roi-hdr-banner > a {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    position: relative !important;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    padding: 0 !important;
}

/* Image — full width banner. Default scale natural ratio.
   !important: Shoptet ma .menu-level-2 .menu-image img { width: 38px }
   (FAZE 2 kruhova miniatura) — selector matchuje img v menu-image <a>,
   ale by chance to ne-matchuje nas .roi-hdr-banner__img (nema .menu-image
   parent class). Pres jistotu pridame !important. */
.roi-hdr-banner__img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    border-radius: 0 !important;
    border: none !important;
    object-fit: cover;
}

/* Text POD image — red box, Poppins 600 21px bila */
.roi-hdr-banner__text {
    display: block !important;
    background-color: #A72B3A !important;
    color: #FFFFFF !important;
    font-family: Poppins, sans-serif !important;
    font-weight: 600 !important;
    font-size: 21px !important;
    line-height: 1.32 !important;
    padding: 16px 20px !important;
    box-sizing: border-box !important;
}


/* === DESKTOP SPECIFIKA — grid placement v mega-menu === */

@media (min-width: 992px) {
    /* Banner v poslednim sloupci gridu, span vsechny radky.
       Padding zarovnan s title (.roi-hdr-all-in padding-top: 14px). */
    #header .menu-level-2 .roi-hdr-banner {
        grid-column: -2 / -1;
        grid-row: 1 / span 100;
        padding-top: 14px;
        padding-left: 20px;
        padding-right: 20px;
    }

    /* Image natural height 283px s object-fit cover (image je 301x283
       natural, cell width 240 po paddingu, takze leve/prave okraje
       se lehce orriznou aby vyska zustala 283 dle Figmy). */
    #header .menu-level-2 .roi-hdr-banner__img {
        height: 283px;
        object-fit: cover;
    }
}


/* === MOBILE SPECIFIKA — banner v draweru === */

@media (max-width: 991px) {
    /* 16px inset od okraju draweru a vertikalni separace od item nad
       (typicky "Gastro slunecniky" apod.). Image + text-box potom maji
       breathing room. */
    .roi-hdr-banner {
        padding: 16px !important;
        box-sizing: border-box;
    }
}


/* =============================================================
   FAZE 4 — Doppler klub button v header-top
   =============================================================
   header-script.js (initDopplerKlubButton) injektuje
   <a class="roi-hdr-klub"> jako sibling PRED .top-navigation-tools v
   .navigation-buttons. Tlacitko ma logo doppler-klub-logo.svg (SVG, vlastni
   font + barevny "klub" red) + label "Klub vyhod" pod tim, odkazuje na
   /doppler-klub/. Globalne na vsech strankach.

   Layout matchuje ostatni top nav buttony (Prihlaseni, Porovnani, Kosik)
   = icon nahoře + label pod tim, klikatelny cely blok. */

#header .navigation-buttons .roi-hdr-klub {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 6px 8px;
    text-decoration: none;
    color: inherit;
    flex-shrink: 0;
}

#header .navigation-buttons .roi-hdr-klub__logo {
    display: block;
    width: auto;
    height: 18px;  /* matching icon vyska v ostatnich nav buttonech */
}

#header .navigation-buttons .roi-hdr-klub__label {
    display: block;
    font-family: Roboto, sans-serif;
    font-size: 12px;
    font-weight: 400;
    line-height: 14px;
    color: #383838;
    text-align: center;
    white-space: nowrap;
}

#header .navigation-buttons .roi-hdr-klub:hover {
    text-decoration: none;
    opacity: 0.85;
}

/* Tablet — zmensit aby se veslo do navigation-buttons */
@media (max-width: 991px) and (min-width: 768px) {
    #header .navigation-buttons .roi-hdr-klub {
        padding: 4px 6px;
        gap: 2px;
    }
    #header .navigation-buttons .roi-hdr-klub__logo {
        height: 16px;
    }
    #header .navigation-buttons .roi-hdr-klub__label {
        font-size: 11px;
        line-height: 13px;
    }
}

/* Mobile (<768px) — UPLNE SKRYT Klub vyhod, neni misto vedle loga.
   2026-05-16: Klub na mobilu overlapoval s doppler logem (uzivatel feedback).
   Na mobilu prevezme jeho misto Muj ucet + Odhlasit (logged-in)
   nebo Prihlaseni + Registrace (logged-out). */
@media (max-width: 767px) {
    #header .navigation-buttons .roi-hdr-klub {
        display: none !important;
    }
}


/* =============================================================
   FAZE 5 — Mobile menu Doppler klub link
   -------------------------------------------------------------
   2026-05-17: Na mobilu v drawer menu (ul.menu-level-1) chybel Doppler klub
   link. JS (header-script.js initMobileMenuExtras) prida <li class="roi-hdr-
   mobile-only roi-hdr-mobile-klub"> na konec menu-level-1.

   POZN: Drive jsme zde meli i top-nav inject (Akce/Nase katalogy/O nas/
   Kontakty) — vypnuto 2026-05-17, Shoptet drawer je defaultne renderuje
   uz sam (Lubomir feedback: "vidim duplikat").

   Polozka jen pro mobile drawer (max-width: 991px). Na desktopu schovana.
   Layout: logo + "Klub vyhod" label INLINE (row).
   ============================================================= */

/* Default: schovat na desktopu (drawer Shoptet se aktivuje <992px) */
@media (min-width: 992px) {
    .roi-hdr-mobile-only {
        display: none !important;
    }
}

/* Mobile + tablet (Shoptet drawer) — zobrazit a stylizovat */
@media (max-width: 991px) {
    #navigation .navigation-in > .menu-level-1 > li.roi-hdr-mobile-klub {
        display: block;
        list-style: none;
    }
    #navigation .navigation-in > .menu-level-1 > li.roi-hdr-mobile-klub > a {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 10px;
        /* POZN 2026-05-17: padding-top/bottom 20px (vyssi nez 6px na ostatnich
           level-1 polozkach — viz FAZE 5b o nekolik radek niz). Dvodvod: Doppler
           klub polozka nema 48x48 ikonu, ma sirsi logo (22px height) s textem
           "Klub vyhod" — s 6/6 paddingem pusobila prilis sevrene oproti ostatnim.
           !important kvuli FAZE 5b padding-top/bottom 6px !important, ktery by
           jinak prebil (1,2,3 + !important vs 1,3,3 bez !important — !important
           vyhrava). 1,3,3 + !important bije 1,2,3 + !important kvuli specificity. */
        padding: 20px 20px !important;
        color: #1a1a1a;
        font-family: 'Poppins', sans-serif;
        font-weight: 600;
        font-size: 16px;
        line-height: 1.3;
        text-decoration: none;
        border-bottom: 1px solid #e9ebee;
    }
    #navigation .navigation-in > .menu-level-1 > li.roi-hdr-mobile-klub > a:hover {
        background: #f7f8f9;
        color: #1a1a1a;
        text-decoration: none;
    }
    .roi-hdr-mobile-klub__logo {
        height: 22px;
        width: auto;
        flex-shrink: 0;
    }
    .roi-hdr-mobile-klub__label {
        font-family: 'Poppins', sans-serif;
        font-weight: 400;
        font-size: 14px;
        line-height: 1.3;
        color: #6b6b6b;
    }
}


/* =============================================================
   FAZE 5b — Mobile menu hlavni kategorie ikony (48x48 SVG/PNG)
   -------------------------------------------------------------
   2026-05-17: ikony pred <b>Nazev</b> v ul.menu-level-1 > li.
   JS (header-script.js initMobileMenuMainIcons) injektuje:
     <li class="menu-item-X">
       <a href="/SLUG/">
         <img class="roi-hdr-mobile-icon" src="/.../SLUG-menu-ico.svg" />
         <b>Nazev</b>
         <span class="submenu-arrow"></span>
       </a>
       ...
     </li>

   Polozka jen pro mobile drawer (max-width: 991px). Na desktopu hidden.
   Velikost 48x48 px — vizualne sedi s .submenu-arrow (52x52) na pravo.
   Drive 38x38 pusobilo prilis male oproti sipce. Border-radius 50%,
   border 1px solid #F5F5F5, gap 12px mezi ikonou a textem.

   SVG soubory maji vlastni vnitrni rect#A72B3A pozadi (kruh) — wrapper
   nepotrebuje vlastni bg, jen border. PNG ikony (stoly, gastro) maji
   pripadne vlastni pozadi. SVG ma transparent okraje, takze cervene
   kolecko nepokryva cely 48x48 — bily wrapper s borderem to vyhladi.
   ============================================================= */

/* Default: schovat na desktopu */
@media (min-width: 992px) {
    .roi-hdr-mobile-icon {
        display: none !important;
    }
}

/* Mobile + tablet drawer — zobrazit ikonu vedle textu */
@media (max-width: 991px) {
    /* Layout: ikona + nazev + sipka v jednom radku.
       Padding-top/bottom 6px JEN pro hlavni level-1 polozky — direct-child
       kombinatory (> .menu-level-1 > li > a) brani aby override hit
       i submenu (level-2/3) polozky uvnitr <ul class="menu-level-2">.
       Legacy Shoptet `.navigation-in ul li a { padding: 16px 52px 16px 16px }`
       je descendant (0,2,2) a hit by VSECHNY a v navigation — ale specificita
       naseho selektoru (1,2,3) bije a aplikuje se jen na level-1.
       Padding-left/right delegovan na legacy (zustava 16/52). */
    #navigation .navigation-in > .menu-level-1 > li > a {
        display: flex;
        align-items: center;
        gap: 12px;
        padding-top: 6px !important;
        padding-bottom: 6px !important;
    }
    /* Ikona — 48x48 kruh s tenkym borderem */
    .roi-hdr-mobile-icon {
        display: inline-block;
        width: 48px;
        height: 48px;
        flex-shrink: 0;
        border-radius: 50%;
        border: 1px solid #F5F5F5;
        background: #FFFFFF;
        object-fit: contain;
        box-sizing: border-box;
        vertical-align: middle;
    }
    /* <b> nazev zabira zbyly prostor */
    #navigation .navigation-in > .menu-level-1 > li > a > b {
        flex: 1 1 auto;
        min-width: 0;
    }
    /* Submenu arrow napravo.
       Legacy `.submenu-arrow { position: absolute; top: 0; right: 0; }`
       (style.css?v1618423:62) — po zmenseni level-1 paddingu na 6/6 sipka
       (52x52) by visela u horniho okraje. top: 6px ji sesune dolu aby
       byla vertikalne vyrovnana s ikonou (48x48) a textem. */
    #navigation .navigation-in > .menu-level-1 > li > a > .submenu-arrow {
        flex-shrink: 0;
        margin-left: auto;
        top: 6px;
    }
}

/* =============================================================
   FAZE 5c — navigation-in mobile height fix
   -------------------------------------------------------------
   2026-05-17: Otevreny drawer melo dole prazdnou mezeru. Legacy
   `.navigation-in { height: calc(100% - Npx) }` nechalo nepokryty
   prostor pod posledni polozkou. Override na presnych 100% (zapis
   calc(100% - 0px) pro citelnost, ze v budoucnu lze pripadne odecist).
   Plati na narrowest mobile (max-width: 767px) — drawer-specific scope.
   ============================================================= */
@media (max-width: 767px) {
    .navigation-in {
        height: calc(100% - 0px);
    }
}

/* =============================================================
   SK MUTACE FIX (2026-05-18): Skryt clonene menu-level-1 polozky
   uvnitr #formSearchForm
   =============================================================
   Symptom: na mobilu se v search formu zobrazoval seznam hlavnich kategorii
   (Daždniky, Záhradný nábytok, Slnečníky, atd.) jako klony z menu-level-1.

   Root cause: SK admin body HTML obsahoval AKTIVNI clone blok:
     setTimeout(function(){
       if($("#formSearchForm a").length == 0){
         $("#navigation .menu-level-1>li>a").clone().appendTo("#formSearchForm")
       }
     }, 1000);

   To samé bylo i v doppler2507-sk.js (oba zdroje).
   Vyrazeno v body.html i v doppler2507-sk.js, ale defensive CSS hide
   pro pripad ze nekde jeste klonovani probehne (nebo jiny pluginu Shoptet).

   POSILENO 2026-05-18 v2: Multiple selektory s vyssi specificity pro jistotu
   ze rule override cokoliv jineho. Vsechny <a> uvnitr formu se schovaji.
*/
form#formSearchForm > a,
form#formSearchForm > a[data-testid],
.search form#formSearchForm > a,
#header form#formSearchForm > a {
    display: none !important;
    visibility: hidden !important;
}

