/* DesignShop — sjednocení s návrhem Galali (sqrl.dev) */
/* ===================================================== */

/* === Fonty === */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* === Design tokeny === */
:root {
    --gl-black: #000000;
    --gl-white: #ffffff;
    --gl-fg-1: #000000;
    --gl-fg-2: #828282;
    --gl-mute: #d9d9d9;
    --gl-divider: #e8e8e8;
    --gl-stroke-1: #000000;
    --gl-surface: #ffffff;
    --gl-surface-alt: #f6f6f5;
    --gl-paper-2: #f5f5f5;
    --gl-paper-3: #eeeeee;
    --gl-gutter: 60px;
    --gl-page-max: 1920px;
    --gl-content-max: 1800px;
    --gl-section-gap: 130px;
    --gl-font-body: "Neue Haas Grotesk Text Pro", "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
    --gl-font-ui: "Inter", "Neue Haas Grotesk Text Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
    --gl-size-ui: 20px;
    --gl-size-body: 24px;
    --gl-size-meta: 16px;
    --gl-w-regular: 400;
    --gl-w-medium: 500;
    --gl-w-bold: 700;
}

/* === Globální typografie === */
body {
    font-family: var(--gl-font-body);
    color: var(--gl-fg-1);
    background: var(--gl-white);
}

/* === Skrýt nevhodné prvky pro nový design === */
.menu-helper { display: none !important; }
.navigationActions { display: none !important; }

/* === Pořadí sekcí homepage: banner → kategorie → produkty (sjednoceno se sqrl) === */
.overall-wrapper {
    display: flex;
    flex-direction: column;
}
/* Header + topnav + user-action default order 0 → zůstávají nahoře */
.overall-wrapper > .content-wrapper.homepage-box.before-carousel {
    order: 10;
}
.overall-wrapper > .content-wrapper.homepage-box.welcome-wrapper {
    order: 20;
}
/* Produktový wrapper (Akční zboží + Novinky) — bez id, bez homepage-box class */
.overall-wrapper > .content-wrapper.container:not(#content-wrapper):not(.homepage-box) {
    order: 30;
}
/* #content-wrapper: Shoptet vendor dává `display: none` globálně!
   Na homepage je prázdný a chceme ho schovat (vendor to dělá za nás).
   Na ostatních stránkách (detail, kategorie, košík, pokladna) obsahuje hlavní content
   → MUSÍME ho explicitně ukázat. */
body:not(.in-index) .overall-wrapper > #content-wrapper.content-wrapper.container {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ============================================ */
/* === TOP PANEL (ustrip) === */
/* ============================================ */

.top-navigation-bar {
    display: block;
    background: var(--gl-white);
    border-bottom: 1px solid var(--gl-divider);
    color: var(--gl-fg-2);
    font-family: var(--gl-font-ui);
    font-size: 13px;
    font-weight: var(--gl-w-regular);
    line-height: 1;
    padding: 0;
    margin: 0;
}

.top-navigation-bar .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 36px;
    max-width: var(--gl-page-max);
    width: 100%;
    padding: 0 var(--gl-gutter);
    margin: 0 auto;
    box-sizing: border-box;
}

/* --- Levý blok: kontakty (Zák. podpora + telefon + email) --- */
.top-navigation-bar .top-navigation-contacts {
    display: flex;
    align-items: center;
    gap: 22px;
    margin: 0;
    padding: 0;
    flex-shrink: 0;
}
.top-navigation-bar .top-navigation-contacts strong {
    font-weight: var(--gl-w-regular);
    color: var(--gl-fg-2);
    margin: 0;
    padding: 0;
}
.top-navigation-bar .top-navigation-contacts a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 4px;
    margin: 0;
    color: var(--gl-fg-2);
    text-decoration: none;
    font-size: 13px;
    font-weight: var(--gl-w-regular);
    line-height: 1;
    transition: color .15s, opacity .15s;
}
.top-navigation-bar .top-navigation-contacts a:hover,
.top-navigation-bar .top-navigation-contacts a:focus {
    color: var(--gl-fg-1);
    opacity: 1;
    text-decoration: none;
}
.top-navigation-bar .top-navigation-contacts a:focus-visible,
.top-navigation-bar ul.top-navigation-bar-menu > li > a:focus-visible,
.top-navigation-bar .top-navigation-tools button.top-nav-button-login:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 4px;
}
.top-navigation-bar .top-navigation-contacts a span {
    display: inline;
}
/* skryj Shoptet ikonky v telefonu/emailu */
.top-navigation-bar .top-navigation-contacts a::before,
.top-navigation-bar .top-navigation-contacts a::after {
    content: none !important;
    display: none !important;
}

/* --- Středový blok: menu odkazy (Jak nakupovat, OP, ...) --- */
.top-navigation-bar .top-navigation-menu {
    display: flex;
    align-items: center;
    flex: 1;
    justify-content: center;
    margin: 0;
    padding: 0;
    height: 36px;
}
.top-navigation-bar .top-navigation-menu-trigger { display: none !important; }
.top-navigation-bar ul.top-navigation-bar-menu {
    display: flex;
    align-items: center;
    gap: 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.top-navigation-bar ul.top-navigation-bar-menu-helper {
    display: none !important;
}
.top-navigation-bar ul.top-navigation-bar-menu > li {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 0;
    background: none;
    border: none;
}
.top-navigation-bar ul.top-navigation-bar-menu > li.cropped {
    display: none;
}
.top-navigation-bar ul.top-navigation-bar-menu > li > a {
    display: inline-block;
    padding: 0 4px;
    color: var(--gl-fg-2);
    text-decoration: none;
    font-family: var(--gl-font-ui);
    font-size: 13px;
    font-weight: var(--gl-w-regular);
    text-transform: none;
    line-height: 1;
    transition: color .15s;
}
.top-navigation-bar ul.top-navigation-bar-menu > li > a:hover,
.top-navigation-bar ul.top-navigation-bar-menu > li > a:focus {
    color: var(--gl-fg-1);
    text-decoration: none;
}

/* --- Pravý blok: tools (Přihlášení) --- */
.top-navigation-bar .top-navigation-tools {
    display: flex;
    align-items: center;
    gap: 22px;
    margin: 0;
    padding: 0;
    flex-shrink: 0;
}
/* Desktop: responsive-tools skrytý (mobile burger nepotřebný) */
.top-navigation-bar .top-navigation-tools .responsive-tools {
    display: none;
}
.top-navigation-bar .top-navigation-tools button.top-nav-button-login,
.top-navigation-bar .top-navigation-tools .top-nav-button {
    display: inline-flex;
    align-items: center;
    height: auto;
    padding: 0 4px;
    margin: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    color: var(--gl-fg-2);
    font-family: var(--gl-font-ui);
    font-size: 13px;
    font-weight: var(--gl-w-regular);
    line-height: 1;
    text-transform: none;
    cursor: pointer;
    transition: color .15s;
}
.top-navigation-bar .top-navigation-tools button.top-nav-button-login span {
    color: inherit;
    font: inherit;
    text-transform: none;
}
.top-navigation-bar .top-navigation-tools button.top-nav-button-login:hover,
.top-navigation-bar .top-navigation-tools button.top-nav-button-login:focus,
.top-navigation-bar .top-navigation-tools button.top-nav-button-login:hover span,
.top-navigation-bar .top-navigation-tools button.top-nav-button-login:focus span {
    background: transparent;
    color: var(--gl-fg-1);
    box-shadow: none;
}

/* ============================================ */
/* === HEADER === */
/* ============================================ */

header#header {
    background: var(--gl-white);
    border-bottom: 1px solid var(--gl-divider);
    position: sticky;
    top: 0;
    z-index: 50;
    margin: 0;
    padding: 0;
    height: auto;
    transition: box-shadow .25s ease;
}
/* Sticky shadow při scrollu — animation-timeline: scroll() je supported v Chromium 115+
   (designshop primárně desktop Chrome) */
@supports (animation-timeline: scroll()) {
    header#header {
        animation: gl-header-shadow linear both;
        animation-timeline: scroll(root);
        animation-range: 0 200px;
    }
    @keyframes gl-header-shadow {
        from { box-shadow: 0 0 0 rgba(0,0,0,0); }
        to   { box-shadow: 0 2px 16px rgba(0,0,0,.08); }
    }
}

header#header .container.navigation-wrapper {
    max-width: var(--gl-page-max);
    width: 100%;
    padding: 0;
    margin: 0 auto;
}

/* --- Horní pruh: logo / search / utilities (hbar) --- */
header#header .header-top {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 40px;
    padding: 0 var(--gl-gutter);
    height: 96px;
    max-width: var(--gl-page-max);
    margin: 0 auto;
}

/* --- Logo --- */
header#header .site-name-wrapper {
    display: flex;
    align-items: center;
}
header#header .site-name {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
}
header#header .site-name a {
    display: flex;
    align-items: center;
}
header#header .site-name img {
    height: 44px;
    width: auto;
    max-width: 220px;
    object-fit: contain;
}

/* --- Search --- */
header#header .search {
    position: static;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
}
header#header .search-form {
    position: relative;
    width: 100%;
    max-width: 720px;
    height: 48px;
    margin: 0;
    padding: 0;
    background: var(--gl-white);
    border: 1px solid var(--gl-stroke-1);
    border-radius: 0;
    box-shadow: none;
}
header#header .search-form .search-input,
header#header input.search-input {
    width: 100%;
    height: 46px;
    padding: 0 56px 0 50px;
    border: none;
    border-radius: 0;
    background: transparent;
    font-family: var(--gl-font-ui);
    font-size: 16px;
    font-weight: var(--gl-w-regular);
    color: var(--gl-fg-1);
    box-shadow: none;
    outline: none;
}
header#header .search-form .search-input::placeholder {
    color: var(--gl-fg-2);
    opacity: 1;
}

/* Magnifying glass icon (left, vlastní SVG přes pseudo) */
header#header .search-form::before {
    content: "";
    position: absolute;
    left: 18px;
    top: 50%;
    width: 20px;
    height: 20px;
    transform: translateY(-50%);
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'><circle cx='11' cy='11' r='7'/><path d='m21 21-5-5'/></svg>") center/contain no-repeat;
    pointer-events: none;
    z-index: 2;
}

/* Submit button skrytý — sqrl design nemá viditelné tlačítko */
header#header .search-form button[type="submit"],
header#header .search-form .button {
    display: none !important;
}

/* --- Utilities (hutil) --- */
header#header .navigation-buttons {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    margin: 0;
    padding: 0;
}

/* Cart pill */
header#header .navigation-buttons a.cart-count,
header#header .navigation-buttons a[data-target="cart"] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    height: 46px;
    padding: 12px 18px;
    background: var(--gl-black);
    color: var(--gl-white);
    border: none;
    border-radius: 0;
    font-family: var(--gl-font-ui);
    font-size: 16px;
    font-weight: var(--gl-w-medium);
    text-decoration: none;
    line-height: 1;
    transition: background .15s, color .15s;
}
header#header .navigation-buttons a.cart-count:hover,
header#header .navigation-buttons a[data-target="cart"]:hover {
    background: #1a1a1a;
    color: var(--gl-white);
}
header#header .navigation-buttons a.cart-count:focus-visible,
header#header .navigation-buttons a[data-target="cart"]:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 3px;
}
/* Search input focus state — bez tohoto user neví že tam je */
header#header .search-form:focus-within {
    border-color: var(--gl-fg-1);
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.08);
}
header#header .navigation-buttons a.cart-count::before {
    content: "";
    width: 22px;
    height: 22px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5'><path d='M4 6h2l2.3 11.2A2 2 0 0 0 10.3 19h8.4a2 2 0 0 0 2-1.5L22 9H7'/><circle cx='10' cy='22' r='1.2' fill='white'/><circle cx='19' cy='22' r='1.2' fill='white'/></svg>") center/contain no-repeat;
    flex-shrink: 0;
}
header#header .navigation-buttons a.cart-count .sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
}
header#header .navigation-buttons a.cart-count .cart-price {
    font-family: var(--gl-font-ui);
    font-size: 16px;
    font-weight: var(--gl-w-medium);
    color: var(--gl-white);
    line-height: 1;
}

/* --- Hlavní navigace (navbar) --- */
header#header nav#navigation {
    position: static;
    background: transparent;
    border: none;
    width: 100%;
    height: auto;
    min-height: 56px;
    margin: 0;
    padding: 0;
    overflow: visible;
}
header#header nav#navigation .navigation-in,
header#header nav#navigation .navigation-in.menu {
    position: static;
    background: transparent;
    width: 100%;
    height: 56px;
    margin: 0 auto;
    padding: 0 var(--gl-gutter);
    max-width: var(--gl-page-max);
    box-shadow: none;
}
header#header nav#navigation ul.menu-level-1 {
    display: flex;
    align-items: stretch;
    gap: 0;
    height: 56px;
    margin: 0;
    padding: 0;
    list-style: none;
    background: transparent;
    visibility: visible !important;
}
/* Vendor Shoptet skrývá menu položky přes visibility: hidden (na li úrovni) → force visible */
header#header nav#navigation ul.menu-level-1 > li,
header#header nav#navigation ul.menu-level-1 > li > a,
header#header nav#navigation ul.menu-level-2,
header#header nav#navigation ul.menu-level-2 > li,
header#header nav#navigation ul.menu-level-2 > li > a {
    visibility: visible !important;
}
header#header nav#navigation ul.menu-level-1 > li {
    display: flex;
    align-items: center;
    padding: 0 28px 0 0;
    margin: 0;
    position: relative;
    background: transparent;
    border: none !important;
    box-shadow: none;
}
header#header nav#navigation ul.menu-level-1 > li::before,
header#header nav#navigation ul.menu-level-1 > li::after {
    content: none !important;
    display: none !important;
}
header#header nav#navigation ul.menu-level-1 > li > a {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 56px;
    padding: 0;
    background: transparent;
    color: var(--gl-black);
    text-decoration: none;
    font-family: var(--gl-font-ui);
    font-size: 16px;
    font-weight: var(--gl-w-medium);
    line-height: 1;
    border: none;
    transition: opacity .15s;
}
header#header nav#navigation ul.menu-level-1 > li > a:hover,
header#header nav#navigation ul.menu-level-1 > li > a:focus {
    opacity: .65;
    background: transparent;
    color: var(--gl-black);
}
header#header nav#navigation ul.menu-level-1 > li > a:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 4px;
    opacity: 1;
}
header#header nav#navigation ul.menu-level-1 > li > a > b {
    font-weight: var(--gl-w-medium);
}

/* Submenu chevron — reset Shoptet pseudo + vlastní SVG */
header#header nav#navigation ul.menu-level-1 > li > a .submenu-arrow {
    display: inline-block;
    width: 10px;
    height: 6px;
    margin-left: 4px;
    padding: 0;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none' stroke='black' stroke-width='1.5'><path d='M1 1l4 4 4-4'/></svg>") center/contain no-repeat;
    border: none;
    transform: none;
}
header#header nav#navigation .submenu-arrow::before,
header#header nav#navigation .submenu-arrow::after {
    content: none !important;
    display: none !important;
    border: none !important;
}

/* aria-expanded → otočit chevron */
header#header nav#navigation ul.menu-level-1 > li > a[aria-expanded="true"] .submenu-arrow {
    transform: rotate(180deg);
    transition: transform .2s;
}
header#header nav#navigation ul.menu-level-1 > li > a .submenu-arrow {
    transition: transform .2s;
}

/* --- Dropdown (menu-level-2 ≙ sqrl.dev .dd) ---
   POZOR: nepřepisuj display! Shoptet JS přepíná display:none/flex přes aria-expanded.
   Když je menu otevřené, vendor dá display:flex → my jen převrátíme na column stack. */
header#header nav#navigation ul.menu-level-1 > li > ul.menu-level-2 {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important; /* vendor align-items:center → stretch (column stack) */
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 260px;
    width: max-content;
    max-width: 360px;
    padding: 18px 22px;
    margin: 0;
    background: var(--gl-white);
    border: 1px solid var(--gl-divider);
    border-top: none;
    border-radius: 0;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .04);
    list-style: none;
    z-index: 60;
}

/* Skrýt menu-level-3 (vnořené pod-kategorie) — sqrl design má jen 2 úrovně */
header#header nav#navigation ul.menu-level-3,
header#header nav#navigation ul.menu-level-2 .has-more-items {
    display: none !important;
}

/* Skrýt Shoptet "menu-image" placeholder (folder.svg) — sqrl.dev návrh nemá */
header#header nav#navigation ul.menu-level-2 li > a.menu-image,
header#header nav#navigation ul.menu-level-2 .menu-image {
    display: none !important;
}

header#header nav#navigation ul.menu-level-2 > li {
    display: block !important;
    width: 100% !important;
    /* POZOR: v column flexu flex-basis cílí na VÝŠKU → 100% roztáhlo li na celou výšku.
       + vendor dává min-height: 75px (rezerva folder ikony) → obří rozestupy. */
    flex: 0 0 auto !important;
    min-height: 0 !important;
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    list-style: none;
}
header#header nav#navigation ul.menu-level-2 > li::before,
header#header nav#navigation ul.menu-level-2 > li::after {
    content: none !important;
    display: none !important;
}

header#header nav#navigation ul.menu-level-2 > li > a,
header#header nav#navigation ul.menu-level-2 > li > div > a {
    display: block;
    padding: 4px 0;
    margin: 0;
    background: transparent;
    color: var(--gl-fg-1);
    text-decoration: none;
    font-family: var(--gl-font-body);
    font-size: 17px;
    font-weight: var(--gl-w-regular);
    line-height: 1.35;
    border: none;
    white-space: nowrap;
    transition: opacity .15s, color .15s;
}
header#header nav#navigation ul.menu-level-2 > li > a:hover,
header#header nav#navigation ul.menu-level-2 > li > a:focus,
header#header nav#navigation ul.menu-level-2 > li > div > a:hover,
header#header nav#navigation ul.menu-level-2 > li > div > a:focus {
    opacity: .65;
    background: transparent;
    color: var(--gl-fg-1);
    text-decoration: none;
}
header#header nav#navigation ul.menu-level-2 > li > a > span,
header#header nav#navigation ul.menu-level-2 > li > div > a > span {
    color: inherit;
    font: inherit;
}

/* Vnořené úrovně (menu-level-3) — stejný look, posun vpravo */
header#header nav#navigation ul.menu-level-3 {
    margin: 4px 0 0 12px;
    padding: 0;
    list-style: none;
}
header#header nav#navigation ul.menu-level-3 > li > a {
    display: block;
    padding: 2px 0;
    color: var(--gl-fg-2);
    font-family: var(--gl-font-body);
    font-size: 15px;
    font-weight: var(--gl-w-regular);
    text-decoration: none;
    transition: color .15s, opacity .15s;
}
header#header nav#navigation ul.menu-level-3 > li > a:hover,
header#header nav#navigation ul.menu-level-3 > li > a:focus {
    color: var(--gl-fg-1);
    opacity: 1;
}

/* ============================================ */
/* === Banner (carousel — kosmetická taštička) === */
/* ============================================ */

/* Wrapper: prolomit Shoptet content max-width, full bleed na page-max */
.content-wrapper.homepage-box.before-carousel {
    box-sizing: border-box;
    width: 100vw;
    max-width: var(--gl-page-max);
    margin: 0 auto;
    padding: 0;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    background: var(--gl-surface-alt);
}

body.in-registrace main#content.content.narrow {
    max-width: 790px !important;
}

/* Row + wide-carousel: vynulovat Shoptet container, sjednotit šířku */
.content-wrapper.homepage-box.before-carousel .row.banners-row,
.content-wrapper.homepage-box.before-carousel .wide-carousel {
    width: 100%;
    max-width: 100%;
    height: 720px;
    margin: 0;
    padding: 0;
    background: var(--gl-surface-alt);
}

/* Bootstrap-style carousel container */
.content-wrapper.homepage-box.before-carousel #carousel.carousel.slide {
    position: relative;
    width: 100%;
    height: 720px;
    margin: 0;
    padding: 0;
    background: var(--gl-surface-alt);
    overflow: hidden;
}

.content-wrapper.homepage-box.before-carousel .carousel-inner {
    position: relative;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

/* Slide (item) — grid 2 sloupce */
.content-wrapper.homepage-box.before-carousel .carousel-inner > .item {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 720px;
    margin: 0;
    padding: 0;
    transition: opacity .4s;
    opacity: 0;
    pointer-events: none;
}
.content-wrapper.homepage-box.before-carousel .carousel-inner > .item.active {
    opacity: 1;
    pointer-events: auto;
}

/* <a> wrapper: roztáhnout přes celý slide, grid layout copy | photo */
.content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 720px;
    align-items: stretch;
    width: 100%;
    height: 720px;
    margin: 0;
    padding: 0;
    color: var(--gl-fg-1);
    text-decoration: none;
    background: transparent;
}

/* Photo (vpravo) */
.content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > img {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    height: 720px;
    margin: 0;
    padding: 0;
    background: #dedede;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Copy (vlevo) — span.extended-banner-texts jako levý sloupec */
.content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > .extended-banner-texts {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 30px;
    width: 100%;
    height: 720px;
    margin: 0;
    padding: 0 var(--gl-gutter);
    box-sizing: border-box;
    background: transparent;
    position: static;
    transform: none;
    text-align: left;
}

/* Carousel-inner: vendor Shoptet padding-top hack pro aspect-ratio → vynulovat */
.content-wrapper.homepage-box.before-carousel .carousel-inner {
    padding: 0 !important;
}

/* Title — H1 ekvivalent (vendor pozicuje absolute + dává bílý border + box-shadow → odstraň všechno) */
.content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-title {
    position: static !important;
    display: block;
    width: auto;
    inset: auto;
    margin: 0;
    padding: 0;
    color: var(--gl-fg-1);
    font-family: var(--gl-font-body);
    font-size: 80px;
    font-weight: var(--gl-w-regular);
    line-height: 80px;
    letter-spacing: normal;
    text-transform: none;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* Subtitle (taky vendor absolute → static + vendor border/shadow off) */
.content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-text {
    position: static !important;
    display: block;
    width: auto;
    inset: auto;
    margin: -10px 0 0;
    padding: 0;
    color: var(--gl-fg-1);
    font-family: var(--gl-font-body);
    font-size: 26px;
    font-weight: var(--gl-w-regular);
    line-height: 30px;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* CTA odkaz "Zobrazit produkt" — bílé tlačítko s černým textem (vendor má černý overlay) */
.content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-link {
    position: static !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    width: auto;
    height: 45px;
    inset: auto;
    padding: 0 40px;
    margin: 0;
    background: var(--gl-white) !important;
    color: var(--gl-fg-1) !important;
    font-family: var(--gl-font-ui);
    font-size: 18px;
    font-weight: var(--gl-w-regular);
    line-height: 18px;
    text-decoration: none;
    border: none;
    border-radius: 0;
    box-shadow: none;
    cursor: pointer;
    transition: background .15s, color .15s, transform .12s;
}
/* Šipka → za textem CTA (pseudo-element, SVG inline) */
.content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-link::after {
    content: "";
    display: inline-block;
    width: 18px;
    height: 12px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><path d='M0 6h16'/><path d='M11 1l5 5-5 5'/></svg>") center/contain no-repeat;
    flex-shrink: 0;
    transition: transform .15s, filter .15s;
}
.content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a:hover .extended-banner-link::after,
.content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a:focus-visible .extended-banner-link::after {
    filter: invert(1);
    transform: translateX(3px);
}

/* CTA hover/focus — celý <a> je klikací, reagujeme na hover anchor */
.content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a:hover .extended-banner-link,
.content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a:focus-visible .extended-banner-link {
    background: var(--gl-fg-1) !important; /* base má bg white !important → hover musí taky !important */
    color: var(--gl-white) !important;
    transform: translateY(-1px);
}
.content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: -2px;
}

/* Skrýt Shoptet indikátory / ovladače (jen 1 slide) */
.content-wrapper.homepage-box.before-carousel .carousel-indicators,
.content-wrapper.homepage-box.before-carousel .carousel-control,
.content-wrapper.homepage-box.before-carousel .left.carousel-control,
.content-wrapper.homepage-box.before-carousel .right.carousel-control {
    display: none !important;
}

/* Responsive */
@media (max-width: 1279px) {
    .content-wrapper.homepage-box.before-carousel .row.banners-row,
    .content-wrapper.homepage-box.before-carousel .wide-carousel,
    .content-wrapper.homepage-box.before-carousel #carousel.carousel.slide,
    .content-wrapper.homepage-box.before-carousel .carousel-inner > .item,
    .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a,
    .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > img,
    .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > .extended-banner-texts {
        height: 520px;
    }
    .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a {
        grid-template-rows: 520px;
    }
    .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > .extended-banner-texts {
        padding: 0 32px;
        gap: 20px;
    }
    .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-title {
        font-size: 56px;
        line-height: 56px;
    }
    .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-text {
        font-size: 20px;
        line-height: 24px;
    }
}

@media (max-width: 767px) {
    .content-wrapper.homepage-box.before-carousel .row.banners-row,
    .content-wrapper.homepage-box.before-carousel .wide-carousel,
    .content-wrapper.homepage-box.before-carousel #carousel.carousel.slide {
        height: auto;
    }
    .content-wrapper.homepage-box.before-carousel .carousel-inner > .item,
    .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a {
        height: auto;
        position: static;
    }
    .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a {
        display: flex;
        flex-direction: column-reverse;
    }
    .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > img {
        width: 100%;
        height: 320px;
    }
    .content-wrapper.homepage-box.before-carousel .carousel-inner > .item > a > .extended-banner-texts {
        width: 100%;
        height: auto;
        padding: 32px 16px;
        gap: 16px;
    }
    .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-title {
        font-size: 36px;
        line-height: 38px;
    }
    .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-text {
        font-size: 16px;
        line-height: 20px;
        margin: 0;
    }
    .content-wrapper.homepage-box.before-carousel .extended-banner-texts .extended-banner-link {
        height: 42px;
        font-size: 16px;
        padding: 0 24px;
    }
}

/* ============================================ */
/* === Nakupte podle kategorií (pictos) === */
/* ============================================ */

/* Override Shoptet vnějších wrapperů (rozlomit theme max-width 1418px do full bleed).
   POZOR: neaplikovat na `main.content` — to musí mít vlastní gutter + page-max centering. */
.welcome > div,
.welcome,
.welcome-wrapper,
.container.welcome-wrapper,
.content-wrapper.homepage-box.welcome-wrapper,
.overall-wrapper > .content-wrapper.container:not(#content-wrapper):not(.homepage-box) {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
/* Vnitřní content-wrapper-in uvnitř welcome / content-wrapper.container — taky full width */
.content-wrapper.homepage-box.welcome-wrapper > .content-wrapper-in,
.overall-wrapper > .content-wrapper.container:not(#content-wrapper):not(.homepage-box) > .content-wrapper-in {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block;
}

/* Sekce wrapper — .gutter section vložená přes HTML blok v adminu */
section.gutter {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--gl-page-max);
    margin: 0 auto;
    /* bottom padding (dřív 0) → popisky kategorií nejsou nalepené na spodní hraně šedého bloku */
    padding: var(--gl-section-gap) var(--gl-gutter);
    background: transparent;
}
/* Vendor Shoptet .welcome > div > * dostává max-width: 800px → roztrhat */
section.gutter .sec-head,
section.gutter .pictos,
section.gutter .sec-title,
section.gutter .sec-link {
    max-width: none !important;
    width: 100%;
}
section.gutter .sec-link { width: auto; }
section.gutter .sec-title { width: auto; }

/* Hlavička sekce: nadpis vlevo, "Všechny kategorie" odkaz vpravo */
section.gutter .sec-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin: 0 0 60px;
    padding: 0;
    border: 0;
    flex-wrap: nowrap;
}

