﻿/* ============================================================================
   dno-v2.css – nová vizuální vrstva e-shopu dno.cz (redesign 2026)
   Vše je scopované pod obalový prvek .v2, aby se nebily styly s Bootstrapem 5.3 (legacy stránky) a main.css
   a main.css, které zůstávají načtené kvůli neredesignovaným stránkám.
   Pořadí: 0 tokeny · 1 základ · 2 ikony · 3 tlačítka · 4 hlavička · 5 offcanvas
           6 drobečky · 7 patička · 8 sdílené komponenty · 9 utility
           10 legacy stránky uvnitř .v2
   ========================================================================== */

/* 0. DESIGN TOKENY ---------------------------------------------------------- */
:root {
    --c-brand: #d7262d;
    --c-brand-dark: #b11c22;
    --c-brand-soft: #fdeceb;
    --c-cta: #2f8f1e;
    --c-cta-hover: #26761a;
    --c-cta-soft: #e9f6e5;
    --c-text: #1f2933;
    --c-muted: #6b7785;
    --c-border: #e3e7ec;
    --c-border-strong: #c9d0d8;
    --c-bg: #f6f7f9;
    --c-surface: #ffffff;
    --c-ok: #15803d;
    --c-warn: #b45309;
    --c-info: #1d4ed8;
    --c-dark: #15202b;
    --font-head: "Montserrat", "Segoe UI", Arial, sans-serif;
    --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --radius-s: 6px;
    --radius-m: 10px;
    --radius-l: 16px;
    --shadow-1: 0 1px 2px rgba(16, 24, 40, .06);
    --shadow-2: 0 8px 24px rgba(16, 24, 40, .12);
    --shadow-3: 0 16px 40px rgba(16, 24, 40, .18);
    --sp-1: 4px;
    --sp-2: 8px;
    --sp-3: 12px;
    --sp-4: 16px;
    --sp-5: 20px;
    --sp-6: 24px;
    --sp-7: 32px;
    --sp-8: 40px;
    --wrap: 1280px;
    --gutter: 16px;
    --hdr-h: 64px;
}

