/* stylesheet_cm_funkce.css - FUNKČNÍ pravidla pro funkce převzaté z CM (výpis a dlaždice, přechodník rozměrů, množství, rychlý náhled, porovnání).
   Jen to, bez čeho by funkce nefungovala nebo byla nepoužitelná (skrytý seznam, absolutní pozice, plovoucí lišta, dialogy a jejich ::backdrop,
   štítky nad obrázkem, průhlednost při AJAX výměně). Vzhled (barvy, písmo, mezery) dodá Bootstrap a návrhy majitele; barvy se berou z proměnných
   šablony (--zca_*), záložní hodnoty platí, kdyby šablona proměnné nedefinovala. Selektory míří na značkování Bootstrap šablony
   (#productListing = obal výpisu, .card.centerBoxContentsListing = dlaždice) a na třídy, které generují funkce extra_functions (cm-*, svm-*, tt-*, rozmery-*).
   Další etapy (filtry, detail, košík, pokladna, hlavička) doplní svá funkční pravidla do tohoto souboru patchem. */

:root {
  --cmf-akcent: var(--zca_button_background_color, #0d6efd);
  --cmf-akcent-hover: var(--zca_button_background_color_hover, #0b5ed7);
  --cmf-akcent-text: var(--zca_button_text_color, #fff);
  --cmf-text: var(--zca_body_text_color, #212529);
  --cmf-pozadi: var(--zca_body_background_color, #fff);
  --cmf-slaby: #6c757d;
  --cmf-ramecek: #dee2e6;
  --cmf-lehke: #f8f9fa;
  --cmf-akce: var(--zca_body_products_special_color, #c0392b);
}

/* --- dlaždice výpisu --------------------------------------------------------------------------------------------- */
#productListing .list-image { position: relative; }
#productListing .list-image > a { display: block; }
#productListing .card.centerBoxContentsListing:has(.rozmery-dropdown__list.is-open) { position: relative; z-index: 60; }   /* otevřený seznam rozměrů přes sousední dlaždice */
#productListing td:has(.rozmery-dropdown__list.is-open) { position: relative; z-index: 60; }
#productListing .cm-dlazdice-koupit { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .5rem 1rem; margin: .5rem 0; }
#productListing .cm-dlazdice-koupit .pl-dp { margin: 0; }
#productListing .cm-dlazdice-koupit { flex-direction: column; }
#productListing .cm-dlazdice-koupit form { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .5rem; max-width: 100%; margin: 0; }
#productListing .cm-dlazdice-koupit form br { display: none; }
.cm-dlazdice-akce { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; margin: .5rem 0 0; }
.cm-akce-stitky { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; margin-top: .5rem; }
.cm-akce-stitek { display: inline-flex; align-items: center; padding: .15rem .6rem; border-radius: 999px; font-size: .75rem; font-weight: 700; }
.cm-akce-stitek--sleva { background: var(--cmf-akce); color: #fff; }
.cm-akce-stitky .tt-label-gift, .cm-akce-stitky .tt-label-code { position: static; }

/* stránky výrobců a Akce: nadpis skupiny zboží přes celý řádek výpisu, bez stránkování */
#productListing .cm-vypis-skupina { width: 100%; margin: 1.25rem 0 .5rem; padding-bottom: .35rem; border-bottom: 1px solid var(--cmf-ramecek); text-align: left; }
#productListing .cm-vypis-skupina h2 { margin: 0; font-size: 1.35rem; scroll-margin-top: 5rem; }
.cm-vyrobce-vypis #productsListing-topRow, .cm-vyrobce-vypis #productsListing-bottomRow { display: none !important; }   /* Bootstrap: .d-flex má !important */
.cm-vyrobce-kotvy { display: flex; flex-wrap: wrap; gap: .5rem; margin: .5rem 0 1rem; }
.cm-chip { display: inline-block; padding: .25rem .8rem; border: 1px solid var(--cmf-ramecek); border-radius: 999px; background: var(--cmf-pozadi); color: var(--cmf-text); font-size: .85rem; font-weight: 600; text-decoration: none; }
.cm-chip:hover { border-color: var(--cmf-akcent); text-decoration: none; }

/* řazení jako řádek odkazů */
.cm-razeni { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .9rem; }
.cm-razeni-odkaz.is-active { font-weight: 700; text-decoration: underline; }
.cm-razeni-oddel { color: var(--cmf-ramecek); }

/* stránkování: jediná strana = jádro vypíše jen popisek bez odkazů */
#productListing .navSplitPagesLinks:not(:has(li)) { display: none; }

/* AJAX výměna výpisu (filtry): průhlednost po dobu načítání */
#productListing.svm-ajax-loading, .tt-filters-panel.svm-ajax-loading { opacity: .5; pointer-events: none; }

/* --- štítky nad obrázkem (dárek, slevový kód) ------------------------------------------------------------------- */
.list-image .tt-label-gift, .list-image .tt-label-code { position: absolute; top: .4rem; z-index: 2; display: inline-flex; align-items: center; gap: .35rem; padding: .25rem .6rem; font-size: .75rem; font-weight: 700; line-height: 1.3; white-space: nowrap; max-width: calc(100% - .8rem); overflow: hidden; text-overflow: ellipsis; }
.list-image .tt-label-code { left: .4rem; background: var(--cmf-akce); color: #fff; }
.list-image .tt-label-gift { right: .4rem; background: var(--cmf-pozadi); color: var(--cmf-text); box-shadow: 0 0 0 1px var(--cmf-ramecek); }
.tt-label-gift svg { flex: 0 0 auto; }

/* --- piktogramy vlastností z filtrů na dlaždici (inline SVG, barva currentColor) ----------------------------------- */
.tt-filter-badges { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem .9rem; margin: .5rem 0; padding: 0; list-style: none; }
.tt-filter-badge { display: inline-flex; align-items: center; gap: .35rem; font-size: .8rem; line-height: 1.3; }
.tt-filter-badge svg { flex: 0 0 auto; width: 20px; height: 20px; stroke: currentColor; color: var(--cmf-akcent); }
.svm-gift-icon svg, .svm-1plus1-icon svg { width: 20px; height: 20px; }
.svm-1p1-set { display: block; font-size: .8rem; line-height: 1.35; font-weight: 400; color: var(--cmf-slaby); }
.svm-1p1-tag { display: inline-block; margin-right: .4rem; padding: 0 .35rem; border: 1px solid var(--cmf-ramecek); border-radius: 3px; font-weight: 600; }
.svm-1p1-piece { white-space: nowrap; }

/* --- přechodník rozměrů "Dostupné rozměry" (AJAX po rozbalení) ----------------------------------------------------- */
.rozmery-dropdown { position: relative; margin: .75rem 0 .5rem; }
.rozmery-dropdown__label { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .8rem; border: 1px solid var(--cmf-ramecek); border-radius: .25rem; background: var(--cmf-lehke); color: var(--cmf-text); font-size: .85rem; font-weight: 600; cursor: pointer; user-select: none; }
.rozmery-dropdown__label:hover { background: #e9ecef; }
.rozmery-dropdown__arrow { font-size: .7rem; transition: transform .2s; }
.rozmery-dropdown__label.is-open .rozmery-dropdown__arrow { transform: rotate(180deg); }
.rozmery-dropdown__list { display: none; position: absolute; top: 100%; left: 0; z-index: 999; list-style: none; margin: .25rem 0 0; padding: 0; min-width: 100%; max-height: 260px; overflow-y: auto; border: 1px solid var(--cmf-ramecek); border-radius: .25rem; background: var(--cmf-pozadi); box-shadow: 0 .25rem .6rem rgba(0, 0, 0, .12); }
.rozmery-dropdown__list.is-open { display: block; }
.rozmery-dropdown__list li a { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .45rem .85rem; border-bottom: 1px solid var(--cmf-lehke); color: var(--cmf-text); font-size: .85rem; text-decoration: none; white-space: nowrap; }
.rozmery-dropdown__list li a:hover { background: var(--cmf-lehke); }
.rozmery-dropdown__list li.is-active a { font-weight: 700; pointer-events: none; }
.rozmery-dropdown__list li.is-active a::after { content: "\25C0  aktuální"; font-size: .7rem; font-weight: 400; margin-left: .5rem; }
.rozmery-dropdown__price { color: var(--cmf-slaby); font-size: .8rem; }
.rozmery-dropdown__loading { padding: .6rem .85rem; color: var(--cmf-slaby); font-size: .85rem; }
.rozmery-dropdown--listing { text-align: center; }
.rozmery-dropdown--listing .rozmery-dropdown__list { left: 50%; transform: translateX(-50%); text-align: left; min-width: 240px; max-width: calc(100vw - 2rem); }
.rozmery-dropdown--listing .rozmery-dropdown__list li a { white-space: normal; }
.rozmery-dropdown__hint { margin: 0 0 .25rem; font-size: .75rem; color: var(--cmf-slaby); }

/* --- pole množství s tlačítky - / + --------------------------------------------------------------------------------- */
.cm-mnozstvi { display: inline-flex; align-items: center; vertical-align: middle; white-space: nowrap; }
.cm-mnozstvi-tl { width: 2.25rem; height: 2.4rem; margin: 0; padding: 0; border: 1px solid var(--cmf-ramecek); background: var(--cmf-pozadi); color: var(--cmf-text); font-size: 1.1rem; line-height: 1; cursor: pointer; flex: 0 0 auto; }
.cm-mnozstvi-minus { border-radius: .25rem 0 0 .25rem; }
.cm-mnozstvi-plus { border-radius: 0 .25rem .25rem 0; }
.cm-mnozstvi-tl:hover { background: var(--cmf-lehke); }
.cm-mnozstvi input.cm-mnozstvi-pole { width: 3.4rem; height: 2.4rem; margin: 0; padding: 0 .25rem; border: 1px solid var(--cmf-ramecek); border-left: 0; border-right: 0; border-radius: 0; text-align: center; box-sizing: border-box; -moz-appearance: textfield; }
.cm-mnozstvi input.cm-mnozstvi-pole::-webkit-outer-spin-button, .cm-mnozstvi input.cm-mnozstvi-pole::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cm-mnozstvi-mj { margin-left: .5rem; font-size: .85rem; color: var(--cmf-slaby); }

/* --- tlačítka Porovnat / Rychlý náhled (dlaždice, detail, náhled) ---------------------------------------------------- */
.cm-porovnat, .cm-nahled { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .7rem; border: 1px solid var(--cmf-ramecek); border-radius: 999px; background: var(--cmf-pozadi); color: var(--cmf-slaby); font: inherit; font-size: .8rem; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer; }
.cm-porovnat svg, .cm-nahled svg { flex: 0 0 auto; }
.cm-porovnat:hover, .cm-nahled:hover, .cm-porovnat:focus-visible, .cm-nahled:focus-visible { border-color: var(--cmf-akcent); color: var(--cmf-text); text-decoration: none; }
.cm-porovnat.is-active { border-color: var(--cmf-akcent); color: var(--cmf-text); background: var(--cmf-lehke); }
.cm-porovnat:disabled { opacity: .6; cursor: wait; }
.cm-nav-porovnani .cm-topbar-porovnani { display: inline-flex; align-items: center; gap: .4rem; padding: .5rem; color: inherit; text-decoration: none; }
.cm-porovnani-pocet { display: inline-flex; align-items: center; justify-content: center; min-width: 1.4rem; height: 1.4rem; padding: 0 .35rem; border-radius: 999px; background: var(--cmf-akcent); color: var(--cmf-akcent-text); font-size: .75rem; box-sizing: border-box; }
.cm-porovnani-pocet.is-prazdny { display: none; }

/* --- plovoucí lišta "Porovnat vybrané (n)" a toast ------------------------------------------------------------------ */
.cm-porovnani-lista { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 900; display: none; align-items: center; gap: .25rem; padding: .5rem .5rem .5rem 1rem; border-radius: 999px; background: #212529; color: #fff; box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .3); }
.cm-porovnani-lista.is-visible { display: flex; }
.cm-porovnani-lista > a { display: inline-flex; align-items: center; gap: .5rem; color: #fff; font-weight: 600; text-decoration: none; }
.cm-porovnani-lista > a:hover { color: #fff; text-decoration: underline; }
.cm-porovnani-vymazat { width: 1.9rem; height: 1.9rem; margin-left: .25rem; border: 0; border-radius: 50%; background: transparent; color: #fff; font-size: 1.25rem; line-height: 1; opacity: .75; cursor: pointer; }
.cm-porovnani-vymazat:hover { opacity: 1; background: rgba(255, 255, 255, .12); }
.cm-toast { position: fixed; left: 50%; bottom: 5.25rem; z-index: 950; max-width: calc(100vw - 2.5rem); padding: .6rem 1.1rem; border-radius: .5rem; background: #212529; color: #fff; box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .2); opacity: 0; transform: translate(-50%, .5rem); pointer-events: none; transition: opacity .2s, transform .2s; }
.cm-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
.cm-toast.is-chyba { background: var(--cmf-akce); }

/* --- stránka porovnání ------------------------------------------------------------------------------------------------ */
.cm-porovnani-hlava { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem 1.25rem; margin-bottom: .5rem; }
.cm-porovnani-hlava h1 { margin: 0; }
.cm-porovnani-nastroje { display: flex; align-items: center; gap: .9rem; flex-wrap: wrap; }
.cm-porovnani-limit, .cm-porovnani-popis { color: var(--cmf-slaby); font-size: .85rem; }
.cm-porovnani-prazdne { padding: 2rem 1rem; border: 1px dashed var(--cmf-ramecek); border-radius: .5rem; text-align: center; }
.cm-porovnani-skupina { margin: 0 0 2rem; }
.cm-porovnani-pocet-skupiny { color: var(--cmf-slaby); font-weight: 400; font-size: .9em; }
.cm-porovnani-rolovani { overflow-x: auto; border: 1px solid var(--cmf-ramecek); border-radius: .5rem; background: var(--cmf-pozadi); }
.cm-porovnani-tabulka { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .9rem; }
.cm-porovnani-tabulka th, .cm-porovnani-tabulka td { padding: .6rem .85rem; border-bottom: 1px solid var(--cmf-ramecek); vertical-align: top; text-align: left; min-width: 11rem; }
.cm-porovnani-tabulka tbody tr:last-child th, .cm-porovnani-tabulka tbody tr:last-child td { border-bottom: 0; }
.cm-porovnani-tabulka thead th { vertical-align: bottom; background: var(--cmf-pozadi); }
.cm-porovnani-tabulka th.cm-porovnani-roh, .cm-porovnani-tabulka tbody th { position: sticky; left: 0; z-index: 1; width: 10rem; min-width: 9rem; background: var(--cmf-lehke); color: var(--cmf-slaby); font-weight: 600; }
.cm-porovnani-tabulka th.cm-porovnani-produkt { position: relative; text-align: center; padding-top: 1.1rem; }
.cm-porovnani-odebrat { position: absolute; top: .35rem; right: .5rem; width: 1.65rem; height: 1.65rem; border-radius: 50%; border: 1px solid var(--cmf-ramecek); background: var(--cmf-pozadi); color: var(--cmf-slaby); font-size: 1.1rem; line-height: 1.5rem; text-align: center; text-decoration: none; }
.cm-porovnani-odebrat:hover { background: var(--cmf-akce); border-color: var(--cmf-akce); color: #fff; text-decoration: none; }
.cm-porovnani-obrazek img { max-width: 150px; height: auto; }
.cm-porovnani-nazev { display: block; margin: .5rem 0 .25rem; font-weight: 700; }
.cm-porovnani-cena { font-weight: 700; }
.cm-porovnani-tabulka td.is-rozdil { background: var(--cmf-lehke); }   /* odlišné hodnoty v řádku (informace, ne vzhled) */
.cm-porovnani-radek-popis td { color: var(--cmf-slaby); font-size: .85rem; }
.cm-porovnani-radek-akce td { text-align: center; }

/* --- dialog rychlého náhledu a dialog po přidání do porovnání ---------------------------------------------------------- */
html.cm-nahled-otevreno { overflow: hidden; }
.cm-nahled-dialog { width: min(1190px, calc(100vw - 2rem)); max-height: calc(100vh - 2.5rem); padding: 0; border: 0; border-radius: .5rem; background: var(--cmf-pozadi); color: var(--cmf-text); box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .35); overflow: hidden; flex-direction: column; }
.cm-nahled-dialog[open] { display: flex; }
.cm-nahled-dialog::backdrop { background: rgba(15, 20, 30, .55); }
.cm-nahled-zavrit { position: absolute; top: .75rem; right: .75rem; z-index: 2; width: 2.25rem; height: 2.25rem; border: 1px solid var(--cmf-ramecek); border-radius: 50%; background: var(--cmf-pozadi); color: var(--cmf-slaby); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.cm-nahled-zavrit:hover { color: var(--cmf-text); border-color: var(--cmf-akcent); }
.cm-nahled-telo { padding: 1.75rem; overflow-y: auto; max-height: calc(100vh - 2.5rem); flex: 1 1 auto; min-height: 0; }
.cm-nahled-nacitam, .cm-nahled-chyba { margin: 2.5rem 0; text-align: center; color: var(--cmf-slaby); }
.cm-nahled-obsah--chyba { text-align: center; padding: 1.25rem 0; }
.cm-nahled-obrazek img { display: block; max-width: 100%; height: auto; }
.cm-nahled-nazev { margin: 0 2.25rem .25rem 0; font-size: 1.4rem; line-height: 1.25; }
.cm-nahled-udaje { display: flex; flex-wrap: wrap; gap: .35rem 1rem; margin: 0 0 .6rem; padding: 0; list-style: none; font-weight: 600; }
.cm-nahled-koupit { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.25rem; margin-top: .75rem; }
.cm-nahled-koupit .cm-nahled-cena { margin: 0; font-size: 1.75rem; font-weight: 700; line-height: 1.15; }
.cm-nahled-koupit .cm-nahled-kosik { display: flex; flex-wrap: nowrap; align-items: center; gap: .75rem; margin: 0; }
#cmNahledObsah .cm-nahled-info .card { margin-bottom: .5rem; }   /* atributy ze šablony Bootstrap (karty) v dialogu kompaktně */
#cmNahledObsah .cm-nahled-info .card-header { padding: .35rem .75rem; font-size: 1rem; }
#cmNahledObsah .cm-nahled-info .card-body { padding: .5rem .75rem; }
.cm-nahled-mnozstvi-pozn, .cm-nahled-v-kosiku { margin: .4rem 0 0; font-size: .8rem; color: var(--cmf-slaby); }
.cm-nahled-akce { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.1rem; margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--cmf-ramecek); }
.cm-nahled-popis-cely { margin: 1.5rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid var(--cmf-ramecek); }
.cm-nahled-popis-cely img { max-width: 100%; height: auto; }
.cm-porovnani-nabidka { width: min(460px, calc(100vw - 2rem)); padding: 1.5rem; border: 0; border-radius: .75rem; background: var(--cmf-pozadi); color: var(--cmf-text); box-shadow: 0 1.25rem 3.75rem rgba(0, 0, 0, .25); }
.cm-porovnani-nabidka::backdrop { background: rgba(15, 20, 30, .45); }
.cm-porovnani-nabidka-text { margin: 0 0 1.1rem; line-height: 1.5; }
.cm-porovnani-nabidka-tlacitka { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: flex-end; }
.cm-tlacitko { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; cursor: pointer; }
.cm-tlacitko:not(.btn) { padding: .5rem 1.1rem; border: 1px solid var(--cmf-akcent); border-radius: 999px; background: var(--cmf-akcent); color: var(--cmf-akcent-text); font-weight: 600; text-decoration: none; }
.cm-tlacitko:not(.btn).cm-tlacitko--obrys { background: var(--cmf-pozadi); color: var(--cmf-text); }

/* upozornění z centrály (dárek, slevový kód, 1+1) v náhledu a na detailu - jen rozměry, bez barevného návrhu */
.svm-gift-notice { display: flex; align-items: flex-start; gap: .75rem; margin: .9rem 0; padding: .75rem .9rem; border: 1px solid var(--cmf-ramecek); border-left-width: 4px; border-radius: .3rem; font-size: .9rem; line-height: 1.45; text-align: left; }
.svm-gift-icon { flex: 0 0 auto; margin-top: .1rem; line-height: 0; }
.svm-gift-text { flex: 1 1 auto; min-width: 0; }
.svm-gift-head, .svm-gift-line { display: block; }
.svm-gift-head { font-weight: 600; }
.svm-gift-thumb { flex: 0 0 auto; line-height: 0; }
.svm-gift-thumb img { width: 72px; height: 72px; object-fit: contain; border: 1px solid var(--cmf-ramecek); border-radius: .25rem; }
.svm-gift-overview-toggle { display: inline-block; margin: .25rem 0 0; padding: 0; border: 0; background: none; font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; color: inherit; }
.svm-gift-list { list-style: none; margin: 0; padding: 0; max-height: 360px; overflow-y: auto; border: 1px solid var(--cmf-ramecek); border-radius: .25rem; }
.svm-gift-list li { margin: 0; padding: 0; border-top: 1px solid var(--cmf-lehke); }
.svm-gift-loading, .svm-gift-empty { margin: 0; font-size: .85rem; color: var(--cmf-slaby); }
.svm-kod-code { padding: 0 .4rem; border: 1px dashed var(--cmf-akcent); border-radius: .3rem; letter-spacing: .04em; }
.svm-kod-copy { margin-left: .5rem; padding: .1rem .6rem; border: 1px solid var(--cmf-akcent); border-radius: 999px; background: var(--cmf-pozadi); color: var(--cmf-text); font-weight: 600; cursor: pointer; }

@media (max-width: 767.98px) {
  .cm-nahled-telo { padding: 1.25rem 1rem; }
  .cm-porovnani-lista { right: .75rem; bottom: .75rem; }
  .cm-porovnani-tabulka th, .cm-porovnani-tabulka td { min-width: 9.5rem; padding: .5rem .6rem; }
  .cm-porovnani-tabulka th.cm-porovnani-roh, .cm-porovnani-tabulka tbody th { width: 7.5rem; min-width: 7rem; }
}

/* --- panel filtrů produktů (etapa C2): ve středním sloupci nad výpisem, blok #cm-filtry-kolaps = Bootstrap collapse, od lg stále otevřený ---------- */
.tt-filters-panel.svm-ajax-loading, #productListing.svm-ajax-loading { opacity: .5; pointer-events: none; transition: opacity .15s linear; }
.cm-f-otevrit .cm-f-otevrit__skryt { display: none; }   /* text tlačítka podle stavu bloku (Bootstrap přepíná aria-expanded) */
.cm-f-otevrit[aria-expanded="true"] .cm-f-otevrit__zobrazit { display: none; }
.cm-f-otevrit[aria-expanded="true"] .cm-f-otevrit__skryt { display: inline; }
.cm-f-bloky { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem; align-items: start; }
.cm-f-bloky > .cm-f-blok { margin: 0; min-width: 0; }
.cm-f-nadpis { text-transform: uppercase; letter-spacing: .04em; margin-bottom: .75rem; }
.cm-f-pozn { margin: -.25rem 0 .75rem; }
.cm-f-chipy { display: flex; flex-wrap: wrap; gap: .5rem; }
.cm-f-chipy--dalsi { margin-top: .5rem; }
.cm-f-chip.is-active { font-weight: 700; box-shadow: 0 0 0 .2rem rgba(0, 0, 0, .25); }   /* aktuální rozměr musí být rozeznatelný i bez barevného návrhu */
.cm-f-chip:not(.is-active) { font-weight: 400; }
.cm-f-chips { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.svm-chip { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .7rem; font-size: .8125rem; font-weight: 500; text-decoration: none; white-space: normal; }
.svm-chip:hover, .svm-chip:focus { text-decoration: none; }
.svm-chip-x { font-weight: 700; }
.cm-f-volby { display: flex; flex-direction: column; gap: .5rem; }
.cm-f-volba { display: flex; align-items: center; gap: .6rem; margin: 0; cursor: pointer; }
.cm-f-volba input { flex: 0 0 auto; margin: 0; width: 1.1rem; height: 1.1rem; }
.cm-f-volba .cm-f-text { flex: 1 1 auto; }
.cm-f-volba.is-disabled { opacity: .45; cursor: default; }
.cm-f-skupina { border-top: 1px solid var(--cmf-ramecek); }
.cm-f-skupina:first-of-type { border-top: 0; }
.cm-f-skupina summary, .cm-f-dalsi summary { list-style: none; display: flex; justify-content: space-between; align-items: center; padding: .6rem 0; cursor: pointer; font-weight: 600; }
.cm-f-dalsi summary { padding: .5rem 0 .25rem; font-size: .875rem; }
.cm-f-skupina summary::-webkit-details-marker, .cm-f-dalsi summary::-webkit-details-marker { display: none; }
.cm-f-plus::before { content: "+"; font-weight: 400; }
details[open] > summary > .cm-f-plus::before { content: "\2212"; }
.cm-f-skupina .cm-f-volby, .cm-f-skupina .cm-f-rozsah { padding: .15rem 0 .75rem; }
/* rozsah (noUiSlider): popisky mezí pod posuvníkem, polohu jim nastavuje jscript_svm_filtry.js */
.cm-f-rozsah .tt-filter-range-area { position: relative; padding: .4rem .6rem 1.9rem; }
.cm-f-rozsah .tt-filter-range-label { position: absolute; bottom: .1rem; left: 0; transform: translateX(-50%); font-size: .75rem; color: var(--cmf-slaby); white-space: nowrap; }   /* left nastavuje skript (střed popisku pod úchytem) */
.cm-f-rozsah .is-disabled-slider { opacity: .45; }
@media (min-width: 992px) { .cm-f-otevrit { display: none; } }

/* --- detail produktu (etapa C3): dostupnost, tabulka vlastností, karta Vystaveno, závislé atributy -------------------------------------------- */
.svm-dostupnost, .cm-detail-dostupnost { margin: 0 0 1rem; }
.svm-dostupnost span { display: block; margin: 0 0 .25rem; }
.svm-dostupnost-sklad { font-weight: 600; }
.cm-detail-akce { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.svm-filter-properties-table, .cm-dostupnost-tabulka { width: 100%; max-width: 680px; margin: 0 0 1.25rem; border: 1px solid var(--cmf-ramecek); border-collapse: collapse; font-size: .9rem; line-height: 1.4; }
.svm-filter-properties-table th, .cm-dostupnost-tabulka th { padding: .5rem .75rem; text-align: left; background: var(--cmf-lehke); font-weight: 700; }
.svm-filter-properties-table td, .cm-dostupnost-tabulka td { padding: .4rem .75rem; border-top: 1px solid var(--cmf-ramecek); vertical-align: top; }
.svm-filter-properties-table td:first-child { width: 42%; color: var(--cmf-slaby); }
.svm-filter-properties-table td:last-child { font-weight: 600; }
.cm-dostupnost-varianty__titul { margin: 0 0 .5rem; font-size: 1rem; font-weight: 700; }
.cm-dostupnost-tabulka .cm-dostupnost-rezervovano { font-size: .75rem; font-weight: 400; color: var(--cmf-slaby); white-space: nowrap; }
.cm-dostupnost-tabulka td.cm-dostupnost-skladem.is-skladem { font-weight: 700; }
.cm-nahled-vlastnosti, .cm-nahled-dostupnost { margin: 1rem 0 0; }
.cm-nahled-vlastnosti .svm-filter-properties-table, .cm-nahled-dostupnost .cm-dostupnost-tabulka { max-width: none; }
.cm-vystaveno { margin: 1rem 0 0; padding: .75rem 1rem; border: 1px solid var(--cmf-ramecek); border-radius: .5rem; background: var(--cmf-lehke); }
.cm-vystaveno__titul { display: flex; align-items: center; gap: .5rem; margin: 0 0 .5rem; font-size: 1rem; font-weight: 700; }
.cm-vystaveno__seznam { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.cm-vystaveno__seznam li { display: flex; flex-direction: column; padding: .4rem .75rem; background: var(--cmf-pozadi); border: 1px solid var(--cmf-ramecek); border-radius: .35rem; font-size: .875rem; }
.cm-vystaveno__pozn { margin: .6rem 0 0; font-size: .8rem; color: var(--cmf-slaby); }
#productAttributes .attribBlock .custom-control-label { cursor: pointer; }
#productPrices.svm-zav-loading, .cm-cena-sestavy.svm-zav-loading { opacity: .55; }   /* přepočet ceny sestavy (AJAX) - skript závislých atributů přidává třídu */
.productDescription img { max-width: 100%; height: auto; }   /* popis z centrály nesmí přetékat */
.rozmery-dropdown--detail .rozmery-dropdown__list { width: 100%; max-width: 100%; }   /* otevřený seznam rozměrů na detailu je široký jako sloupec a nepřetéká displej */
.rozmery-dropdown--detail .rozmery-dropdown__list li a { white-space: normal; }

/* --- košík, slevové kódy, dárky a pilulka košíku v hlavičce (etapa C4) ---------------------------------------------------------------------- */
/* množství v řádku košíku: pole s tlačítky - / + se vejde do buňky, pole z jádra (.form-control) nesmí roztáhnout na celou šířku */
#shoppingCartDefault .qtyCell .cm-mnozstvi { flex-wrap: nowrap; justify-content: center; }
#shoppingCartDefault .qtyCell .cm-mnozstvi-tl { width: 2rem; height: 2.25rem; }
#shoppingCartDefault .qtyCell .cm-mnozstvi input.cm-mnozstvi-pole { width: 2.75rem; min-width: 2.75rem; height: 2.25rem; padding: 0 .1rem; display: inline-block; }
#shoppingCartDefault .qtyCell .cm-mnozstvi-mj { margin-left: .4rem; }
#shoppingCartDefault .qtyCell { min-width: 9.5rem; }
#shoppingCartDefault .qtyCell .cm-mj-pevne { font-size: .85rem; color: var(--cmf-slaby); }
/* se skriptem (html.cm-kosik-ajax, jscript_cm_mnozstvi.js) se množství ukládá na pozadí - tlačítka „aktualizovat“ a zaškrtávátka mazání jsou zbytečná */
.cm-kosik-ajax #shoppingCartDefault .qtyUpdateCell, .cm-kosik-ajax #shoppingCartDefault #cartTableDisplay-qtyUpdateHeading,
.cm-kosik-ajax #shoppingCartDefault #cartUpdate, .cm-kosik-ajax #shoppingCartDefault .removeCell .form-check, .cm-kosik-ajax #shoppingCartDefault .qtyCell .form-check { display: none !important; }
#shoppingCartDefault.cm-kosik-nacitam .table-responsive, #shoppingCartDefault.cm-kosik-nacitam #shoppingCartDefault-cartTotalsDisplay { opacity: .55; transition: opacity .15s linear; }
/* tlačítka košíku plavou i uvnitř formuláře - blok kódu pod formulářem musí začínat pod nimi */
#shoppingCartDefault #shoppingCartForm { display: flow-root; }
/* dárkový řádek: popisek pod názvem (značku píše pozorovatel dárků s vloženým stylem, tady jen zalomení dlouhého textu) */
#shoppingCartDefault .darky-gift-label { white-space: normal; }
/* blok zadání slevového kódu v košíku (svm_kody_cart_block_html) */
#shoppingCartDefault .svm-kod-cart-block { clear: both; margin: 1.5rem 0 0; padding: 1rem 1.1rem; background: var(--cmf-pozadi); border: 1px solid var(--cmf-ramecek); border-radius: .5rem; }
#shoppingCartDefault .svm-kod-cart-label { margin: 0 0 .5rem; font-weight: 600; }
#shoppingCartDefault .svm-kod-form { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: 0; }
#shoppingCartDefault .svm-kod-input { flex: 1 1 14rem; max-width: 24rem; min-height: 2.5rem; padding: .4rem .75rem; border: 1px solid var(--cmf-ramecek); border-radius: .35rem; background: var(--cmf-pozadi); color: var(--cmf-text); }
#shoppingCartDefault .svm-kod-submit-btn { min-height: 2.5rem; padding: .4rem 1.25rem; border: 1px solid var(--cmf-akcent); border-radius: .35rem; background: var(--cmf-akcent); color: var(--cmf-akcent-text); font-weight: 600; cursor: pointer; }
#shoppingCartDefault .svm-kod-submit-btn:hover { background: var(--cmf-akcent-hover); border-color: var(--cmf-akcent-hover); }
#shoppingCartDefault .svm-kod-cart-list { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 .75rem; padding: 0; list-style: none; }
#shoppingCartDefault .svm-kod-cart-item { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .3rem .75rem; background: var(--cmf-lehke); border: 1px solid var(--cmf-ramecek); border-radius: 999px; }
#shoppingCartDefault .svm-kod-cart-item-idle { opacity: .8; }
#shoppingCartDefault .svm-kod-cart-code { font-weight: 700; letter-spacing: .04em; }
#shoppingCartDefault .svm-kod-cart-pct, #shoppingCartDefault .svm-kod-cart-saving strong { font-weight: 600; }
#shoppingCartDefault .svm-kod-cart-state { color: var(--cmf-slaby); font-size: .85rem; }
#shoppingCartDefault .svm-kod-remove-form { display: inline; margin: 0; }
#shoppingCartDefault .svm-kod-remove-btn { padding: 0 .35rem; border: 0; background: none; color: var(--cmf-slaby); font-size: 1.2rem; line-height: 1; cursor: pointer; }
#shoppingCartDefault .svm-kod-remove-btn:hover { color: var(--cmf-akce); }
#shoppingCartDefault .svm-kod-cart-saving { margin: .75rem 0 0; }
/* pilulka košíku v hlavičce (částka + počet položek; AJAX ji po změně košíku vymění) */
.cm-kosik { position: relative; display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; }
.cm-kosik-pocet { min-width: 1.25rem; height: 1.25rem; padding: 0 .35rem; border-radius: 999px; background: var(--cmf-akce); color: #fff; font-size: .7rem; font-weight: 700; line-height: 1.25rem; text-align: center; box-sizing: border-box; }

/* --- lišta souhlasu s cookies a chat (etapa C5; jscript_cm_cookies.php, jscript_cm_chat.php) ----------------------------------------------------- */
.cm-cookies { position: fixed; left: 20px; bottom: 20px; z-index: 2147483000; width: min(760px, calc(100vw - 40px)); max-height: calc(100vh - 40px); overflow-y: auto; box-sizing: border-box; background: var(--cmf-pozadi); color: var(--cmf-text); border: 1px solid var(--cmf-ramecek); border-radius: .75rem; box-shadow: 0 .75rem 2rem rgba(0, 0, 0, .22); font-size: .95rem; line-height: 1.5; }
.cm-cookies [hidden] { display: none !important; }
.cm-cookies__telo { padding: 1.25rem 1.4rem 1.1rem; }
.cm-cookies__titul { margin: 0 0 .5rem; font-size: 1.15rem; font-weight: 700; }
.cm-cookies__text { margin: 0 0 .9rem; }
.cm-cookies__volby { margin: 0 0 1rem; display: grid; gap: .5rem; }
.cm-cookies__volba { display: flex; align-items: flex-start; gap: .75rem; margin: 0; padding: .6rem .75rem; border: 1px solid var(--cmf-ramecek); border-radius: .5rem; cursor: pointer; }
.cm-cookies__volba input { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; margin: .15rem 0 0; accent-color: var(--cmf-akcent); }
.cm-cookies__volba-text { display: flex; flex-direction: column; gap: .1rem; }
.cm-cookies__volba-text small { font-size: .8rem; color: var(--cmf-slaby); }
.cm-cookies__akce { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem .75rem; }
.cm-cookies__tl { min-height: 2.75rem; padding: .5rem 1.4rem; border: 2px solid var(--cmf-akcent); border-radius: 999px; background: var(--cmf-pozadi); color: var(--cmf-akcent); font: inherit; font-weight: 700; cursor: pointer; }
.cm-cookies__tl--prijmout { background: var(--cmf-akcent); color: var(--cmf-akcent-text); }
.cm-cookies__tl--prijmout:hover, .cm-cookies__tl--prijmout:focus-visible { background: var(--cmf-akcent-hover); border-color: var(--cmf-akcent-hover); }
.cm-cookies__tl--nastaveni { border-color: transparent; background: transparent; padding-left: .5rem; padding-right: .5rem; color: var(--cmf-slaby); text-decoration: underline; font-weight: 600; }
@media (max-width: 640px) {
  .cm-cookies { left: 10px; right: 10px; bottom: 10px; width: auto; max-height: calc(100vh - 20px); font-size: .875rem; }
  .cm-cookies__telo { padding: .9rem .9rem .8rem; }
  .cm-cookies__titul { margin-bottom: .35rem; font-size: 1rem; }
  .cm-cookies__akce { flex-direction: row; align-items: stretch; gap: .5rem; }
  .cm-cookies__tl { flex: 1 1 calc(50% - .25rem); min-height: 2.75rem; padding: .5rem .6rem; font-size: .875rem; }
  .cm-cookies__tl--nastaveni { flex: 1 1 100%; min-height: 2.25rem; padding: .25rem .5rem; }
}
.cm-cookies-otevrit { cursor: pointer; }
/* malá bublina chatu na mobilu: chat se načte a otevře až po klepnutí */
.cm-chat-launcher { position: fixed; right: 14px; bottom: 14px; z-index: 9990; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: var(--cmf-akcent); color: var(--cmf-akcent-text); box-shadow: 0 4px 14px rgba(0, 0, 0, .28); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.cm-chat-launcher svg { width: 24px; height: 24px; }
.cm-chat-souhlas { position: fixed; right: 14px; bottom: 72px; z-index: 9991; width: min(300px, calc(100vw - 28px)); box-sizing: border-box; padding: .9rem; background: var(--cmf-pozadi); color: var(--cmf-text); border: 1px solid var(--cmf-ramecek); border-radius: .75rem; box-shadow: 0 8px 26px rgba(0, 0, 0, .24); font-size: .875rem; line-height: 1.45; }
.cm-chat-souhlas p { margin: 0 0 .75rem; }
.cm-chat-souhlas__akce { display: flex; gap: .5rem; }
.cm-chat-souhlas__tl { flex: 1 1 auto; min-height: 2.6rem; padding: .5rem .75rem; border: 2px solid var(--cmf-akcent); border-radius: 999px; background: var(--cmf-pozadi); color: var(--cmf-akcent); font: inherit; font-weight: 700; cursor: pointer; }
.cm-chat-souhlas__tl--ano { background: var(--cmf-akcent); color: var(--cmf-akcent-text); }
/* lišta Porovnat vybrané stojí na mobilu ve stejném rohu: nad bublinou */
html.cm-ma-chat-bublinu .cm-porovnani-lista { bottom: 76px; }

/* --- úvodní stránka a patička (etapa C5) --------------------------------------------------------------------------------------------------- */
.cm-dlazdice-uvod .cm-dlazdice-obrazek { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.cm-dlazdice-uvod:hover { box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .12); }
#cmPaticka .cm-paticka-kontakt a { white-space: nowrap; }