section.gutter .sec-title {
    margin: 0;
    padding: 0;
    font-family: var(--gl-font-ui);
    font-size: 56px;
    line-height: 56px;
    font-weight: var(--gl-w-bold);
    color: var(--gl-fg-1);
    letter-spacing: normal;
    text-transform: none;
}

/* Odkaz "Všechny kategorie" se šipkou */
section.gutter .sec-link {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    font-family: var(--gl-font-ui);
    font-size: 18px;
    font-weight: var(--gl-w-regular);
    color: var(--gl-fg-1);
    text-decoration: none;
    transition: gap .15s;
}
section.gutter .sec-link svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    fill: currentColor;
}
section.gutter .sec-link:hover {
    gap: 22px;
    color: var(--gl-fg-1);
}
section.gutter .sec-link:hover span {
    text-decoration: underline;
    text-underline-offset: 6px;
}
section.gutter .sec-link:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 4px;
}

/* Mřížka 6 dlaždic */
section.gutter .pictos {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Dlaždice — čtverec, vystředěná ikona + popisek */
section.gutter .picto {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 28px;
    aspect-ratio: 1 / 1;
    padding: 24px;
    background: var(--gl-surface-alt);
    color: var(--gl-fg-1);
    text-decoration: none;
    transition: background .15s;
}
section.gutter .picto svg {
    width: 90px;
    height: 90px;
    color: var(--gl-fg-1);
    stroke-width: 1.5;
    transition: transform .2s;
}
section.gutter .picto .name {
    margin: 0;
    font-family: var(--gl-font-ui);
    font-size: 22px;
    font-weight: var(--gl-w-medium);
    color: var(--gl-fg-1);
    text-align: center;
}

/* Stavy: hover/focus */
section.gutter .picto:hover {
    background: var(--gl-paper-3);
}
section.gutter .picto:hover svg {
    transform: translateY(-6px) scale(1.04);
}
section.gutter .picto:hover .name {
    text-decoration: underline;
    text-underline-offset: 6px;
}
section.gutter .picto:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 4px;
}

/* Responsive — odvozeno ze sqrl.dev breakpointů, --gl-section-gap se zmenšuje */
@media (max-width: 1279px) {
    :root { --gl-section-gap: 96px; }
    section.gutter { padding: var(--gl-section-gap) 32px; }
    section.gutter .sec-head { margin-bottom: 36px; gap: 16px; flex-wrap: wrap; }
    section.gutter .sec-title { font-size: 40px; line-height: 42px; }
    section.gutter .sec-link { font-size: 16px; }
    section.gutter .pictos { grid-template-columns: repeat(4, 1fr); gap: 12px; }
    section.gutter .picto { gap: 18px; padding: 18px; }
    section.gutter .picto svg { width: 60px; height: 60px; }
    section.gutter .picto .name { font-size: 16px; text-align: center; }
}

@media (max-width: 767px) {
    :root { --gl-section-gap: 64px; }
    section.gutter { padding: var(--gl-section-gap) 20px; }
    section.gutter .sec-head { margin-bottom: 24px; gap: 12px; }
    section.gutter .sec-title { font-size: 28px; line-height: 30px; }
    section.gutter .sec-link { font-size: 14px; gap: 10px; }
    section.gutter .sec-link svg { width: 14px; height: 14px; }
    /* minmax(0,1fr) místo 1fr → buňky se nesnaží roztáhnout na min-content (jinak overflow viewportu) */
    section.gutter .pictos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
    section.gutter .picto { gap: 14px; padding: 16px 8px; min-width: 0; }
    section.gutter .picto svg { width: 52px; height: 52px; max-width: 100%; }
    section.gutter .picto .name { font-size: 13px; line-height: 15px; overflow-wrap: anywhere; }
}

/* ============================================ */
/* === Akční zboží + Novinky (homepage produkty) === */
/* ============================================ */

/* main.content má 1418px theme limit — rozšířit na page-max, ale s gutter L/R */
main.content,
main.content:not(.wide) {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--gl-page-max);
    margin: 0 auto;
    padding: 0 var(--gl-gutter) !important;
}

/* Nadpis sekce (Shoptet renderuje jako div.h4) — stylujeme jako h2.sec-title */
main.content > .homepage-group-title {
    margin: var(--gl-section-gap) 0 60px;
    padding: 0;
    font-family: var(--gl-font-ui);
    font-size: 56px;
    line-height: 56px;
    font-weight: var(--gl-w-bold);
    color: var(--gl-fg-1);
    letter-spacing: normal;
    text-transform: none;
}
/* Druhý nadpis (Novinky) — stejný gap jako ostatní sekce */
main.content > .homepage-products-heading-2 {
    margin-top: var(--gl-section-gap);
}

/* Mřížka produktů — 4 sloupce, gap 50/40 jako sqrl.dev */
main.content > .products.products-block {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 40px;
    row-gap: 50px;
    margin: 0 0 0;
    padding: 0;
    list-style: none;
    background: transparent;
}

/* Reset jednotlivého produktu — bez bordrů, paddingu, vendor zdobení */
main.content > .products.products-block > .product {
    margin: 0;
    padding: 0;
    width: auto;
    background: transparent;
    border: 0;
    box-shadow: none;
}
main.content > .products.products-block > .product > .p {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    width: 100%;
    height: auto;
}

/* Obrázek — kontejner .ph (1:1, paper bg) */
main.content > .products.products-block > .product a.image {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: var(--gl-surface-alt);
    margin: 0;
    padding: 0;
    overflow: hidden;
    border-radius: 0;
    position: relative;
}
main.content > .products.products-block > .product a.image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    margin: 0;
    padding: 0;
    transition: transform .4s ease;
}
main.content > .products.products-block > .product a.image:hover img {
    transform: scale(1.04);
}
main.content > .products.products-block > .product a.image:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 2px;
}

/* Vnitřek — .p-in + .p-in-in: reset paddingu, struktura jen pro název */
main.content > .products.products-block > .product .p-in,
main.content > .products.products-block > .product .p-in-in {
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    display: block;
}

/* Název produktu */
main.content > .products.products-block > .product a.name {
    display: block;
    margin: 0;
    padding: 0;
    color: var(--gl-fg-1);
    text-decoration: none;
    font-family: var(--gl-font-ui);
    font-size: 22px;
    line-height: 26px;
    font-weight: var(--gl-w-medium);
    letter-spacing: normal;
    transition: text-decoration-color .15s;
    text-decoration-color: transparent;
    /* Vendor dává fixní height 45px + overflow:hidden → 2řádkový název se ořezal.
       Povolit plnou výšku, min-height drží 2 řádky pro zarovnání cen v gridu. */
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    min-height: 52px;
}
main.content > .products.products-block > .product a.name span {
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    text-transform: none;
    letter-spacing: normal;
}
main.content > .products.products-block > .product a.name:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}
main.content > .products.products-block > .product a.name:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 2px;
}

/* Skrýt zbytné prvky (rating, dostupnost, popis, detail btn, kód) — návrh je má pryč */
main.content > .products.products-block > .product .ratings-wrapper,
main.content > .products.products-block > .product .availability,
main.content > .products.products-block > .product .p-desc,
main.content > .products.products-block > .product .p-tools,
main.content > .products.products-block > .product .p-code,
main.content > .products.products-block > .product .flag,
main.content > .products.products-block > .product .flags,
main.content > .products.products-block > .product .actions {
    display: none !important;
}

/* Spodní část karty — jen cena, bez bordrů a paddingu */
main.content > .products.products-block > .product .p-bottom {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    display: block;
}
main.content > .products.products-block > .product .prices {
    margin: 0;
    padding: 0;
    display: block;
    text-align: left;
}
main.content > .products.products-block > .product .price,
main.content > .products.products-block > .product .price-final {
    display: block;
    margin: 0;
    padding: 0;
    background: transparent;
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 22px;
    font-weight: var(--gl-w-regular);
    line-height: 26px;
}
main.content > .products.products-block > .product .price strong,
main.content > .products.products-block > .product .price-final strong {
    font-weight: var(--gl-w-regular);
    color: inherit;
}

/* Responsive */
@media (max-width: 1279px) {
    main.content > .homepage-group-title { font-size: 40px; line-height: 42px; margin: 80px 0 32px; }
    main.content > .homepage-products-heading-2 { margin-top: 60px; }
    main.content > .products.products-block { grid-template-columns: repeat(3, 1fr); column-gap: 24px; row-gap: 36px; }
    main.content > .products.products-block > .product a.name { font-size: 18px; line-height: 22px; min-height: 44px; }
    main.content > .products.products-block > .product .price-final { font-size: 18px; line-height: 22px; }
}
@media (max-width: 767px) {
    :root {
        --gl-gutter: 20px;
    }
    /* #2: base má padding 0 var(--gl-gutter)(=60px) !important → na mobilu úzké uprostřed.
       Roztáhnout na (skoro) plnou šířku. */
    main.content,
    main.content:not(.wide) { padding: 0 12px !important; }
    body:not(.in-index) main#content.content { padding: 0 20px !important; }
    /* #4: oddělit produkty (Akční/Novinky) od sekce "Nakupte podle kategorií" nad i patičky pod */
    main.content { margin: 48px 0 72px !important; }
    main.content > .products.products-block > .product a.name { min-height: 38px; }
    main.content > .homepage-group-title { font-size: 28px; line-height: 30px; margin: 48px 0 24px; }
    main.content > .homepage-products-heading-2 { margin-top: 56px; }
    main.content > .products.products-block { grid-template-columns: repeat(2, 1fr); column-gap: 12px; row-gap: 24px; }
    main.content > .products.products-block > .product > .p { gap: 10px; }
    main.content > .products.products-block > .product a.name { font-size: 15px; line-height: 19px; }
    main.content > .products.products-block > .product .price-final { font-size: 15px; line-height: 19px; }
}

/* ============================================ */
/* === Patička (Footer) === */
/* ============================================ */

footer#footer.footer {
    background: var(--gl-black);
    color: var(--gl-white);
    margin: var(--gl-section-gap) 0 0;
    padding: 110px 0 40px;
    font-family: var(--gl-font-body);
    font-size: 16px;
    border: 0;
    /* Jednoduchý flex: brand (60%) + servis (40%) + bottom strip plné šířky.
       Vše v jednom inner wrapperu se 60px gutter. */
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    row-gap: 60px;
    column-gap: 0;
}
/* sr-only schovat (bere row v flexu jinak) */
footer#footer.footer > h2.sr-only,
footer#footer .sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
    margin: 0;
    padding: 0;
    flex: 0 0 0 !important;
}
/* Brand sloupec — 60% šířky, padding-left = gutter, padding-right = vnitřní gap */
footer#footer.footer > .container.footer-rows {
    flex: 0 1 60%;
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 40px 0 var(--gl-gutter) !important;
    background: transparent;
    border: 0;
}
/* Zákaznický servis — 40%, padding-right = gutter */
footer#footer.footer > .container.footer-links-icons {
    flex: 0 1 40%;
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 var(--gl-gutter) 0 40px !important;
    background: transparent;
    border: 0;
}
/* Spodní strip — plná šířka, gutter L/R */
footer#footer.footer > .container.footer-bottom {
    flex: 0 0 100%;
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 30px var(--gl-gutter) 0 !important;
    background: transparent;
    border: 0;
}

/* --- Brand sloupce: logo (sloupec 1) | kontakt email+tel (sloupec 2), vedle sebe --- */
footer#footer .footer-rows {
    display: flex;
    flex-direction: row;
    gap: 60px;
    align-items: flex-start;
}

/* Site-name (logo) — sloupec 1 */
footer#footer .footer-rows .site-name {
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
}
footer#footer .footer-rows .site-name a {
    display: inline-block;
    color: var(--gl-white);
    text-decoration: none;
    font-family: var(--gl-font-ui);
    font-size: 40px;
    font-weight: var(--gl-w-bold);
    line-height: 40px;
}
footer#footer .footer-rows .site-name img {
    max-width: 220px;
    height: auto;
    filter: brightness(0) invert(1);
}

@media (min-width: 1200px) {
    footer#footer .footer-rows .custom-footer {
        padding-top: 0px;
    }
}

/* Custom footer (kontakt email+tel) — sloupec 2, vedle loga */
footer#footer .footer-rows .custom-footer {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: stretch; /* fix: stretch children full width (Shoptet default je 'normal') */
    gap: 18px;
    margin-top: 0 !important;
    border-top: 0 !important; /* vendor dává 1px divider → pryč */
    width: 100%;
    color: var(--gl-white);
}
footer#footer .footer-rows .custom-footer__contact {
    width: 100%;
    margin: 0;
    padding: 0;
}
footer#footer .footer-rows .custom-footer__contact .pageElement__heading {
    display: none;
}
footer#footer .footer-rows .custom-footer__contact .contact-box {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    color: var(--gl-white);
    font-family: var(--gl-font-body);
    font-size: 22px;
    font-weight: var(--gl-w-regular);
    line-height: 1.2;
}
/* UL > li > span > a (Shoptet contact box struktura) */
footer#footer .footer-rows .custom-footer__contact .contact-box ul {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin: 0;
    padding: 0;
    list-style: none;
    width: 100%;
}
footer#footer .footer-rows .custom-footer__contact .contact-box li {
    display: block;
    margin: 0;
    padding: 0;
    list-style: none;
}
footer#footer .footer-rows .custom-footer__contact .contact-box span {
    display: inline;
}
footer#footer .footer-rows .custom-footer__contact .contact-box * {
    color: inherit;
    font-size: inherit;
    font-family: inherit;
    background: transparent;
}
footer#footer .footer-rows .custom-footer__contact .contact-box a {
    color: var(--gl-white);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 14px;
    transition: opacity .15s;
}
footer#footer .footer-rows .custom-footer__contact .contact-box a:hover {
    opacity: .75;
    text-decoration: underline;
    text-underline-offset: 4px;
}
footer#footer .footer-rows .custom-footer__contact .contact-box a:focus-visible {
    outline: 2px solid var(--gl-white);
    outline-offset: 4px;
}

/* Instagram blok (sociální) — Shoptet renderuje prázdný container.
   Skrýt, dokud admin nedoplní social linky. */
footer#footer .footer-rows .custom-footer__instagram {
    display: none;
}
footer#footer .footer-rows .custom-footer__instagram.has-content {
    grid-column: 1 / 2;
    display: flex;
    gap: 12px;
    margin-top: 4px;
}
footer#footer .footer-rows .custom-footer__instagram a {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    color: var(--gl-white);
    text-decoration: none;
    transition: background .15s, border-color .15s;
}
footer#footer .footer-rows .custom-footer__instagram a:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: var(--gl-white);
}
footer#footer .footer-rows .custom-footer__instagram a:focus-visible {
    outline: 2px solid var(--gl-white);
    outline-offset: 2px;
}
footer#footer .footer-rows .custom-footer__instagram img,
footer#footer .footer-rows .custom-footer__instagram svg {
    width: 20px;
    height: 20px;
    filter: brightness(0) invert(1);
}

/* --- Footer-links-icons sloupec (vnitřní layout) --- */
footer#footer .footer-links-icons::before {
    content: "Zákaznický servis";
    display: block;
    margin: 0 0 22px;
    color: var(--gl-fg-2);
    font-family: var(--gl-font-ui);
    font-size: 16px;
    font-weight: var(--gl-w-medium);
    line-height: 1.2;
    letter-spacing: 1.28px;
    text-transform: uppercase;
}
footer#footer .footer-links-icons ul.footer-links {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
    max-width: 349px;
}
footer#footer .footer-links-icons ul.footer-links li {
    margin: 0;
    padding: 0;
    list-style: none;
}
footer#footer .footer-links-icons ul.footer-links li a {
    color: var(--gl-white);
    text-decoration: none;
    font-family: var(--gl-font-body);
    font-size: 20px;
    font-weight: var(--gl-w-regular);
    line-height: 1.2;
    transition: opacity .15s, text-decoration-color .15s;
    text-decoration-color: transparent;
}
footer#footer .footer-links-icons ul.footer-links li a:hover {
    text-decoration: underline;
    text-underline-offset: 6px;
    opacity: .92;
}
footer#footer .footer-links-icons ul.footer-links li a:focus-visible {
    outline: 2px solid var(--gl-white);
    outline-offset: 4px;
}

/* --- Spodní strip --- */
footer#footer .footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin: 60px 0 0;
    padding: 30px 0 0;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    color: var(--gl-fg-2);
    font-family: var(--gl-font-ui);
    font-size: 14px;
    font-weight: var(--gl-w-regular);
    line-height: 1.2;
}
footer#footer .footer-bottom #signature {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--gl-fg-2);
}
footer#footer .footer-bottom #signature a {
    color: var(--gl-fg-2);
    text-decoration: none;
    transition: color .15s;
}
footer#footer .footer-bottom #signature a:hover {
    color: var(--gl-white);
}
footer#footer .footer-bottom #signature img {
    height: 14px;
    width: auto;
    filter: brightness(0) invert(1);
    opacity: .6;
}
footer#footer .footer-bottom .copyright {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    color: var(--gl-fg-2);
}
footer#footer .footer-bottom .copyright strong {
    color: var(--gl-fg-2);
    font-weight: var(--gl-w-regular);
}
footer#footer .footer-bottom .copyright a.cookies-settings {
    color: var(--gl-fg-2);
    text-decoration: none;
    cursor: pointer;
    transition: color .15s;
}
footer#footer .footer-bottom .copyright a.cookies-settings:hover {
    color: var(--gl-white);
    text-decoration: underline;
    text-underline-offset: 4px;
}
footer#footer .footer-bottom .copyright a.cookies-settings:focus-visible {
    outline: 2px solid var(--gl-white);
    outline-offset: 4px;
}

/* Responsive footer — používá `footer#footer.footer` selektor stejné specificity */
@media (max-width: 1279px) {
    footer#footer.footer { padding: 80px 0 40px; margin-top: 100px; row-gap: 40px; }
    footer#footer.footer > .container.footer-rows { padding: 0 24px 0 32px !important; }
    footer#footer.footer > .container.footer-links-icons { padding: 0 32px 0 24px !important; }
    footer#footer.footer > .container.footer-bottom { padding: 24px 32px 0 !important; }
}
@media (max-width: 767px) {
    footer#footer.footer {
        padding: 60px 0 32px;
        margin-top: 80px;
        row-gap: 32px;
        flex-direction: column;
    }
    footer#footer.footer > .container.footer-rows,
    footer#footer.footer > .container.footer-links-icons,
    footer#footer.footer > .container.footer-bottom {
        flex: 0 0 100%;
        max-width: 100% !important;
        padding: 0 20px !important;
    }
    footer#footer.footer > .container.footer-bottom { padding: 24px 20px 0 !important; }
    /* Brand sloupce zpět na stack (logo nad kontaktem) */
    footer#footer .footer-rows { flex-direction: column; gap: 20px; }
    /* Logo — vendor ho na mobilu skrývá (display:none) → force zobrazit */
    footer#footer .footer-rows .site-name { display: block !important; }
    footer#footer .footer-rows .site-name a { font-size: 28px; line-height: 30px; }
    footer#footer .footer-rows .custom-footer { width: 100%; }
    footer#footer .footer-rows .custom-footer__contact .contact-box { font-size: 18px; }
    footer#footer .footer-links-icons ul.footer-links li a { font-size: 18px; }
    footer#footer .footer-bottom { flex-direction: column; align-items: flex-start; font-size: 12px; }
    /* Copyright + cookies pod sebou (ne vedle sebe) */
    footer#footer .footer-bottom .copyright { display: block; }
    footer#footer .footer-bottom .copyright a.cookies-settings { display: block; margin-top: 8px; }
}

/* ============================================ */
/* === Nejprodávanější / Novinky (.products-block) === */
/* ============================================ */

/* Heading nadpisů Shoptet (.homepage-group-title) — sjednotit s .sec-title */
.homepage-group-title.homepage-products-heading-1,
.homepage-group-title.homepage-products-heading-2 {
    box-sizing: border-box;
    margin: 0 0 60px;
    padding: var(--gl-section-gap) var(--gl-gutter) 0;
    max-width: var(--gl-page-max);
    width: 100%;
    font-family: var(--gl-font-ui);
    font-size: 56px;
    line-height: 56px;
    font-weight: var(--gl-w-bold);
    color: var(--gl-fg-1);
    letter-spacing: normal;
    text-transform: none;
    text-align: left;
}

/* Wrapper sekce produktů — full-width grid */
.products.products-block.homepage-products-1,
.products.products-block.homepage-products-2 {
    box-sizing: border-box;
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 40px;
    row-gap: 50px;
    width: 100%;
    max-width: var(--gl-page-max);
    margin: 0 auto;
    padding: 0 var(--gl-gutter) 0;
    background: transparent;
    list-style: none;
}

/* Skrýt Shoptet extra slidery v homepage-products (carousel) — necháváme grid */
.products.products-block.homepage-products-1 .carousel,
.products.products-block.homepage-products-2 .carousel,
.products.products-block.homepage-products-1 .slick-arrow,
.products.products-block.homepage-products-2 .slick-arrow,
.products.products-block.homepage-products-1 .slick-dots,
.products.products-block.homepage-products-2 .slick-dots {
    display: none !important;
}

/* Karta produktu */
.products.products-block.homepage-products-1 .product,
.products.products-block.homepage-products-2 .product {
    box-sizing: border-box;
    width: auto !important;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    overflow: visible;
    list-style: none;
}
.products.products-block .product .p,
.products.products-block .product div.p {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
}

/* Obrázek karty — čtverec s šedým pozadím */
.products.products-block .product .p .image,
.products.products-block .product a.image {
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    margin: 0;
    padding: 0;
    background: var(--gl-surface-alt);
    border: none;
    border-radius: 0;
    overflow: hidden;
    text-decoration: none;
}
.products.products-block .product .p .image img,
.products.products-block .product a.image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}
.products.products-block .product:hover .p .image img,
.products.products-block .product .p:hover .image img,
.products.products-block .product .image:hover img {
    transform: scale(1.04);
}

/* Skrytí Shoptet specifických elementů, které návrh nemá:
   ratings + dostupnost + popis + tools (Detail tlačítko) */
.products.products-block .product .ratings-wrapper,
.products.products-block .product .availability,
.products.products-block .product .stars-placeholder,
.products.products-block .product p.p-desc,
.products.products-block .product .p-desc,
.products.products-block .product .p-tools,
.products.products-block .product .add-to-cart,
.products.products-block .product .p-bottom .add-to-cart,
.products.products-block .product .variants-wrapper {
    display: none !important;
}

/* Inner wrapper karty */
.products.products-block .product .p-in,
.products.products-block .product .p-in-in {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
}

/* Název produktu */
.products.products-block .product .p-in a.name,
.products.products-block .product a.name {
    display: block;
    margin: 0;
    padding: 0;
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 22px;
    font-weight: var(--gl-w-medium);
    line-height: 26px;
    text-decoration: none;
    transition: text-decoration .15s;
}
.products.products-block .product a.name span,
.products.products-block .product a.name span[data-micro="name"] {
    color: inherit;
    font: inherit;
    text-transform: none;
    text-decoration: inherit;
}
.products.products-block .product a.name:hover,
.products.products-block .product a.name:hover span {
    text-decoration: underline;
    text-underline-offset: 4px;
    color: var(--gl-fg-1);
}

/* Cena */
.products.products-block .product .prices,
.products.products-block .product .p-bottom .prices {
    margin: 0;
    padding: 0;
    background: transparent;
    border: none;
}
.products.products-block .product .price.price-final,
.products.products-block .product .price.price-final strong {
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 22px;
    font-weight: var(--gl-w-regular);
    line-height: 26px;
    text-decoration: none;
}
.products.products-block .product .price-standard,
.products.products-block .product .p-bottom .price-standard {
    color: var(--gl-fg-2);
    font-family: var(--gl-font-ui);
    font-size: 16px;
    font-weight: var(--gl-w-regular);
    text-decoration: line-through;
}

/* p-bottom — kontejner pro cenu */
.products.products-block .product .p-bottom {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0;
    padding: 0;
    background: transparent;
}

/* Flag/badge "Bestseller" / akce — pokud Shoptet renderuje vendor flag */
.products.products-block .product .flags,
.products.products-block .product .flag {
    position: absolute;
    top: 14px;
    left: 14px;
    margin: 0;
    padding: 4px 10px;
    background: var(--gl-black);
    color: var(--gl-white);
    font-family: var(--gl-font-ui);
    font-size: 13px;
    font-weight: var(--gl-w-medium);
    line-height: 18px;
    letter-spacing: .04em;
    border: none;
    border-radius: 0;
    text-transform: none;
    z-index: 2;
}

/* Pseudo-badges odstraněny: dekorovat všechny karty stejnou nálepkou ztrácí informační hodnotu.
   Pokud chce admin označit produkt, použije Shoptet vendor flag (.flag/.flags) — ten je již
   nastylovaný výše (.products.products-block .product .flag). */

/* Responsive */
@media (max-width: 1279px) {
    .homepage-group-title.homepage-products-heading-1,
    .homepage-group-title.homepage-products-heading-2 {
        margin-bottom: 36px;
        padding: 96px 32px 0;
        font-size: 40px;
        line-height: 42px;
    }
    .products.products-block.homepage-products-1,
    .products.products-block.homepage-products-2 {
        grid-template-columns: repeat(3, 1fr);
        column-gap: 24px;
        row-gap: 36px;
        padding: 0 32px;
    }
    .products.products-block .product a.name { font-size: 18px; line-height: 22px; }
    .products.products-block .product .price.price-final,
    .products.products-block .product .price.price-final strong { font-size: 18px; line-height: 22px; }
}

@media (max-width: 767px) {
    .homepage-group-title.homepage-products-heading-1,
    .homepage-group-title.homepage-products-heading-2 {
        margin-bottom: 24px;
        padding: 64px 28px 0;
        font-size: 28px;
        line-height: 30px;
    }
    .products.products-block.homepage-products-1,
    .products.products-block.homepage-products-2 {
        grid-template-columns: repeat(2, 1fr);
        column-gap: 12px;
        row-gap: 24px;
        padding: 0 28px;
    }
    .products.products-block .product a.name { font-size: 14px; line-height: 18px; }
    .products.products-block .product .price.price-final,
    .products.products-block .product .price.price-final strong { font-size: 14px; line-height: 18px; }
}