/* 1. ZÁKLAD ------------------------------------------------------------------ */
body { background: #ffffff; }
.v2 {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.5;
    color: var(--c-text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.v2 *, .v2 *::before, .v2 *::after { box-sizing: border-box; }
/* main.css dává header/main/footer bílé pozadí, rámeček a min-width 1000px !important */
.v2 header, .v2 main, .v2 footer {
    min-width: 0 !important;
    max-width: none;
    margin: 0;
    border: 0;
    background: transparent;
    min-height: 0;
}
.v2 main.v2-main { min-height: 50vh; background: #fff; }
.v2 img { max-width: 100%; height: auto; }
.v2 a { color: inherit; text-decoration: none; transition: color .15s; }
.v2 a:hover, .v2 a:focus { color: var(--c-brand); text-decoration: none; }
.v2 a:visited { color: inherit; }
.v2 h1, .v2 h2, .v2 h3, .v2 h4 {
    font-family: var(--font-head);
    color: var(--c-text);
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 .5em;
    text-transform: none;
}
.v2 h1 { font-size: 24px; }
.v2 h2 { font-size: 20px; }
.v2 h3 { font-size: 17px; }
.v2 h4 { font-size: 15px; }
@media (min-width: 768px) {
    .v2 h1 { font-size: 30px; }
    .v2 h2 { font-size: 24px; }
    .v2 h3 { font-size: 18px; }
}
.v2 p { margin: 0 0 1em; }
.v2 button, .v2 input, .v2 select, .v2 textarea { font: inherit; color: inherit; }
.v2 button:where(:not(.btn):not(.btn-close)) { cursor: pointer; background: none; border: 0; padding: 0; }   /* .btn a .btn-close nechat Bootstrapu 5; :where() drží specificitu (0,1,1) kvůli .btn-v2 */
.v2 ul.plain, .v2 ol.plain { list-style: none; margin: 0; padding: 0; }
.v2 :focus-visible { outline: 2px solid var(--c-info); outline-offset: 2px; }
.v2 .wrap {
    max-width: var(--wrap);
    margin: 0 auto;
    padding-left: var(--gutter);
    padding-right: var(--gutter);
    width: auto;
}
.v2 .wrap::before, .v2 .wrap::after { content: none; }
.v2 .muted { color: var(--c-muted); }
.v2 .small { font-size: 13px; }
.v2 .nowrap { white-space: nowrap; }

/* 2. IKONY (inline SVG sprite, <svg class="ico"><use href="#i-x"/></svg>) --- */
.v2 .ico {
    width: 1.25em;
    height: 1.25em;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    vertical-align: -0.3em;
    flex: none;
    display: inline-block;
}
.v2 .ico--s { width: 1em; height: 1em; }
.v2 .ico--l { width: 1.6em; height: 1.6em; }
.v2 .ico--xl { width: 2.2em; height: 2.2em; }
.v2 .ico--fill { fill: currentColor; stroke: none; }

/* 3. TLAČÍTKA ---------------------------------------------------------------- */
.v2 .btn-v2 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    min-width: 120px;
    padding: 0 20px;
    border-radius: var(--radius-s);
    font-weight: 600;
    font-size: 16px;
    line-height: 1.2;
    border: 1px solid transparent;
    cursor: pointer;
    text-align: center;
    white-space: nowrap;
    transition: background .15s, border-color .15s, color .15s, box-shadow .15s;
    text-decoration: none !important;
    -webkit-appearance: none;
    appearance: none;
}
@media (min-width: 768px) { .v2 .btn-v2 { min-height: 40px; } }
.v2 .btn-v2--primary { background: var(--c-cta); color: #fff !important; border-color: var(--c-cta); }
.v2 .btn-v2--primary:hover, .v2 .btn-v2--primary:focus { background: var(--c-cta-hover); border-color: var(--c-cta-hover); color: #fff; }
.v2 .btn-v2--brand { background: var(--c-brand); color: #fff !important; border-color: var(--c-brand); }
.v2 .btn-v2--brand:hover, .v2 .btn-v2--brand:focus { background: var(--c-brand-dark); border-color: var(--c-brand-dark); color: #fff; }
.v2 .btn-v2--secondary { background: #fff; color: var(--c-text) !important; border-color: var(--c-border-strong); }
.v2 .btn-v2--secondary:hover, .v2 .btn-v2--secondary:focus { border-color: var(--c-text); background: var(--c-bg); color: var(--c-text); }
.v2 .btn-v2--ghost { background: transparent; color: var(--c-text) !important; min-width: 0; padding: 0 12px; }
.v2 .btn-v2--ghost:hover, .v2 .btn-v2--ghost:focus { background: var(--c-bg); }
.v2 .btn-v2--dark { background: var(--c-dark); color: #fff !important; border-color: var(--c-dark); }
.v2 .btn-v2--dark:hover { background: #000; }
.v2 .btn-v2--lg { min-height: 52px; font-size: 17px; padding: 0 28px; }
.v2 .btn-v2--sm { min-height: 36px; font-size: 14px; padding: 0 14px; min-width: 0; }
.v2 .btn-v2--block { display: flex; width: 100%; }
.v2 .btn-v2--icon { min-width: 44px; width: 44px; padding: 0; }
.v2 .btn-v2[disabled], .v2 .btn-v2.is-disabled { opacity: .55; cursor: not-allowed; }
.v2 .btn-v2 .ico { width: 1.2em; height: 1.2em; }
.v2 .btn-v2--loading { position: relative; color: transparent !important; pointer-events: none; }
.v2 .btn-v2--loading::after {
    content: ""; position: absolute; width: 18px; height: 18px; border-radius: 50%;
    border: 2px solid rgba(255,255,255,.5); border-top-color: #fff; animation: v2spin .7s linear infinite;
}
@keyframes v2spin { to { transform: rotate(360deg); } }

/* 4. HLAVIČKA ---------------------------------------------------------------- */
.v2 .hdr { position: relative; z-index: 1000; background: #fff; }
/* 4.1 horní lišta (jen desktop) */
.v2 .hdr-top { display: none; background: var(--c-bg); border-bottom: 1px solid var(--c-border); font-size: 13px; color: var(--c-muted); }
.v2 .hdr-top .wrap { display: flex; justify-content: space-between; align-items: center; min-height: 34px; gap: 16px; }
.v2 .hdr-top-links { display: flex; gap: 20px; list-style: none; margin: 0; padding: 0; }
.v2 .hdr-top-links a:hover { color: var(--c-text); }
.v2 .hdr-top-contact { display: flex; align-items: center; gap: 18px; }
.v2 .hdr-top-contact a { display: inline-flex; align-items: center; gap: 6px; }
.v2 .hdr-top-contact strong { color: var(--c-text); font-weight: 600; }
.v2 .hdr-top .heureka { color: var(--c-ok); font-weight: 600; }
@media (min-width: 1024px) { .v2 .hdr-top { display: block; } }

/* 4.2 hlavní řádek: burger · logo · hledání · akce */
.v2 .hdr-main { background: #fff; border-bottom: 1px solid var(--c-border); position: sticky; top: 0; z-index: 1001; }
.v2 .hdr-main.is-stuck { box-shadow: var(--shadow-1); }
.v2 .hdr-main .wrap {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "burger logo actions" "search search search";
    align-items: center;
    column-gap: 8px;
    min-height: 56px;
    padding-top: 6px;
    padding-bottom: 8px;
}
.v2 .hdr-burger { grid-area: burger; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--radius-s); color: var(--c-text); }
.v2 .hdr-burger:hover { background: var(--c-bg); }
.v2 .hdr-burger .ico { width: 26px; height: 26px; }
.v2 .hdr-logo { grid-area: logo; display: flex; align-items: center; justify-self: start; }
.v2 .hdr-logo img { height: 40px; width: auto; border-radius: 4px; display: block; }
.v2 .hdr-search { grid-area: search; margin-top: 6px; min-width: 0; }
.v2 .hdr-actions { grid-area: actions; display: flex; align-items: center; gap: 2px; justify-self: end; }

/* akce v hlavičce (účet, porovnání, košík) */
.v2 .hdr-act {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 4px 8px;
    border-radius: var(--radius-s);
    color: var(--c-text);
    position: relative;
}
.v2 .hdr-act:hover { background: var(--c-bg); color: var(--c-text); }
.v2 .hdr-act .ico { width: 26px; height: 26px; }
.v2 .hdr-act-t { display: none; line-height: 1.15; font-size: 13px; }
.v2 .hdr-act-t b { display: block; font-weight: 600; font-size: 14px; }
.v2 .hdr-act-t small { display: block; color: var(--c-muted); font-size: 12px; }
.v2 .hdr-act--hide-m { display: none; }
/* účet: obal div.hdr-act, uvnitř odkaz na účet + samostatný odkaz „odhlásit“ */
.v2 .hdr-act--acc { gap: 4px; }
.v2 .hdr-act-link { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; }
.v2 .hdr-act-link:hover { color: var(--c-text); }
.v2 .hdr-act-out { display: none; align-self: flex-end; margin-bottom: 7px; font-size: 12px; line-height: 1.15; color: var(--c-muted); text-decoration: underline; }
.v2 .hdr-act-out::before { content: "·\00a0"; display: inline-block; text-decoration: none; }
.v2 .hdr-act-out:hover { color: var(--c-brand); }
.v2 .hdr-cart-n {
    position: absolute; top: 2px; left: 26px;
    min-width: 18px; height: 18px; padding: 0 5px;
    border-radius: 9px; background: var(--c-brand); color: #fff;
    font-size: 11px; font-weight: 700; line-height: 18px; text-align: center;
}
.v2 .hdr-cart { position: relative; }
.v2 .hdr-cart.is-empty .hdr-cart-n { display: none; }

/* mini košík (hover dropdown, #basket-modal-box ovládá x-main.client.js) */
.v2 #basket-modal-box.minicart {
    position: absolute; right: 0; top: 100%; left: auto; width: 360px; max-width: calc(100vw - 32px);
    background: #fff; border: 1px solid var(--c-border); border-radius: var(--radius-m);
    box-shadow: var(--shadow-2); padding: 12px; z-index: 1200; text-align: left;
}
.v2 .minicart-empty { color: var(--c-muted); margin: 8px 0; text-align: center; }
.v2 .minicart-list { list-style: none; margin: 0; padding: 0; max-height: 320px; overflow: auto; }
.v2 .minicart-item { display: grid; grid-template-columns: 48px 1fr auto; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--c-border); font-size: 14px; }
.v2 .minicart-item img { width: 48px; height: 48px; object-fit: contain; border-radius: 4px; border: 1px solid var(--c-border); background: #fff; }
.v2 .minicart-item .n { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.v2 .minicart-item .q { color: var(--c-muted); font-size: 12px; }
.v2 .minicart-item .p { font-weight: 600; white-space: nowrap; }
.v2 .minicart-sum { display: flex; justify-content: space-between; align-items: center; padding: 12px 0 8px; font-weight: 600; }
.v2 .minicart-sum .p { font-family: var(--font-head); font-size: 18px; }
.v2 #basket-modal-box.minicart a { color: var(--c-text); }
.v2 #basket-modal-box.minicart table { display: none; }

/* hledání */
.v2 .srch { display: flex; position: relative; width: 100%; }
.v2 .srch-in {
    flex: 1; min-width: 0; height: 44px; padding: 0 44px 0 14px;
    border: 2px solid var(--c-border-strong); border-right: 0; border-radius: var(--radius-s) 0 0 var(--radius-s);
    font-size: 16px; background: #fff; color: var(--c-text); box-shadow: none; -webkit-appearance: none; appearance: none;
}
.v2 .srch-in::placeholder { color: #8a94a1; }
.v2 .srch-in:focus { outline: none; border-color: var(--c-brand); }
/* main.css (stara sablona, stale se nacita) ma #searchInput { border-left: none } - id selektor prebiji .srch-in, levy okraj pole se musi vratit s vyssi specificitou */
.v2 #searchInput.srch-in { border-left: 2px solid var(--c-border-strong); }
.v2 #searchInput.srch-in:focus { border-left-color: var(--c-brand); }
.v2 .srch-in::-webkit-search-cancel-button { -webkit-appearance: none; }
.v2 .srch-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 44px; padding: 0 16px;
    background: var(--c-brand); color: #fff; border-radius: 0 var(--radius-s) var(--radius-s) 0; font-weight: 600;
}
.v2 .srch-btn:hover { background: var(--c-brand-dark); }
.v2 .srch-btn .ico { width: 22px; height: 22px; }
.v2 .srch-btn span { display: none; }
.v2 .srch-clear { position: absolute; right: 60px; top: 0; height: 44px; width: 40px; display: none; align-items: center; justify-content: center; color: var(--c-muted); }
.v2 .srch.has-value .srch-clear { display: inline-flex; }
/* našeptávač (markup generuje x-main.client.js do body) */
.autocomplete-w1 .autocomplete { border-radius: var(--radius-m); box-shadow: var(--shadow-2); border: 1px solid var(--c-border); background: #fff; }

/* 4.3 lišta kategorií */
.v2 .hdr-nav { display: none; background: #fff; border-bottom: 1px solid var(--c-border); }
.v2 .hdr-nav .wrap { display: flex; align-items: stretch; gap: 4px; position: relative; }
.v2 .hdr-nav-list { display: flex; align-items: stretch; gap: 0; list-style: none; margin: 0; padding: 0; flex: 1; min-width: 0; overflow: hidden; }
.v2 .hdr-nav-list > li { position: static; flex: 0 1 auto; min-width: 0; }
.v2 .hdr-nav-list > li > a, .v2 .hdr-nav-allbtn {
    display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 9px;
    font-weight: 600; font-size: 14px; color: var(--c-text); border-radius: var(--radius-s); white-space: nowrap;
}
.v2 .hdr-nav-list > li > a { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.v2 .hdr-nav-list > li > a:hover { background: var(--c-bg); color: var(--c-brand); }
.v2 .hdr-nav-list > li.is-promo > a { color: var(--c-brand); }
.v2 .hdr-nav-allbtn { background: var(--c-dark); color: #fff; border-radius: var(--radius-s) var(--radius-s) 0 0; margin-top: 4px; height: 42px; width: 300px; }
.v2 .hdr-nav-allbtn:hover, .v2 .hdr-nav-allbtn[aria-expanded="true"] { background: #000; color: #fff; }
.v2 .hdr-nav-allbtn .ico--chev { margin-left: auto; transition: transform .2s; }
.v2 .hdr-nav-allbtn[aria-expanded="true"] .ico--chev { transform: rotate(180deg); }
@media (min-width: 1024px) {
    .v2 .hdr-nav { display: block; }
    .v2 .hdr-main { position: relative; }
    .v2 .hdr-main .wrap {
        grid-template-columns: auto minmax(280px, 1fr) auto;
        grid-template-areas: "logo search actions";
        column-gap: 36px;
        min-height: var(--hdr-h);
        padding-top: 10px; padding-bottom: 10px;
    }
    .v2 .hdr-burger { display: none; }
    .v2 .hdr-logo img { height: 48px; }
    .v2 .hdr-search { margin-top: 0; max-width: 640px; width: 100%; justify-self: center; }
    .v2 .hdr-actions { gap: 6px; }
    .v2 .hdr-act { padding: 4px 10px; }
    .v2 .hdr-act-t { display: block; }
    .v2 .hdr-act--hide-m { display: inline-flex; }
    .v2 .hdr-act-out { display: inline; }
    .v2 .hdr-cart-n { left: 24px; }
    .v2 .srch-btn span { display: inline; }
}
@media (min-width: 1200px) {
    .v2 .hdr-nav-list > li > a { padding: 0 14px; font-size: 15px; }
}
.v2 .hdr-nav-list > li.hdr-nav-all { flex: none; }
.v2 .mega .catmenu-l2 > li.more > .catmenu-row > .catmenu-link { color: var(--c-info); }

/* 4.4 mega menu (desktop) a strom kategorií (sdílený markup .catmenu) */
.v2 .mega {
    display: none; position: absolute; left: var(--gutter); right: var(--gutter); top: 100%; z-index: 1100;
    background: #fff; border-top: 1px solid var(--c-border); box-shadow: var(--shadow-3);
}
.v2 .mega.is-open { display: block; }
.v2 .mega-backdrop { display: none; position: fixed; inset: 0; background: rgba(16,24,40,.35); z-index: 999; }
.v2 .mega-backdrop.is-open { display: block; }
.v2 .catmenu { position: relative; }
.v2 .catmenu ul { list-style: none; margin: 0; padding: 0; }
.v2 .catmenu-link { display: flex; align-items: center; gap: 8px; }
.v2 .catmenu-toggle { display: none; }
.v2 .catmenu-img { width: 28px; height: 28px; object-fit: contain; flex: none; }
/* desktop: levý sloupec + pravý panel */
@media (min-width: 1024px) {
    .v2 .mega .catmenu { display: grid; grid-template-columns: 300px 1fr; min-height: 420px; }
    .v2 .mega .catmenu-l1 { background: var(--c-bg); border-right: 1px solid var(--c-border); padding: 8px 0; max-height: 70vh; overflow: auto; }
    .v2 .mega .catmenu-item > .catmenu-row > .catmenu-link { padding: 9px 18px; font-weight: 600; font-size: 14px; color: var(--c-text); justify-content: space-between; }
    .v2 .mega .catmenu-item > .catmenu-row > .catmenu-link .ico--chev { color: var(--c-muted); transform: rotate(-90deg); }
    .v2 .mega .catmenu-item.is-active > .catmenu-row > .catmenu-link, .v2 .mega .catmenu-item > .catmenu-row > .catmenu-link:hover { background: #fff; color: var(--c-brand); }
    .v2 .mega .catmenu-panel { display: none; position: absolute; left: 300px; right: 0; top: 0; bottom: 0; padding: 20px 28px; overflow: auto; max-height: 70vh; }
    .v2 .mega .catmenu-item.is-active > .catmenu-panel { display: block; }
    .v2 .mega .catmenu-panel-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--c-border); }
    .v2 .mega .catmenu-panel-head a { font-family: var(--font-head); font-weight: 700; font-size: 18px; }
    .v2 .mega .catmenu-panel-head .all { font-size: 14px; color: var(--c-muted); }
    .v2 .mega .catmenu-l2 { columns: 3; column-gap: 28px; }
    .v2 .mega .catmenu-l2 > li { break-inside: avoid; margin-bottom: 14px; }
    .v2 .mega .catmenu-l2 > li > .catmenu-row > .catmenu-link { font-weight: 600; font-size: 14px; margin-bottom: 4px; }
    .v2 .mega .catmenu-l3 > li > a { display: block; font-size: 13px; color: var(--c-muted); padding: 2px 0; }
    .v2 .mega .catmenu-l3 > li > a:hover { color: var(--c-brand); }
    .v2 .mega .catmenu-l3 > li.more > a { color: var(--c-info); }
}

/* 4.5 minimální hlavička košíku */
.v2 .hdr--mini .hdr-main { position: relative; }
.v2 .hdr--mini .hdr-main .wrap { grid-template-columns: auto 1fr; grid-template-areas: "logo right"; min-height: 60px; padding-top: 8px; padding-bottom: 8px; }
.v2 .hdr-mini-right { grid-area: right; display: flex; align-items: center; justify-content: flex-end; gap: 20px; font-size: 14px; }
.v2 .hdr-mini-phone { display: inline-flex; align-items: center; gap: 8px; color: var(--c-text); }
.v2 .hdr-mini-phone .ico { width: 24px; height: 24px; color: var(--c-brand); }
.v2 .hdr-mini-phone b { display: block; font-size: 15px; }
.v2 .hdr-mini-phone small { display: none; color: var(--c-muted); font-size: 12px; }
.v2 .hdr-secure { display: none; align-items: center; gap: 6px; color: var(--c-ok); font-weight: 600; }
@media (min-width: 768px) { .v2 .hdr-mini-phone small { display: block; } .v2 .hdr-secure { display: inline-flex; } }
/* účet v mini hlavičce košíku: na mobilu jen ikona, text a „odhlásit“ od 768 px */
.v2 .hdr--mini .hdr-act--acc { display: inline-flex; min-height: 40px; padding: 2px 4px; }
.v2 .hdr--mini .hdr-act--acc .ico { width: 24px; height: 24px; }
@media (max-width: 767.98px) { .v2 .hdr-mini-right { gap: 12px; } .v2 .hdr--mini .hdr-act-out { display: none; } }
@media (min-width: 768px) { .v2 .hdr--mini .hdr-act-t { display: block; } .v2 .hdr--mini .hdr-act-out { display: inline; } }

/* 4.6 potvrzení přidání do košíku (modal) */
.v2-modal .added-row { display: flex; gap: 14px; align-items: flex-start; }
.v2-modal .added-img { width: 72px; height: 72px; object-fit: contain; border: 1px solid var(--c-border); border-radius: var(--radius-s); flex: none; }
.v2-modal .added-name { font-weight: 600; }
.v2-modal .muted { color: var(--c-muted); }
.v2-modal .small { font-size: 13px; }
.v2-modal .mt-2 { margin-top: 8px; }

/* 5. OFFCANVAS (mobilní menu, filtry) ----------------------------------------- */
.v2 .offc {
    position: fixed; top: 0; bottom: 0; left: 0; width: min(360px, 88vw); z-index: 2000;
    background: #fff; transform: translateX(-105%); transition: transform .25s ease; display: flex; flex-direction: column;
    box-shadow: var(--shadow-3); overflow: hidden;
}
.v2 .offc--right { left: auto; right: 0; transform: translateX(105%); }
.v2 .offc.is-open { transform: none; }
.v2 .offc-backdrop { position: fixed; inset: 0; background: rgba(16,24,40,.5); z-index: 1999; display: none; }
.v2 .offc-backdrop.is-open { display: block; }
.v2 .offc-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px 10px 16px; border-bottom: 1px solid var(--c-border); font-family: var(--font-head); font-weight: 700; font-size: 17px; }
.v2 .offc-close { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-s); }
.v2 .offc-close:hover { background: var(--c-bg); }
.v2 .offc-body { flex: 1; overflow: auto; -webkit-overflow-scrolling: touch; }
.v2 .offc-foot { border-top: 1px solid var(--c-border); padding: 12px 16px; font-size: 14px; }
.v2 .offc-section { padding: 8px 0; border-bottom: 1px solid var(--c-border); }
.v2 .offc-section h4 { padding: 8px 16px 4px; margin: 0; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--c-muted); font-family: var(--font-body); }
.v2 .offc-links { list-style: none; margin: 0; padding: 0; }
.v2 .offc-links a { display: flex; align-items: center; gap: 12px; padding: 11px 16px; font-size: 15px; }
.v2 .offc-links a .ico { color: var(--c-muted); }
body.v2-noscroll { overflow: hidden; }
/* mobilní akordeon stromu kategorií */
@media (max-width: 1023.98px) {
    .v2 .offc .catmenu-item { border-bottom: 1px solid var(--c-border); }
    .v2 .offc .catmenu-item > .catmenu-row > .catmenu-link { padding: 12px 0 12px 16px; font-weight: 600; font-size: 15px; flex: 1; }
    .v2 .offc .catmenu-row { display: flex; align-items: stretch; }
    .v2 .offc .catmenu-link { color: var(--c-text); }
    .v2 .offc .catmenu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 48px; flex: none; color: var(--c-muted); border-left: 1px solid var(--c-border); }
    .v2 .offc .catmenu-toggle .ico { transition: transform .2s; }
    .v2 .offc .is-open > .catmenu-row .catmenu-toggle .ico { transform: rotate(180deg); }
    .v2 .offc .catmenu-panel { display: none; background: var(--c-bg); padding: 4px 0 8px; }
    .v2 .offc .is-open > .catmenu-panel { display: block; }
    .v2 .offc .catmenu-panel-head { display: none; }
    .v2 .offc .catmenu-l2 > li { }
    .v2 .offc .catmenu-l2 > li > .catmenu-row > .catmenu-link { padding: 10px 0 10px 28px; font-size: 14px; font-weight: 500; flex: 1; }
    .v2 .offc .catmenu-l2 > li > .catmenu-row > .catmenu-toggle { border-left: 0; }
    .v2 .offc .catmenu-l3 { display: none; padding: 0 0 6px; }
    .v2 .offc .catmenu-l2 > li.is-open > .catmenu-l3 { display: block; }
    .v2 .offc .catmenu-l3 > li > a { display: block; padding: 7px 16px 7px 44px; font-size: 14px; color: var(--c-muted); }
    .v2 .offc .catmenu-l3 > li.more > a { color: var(--c-info); }
    .v2 .offc .catmenu-img { display: none; }
}

/* 6. DROBEČKOVÁ NAVIGACE ------------------------------------------------------- */
.v2 .crumbs { font-size: 13px; color: var(--c-muted); padding: 10px 0 2px; overflow: hidden; }
.v2 .crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: nowrap; gap: 4px; align-items: center; white-space: nowrap; overflow-x: auto; scrollbar-width: none; }
.v2 .crumbs ol::-webkit-scrollbar { display: none; }
.v2 .crumbs li { display: inline-flex; align-items: center; gap: 4px; }
.v2 .crumbs li + li::before { content: ""; width: 5px; height: 5px; border-right: 1.5px solid var(--c-border-strong); border-bottom: 1.5px solid var(--c-border-strong); transform: rotate(-45deg); margin: 0 4px 0 2px; }
.v2 .crumbs a { color: var(--c-muted); }
.v2 .crumbs a:hover { color: var(--c-brand); }
.v2 .crumbs li[aria-current] { color: var(--c-text); }

/* 7. PATIČKA ------------------------------------------------------------------ */
.v2 .ftr { background: var(--c-bg); border-top: 1px solid var(--c-border); margin-top: 40px; font-size: 14px; }
.v2 .ftr-usp { background: #fff; border-bottom: 1px solid var(--c-border); }
.v2 .ftr-usp .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; padding-top: 16px; padding-bottom: 16px; }
.v2 .ftr-usp-item { display: flex; align-items: center; gap: 10px; font-size: 13px; line-height: 1.3; }
.v2 .ftr-usp-item .ico { color: var(--c-cta); width: 28px; height: 28px; }
.v2 .ftr-usp-item b { display: block; font-weight: 600; font-size: 14px; }
.v2 .ftr-usp-item span { color: var(--c-muted); }
@media (min-width: 768px) { .v2 .ftr-usp .wrap { grid-template-columns: repeat(4, 1fr); } }
.v2 .ftr-cols .wrap { display: grid; grid-template-columns: 1fr; gap: 24px; padding-top: 28px; padding-bottom: 28px; }
@media (min-width: 600px) { .v2 .ftr-cols .wrap { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .v2 .ftr-cols .wrap { grid-template-columns: 1.1fr 1.2fr 1fr 1.4fr; gap: 32px; } }
.v2 .ftr h3 { font-size: 15px; margin-bottom: 10px; }
.v2 .ftr-links { list-style: none; margin: 0; padding: 0; }
.v2 .ftr-links li { margin: 0 0 6px; }
.v2 .ftr-links a { color: var(--c-text); }
.v2 .ftr-links a:hover { color: var(--c-brand); }
.v2 .ftr-contact p { margin: 0 0 8px; }
.v2 .ftr-contact a.big { font-family: var(--font-head); font-weight: 700; font-size: 20px; display: inline-flex; align-items: center; gap: 8px; color: var(--c-text); }
.v2 .ftr-contact .muted { font-size: 13px; }
.v2 .nl { display: flex; gap: 0; margin: 10px 0 14px; }
.v2 .nl input.form-control, .v2 .nl input {
    flex: 1; min-width: 0; height: 44px; border: 1px solid var(--c-border-strong); border-right: 0; border-radius: var(--radius-s) 0 0 var(--radius-s);
    padding: 0 12px; font-size: 15px; box-shadow: none; background: #fff;
}
.v2 .nl input:focus { outline: none; border-color: var(--c-brand); }
.v2 .nl .btn-v2 { border-radius: 0 var(--radius-s) var(--radius-s) 0; min-width: 0; }
.v2 .ftr-pay { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.v2 .ftr-pay span { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; background: #fff; border: 1px solid var(--c-border); border-radius: var(--radius-s); font-size: 12px; color: var(--c-muted); }
.v2 .ftr-heureka { margin-top: 12px; }
.v2 .ftr-heureka #showHeurekaBadgeHere-11 { min-height: 1px; }
.v2 .ftr-bottom { border-top: 1px solid var(--c-border); font-size: 13px; color: var(--c-muted); }
.v2 .ftr-bottom .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; padding-top: 14px; padding-bottom: 14px; }
.v2 .ftr-bottom a { color: var(--c-muted); }
.v2 .ftr-bottom a:hover { color: var(--c-brand); }
/* zkrácená patička v košíku */
.v2 .ftr--mini { margin-top: 32px; }
/* důvěryhodnost v patičce košíku (data-heureka-recenze="mini", plní v2-recenze.js) */
.v2 .ftr-mini-trust { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 12px; padding: 14px 16px 0; font-size: 13px; font-weight: 600; color: var(--c-text); text-align: center; }
.v2 .ftr-mini-trust a { color: inherit; }
.v2 .ftr--mini .wrap { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; padding-top: 18px; padding-bottom: 18px; font-size: 13px; color: var(--c-muted); }

/* 8. SDÍLENÉ KOMPONENTY ------------------------------------------------------- */
/* 8.1 cena */
.v2 .price { font-family: var(--font-head); font-weight: 700; font-size: 20px; white-space: nowrap; color: var(--c-text); }
.v2 .price--l { font-size: 28px; }
.v2 .price--xl { font-size: 32px; }
.v2 .price-old { color: var(--c-muted); text-decoration: line-through; font-size: 14px; white-space: nowrap; font-weight: 400; }
.v2 .price-save { color: var(--c-brand); font-weight: 600; font-size: 13px; white-space: nowrap; }
.v2 .price-note { color: var(--c-muted); font-size: 12px; }

/* 8.2 štítky */
.v2 .tag { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 700; line-height: 1.4; background: var(--c-bg); color: var(--c-text); white-space: nowrap; }
.v2 .tag--sale { background: var(--c-brand); color: #fff; }
.v2 .tag--new { background: var(--c-info); color: #fff; }
.v2 .tag--free { background: var(--c-cta-soft); color: var(--c-ok); }
.v2 .tag--gift { background: #fff4e5; color: var(--c-warn); }
.v2 .tag--cashback { background: #ecfeff; color: #0e7490; }
.v2 .tag--top { background: var(--c-dark); color: #fff; }
.v2 .tag--outline { background: #fff; border: 1px solid var(--c-border-strong); font-weight: 600; }

/* 8.3 dostupnost */
.v2 .avail { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--c-ok); line-height: 1.3; }
.v2 .avail::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; flex: none; }
.v2 .avail--soon { color: var(--c-warn); }
.v2 .avail--ask { color: var(--c-muted); }
.v2 .avail--out { color: var(--c-brand); }
.v2 .avail-date { font-weight: 400; color: var(--c-muted); font-size: 13px; }

/* 8.4 hodnocení (hvězdy) */
.v2 .stars { display: inline-flex; align-items: center; gap: 1px; color: #f59e0b; line-height: 1; }
.v2 .stars .ico { width: 15px; height: 15px; fill: currentColor; stroke: none; }
.v2 .stars .ico.is-off { color: var(--c-border-strong); }
.v2 .stars-n { font-size: 13px; color: var(--c-muted); margin-left: 6px; }

/* 8.5 karta produktu */
.v2 .pgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 768px) { .v2 .pgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 1280px) { .v2 .pgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.v2 .pgrid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1024px) { .v2 .pgrid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.v2 .pcard {
    position: relative; display: flex; flex-direction: column; background: #fff;
    border: 1px solid var(--c-border); border-radius: var(--radius-m); padding: 10px; min-width: 0;
    transition: box-shadow .15s, border-color .15s;
}
.v2 .pcard:hover { box-shadow: var(--shadow-2); border-color: var(--c-border-strong); }
.v2 .pcard-img { display: block; position: relative; aspect-ratio: 1 / 1; margin: 0 0 8px; overflow: hidden; border-radius: var(--radius-s); background: #fff; }
.v2 .pcard-img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.v2 .pcard-tags { position: absolute; top: 8px; left: 8px; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; z-index: 2; }
.v2 .pcard-icons { position: absolute; top: 6px; right: 6px; display: flex; flex-direction: column; gap: 2px; z-index: 2; }
.v2 .pcard-icons a, .v2 .pcard-icons button { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: var(--c-muted); background: rgba(255,255,255,.9); }
.v2 .pcard-icons a:hover, .v2 .pcard-icons button:hover, .v2 .pcard-icons a.selected { color: var(--c-brand); }
.v2 .pcard-brand { font-size: 12px; color: var(--c-muted); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 2px; }
.v2 .pcard-name { font-size: 14px; font-weight: 600; line-height: 1.3; margin: 0 0 6px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; font-family: var(--font-body); text-transform: none; }
.v2 .pcard-name a { color: var(--c-text); }
.v2 .pcard-name a:hover { color: var(--c-brand); }
.v2 .pcard-params { list-style: none; margin: 0 0 8px; padding: 0; font-size: 12px; color: var(--c-muted); line-height: 1.4; }
.v2 .pcard-params li { display: flex; gap: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v2 .pcard-params li b { font-weight: 500; color: var(--c-text); overflow: hidden; text-overflow: ellipsis; }
.v2 .pcard-rating { margin-bottom: 6px; }
.v2 .pcard-avail { margin-top: auto; margin-bottom: 8px; font-size: 13px; display: flex; flex-direction: column; gap: 2px; }
.v2 .pcard-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; margin-bottom: 2px; }
.v2 .pcard-price .price { font-size: 18px; }
/* tlačítko je poslední prvek karty s pevnou výškou → ve všech kartách řádku mřížky na stejné úrovni */
.v2 .pcard-actions { display: flex; gap: 6px; align-items: center; min-height: 40px; margin-top: 8px; flex: none; }
.v2 .pcard-actions .btn-v2 { flex: 1; min-width: 0; min-height: 40px; font-size: 14px; padding: 0 10px; }
.v2 .pcard-actions .btn-v2 .ico { width: 20px; height: 20px; }
.v2 .pcard-detail { font-size: 13px; color: var(--c-muted); white-space: nowrap; }
@media (min-width: 768px) {
    .v2 .pcard { padding: 14px; }
    .v2 .pcard-name { font-size: 15px; }
    .v2 .pcard-price .price { font-size: 20px; }
}
/* vodorovný pás karet (úvodka mobil, příslušenství) */
.v2 .pstrip { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 2px 0 12px; margin: 0; scrollbar-width: thin; }
.v2 .pstrip > .pcard { flex: 0 0 72%; max-width: 280px; scroll-snap-align: start; }
@media (min-width: 480px) { .v2 .pstrip > .pcard { flex-basis: 46%; } }
@media (min-width: 768px) { .v2 .pstrip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; overflow: visible; margin: 0; padding: 0; } .v2 .pstrip > .pcard { flex: none; max-width: none; } }

/* 8.6 formulářová pole */
.v2 .fld { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px; min-width: 0; }
.v2 .fld label, .v2 .fld-label { font-size: 14px; font-weight: 600; color: var(--c-text); }
.v2 .fld label .req { color: var(--c-brand); }
.v2 .fld input.form-control, .v2 .fld input, .v2 .fld select, .v2 .fld textarea, .v2 .in-v2 {
    height: 44px; padding: 0 12px; border: 1px solid var(--c-border-strong); border-radius: var(--radius-s); font-size: 16px; width: 100%;
    background: #fff; box-shadow: none; color: var(--c-text); -webkit-appearance: none; appearance: none; transition: border-color .15s, box-shadow .15s;
}
.v2 .fld textarea { height: auto; min-height: 90px; padding: 10px 12px; }
.v2 .fld select { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7785' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>"); background-repeat: no-repeat; background-position: right 10px center; padding-right: 34px; }
.v2 .fld input:focus, .v2 .fld select:focus, .v2 .fld textarea:focus, .v2 .in-v2:focus { outline: none; border-color: var(--c-info); box-shadow: 0 0 0 3px rgba(29,78,216,.15); }
.v2 .fld.is-error input, .v2 .fld.is-error select, .v2 .fld.is-error textarea { border-color: var(--c-brand); box-shadow: 0 0 0 3px rgba(215,38,45,.12); }
.v2 .fld.is-ok input { border-color: var(--c-ok); }
.v2 .fld-err { display: none; font-size: 13px; color: var(--c-brand); }
.v2 .fld.is-error .fld-err { display: block; }
.v2 .fld-help { font-size: 13px; color: var(--c-muted); }
.v2 .fld-row { display: grid; grid-template-columns: 1fr; gap: 0 14px; }
@media (min-width: 480px) { .v2 .fld-row { grid-template-columns: 1fr 1fr; } .v2 .fld-row--3 { grid-template-columns: 2fr 1fr; } }
.v2 .chk { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; cursor: pointer; margin-bottom: 10px; }
.v2 .chk input { width: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--c-cta); }
.v2 .chk a { color: var(--c-info); text-decoration: underline; }
/* stepper množství */
.v2 .qty { display: inline-flex; align-items: stretch; border: 1px solid var(--c-border-strong); border-radius: var(--radius-s); overflow: hidden; height: 44px; background: #fff; }
.v2 .qty button { width: 40px; display: inline-flex; align-items: center; justify-content: center; color: var(--c-text); background: var(--c-bg); }
.v2 .qty button:hover { background: var(--c-border); }
.v2 .qty input { width: 52px; text-align: center; border: 0; border-left: 1px solid var(--c-border); border-right: 1px solid var(--c-border); font-size: 16px; font-weight: 600; -moz-appearance: textfield; padding: 0; background: #fff; height: auto; }
.v2 .qty input::-webkit-outer-spin-button, .v2 .qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.v2 .qty--s { height: 36px; } .v2 .qty--s button { width: 34px; } .v2 .qty--s input { width: 44px; font-size: 15px; }

/* 8.7 volba (doprava/platba) */
.v2 .optcard { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--c-border); border-radius: var(--radius-m); background: #fff; cursor: pointer; margin-bottom: 8px; transition: border-color .15s, box-shadow .15s; position: relative; }
.v2 .optcard:hover { border-color: var(--c-border-strong); }
.v2 .optcard.is-selected { border-color: var(--c-cta); box-shadow: 0 0 0 2px var(--c-cta-soft); }
.v2 .optcard input[type="radio"] { width: 20px; height: 20px; margin: 0; flex: none; accent-color: var(--c-cta); }
.v2 .optcard-logo { width: 56px; height: 36px; flex: none; display: flex; align-items: center; justify-content: center; }
.v2 .optcard-logo img { max-width: 56px; max-height: 36px; object-fit: contain; }
.v2 .optcard-body { flex: 1; min-width: 0; }
.v2 .optcard-name { font-weight: 600; font-size: 15px; }
.v2 .optcard-desc { font-size: 13px; color: var(--c-muted); }
.v2 .optcard-price { font-weight: 700; white-space: nowrap; font-family: var(--font-head); }
.v2 .optcard-price.is-free { color: var(--c-ok); }
.v2 .optcard-sub { margin: -4px 0 10px 0; padding: 10px 14px; background: var(--c-bg); border-radius: 0 0 var(--radius-m) var(--radius-m); font-size: 14px; }

/* 8.8 krokovač objednávky */
.v2 .steps { display: flex; list-style: none; margin: 0; padding: 0; counter-reset: step; gap: 4px; }
.v2 .steps li { flex: 1; display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--c-muted); position: relative; min-width: 0; }
.v2 .steps li::before { counter-increment: step; content: counter(step); width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--c-border-strong); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px; flex: none; background: #fff; }
.v2 .steps li span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v2 .steps li.is-done { color: var(--c-text); }
.v2 .steps li.is-done::before { background: var(--c-cta); border-color: var(--c-cta); color: #fff; content: "\2713"; }
.v2 .steps li.is-active { color: var(--c-text); font-weight: 600; }
.v2 .steps li.is-active::before { border-color: var(--c-brand); color: var(--c-brand); }
.v2 .steps li a { color: inherit; }
@media (max-width: 767.98px) { .v2 .steps li:not(.is-active) span { display: none; } .v2 .steps li { flex: 0 0 auto; } .v2 .steps li.is-active { flex: 1; } }

/* 8.9 souhrn objednávky */
.v2 .osum { background: var(--c-bg); border: 1px solid var(--c-border); border-radius: var(--radius-m); padding: 16px; font-size: 14px; }
.v2 .osum h3 { font-size: 16px; margin-bottom: 10px; }
.v2 .osum-row { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; }
.v2 .osum-row .l { color: var(--c-muted); }
.v2 .osum-row .r { white-space: nowrap; font-weight: 600; }
.v2 .osum-total { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid var(--c-border-strong); margin-top: 8px; padding-top: 10px; font-weight: 700; }
.v2 .osum-total .price { font-size: 22px; }
.v2 .osum-row--novat { padding: 2px 0; font-size: 13px; }
.v2 .osum-row--novat .r { font-weight: 400; color: var(--c-muted); }
.v2 .osum-items { list-style: none; margin: 0 0 8px; padding: 0; }
.v2 .osum-items li { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; border-bottom: 1px dashed var(--c-border); }
.v2 .osum-items li .n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 8.10 upozornění */
.v2 .alert-v2 { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: var(--radius-m); font-size: 14px; margin: 0 0 16px; border: 1px solid; }
.v2 .alert-v2 .ico { flex: none; margin-top: 1px; }
.v2 .alert-v2--error { background: var(--c-brand-soft); border-color: #f5c2c4; color: #8a1a1f; }
.v2 .alert-v2--ok { background: var(--c-cta-soft); border-color: #bfe3b5; color: var(--c-ok); }
.v2 .alert-v2--info { background: #eef3ff; border-color: #c7d7fb; color: #1e3a8a; }
.v2 .alert-v2--warn { background: #fff7ed; border-color: #fed7aa; color: #9a3412; }

/* 8.11 chipy, sekce, karty */
.v2 .chip { display: inline-flex; align-items: center; gap: 6px; padding: 0 12px; height: 34px; border-radius: 17px; border: 1px solid var(--c-border-strong); background: #fff; font-size: 14px; white-space: nowrap; color: var(--c-text); }
.v2 .chip:hover { border-color: var(--c-text); color: var(--c-text); }
.v2 .chip.is-active { background: var(--c-dark); border-color: var(--c-dark); color: #fff; }
.v2 .chip .x { opacity: .7; }
.v2 .chips { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 8px; scrollbar-width: none; }
.v2 .chips::-webkit-scrollbar { display: none; }
@media (min-width: 768px) { .v2 .chips { flex-wrap: wrap; overflow: visible; } }
.v2 .sec { padding-top: 24px; padding-bottom: 24px; } /* jen svisle – „sec wrap“ si musí nechat boční gutter z .wrap */
.v2 .sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.v2 .sec-head h2 { margin: 0; }
.v2 .sec-head a.more { font-size: 14px; color: var(--c-info); white-space: nowrap; }
.v2 .card { display: block; background: #fff; border: 1px solid var(--c-border); border-radius: var(--radius-m); padding: 16px; }   /* BS5 .card je flex-column – držíme blokový tok */
@media (min-width: 768px) { .v2 .card { padding: 20px; } }
.v2 .card h2, .v2 .card h3 { margin-top: 0; }
.v2 .divider { border: 0; border-top: 1px solid var(--c-border); margin: 16px 0; }

/* 8.12 lepivá spodní lišta (mobil) */
.v2 .sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; background: #fff; border-top: 1px solid var(--c-border); box-shadow: 0 -6px 20px rgba(16,24,40,.12); padding: 10px var(--gutter); padding-bottom: max(10px, env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 12px; }
.v2 .sheet .price { font-size: 20px; }
.v2 .sheet .btn-v2 { flex: 1; }
@media (min-width: 1024px) { .v2 .sheet { display: none; } }
body.v2-has-sheet { padding-bottom: 76px; }
@media (min-width: 1024px) { body.v2-has-sheet { padding-bottom: 0; } }

/* 8.13 overlay načítání (postbacky) */
.v2-busy { position: fixed; inset: 0; z-index: 3000; background: rgba(255,255,255,.6); display: none; align-items: center; justify-content: center; }
.v2-busy.is-open { display: flex; }
.v2-busy::after { content: ""; width: 44px; height: 44px; border-radius: 50%; border: 4px solid var(--c-border); border-top-color: var(--c-brand); animation: v2spin .8s linear infinite; }

/* 8.14 modal (mini košík po přidání, obecný) */
.v2-modal { position: fixed; inset: 0; z-index: 2500; display: none; align-items: flex-end; justify-content: center; background: rgba(16,24,40,.55); padding: 0; }
.v2-modal.is-open { display: flex; }
.v2-modal-box { background: #fff; width: 100%; max-width: 640px; max-height: 92vh; overflow: auto; border-radius: var(--radius-l) var(--radius-l) 0 0; padding: 18px 16px 20px; position: relative; }
.v2-modal-close { position: absolute; top: 8px; right: 8px; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: var(--c-muted); }
.v2-modal-close:hover { background: var(--c-bg); color: var(--c-text); }
.v2-modal-title { display: flex; align-items: center; gap: 10px; font-family: var(--font-head); font-weight: 700; font-size: 18px; color: var(--c-ok); margin: 0 36px 14px 0; }
.v2-modal-actions { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
@media (min-width: 640px) {
    .v2-modal { align-items: center; padding: 20px; }
    .v2-modal-box { border-radius: var(--radius-l); padding: 24px; }
    .v2-modal-actions { flex-direction: row; justify-content: flex-end; }
}

/* 9. UTILITY ------------------------------------------------------------------ */
.v2 .hide-m { display: none !important; }
@media (min-width: 1024px) { .v2 .hide-m { display: revert !important; } .v2 .hide-d { display: none !important; } }
.v2 .sr-only-v2 { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.v2 .mt-0 { margin-top: 0 !important; } .v2 .mt-2 { margin-top: 8px !important; } .v2 .mt-4 { margin-top: 16px !important; } .v2 .mt-6 { margin-top: 24px !important; }
.v2 .mb-0 { margin-bottom: 0 !important; } .v2 .mb-2 { margin-bottom: 8px !important; } .v2 .mb-4 { margin-bottom: 16px !important; } .v2 .mb-6 { margin-bottom: 24px !important; }
.v2 .text-c { text-align: center; }
.v2 .flex { display: flex; align-items: center; gap: 8px; }
.v2 .flex-wrap { flex-wrap: wrap; }
.v2 .grow { flex: 1; min-width: 0; }

/* 10. LEGACY STRÁNKY UVNITŘ .v2 (login, účet, obsah, porovnání…) + BOOTSTRAP 5 ----- */
/* head-block.htm načítá Bootstrap 5.3 (jen pro legacy stránky, modaly a carousel). Markup legacy šablon je přepsaný
   na třídy BS5 (mb-3, form-label, form-check, input-group-text, visually-hidden, ratio, nav-link, btn-close, data-bs-*).
   Tady je jen to, co BS5 nestyluje (form-group z .aspx stránek, legend, checkboxy z ASP.NET) nebo co chceme jinak. */
.v2 main .container.main-conteiner { max-width: var(--wrap); margin: 0 auto; padding: 16px var(--gutter) 24px; width: auto; }
.v2 main .container-content { padding-top: 16px; }
.v2 main .container-content h1 { margin-bottom: 16px; }
.v2 .btn { --bs-btn-border-radius: var(--radius-s); font-weight: 600; font-size: 16px; }
.v2 .btn-lg { font-size: 17px; padding: 10px 22px; }   /* .v2 input{font:inherit} přebíjí .btn-lg – sjednotit input i a.btn */
.v2 .btn.btn-info, .v2 .btn.btn-primary {
    --bs-btn-bg: var(--c-cta); --bs-btn-border-color: var(--c-cta); --bs-btn-color: #fff;
    --bs-btn-hover-bg: var(--c-cta-hover); --bs-btn-hover-border-color: var(--c-cta-hover); --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: var(--c-cta-hover); --bs-btn-active-border-color: var(--c-cta-hover); --bs-btn-active-color: #fff;
    --bs-btn-focus-shadow-rgb: 47, 143, 30;
    background: var(--c-cta); border-color: var(--c-cta); color: #fff; text-shadow: none; box-shadow: none; background-image: none; border-radius: var(--radius-s) !important;   /* main.css: .btn-info{border-radius:unset !important} */
}
.v2 .btn.btn-info:hover, .v2 .btn.btn-primary:hover { background: var(--c-cta-hover); border-color: var(--c-cta-hover); }
.v2 .btn.btn-info:focus, .v2 .btn.btn-info:active, .v2 .btn.btn-primary:focus, .v2 .btn.btn-primary:active { background-color: var(--c-cta-hover) !important; border-color: var(--c-cta-hover) !important; color: #fff !important; }   /* main.css: .btn-primary:active{background-color:#75a712 !important} */
.v2 main .form-control { border-radius: var(--radius-s); box-shadow: none; height: 42px; }
.v2 main .form-control:focus { border-color: var(--c-info); box-shadow: 0 0 0 3px rgba(29,78,216,.15); }
.v2 main select.form-control { -webkit-appearance: auto; appearance: auto; }   /* BS5 .form-control má appearance:none – select by přišel o šipku */
.v2 main .form-label { font-size: 14px; font-weight: 600; margin-bottom: 4px; }
.v2 main .form-text { font-size: 13px; color: var(--c-muted); margin-top: 4px; }
.v2 main .form-group { margin-bottom: 1rem; }                                    /* complaint.aspx, odstoupeni.aspx – markup je v .aspx, ne v šabloně */
.v2 main legend { float: none; width: 100%; font-family: var(--font-head); font-size: 18px; font-weight: 700; margin: 8px 0 14px; padding: 0 0 6px; border-bottom: 1px solid var(--c-border); }
.v2 main .form-check { padding-left: 0; margin: 6px 0 12px; }
.v2 main .form-check .form-check-label { display: block; padding-left: 28px; cursor: pointer; font-weight: 400; }
.v2 main .form-check input[type="checkbox"] { float: left; width: 18px; height: 18px; margin: 3px 0 0 -28px; accent-color: var(--c-cta); }   /* ASP.NET CheckBox nemá třídu form-check-input – plovoucí jako BS5 .form-check-input */
.v2 main .form-check .form-check-label > label { display: inline; font-weight: 600; margin: 0 4px 0 0; cursor: pointer; }   /* text z Text="" ASP.NET CheckBoxu + text šablony v jednom řádku */
.v2 main .input-group-text { border-radius: var(--radius-s); background: var(--c-bg); color: var(--c-muted); }
.v2 main .input-group-text .ico { width: 18px; height: 18px; }
.v2 main .span-error.alert { display: block; }
.v2 main .nav-tabs .nav-link { color: var(--c-text); font-weight: 600; cursor: pointer; }
.v2 main .navig-main { display: none; }
.v2 .message-error { background: var(--c-brand-soft); border: 1px solid #f5c2c4; color: #8a1a1f; padding: 12px 14px; border-radius: var(--radius-m); margin: 12px 0; }
/* modaly BS5 (Basket.htm #confirm-delete, doModal() v x-main.client.js, náhrada BootstrapDialog v z-dno-v2.js) */
.v2 .modal { --bs-modal-border-radius: var(--radius-m); }
.v2 .btn-close { box-sizing: content-box; }   /* .v2 * má border-box, BS5 počítá s content-box (1.5em klikací plocha) */
.v2 .modal-title { font-family: var(--font-head); font-size: 18px; font-weight: 700; margin: 0; }
.v2 .modal-body { font-size: 15px; }
.v2 .bd-compat .modal-body { white-space: pre-line; }

/* 11. VÝPIS ZBOŽÍ A HLEDÁNÍ ------------------------------------------------------ */
.v2 .plist { padding-top: 4px; padding-bottom: 24px; }
.v2 .cat-head { margin: 8px 0 12px; }
.v2 .cat-title { margin: 0 0 10px; }
.v2 .cat-param { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 500; background: var(--c-bg); border: 1px solid var(--c-border); border-radius: 16px; padding: 2px 10px; margin-left: 8px; vertical-align: middle; font-family: var(--font-body); }
.v2 .cat-param-x { color: var(--c-muted); font-size: 16px; line-height: 1; }
.v2 .cat-desc { position: relative; max-height: 4.6em; overflow: hidden; font-size: 14px; color: var(--c-muted); margin-bottom: 12px; }
.v2 .cat-desc.is-open { max-height: none; }
.v2 .cat-desc-in p { margin: 0 0 .5em; }
.v2 .cat-desc-more { position: absolute; right: 0; bottom: 0; padding: 0 0 0 40px; background: linear-gradient(90deg, rgba(255,255,255,0), #fff 40%); color: var(--c-info); font-size: 14px; }
.v2 .cat-desc.is-open .cat-desc-more { position: static; padding: 0; background: none; }
.v2 .cat-sub { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 8px; }
.v2 .cat-sub-label { font-size: 14px; color: var(--c-muted); }
.v2 .subcats { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 10px; margin: 0; scrollbar-width: none; }
.v2 .subcats::-webkit-scrollbar { display: none; }
.v2 .subcat { display: inline-flex; align-items: center; gap: 8px; flex: none; height: 44px; padding: 0 12px 0 6px; border: 1px solid var(--c-border-strong); border-radius: 22px; background: #fff; font-size: 14px; font-weight: 500; color: var(--c-text); white-space: nowrap; }
.v2 .subcat:hover { border-color: var(--c-text); color: var(--c-text); }
.v2 .subcat-img { width: 34px; height: 34px; border-radius: 50%; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; background: var(--c-bg); flex: none; }
.v2 .subcat-img img { width: 30px; height: 30px; object-fit: contain; }
.v2 .subcat.is-extra { display: none; }
.v2 .subcats.is-open .subcat.is-extra { display: inline-flex; }
.v2 .subcat--more { color: var(--c-info); border-style: dashed; cursor: pointer; }
.v2 .subcats.is-open .subcat--more { display: none; }
@media (min-width: 768px) {
    .v2 .subcats { flex-wrap: wrap; overflow: visible; margin: 0; padding: 0 0 8px; }
    .v2 .subcats--big { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
    .v2 .subcats--big .subcat { height: auto; flex-direction: column; justify-content: center; padding: 12px; border-radius: var(--radius-m); white-space: normal; text-align: center; }
    .v2 .subcats--big .subcat-img { width: 120px; height: 96px; border-radius: var(--radius-s); background: #fff; }
    .v2 .subcats--big .subcat-img img { width: 110px; height: 90px; }
}
@media (min-width: 1024px) { .v2 .subcats--big { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.v2 .cat-banner { margin: 12px 0; }
.v2 .cat-banner img { border-radius: var(--radius-m); width: 100%; }

.v2 .plist-toolbar { display: flex; align-items: center; gap: 8px 12px; flex-wrap: wrap; padding: 10px 0; border-top: 1px solid var(--c-border); border-bottom: 1px solid var(--c-border); margin-bottom: 16px; scroll-margin-top: 120px; }
.v2 .plist-count { font-size: 14px; color: var(--c-muted); margin-right: auto; }
.v2 .plist-count b { color: var(--c-text); font-size: 15px; }
.v2 .plist-sort { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; }
.v2 .plist-sort label { color: var(--c-muted); display: none; }
.v2 .plist-sort-sel { height: 36px; border: 1px solid var(--c-border-strong); border-radius: var(--radius-s); background: #fff; padding: 0 30px 0 10px; font-size: 14px; -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7785' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>"); background-repeat: no-repeat; background-position: right 8px center; }
.v2 .plist-dir { display: inline-flex; align-items: center; gap: 4px; height: 36px; padding: 0 8px; border: 1px solid var(--c-border-strong); border-radius: var(--radius-s); font-size: 13px; color: var(--c-muted); background: #fff; }
.v2 .plist-dir span { display: none; }
.v2 .plist-dir:hover { color: var(--c-text); border-color: var(--c-text); }
.v2 .plist-filterbtn { order: 2; }
@media (min-width: 1024px) { .v2 .plist-sort label { display: inline; } .v2 .plist-dir span { display: inline; } .v2 .plist-filterbtn { display: none; } }
.v2 .plist-filtered { margin-bottom: 16px; }
.v2 .plist-body { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 1024px) { .v2 .plist-body { grid-template-columns: 272px minmax(0, 1fr); gap: 28px; align-items: start; } }
.v2 .plist-main { min-width: 0; }
.v2 .plist-empty { text-align: center; padding: 40px 16px; color: var(--c-muted); }
.v2 .plist-empty .ico { color: var(--c-border-strong); margin-bottom: 12px; }
.v2 .plist-empty h2 { color: var(--c-text); }

/* filtry: desktop sloupec, mobil offcanvas zprava */
.v2 .plist-filters { min-width: 0; }
.v2 .flt { display: flex; flex-direction: column; min-height: 0; }
.v2 .flt-head { display: none; align-items: center; justify-content: space-between; padding: 10px 12px 10px 16px; border-bottom: 1px solid var(--c-border); font-family: var(--font-head); font-weight: 700; font-size: 17px; }
.v2 .flt-foot { display: none; padding: 12px 16px; border-top: 1px solid var(--c-border); background: #fff; }
.v2 .flt-group { padding: 14px 0; border-bottom: 1px solid var(--c-border); }
.v2 .flt-group:first-child { padding-top: 4px; }
.v2 .flt-title { font-family: var(--font-body); font-size: 14px; font-weight: 700; margin: 0 0 8px; }
.v2 .flt-chk { display: flex; align-items: center; gap: 10px; padding: 5px 0; font-size: 14px; cursor: pointer; margin: 0; font-weight: 400; }
.v2 .flt-chk input { width: 18px; height: 18px; margin: 0; accent-color: var(--c-cta); flex: none; }
.v2 .flt-chk .count { margin-left: auto; color: var(--c-muted); font-size: 12px; }
.v2 .flt-group--quick .flt-chk { font-weight: 600; }
.v2 .flt-more { display: inline-block; margin-top: 6px; font-size: 13px; color: var(--c-info); }
.v2 .flt-note { padding: 8px 0; }
.v2 .checkbox-list-next { display: none; }
.v2 .flt-slider { padding: 6px 8px 2px; }
.v2 .flt-range { display: flex; align-items: center; gap: 6px; margin-top: 8px; }
.v2 .flt-range input.form-control { height: 36px; font-size: 14px; padding: 0 8px; width: 100%; min-width: 0; text-align: center; border-radius: var(--radius-s); box-shadow: none; }
.v2 .flt-range-sep, .v2 .flt-range-unit { color: var(--c-muted); font-size: 13px; flex: none; }
.v2 .slider.slider-horizontal { width: 100%; height: 20px; }
.v2 .slider.slider-horizontal .slider-track { height: 4px; margin-top: -2px; background: var(--c-border); box-shadow: none; }
.v2 .slider .slider-selection { background: var(--c-brand); box-shadow: none; }
.v2 .slider .slider-handle { background: #fff; border: 2px solid var(--c-brand); width: 20px; height: 20px; margin-top: -1px; box-shadow: var(--shadow-1); background-image: none; }
.v2 .slider .tooltip { display: none; }
@media (max-width: 1023.98px) {
    .v2 .plist-filters { position: fixed; top: 0; right: 0; bottom: 0; width: min(380px, 90vw); z-index: 2000; background: #fff; transform: translateX(105%); transition: transform .25s ease; box-shadow: var(--shadow-3); }
    .v2 .plist-filters.is-open { transform: none; }
    .v2 .flt { height: 100%; }
    .v2 .flt-head { display: flex; }
    .v2 .flt-body { flex: 1; overflow: auto; padding: 0 16px; -webkit-overflow-scrolling: touch; }
    .v2 .flt-foot { display: block; }
    .v2 .plist-backdrop { position: fixed; inset: 0; background: rgba(16,24,40,.5); z-index: 1999; display: none; }
    .v2 .plist-backdrop.is-open { display: block; }
}
/* main.css (max-width:767px) skrývá #param-search-box → v mobilním šuplíku filtrů by zůstalo jen Skladem/TOP */
@media (max-width: 767px) { .v2 #param-search-box { display: block; } }

/* Doofinder chat bublina (fixed vpravo dole) nesmí překrývat lepivou lištu „Do košíku“ / tlačítko newsletteru */
/* bublina je přímý potomek body (mimo obal .v2) – soubor se načítá jen v nové šabloně, proto selektor bez .v2 */
body > .dfd-chat-bubble { bottom: 72px !important; }
@media (max-width: 1023.98px) { body > .dfd-chat-bubble { bottom: 84px !important; } }

/* stránkování */
.v2 .pager-v2 { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin: 24px 0 8px; }
.v2 .pager-v2 a { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 10px; border: 1px solid var(--c-border-strong); border-radius: var(--radius-s); font-weight: 600; font-size: 14px; color: var(--c-text); background: #fff; }
.v2 .pager-v2 a:hover { border-color: var(--c-text); }
.v2 .pager-v2 a.is-active { background: var(--c-dark); border-color: var(--c-dark); color: #fff; }
.v2 .pager-v2 .pager-btn { gap: 4px; }
.v2 .pager-v2 .pager-dots { color: var(--c-muted); padding: 0 4px; }
.v2 .pager-v2 .pager-info { width: 100%; text-align: center; font-size: 13px; color: var(--c-muted); margin-top: 4px; }

/* doplňky karty */
/* nálepky jsou uvnitř a.pcard-img → levý dolní roh obrázku, nepřekrývají tlačítko */
.v2 .pcard-img .pcard-stickers { position: absolute; left: 4px; bottom: 4px; display: flex; gap: 4px; z-index: 2; pointer-events: none; }
.v2 .pcard-img .pcard-stickers img { width: 44px; height: 44px; object-fit: contain; }
@media (max-width: 479.98px) { .v2 .pcard-img .pcard-stickers img { width: 36px; height: 36px; } }
.v2 .pcard-img { position: relative; }
/* dárek je před .pcard-avail (nad margin-top:auto) */
.v2 .pcard-gift { display: flex; gap: 6px; align-items: flex-start; margin: 0 0 8px; font-size: 12px; color: var(--c-warn); line-height: 1.3; }
.v2 .pcard-gift .ico { flex: none; margin-top: 1px; }
.v2 .pcard-gift span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.v2 .tag--akce { background: var(--c-brand-soft); color: var(--c-brand-dark); }
.v2 .pcard .porovnat2.selected { color: var(--c-brand); }
.v2 .pcard .compare-loading { display: none; }
.v2 #primaryProductList { border-left: 0; padding: 0; margin: 0; }

/* 12. ÚVODNÍ STRÁNKA ------------------------------------------------------------- */
.v2 .hp-hero { padding-top: 12px; }
.v2 .hp-carousel { border-radius: var(--radius-m); overflow: hidden; background: var(--c-bg); }
.v2 .hp-carousel .carousel-inner { margin: 0 !important; }
.v2 .hp-carousel .carousel-item img { width: 100%; height: auto; display: block; }
.v2 .carousel-indicators { list-style: none; }   /* WebAdmin generuje ol/li – BS5 počítá s button */
.v2 .hp-carousel .carousel-indicators { bottom: 6px; left: 0; right: 0; width: auto; margin: 0 15%; padding: 0; }   /* main.css dává left:auto + width:100% – jinak tečky ujedou doleva */
.v2 .hp-carousel .carousel-inner > .item:not(.carousel-item):not(.active) { display: none; }   /* BS3 markup z WebAdminu před upgradeCarousels() – bez bliknutí všech bannerů */
.v2 .hp-carousel .carousel-indicators [data-bs-target] { box-sizing: border-box; width: 8px; height: 8px; margin: 0 3px; padding: 0; border: 0; border-radius: 4px; background: rgba(255,255,255,.6); box-shadow: 0 0 2px rgba(0,0,0,.4); opacity: 1; text-indent: -999px; transition: width .2s; }
.v2 .hp-carousel .carousel-indicators .active { width: 20px; background: #fff; }
.v2 .hp-carousel-ctl { width: 44px; background: none !important; opacity: 1; text-shadow: none; display: none; align-items: center; justify-content: center; border: 0; padding: 0; }
.v2 .hp-carousel-ctl .ico { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.9); color: var(--c-text); padding: 6px; box-shadow: var(--shadow-1); }
.v2 .hp-carousel-ctl:hover .ico { background: #fff; }
@media (min-width: 768px) { .v2 .hp-hero { padding-top: 20px; } .v2 .hp-carousel-ctl { display: flex; } .v2 .hp-carousel { border-radius: var(--radius-l); } }
.v2 .hp-usp { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; padding-top: 14px; padding-bottom: 6px; }
.v2 .hp-usp-item { display: flex; align-items: center; gap: 10px; font-size: 12px; line-height: 1.3; }
.v2 .hp-usp-item .ico { width: 26px; height: 26px; color: var(--c-cta); }
.v2 .hp-usp-item b { display: block; font-size: 13px; font-weight: 600; }
.v2 .hp-usp-item span { color: var(--c-muted); display: none; }
@media (min-width: 768px) { .v2 .hp-usp { grid-template-columns: repeat(4, 1fr); padding-top: 20px; } .v2 .hp-usp-item span { display: block; } .v2 .hp-usp-item b { font-size: 14px; } .v2 .hp-usp-item { font-size: 13px; } }
.v2 .hp-cats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 600px) { .v2 .hp-cats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; } }
.v2 .hp-cat { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 10px 12px; border: 1px solid var(--c-border); border-radius: var(--radius-m); background: #fff; text-align: center; transition: box-shadow .15s, border-color .15s; }
.v2 .hp-cat:hover { box-shadow: var(--shadow-2); border-color: var(--c-border-strong); color: var(--c-brand); }
.v2 .hp-cat-img { width: 100%; aspect-ratio: 1 / 1; max-width: 160px; display: flex; align-items: center; justify-content: center; }
.v2 .hp-cat-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.v2 .hp-cat-name { font-weight: 600; font-size: 15px; }
.v2 .hp-cat-badge { position: absolute; top: 10px; left: 10px; }
.v2 .hp-products .sec-head h2 { font-size: 20px; }
@media (min-width: 768px) { .v2 .hp-products .sec-head h2 { font-size: 24px; } }
.v2 .hp-promo { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 768px) { .v2 .hp-promo { grid-template-columns: 1fr 1fr; gap: 16px; } }
.v2 .hp-promo-item img { width: 100%; border-radius: var(--radius-m); display: block; }
.v2 .hp-brands-strip { display: flex; gap: 10px; overflow-x: auto; padding: 4px 0 10px; scrollbar-width: thin; }
.v2 .hp-brands-strip .hp-brand { flex: none; width: 120px; height: 64px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--c-border); border-radius: var(--radius-s); background: #fff; padding: 8px; }
.v2 .hp-brands-strip img { max-width: 100%; max-height: 100%; object-fit: contain; }
@media (min-width: 1024px) { .v2 .hp-brands-strip { flex-wrap: wrap; overflow: visible; } .v2 .hp-brands-strip .hp-brand { width: calc((100% - 9 * 10px) / 9); } }
.v2 .hp-why-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 768px) { .v2 .hp-why-grid { grid-template-columns: repeat(3, 1fr); gap: 20px; } }
.v2 .hp-why-item { background: var(--c-bg); border-radius: var(--radius-m); padding: 20px; }
.v2 .hp-why-item .ico { color: var(--c-brand); margin-bottom: 10px; }
.v2 .hp-why-item h3 { margin-bottom: 6px; }
.v2 .hp-why-item p { margin: 0; font-size: 14px; color: var(--c-muted); }
.v2 .hp .sec { padding-top: 18px; padding-bottom: 18px; }
@media (min-width: 768px) { .v2 .hp .sec { padding-top: 26px; padding-bottom: 26px; } }
/* mobil: vodorovný pás karet až ke krajům displeje (přes gutter), první karta zarovnaná s nadpisem */
@media (max-width: 767.98px) { .v2 .hp .pstrip { margin-left: calc(-1 * var(--gutter)); margin-right: calc(-1 * var(--gutter)); padding-left: var(--gutter); padding-right: var(--gutter); scroll-padding-left: var(--gutter); } }
/* dlaždice kategorií na mobilu 3 na řádek */
@media (max-width: 599.98px) {
    .v2 .hp-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
    .v2 .hp-cat { padding: 10px 6px 8px; gap: 6px; }
    .v2 .hp-cat-name { font-size: 13px; line-height: 1.2; overflow-wrap: anywhere; }
    .v2 .hp-cat-badge { top: 6px; left: 6px; font-size: 10px; }
}
/* recenze Heureky na úvodce – kontejner (vnitřek plní v2-recenze.js, styly karet v css/v2-recenze.css) */
.v2 .hp-recenze { padding: 22px 0; margin: 8px 0; background: var(--c-bg); }
.v2 .hp-recenze h2 { font-size: 20px; margin: 0 0 12px; }
.v2 .hp-recenze-fallback { margin: 0; color: var(--c-muted); font-size: 14px; }
.v2 .hp-recenze-fallback a { font-weight: 600; }
@media (min-width: 768px) { .v2 .hp-recenze { padding: 32px 0; margin: 12px 0; } .v2 .hp-recenze h2 { font-size: 24px; } }

/* 13. DETAIL PRODUKTU ------------------------------------------------------------ */
.v2 .pd { padding-top: 6px; padding-bottom: 24px; }
.v2 .pd-top { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 768px) { .v2 .pd-top { grid-template-columns: 1fr 1fr; gap: 24px; grid-template-areas: "gallery info" "buy buy"; } .v2 .pd-gallery { grid-area: gallery; } .v2 .pd-info { grid-area: info; } .v2 .pd-buy { grid-area: buy; } }
@media (min-width: 1024px) { .v2 .pd-top { grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) 340px; grid-template-areas: "gallery info buy"; gap: 28px; align-items: start; } }
@media (min-width: 1280px) { .v2 .pd-top { grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) 380px; } }
/* galerie */
.v2 .pd-gallery { position: relative; min-width: 0; }
.v2 .pd-main { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: var(--radius-m); background: #fff; aspect-ratio: 1 / 1; -webkit-overflow-scrolling: touch; }
.v2 .pd-main::-webkit-scrollbar { display: none; }
.v2 .pd-slide { flex: 0 0 100%; scroll-snap-align: start; display: flex; align-items: center; justify-content: center; padding: 8px; }
.v2 .pd-slide img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.v2 .pd-thumbs { display: flex; gap: 8px; overflow-x: auto; padding: 10px 2px 4px; scrollbar-width: none; }
.v2 .pd-thumbs::-webkit-scrollbar { display: none; }
.v2 .pd-thumb { flex: none; width: 64px; height: 64px; border: 2px solid var(--c-border); border-radius: var(--radius-s); background: #fff; padding: 3px; display: flex; align-items: center; justify-content: center; }
.v2 .pd-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.v2 .pd-thumb.is-active { border-color: var(--c-brand); }
.v2 .pd-tags { position: absolute; top: 10px; left: 10px; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; z-index: 2; }
.v2 .pd-tags .tag { font-size: 13px; padding: 3px 10px; }
.v2 .pd-stickers { position: absolute; right: 10px; top: 10px; display: flex; flex-direction: column; gap: 4px; z-index: 2; }
.v2 .pd-stickers img { width: 56px; height: 56px; object-fit: contain; }
.v2 .pd-gallery-actions { display: flex; gap: 12px; padding-top: 6px; font-size: 13px; }
.v2 .pd-gallery-actions a { display: inline-flex; align-items: center; gap: 4px; color: var(--c-muted); }
.v2 .pd-gallery-actions a:hover, .v2 .pd-gallery-actions a.selected { color: var(--c-brand); }
/* info */
.v2 .pd-info { min-width: 0; }
.v2 .pd-title { font-size: 22px; margin-bottom: 8px; }
@media (min-width: 768px) { .v2 .pd-title { font-size: 26px; } }
.v2 .pd-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: 13px; color: var(--c-muted); margin-bottom: 12px; }
.v2 .pd-brand { font-weight: 600; color: var(--c-text); text-transform: uppercase; letter-spacing: .03em; }
.v2 .pd-rating { display: inline-flex; align-items: center; gap: 4px; }
.v2 .pd-desc { font-size: 15px; color: var(--c-text); margin-bottom: 14px; }
.v2 .pd-keyparams { list-style: none; margin: 0 0 16px; padding: 0; font-size: 14px; border-top: 1px solid var(--c-border); }
.v2 .pd-keyparams li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--c-border); }
.v2 .pd-keyparams .k { color: var(--c-muted); }
.v2 .pd-keyparams .v { font-weight: 600; text-align: right; }
.v2 .pd-keyparams li.more { justify-content: flex-end; border-bottom: 0; }
.v2 .pd-keyparams li.more a { color: var(--c-info); font-size: 13px; }
.v2 .pd-promo { display: block; margin: 0 0 12px; }
.v2 .pd-promo img { border-radius: var(--radius-s); }
.v2 .pd-docs-inline { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.v2 .pd-doc { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; padding: 6px 10px; border: 1px solid var(--c-border-strong); border-radius: var(--radius-s); color: var(--c-text); }
.v2 .pd-doc:hover { border-color: var(--c-text); }
/* buybox */
.v2 .pd-buy { min-width: 0; }
@media (min-width: 1024px) { .v2 .pd-buy { position: sticky; top: 16px; } }
.v2 .buybox { border: 1px solid var(--c-border); border-radius: var(--radius-m); padding: 16px; background: #fff; box-shadow: var(--shadow-1); }
@media (min-width: 768px) { .v2 .buybox { padding: 20px; } }
.v2 .buybox-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.v2 .buybox-price .price--xl { font-size: 30px; }
.v2 .buybox .price-note { margin: 4px 0 12px; }
.v2 .buybox-avail { display: flex; flex-direction: column; gap: 3px; margin-bottom: 14px; font-size: 14px; }
.v2 .buybox-avail .avail { font-size: 15px; }
.v2 .avail-pickup { display: inline-flex; align-items: center; gap: 4px; color: var(--c-muted); font-size: 13px; }
.v2 .buybox-cta { display: flex; gap: 10px; margin-bottom: 14px; }
.v2 .buybox-cta .qty { flex: none; height: 52px; }
.v2 .buybox-cta .qty input { width: 48px; }
.v2 .buybox-cta .btn-v2 { flex: 1; min-width: 0; }
.v2 .buybox-ship { list-style: none; margin: 0 0 12px; padding: 12px 0 4px; border-top: 1px solid var(--c-border); font-size: 13px; color: var(--c-muted); }
.v2 .buybox-ship li { display: flex; gap: 8px; align-items: flex-start; padding: 3px 0; }
.v2 .buybox-ship .ico { color: var(--c-cta); flex: none; margin-top: 1px; }
.v2 .buybox-ship b { color: var(--c-text); font-weight: 600; }
.v2 .buybox-ship-more a { color: var(--c-info); }
.v2 .buybox-splatky { border-top: 1px solid var(--c-border); padding: 12px 0 4px; font-size: 14px; }
.v2 .buybox-splatky-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.v2 .buybox-splatky .price-note { margin: 6px 0 0; }
.v2 .buybox-skippay { border-top: 1px solid var(--c-border); padding: 10px 0 4px; }
.v2 .buybox-trust { list-style: none; margin: 0; padding: 12px 0 0; border-top: 1px solid var(--c-border); display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; font-size: 12px; color: var(--c-muted); }
.v2 .buybox-trust li { display: flex; gap: 6px; align-items: center; }
.v2 .buybox-trust .ico { color: var(--c-muted); }
.v2 .buybox-trust a { color: var(--c-ok); font-weight: 600; }
/* kotvy */
.v2 .pd-nav { position: sticky; top: 0; z-index: 50; display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; margin: 20px 0 8px; padding: 6px 0; background: rgba(255,255,255,.96); border-top: 1px solid var(--c-border); border-bottom: 1px solid var(--c-border); backdrop-filter: blur(4px); }
.v2 .pd-nav::-webkit-scrollbar { display: none; }
.v2 .pd-nav a { flex: none; padding: 8px 14px; border-radius: var(--radius-s); font-weight: 600; font-size: 14px; color: var(--c-text); white-space: nowrap; }
.v2 .pd-nav a:hover, .v2 .pd-nav a.is-active { background: var(--c-bg); color: var(--c-brand); }
.v2 .pd-nav .pd-nav-right { margin-left: auto; color: var(--c-muted); font-weight: 500; }
@media (max-width: 1023.98px) { .v2 .pd-nav { top: 108px; } }
/* sekce */
.v2 .pd-sec { padding: 20px 0 8px; scroll-margin-top: 70px; }
@media (max-width: 1023.98px) { .v2 .pd-sec { scroll-margin-top: 170px; } }
.v2 .pd-sec > h2 { margin-bottom: 14px; }
.v2 .pstrip--alt .pcard-name { min-height: 0; }
.v2 .pd-args { display: flex; flex-direction: column; gap: 18px; margin-bottom: 20px; }
.v2 .pd-arg { display: grid; grid-template-columns: 1fr; gap: 12px; align-items: center; background: var(--c-bg); border-radius: var(--radius-m); padding: 16px; }
@media (min-width: 768px) { .v2 .pd-arg { grid-template-columns: 220px 1fr; gap: 24px; } .v2 .pd-args .pd-arg:nth-child(even):not(.pd-arg--video) { grid-template-columns: 1fr 220px; } .v2 .pd-args .pd-arg:nth-child(even):not(.pd-arg--video) .pd-arg-img { order: 2; } }
.v2 .pd-arg-img img { width: 100%; border-radius: var(--radius-s); }
.v2 .pd-arg-text h3 { margin-bottom: 6px; }
.v2 .pd-arg-text p { margin: 0; font-size: 15px; }
.v2 .pd-arg--video { display: block; }
.v2 .pd-video { aspect-ratio: 16 / 9; border-radius: var(--radius-s); overflow: hidden; }
.v2 .pd-video iframe { width: 100%; height: 100%; border: 0; }
.v2 .pd-longtext { font-size: 15px; max-width: 900px; }
.v2 .pd-longtext img { height: auto; }
.v2 .pd-longtext h2, .v2 .pd-longtext h3 { margin-top: 1.2em; }
.v2 .pd-longtext table { max-width: 100%; }
.v2 .pd-nalepky { display: flex; flex-direction: column; gap: 12px; margin-top: 20px; }
.v2 .pd-nalepka { display: flex; gap: 16px; align-items: flex-start; border: 1px solid var(--c-border); border-radius: var(--radius-m); padding: 14px; font-size: 14px; scroll-margin-top: 80px; }
.v2 .pd-nalepka img { width: 90px; height: 90px; object-fit: contain; flex: none; }
.v2 .pd-nalepka h3 { margin-bottom: 4px; }
.v2 .pd-params { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 1024px) { .v2 .pd-params { grid-template-columns: 1fr 1fr; align-items: start; } }
.v2 .pd-params-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.v2 .pd-params-table caption { text-align: left; font-family: var(--font-head); font-weight: 700; font-size: 15px; padding: 6px 0 8px; caption-side: top; }
.v2 .pd-params-table th, .v2 .pd-params-table td { padding: 8px 10px; border-bottom: 1px solid var(--c-border); vertical-align: top; text-align: left; }
.v2 .pd-params-table th { width: 50%; font-weight: 500; color: var(--c-muted); background: var(--c-bg); }
.v2 .pd-params-table td { font-weight: 600; }
.v2 .pd-params-table td a { color: var(--c-info); }
.v2 .pd-help { display: inline-flex; width: 16px; height: 16px; border-radius: 50%; background: var(--c-border); color: var(--c-muted); font-size: 11px; align-items: center; justify-content: center; cursor: help; }
.v2 .pd-doc .ico { color: var(--c-cta); }
/* Dokumenty ke stazeni - karty (ikona v podbarvenem ctverci, nazev, typ souboru, sipka) */
.v2 .pd-docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.v2 .pd-doc-card { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid var(--c-border); border-radius: var(--radius-m); background: var(--c-surface); color: var(--c-text); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.v2 .pd-doc-card:hover, .v2 .pd-doc-card:focus-visible { border-color: var(--c-cta); box-shadow: var(--shadow-1); color: var(--c-text); text-decoration: none; }
.v2 .pd-doc-ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--radius-s); background: var(--c-cta-soft); color: var(--c-cta); }
.v2 .pd-doc-ico .ico { width: 22px; height: 22px; }
.v2 .pd-doc-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.v2 .pd-doc-name { font-family: var(--font-head); font-weight: 700; font-size: 14px; line-height: 1.3; }
.v2 .pd-doc-meta { font-size: 12px; color: var(--c-muted); }
.v2 .pd-doc-arr { flex: none; margin-left: auto; width: 18px; height: 18px; color: var(--c-muted); transition: transform .15s, color .15s; }
.v2 .pd-doc-card:hover .pd-doc-arr { color: var(--c-cta); transform: translateX(3px); }
.v2 .pd-rating-box { display: flex; flex-direction: column; gap: 10px; background: var(--c-bg); border-radius: var(--radius-m); padding: 16px; max-width: 560px; }
.v2 .pd-rating-big { font-family: var(--font-head); font-size: 22px; }
.v2 .pd-rating-big b { font-size: 34px; }
.v2 .pd-vote { display: flex; align-items: center; gap: 10px; }
.v2 .stars--vote a { color: var(--c-border-strong); display: inline-flex; }
.v2 .stars--vote a .ico { width: 22px; height: 22px; }
.v2 .stars--vote:hover a { color: #f59e0b; }
.v2 .stars--vote a:hover ~ a { color: var(--c-border-strong); }
.v2 .pd-sheet .price { font-size: 18px; }
.v2 .pd-sheet .sheet-avail { font-weight: 600; }
.v2 .pd-sheet .sheet-avail--ok { color: var(--c-ok); }

/* 14. KOŠÍK A OBJEDNÁVKA --------------------------------------------------------- */
.v2 .bk { padding-top: 8px; padding-bottom: 32px; }
.v2 .bk-steps { margin: 10px 0 20px; }
.v2 .bk-grid, .v2 .bk-finish-grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 1024px) { .v2 .bk-grid, .v2 .bk-finish-grid { grid-template-columns: minmax(0, 1fr) 360px; gap: 32px; align-items: start; } .v2 .bk-side { position: sticky; top: 16px; } }
.v2 .bk-main { min-width: 0; }
.v2 .bk-title { margin-bottom: 14px; }
.v2 .bk-title-n { font-weight: 400; color: var(--c-muted); font-size: .65em; }
.v2 .bk-items { border-top: 1px solid var(--c-border); }
.v2 .bk-item { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; grid-template-areas: "img body del" "img qty price"; gap: 8px 12px; padding: 14px 0; border-bottom: 1px solid var(--c-border); align-items: center; }
.v2 .bk-item-img { grid-area: img; width: 72px; height: 72px; border: 1px solid var(--c-border); border-radius: var(--radius-s); display: flex; align-items: center; justify-content: center; background: #fff; overflow: hidden; }
.v2 .bk-item-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.v2 .bk-item-body { grid-area: body; min-width: 0; }
.v2 .bk-item-name { display: block; font-weight: 600; font-size: 15px; color: var(--c-text); }
.v2 .bk-item-avail { font-size: 13px; display: flex; gap: 8px; flex-wrap: wrap; margin-top: 2px; }
.v2 .bk-item-gift { font-size: 13px; color: var(--c-warn); margin-top: 2px; }
.v2 .bk-item-unit { margin-top: 2px; }
.v2 .bk-item-qty { grid-area: qty; }
.v2 .bk-item-price { grid-area: price; text-align: right; }
.v2 .bk-item-price .price-novat { display: block; font-weight: 400; white-space: nowrap; }
.v2 .bk-item-del { grid-area: del; justify-self: end; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-s); color: var(--c-muted); }
.v2 .bk-item-del:hover { color: var(--c-brand); background: var(--c-brand-soft); }
.v2 .bk-item--voucher .bk-item-img { color: var(--c-brand); border-style: dashed; }
@media (min-width: 768px) { .v2 .bk-item { grid-template-columns: 88px minmax(0, 1fr) 130px 130px 40px; grid-template-areas: "img body qty price del"; } .v2 .bk-item-img { width: 88px; height: 72px; } }
.v2 .bk-items--summary .bk-item { grid-template-columns: 64px minmax(0, 1fr) auto; grid-template-areas: "img body price"; }
.v2 .bk-items--summary .bk-item-img { width: 64px; height: 56px; }
.v2 .bk-voucher { margin: 14px 0; }
.v2 .bk-voucher-link { font-size: 14px; color: var(--c-info); display: inline-flex; align-items: center; gap: 4px; }
.v2 .bk-voucher-body { display: none; gap: 8px; margin-top: 10px; max-width: 420px; }
.v2 .bk-voucher.is-open .bk-voucher-body { display: flex; }
.v2 .bk-voucher-body .in-v2 { flex: 1; min-width: 0; }
.v2 .bk-voucher-msg { font-size: 13px; color: var(--c-brand); margin-top: 6px; }
.v2 .bk-perks { list-style: none; margin: 18px 0; padding: 14px 16px; background: var(--c-bg); border-radius: var(--radius-m); display: grid; grid-template-columns: 1fr; gap: 8px; font-size: 14px; }
.v2 .bk-perks li { display: flex; gap: 8px; align-items: center; }
.v2 .bk-perks .ico { color: var(--c-cta); flex: none; }
@media (min-width: 768px) { .v2 .bk-perks { grid-template-columns: 1fr 1fr; } }
.v2 .bk-nav { display: flex; flex-direction: column-reverse; gap: 12px; margin-top: 20px; }
.v2 .bk-nav .btn-v2 { width: 100%; }
@media (min-width: 600px) { .v2 .bk-nav { flex-direction: row; justify-content: space-between; align-items: center; } .v2 .bk-nav .btn-v2 { width: auto; } }
.v2 .bk-back { display: inline-flex; align-items: center; justify-content: center; gap: 6px; color: var(--c-muted); font-size: 14px; }
.v2 .bk-back:hover { color: var(--c-text); }
.v2 .bk-empty { text-align: center; padding: 40px 16px; }
.v2 .bk-empty .ico { color: var(--c-border-strong); margin-bottom: 12px; }
.v2 .is-free { color: var(--c-ok); font-weight: 600; }
/* souhrn: na mobilu sbalený */
.v2 .osum-toggle { display: none; width: 100%; justify-content: space-between; align-items: center; gap: 8px; font-weight: 600; font-size: 15px; text-align: left; }
.v2 .osum-toggle .ico { transition: transform .2s; }
.v2 .osum-items li .r { white-space: nowrap; }
.v2 .osum-trust { list-style: none; margin: 12px 0 0; padding: 12px 0 0; border-top: 1px solid var(--c-border); font-size: 13px; color: var(--c-muted); display: flex; flex-direction: column; gap: 6px; }
.v2 .osum-trust li { display: flex; gap: 8px; align-items: center; }
.v2 .osum-trust .ico { color: var(--c-ok); flex: none; }
.v2 .osum-trust a { color: var(--c-text); font-weight: 600; }
.v2 .osum-note { margin-top: 6px; }
@media (max-width: 1023.98px) {
    .v2 .osum-toggle { display: flex; }
    .v2 .osum-body { display: none; padding-top: 12px; }
    .v2 .osum-body h3 { display: none; }
    .v2 .osum.is-open .osum-body { display: block; }
    .v2 .osum.is-open .osum-toggle .ico { transform: rotate(180deg); }
    .v2 .osum-trust { display: none; }
    .v2 .bk-side { order: -1; }
}
/* formulář */
.v2 .bk-card { margin-bottom: 16px; }
/* ajaxová změna dopravy/platby na kroku 3 (z-dno-v2.js initStep3): měněné bloky se jen ztlumí, bez celostránkového overlaye */
.v2 .bk.is-busy { cursor: progress; }
.v2 .bk-card.is-busy, .v2 .osum.is-busy { opacity: .55; pointer-events: none; transition: opacity .15s; }
.v2 .bk-card-title { font-size: 18px; margin-bottom: 14px; display: flex; align-items: center; gap: 10px; }
.v2 .bk-num { width: 28px; height: 28px; border-radius: 50%; background: var(--c-dark); color: #fff; font-size: 14px; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.v2 .bk-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.v2 .bk-card-head .bk-card-title { margin-bottom: 10px; }
.v2 .bk-edit { font-size: 14px; color: var(--c-info); display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.v2 .bk-form .fld-row { gap: 0 14px; }
.v2 .bk-form-errors { margin-bottom: 16px; }
.v2 .bk-form-errors ul { margin: 6px 0 0; padding-left: 18px; font-size: 13px; }
.v2 .chk--toggle { padding: 12px 0; border-top: 1px solid var(--c-border); margin: 0; align-items: center; }
.v2 .chk--toggle:first-child { border-top: 0; padding-top: 0; }
.v2 .chk--toggle input { margin-top: 0; }
.v2 .bk-sub { padding: 4px 0 10px 30px; }
.v2 .chk.is-error { color: var(--c-brand); }
.v2 #chk-op-err { display: none; margin: -6px 0 10px 30px; }
.v2 .bk-req-note { margin-top: 8px; }
.v2 .bk-nav .pouze-rychla-objednavka { display: none; }
/* doprava a platba */
.v2 .optcards { display: flex; flex-direction: column; }
.v2 label.optcard { font-weight: 400; }
.v2 .optcard-body, .v2 .optcard-name, .v2 .optcard-desc { display: block; }
.v2 .optcard-name { font-weight: 600; }
.v2 .optcard-links { display: block; font-size: 12px; margin-top: 4px; }
.v2 .optcard-links a { color: var(--c-info); }
.v2 .optcard-logo .ico { color: var(--c-muted); }
.v2 .pickup-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.v2 .pickup-selected { flex: 1; min-width: 200px; font-size: 14px; }
.v2 .optcard-sub .fld { margin-bottom: 8px; }
.v2 .optcard-sub .chk { margin: 6px 0; }
/* shrnutí */
.v2 .bk-dl { display: grid; grid-template-columns: 1fr; gap: 6px 16px; margin: 0; font-size: 14px; }
.v2 .bk-dl dt { color: var(--c-muted); display: flex; gap: 6px; align-items: center; }
.v2 .bk-dl dd { margin: 0 0 6px; }
@media (min-width: 600px) { .v2 .bk-dl { grid-template-columns: 130px 1fr; } }
.v2 .bk-dl-price { margin-left: 8px; font-weight: 600; white-space: nowrap; }
.v2 .bk-pickup { margin-top: 4px; font-size: 14px; }
.v2 .bk-missing { color: var(--c-brand); font-weight: 600; }
.v2 .bk-addr { display: grid; grid-template-columns: 1fr; gap: 12px; font-size: 14px; }
.v2 .bk-addr h3 { font-size: 15px; margin-bottom: 4px; }
.v2 .bk-addr p { margin: 0; }
@media (min-width: 768px) { .v2 .bk-addr { grid-template-columns: 1fr 1fr; } }
.v2 .bk-submit { margin-top: 8px; }
.v2 .bk-submit .bk-nav { margin-top: 8px; }
.v2 input.bk-submit-btn { -webkit-appearance: none; appearance: none; }
/* děkovačka */
.v2 .bk-finish-head { text-align: center; max-width: 720px; margin: 16px auto 24px; }
.v2 .bk-finish-ico { display: inline-flex; width: 72px; height: 72px; border-radius: 50%; background: var(--c-cta-soft); color: var(--c-ok); align-items: center; justify-content: center; margin-bottom: 12px; }
.v2 .bk-finish-no { font-size: 16px; }
.v2 .bk-next { list-style: none; counter-reset: n; margin: 0; padding: 0; display: grid; gap: 12px; }
.v2 .bk-next li { display: grid; grid-template-columns: 32px 1fr; gap: 2px 12px; }
.v2 .bk-next li::before { counter-increment: n; content: counter(n); width: 32px; height: 32px; border-radius: 50%; background: var(--c-dark); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; grid-row: span 2; }
.v2 .bk-next li b { display: block; }
.v2 .bk-next li span { font-size: 14px; color: var(--c-muted); }
.v2 .bk-qr-grid { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: start; }
@media (min-width: 600px) { .v2 .bk-qr-grid { grid-template-columns: 220px 1fr; } }
.v2 #qrPlatbaBox { width: 200px; height: 200px; }
.v2 .bk-qr-loading { width: 200px; height: 200px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid var(--c-border); background: var(--c-bg); font-size: 12px; color: var(--c-muted); gap: 8px; }
.v2 .bk-dl--compact { grid-template-columns: 140px 1fr; }
/* stav objednávky */
.v2 .bk-status-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px 20px; margin: 12px 0 18px; padding-bottom: 14px; border-bottom: 1px solid var(--c-border); }
.v2 .bk-status-no { margin: 2px 0; font-size: 26px; }
@media (min-width: 768px) { .v2 .bk-status-no { font-size: 32px; } }
.v2 .bk-status-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.v2 .status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 18px; background: var(--c-bg); border: 1px solid var(--c-border); font-weight: 600; font-size: 14px; }
.v2 .status-badge.is-paid { background: var(--c-cta-soft); border-color: #bfe3b5; color: var(--c-ok); }
.v2 .status-badge.is-wait { background: #fff7ed; border-color: #fed7aa; color: #9a3412; }
.v2 .bk-items--noimg .bk-item-img { color: var(--c-muted); background: var(--c-bg); border: 0; }

/* platební brána (Comgate .htm) */
.v2 .pay-page { max-width: 720px; margin: 0 auto; padding: 16px var(--gutter) 32px; }
.v2 .pay-page .card { margin-top: 16px; }
.v2 .pay-page table td { padding: 4px 12px 4px 0; }
.v2 .pay-page .hodnota { font-weight: 600; }
.v2 .pay-page .gopaybtn, .v2 .pay-page input[type="submit"] { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 28px; background: var(--c-cta); color: #fff; border: 0; border-radius: var(--radius-s); font-weight: 600; font-size: 16px; text-transform: none; margin-top: 16px; cursor: pointer; }
/* firemní nákup nahoře v kartě údajů (BasketList-Step2.xslt .bk-firma): nenápadný řádek s přepínačem pod nadpisem, po zaškrtnutí IČO/DIČ/název; od kontaktních polí oddělen linkou */
.v2 .bk-firma { margin: -4px 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--c-border); }
.v2 .bk-firma .chk--toggle { border-top: 0; padding: 0; }
.v2 .bk-firma .bk-sub { padding: 14px 0 0 30px; }
.v2 .bk-firma .bk-sub > .fld:last-child { margin-bottom: 0; }

/* ===== hub kategorie (DisplayProductList=0, SubCategoryBar.xslt .cat-head--hub): dlaždice podkategorií, bez prázdného výpisu a filtrů ===== */
.v2 .plist:has(.cat-head--hub) .plist-body { display: none; }
.v2 .plist:has(.cat-head--hub) .cat-head { margin-bottom: 8px; }
.v2 .hub-grid { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 8px 0 12px; }
/* dlaždice: bez rámečku, měkký stín, obrázek na světlé podložce (mix-blend-mode schová bílé pozadí starých PNG), hover = nadzvednutí */
.v2 .hub-tile { position: relative; display: flex; flex-direction: column; background: var(--c-surface); border-radius: var(--radius-l); box-shadow: 0 0 0 1px rgba(16, 24, 40, .06), var(--shadow-1); transition: box-shadow .2s ease, transform .2s ease; }
.v2 .hub-tile:hover { box-shadow: 0 0 0 1px rgba(16, 24, 40, .04), var(--shadow-2); transform: translateY(-2px); }
.v2 .hub-tile.is-extra { display: none; }
.v2 .hub-grid.is-open .hub-tile.is-extra { display: flex; }
.v2 .hub-grid.is-open .hub-tile--more { display: none; }
.v2 .hub-tile-main { display: flex; align-items: center; gap: 14px; padding: 10px 14px 10px 10px; color: var(--c-text); }
.v2 .hub-tile-main::after { content: ""; width: 9px; height: 9px; border-right: 2px solid var(--c-border-strong); border-bottom: 2px solid var(--c-border-strong); transform: rotate(-45deg); margin-left: auto; flex: none; transition: border-color .15s, transform .2s; }
.v2 .hub-tile:hover .hub-tile-main::after { border-color: var(--c-brand); transform: rotate(-45deg) translate(2px, 2px); }
.v2 .hub-tile:hover .hub-tile-name { color: var(--c-brand); }
.v2 .hub-tile-img { display: flex; align-items: center; justify-content: center; flex: none; width: 68px; height: 68px; border-radius: 14px; background: var(--c-bg); overflow: hidden; transition: background .2s; }
.v2 .hub-tile:hover .hub-tile-img { background: #eef1f5; }
.v2 .hub-tile-img img { max-width: 82%; max-height: 82%; width: auto; height: auto; object-fit: contain; mix-blend-mode: multiply; transition: transform .25s ease; }
.v2 .hub-tile:hover .hub-tile-img img { transform: scale(1.06); }
.v2 .hub-tile-ph { width: 28px; height: 28px; color: var(--c-border-strong); }
.v2 .hub-tile-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.v2 .hub-tile-name { font-family: var(--font-head); font-weight: 600; font-size: 15px; line-height: 1.3; letter-spacing: -.01em; transition: color .15s; }
.v2 .hub-tile-count { font-size: 12.5px; color: var(--c-muted); }
/* podkategorie 3. úrovně jako štítky (chips), pod názvem a počtem */
.v2 .hub-tile-links { display: none; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0 16px 16px; }
.v2 .hub-tile-links li { max-width: 100%; min-width: 0; }
.v2 .hub-tile-links a { display: inline-block; max-width: 100%; padding: 5px 11px; border-radius: 999px; background: var(--c-bg); color: var(--c-text); font-size: 12.5px; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: top; transition: background .15s, color .15s; }
.v2 .hub-tile-links a:hover { background: var(--c-brand-soft); color: var(--c-brand); }
.v2 .hub-tile-links .hub-tile-more { background: transparent; box-shadow: inset 0 0 0 1px var(--c-border); color: var(--c-muted); }
.v2 .hub-tile-links .hub-tile-more:hover { background: transparent; box-shadow: inset 0 0 0 1px var(--c-brand); color: var(--c-brand); }
/* „Zobrazit všech N kategorií“ – pilulka přes celou šířku mřížky */
.v2 .hub-tile--more { grid-column: 1 / -1; justify-self: center; flex-direction: row; align-items: center; justify-content: center; min-height: 44px; margin-top: 4px; padding: 0 24px; border: 1px solid var(--c-border-strong); border-radius: 999px; background: #fff; box-shadow: none; color: var(--c-text); font-weight: 600; font-size: 14px; cursor: pointer; }
.v2 .hub-tile--more:hover { border-color: var(--c-text); background: var(--c-bg); box-shadow: none; transform: none; }
@media (min-width: 768px) {
    .v2 .hub-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
    .v2 .hub-tile-main { flex-direction: column; align-items: stretch; gap: 12px; padding: 10px 10px 0; }
    .v2 .hub-tile-main::after { display: none; }
    .v2 .hub-tile-img { width: 100%; height: 128px; border-radius: 12px; }
    .v2 .hub-tile-img img { max-width: 72%; max-height: 78%; }
    .v2 .hub-tile-img img.hub-tile-img--small { width: 78px; height: 60px; max-width: none; max-height: none; }
    .v2 .hub-tile-ph { width: 40px; height: 40px; }
    .v2 .hub-tile-text { padding: 0 6px 12px; gap: 2px; }
    .v2 .hub-tile-name { font-size: 15.5px; }
    .v2 .hub-tile-links { display: flex; }
    .v2 .hub-tile--more { min-height: 46px; margin-top: 8px; }
}
@media (min-width: 1024px) { .v2 .hub-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; } }
@media (min-width: 1280px) { .v2 .hub-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) {
    .v2 .hub-tile, .v2 .hub-tile-img, .v2 .hub-tile-img img, .v2 .hub-tile-main::after { transition: none; }
    .v2 .hub-tile:hover, .v2 .hub-tile:hover .hub-tile-img img, .v2 .hub-tile:hover .hub-tile-main::after { transform: none; }
}
/* položky nad limit (is-extra, po rozbalení): úsporný řádek jen s názvem a počtem */
.v2 .hub-tile--compact { flex-direction: row; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; padding: 10px 14px; border-radius: var(--radius-m); background: var(--c-bg); box-shadow: none; color: var(--c-text); }
.v2 .hub-tile--compact:hover { background: #fff; box-shadow: 0 0 0 1px rgba(16, 24, 40, .06), var(--shadow-2); }
.v2 .hub-tile--compact .hub-tile-name { font-size: 14px; }
.v2 .hub-tile--compact .hub-tile-count { flex: none; }
.v2 .hub-grid > a.hub-tile--compact:first-of-type { grid-column: 1; }
.v2 .hub-grid--index { gap: 8px; }
/* pás nejprodávanějších na hub stránce (ProductList.htm .hub-top, token ic=PL cat:current;hubonly:1) – bez produktů se celý skryje */
.v2 .hub-top { padding-top: 20px; padding-bottom: 8px; }
.v2 .hub-top:not(:has(.pcard)) { display: none; }
.v2 .hub-top .sec-head h2 { font-size: 20px; }
.v2 .hub-top .sec-head h2 small { font-size: 14px; color: var(--c-muted); font-weight: 400; margin-left: 6px; }
@media (min-width: 768px) { .v2 .hub-top .sec-head h2 { font-size: 24px; } }
@media (max-width: 767.98px) { .v2 .hub-top .pstrip { margin-left: calc(-1 * var(--gutter)); margin-right: calc(-1 * var(--gutter)); padding-left: var(--gutter); padding-right: var(--gutter); scroll-padding-left: var(--gutter); } }

/* ============================================================ Home Credit – nákup na splátky (js/script/v2-splatky.js, Doc/Navrh-HomeCredit-Splatky.md)
   kalkulačka v modalu (iframe hc-calc.htm), panel u platební metody v kroku 3, info ve shrnutí, karty na děkovačce a obsahová stránka Nákup na splátky */
.v2-modal--hc .v2-modal-box { max-width: 760px; }
.v2 .hc-modal-head { display: flex; align-items: center; gap: 10px; margin: 0 36px 10px 0; font-family: var(--font-head); font-weight: 700; font-size: 18px; }
.v2 .hc-modal-head img { height: 28px; width: auto; }
.v2 .hc-frame { display: block; width: 100%; height: 70vh; min-height: 320px; max-height: 85vh; border: 0; background: #fff; transition: height .2s; }
.v2 .optcard--hc .optcard-logo img { max-height: 32px; }
.v2 .hc-panel { font-size: 14px; }
.v2 .hc-panel-state { display: flex; align-items: center; justify-content: space-between; gap: 10px 14px; flex-wrap: wrap; }
.v2 .hc-panel-state .btn-v2 { flex: none; }
.v2 .hc-panel-warn { color: #9a3412; }
.v2 .hc-gdpr { margin-top: 10px; font-size: 13px; color: var(--c-muted); }
.v2 .hc-gdpr summary { cursor: pointer; color: var(--c-text); font-weight: 600; list-style: none; display: inline-flex; align-items: center; gap: 6px; }
.v2 .hc-gdpr summary::-webkit-details-marker { display: none; }
.v2 .hc-gdpr summary::before { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform .15s; margin-right: 2px; }
.v2 .hc-gdpr[open] summary::before { transform: rotate(45deg); }
.v2 .hc-gdpr p { margin: 6px 0 0; line-height: 1.45; }
.v2 .hc-legal { margin: 8px 0 0; font-size: 12px; color: var(--c-muted); }
.v2 .hc-legal a { color: var(--c-info); }
.v2 .hc-check .hc-gdpr, .v2 .hc-check .hc-legal { color: inherit; opacity: .85; }
.v2 .hc-check .hc-gdpr summary { color: inherit; }
.v2 .hc-alt { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.v2 .bk-hc--approved .bk-card-title { color: var(--c-ok); }
.v2 .bk-hc--rejected .bk-card-title { color: #9a3412; }
.v2 .bk-hc--pending .bk-card-title { color: #9a3412; }
/* obsahová stránka Nákup na splátky (content/nakup-na-splatky.htm) */
.v2 .hcp { padding-bottom: 32px; }
.v2 .hcp-intro { font-size: 17px; margin-bottom: 8px; }
.v2 .hcp-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 16px 0 24px; padding: 0; list-style: none; counter-reset: hcp; }
.v2 .hcp-step { background: #fff; border: 1px solid var(--c-border); border-radius: var(--radius-m); padding: 14px; counter-increment: hcp; font-size: 14px; }
.v2 .hcp-step::before { content: counter(hcp); display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--c-cta); color: #fff; font-weight: 700; margin-bottom: 8px; }
.v2 .hcp-step > b:first-of-type { display: block; margin-bottom: 4px; font-size: 15px; }
.v2 .hcp h2 { font-size: 20px; margin: 22px 0 8px; }
.v2 .hcp-dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; margin: 0; }
.v2 .hcp-dl dt { font-weight: 600; }
.v2 .hcp-dl dd { margin: 0; }
.v2 .hcp-cta { margin: 16px 0; }
.v2 .hcp-legal { margin-top: 22px; padding: 12px 14px; background: var(--c-bg); border-radius: var(--radius-m); font-size: 13px; color: var(--c-muted); }
.v2 .hcp-legal a { color: var(--c-info); }
@media (max-width: 575.98px) { .v2 .hcp-dl { grid-template-columns: 1fr; gap: 2px 0; } .v2 .hcp-dl dd { margin-bottom: 8px; } }

/* GLightbox (js/script/v2-lightbox.js): iframe okna (výdejní místa v košíku) bez výchozího omezení max-height 75vh na mobilu – výšku
   určuje v2Lightbox.iframe(); na mobilu okno pod zavíracím křížkem */
.glightbox-container .gslide-external { max-height: none; }