/* ============================================ */
/* === Interní stránky: Kategorie + Detail produktu (společné) === */
/* ============================================ */

/* Skrýt levý sidebar (kategorie + top produkty + platby) — duplikuje navigaci a rozbíjí gallery feel */
body:not(.in-index) aside.sidebar,
body:not(.in-index) aside.sidebar-left {
    display: none !important;
}

/* Content-wrapper layout — main jde přes celou šířku */
body:not(.in-index) #content-wrapper.content-wrapper.container {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body:not(.in-index) #content-wrapper > .row,
body:not(.in-index) #content-wrapper > .container > .row {
    display: block !important;
    margin: 0 !important;
}
body:not(.in-index) main#content.content {
    box-sizing: border-box;
    width: 100% !important;
    max-width: var(--gl-page-max) !important;
    margin: 0 auto !important;
    padding: 0 var(--gl-gutter) !important;
    float: none !important;
}

/* Breadcrumbs — minimalistický řádek nad obsahem */
body:not(.in-index) .breadcrumbs-wrapper,
body:not(.in-index) .container.breadcrumbs-wrapper {
    box-sizing: border-box;
    width: 100% !important;
    max-width: var(--gl-page-max) !important;
    margin: 0 auto !important;
    padding: 24px var(--gl-gutter) 16px !important;
    background: transparent;
    border: 0 !important;
}
body:not(.in-index) .breadcrumbs {
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    color: var(--gl-fg-2);
    max-width: none !important;
    width: 100% !important;
    border: none;
}
body:not(.in-index) .breadcrumbs > * {
    display: inline-flex;
    align-items: center;
}
body:not(.in-index) .breadcrumbs a,
body:not(.in-index) .breadcrumbs span {
    color: var(--gl-fg-2);
    text-decoration: none;
    padding: 0 6px;
    font-weight: var(--gl-w-regular);
    transition: color .15s;
}
body:not(.in-index) .breadcrumbs a:hover {
    color: var(--gl-fg-1);
}
body:not(.in-index) .breadcrumbs a:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 4px;
}
body:not(.in-index) .breadcrumbs .navigation-home-icon-wrapper-inner,
body:not(.in-index) .breadcrumbs .home-icon,
body:not(.in-index) .breadcrumbs .icon-home {
    color: var(--gl-fg-2);
}
/* Šipka separator → tenká */
body:not(.in-index) .breadcrumbs .arrow,
body:not(.in-index) .breadcrumbs .breadcrumbs-separator,
body:not(.in-index) .breadcrumbs i.fa,
body:not(.in-index) .breadcrumbs .icon-arrow-right {
    margin: 0 4px;
    opacity: .5;
}

/* Bez border u Shoptet wrapperu pod breadcrumbs */
body:not(.in-index) .breadcrumbs-wrapper::after,
body:not(.in-index) .breadcrumbs-wrapper::before {
    display: none !important;
}
/* Vendor dává home ikonu (domeček) přes ::before na .navigation-home-icon-wrapper
   (= sama .breadcrumbs) → při zalomení překrývá text ("Vázy"). Skrýt. */
body:not(.in-index) .breadcrumbs.navigation-home-icon-wrapper::before,
body:not(.in-index) .breadcrumbs::before,
body:not(.in-index) .breadcrumbs::after {
    content: none !important;
    display: none !important;
    background: none !important;
    width: 0 !important;
    height: 0 !important;
}

/* ============================================ */
/* === Kategorie (listing) === */
/* ============================================ */

body.type-category main#content {
    padding: 0 var(--gl-gutter) var(--gl-section-gap) !important;
}

/* Header kategorie — nadpis */
body.type-category .category-top {
    margin: 0 0 40px;
    padding: 0;
}
body.type-category .category-title,
body.type-category h1.category-title {
    margin: 0 0 24px;
    padding: 0;
    font-family: var(--gl-font-ui);
    font-size: 56px;
    line-height: 56px;
    font-weight: var(--gl-w-bold);
    color: var(--gl-fg-1);
    letter-spacing: normal;
    text-transform: none;
}

/* "Nejprodávanější" featured top — skryjeme, kategorie nepotřebuje znovu featured trio.
   Pokud admin chce nechat, lze odkomentovat. */
body.type-category .products-top-wrapper {
    display: none !important;
}

/* Category header (filter/sort bar) */
body.type-category .category-header {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 32px !important;
    padding: 16px 0 !important;
    border-top: 1px solid var(--gl-divider);
    border-bottom: 1px solid var(--gl-divider);
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    color: var(--gl-fg-1);
}
body.type-category .category-header > * {
    margin: 0;
    padding: 0;
}
body.type-category .category-header .product-list-toggle,
body.type-category .category-header .display-products {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Sort + paging select */
body.type-category .category-header select,
body.type-category select.sort-products,
body.type-category select#sort,
body.type-category select.pagination-select {
    appearance: none;
    -webkit-appearance: none;
    background: var(--gl-white) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none' stroke='black' stroke-width='1.5'><path d='M1 1l4 4 4-4'/></svg>") no-repeat right 12px center/10px 6px;
    border: 1px solid var(--gl-stroke-1);
    border-radius: 0;
    padding: 8px 32px 8px 14px;
    height: 40px;
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 14px;
    font-weight: var(--gl-w-regular);
    cursor: pointer;
    transition: border-color .15s;
}
body.type-category .category-header select:hover { border-color: var(--gl-fg-1); }
body.type-category .category-header select:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 2px;
}

/* Kategorie produktový grid — stejný jako homepage */
body.type-category .products,
body.type-category .products-list,
body.type-category #products .products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 40px;
    row-gap: 50px;
    margin: 0 0 40px !important;
    padding: 0 !important;
    list-style: none !important;
    background: transparent !important;
}
body.type-category .products > .product,
body.type-category .products-list > .product {
    box-sizing: border-box;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    list-style: none;
}
body.type-category .product > .p,
body.type-category .product div.p {
    display: flex !important;
    flex-direction: column;
    gap: 14px;
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}
body.type-category .product a.image {
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    margin: 0;
    padding: 0;
    background: var(--gl-surface-alt);
    overflow: hidden;
    border: 0;
    border-radius: 0;
    text-decoration: none;
}
body.type-category .product a.image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}
body.type-category .product:hover a.image img,
body.type-category .product a.image:hover img {
    transform: scale(1.04);
}
body.type-category .product a.image:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 2px;
}
body.type-category .product .p-in,
body.type-category .product .p-in-in {
    display: block;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}
body.type-category .product a.name {
    display: block;
    margin: 0;
    padding: 0;
    color: var(--gl-fg-1);
    text-decoration: none;
    font-family: var(--gl-font-ui);
    font-size: 20px;
    font-weight: var(--gl-w-medium);
    line-height: 26px;
}
body.type-category .product a.name span {
    color: inherit;
    font: inherit;
}
body.type-category .product a.name:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}
body.type-category .product a.name:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 2px;
}

/* Skrýt vendor "Kód:", availability, stars na cards */
body.type-category .product .ratings-wrapper,
body.type-category .product .stars-wrapper,
body.type-category .product .availability,
body.type-category .product .p-code,
body.type-category .product .stars-placeholder,
body.type-category .product .p-desc,
body.type-category .product .p-tools,
body.type-category .product .add-to-cart,
body.type-category .product .extra-flags:empty {
    display: none !important;
}

/* p-bottom (cena) */
body.type-category .product .p-bottom,
body.type-category .product .p-bottom.no-buttons {
    display: block;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
}
body.type-category .product .prices {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
}
body.type-category .product .price.price-final,
body.type-category .product .price.price-final strong {
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 20px;
    font-weight: var(--gl-w-regular);
    line-height: 24px;
    background: transparent;
    text-decoration: none;
}
body.type-category .product .price-standard,
body.type-category .product .price-standard-wrapper,
body.type-category .product .price-standard-wrapper-placeholder {
    color: var(--gl-fg-2);
    font-family: var(--gl-font-ui);
    font-size: 15px;
    text-decoration: line-through;
    background: transparent;
}
body.type-category .product .price-standard-wrapper-placeholder { display: none; }

/* Paginace */
body.type-category .pagination,
body.type-category .paging {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin: 40px 0 0;
    padding: 0;
    list-style: none;
    font-family: var(--gl-font-ui);
}
body.type-category .pagination a,
body.type-category .pagination span,
body.type-category .paging a,
body.type-category .paging span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 10px;
    background: var(--gl-white);
    color: var(--gl-fg-1);
    border: 1px solid var(--gl-divider);
    text-decoration: none;
    font-size: 14px;
    font-weight: var(--gl-w-medium);
    transition: border-color .15s, background .15s, color .15s;
}
body.type-category .pagination a:hover,
body.type-category .paging a:hover {
    border-color: var(--gl-fg-1);
}
body.type-category .pagination .active span,
body.type-category .pagination span.active,
body.type-category .paging .active {
    background: var(--gl-black);
    color: var(--gl-white);
    border-color: var(--gl-black);
}
body.type-category .pagination a:focus-visible,
body.type-category .paging a:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 2px;
}

/* "Doporučujeme" / featured / informačné lišty pod gridem */
body.type-category .category-description,
body.type-category .category-perex {
    margin: 0 0 32px;
    padding: 0;
    font-family: var(--gl-font-body);
    font-size: 18px;
    line-height: 1.6;
    color: var(--gl-fg-1);
    max-width: 720px;
}

/* Responsive kategorie */
@media (max-width: 1279px) {
    body.type-category main#content { padding: 0 32px 96px !important; }
    body.type-category .category-title { font-size: 40px; line-height: 42px; }
    body.type-category .products,
    body.type-category .products-list { grid-template-columns: repeat(3, 1fr); column-gap: 24px; row-gap: 36px; }
    body.type-category .product a.name { font-size: 17px; line-height: 22px; }
    body.type-category .product .price-final,
    body.type-category .product .price-final strong { font-size: 17px; line-height: 22px; }
}
@media (max-width: 767px) {
    body.type-category main#content { padding: 0 20px 64px !important; }
    body.type-category .category-title { font-size: 28px; line-height: 30px; }
    body.type-category .category-top { margin-bottom: 20px; }
    body.type-category .category-header { padding: 12px 0 !important; gap: 12px; font-size: 13px; }
    body.type-category .category-header select { height: 36px; font-size: 13px; padding: 6px 28px 6px 12px; }
    body.type-category .products,
    body.type-category .products-list { grid-template-columns: repeat(2, 1fr); column-gap: 12px; row-gap: 24px; }
    body.type-category .product > .p { gap: 10px; }
    body.type-category .product a.name { font-size: 14px; line-height: 18px; }
    body.type-category .product .price-final,
    body.type-category .product .price-final strong { font-size: 14px; line-height: 18px; }
    body.type-category .pagination,
    body.type-category .paging { gap: 4px; }
    body.type-category .pagination a,
    body.type-category .pagination span,
    body.type-category .paging a,
    body.type-category .paging span { min-width: 36px; height: 36px; font-size: 13px; padding: 0 8px; }
}

/* ============================================ */
/* === Detail produktu === */
/* ============================================ */

body.type-detail main#content {
    padding: 0 var(--gl-gutter) var(--gl-section-gap) !important;
}
body.type-detail .p-detail {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}
body.type-detail .p-detail-inner {
    display: block;
    margin: 0;
    padding: 0;
}

/* Detail header (titul + kód) — celý nad row.product-top */
body.type-detail .p-detail-inner-header {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 32px;
    padding: 0;
    border: 0;
}
body.type-detail .p-detail-inner-header h1 {
    margin: 0;
    padding: 0;
    font-family: var(--gl-font-ui);
    font-size: 48px;
    line-height: 52px;
    font-weight: var(--gl-w-bold);
    color: var(--gl-fg-1);
    letter-spacing: normal;
    text-transform: none;
    flex: 1 1 auto;
    min-width: 0;
}
body.type-detail .p-detail-inner-header .p-code {
    flex: 0 0 auto;
    font-family: var(--gl-font-ui);
    font-size: 13px;
    color: var(--gl-fg-2);
    font-weight: var(--gl-w-regular);
}
body.type-detail .p-detail-inner-header .p-code .p-code-label {
    margin-right: 4px;
}

/* Row product-top: 50/50 layout */
body.type-detail .row.product-top {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    margin: 0 !important;
    align-items: start;
}
body.type-detail .row.product-top > .col-xs-12:not(.col-lg-6) {
    grid-column: 1 / -1;
    padding: 0 !important;
    margin: 0 !important;
}
body.type-detail .row.product-top > .col-xs-12.col-lg-6,
body.type-detail .row.product-top > .p-image-wrapper,
body.type-detail .row.product-top > .p-info-wrapper {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

/* Image wrapper — large square paper background */
body.type-detail .p-image-wrapper {
    position: relative;
}
body.type-detail .p-image,
body.type-detail #wrap,
body.type-detail .p-image > #wrap {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    background: var(--gl-surface-alt);
    position: relative !important;
    top: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    overflow: hidden;
}
body.type-detail .p-image a.p-main-image,
body.type-detail .p-image a.cloud-zoom,
body.type-detail #wrap > a {
    display: block !important;
    width: 100%;
    height: 100%;
    position: relative !important;
}
body.type-detail .p-image img,
body.type-detail #wrap img,
body.type-detail a.p-main-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block;
    margin: 0;
    padding: 0;
}

/* Info wrapper */
body.type-detail .p-info-wrapper {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 0;
}
/* p-detail-info (stars + brand) */
body.type-detail .p-detail-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
}
body.type-detail .stars-wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    color: var(--gl-fg-2);
}
body.type-detail .stars-wrapper .stars {
    color: var(--gl-fg-1);
    font-size: 14px;
}
body.type-detail .stars-wrapper .stars-label { color: var(--gl-fg-2); }
body.type-detail .stars-wrapper .btn--link {
    background: transparent;
    border: none;
    padding: 0;
    color: var(--gl-fg-1);
    text-decoration: underline;
    text-underline-offset: 3px;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    cursor: pointer;
}
body.type-detail .stars-wrapper .btn--link:hover { opacity: .65; }

body.type-detail .p-detail-info a {
    color: var(--gl-fg-1);
    text-decoration: none;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    transition: opacity .15s;
}
body.type-detail .p-detail-info a:hover { opacity: .65; }
body.type-detail .p-detail-info a:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 4px;
}

/* Price */
body.type-detail .p-final-price-wrapper {
    margin: 0;
    padding: 0;
    border: 0;
}
body.type-detail .p-final-price-wrapper strong.price-final,
body.type-detail strong.price-final {
    display: block;
    margin: 0;
    padding: 0;
    font-family: var(--gl-font-ui);
    font-size: 40px;
    line-height: 44px;
    font-weight: var(--gl-w-bold);
    color: var(--gl-fg-1);
}
body.type-detail .price-final-holder { font: inherit; color: inherit; }
body.type-detail .price-measure { font-size: 14px; color: var(--gl-fg-2); margin-left: 8px; }
body.type-detail .price-standard {
    color: var(--gl-fg-2);
    font-size: 18px;
    text-decoration: line-through;
    display: inline-block;
    margin-right: 12px;
}
body.type-detail .price-save {
    display: inline-block;
    margin-top: 6px;
    padding: 2px 10px;
    background: var(--gl-fg-1);
    color: var(--gl-white);
    font-size: 13px;
    font-weight: var(--gl-w-medium);
}

/* Availability */
body.type-detail .availability-value {
    font-family: var(--gl-font-ui);
    font-size: 15px;
    margin: 0;
    padding: 0;
}
body.type-detail .availability-label {
    font-weight: var(--gl-w-medium);
}

/* Detail parameters table */
body.type-detail table.detail-parameters {
    width: 100%;
    margin: 0;
    padding: 0;
    border-collapse: collapse;
    background: transparent;
    font-family: var(--gl-font-ui);
    font-size: 14px;
}
body.type-detail table.detail-parameters tr {
    border-bottom: 1px solid var(--gl-divider);
}
body.type-detail table.detail-parameters tr:last-child { border-bottom: 0; }
body.type-detail table.detail-parameters tr.sold-out {
    background: var(--gl-paper-2);
    border: 0;
}
body.type-detail table.detail-parameters tr.sold-out td {
    padding: 12px 14px;
    color: var(--gl-fg-1);
    font-weight: var(--gl-w-medium);
}
body.type-detail table.detail-parameters td {
    padding: 10px 0;
    color: var(--gl-fg-1);
    vertical-align: top;
}
body.type-detail table.detail-parameters td:first-child {
    color: var(--gl-fg-2);
    font-weight: var(--gl-w-regular);
    width: 40%;
}

/* Short description */
body.type-detail .p-short-description {
    font-family: var(--gl-font-body);
    font-size: 17px;
    line-height: 1.6;
    color: var(--gl-fg-1);
    margin: 0;
    padding: 0;
}
body.type-detail .p-short-description p { margin: 0 0 12px; }
body.type-detail .p-short-description p:last-child { margin-bottom: 0; }

/* "Detailní informace" link */
body.type-detail [data-testid="productCardDescr"] a,
body.type-detail .content-wrapper .chevron-after.chevron-down-after {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--gl-font-ui);
    font-size: 15px;
    font-weight: var(--gl-w-medium);
    color: var(--gl-fg-1);
    text-decoration: underline;
    text-underline-offset: 4px;
    transition: opacity .15s;
}
body.type-detail .content-wrapper [data-testid="productCardDescr"] a:hover,
body.type-detail .content-wrapper .chevron-after.chevron-down-after:hover { opacity: .65; }
body.type-detail .content-wrapper .chevron-after.chevron-down-after::after {
    content: "";
    display: inline-block;
    width: 10px;
    height: 6px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none' stroke='black' stroke-width='1.5'><path d='M1 1l4 4 4-4'/></svg>") center/contain no-repeat;
}

/* Variants / amount / add-to-cart form */
body.type-detail .content-wrapper .p-info-wrapper .amount,
body.type-detail .content-wrapper .amount-wrapper {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0;
    padding: 0;
}
body.type-detail .content-wrapper .amount-input-wrapper,
body.type-detail .content-wrapper .amount input[type="number"],
body.type-detail .content-wrapper input.amount {
    display: inline-flex;
    align-items: center;
    width: 110px;
    height: 52px;
    padding: 0 8px;
    border: 1px solid var(--gl-stroke-1);
    border-radius: 0;
    background: var(--gl-white);
    font-family: var(--gl-font-ui);
    font-size: 18px;
    text-align: center;
}
body.type-detail .content-wrapper .amount input[type="number"]:focus { outline: none; border-color: var(--gl-fg-1); }

/* Add to cart button (jen button, ne wrapper) */
body.type-detail .content-wrapper button.add-to-cart-button,
body.type-detail .content-wrapper #addToCart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    height: 52px;
    min-width: 220px;
    padding: 0 28px;
    background: var(--gl-black);
    color: var(--gl-white);
    border: 1px solid var(--gl-black);
    border-radius: 0;
    font-family: var(--gl-font-ui);
    font-size: 16px;
    font-weight: var(--gl-w-medium);
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: background .15s, color .15s, transform .12s;
}
body.type-detail .content-wrapper button.add-to-cart-button:hover,
body.type-detail .content-wrapper #addToCart:hover { background: #1a1a1a; }
body.type-detail .content-wrapper button.add-to-cart-button:focus-visible,
body.type-detail .content-wrapper #addToCart:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 3px;
}

/* Social/share/print row */
body.type-detail .content-wrapper .social-buttons-wrapper {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0;
    padding: 12px 0 0;
    border-top: 1px solid var(--gl-divider);
}
body.type-detail .content-wrapper .social-buttons-wrapper .link-icons {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-wrap: wrap;
}
body.type-detail .content-wrapper .link-icon {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--gl-fg-2);
    font-family: var(--gl-font-ui);
    font-size: 14px;
    font-weight: var(--gl-w-medium);
    text-transform: none;
    text-decoration: none;
    background: transparent !important;
    transition: color .15s;
}
body.type-detail .content-wrapper .link-icon::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background: center/contain no-repeat;
}
body.type-detail .content-wrapper .link-icon.print::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23828282' stroke-width='1.4'><path d='M4 4V1h8v3M4 11h8v4H4zM2 4h12v7H2z'/></svg>");
}
body.type-detail .content-wrapper .link-icon.chat::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23828282' stroke-width='1.4'><path d='M2 3h12v8H7l-3 3v-3H2z'/></svg>");
}
body.type-detail .content-wrapper .link-icon.share::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23828282' stroke-width='1.4'><circle cx='4' cy='8' r='2'/><circle cx='12' cy='3' r='2'/><circle cx='12' cy='13' r='2'/><path d='m6 7 4-3M6 9l4 3'/></svg>");
}
body.type-detail .content-wrapper .link-icon:hover { color: var(--gl-fg-1); }
body.type-detail .content-wrapper .link-icon:hover::before { filter: brightness(0); }
body.type-detail .content-wrapper .link-icon:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 4px;
}

/* Detail tabs (Popis / Diskuze) */
body.type-detail .content-wrapper .product-tabs,
body.type-detail .content-wrapper .tabs,
body.type-detail .content-wrapper ul.nav-tabs {
    display: flex !important;
    gap: 0;
    margin: 56px 0 0 !important;
    padding: 0 !important;
    list-style: none;
    border: 0 !important;
    border-bottom: 1px solid var(--gl-divider) !important;
}
body.type-detail .content-wrapper .product-tabs > li,
body.type-detail .content-wrapper .tabs > li,
body.type-detail .content-wrapper ul.nav-tabs > li {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    list-style: none;
}
body.type-detail .content-wrapper .product-tabs > li > a,
body.type-detail .content-wrapper .tabs > li > a,
body.type-detail .content-wrapper ul.nav-tabs > li > a {
    display: inline-flex;
    align-items: center;
    padding: 16px 24px !important;
    margin: 0 !important;
    background: transparent !important;
    color: var(--gl-fg-2) !important;
    font-family: var(--gl-font-ui);
    font-size: 16px;
    font-weight: var(--gl-w-medium);
    text-decoration: none !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    transition: color .15s, border-color .15s;
}
body.type-detail .content-wrapper .product-tabs > li.active > a,
body.type-detail .content-wrapper .product-tabs > li > a.active,
body.type-detail .content-wrapper .tabs > li.active > a,
body.type-detail .content-wrapper ul.nav-tabs > li.active > a {
    color: var(--gl-fg-1) !important;
    border-bottom-color: var(--gl-fg-1) !important;
}
body.type-detail .content-wrapper .product-tabs > li > a:hover,
body.type-detail .content-wrapper .tabs > li > a:hover {
    color: var(--gl-fg-1) !important;
}
body.type-detail .content-wrapper .product-tabs > li > a:focus-visible,
body.type-detail .content-wrapper .tabs > li > a:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: -2px;
}

/* Tab panels */
body.type-detail .content-wrapper .tab-content,
body.type-detail .content-wrapper .tab-pane {
    margin: 0;
    padding: 32px 0;
    background: transparent;
    border: 0;
    font-family: var(--gl-font-body);
    font-size: 17px;
    line-height: 1.7;
    color: var(--gl-fg-1);
}
body.type-detail .content-wrapper .tab-content h2,
body.type-detail .content-wrapper .tab-content h3 {
    font-family: var(--gl-font-ui);
    font-size: 28px;
    line-height: 1.2;
    font-weight: var(--gl-w-bold);
    margin: 0 0 20px;
    color: var(--gl-fg-1);
}
body.type-detail .content-wrapper .tab-content p { margin: 0 0 16px; }
body.type-detail .content-wrapper .tab-content a {
    color: var(--gl-fg-1);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Related / similar products under detail */
body.type-detail .content-wrapper .related-products,
body.type-detail .content-wrapper .similar-products,
body.type-detail .content-wrapper .also-bought-products {
    margin: 80px 0 0;
    padding: 0;
}
body.type-detail .content-wrapper .related-products h2,
body.type-detail .content-wrapper .related-products .h2,
body.type-detail .content-wrapper .similar-products h2 {
    margin: 0 0 32px;
    padding: 0;
    font-family: var(--gl-font-ui);
    font-size: 32px;
    line-height: 36px;
    font-weight: var(--gl-w-bold);
    color: var(--gl-fg-1);
}
body.type-detail .content-wrapper .related-products .products,
body.type-detail .content-wrapper .similar-products .products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 40px;
    row-gap: 50px;
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Responsive detail */
@media (max-width: 1023px) {
    body.type-detail .content-wrapper main#content { padding: 0 32px 96px !important; }
    body.type-detail .content-wrapper .row.product-top {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    body.type-detail .content-wrapper .p-detail-inner-header h1 { font-size: 36px; line-height: 40px; }
    body.type-detail .content-wrapper .p-final-price-wrapper strong.price-final,
    body.type-detail .content-wrapper strong.price-final { font-size: 32px; line-height: 36px; }
    body.type-detail .content-wrapper .related-products .products,
    body.type-detail .content-wrapper .similar-products .products { grid-template-columns: repeat(3, 1fr); column-gap: 24px; row-gap: 36px; }
}
@media (max-width: 767px) {
    body.type-detail .content-wrapper main#content { padding: 0 20px 64px !important; }
    body.type-detail .content-wrapper .p-detail-inner-header { margin-bottom: 20px; }
    body.type-detail .content-wrapper .p-detail-inner-header h1 { font-size: 28px; line-height: 32px; }
    body.type-detail .content-wrapper .p-final-price-wrapper strong.price-final,
    body.type-detail .content-wrapper strong.price-final { font-size: 26px; line-height: 30px; }
    body.type-detail .content-wrapper .add-to-cart,
    body.type-detail .content-wrapper #addToCart { width: 100%; min-width: 0; height: 48px; font-size: 15px; }
    body.type-detail .content-wrapper .amount-input-wrapper,
    body.type-detail .content-wrapper .amount input[type="number"],
    body.type-detail .content-wrapper input.amount { width: 90px; height: 48px; }
    body.type-detail .content-wrapper .product-tabs > li > a,
    body.type-detail .content-wrapper .tabs > li > a,
    body.type-detail .content-wrapper ul.nav-tabs > li > a { padding: 12px 16px !important; font-size: 14px; }
    body.type-detail .content-wrapper .tab-content { padding: 24px 0; font-size: 15px; }
    body.type-detail .content-wrapper .social-buttons-wrapper .link-icons { gap: 14px; }
    body.type-detail .content-wrapper .related-products,
    body.type-detail .content-wrapper .similar-products { margin-top: 48px; }
    body.type-detail .content-wrapper .related-products h2,
    body.type-detail .content-wrapper .similar-products h2 { font-size: 22px; line-height: 26px; }
    body.type-detail .content-wrapper .related-products .products,
    body.type-detail .content-wrapper .similar-products .products { grid-template-columns: repeat(2, 1fr); column-gap: 12px; row-gap: 24px; }
}

/* ============================================ */
/* === Košík === */
/* ============================================ */

/* Layout: main 8/4 split (cart items / sidebar), responsive */
body.ordering-process main#content,
body:has(#cart-wrapper) main#content {
    padding: 0 var(--gl-gutter) var(--gl-section-gap) !important;
    box-sizing: border-box;
    width: 100% !important;
    max-width: var(--gl-page-max) !important;
    margin: 0 auto !important;
}
body.ordering-process main#content > .content-inner,
body.ordering-process main#content > .content-inner {
    padding: 0;
    margin: 0;
}
#cart-wrapper {
    padding: 32px 0 0;
    margin: 0;
}
#cart-wrapper .cart-inner {
    margin: 0;
    padding: 0;
}

/* 8/4 grid layout (vendor bootstrap col-md-8 / col-md-4)
   POZOR: Shoptet/Bootstrap má `direction: rtl` nebo flex-direction reverz na .row
   → musíme explicit grid-column / grid-row aby cart items byly vlevo, sidebar vpravo. */
#cart-wrapper .row.cart-row {
    display: grid !important;
    grid-template-columns: 1fr 380px;
    grid-template-rows: auto;
    gap: 40px;
    margin: 0 !important;
    direction: ltr !important;
}
#cart-wrapper .row.cart-row > .col-md-8 {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    direction: ltr;
}
#cart-wrapper .row.cart-row > .col-md-4 {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    direction: ltr;
}

/* === Step indicator (ol.cart-header.step-0) === */
ol.cart-header,
ol.cart-header.step-0,
ol.cart-header.step-1,
ol.cart-header.step-2 {
    display: flex !important;
    align-items: stretch;
    justify-content: space-between;
    gap: 0;
    margin: 0 0 32px !important;
    padding: 0 !important;
    list-style: none !important;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--gl-divider);
    counter-reset: step;
}
ol.cart-header > li,
ol.cart-header > li.step {
    flex: 1 1 0;
    margin: 0 !important;
    padding: 16px 0 !important;
    background: transparent;
    border: 0;
    border-bottom: 3px solid transparent;
    text-align: center;
    list-style: none;
    counter-increment: step;
    font-family: var(--gl-font-ui);
    font-size: 15px;
    font-weight: var(--gl-w-medium);
    color: var(--gl-fg-2);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    transition: color .15s, border-color .15s;
    position: relative;
    margin-bottom: -1px !important;
}
ol.cart-header > li::before {
    content: counter(step);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin-right: 10px;
    background: transparent;
    color: var(--gl-fg-2);
    border: 1.5px solid var(--gl-fg-2);
    border-radius: 50%;
    font-family: var(--gl-font-ui);
    font-size: 12px;
    font-weight: var(--gl-w-bold);
    letter-spacing: 0;
    vertical-align: middle;
    transition: background .15s, color .15s, border-color .15s;
}
ol.cart-header > li.active,
ol.cart-header > li.step.active {
    color: var(--gl-fg-1) !important;
    border-bottom-color: var(--gl-fg-1) !important;
}
ol.cart-header > li.active::before,
ol.cart-header > li.step.active::before {
    background: var(--gl-fg-1);
    color: var(--gl-white);
    border-color: var(--gl-fg-1);
}
ol.cart-header > li strong,
ol.cart-header > li a {
    color: inherit !important;
    background: transparent !important;
    text-decoration: none !important;
    font-weight: inherit !important;
    display: inline-flex;
    align-items: center;
}
ol.cart-header > li a:hover {
    color: var(--gl-fg-1) !important;
}
ol.cart-header > li a:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 4px;
}
/* Skryj cislo vendor */
ol.cart-header > li > strong > span,
ol.cart-header > li > a > span {
    color: inherit;
    font: inherit;
}

/* === Cart table === */
table.cart-table {
    width: 100%;
    margin: 0;
    padding: 0;
    border-collapse: collapse;
    background: transparent;
    border: 0;
    font-family: var(--gl-font-ui);
}
table.cart-table thead { display: none; }
table.cart-table tr.removeable {
    border-top: 1px solid var(--gl-divider);
    border-bottom: 1px solid var(--gl-divider);
    margin: 0;
}
table.cart-table tr.removeable + tr.removeable {
    border-top: 0;
}
table.cart-table td {
    padding: 20px 12px;
    vertical-align: middle;
    background: transparent;
    border: 0;
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 15px;
}
table.cart-table td:first-child { padding-left: 0; }
table.cart-table td:last-child  { padding-right: 0; }
table.cart-table .p-label {
    display: none;       /* labely "Cena za m.j.", "Součet" — skryt desktop, mobile aktivni */
}

/* Product image cell */
table.cart-table td.cart-p-image {
    width: 96px;
}
table.cart-table td.cart-p-image a {
    display: block;
    width: 80px;
    height: 80px;
    overflow: hidden;
    background: var(--gl-surface-alt);
}
table.cart-table td.cart-p-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Name cell */
table.cart-table td.p-name {
    font-family: var(--gl-font-ui);
}
table.cart-table td.p-name a.main-link {
    color: var(--gl-fg-1);
    font-size: 17px;
    font-weight: var(--gl-w-medium);
    text-decoration: none;
    line-height: 1.3;
    transition: text-decoration .15s;
}
table.cart-table td.p-name a.main-link:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}
table.cart-table td.p-name a.main-link:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 2px;
}

/* Availability cell */
table.cart-table td.p-availability { width: 130px; }
table.cart-table td.p-availability strong.availability-label {
    color: var(--gl-fg-1) !important;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    font-weight: var(--gl-w-medium);
}
table.cart-table td.p-availability .availability-amount {
    color: var(--gl-fg-2);
    font-size: 13px;
}

/* Quantity cell */
.decrease__sign, .increase__sign {
    display: none;
}
table.cart-table td.p-quantity { width: 140px; }
table.cart-table .quantity-form { margin: 0; padding: 0; }
table.cart-table span.quantity {
    display: inline-grid;
    grid-template-columns: 36px 1fr 36px;
    align-items: stretch;
    width: 120px;
    height: 40px;
    border: 1px solid var(--gl-stroke-1);
    background: var(--gl-white);
}
table.cart-table span.quantity label {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
}
table.cart-table span.quantity input.amount,
table.cart-table input[type="number"].amount {
    width: 100%;
    height: 38px;
    border: none;
    background: transparent;
    text-align: center;
    font-family: var(--gl-font-ui);
    font-size: 15px;
    font-weight: var(--gl-w-medium);
    color: var(--gl-fg-1);
    outline: none;
    -moz-appearance: textfield;
    appearance: textfield;
}
table.cart-table input[type="number"].amount::-webkit-inner-spin-button,
table.cart-table input[type="number"].amount::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
table.cart-table span.quantity button.decrease,
table.cart-table span.quantity button.increase {
    grid-row: 1;
    margin: 0;
    padding: 0;
    background: transparent;
    border: none;
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    transition: background .15s;
}
table.cart-table span.quantity button.decrease { grid-column: 1; border-right: 1px solid var(--gl-divider); }
table.cart-table span.quantity button.increase { grid-column: 3; border-left: 1px solid var(--gl-divider); }
table.cart-table span.quantity button:hover { background: var(--gl-paper-3); }
table.cart-table span.quantity button:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: -2px;
}

/* Price cell */
table.cart-table td.p-price {
    width: 140px;
    text-align: right;
}
table.cart-table td.p-price strong.price-final {
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 16px;
    font-weight: var(--gl-w-medium);
}
table.cart-table td.p-price .unit-value {
    color: var(--gl-fg-2);
    font-size: 13px;
    margin-left: 4px;
}

/* Total cell + remove button */
table.cart-table td.p-total {
    width: 160px;
    text-align: right;
    position: relative;
    padding-right: 0;
}
table.cart-table td.p-total strong.price-final {
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 18px;
    font-weight: var(--gl-w-bold);
}
table.cart-table td.p-total form.inline { display: inline-block; }
table.cart-table td.p-total button.remove-item {
    cursor: pointer;
    min-width: 0;
    border: 1px solid black;
    margin-left: 5px;
}
table.cart-table td.p-total button.remove-item:hover {
    opacity: 1;
}
table.cart-table td.p-total button.remove-item:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 2px;
}
table.cart-table td.p-total button.remove-item .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

/* === Cart summary (Dárky a slevy + Doprava zdarma) === */
.cart-summary {
    margin: 32px 0 0;
    padding: 0;
}
.cart-summary > h2,
.cart-summary > h2.h4 {
    margin: 0 0 16px;
    padding: 0;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    font-weight: var(--gl-w-medium);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gl-fg-2);
    border: 0;
    background: transparent;
}
.cart-summary .extras-wrapper {
    display: flex;
    gap: 24px;
    align-items: start;
}
.cart-summary .extras-col {
    padding: 0;
    background: transparent;
}
.cart-summary .extras-wrap {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.cart-summary .extra.delivery {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px 14px 56px;
    background: var(--gl-paper-2);
    border: 1px solid var(--gl-divider);
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 15px;
}
.cart-summary .extra.delivery::before {
    content: "";
    display: inline-block;
    width: 22px;
    height: 22px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22' fill='none' stroke='black' stroke-width='1.4'><path d='M2 6h11v8H2z'/><path d='M13 9h4l3 3v2h-7'/><circle cx='6' cy='16' r='1.8'/><circle cx='16' cy='16' r='1.8'/></svg>") center/contain no-repeat;
    flex-shrink: 0;
    margin-top: -13px;
    margin-left: 20px;
}
.cart-summary .extra.delivery span { display: inline; }
.cart-summary .extra.delivery strong {
    color: var(--gl-fg-1);
    font-weight: var(--gl-w-medium);
    background: transparent;
}

/* === Sidebar in cart === */
.sidebar-in-cart {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.sidebar-in-cart .cart-content {
    padding: 0;
    margin: 0;
    background: transparent;
}
.sidebar-in-cart .box,
.sidebar-in-cart .box-sm,
.sidebar-in-cart .box-bg-default {
    padding: 24px;
    margin: 0;
    background: white;
    border: 1px solid var(--gl-divider);
    border-radius: 0;
    box-shadow: none;
}
.sidebar-in-cart h2,
.sidebar-in-cart h2.h4 {
    margin: 0 0 16px;
    padding: 0;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    font-weight: var(--gl-w-medium);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gl-fg-2);
}

/* Kontakt box */
.sidebar-in-cart .contact-box strong {
    display: block;
    margin: 0 0 12px;
    font-family: var(--gl-font-ui);
    font-size: 17px;
    font-weight: var(--gl-w-medium);
    color: var(--gl-fg-1);
}
.sidebar-in-cart .contact-box ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.sidebar-in-cart .contact-box li {
    margin: 0;
    padding: 0;
    list-style: none;
}
.sidebar-in-cart .contact-box .tel,
.sidebar-in-cart .contact-box .mail {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.sidebar-in-cart .contact-box a {
    color: var(--gl-fg-1);
    text-decoration: none;
    font-family: var(--gl-font-ui);
    font-size: 15px;
    font-weight: var(--gl-w-medium);
    transition: opacity .15s;
}
.sidebar-in-cart .contact-box a:hover { opacity: .65; }
.sidebar-in-cart .contact-box a:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 4px;
}

/* Summary box (Celkem + buttons) */
.sidebar-in-cart .summary-wrapper {
    margin: 0;
    padding: 0;
}
.sidebar-in-cart .summary-wrapper .box {
    padding: 24px;
}
.sidebar-in-cart .price-wrapper {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--gl-divider);
}
.sidebar-in-cart .price-label,
.sidebar-in-cart .price-label.price-primary {
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 16px;
    font-weight: var(--gl-w-medium);
    background: transparent;
}
.sidebar-in-cart .price.price-primary,
.sidebar-in-cart .price.price-primary strong,
.sidebar-in-cart strong.price.price-primary {
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 28px;
    font-weight: var(--gl-w-bold);
    background: transparent;
}

/* Next-step buttons (Zpět do obchodu + Pokračovat) */
.sidebar-in-cart .next-step,
.sidebar-in-cart .next-step--cart {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
}
.sidebar-in-cart .next-step a,
.sidebar-in-cart .next-step .btn,
.sidebar-in-cart .next-step .btn-lg {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    height: 52px;
    padding: 0 24px;
    margin: 0;
    background: var(--gl-white);
    color: var(--gl-fg-1);
    border: 1px solid var(--gl-stroke-1);
    border-radius: 0;
    box-shadow: none;
    font-family: var(--gl-font-ui);
    font-size: 16px;
    font-weight: var(--gl-w-medium);
    text-decoration: none;
    text-transform: none;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s, transform .12s;
}
.sidebar-in-cart .next-step a:hover {
    background: var(--gl-paper-3);
}
.sidebar-in-cart .next-step a:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 3px;
}
.sidebar-in-cart .next-step a.btn-conversion,
.sidebar-in-cart .next-step a.next-step-forward,
.sidebar-in-cart .next-step #continue-order-button {
    background: var(--gl-black) !important;
    color: var(--gl-white) !important;
    border-color: var(--gl-black) !important;
    order: 2;
}
.sidebar-in-cart .next-step a.btn-conversion::after,
.sidebar-in-cart .next-step a.next-step-forward::after {
    content: "";
    display: inline-block;
    width: 16px;
    height: 12px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='square'><path d='M0 6h14M9 1l5 5-5 5'/></svg>") center/contain no-repeat;
    transition: transform .15s;
}
.sidebar-in-cart .next-step a.btn-conversion:hover::after,
.sidebar-in-cart .next-step a.next-step-forward:hover::after {
    transform: translateX(3px);
}
.sidebar-in-cart .next-step a.btn-conversion:hover,
.sidebar-in-cart .next-step a.next-step-forward:hover {
    background: #1a1a1a !important;
    border-color: #1a1a1a !important;
}
.sidebar-in-cart .next-step a.next-step-back {
    order: 1;
    background: transparent;
    border-color: transparent;
    color: var(--gl-fg-2);
}
.sidebar-in-cart .next-step a.next-step-back:hover {
    color: var(--gl-fg-1);
    background: transparent;
    text-decoration: underline;
    text-underline-offset: 4px;
}
.sidebar-in-cart .next-step .continue-shopping {
    font-family: var(--gl-font-ui);
    font-size: 14px;
    font-weight: var(--gl-w-regular);
    color: inherit;
    text-transform: none;
}
.sidebar-in-cart .next-step .order-button-text {
    color: inherit;
    font: inherit;
    text-transform: none;
}

/* Prázdný košík */
body.in-kosik main#content {
    padding: 0 var(--gl-gutter) var(--gl-section-gap) !important;
}
body.in-kosik main#content > h1 {
    margin: 32px 0 32px;
    padding: 0;
    font-family: var(--gl-font-ui);
    font-size: 40px;
    line-height: 44px;
    font-weight: var(--gl-w-bold);
    color: var(--gl-fg-1);
    text-align: left;
}

/* HLEDAT button v search formách — kompletní override (purple → black) */
button.btn-default[type="submit"], button[type="submit"].btn-default, button[type="submit"].btn-primary, button[type="submit"][value="Hledat"] {
    background: var(--gl-black) !important;
    background-image: none !important;
    color: var(--gl-white) !important;
    border: 1px solid var(--gl-black) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em;
    font-family: var(--gl-font-ui) !important;
    font-weight: var(--gl-w-medium) !important;
    padding: 0 20px !important;
    height: 44px !important;
    min-width: 100px;
}
button[type="submit"]:not(#orderFormButton):not(.btn-conversion):hover {
    background: #1a1a1a !important;
}

/* Responsive košík */
@media (max-width: 1023px) {
    body.ordering-process main#content { padding: 0 32px 96px !important; }
    #cart-wrapper .row.cart-row {
        grid-template-columns: 1fr !important;
        gap: 32px;
    }
    #cart-wrapper .row.cart-row > .col-md-8 {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }
    #cart-wrapper .row.cart-row > .col-md-4 {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }
    .cart-summary .extras-wrapper { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
    body.ordering-process main#content { padding: 0 16px 64px !important; }
    #cart-wrapper { padding: 16px 0 0; }
    ol.cart-header > li,
    ol.cart-header > li.step {
        font-size: 11px;
        padding: 12px 4px !important;
    }
    ol.cart-header > li::before {
        width: 20px;
        height: 20px;
        font-size: 11px;
        margin-right: 6px;
    }
    ol.cart-header > li > strong > span,
    ol.cart-header > li > a > span {
        display: none;
    }
    ol.cart-header > li.active > strong > span,
    ol.cart-header > li.active > a > span {
        display: inline;
    }
    /* Mobile cart table → kazda buncka jako row */
    table.cart-table,
    table.cart-table tbody,
    table.cart-table tr.removeable,
    table.cart-table td {
        display: block;
        width: 100% !important;
    }
    table.cart-table tr.removeable {
        position: relative;
        padding: 16px 0;
        display: grid;
        grid-template-columns: 80px 1fr;
        gap: 12px;
        align-items: start;
    }
    table.cart-table td {
        padding: 4px 0 !important;
        text-align: left !important;
    }
    table.cart-table td.cart-p-image {
        grid-row: 1 / span 5;
        grid-column: 1;
        padding: 0 !important;
    }
    table.cart-table td.cart-p-image a {
        width: 80px;
        height: 80px;
    }
    table.cart-table td.p-name { grid-column: 2; grid-row: 1; padding-top: 0 !important; }
    table.cart-table td.p-availability { grid-column: 2; grid-row: 2; }
    table.cart-table td.p-quantity { grid-column: 2; grid-row: 3; }
    table.cart-table td.p-price { grid-column: 2; grid-row: 4; }
    table.cart-table td.p-total {
        grid-column: 2;
        grid-row: 5;
        padding-right: 40px !important;
    }
    table.cart-table .p-label {
        display: inline-block !important;
        color: var(--gl-fg-2);
        font-size: 12px;
        margin-right: 6px;
    }
}

/* ============================================ */
/* === Pokladna (Checkout / objednavka kroky 1-3) === */
/* ============================================ */

/* Použít stejný `body:has(#cart-wrapper)` selector pro layout — kosik + checkout sdílí */
body.ordering-process #cart-wrapper,
body.ordering-process .cart-inner { padding-top: 32px; }

/* Override id #checkoutContent na .col-md-8 layout (stejně jako cart) */
#cart-wrapper .row.cart-row > #checkoutContent.col-md-8 {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
}

/* Boxes (sekce s headingem) */
.box.co-box,
.box-sm.box-bg-default.co-box {
    box-sizing: border-box;
    margin: 0 0 24px;
    padding: 28px 32px;
    background: var(--gl-white);
    border: 1px solid var(--gl-divider);
    border-radius: 0;
    box-shadow: none;
}

/* Heading sekce (h4.order-icon.order-*) */
.box h4.order-icon,
.box h4.order-information,
.box h4.order-delivery,
.box h4.order-payment,
.box h4.order-summary,
.box h4.order-info {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 24px;
    padding: 0 0 16px;
    border-bottom: 1px solid var(--gl-divider);
    background: transparent;
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 14px;
    font-weight: var(--gl-w-medium);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.box h4.order-icon::before {
    content: "";
    display: inline-block;
    width: 24px;
    height: 24px;
    background: var(--gl-paper-3) center/16px 16px no-repeat;
    border-radius: 50%;
    flex-shrink: 0;
}
.box h4.order-information::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.4'><circle cx='8' cy='4' r='1.5'/><path d='M8 7v6'/></svg>");
}
.box h4.order-delivery::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.4'><path d='M1 4h9v7H1z'/><path d='M10 6h3l2 2v3h-5'/><circle cx='4' cy='12' r='1.3'/><circle cx='12' cy='12' r='1.3'/></svg>");
}
.box h4.order-payment::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.4'><rect x='1' y='3' width='14' height='10'/><path d='M1 6h14'/></svg>");
}
.box h4.order-info::before,
.box h4.order-summary::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.4'><path d='M3 3h10v10H3z'/><path d='M5 6h6M5 9h6M5 12h4'/></svg>");
}

/* "Přihlásit se do mého účtu" trigger button — vendor blue → black outlined */
body.ordering-process .open-login,
body.ordering-process a.open-login,
body.ordering-process button.open-login,
body.ordering-process .toggle-window[data-target="login"],
body.ordering-process .login-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 16px !important;
    background: var(--gl-white) !important;
    background-image: none !important;
    color: var(--gl-fg-1) !important;
    border: 1px solid var(--gl-stroke-1) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: var(--gl-font-ui) !important;
    font-size: 12px !important;
    font-weight: var(--gl-w-medium) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em;
    text-decoration: none !important;
    cursor: pointer;
    transition: background .15s, color .15s;
}
body.ordering-process .open-login:hover {
    background: var(--gl-fg-1) !important;
    color: var(--gl-white) !important;
}

/* Sekce ikony (person/pin) — vendor SVG je modrý → neutralizovat */
body.ordering-process .order-icon-svg,
body.ordering-process .section-icon,
body.ordering-process .form-section-icon,
body.ordering-process h4.order-icon svg,
body.ordering-process .order-personal-data > svg,
body.ordering-process .order-info-svg,
body.ordering-process .order-billing > svg {
    color: var(--gl-fg-1) !important;
    fill: var(--gl-fg-1) !important;
    filter: grayscale(100%);
}

/* "Odesláním objednávky souhlasíte..." text + linky */
body.ordering-process .order-confirm,
body.ordering-process .order-terms,
body.ordering-process .gdpr-consent,
#checkoutSidebar .order-confirm,
#checkoutSidebar .order-terms,
.order-confirm-info {
    margin: 12px 0;
    font-family: var(--gl-font-ui);
    font-size: 12px;
    line-height: 1.5;
    color: var(--gl-fg-2);
}
body.ordering-process .order-confirm a,
body.ordering-process .order-terms a,
#checkoutSidebar .order-confirm a,
.order-confirm-info a {
    color: var(--gl-fg-1);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: opacity .15s;
}
body.ordering-process .order-confirm a:hover { opacity: .65; }

/* Form-group + smart-label-wrapper (label nad/u inputu) */
.box .form-group,
.box .form-group-wrapped {
    margin: 0 0 16px 20px;
    padding: 0;
    position: relative;
}
.box .smart-label-wrapper.populated > label,
.box .form-group label,
.box label.select-label,
.box label.field-label {
    display: block;
    margin: 0 0 6px;
    padding: 0;
    color: var(--gl-fg-2);
    font-family: var(--gl-font-ui);
    font-size: 13px;
    font-weight: var(--gl-w-medium);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* Form inputs / selects */
.box select.form-control,
.box input.form-control,
.box input[type="text"].form-control,
.box input[type="email"].form-control,
.box input[type="tel"].form-control,
.box textarea.form-control,
body.ordering-process select.form-control,
body.ordering-process input.form-control,
body.ordering-process input[type="text"],
body.ordering-process input[type="email"],
body.ordering-process input[type="tel"],
body.ordering-process textarea.form-control {
    box-sizing: border-box;
    width: 100%;
    height: 48px;
    padding: 0 16px;
    background: var(--gl-white);
    color: var(--gl-fg-1);
    border: 1px solid var(--gl-stroke-1);
    border-radius: 0;
    box-shadow: none;
    font-family: var(--gl-font-ui);
    font-size: 15px;
    font-weight: var(--gl-w-regular);
    transition: border-color .15s, box-shadow .15s;
    outline: none;
}
body.ordering-process textarea.form-control { height: auto; min-height: 96px; padding: 12px 16px; line-height: 1.5; }
body.ordering-process select.form-control {
    appearance: none;
    -webkit-appearance: none;
    background: var(--gl-white) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none' stroke='black' stroke-width='1.5'><path d='M1 1l4 4 4-4'/></svg>") no-repeat right 16px center/10px 6px;
    padding-right: 40px;
    cursor: pointer;
}
body.ordering-process .form-control:focus,
body.ordering-process input:focus,
body.ordering-process select:focus,
body.ordering-process textarea:focus {
    border-color: var(--gl-fg-1);
    box-shadow: 0 0 0 2px rgba(0,0,0,.08);
}
body.ordering-process .form-control:focus-visible {
    outline: none;
}

/* Shipping / Payment radio options */
.shipping-billing-table {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
}
.shipping-billing-table .radio-wrapper {
    box-sizing: border-box;
    display: block;
    margin: 0;
    padding: 0;
    background: var(--gl-white);
    border: 1px solid var(--gl-divider);
    transition: border-color .15s, background .15s;
}
.shipping-billing-table .radio-wrapper:hover {
    border-color: var(--gl-fg-1);
}
.shipping-billing-table .radio-wrapper.active,
.shipping-billing-table .radio-wrapper:has(input:checked) {
    border-color: var(--gl-fg-1) !important;
    background: var(--gl-paper-2);
}
.shipping-billing-table .radio-wrapper input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.shipping-billing-table .radio-wrapper label {
    display: grid !important;
    grid-template-columns: 32px 1fr auto auto;
    align-items: center;
    gap: 16px;
    width: 100%;
    margin: 0;
    padding: 16px 20px;
    cursor: pointer;
    font-family: var(--gl-font-ui);
}
.shipping-billing-table .radio-wrapper label::before {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    background: var(--gl-white);
    border: 1.5px solid var(--gl-stroke-1);
    border-radius: 50%;
    transition: border-color .15s, background .15s;
    flex-shrink: 0;
    left: 16px;
}
:where(.ums_forms_redesign--off) input[type=checkbox]+label, :where(.ums_forms_redesign--off) input[type=radio]+label
 {
    display: inline-block;
    line-height: 20px !important;
    margin-right: 15px !important;
    padding-left: 21px !important;
    position: relative;
    padding-bottom: 14px !important;
    padding-top: 14px !important;
}
.shipping-billing-table .radio-wrapper.active label::before,
.shipping-billing-table .radio-wrapper:has(input:checked) label::before {
    background: radial-gradient(var(--gl-fg-1) 0 6px, var(--gl-white) 7px 100%);
    border-color: var(--gl-fg-1);
}
.shipping-billing-table .radio-wrapper.active label::after, .shipping-billing-table .radio-wrapper:has(input:checked) label::after {
    display:none;
}
.shipping-billing-table .radio-wrapper:focus-within label::before {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 4px;
}
.shipping-billing-table .payment-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    grid-column: 2;
}
.shipping-billing-table b.shipping-billing-name {
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 15px;
    font-weight: var(--gl-w-medium);
    text-transform: none;
}
.shipping-billing-table .sublabel,
.shipping-billing-table .pickup-point-choose {
    color: var(--gl-fg-2);
    font-size: 13px;
    font-weight: var(--gl-w-regular);
}
.shipping-billing-table .sublabel a,
.shipping-billing-table .pickup-point-choose a {
    color: var(--gl-fg-1);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: opacity .15s;
}
.shipping-billing-table .sublabel a:hover { opacity: .65; }
.shipping-billing-table .payment-logo {
    grid-column: 3;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
}
.shipping-billing-table .payment-logo img {
    max-height: 24px;
    max-width: 80px;
    width: auto;
    object-fit: contain;
}
.shipping-billing-table strong.payment-shipping-price {
    grid-column: 4;
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 14px;
    font-weight: var(--gl-w-medium);
    text-align: right;
    min-width: 80px;
    background: transparent !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.shipping-billing-table strong.payment-shipping-price.for-free {
    color: var(--gl-fg-1);
}

/* === Right sidebar: order recap (vendor: #checkoutSidebar.col-md-4) === */
#checkoutSidebar.col-md-4 {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
}
#checkoutSidebar > .cart-content {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 0;
    margin: 0;
    background: transparent;
}
#checkoutSidebar .order-summary,
#checkoutSidebar .checkout-box {
    margin: 0;
    padding: 0;
    background: transparent;
}
#checkoutSidebar .checkout-box .box {
    padding: 20px;
    background: var(--gl-paper-2);
    border: 1px solid var(--gl-divider);
    border-radius: 0;
    box-shadow: none;
}
#checkoutSidebar .contact-box {
    padding: 0;
}
#checkoutSidebar .contact-box strong {
    display: block;
    margin: 0 0 10px;
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 16px;
    font-weight: var(--gl-w-medium);
}
#checkoutSidebar .contact-box ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
#checkoutSidebar .contact-box li,
#checkoutSidebar .contact-box .tel,
#checkoutSidebar .contact-box .mail {
    margin: 0;
    padding: 0;
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
#checkoutSidebar .contact-box a {
    color: var(--gl-fg-1);
    text-decoration: none;
    font-family: var(--gl-font-ui);
    font-size: 15px;
    font-weight: var(--gl-w-medium);
    transition: opacity .15s;
}
#checkoutSidebar .contact-box a:hover { opacity: .65; }
#checkoutSidebar .contact-box a:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 4px;
}

/* Order summary inner (Rekapitulace objednávky) */
#summary-box,
.order-summary-inner {
    box-sizing: border-box;
    padding: 24px;
    margin: 0;
    background: white;
    border: 1px solid var(--gl-divider);
    border-radius: 0;
    box-shadow: none;
    font-family: var(--gl-font-ui);
}
#summary-box h2,
#summary-box h2.h4 {
    margin: 0 0 16px;
    padding: 0;
    font-family: var(--gl-font-ui);
    font-size: 13px;
    font-weight: var(--gl-w-medium);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gl-fg-2);
}

/* Cart items recap */
.cart-items,
#summary-box .cart-items {
    margin: 0 0 16px;
    padding: 0 0 16px;
    border-bottom: 1px solid var(--gl-divider);
}
.cart-item {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 0;
    padding: 0px 0;
    align-items: baseline;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    align-items: stretch;
    margin-bottom: -1px;
}
.cart-item + .cart-item {
    border-top: 1px solid var(--gl-divider);
}
.cart-item-name a.main-link {
    color: var(--gl-fg-1);
    text-decoration: none;
    font-size: 14px;
    font-weight: var(--gl-w-medium);
    line-height: 1.3;
}
.cart-item-name a.main-link:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.cart-item-amount {
    color: var(--gl-fg-2);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}
.cart-item-amount .unit-value { color: inherit; font-size: inherit; }
.cart-item-price {
    color: var(--gl-fg-1);
    font-size: 14px;
    font-weight: var(--gl-w-medium);
    font-variant-numeric: tabular-nums;
}

/* "Celkem za zboží" + shipping/billing recap */
.order-summary-item,
.order-summary-item.helper {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    color: var(--gl-fg-1);
}
.order-summary-item strong {
    font-weight: var(--gl-w-medium);
    color: var(--gl-fg-1);
}

/* Shipping/billing recap */
#shipping-billing-summary,
.order-recapitulation {
    margin: 8px 0;
    padding: 8px 0;
    border-top: 1px solid var(--gl-divider);
    border-bottom: 1px solid var(--gl-divider);
}
.recapitulation-single {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
    font-family: var(--gl-font-ui);
    font-size: 13px;
    color: var(--gl-fg-2);
}
.recapitulation-shipping-billing-label {
    color: var(--gl-fg-2);
    flex: 0 0 auto;
}
.recapitulation-shipping-billing-info {
    color: var(--gl-fg-1);
    font-weight: var(--gl-w-medium);
    text-align: right;
    font-size: 13px;
}
.recapitulation-shipping-billing-info > span {
    color: var(--gl-fg-2);
    font-weight: var(--gl-w-regular);
    margin-right: 6px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 11px;
}

/* Final price total */
.order-summary-item.price {
    border-top: 1px solid var(--gl-divider);
    padding-top: 16px;
    margin-top: 12px;
}
.order-summary-item.price .price-wrapper {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 0;
    margin: 0;
    border: 0;
}
.order-summary-item.price .price-label,
.order-summary-item.price .price-label.price-primary {
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 15px;
    font-weight: var(--gl-w-medium);
    background: transparent;
}
.order-summary-item.price strong.price.price-primary,
.order-summary-item.price .price.price-primary {
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 28px;
    font-weight: var(--gl-w-bold);
    font-variant-numeric: tabular-nums;
    background: transparent;
}
.order-summary-item.price [data-testid="recapFullPrice"] {
    color: inherit;
    font: inherit;
}

/* "Potřebujete pomoc" purple banner (vendor: span.btn.toggle-contacts)
   Trigger pro toggle kontaktního boxu — přebijeme purple gradient na černý CTA. */
span.btn.toggle-contacts,
.btn.btn-block.btn-default.toggle-contacts,
.toggle-contacts {
    display: block !important;
    box-sizing: border-box;
    width: 100%;
    padding: 16px 20px !important;
    background: var(--gl-black) !important;
    background-image: none !important;
    color: var(--gl-white) !important;
    border: 1px solid var(--gl-black) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: var(--gl-font-ui) !important;
    font-size: 13px !important;
    font-weight: var(--gl-w-medium) !important;
    letter-spacing: 0.08em;
    text-transform: uppercase !important;
    text-align: center;
    cursor: pointer;
    transition: background .15s;
    margin: 0 0 12px;
    line-height: 1.4;
}
span.btn.toggle-contacts:hover,
.toggle-contacts:hover {
    background: #1a1a1a !important;
}
span.btn.toggle-contacts span,
.toggle-contacts span {
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    display: block;
    margin-top: 2px;
    letter-spacing: 0.04em;
}

/* Order recap items list */
.recap-product,
.recap-row,
.summary-row,
.recap-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    color: var(--gl-fg-1);
}
.recap-product + .recap-product,
.recap-line + .recap-line {
    border-top: 1px solid var(--gl-divider);
}

/* Celkem k úhradě — highlighted total */
.total-price-line,
.recap-total,
.checkout-total,
strong.price-final-recap,
.cart-recap-total,
.full-price-with-vat {
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 28px;
    font-weight: var(--gl-w-bold);
}

/* Pokračovat button v checkout sidebar (universal — kosik, krok-1, krok-2, krok-3) */
.next-step,
.next-step--cart,
.next-step--step-1,
.next-step--step-2,
.next-step--step-3,
body.ordering-process .next-step,
body.ordering-process .next-step-wrapper {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 16px 0 0;
}
button#orderFormButton,
button.btn-conversion,
.next-step-forward,
.next-step a.btn-conversion,
.next-step a.next-step-forward,
body.ordering-process button.btn-conversion,
body.ordering-process #continue-order-button,
body.ordering-process .next-step-forward,
input[type="submit"].btn-conversion {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    height: 52px;
    padding: 0 24px !important;
    background: var(--gl-black) !important;
    background-image: none !important;
    color: var(--gl-white) !important;
    border: 1px solid var(--gl-black) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: var(--gl-font-ui) !important;
    font-size: 15px !important;
    font-weight: var(--gl-w-medium) !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em;
    line-height: 1 !important;
    cursor: pointer;
    transition: background .15s, transform .12s;
    order: 2;
}
button#orderFormButton .order-button-text,
.next-step-forward .order-button-text {
    color: inherit;
    font: inherit;
    text-transform: inherit;
    letter-spacing: inherit;
}
button#orderFormButton::after,
button.btn-conversion::after,
.next-step-forward::after {
    content: "";
    display: inline-block;
    width: 14px;
    height: 10px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='square'><path d='M0 5h12M8 1l4 4-4 4'/></svg>") center/contain no-repeat;
    transition: transform .15s;
}
button#orderFormButton:hover,
button.btn-conversion:hover,
.next-step-forward:hover {
    background: #1a1a1a !important;
    border-color: #1a1a1a !important;
}
button#orderFormButton:hover::after,
.next-step-forward:hover::after { transform: translateX(3px); }
button#orderFormButton:focus-visible,
button.btn-conversion:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 3px;
}

/* === Krok-2 (informace o vás) — opravy zarovnání desktop === */

/* 1) Sekční heading (Osobní údaje / Fakturační adresa / …) — vendor dává
   `margin-left:-120px; padding-left:120px` + absolutní ::before ikonu v levém
   gutteru (mimo kartu). Tyhle h4 NEmají class `.order-icon`, takže je moje
   `.box h4.order-icon` pravidla míjela. Normalizuj na inline heading s ikonou. */
body.ordering-process .cart-content fieldset > h4 {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 24px !important;
    margin-left: 0 !important;
    padding: 0 0 16px !important;
    padding-left: 0 !important;
    position: static !important;
    border-bottom: 1px solid var(--gl-divider);
    background: transparent !important;
    background-image: none !important;
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 14px;
    font-weight: var(--gl-w-medium);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
body.ordering-process .cart-content fieldset > h4::before {
    content: "" !important;
    display: inline-flex !important;
    position: static !important;
    left: auto !important;
    top: auto !important;
    flex-shrink: 0;
    width: 28px !important;
    height: 28px !important;
    margin: 0 !important;
    border-radius: 50% !important;
    background-color: var(--gl-paper-3) !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 16px 16px !important;
    /* default: osoba */
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.3'><circle cx='8' cy='5' r='2.4'/><path d='M3.4 13c0-2.5 2-4.2 4.6-4.2s4.6 1.7 4.6 4.2'/></svg>") !important;
}
body.ordering-process .cart-content fieldset > h4::after { content: none !important; display: none !important; }
/* Fakturační / doručovací adresa → pin ikona (vyšší specificita než base rule) */
body.ordering-process .cart-content fieldset > h4.header-billing::before,
body.ordering-process .cart-content fieldset > h4.header-delivery::before,
body.ordering-process .cart-content fieldset > h4.header-shipping::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.3'><path d='M8 1.6c2.2 0 4 1.8 4 4 0 3-4 8.4-4 8.4S4 8.6 4 5.6c0-2.2 1.8-4 4-4z'/><circle cx='8' cy='5.6' r='1.5'/></svg>") !important;
}

/* 2) Karty sekcí — sjednotit šířku + zarovnání. Billing/delivery fieldset nemá
   `.co-box`, takže moje `.box.co-box` karta ho míjela → bez rámečku, odsazený
   (x220 vs x100). `:has(> h4)` cílí jen sekce s headingem (ne prázdné boxy). */
body.ordering-process .cart-content fieldset:has(> h4) {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 24px !important;
    padding: 28px 32px !important;
    background: var(--gl-white);
    border: 1px solid var(--gl-divider);
    border-radius: 0;
    box-shadow: none;
}

/* 2b) Wrapper `div.co-box` (co-billing-address / co-delivery-address) má vendor
   `padding-left:120px` (rezerva pro starou gutter ikonu) → odsazuje fieldset kartu
   na x220/w1085 místo x100/w1285. Ikony jsou teď inline → gutter zrušit. */
body.ordering-process .cart-content div.co-box,
body.ordering-process .cart-content div.co-billing-address,
body.ordering-process .cart-content div.co-delivery-address {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
}

/* 3) Telefon input — vendor `.phone-combined-input` je shrink-fit (max-width:217px),
   tel input jen 129px. Roztáhnout na plnou šířku form-group. */
body.ordering-process .phone-combined-input {
    width: 100% !important;
    max-width: none !important;
    gap: 8px;
}
body.ordering-process .phone-combined-input .country-flags { flex: 0 0 auto !important; }
body.ordering-process .phone-combined-input input.form-control,
body.ordering-process .phone-combined-input input[type="tel"],
body.ordering-process .phone-combined-input input.js-phone-form-control {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
}

/* 4) Checkbox přes text — `company-shopping` label má padding-left:0, absolutní
   checkbox (20px) tak leze do textu "Nakupuji na firmu". Odsadit label. */
body.ordering-process .form-group.company-shopping label,
body.ordering-process label[for="company-shopping"],
body.ordering-process label[for="add-note"],
body.ordering-process label[for="set-registration"] {
    padding-left: 30px !important;
    position: relative;
    cursor: pointer;
}

/* 5) Objednat button — skutečné id je `#submit-order.next-step-finish`
   (ne #orderFormButton). Má 2 řádky ("Objednat" + "s povinností platby") ve
   fixní výšce 52px → text přetéká. Column layout + auto výška + bez šipky. */
body.ordering-process button#submit-order,
body.ordering-process button.btn-conversion.next-step-finish,
button.btn-conversion.next-step-finish {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2px !important;
    height: auto !important;
    min-height: 60px !important;
    padding: 12px 24px !important;
    line-height: 1.15 !important;
}
body.ordering-process button#submit-order::after,
button.btn-conversion.next-step-finish::after {
    content: none !important;
    display: none !important;
}
body.ordering-process button#submit-order .order-button-text,
button.next-step-finish .order-button-text {
    font-size: 19px !important;
    font-weight: var(--gl-w-medium) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    line-height: 2.1 !important;
}
body.ordering-process button#submit-order .order-button-suffix,
button.next-step-finish .order-button-suffix {
    font-size: 11px !important;
    font-weight: var(--gl-w-regular, 400) !important;
    text-transform: none !important;
    letter-spacing: 0.02em !important;
    line-height: 1.1 !important;
    opacity: 0.82;
}

/* 6) Validační hlášky — vendor `.js-validator-msg.msg-error` má `margin: 5px 0 5px 175px`
   (175px levý odsazení z inline layoutu) → hláška odsazená ~175px vpravo od levé hrany
   pole. Ve stacked layoutu zarovnat pod pole (label/input left). */
body.ordering-process .js-validator-msg,
body.ordering-process .js-validator-msg.msg-error,
body.ordering-process div.msg-error {
    margin: 6px 0 2px !important;
    padding: 0 !important;
    font-family: var(--gl-font-ui) !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    color: #d33a36 !important;
}
/* Invalid inputy — vendor dává `.error-field`/`.js-error-field`, ale moje generické
   input pravidlo drží černý border → uživatel nepozná chybné pole. Červený rámeček. */
body.ordering-process input.error-field,
body.ordering-process input.js-error-field,
body.ordering-process .error-field.form-control,
body.ordering-process select.error-field,
body.ordering-process textarea.error-field,
body.ordering-process .js-error-field.form-control {
    border-color: #d33a36 !important;
    box-shadow: 0 0 0 1px rgba(211, 58, 54, .18) !important;
}
body.ordering-process input.error-field:focus,
body.ordering-process input.js-error-field:focus {
    border-color: #d33a36 !important;
    box-shadow: 0 0 0 2px rgba(211, 58, 54, .22) !important;
}

/* Back step link */
.next-step .next-step-back,
.next-step a.next-step-back,
a.btn.next-step-back,
.back-step,
body.ordering-process .next-step-back {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 40px !important;
    padding: 0 !important;
    background: transparent !important;
    background-image: none !important;
    color: var(--gl-fg-2) !important;
    border: 1px solid transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: var(--gl-font-ui) !important;
    font-size: 13px !important;
    font-weight: var(--gl-w-regular) !important;
    text-decoration: underline !important;
    text-underline-offset: 4px;
    text-transform: none !important;
    letter-spacing: 0;
    line-height: 1;
    transition: color .15s;
    order: 1;
}
.next-step .next-step-back:hover,
.back-step:hover {
    color: var(--gl-fg-1) !important;
}
.next-step .next-step-back:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 4px;
}

/* Form validation errors */
body.ordering-process .form-group.has-error .form-control,
body.ordering-process .form-group.error .form-control,
body.ordering-process .form-control.error {
    border-color: #cb0000 !important;
}
body.ordering-process .help-block,
body.ordering-process .form-error-message,
body.ordering-process .form-group .error-message {
    color: #cb0000;
    font-family: var(--gl-font-ui);
    font-size: 13px;
    margin: 6px 0 0;
}

/* Checkboxy (souhlas, newsletter) */
body.ordering-process .checkbox-wrapper,
body.ordering-process label.checkbox,
body.ordering-process .form-group.checkbox {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 12px 0;
    padding: 0;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    color: var(--gl-fg-1);
    cursor: pointer;
    line-height: 1.5;
}
body.ordering-process input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin: 1px 0 0;
    flex-shrink: 0;
    accent-color: var(--gl-fg-1);
    cursor: pointer;
}

/* Responsive checkout */
@media (max-width: 1023px) {
    body.ordering-process main#content { padding: 0 24px 96px !important; }
    .box.co-box,
    .box-sm.box-bg-default.co-box { padding: 20px 20px; margin-bottom: 16px; }
    .shipping-billing-table .radio-wrapper label {
        grid-template-columns: 28px 1fr auto;
        gap: 12px;
        padding: 14px 16px;
    }
    .shipping-billing-table .payment-logo {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-content: flex-end;
        padding-top: 4px;
    }
    .shipping-billing-table strong.payment-shipping-price {
        grid-column: 3;
        grid-row: 1;
    }
}
@media (max-width: 767px) {
    body.ordering-process main#content { padding: 0 16px 64px !important; }
    .box.co-box,
    .box-sm.box-bg-default.co-box { padding: 16px; }
    .box h4.order-icon { font-size: 12px; margin-bottom: 16px; padding-bottom: 12px; }
    .shipping-billing-table .radio-wrapper label {
        grid-template-columns: 24px 1fr;
        padding: 12px;
    }
    .shipping-billing-table .payment-logo {
        grid-column: 1 / -1;
        grid-row: 3;
        justify-content: flex-start;
        padding-top: 4px;
        padding-left: 36px;
    }
    .shipping-billing-table strong.payment-shipping-price {
        grid-column: 2;
        grid-row: 2;
        text-align: left;
        margin-top: 4px;
    }
    .shipping-billing-table b.shipping-billing-name { font-size: 14px; }
}

/* ============================================ */
/* === Cookie banner (.siteCookies) === */
/* ============================================ */

/* Wrapper — fixed bottom bar v Galali stylu.
   Shoptet má vyšší specificitu na siteCookies--light, takže !important nutné. */
.siteCookies,
.siteCookies.siteCookies--bottom,
.siteCookies.siteCookies--light,
.siteCookies.siteCookies--scrolled {
    position: fixed;
    bottom: 24px;
    left: 24px;
    right: 24px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 !important;
    background: var(--gl-white) !important;
    border: 1px solid var(--gl-stroke-1) !important;
    border-radius: 0 !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .08) !important;
    color: var(--gl-fg-1) !important;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    line-height: 1.5;
    z-index: 9999;
}

.siteCookies .siteCookies__form {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding: 20px 28px;
}

.siteCookies .siteCookies__content {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
    min-width: 0;
}

.siteCookies .siteCookies__text {
    margin: 0;
    color: var(--gl-fg-1);
    font-size: 14px;
    line-height: 1.5;
}
.siteCookies .siteCookies__text a {
    color: var(--gl-fg-1);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: opacity .15s;
}
.siteCookies .siteCookies__text a:hover {
    opacity: .65;
    color: var(--gl-fg-1);
}

.siteCookies .siteCookies__links {
    margin: 0;
    padding: 0;
}
.siteCookies .siteCookies__link,
.siteCookies button.siteCookies__link {
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    color: var(--gl-fg-2);
    font-family: var(--gl-font-ui);
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
    transition: color .15s;
}
.siteCookies .siteCookies__link:hover,
.siteCookies button.siteCookies__link:hover {
    color: var(--gl-fg-1);
}

.siteCookies .siteCookies__buttonWrap {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

/* Tlačítka: Odmítnout (ghost) + Souhlasím (primary černé) */
.siteCookies button.siteCookies__button,
.siteCookies .siteCookies__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 140px !important;
    height: 44px !important;
    padding: 0 22px !important;
    background: var(--gl-white) !important;
    color: var(--gl-fg-1) !important;
    border: 1px solid var(--gl-stroke-1) !important;
    border-radius: 0 !important;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    font-weight: var(--gl-w-medium) !important;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
    box-shadow: none !important;
}
.siteCookies button.siteCookies__button:hover {
    background: var(--gl-paper-3) !important;
    color: var(--gl-fg-1) !important;
}
/* Primary "Souhlasím" (value="all") — černá výplň */
.siteCookies button.siteCookies__button[value="all"] {
    background: var(--gl-black) !important;
    color: var(--gl-white) !important;
    border-color: var(--gl-black) !important;
}
.siteCookies button.siteCookies__button[value="all"]:hover {
    background: #1a1a1a !important;
    border-color: #1a1a1a !important;
    color: var(--gl-white) !important;
}

/* Focus state */
.siteCookies button.siteCookies__button:focus-visible,
.siteCookies button.siteCookies__link:focus-visible,
.siteCookies .siteCookies__text a:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 4px;
}

/* Mobile — POZOR: base .siteCookies__button má min-width:140px !important,
   takže mobilní shrink MUSÍ mít taky !important, jinak buttony nezmenší → banner
   přeteče 390px → roztáhne layout viewport (ikony headeru ujedou z obrazovky). */
@media (max-width: 1023px) {
    .siteCookies,
    .siteCookies.siteCookies--bottom,
    .siteCookies.siteCookies--light,
    .siteCookies.siteCookies--scrolled {
        left: 12px !important;
        right: 12px !important;
        bottom: 12px !important;
        max-width: calc(100vw - 24px) !important;
        box-sizing: border-box !important;
    }
    .siteCookies .siteCookies__form {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 14px !important;
        padding: 16px !important;
    }
    .siteCookies .siteCookies__buttonWrap {
        flex-direction: column !important;
        gap: 8px !important;
        width: 100% !important;
    }
    .siteCookies button.siteCookies__button,
    .siteCookies .siteCookies__button {
        width: 100% !important;
        min-width: 0 !important;
    }
}

/* ============================================ */
/* === Mobile menu (hamburger) === */
/* ============================================ */
/* Desktop: hide responsive-tools (mobile burger irrelevant) — definováno výše.
   Mobile: skryj desktop nav + topnav menu/contacts, ukáš hamburger + search/login ikonky. */

@media (max-width: 1023px) {
    /* Mobile drawer pro nav#navigation. Shoptet JS přidá body.navigation-window-visible
       po kliku na hamburger → drawer se vysune zleva.
       NEDÁVEJ `display: none !important` — přebíjí Shoptet show stav. */
    header#header nav#navigation {
        display: block !important;
        position: fixed !important;
        top: 0;
        left: 0;
        bottom: 0;
        width: 320px;
        max-width: 85vw;
        height: 100vh;
        max-height: 100vh;
        background: var(--gl-white);
        box-shadow: 4px 0 20px rgba(0, 0, 0, .12);
        transform: translateX(-100%);
        transition: transform .3s ease;
        z-index: 200;
        overflow-y: auto;
        padding: 64px 0 24px;
    }
    body.navigation-window-visible header#header nav#navigation {
        transform: translateX(0);
    }
    /* Drawer obsah — vertical stack */
    header#header nav#navigation .navigation-in,
    header#header nav#navigation .navigation-in.menu {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        max-width: none !important;
        padding: 0 !important;
    }
    header#header nav#navigation ul.menu-level-1 {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0 !important;
        height: auto !important;
        width: 100% !important;
    }
    header#header nav#navigation ul.menu-level-1 > li {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
        border-bottom: 1px solid var(--gl-divider);
    }
    header#header nav#navigation ul.menu-level-1 > li > a {
        height: auto !important;
        padding: 16px 24px !important;
        font-size: 18px !important;
        width: 100%;
        justify-content: space-between;
    }
    /* Drawer dropdown — static (nikoli absolute) — nested */
    header#header nav#navigation ul.menu-level-1 > li > ul.menu-level-2 {
        position: static !important;
        box-shadow: none !important;
        border: none !important;
        border-top: 1px solid var(--gl-divider) !important;
        background: var(--gl-surface-alt) !important;
        padding: 8px 24px 12px !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
    }
    /* Drawer backdrop (Shoptet vendor pridava .user-action-visible) */
    body.navigation-window-visible::before {
        content: "";
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, .4);
        z-index: 150;
        pointer-events: none;
    }
    /* Skryj topnav contacts (telefon/email) — moc info na mobil */
    .top-navigation-bar .top-navigation-contacts {
        display: none !important;
    }
    /* Skryj topnav menu (Jak nakupovat / OP / Kontakty) — zařadí se do drawer */
    .top-navigation-bar .top-navigation-menu {
        display: none !important;
    }
    /* Skryj topnav desktop login button (nahradí ho login ikonka v responsive-tools) */
    .top-navigation-bar .top-navigation-tools > button.top-nav-button-login {
        display: none !important;
    }
    /* Top-navigation-tools — force flex (vendor přebíjí na block) */
    .top-navigation-bar .top-navigation-tools {
        display: flex !important;
        align-items: center;
        justify-content: flex-end;
        gap: 14px;
        margin-left: auto;
    }
    /* Force responsive-tools display — vendor `.desktop .responsive-tools { display: none }` přebít */
    .top-navigation-bar .top-navigation-tools .responsive-tools,
    body.desktop .top-navigation-bar .top-navigation-tools .responsive-tools {
        display: inline-flex !important;
        align-items: center;
        gap: 14px;
        margin-left: auto;
        position: static !important;
    }
    /* Toggle-window <a> elementy — explicitní rozměry (vendor je dělá 0×0) */
    .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window {
        display: inline-block !important;
        width: 28px !important;
        height: 28px !important;
        padding: 0 !important;
        margin: 0;
        background: transparent center/22px 22px no-repeat;
        text-decoration: none;
        color: var(--gl-fg-1);
        cursor: pointer;
        position: static !important;
        transition: opacity .15s;
        font-size: 0;
        line-height: 0;
        text-indent: -9999px;
        overflow: hidden;
    }
    .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window:hover,
    .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window:focus-visible {
        opacity: .65;
    }
    .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window:focus-visible {
        outline: 2px solid var(--gl-fg-1);
        outline-offset: 4px;
    }
    /* Hamburger ikona (data-target="navigation") */
    .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window[data-target="navigation"] {
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='square'><path d='M4 8h20M4 14h20M4 20h20'/></svg>") !important;
    }
    /* Search ikona (data-target="search") */
    .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window[data-target="search"] {
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.8'><circle cx='12' cy='12' r='7'/><path d='m24 24-6-6'/></svg>") !important;
    }
    /* Login ikona (data-target="login") */
    .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window[data-target="login"] {
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.8'><circle cx='14' cy='10' r='4'/><path d='M6 24c0-4 4-7 8-7s8 3 8 7'/></svg>") !important;
    }
    /* Topnav container layout fix */
    .top-navigation-bar .container {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        padding: 0 16px;
        height: 56px;
    }
    /* Topnav bar — fixed nahoře (Shoptet vendor) → kompenzace */
    .top-navigation-bar {
        height: 56px;
    }
    /* Hide search bar v headeru — search se otevře přes ikonu */
    header#header .search {
        display: none;
    }
    /* Header layout: logo + cart only (search hidden, nav hidden) */
    header#header .header-top {
        grid-template-columns: auto 1fr auto;
        gap: 12px;
        height: 64px;
        padding: 0 16px;
    }
    header#header .site-name img {
        height: 36px;
        max-width: 180px;
    }
    /* Cart pill smaller na mobile */
    header#header .navigation-buttons a.cart-count,
    header#header .navigation-buttons a[data-target="cart"] {
        height: 40px;
        padding: 8px 12px;
        font-size: 14px;
    }
    header#header .navigation-buttons a.cart-count::before {
        width: 18px;
        height: 18px;
    }
    header#header .navigation-buttons a.cart-count .cart-price {
        display: none;
    }
}

@media (max-width: 767px) {
    /* Mobil: ještě menší padding, max compact */
    .top-navigation-bar .container { padding: 0 12px; height: 52px; }
    .top-navigation-bar .top-navigation-tools .responsive-tools { gap: 10px !important; }
    .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window {
        width: 24px !important;
        height: 24px !important;
    }
    header#header .header-top { padding: 0 12px; height: 56px; }
    header#header .site-name img { height: 32px; max-width: 140px; }
}

/* ============================================================
   === Review fixes (po fresh audit) ===
   ============================================================ */

/* --- Nav: zakaz wrap do 2 radku --- */
header#header nav#navigation ul.menu-level-1 {
    flex-wrap: nowrap !important;
}
/* Vendor "splitted" items: vyradit z menu (Shoptet JS oznaci items co se "nevejou", helper presto display:none) */
header#header nav#navigation ul.menu-level-1 > li.splitted {
    /* prevent forced visibility breaking layout when vendor JS folds */
    flex-shrink: 0;
}

/* --- Step indicator: hide vendor pseudos + fix blue underline --- */
ol.cart-header > li::after,
ol.cart-header > li a::before,
ol.cart-header > li a::after,
ol.cart-header > li strong::before,
ol.cart-header > li strong::after,
ol.cart-header > li span::before,
ol.cart-header > li span::after {
    content: none !important;
    display: none !important;
    background: none !important;
    border: 0 !important;
}
ol.cart-header > li,
ol.cart-header > li.step,
ol.cart-header > li a,
ol.cart-header > li strong,
ol.cart-header > li span {
    text-decoration: none !important;
    box-shadow: none !important;
    border-top: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
}
/* Active step: tlustsi cerny border zustava jen ze meho rule */
ol.cart-header > li.step.active,
ol.cart-header > li.active {
    border-bottom: 3px solid var(--gl-fg-1) !important;
}
/* Vendor da BLUE border-bottom na <strong> ve aktivnim stepu -> ubit */
ol.cart-header > li strong,
ol.cart-header > li.step strong,
ol.cart-header > li.active strong,
ol.cart-header > li.step.active strong,
ol.cart-header > li strong span,
ol.cart-header > li.step strong span,
ol.cart-header > li a {
    border: 0 !important;
    border-bottom: 0 !important;
    border-top: 0 !important;
    text-decoration: none !important;
    background: transparent !important;
}

/* --- Cart counter badge (header): bílé kolečko s černým číslem, vpravo dole u ikony ---
   Pill je černý → černý badge by zmizel. Bílé kolečko = kontrast.
   Ikona košíku je vlevo (padding-left 18px, šířka 22px) → badge na její pravý-dolní roh. */
a.cart-count i,
a.cart-count i[data-testid="headerCartCount"],
header#header .navigation-buttons a.cart-count i[data-testid="headerCartCount"],
[data-testid="headerCartCount"],
.cart-count .amount,
.cart-count .count {
    position: absolute !important;
    top: 23px !important;
    left: 28px !important;
    right: auto !important;
    bottom: auto !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 18px;
    height: 18px;
    padding: 0 4px !important;
    margin: 0 !important;
    background: var(--gl-white) !important;
    background-color: var(--gl-white) !important;
    color: var(--gl-black) !important;
    border: 2px solid var(--gl-black) !important;
    border-radius: 999px !important;
    font-family: var(--gl-font-ui) !important;
    font-size: 11px !important;
    font-weight: var(--gl-w-bold, 700) !important;
    line-height: 1 !important;
    font-style: normal !important;
}

/* --- Checkout headings: skryj order-icon background-image --- */
h4.order-icon,
h4.order-icon.order-information,
h4.order-icon.order-delivery,
h4.order-icon.order-payment,
h4.order-icon.order-cart,
h4.order-icon.order-summary,
.box-headline.order-icon,
.shipping-billing-table h4.order-icon {
    background-image: none !important;
    padding-left: 20px !important;
}
h4.order-icon::before,
h4.order-icon::after {
    content: none !important;
    display: none !important;
    background: none !important;
}

/* --- Detail benefitBanner: PNG icons -> monochrome black --- */
.benefitBanner .benefitBanner__img,
.benefitBanner img.benefitBanner__img {
    filter: grayscale(1) brightness(0) !important;
    opacity: 0.85;
}
.benefitBanner .benefitBanner__title {
    color: var(--gl-fg-1) !important;
    font-family: var(--gl-font-ui);
    font-weight: var(--gl-w-medium);
    text-transform: none;
    letter-spacing: 0;
}
.benefitBanner .benefitBanner__data {
    color: var(--gl-fg-2);
}

/* --- Filter button (kategorie): purple -> black --- */
a.btn.btn-default.unveil-button,
a.unveil-button.btn-default,
.unveil-button {
    background: var(--gl-fg-1) !important;
    background-color: var(--gl-fg-1) !important;
    background-image: none !important;
    color: var(--gl-white) !important;
    border: 1px solid var(--gl-fg-1) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-family: var(--gl-font-ui);
    font-weight: var(--gl-w-medium);
    padding: 14px 28px !important;
    transition: background-color .15s, color .15s, border-color .15s;
}
a.btn.btn-default.unveil-button:hover,
a.unveil-button.btn-default:hover,
.unveil-button:hover {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--gl-fg-1) !important;
}
/* Filter toggle (rozbalit) */
.toggle-filters,
a.toggle-filters,
.chevron-after.toggle-filters {
    color: var(--gl-fg-1) !important;
    text-decoration: none !important;
}

/* --- Pagination: blue -> black --- */
.pagination,
ul.pagination {
    list-style: none;
    display: flex;
    gap: 6px;
    justify-content: center;
    padding: 0;
    margin: 32px 0 0;
}
.pagination li,
.pagination__item {
    list-style: none;
    margin: 0;
}
.pagination a,
.pagination li a,
.pagination__link,
.pagination__link.btn,
.pagination__link.btn-secondary,
.pagination__link--next,
.pagination__link--prev,
.pagination__link--last,
.pagination__link--first {
    color: var(--gl-fg-1) !important;
    background: var(--gl-white) !important;
    background-color: var(--gl-white) !important;
    background-image: none !important;
    border: 1px solid var(--gl-fg-1) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 10px 14px !important;
    min-width: 44px;
    text-align: center;
    font-family: var(--gl-font-ui);
    font-size: 14px;
    font-weight: var(--gl-w-medium);
    text-decoration: none !important;
    transition: background-color .15s, color .15s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.pagination a:hover,
.pagination__link:hover {
    background: var(--gl-fg-1) !important;
    background-color: var(--gl-fg-1) !important;
    color: var(--gl-white) !important;
}
.pagination .active a,
.pagination li.active a,
.pagination__link.active,
.pagination__link--current {
    background: var(--gl-fg-1) !important;
    background-color: var(--gl-fg-1) !important;
    color: var(--gl-white) !important;
}

/* --- Category sort + breadcrumbs: blue -> black --- */
.sortBy a,
.product-sort a,
.category-sort a,
nav.breadcrumb a,
ol.breadcrumb a,
.breadcrumb a,
.breadcrumb__item a,
.breadcrumbs a,
.breadcrumbs__link {
    color: var(--gl-fg-2) !important;
    text-decoration: none !important;
}
/* Skutecny sort widget Shoptetu: BUTTON.listSorting__control */
.listSorting,
ul.listSorting,
.listSorting__list {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    padding: 0;
    margin: 0 0 24px;
}
.listSorting__item {
    list-style: none;
    margin: 0;
}
button.listSorting__control,
.listSorting__control {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
    color: var(--gl-fg-2) !important;
    font-family: var(--gl-font-ui) !important;
    font-size: 13px !important;
    font-weight: var(--gl-w-regular) !important;
    letter-spacing: 0.04em;
    text-transform: none;
    padding: 6px 0 !important;
    cursor: pointer;
    transition: color .15s;
}
button.listSorting__control:hover,
.listSorting__control:hover {
    color: var(--gl-fg-1) !important;
    text-decoration: underline !important;
}
button.listSorting__control--current,
.listSorting__control--current {
    color: var(--gl-fg-1) !important;
    font-weight: var(--gl-w-medium) !important;
    text-decoration: underline !important;
    text-underline-offset: 4px;
}
.sortBy a:hover,
.product-sort a:hover,
.category-sort a:hover,
.breadcrumb a:hover,
.breadcrumbs a:hover {
    color: var(--gl-fg-1) !important;
}
.sortBy a.active,
.product-sort a.active,
.category-sort a.active,
.sortBy a.current,
.product-sort a.current {
    color: var(--gl-fg-1) !important;
    font-weight: var(--gl-w-medium);
}

/* --- Krok-1: blue shipping/payment labels -> black --- */
.shipping-billing-table label,
.shipping-billing-table .shipping-name,
.shipping-billing-table .billing-name,
.shipping-billing-table a,
.shipping-billing-table strong,
table.shipping-billing-table a,
.shipping-table a,
.billing-table a {
    color: var(--gl-fg-1) !important;
    text-decoration: none !important;
}
.shipping-billing-table label:hover,
.shipping-billing-table a:hover {
    color: var(--gl-fg-2) !important;
}
/* "Vyberte odberne misto" sublink */
.shipping-billing-table .pickup-point a,
.shipping-billing-table .point-info a,
.shipping-billing-table .pickup a {
    color: var(--gl-fg-2) !important;
    text-decoration: underline !important;
    font-size: 12px;
}

/* --- Detail: SKU pod title hide --- */
.p-detail-info .p-code,
.p-detail-info .code,
.p-detail-info .product-code,
.p-detail .p-code,
.p-detail .productCode,
.p-detail [data-testid="productSku"],
.p-detail .availability-value + .p-code {
    display: none !important;
}

/* --- Detail: hodnoceni link grey --- */
.stars-wrapper a,
.stars-wrapper button,
.stars-label,
.starsLabel--productDetail,
button.js-ratingDialogTrigger {
    color: var(--gl-fg-2) !important;
    text-decoration: none !important;
    font-size: 12px;
    font-family: var(--gl-font-ui);
}
button.js-ratingDialogTrigger:hover {
    color: var(--gl-fg-1) !important;
    text-decoration: underline !important;
}

/* --- Add-to-cart: hover invertovany + jen 1 sipka --- */
.add-to-cart-wrapper button.add-to-cart,
button.add-to-cart,
[data-testid="buttonAddToCart"],
form#product-detail-form button[type="submit"] {
    background: var(--gl-fg-1) !important;
    background-color: var(--gl-fg-1) !important;
    background-image: none !important;
    color: var(--gl-white) !important;
    border: 1px solid var(--gl-fg-1) !important;
    transition: background-color .2s, color .2s !important;
}
.add-to-cart-wrapper button.add-to-cart:hover,
button.add-to-cart:hover,
[data-testid="buttonAddToCart"]:hover,
form#product-detail-form button[type="submit"]:hover {
    background: var(--gl-white) !important;
    background-color: var(--gl-white) !important;
    color: var(--gl-fg-1) !important;
}
/* Skryj vendor ::before sipku (`›`) - moje sipka je v ::after */
button.add-to-cart::before,
[data-testid="buttonAddToCart"]::before,
form#product-detail-form button[type="submit"]::before {
    content: none !important;
    display: none !important;
}

/* --- Cart mobile: visible qty input mezi sipkami --- */
@media (max-width: 767px) {
    table.cart-table input.amount,
    table.cart-table .amount-wrapper input,
    .cart-table input[name*="amount"] {
        display: inline-block !important;
        width: 40px !important;
        min-width: 40px !important;
        height: 40px;
        text-align: center !important;
        border-top: 1px solid var(--gl-fg-1) !important;
        border-bottom: 1px solid var(--gl-fg-1) !important;
        border-left: 0 !important;
        border-right: 0 !important;
        padding: 0 !important;
        background: var(--gl-white) !important;
        color: var(--gl-fg-1) !important;
        font-family: var(--gl-font-ui);
        font-size: 14px;
        font-weight: var(--gl-w-medium);
        appearance: none;
        -moz-appearance: textfield;
    }
}

/* --- Pokracovat CTA: hover invertovany --- */
button#orderFormButton,
button#orderFormButton.next-step-forward,
.next-step--cart button,
.next-step--step-1 button,
.next-step--step-2 button {
    transition: background-color .2s, color .2s !important;
}
button#orderFormButton:hover,
button#orderFormButton.next-step-forward:hover {
    background: var(--gl-white) !important;
    background-color: var(--gl-white) !important;
    color: var(--gl-fg-1) !important;
    border: 1px solid var(--gl-fg-1) !important;
}

/* ============================================================
   === Detail produktu — profi revize polish ===
   ============================================================ */

/* --- 1. Hero meta: stars + brand left-align (vendor center) --- */
body.type-detail .p-detail-info {
    align-items: flex-start !important;
    width: 100% !important;
    max-width: var(--gl-page-max);
    margin: 0 auto;
    padding: 0 var(--gl-gutter);
    gap: 6px !important;
}
body.type-detail .p-detail-info > div {
    text-align: left !important;
    align-self: flex-start;
    width: auto;
}
body.type-detail .p-detail-info .stars-wrapper {
    justify-content: flex-start !important;
    text-align: left !important;
}
body.type-detail .p-detail-info > div:has(a[data-testid="productCardBrandName"]) {
    font-size: 13px;
    color: var(--gl-fg-2);
    letter-spacing: 0.04em;
}

/* --- 2. Add-to-cart wrapper: jen wrapper má neutrální bg --- */
body.type-detail div.add-to-cart {
    background: transparent !important;
    background-color: transparent !important;
    color: inherit !important;
    border: 0 !important;
    padding: 0 !important;
    min-width: 0 !important;
    height: auto !important;
    display: flex !important;
    flex-direction: row;
    align-items: stretch;
    gap: 12px;
    flex-wrap: wrap;
}
body.type-detail div.add-to-cart::after,
body.type-detail div.add-to-cart::before {
    content: none !important;
    display: none !important;
    background: none !important;
}

/* --- 3. Tabs: shp-tab Galali polish --- */
ul.shp-tabs.p-detail-tabs,
ul.p-detail-tabs,
.shp-tabs-holder ul.shp-tabs {
    display: flex !important;
    gap: 0 !important;
    margin: 48px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
    border-bottom: 1px solid var(--gl-divider) !important;
    background: transparent !important;
}
ul.shp-tabs li.shp-tab,
.shp-tabs li.shp-tab {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 3px solid transparent !important;
    margin-bottom: -1px !important;
    transition: border-color .15s !important;
}
ul.shp-tabs li.shp-tab a,
ul.shp-tabs li.shp-tab a.shp-tab-link,
.shp-tabs li.shp-tab > a {
    display: inline-block !important;
    padding: 18px 28px !important;
    background: transparent !important;
    color: var(--gl-fg-2) !important;
    font-family: var(--gl-font-ui) !important;
    font-size: 14px !important;
    font-weight: var(--gl-w-medium) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    text-decoration: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    transition: color .15s !important;
}
ul.shp-tabs li.shp-tab a:hover,
.shp-tabs li.shp-tab > a:hover {
    color: var(--gl-fg-1) !important;
}
ul.shp-tabs li.shp-tab.active,
.shp-tabs li.shp-tab.active {
    border-bottom: 3px solid var(--gl-fg-1) !important;
}
ul.shp-tabs li.shp-tab.active a,
ul.shp-tabs li.shp-tab.active a.shp-tab-link,
.shp-tabs li.shp-tab.active > a {
    color: var(--gl-fg-1) !important;
    font-weight: var(--gl-w-bold) !important;
}
ul.shp-tabs li.shp-tab a:focus-visible {
    outline: 2px solid var(--gl-fg-1) !important;
    outline-offset: 4px;
}
@media (max-width: 767px) {
    ul.shp-tabs.p-detail-tabs,
    ul.p-detail-tabs {
        margin-top: 32px !important;
    }
    ul.shp-tabs li.shp-tab a,
    .shp-tabs li.shp-tab > a {
        padding: 14px 16px !important;
        font-size: 12px !important;
    }
}

/* --- 4. Mobile breadcrumb: home icon overlap fix --- */
@media (max-width: 767px) {
    .breadcrumbs .navigation-home-icon {
        display: inline-block;
        width: 14px;
        height: 14px;
        vertical-align: middle;
        margin-right: 8px;
        background-size: contain !important;
    }
    .breadcrumbs {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 4px 6px;
        padding: 12px 16px;
        font-size: 12px;
        line-height: 1.4;
    }
    .breadcrumbs > span {
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }
    .breadcrumbs .navigation-bullet {
        color: var(--gl-fg-2);
        opacity: 0.5;
    }
}

/* --- 5. Stars wrapper: CTA "Bud prvni" if Neohodnoceno --- */
body.type-detail .stars-wrapper .stars-label {
    font-size: 13px;
    color: var(--gl-fg-2);
}
body.type-detail .stars-wrapper .stars {
    display: inline-flex;
    gap: 2px;
}
body.type-detail .stars-wrapper .star {
    color: var(--gl-fg-2);
    opacity: 0.4;
    font-size: 14px;
}
body.type-detail .stars-wrapper .star.star-on,
body.type-detail .stars-wrapper .star.star-half {
    color: var(--gl-fg-1);
    opacity: 1;
}
body.type-detail .stars-wrapper button.js-ratingDialogTrigger {
    color: var(--gl-fg-1) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
    font-size: 13px !important;
    cursor: pointer;
}
body.type-detail .stars-wrapper button.js-ratingDialogTrigger:hover {
    opacity: 0.65;
}

/* --- 6. Brand link: klikatelny, hover --- */
body.type-detail .p-detail-info a[data-testid="productCardBrandName"] {
    color: var(--gl-fg-2) !important;
    text-decoration: none !important;
    font-size: 13px !important;
    letter-spacing: 0.04em;
    transition: color .15s !important;
}
body.type-detail .p-detail-info a[data-testid="productCardBrandName"] span {
    color: var(--gl-fg-1);
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: var(--gl-w-medium);
}
body.type-detail .p-detail-info a[data-testid="productCardBrandName"]:hover {
    color: var(--gl-fg-1) !important;
}

/* --- 7. Skladem: green vendor → black bold + checkmark --- */
body.type-detail .availability-value {
    margin: 12px 0 24px !important;
}
body.type-detail .availability-label,
body.type-detail [data-testid="labelAvailability"],
body.type-detail span.availability-label[style*="color"] {
    color: var(--gl-fg-1) !important;
    font-family: var(--gl-font-ui) !important;
    font-size: 14px !important;
    font-weight: var(--gl-w-medium) !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
body.type-detail .availability-label::before,
body.type-detail [data-testid="labelAvailability"]::before {
    content: "";
    display: inline-block;
    width: 14px;
    height: 14px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M2 7l3 3 7-7'/></svg>") center/contain no-repeat;
    flex-shrink: 0;
}
/* Out-of-stock variant */
body.type-detail .availability-label[style*="color: #cb"],
body.type-detail .availability-label[style*="color:#cb"] {
    color: var(--gl-fg-2) !important;
}
body.type-detail .availability-label[style*="color: #cb"]::before,
body.type-detail .availability-label[style*="color:#cb"]::before {
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='gray' stroke-width='2' stroke-linecap='round'><path d='M2 7h10'/></svg>") center/contain no-repeat;
}

/* --- 8. Empty popis: friendly empty state --- */
body.type-detail .advanced-description-content:empty,
body.type-detail #description:empty,
body.type-detail #tab-description p:only-child {
    /* fallback only — vendor outputs "Popis produktu není dostupný" */
}
/* Vendor empty text styling */
body.type-detail #description,
body.type-detail .advanced-description-content {
    padding: 32px 0 64px !important;
}
body.type-detail #description h3,
body.type-detail .advanced-description-content h3 {
    font-family: var(--gl-font-ui);
    font-size: 24px;
    font-weight: var(--gl-w-medium);
    letter-spacing: -0.01em;
    margin: 0 0 16px;
    color: var(--gl-fg-1);
}
body.type-detail #description p,
body.type-detail .advanced-description-content p {
    color: var(--gl-fg-2);
    font-size: 14px;
    line-height: 1.6;
    margin: 0 0 12px;
}
/* Wrap empty-state in fancy box */
body.type-detail .advanced-description {
    padding: 32px 0;
}

/* --- 9. Image / Info layout: 55/45 split + tighter info column --- */
@media (min-width: 1280px) {
    /* JEN .row co obsahuje p-image-wrapper (image+info row), ne tabs row */
    body.type-detail .row:has(.p-image-wrapper):has(.p-info-wrapper) {
        display: grid !important;
        grid-template-columns: 55fr 45fr !important;
        gap: 60px !important;
        align-items: start !important;
    }
    body.type-detail .p-image-wrapper.col-lg-6,
    body.type-detail .p-image-wrapper {
        grid-column: 1 !important;
        width: 100% !important;
        max-width: none !important;
        padding: 0 !important;
    }
    body.type-detail .p-info-wrapper.col-lg-6,
    body.type-detail .p-info-wrapper {
        grid-column: 2 !important;
        width: 100% !important;
        max-width: none !important;
        padding: 0 !important;
    }
    body.type-detail .p-info-wrapper .p-final-price-wrapper {
        margin-top: 0;
    }
}

/* --- Tabs wrapper: vrat full-width layout --- */
body.type-detail .shp-tabs-wrapper.p-detail-tabs-wrapper,
body.type-detail .shp-tabs-row,
body.type-detail .col-sm-12.shp-tabs-row {
    width: 100% !important;
    max-width: 100% !important;
    grid-column: 1 / -1 !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.type-detail .shp-tabs-wrapper .row {
    display: block !important;
    grid-template-columns: none !important;
}
body.type-detail ul.shp-tabs,
body.type-detail ul.p-detail-tabs {
    justify-content: flex-start !important;
}

/* --- Mobile breadcrumb: schovat home icon (cisty seznam textu) --- */
@media (max-width: 767px) {
    .breadcrumbs .navigation-home-icon,
    .breadcrumbs #navigation-first .navigation-home-icon {
        display: none !important;
        width: 0 !important;
        height: 0 !important;
    }
    .breadcrumbs #navigation-first .navigation-bullet,
    .breadcrumbs #navigation-first {
        display: none !important;
    }
    .breadcrumbs {
        gap: 4px 8px !important;
    }
}

/* --- Tab content: lepsi empty state look --- */
body.type-detail .tab-content #description,
body.type-detail .tab-content > div {
    min-height: 80px;
}
body.type-detail #description h3 {
    font-size: 20px !important;
    margin-bottom: 8px !important;
}
body.type-detail #description p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--gl-fg-2);
    margin: 0;
}

/* --- 10. Social icons: link-icon SVG already loaded, polish layout --- */
body.type-detail .link-icons {
    display: flex;
    align-items: center;
    gap: 28px;
    margin: 24px 0 0;
    padding: 16px 0 0;
    border-top: 1px solid var(--gl-divider);
}
body.type-detail .link-icons a.link-icon {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--gl-fg-2) !important;
    text-decoration: none !important;
    font-family: var(--gl-font-ui);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    transition: color .15s, opacity .15s;
    background: none !important;
    padding: 0 !important;
}
body.type-detail .link-icons a.link-icon::before {
    display: inline-block;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    opacity: 1;
}
body.type-detail .link-icons a.link-icon:hover {
    color: var(--gl-fg-1) !important;
}
body.type-detail .link-icons a.link-icon span {
    display: inline-block;
    font-weight: var(--gl-w-medium);
}
@media (max-width: 767px) {
    body.type-detail .link-icons {
        gap: 16px;
        padding-top: 12px;
        margin-top: 16px;
        flex-wrap: wrap;
    }
    body.type-detail .link-icons a.link-icon {
        font-size: 11px;
        gap: 6px;
    }
}

/* --- 11. Tab content area --- */
body.type-detail .tab-content,
body.type-detail .advanced-description {
    padding-top: 24px;
}
body.type-detail #description:empty::before,
body.type-detail .advanced-description-content p:only-child:has-text("není dostupný") {
    /* Pure CSS empty-state hard — vendor renders text. We just style nicely */
}

/* ============================================================
   === Detail produktu — final layout polish (dle detail.png) ===
   ============================================================ */

/* --- Reorder p-detail children: header → benefits → tabs → related --- */
body.type-detail .p-detail {
    display: flex !important;
    flex-direction: column !important;
}
body.type-detail .p-detail > meta,
body.type-detail .p-detail > span.js-hidden { order: -100; }
body.type-detail .p-detail > .p-detail-inner { order: 10; }
body.type-detail .p-detail > .benefitBanner { order: 20; }
body.type-detail .p-detail > .shp-tabs-wrapper { order: 30; }
body.type-detail .p-detail > .products-related-header { order: 40; }
body.type-detail .p-detail > .products-related,
body.type-detail .p-detail > .products.products-related { order: 50; }

/* --- Layout: image vlevo (full-height), pravá kolonka = title / meta / info --- */
body.type-detail .p-detail-inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    column-gap: 60px !important;
    row-gap: 4px !important;
    align-items: start !important;
    margin: 0 !important;
}
body.type-detail .p-detail-inner > form,
body.type-detail .p-detail-inner > form.pr-action {
    display: contents !important;
}
body.type-detail .p-detail-inner .row.product-top {
    display: contents !important;
}
body.type-detail .p-detail-inner > .p-detail-inner-header {
    grid-column: 2 !important;
    grid-row: 1 !important;
    margin: 0 0 12px !important;
}
body.type-detail .row.product-top > .col-xs-12:not(.col-lg-6) {
    grid-column: 2 !important;
    grid-row: 2 !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.type-detail .row.product-top > .col-lg-6.p-image-wrapper,
body.type-detail .row.product-top > .p-image-wrapper {
    grid-column: 1 !important;
    grid-row: 1 / span 3 !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.type-detail .row.product-top > .col-lg-6.p-info-wrapper,
body.type-detail .row.product-top > .p-info-wrapper {
    grid-column: 2 !important;
    grid-row: 3 !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column;
    gap: 18px;
}
/* Override starší rule, která dělala grid na .row */
body.type-detail .row:has(.p-image-wrapper):has(.p-info-wrapper) {
    display: contents !important;
}

/* --- Title v info kolonce: menší + cleaner --- */
body.type-detail .p-detail-inner-header h1 {
    font-family: var(--gl-font-ui) !important;
    font-size: 36px !important;
    line-height: 1.15 !important;
    font-weight: var(--gl-w-bold) !important;
    margin: 0 !important;
    letter-spacing: -0.01em !important;
    color: var(--gl-fg-1);
}
body.type-detail .p-detail-inner-header .p-code {
    display: none !important; /* design nemá kód viditelný v hero */
}

/* --- Meta v info: skrýt flagy, podrobnosti hodnocení, "Značka:" prefix --- */
body.type-detail .p-detail-info .flags,
body.type-detail .p-detail-info .flags-default,
body.type-detail .p-detail-info .flag,
body.type-detail .p-detail-info span.flag-action,
body.type-detail .p-detail-info span.flag-tip {
    display: none !important;
}
body.type-detail .p-detail-info .stars-wrapper button.js-ratingDialogTrigger {
    display: none !important; /* "Podrobnosti hodnocení" — nepotřebné */
}
/* "Značka:" prefix v brand divu — schovat, nechat jen jméno značky */
body.type-detail .p-detail-info > div:has(a[data-testid="productCardBrandName"]) {
    font-size: 0 !important; /* hide prefix text */
}
body.type-detail .p-detail-info > div:has(a[data-testid="productCardBrandName"]) a {
    font-size: 14px !important;
    color: var(--gl-fg-1) !important;
    letter-spacing: normal !important;
}
body.type-detail .p-detail-info > div:has(a[data-testid="productCardBrandName"]) a > span {
    text-decoration: none !important;
    font-weight: var(--gl-w-medium) !important;
}
/* Reset .p-detail-info container padding (in info col, no centering needed) */
body.type-detail .p-detail-info {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
    align-items: flex-start !important;
    gap: 10px !important;
}

/* --- Quantity stepper: rámeček + +/- buttony --- */
body.type-detail .content span.quantity {
    display: inline-flex !important;
    align-items: stretch !important;
    height: 52px;
    border: 1px solid var(--gl-stroke-1);
    background: var(--gl-white);
    flex: 0 0 auto;
    position: relative;
    isolation: isolate;
    padding: 0 !important;
}
body.type-detail .content span.quantity > label {
    display: flex !important;
    align-items: center;
    order: 2;
    margin: 0 !important;
    padding: 0 !important;
}
body.type-detail .content span.quantity input.amount {
    width: 56px !important;
    height: 50px !important;
    border: 0 !important;
    background: var(--gl-white) !important;
    text-align: center !important;
    font-family: var(--gl-font-ui) !important;
    font-size: 16px !important;
    font-weight: var(--gl-w-medium) !important;
    line-height: 50px !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    -moz-appearance: textfield !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    color: var(--gl-fg-1) !important;
    overflow: hidden !important;
}
body.type-detail .content span.quantity label {
    overflow: hidden !important;
    position: relative !important;
    background: var(--gl-white);
}
body.type-detail .content span.quantity input.amount::-webkit-outer-spin-button,
body.type-detail .content span.quantity input.amount::-webkit-inner-spin-button,
body.type-detail .content input[type="number"]::-webkit-outer-spin-button,
body.type-detail .content input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0 !important;
    display: none !important;
}
body.type-detail .content input[type="number"] {
    -moz-appearance: textfield !important;
    appearance: textfield !important;
}
body.type-detail .content span.quantity input.amount:focus {
    outline: none;
    box-shadow: inset 0 0 0 2px var(--gl-fg-1);
}
body.type-detail .content span.quantity button.increase,
body.type-detail .content span.quantity button.decrease {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 36px !important;
    min-width: 36px !important;
    height: 50px !important;
    background: var(--gl-white) !important;
    color: var(--gl-fg-1) !important;
    border: 0 !important;
    cursor: pointer;
    font-family: var(--gl-font-ui);
    font-size: 18px;
    line-height: 1;
    padding: 0 !important;
    margin: 0 !important;
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transition: background-color .15s, color .15s;
    flex: 0 0 auto !important;
}
body.type-detail .content span.quantity button.increase:before,
body.type-detail .content span.quantity button.decrease:before {
    content: none !important;
    display: none !important;
}
body.type-detail .content span.quantity button.decrease { order: 1; border-right: 1px solid var(--gl-stroke-1) !important; }
body.type-detail .content span.quantity button.increase { order: 3; border-left: 1px solid var(--gl-stroke-1) !important; }
body.type-detail .content span.quantity button.increase:hover,
body.type-detail .content span.quantity button.decrease:hover {
    background: var(--gl-fg-1) !important;
    color: var(--gl-white) !important;
}
body.type-detail .content span.quantity button.increase:focus-visible,
body.type-detail .content span.quantity button.decrease:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 2px;
    z-index: 1;
}
body.type-detail .content span.quantity button.increase:disabled,
body.type-detail .content span.quantity button.decrease:disabled,
body.type-detail .content span.quantity button.increase[disabled],
body.type-detail .content span.quantity button.decrease[disabled] {
    background: var(--gl-white) !important;
    color: var(--gl-fg-2) !important;
    opacity: 0.4;
    cursor: not-allowed;
}
body.type-detail .content span.quantity button.increase span,
body.type-detail .content span.quantity button.decrease span,
body.type-detail .content span.quantity .increase__sign,
body.type-detail .content span.quantity .decrease__sign {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: auto !important;
    height: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    color: inherit !important;
    font: inherit !important;
    background: none !important;
    display: inline-block !important;
}
/* Hide vendor tooltips inside quantity (anywhere, vč. ::before/::after) */
body.type-detail .content span.quantity > .increase-tooltip,
body.type-detail .content span.quantity > .decrease-tooltip,
body.type-detail .content span.quantity .js-increase-tooltip,
body.type-detail .content span.quantity .js-decrease-tooltip,
body.type-detail .content span.quantity [role="tooltip"],
body.type-detail .content span.quantity [data-trigger="manual"],
body.type-detail .content span.quantity [data-testid="tooltip"] {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    font-size: 0 !important;
    position: absolute !important;
    left: -99999px !important;
    overflow: hidden !important;
}
body.type-detail .content span.quantity > .increase-tooltip::before,
body.type-detail .content span.quantity > .increase-tooltip::after,
body.type-detail .content span.quantity > .decrease-tooltip::before,
body.type-detail .content span.quantity > .decrease-tooltip::after { content: none !important; display: none !important; }

/* --- Add-to-cart: full-row layout (qty + button na jedné lince) --- */
body.type-detail .content div.add-to-cart {
    margin: 4px 0 0 !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
}
body.type-detail .content div.add-to-cart button.add-to-cart-button {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    height: 52px !important;
    position: relative;
    padding: 0 56px 0 24px !important;
}
body.type-detail .content div.add-to-cart button.add-to-cart-button::after {
    content: "";
    position: absolute;
    right: 24px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 12px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='square'><path d='M0 6h16'/><path d='M11 1l5 5-5 5'/></svg>") center/contain no-repeat;
    transition: transform .15s, background-image .15s;
}
body.type-detail .content div.add-to-cart button.add-to-cart-button:hover::after {
    transform: translate(3px, -50%);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='square'><path d='M0 6h16'/><path d='M11 1l5 5-5 5'/></svg>");
}

/* --- Detail short description: schovat (design nemá pod cenou) --- */
body.type-detail .content .p-info-wrapper .chevron-after.chevron-down-after,
body.type-detail .content .p-info-wrapper [data-testid="productCardDescr"],
body.type-detail .content .p-info-wrapper .p-short-description,
body.type-detail .p-info-wrapper [itemprop="description"] {
    display: none !important;
}

/* --- Social row: schovat (Tisk / Zeptat se / Sdílet) --- */
body.type-detail .social-buttons-wrapper,
body.type-detail .link-icons,
body.type-detail .social-buttons {
    display: none !important;
}

/* --- Cena: bez "5 Kč" wraperu, just sloupec --- */
body.type-detail .p-final-price-wrapper {
    margin: 4px 0 !important;
}
body.type-detail .p-final-price-wrapper strong.price-final {
    font-size: 38px !important;
    line-height: 1.1 !important;
    font-weight: var(--gl-w-bold) !important;
}

/* --- Availability: tighter spacing --- */
body.type-detail .availability-value {
    margin: 0 0 4px !important;
}

/* --- Image wrapper: square s clean rounded NEvyžadovaný — pouze paper bg ostr roh --- */
body.type-detail .p-image,
body.type-detail #wrap {
    border-radius: 0 !important;
    background: var(--gl-surface-alt, #f3f1ec) !important;
}

/* --- Image gallery: thumbs vlevo, main image vpravo --- */
body.type-detail .p-image-wrapper {
    display: flex !important;
    flex-direction: row !important;
    gap: 14px !important;
    align-items: flex-start;
}
body.type-detail .p-image-wrapper .p-image {
    flex: 1 1 auto;
    order: 2;
    min-width: 0;
}
body.type-detail .p-image-wrapper .p-thumbnails-wrapper {
    order: 1;
    flex: 0 0 auto;
    width: 76px;
    height: auto !important;
    overflow: visible !important;
}
body.type-detail .p-image-wrapper .p-thumbnails,
body.type-detail .p-image-wrapper .p-thumbnails-horizontal {
    width: 76px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
}
body.type-detail .p-image-wrapper .p-thumbnails-inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 76px !important;
    max-width: 76px !important;
    height: auto !important;
    transform: none !important;
    position: static !important;
    overflow: visible !important;
}
body.type-detail .p-image-wrapper .p-thumbnails-inner > div {
    display: block !important;
    width: 76px !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.type-detail .p-image-wrapper a.p-thumbnail {
    display: block !important;
    width: 76px !important;
    height: 76px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--gl-surface-alt, #f3f1ec);
    border: 2px solid transparent !important;
    overflow: hidden;
    transition: border-color .15s, opacity .15s;
    cursor: pointer;
}
body.type-detail .p-image-wrapper a.p-thumbnail.highlighted {
    border-color: var(--gl-fg-1) !important;
}
body.type-detail .p-image-wrapper a.p-thumbnail:hover {
    border-color: var(--gl-fg-1) !important;
    opacity: 0.85;
}
body.type-detail .p-image-wrapper a.p-thumbnail:focus-visible {
    outline: 2px solid var(--gl-fg-1);
    outline-offset: 2px;
}
body.type-detail .p-image-wrapper a.p-thumbnail img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.type-detail .p-image-wrapper a.thumbnail-prev,
body.type-detail .p-image-wrapper a.thumbnail-next {
    display: none !important;
}

/* --- Benefits row: rovnoměrný 4-col layout, ikony + text vedle sebe --- */
body.type-detail .benefitBanner.position--benefitProduct {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 24px !important;
    margin: 48px 0 0 !important;
    padding: 32px 0 !important;
    border-top: 1px solid var(--gl-divider);
    border-bottom: 1px solid var(--gl-divider);
}
body.type-detail .benefitBanner__item {
    display: flex !important;
    align-items: center;
    gap: 14px;
    margin: 0 !important;
    padding: 0 !important;
}
body.type-detail .benefitBanner__picture {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
}
body.type-detail .benefitBanner__img {
    width: 36px !important;
    height: 36px !important;
    object-fit: contain !important;
}
body.type-detail .benefitBanner__content {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
body.type-detail .benefitBanner__title {
    font-family: var(--gl-font-ui) !important;
    font-size: 14px !important;
    font-weight: var(--gl-w-medium) !important;
    color: var(--gl-fg-1) !important;
    line-height: 1.2;
}
body.type-detail .benefitBanner__data {
    font-family: var(--gl-font-ui);
    font-size: 13px;
    color: var(--gl-fg-2);
    line-height: 1.3;
}

/* --- Tabs wrapper: vrchní border, full-width, žádný šedý strip --- */
body.type-detail .shp-tabs-wrapper.p-detail-tabs-wrapper {
    margin: 56px 0 0 !important;
    padding: 0 !important;
    width: 100% !important;
    background: transparent !important;
}
body.type-detail .shp-tabs-wrapper .shp-tabs-row,
body.type-detail .shp-tabs-wrapper .responsive-nav,
body.type-detail .shp-tabs-wrapper .shp-tabs-holder {
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
}
body.type-detail .shp-tabs-wrapper .row,
body.type-detail .shp-tabs-wrapper .col-sm-12 {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}
body.type-detail .shp-tabs-wrapper button.navigation-btn,
body.type-detail .shp-tabs-wrapper ul.hidden-links {
    display: none !important;
}

/* --- Related products header: design má "Mohlo by se vám líbit" stejně velký --- */
body.type-detail h2.products-related-header {
    margin: 80px 0 32px !important;
    padding: 0 !important;
    font-family: var(--gl-font-ui) !important;
    font-size: 32px !important;
    line-height: 1.1 !important;
    font-weight: var(--gl-w-bold) !important;
    color: var(--gl-fg-1) !important;
    letter-spacing: -0.01em;
}

/* --- Related products grid: auto-fill (4-up max, méně produktů = úzkější karty) --- */
body.type-detail .products.products-related,
body.type-detail .products-related.products-additional {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
    gap: 40px 24px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
    max-width: 100%;
}
/* Na desktop chceme max 4 sloupce */
@media (min-width: 1280px) {
    body.type-detail .products.products-related,
    body.type-detail .products-related.products-additional {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}
body.type-detail .products.products-related > .product,
body.type-detail .products-related.products-additional > .product {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    flex: none !important;
    display: block !important;
    list-style: none;
}
/* Card inner reuses homepage `.product .p` styling — same look as on homepage */
body.type-detail .products.products-related .product .p {
    display: flex !important;
    flex-direction: column;
    gap: 0;
    height: 100%;
    background: var(--gl-white);
    border: 0;
}
body.type-detail .products.products-related .product a.image {
    display: block !important;
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--gl-surface-alt, #f3f1ec);
    margin: 0 0 14px !important;
}
body.type-detail .products.products-related .product a.image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    transition: transform .35s ease-out;
}
body.type-detail .products.products-related .product:hover a.image img,
body.type-detail .products.products-related .product a.image:hover img,
body.type-detail .products.products-related .product a.image:focus-visible img {
    transform: scale(1.04);
}
body.type-detail .products.products-related .product .p-in {
    display: flex !important;
    flex-direction: column;
    gap: 8px;
    padding: 0 !important;
}
body.type-detail .products.products-related .product .p-in-in {
    display: flex !important;
    flex-direction: column;
    gap: 6px;
}
body.type-detail .products.products-related .product a.name {
    font-family: var(--gl-font-ui) !important;
    font-size: 17px !important;
    font-weight: var(--gl-w-medium) !important;
    color: var(--gl-fg-1) !important;
    text-decoration: none !important;
    line-height: 1.3;
    margin: 0 !important;
    transition: opacity .15s;
}
body.type-detail .products.products-related .product a.name:hover,
body.type-detail .products.products-related .product a.name:focus-visible { opacity: .65; }
body.type-detail .products.products-related .product a.name span,
body.type-detail .products.products-related .product .name span[data-testid="productCardName"] {
    color: inherit !important;
}
body.type-detail .products.products-related .product .ratings-wrapper {
    display: none !important; /* design v souvis. produktech rating neukazuje */
}
body.type-detail .products.products-related .product .p-bottom {
    margin: 4px 0 0 !important;
    padding: 0 !important;
}
body.type-detail .products.products-related .product .prices,
body.type-detail .products.products-related .product .price-final {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}
body.type-detail .products.products-related .product .price-final strong {
    font-family: var(--gl-font-ui) !important;
    font-size: 16px !important;
    font-weight: var(--gl-w-medium) !important;
    color: var(--gl-fg-1) !important;
    background: transparent !important;
    padding: 0 !important;
}
/* Skrýt vendor add-to-cart na souvisejících kartách (design má jen kartu, ne CTA na kartě) */
body.type-detail .products.products-related .product .p-tools,
body.type-detail .products.products-related .product .p-tools form,
body.type-detail .products.products-related .product .p-tools button,
body.type-detail .products.products-related .product .p-bottom .p-tools {
    display: none !important;
}
body.type-detail .products.products-related .product .p-code {
    display: none !important;
}

/* --- Tab content: pad + clean --- */
body.type-detail .shp-tabs-wrapper #tab-content,
body.type-detail .shp-tabs-wrapper .tab-content {
    padding: 32px 0 0 !important;
}
body.type-detail #description h3,
body.type-detail .advanced-description-content h3 {
    font-family: var(--gl-font-ui) !important;
    font-size: 22px !important;
    font-weight: var(--gl-w-bold) !important;
    color: var(--gl-fg-1) !important;
    margin: 0 0 16px !important;
}
body.type-detail #description p,
body.type-detail .advanced-description-content p {
    font-family: var(--gl-font-body) !important;
    font-size: 15px !important;
    line-height: 1.7 !important;
    color: var(--gl-fg-1) !important;
    margin: 0 0 12px !important;
}

/* --- Sidebar hide on detail (CLAUDE.md rule) — extra safety --- */
body.type-detail aside.sidebar.sidebar-left,
body.type-detail aside.sidebar {
    display: none !important;
}
body.type-detail #content-wrapper {
    display: block !important;
}
body.type-detail main#content,
body.type-detail .content-wrapper-in {
    width: 100% !important;
    max-width: var(--gl-page-max) !important;
    margin: 0 auto !important;
    float: none !important;
}

/* --- Responsive: tablet & mobile --- */
@media (max-width: 1023px) {
    /* Detail hlavička: desktop 2-sloupcový grid → mobil 1-sloupcový STACK přes flex+order.
       (grid-column reset nestačil: .col-lg-6.p-info-wrapper{grid-column:2} má vyšší
       specificitu než .p-info-wrapper{grid-column:1} → grid zůstával 2-col a překrýval se.) */
    body.type-detail .p-detail-inner {
        display: flex !important;
        flex-direction: column !important;
        column-gap: 0 !important;
        row-gap: 0 !important;
    }
    body.type-detail .p-detail-inner > .p-detail-inner-header,
    body.type-detail .row.product-top > .col-xs-12,
    body.type-detail .row.product-top > .col-xs-12:not(.col-lg-6),
    body.type-detail .row.product-top > .col-lg-6.p-image-wrapper,
    body.type-detail .row.product-top > .p-image-wrapper,
    body.type-detail .row.product-top > .col-lg-6.p-info-wrapper,
    body.type-detail .row.product-top > .p-info-wrapper {
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    /* Pořadí: title → obrázek → značka/rating → cena+košík+dostupnost */
    body.type-detail .p-detail-inner > .p-detail-inner-header {
        order: 1 !important;
        margin: 0 0 16px !important;
    }
    body.type-detail .row.product-top > .col-lg-6.p-image-wrapper,
    body.type-detail .row.product-top > .p-image-wrapper {
        order: 2 !important;
    }
    body.type-detail .row.product-top > .col-xs-12:not(.col-lg-6) {
        order: 3 !important;
        margin-top: 16px !important;
    }
    body.type-detail .row.product-top > .col-lg-6.p-info-wrapper,
    body.type-detail .row.product-top > .p-info-wrapper {
        order: 4 !important;
        margin-top: 16px !important;
    }
    /* Obrázek na 1 řádek (plná šířka), náhledy pod ním (horizontálně) */
    body.type-detail .p-image-wrapper {
        flex-direction: column !important;
    }
    body.type-detail .p-image-wrapper .p-image { order: 1 !important; width: 100% !important; }
    body.type-detail .p-image-wrapper .p-thumbnails-wrapper {
        order: 2 !important;
        width: 100% !important;
        margin-top: 10px !important;
    }
    body.type-detail .p-image-wrapper .p-thumbnails,
    body.type-detail .p-image-wrapper .p-thumbnails-horizontal,
    body.type-detail .p-image-wrapper .p-thumbnails-inner {
        width: 100% !important;
        max-width: none !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
    }
    body.type-detail .benefitBanner.position--benefitProduct {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px !important;
    }
    body.type-detail .products.products-related {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 32px 20px !important;
    }
    body.type-detail h2.products-related-header {
        margin-top: 56px !important;
        font-size: 26px !important;
    }
}
@media (max-width: 767px) {
    body.type-detail .p-detail-inner-header h1 {
        font-size: 26px !important;
    }
    body.type-detail .p-final-price-wrapper strong.price-final {
        font-size: 30px !important;
    }
    body.type-detail div.add-to-cart {
        flex-direction: column;
        gap: 10px;
    }
    body.type-detail div.add-to-cart button.add-to-cart-button {
        width: 100% !important;
        min-width: 0;
    }
    body.type-detail span.quantity {
        width: 100%;
        justify-content: space-between;
    }
    body.type-detail span.quantity input.amount {
        flex: 1 1 auto;
        width: auto !important;
    }
    body.type-detail .benefitBanner.position--benefitProduct {
        grid-template-columns: 1fr !important;
        padding: 24px 0 !important;
        margin-top: 32px !important;
    }
    body.type-detail .products.products-related {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 24px 14px !important;
    }
    body.type-detail h2.products-related-header {
        margin-top: 40px !important;
        font-size: 22px !important;
    }
}

/* ============================================================
   === Review fixes 2 (košík popup, mobil logo, mobil drawer) ===
   ============================================================ */

/* --- #2 Cart hover popup (#cart-widget) --- */
/* Popup je position:absolute vůči body, vendor ho zarovnal na pravý okraj .container (1573),
   ale košík sahá až na gutter (vw - 60) → popup mířil "vedle". Zarovnat pravou hranu na gutter. */
@media (min-width: 1024px) {
    #cart-widget.cart-widget,
    .user-action-cart.cart-widget {
        left: auto !important;
        right: var(--gl-gutter) !important;
        margin-left: 0 !important;
    }
}
/* Horizontální scrollbar pryč — vendor řádek (display:table) se roztahuje nad šířku */
#cart-widget .cart-widget-products,
.cart-widget .cart-widget-products {
    overflow-x: hidden !important;
    padding-left:5px !important;
    padding-right:5px !important;
}
#cart-widget .cart-widget-products-inner,
#cart-widget .cart-widget-product {
    max-width: 100% !important;
    table-layout: fixed;
}
/* "Pokračovat do košíku" — vendor teal/gradient → černá (barva šablony) */
#cart-widget .btn-conversion,
#cart-widget a.btn-conversion,
.cart-widget .btn.btn-conversion {
    background: var(--gl-black) !important;
    background-color: var(--gl-black) !important;
    background-image: none !important;
    color: var(--gl-white) !important;
    border: 0 !important;
    transition: background .15s !important;
}
#cart-widget .btn-conversion:hover,
#cart-widget a.btn-conversion:hover,
.cart-widget .btn.btn-conversion:hover {
    background: #1a1a1a !important;
    background-color: #1a1a1a !important;
    color: var(--gl-white) !important;
}

@media (max-width: 1023px) {
    /* --- #7 Mobil logo — vendor dává .site-name { position:absolute; top:-50px }
       (mobile-header-version-1) → logo skočí na y=0 pod neprůhlednou top-navigation-bar.
       Vrátit do toku, ať se zobrazí v header-top. --- */
    header#header .site-name {
        position: static !important;
        top: auto !important;
        left: auto !important;
    }
    header#header .site-name-wrapper {
        display: flex;
        align-items: center;
        width: auto;
        height: auto;
    }

    /* === #1 Sloučit logo + ikony do JEDNOHO řádku ===
       Dříve: topnav (fixed, ikony) řádek 1, header (logo) řádek 2 → 2 řádky.
       Řešení: zrušit rezervní padding-top → header na y=0; topnav transparentní overlay
       (ikony vpravo) ve stejném 56px řádku jako logo (header bílé pozadí pod ikonami). */
    .overall-wrapper { padding-top: 0 !important; }
    .top-navigation-bar {
        background: transparent !important;
        box-shadow: none !important;
        border: 0 !important;
    }
    .top-navigation-bar .container { pointer-events: none; }
    .top-navigation-bar .top-navigation-tools,
    .top-navigation-bar .responsive-tools,
    .top-navigation-bar .responsive-tools * { pointer-events: auto; }
    header#header .header-top { height: 56px; align-items: center; }
    /* Košík pill je v headeru, ale překrývá se s topnav ikonami a není v mobil designu → skrýt */
    header#header .navigation-buttons { display: none !important; }

    /* === #5 Mobil drawer overlay ===
       header má z-index:50 (sticky → stacking context), drawer (z:200) je uvnitř → maluje
       na úrovni 50. Backdrop body::before (z:150) maluje PŘES celý header vč. draweru.
       Zvednout header nad backdrop, ALE udělat ho průhledný (jinak bílý header řádek leží
       nad overlayem) — viditelný zůstane jen drawer. Košík je už skrytý (nahoře). */
    body.navigation-window-visible header#header {
        z-index: 300 !important;
        background: transparent !important;
    }
    body.navigation-window-visible header#header .header-top,
    body.navigation-window-visible header#header .container.navigation-wrapper {
        background: transparent !important;
    }
}

/* ============================================================
   === Review fixes 3 (košík /kosik mobil) ===
   ============================================================ */

/* --- #9 Černá linka pod menu: ol.cart-header active step má border-bottom 3px black
   a na mobilu je full-width (ostatní steps w=0) → černá čára přes celou šířku.
   Zrušit full-width border, podtrhnout jen text aktivního kroku. --- */
@media (max-width: 1023px) {
    ol.cart-header > li.step.active,
    ol.cart-header > li.active {
        border-bottom: 0 !important;
    }
    ol.cart-header > li.active > strong > span,
    ol.cart-header > li.active > a > span {
        border-bottom: 2px solid var(--gl-fg-1);
        padding-bottom: 4px;
    }
}

@media (max-width: 767px) {
    /* --- #8 Košík položka: remove (×) tlačítko bylo vendor 100×44 černé absolute →
       překrývalo "Součet". Udělat malé transparentní × v pravém horním rohu řádku. --- */
    table.cart-table tr.removeable { position: relative !important; }
    table.cart-table td.p-total {
        position: static !important;
        padding-right: 0 !important;
    }
    table.cart-table td.p-name { padding-right: 40px !important; } /* místo pro × vpravo nahoře */
    /* Vysoká specificita + background shorthand !important — vendor dává remove buttonu
       černé pozadí (background-color) které přebíjelo můj transparent. */
    #cart-wrapper table.cart-table tr.removeable td.p-total button.remove-item,
    #cart-wrapper table.cart-table tr.removeable button.remove-item,
    #cart-wrapper table.cart-table button.remove-item,
    table.cart-table td.p-total button.remove-item,
    table.cart-table button.remove-item {
        position: absolute !important;
        top: 14px !important;
        right: 0 !important;
        bottom: auto !important;
        left: auto !important;
        transform: none !important;
        width: 30px !important;
        height: 30px !important;
        min-width: 0 !important;
        padding: 0 !important;
        background-color: transparent !important;
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23828282' stroke-width='1.5' stroke-linecap='round'><path d='M4 4l8 8M12 4l-8 8'/></svg>") !important;
        background-position: center !important;
        background-repeat: no-repeat !important;
        background-size: 16px 16px !important;
        border: 0 !important;
        box-shadow: none !important;
        color: transparent !important;
        font-size: 0 !important;
    }
    body.ordering-process table.cart-table button.remove-item:hover { opacity: .6; }

    /* --- #8 Souhrn (Doprava zdarma / Celkem za zboží / tlačítka) na střed --- */
    #cart-wrapper .row.cart-row > .col-md-4,
    #cart-wrapper .row.cart-row > .col-md-4 .summary-wrapper,
    #cart-wrapper .cart-summary,
    #cart-wrapper .cart-summary .extras-wrapper,
    #cart-wrapper .cart-summary .extras-col {
        text-align: center !important;
    }
    /* extras-wrapper je grid (2 sloupce) → "Doprava zdarma" skončí v levém sloupci.
       Na mobilu block + full-width, ať centrování zabere. */
    #cart-wrapper .cart-summary .extras-wrapper {
        display: block !important;
        grid-template-columns: 1fr !important;
    }
    #cart-wrapper .cart-summary .extras-col { width: 100% !important; }
    #cart-wrapper .cart-summary .extras-wrap,
    #cart-wrapper .cart-summary [class*="free-shipping"],
    #cart-wrapper .cart-summary [class*="shipping"] {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        text-align: center !important;
    }
}

/* ============================================================
   === Review fixes 4 (desktop polish dle improvement.txt) ===
   ============================================================ */

/* --- #1 Top bar: menu odkazy vertikálně na střed + rovnoměrné oddělovače ---
   Vendor přebíjí .top-navigation-menu na display:block (UL pak sedí nahoře,
   ne na středu). Vendor oddělovač li::before "|" je position:absolute → nestejné
   rozestupy. Force flex-center + oddělovač static, symetrický v mezeře. */
.top-navigation-bar .top-navigation-menu {
    display: flex !important;
    align-items: center !important;
}
.top-navigation-bar ul.top-navigation-bar-menu {
    align-items: center;
    height: auto;
    gap: 0 !important;
}
.top-navigation-bar ul.top-navigation-bar-menu > li > a {
    padding: 0 13px;
}
.top-navigation-bar ul.top-navigation-bar-menu > li::before {
    content: "|" !important;
    position: static !important;
    display: inline-block !important;
    margin: 0 !important;
    color: var(--gl-mute);
    font-weight: var(--gl-w-regular);
    line-height: 1;
    align-self: center;
}
.top-navigation-bar ul.top-navigation-bar-menu > li:first-child::before {
    content: none !important;
    display: none !important;
}

/* --- #2 Breadcrumbs: domeček + vertikální zarovnání + čisté oddělovače ---
   Vendor dává linkům min-height:38px (text pak sedí nahoře → "Pexesa, karty"
   vypadá níž) a chevron přes a::before/a::after. Zrušit obojí, oddělovač řešit
   přes .navigation-bullet jako "›", na první položku přidat ikonu domečku. */
body:not(.in-index) .breadcrumbs a,
body:not(.in-index) .breadcrumbs span {
    min-height: 0 !important;
    height: auto !important;
    line-height: 1;
}
body:not(.in-index) .breadcrumbs a::before,
body:not(.in-index) .breadcrumbs a::after {
    content: none !important;
    display: none !important;
}
body:not(.in-index) .breadcrumbs > span {
    display: inline-flex !important;
    align-items: center;
}
/* Oddělovač "›" z navigation-bullet (vendor "/" skrytý display:none) */
body:not(.in-index) .breadcrumbs .navigation-bullet {
    display: inline-flex !important;
    align-items: center;
    width: auto !important;
    height: auto !important;
    margin: 0 4px !important;
    padding: 0 !important;
    font-size: 0 !important;
    color: var(--gl-fg-2);
    opacity: .5;
}
body:not(.in-index) .breadcrumbs .navigation-bullet::before {
    content: "\203A"; /* › */
    font-size: 18px;
    line-height: 1;
}
/* Ikona domečku na první (home) položce */
body:not(.in-index) .breadcrumbs a.navigation-home-icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 18px !important;
    height: 18px !important;
    min-height: 18px !important;
    flex: 0 0 18px;
    padding: 0 !important;
    background: center / 16px 16px no-repeat
        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='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 10.5 12 3l9 7.5'/><path d='M5 9.5V20h14V9.5'/></svg>") !important;
    opacity: .55;
    transition: opacity .15s;
}
body:not(.in-index) .breadcrumbs a.navigation-home-icon:hover { opacity: .9; }

/* --- #3 Řazení produktů: položky namačkané (column-gap normal=0) → provzdušnit ---
   .listSorting (div wrapper) má gap, ale skutečný UL .listSorting__controls ne. */
ul.listSorting__controls {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 28px !important;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* --- #4 Filtr: čitelný 2-sloupcový layout v šedivém kontejneru + černý slider ---
   col1 = Cena (slider), col2 = ostatní filtry (skladem + značky). */
#filters.filters.visible {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 24px 48px;
    align-items: start;
    background: var(--gl-paper-2);
    padding: 28px 32px;
    margin: 0 0 32px;
    box-sizing: border-box;
}
#filters.filters.visible .slider-wrapper {
    grid-column: 1;
    grid-row: 1;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    left: auto !important;
    box-sizing: border-box;
}
#filters.filters.visible #price-filter-form {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
}
#filters.filters.visible .filter-sections {
    grid-column: 2;
    grid-row: 1 / span 2;
    margin: 0;
}
/* Slider modrý (jQuery UI) → černý */
#filters .ui-slider-range {
    background: var(--gl-fg-1) !important;
}
#filters .ui-slider-handle {
    background: var(--gl-fg-1) !important;
    border-color: var(--gl-fg-1) !important;
}

/* --- #5 Patička: logo zarovnat nahoru + start kontejneru jako copyright ---
   Vendor dává .site-name position:absolute (top:96px, left:20px) → logo plave
   dolů a vlevo. Static ho vrátí do flow → respektuje footer-rows padding (60px)
   = stejný start jako footer-bottom (copyright), a top-align s ostatními sloupci. */
footer#footer .footer-rows .site-name {
    position: static !important;
    top: auto !important;
    left: auto !important;
}
/* Bootstrap `.container::before/::after` clearfix se ve flex containeru chová jako
   flex-item (0 šířky) → posune první obsah o `gap` (logo +60, copyright +16) →
   logo nezačínalo na stejné x jako copyright. Skrýt phantom pseudo-itemy. */
footer#footer .container.footer-rows::before,
footer#footer .container.footer-rows::after,
footer#footer .container.footer-bottom::before,
footer#footer .container.footer-bottom::after,
footer#footer .footer-bottom::before,
footer#footer .footer-bottom::after {
    display: none !important;
    content: none !important;
}

/* --- #7 Detail produktu: hodnocení/značka/cena k sobě + stepper polish ---
   Obrázek (col1) spanuje 3 grid-řádky (~700px) → nafoukne auto-řádky a vznikne
   obří mezera mezi značkou (row2) a cenou (row3). Poslední řádek na 1fr →
   přebytečný prostor jde POD cenu, ne mezi značku a cenu. */
body.type-detail .p-detail-inner {
    grid-template-rows: min-content min-content 1fr !important;
    row-gap: 8px !important;
}
body.type-detail .row.product-top > .col-lg-6.p-info-wrapper,
body.type-detail .row.product-top > .p-info-wrapper {
    margin-top: 16px !important; /* malý odstup značka → cena, ne 170px */
}

/* Stepper: vendor zabíjí pravý border (border-right:0 → "useknutá pravá část").
   Vynutit celý rámeček. */
body.type-detail span.quantity {
    border: 1px solid var(--gl-stroke-1) !important;
}
/* Odstup stepperu od "Přidat do košíku" (bylo nalepené 12px) */
body.type-detail div.add-to-cart {
    gap: 18px !important;
}
/* "Šipka nad jedničkou" = vendor increase/decrease tooltip (pop-up nad buttonem
   s CSS šipkou). Skrýt úplně. */
body.type-detail span.quantity .increase-tooltip,
body.type-detail span.quantity .decrease-tooltip,
body.type-detail span.quantity .js-increase,
body.type-detail span.quantity .js-decrease {
    display: none !important;
}
/* Pojistka: number spinner úplně pryč (i bez .amount class) */
body.type-detail span.quantity input[type="number"]::-webkit-inner-spin-button,
body.type-detail span.quantity input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: none !important;
    margin: 0 !important;
}

/* --- #8 Cart hover popup: čitelný layout řádku produktu ---
   Vendor řádek je display:table; navíc detail span.quantity (52px) prosakuje
   do widgetu na detail stránce → stepper přeteče buňku a překryje název/cenu.
   Přestavit na flex [obrázek | název+cena | stepper | ×] + kompaktní stepper. */
#cart-widget .cart-widget-product {
    display: flex !important;
    align-items: center;
    gap: 11px;
    width: 100% !important;
    box-sizing: border-box;
    padding: 4px 0;
}
#cart-widget .cart-widget-product > * {
    display: block !important; /* zrušit table-cell */
}
#cart-widget .cart-widget-product-image {
    order: 1;
    flex: 0 0 56px;
    width: 56px !important;
}
#cart-widget .cart-widget-product-image a,
#cart-widget .cart-widget-product-image img {
    width: 56px !important;
    height: 56px !important;
    object-fit: cover;
}
#cart-widget .cart-widget-product-name {
    order: 2;
    flex: 1 1 auto;
    min-width: 0;
    display: flex !important;
    flex-direction: column;
    gap: 2px;
    text-align: left !important;
}
#cart-widget .cart-widget-product-name strong {
    font-family: var(--gl-font-ui);
    font-size: 14px;
    font-weight: var(--gl-w-medium);
    line-height: 1.3;
    color: var(--gl-fg-1);
}
#cart-widget .cart-widget-product-name span {
    font-size: 14px;
    color: var(--gl-fg-2);
}
#cart-widget .cart-widget-product-unit {
    display: none !important; /* "ks" redundantní */
}
#cart-widget .cart-widget-product-amount {
    order: 3;
    flex: 0 0 auto;
}
#cart-widget .cart-widget-product-delete {
    order: 4;
    flex: 0 0 auto;
    visibility: visible !important;
}
/* Kompaktní stepper ve widgetu (override detail leak) */
#cart-widget span.quantity {
    height: 35px !important;
    border: 1px solid var(--gl-stroke-1) !important;
    width: auto !important;
    overflow: hidden;
}
.quantity-form .quantity {
    padding-right: 34px !important;
}
#cart-widget span.quantity button.increase,
#cart-widget span.quantity button.decrease {
width: 17px !important;
    min-width: 26px !important;
    height: 16px !important;
    font-size: 14px !important;
    display: block;
    margin: 0 !important;
}
.quantity-form .quantity .decrease {
    top: 16px !important;
}
#cart-widget span.quantity > label,
#cart-widget span.quantity input.amount,
#cart-widget span.quantity input[type="number"] {
    width: 32px !important;
    height: 30px !important;
    font-size: 14px !important;
    line-height: 30px !important;
}
/* Tooltip "šipka nad 1" + spinner pryč i ve widgetu */
#cart-widget .increase-tooltip,
#cart-widget .decrease-tooltip,
#cart-widget .js-increase,
#cart-widget .js-decrease {
    display: none !important;
}
#cart-widget input[type="number"]::-webkit-inner-spin-button,
#cart-widget input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: none !important;
}
/* "Dopravu máte zdarma!" — zvýraznit + oddělit (vendor fialová na child elementu) */
#cart-widget .cart-free-shipping {
    display: block !important;
    background: var(--gl-paper-2) !important;
    padding: 10px 14px !important;
    margin: 10px 0 !important;
    text-align: center !important;
    border-radius: 2px;
}
#cart-widget .cart-free-shipping,
#cart-widget .cart-free-shipping * {
    color: var(--gl-fg-1) !important;
    font-weight: var(--gl-w-medium) !important;
}

/* --- #9 Checkout krok-1/2/3: sidebar překrývá formulář (blokuje klikání) ---
   Grid layout je scoped na `#cart-wrapper .row.cart-row`, ale na checkout krocích
   je `.row.cart-row` pod `.cart-inner > main.content` (NE #cart-wrapper) → grid se
   neaplikuje, row zůstane display:block. #checkoutSidebar má width:100% (grid-column:2
   ignorováno) → plovoucí přes col-md-8 → elementFromPoint vrací sidebar = nelze klikat.
   Řešení: aplikovat grid i mimo #cart-wrapper přes body.ordering-process. */
body.ordering-process .row.cart-row {
    display: grid !important;
    grid-template-columns: 1fr 380px;
    grid-template-rows: auto;
    gap: 40px;
    margin: 0 !important;
    direction: ltr !important;
}
body.ordering-process .row.cart-row > #checkoutContent.col-md-8,
body.ordering-process .row.cart-row > .col-md-8 {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    float: none !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    direction: ltr;
}
body.ordering-process .row.cart-row > #checkoutSidebar.col-md-4,
body.ordering-process .row.cart-row > .col-md-4 {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    float: none !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    direction: ltr;
}
/* Mobil: stack pod sebe (1 sloupec), reset grid-column na obou */
@media (max-width: 1023px) {
    body.ordering-process .row.cart-row {
        grid-template-columns: 1fr !important;
        gap: 28px;
    }
    body.ordering-process .row.cart-row > #checkoutContent.col-md-8,
    body.ordering-process .row.cart-row > .col-md-8,
    body.ordering-process .row.cart-row > #checkoutSidebar.col-md-4,
    body.ordering-process .row.cart-row > .col-md-4 {
        grid-column: 1 !important;
    }
    body.ordering-process .row.cart-row > #checkoutSidebar.col-md-4,
    body.ordering-process .row.cart-row > .col-md-4 {
        grid-row: 2 !important;
    }
}

/* --- #6a Našeptávač (.search-whisperer): černé písmo + černý border + padding ---
   Vendor má modré písmo (rgb(16,118,183)), žádný border, padding 5px (nalepené). */
.search-whisperer {
    border: 1px solid var(--gl-stroke-1) !important;
    border-top: 0 !important; /* navazuje na input s černým borderem */
    background: var(--gl-white) !important;
    padding: 8px !important;
    box-shadow: none !important;
    box-sizing: border-box;
    width: calc(100% + 2px);
    margin: -1px;
}
.search-whisperer,
.search-whisperer a,
.search-whisperer span,
.search-whisperer em,
.search-whisperer li,
.search-whisperer strong,
.search-whisperer .search-whisperer-document {
    color: var(--gl-fg-1) !important;
}
.search-whisperer a,
.search-whisperer .search-whisperer-document {
    display: block;
    padding: 5px 12px !important;
    text-decoration: none !important;
    border-radius: 2px;
    transition: background .12s;
}
.search-whisperer a:hover,
.search-whisperer .search-whisperer-document:hover,
.search-whisperer li:hover > a {
    background: var(--gl-paper-2) !important;
    color: var(--gl-fg-1) !important;
}
/* Nadpisy skupin (Kategorie / Produkty / Články) */
.search-whisperer .search-whisperer-title,
.search-whisperer h3,
.search-whisperer .whisperer-heading {
    color: var(--gl-fg-2) !important;
    font-family: var(--gl-font-ui);
    font-size: 12px;
    font-weight: var(--gl-w-medium);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 8px 12px 4px !important;
}

/* --- #6b Výsledky vyhledávání: produkty do gridu jako kategorie (ne starý flex) --- */
body.type-search .products.products-block,
body.in-vyhledavani .products.products-block {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    column-gap: 40px !important;
    row-gap: 50px !important;
    flex-wrap: nowrap !important;
    margin: 0 0 40px !important;
    padding: 0 !important;
}
body.type-search .products.products-block > .product {
    box-sizing: border-box;
    width: auto !important;
    max-width: none !important;
    flex: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
body.type-search .products.products-block .product > .p,
body.type-search .products.products-block .product div.p {
    display: flex !important;
    flex-direction: column;
    gap: 14px;
    height: auto;
    background: transparent;
    border: 0;
    box-shadow: none;
}
body.type-search .products.products-block .product a.image {
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    margin: 0;
    background: var(--gl-surface-alt);
    overflow: hidden;
    border-radius: 0;
}
body.type-search .products.products-block .product a.image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}
body.type-search .products.products-block .product:hover a.image img {
    transform: scale(1.04);
}
body.type-search .products.products-block .product a.name {
    display: block;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    min-height: 52px;
    margin: 0;
    padding: 0;
    color: var(--gl-fg-1);
    text-decoration: none;
    font-family: var(--gl-font-ui);
    font-size: 20px;
    font-weight: var(--gl-w-medium);
    line-height: 26px;
}
body.type-search .products.products-block .product a.name:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}
body.type-search .products.products-block .product .price.price-final,
body.type-search .products.products-block .product .price.price-final strong {
    color: var(--gl-fg-1);
    font-family: var(--gl-font-ui);
    font-size: 20px;
    font-weight: var(--gl-w-regular);
    line-height: 24px;
}
/* Skrýt vendor meta na search kartách (kód, dostupnost, hvězdy, tlačítka) */
body.type-search .products.products-block .product .ratings-wrapper,
body.type-search .products.products-block .product .stars-wrapper,
body.type-search .products.products-block .product .availability,
body.type-search .products.products-block .product .p-code,
body.type-search .products.products-block .product .p-desc,
body.type-search .products.products-block .product .p-tools,
body.type-search .products.products-block .product .add-to-cart {
    display: none !important;
}
@media (max-width: 1279px) {
    body.type-search .products.products-block {
        grid-template-columns: repeat(3, 1fr) !important;
        column-gap: 24px !important; row-gap: 36px !important;
    }
}
@media (max-width: 767px) {
    body.type-search .products.products-block {
        grid-template-columns: repeat(2, 1fr) !important;
        column-gap: 12px !important; row-gap: 24px !important;
    }
    body.type-search .products.products-block .product a.name { font-size: 14px; line-height: 18px; min-height: 36px; }
    body.type-search .products.products-block .product .price.price-final { font-size: 14px; }
}

/* ============================================================
   === Mobil audit fixes (2026-07-03) — konzistence napříč eshopem ===
   Zdroj: full mobile audit (home/detail/kategorie/search/košík/checkout/registrace/login/heslo).
   ============================================================ */

@media (max-width: 1023px) {
    /* --- A1) Skryj topnav menu (Jak nakupovat / OP) na mobilu ---
       Globální "desktop polish" rule `.top-navigation-menu{display:flex}` (bez media query,
       pozdější v pořadí) přebíjela mobilní `display:none` → menu se zobrazovalo a jeho bílé
       pozadí PŘEKRÝVALO logo. Late-source !important vrací hidden. */
    .top-navigation-bar .top-navigation-menu,
    .top-navigation-bar .top-navigation-menu-trigger,
    .top-navigation-bar ul.top-navigation-bar-menu {
        display: none !important;
    }

    /* --- A2) Topnav VŽDY fixed overlay (konzistentně) ---
       Vendor dává topnav `fixed` na homepage, ale `static` na kategorii/detailu/košíku/checkoutu
       → tam header spadl na 2. řádek (logo pod ikonami) a checkout step-bar (ol.cart-header)
       se schoval za header (vykukoval jen černý kroužek kroku = "blob").
       Fixed = header sedí na y=0 (logo vlevo), ikony transparentně přes něj vpravo,
       obsah teče pod headerem → 1 řádek na VŠECH stránkách + step-bar viditelný. */
    .top-navigation-bar {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 60 !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        /* Bar leží (fixed, z60) přes logo v headeru → jinak přebírá kliky a logo
           není klikatelné. none = kliky projdou na logo pod ním; ikony mají auto níž. */
        pointer-events: none !important;
    }
    .top-navigation-bar .top-navigation-tools,
    .top-navigation-bar .responsive-tools,
    .top-navigation-bar .responsive-tools * {
        pointer-events: auto !important;
    }
    header#header {
        position: sticky !important;
        top: 0 !important;
    }

    /* --- A3) Reset ordering-process login boxu na HEADER ikoně ---
       Rule `body.ordering-process .toggle-window[data-target=login]` (mířená na checkout
       login trigger) trefovala i header ikonu → bílý bordered box místo ikony. Vrátit ikonu. */
    body.ordering-process .top-navigation-bar .responsive-tools a.toggle-window[data-target="login"] {
        padding: 0 !important;
        background-color: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        letter-spacing: 0 !important;
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.8'><circle cx='14' cy='10' r='4'/><path d='M6 24c0-4 4-7 8-7s8 3 8 7'/></svg>") !important;
        background-position: center !important;
        background-repeat: no-repeat !important;
        background-size: 22px 22px !important;
    }

    /* --- A4) Větší tap-target ikon (min 44px hit area), vizuální ikona 22px.
       position:relative + z-index → ikony vždy nad sourozenci (na checkoutu byl
       search anchor jinak nehittestovatelný = neklikatelný). --- */
    .top-navigation-bar .top-navigation-tools .responsive-tools a.toggle-window {
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        background-size: 22px 22px !important;
        position: relative !important;
        z-index: 2 !important;
        pointer-events: auto !important;
    }
    .top-navigation-bar .top-navigation-tools .responsive-tools { gap: 2px !important; }
    .top-navigation-bar .container { height: 56px !important; padding: 0 8px 0 16px !important; }
}

/* --- B) Account/form primární tlačítka: modrá/purpurová → černá ---
   REGISTROVAT (input.btn-login), PŘIHLÁSIT SE (button.btn-login), ODESLAT (input.btn-primary),
   404 "Zpět do obchodu" (a.btn-default). Vendor je nechává modré/purpurové. */
input.btn.btn-primary, input[type="submit"].btn-primary, input[type="submit"].btn-login,
input.btn.btn-login, button.btn.btn-login,
a.btn.btn-default:not(.unveil-button):not(.toggle-contacts):not(.next-step-forward) {
    background: var(--gl-black) !important;
    background-color: var(--gl-black) !important;
    background-image: none !important;
    color: var(--gl-white) !important;
    border: 1px solid var(--gl-black) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    font-family: var(--gl-font-ui) !important;
    font-weight: var(--gl-w-medium) !important;
    padding: 12px 24px !important;
    min-height: 44px !important;
    cursor: pointer;
    transition: background .15s;
}
input.btn.btn-primary:hover, input.btn.btn-login:hover,
button.btn.btn-login:hover, a.btn.btn-default:not(.unveil-button):hover {
    background: #1a1a1a !important;
    background-color: #1a1a1a !important;
}

/* --- C) Load-more + "Nahoru": modrá → černá outline --- */
button.loadMore__button, a.loadMore__button, .loadMore__button,
a.goToTop__button, .goToTop__button.btn {
    color: var(--gl-fg-1) !important;
    background: var(--gl-white) !important;
    background-color: var(--gl-white) !important;
    background-image: none !important;
    border: 1px solid var(--gl-fg-1) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    font-family: var(--gl-font-ui) !important;
    font-weight: var(--gl-w-medium) !important;
}
button.loadMore__button:hover, a.goToTop__button:hover, .loadMore__button:hover {
    background: var(--gl-fg-1) !important;
    background-color: var(--gl-fg-1) !important;
    color: var(--gl-white) !important;
}

/* --- D) Modré textové odkazy (account formuláře, search kategorie) → černá podtržená --- */
body.in-login #formLogin a,
body.in-login #formLoginIncluded a,
body.in-registrace #register-form a,
body.in-zapomenute-heslo main a:not(.btn),
#customerLogin #formLoginIncluded a,
body.type-search #search-group-categories a,
body.type-search .search-results-group a {
    color: var(--gl-fg-1) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}
body.in-login #formLogin a:hover,
body.in-registrace #register-form a:hover,
body.type-search .search-results-group a:hover {
    opacity: .7;
}
/* Search kategorie: zruš disc odrážky (vendor UL) → čistý seznam */
body.type-search #search-group-categories ul,
body.type-search .search-results-group-list {
    list-style: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}
body.type-search #search-group-categories li,
body.type-search .search-results-group-list li {
    list-style: none !important;
}

/* --- E) Checkout: vybraná doprava/platba (b.shipping-billing-name) je modrá → černá --- */
b.shipping-billing-name,
.shipping-billing-name,
body.ordering-process .shipping-billing-name,
body.ordering-process .cart-recap .price,
body.ordering-process td.shipping-billing-name {
    color: var(--gl-fg-1) !important;
}

/* --- F) Košík quantity stepper: vendor dává +/− buttonům position:absolute →
   vypadnou z gridu (cart CSS je narozdíl od detailu neresetuje) → rozhozený box.
   Přepnout na flex [− 1 +] jako na detailu. --- */
table.cart-table span.quantity {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    width: 120px !important;
    height: 40px !important;
    padding: 0 !important;
    position: relative;
    overflow: hidden;
}
table.cart-table span.quantity button.decrease,
table.cart-table span.quantity button.increase {
    position: static !important;
    inset: auto !important;
    top: auto !important; right: auto !important; bottom: auto !important; left: auto !important;
    width: 36px !important;
    min-width: 36px !important;
    height: auto !important;
    align-self: stretch !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0 !important;
    background: transparent !important;
}
table.cart-table span.quantity button.decrease { order: 1 !important; border-right: 1px solid var(--gl-divider) !important; }
table.cart-table span.quantity label { order: 2 !important; flex: 1 1 auto !important; margin: 0 !important; }
table.cart-table span.quantity input.amount { width: 100% !important; }
table.cart-table span.quantity button.increase { order: 3 !important; border-left: 1px solid var(--gl-divider) !important; }
table.cart-table span.quantity button.decrease::before,
table.cart-table span.quantity button.increase::before {
    position: static !important;
    inset: auto !important;
    top: auto !important; left: auto !important; right: auto !important; bottom: auto !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    transform: none !important;
    font-size: 18px !important;
    line-height: 1 !important;
    color: var(--gl-fg-1) !important;
    background: none !important;
}
table.cart-table span.quantity button.decrease::before { content: "−" !important; }
table.cart-table span.quantity button.increase::before { content: "+" !important; }
table.cart-table span.quantity .increase__sign,
table.cart-table span.quantity .decrease__sign,
table.cart-table span.quantity .increase-tooltip,
table.cart-table span.quantity .decrease-tooltip,
table.cart-table span.quantity .js-increase-tooltip,
table.cart-table span.quantity .js-decrease-tooltip { display: none !important; }

