/* KrimiLab / B2 Oxblood / Samba template-14 / 2026-10-19
   Jediný produkční stylesheet. Načíst PO stylech šablony a staré B2.css odpojit.
   URL jsou relativní k tomuto CSS: vedle něj musí být adresář obrazky/.
   Písma vybírá Návrhář; tento soubor je nenačítá.
   Kolo 1: opravy podle živého testu 19. 10. 2026; podrobnosti KONTROLA.md.
*/

/* ZÁKLAD A BAREVNÉ ROLE — CELÝ OBCHOD */
body.template-14 {
  --kl-bg: #2E0B0E;
  --kl-panel: #4A1719;
  --kl-text: #F2E8D8;
  --kl-accent: #E0C9A2;
  --kl-hover: #F0DFC1;
  --kl-button-text: #101010;
  --kl-muted: #D0BDA4;
  --kl-disabled-bg: #62504B;
  --kl-disabled-text: #F2E8D8;
  --kl-success-bg: #1D3B2A;
  --kl-error-bg: #571D24;
  --kl-warning-bg: #493715;
  --kl-info-bg: #243641;
  --kl-error-text: #FFD7D5;
  --kl-line: rgb(224 201 162 / 40%);
  --kl-border: #BEA58A;
  --kl-gutter: 6%;
  --kl-font-text: "Source Sans 3", Arial, sans-serif;
  --kl-font-heading: "Source Serif 4", Georgia, serif;
  --kl-hero-image: url("obrazky/hero.jpg");
  --kl-texture-image: url("obrazky/textura.jpg");
  background-color: var(--kl-bg);
  background-image: none;
  color: var(--kl-text);
  font-family: var(--kl-font-text);
  font-size: 18px;
  line-height: 1.4;
}
/* WebP blok odstraněn 19. 10. (Claude): Správce souborů Shoptetu nepovoluje .webp, používá se JPG. */
body.template-14 .overall-wrapper,
body.template-14 .content-wrapper,
body.template-14 .content-wrapper-in,
body.template-14 #content,
body.template-14 .sidebar,
body.template-14 .navigation-in {
  background-color: var(--kl-bg);
  color: var(--kl-text);
}
body.template-14 :where(h1,h2,h3,h4,h5,h6) {
  color: inherit;
  font-family: var(--kl-font-heading);
  font-weight: 600;
  line-height: 1.08;
}
body.template-14 h1 { font-size: clamp(36px,4vw,58px); letter-spacing: -.025em; }
body.template-14 h2 { font-size: clamp(30px,3.2vw,42px); letter-spacing: -.02em; }
body.template-14 h3 { font-size: 29px; }
body.template-14 a { color: var(--kl-accent); text-underline-offset: .18em; }
body.template-14 a:hover { color: var(--kl-hover); }
body.template-14 :where(p,li,td,th,div) { overflow-wrap: break-word; }
body.template-14 :where(button,input,select,textarea) { font-family: var(--kl-font-text); }
body.template-14 :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 4px;
}
body.template-14 :where(.muted,.text-muted,.price-additional,.availability-label,.breadcrumb,.breadcrumbs) {
  color: var(--kl-muted);
}
body.template-14 #content-wrapper { padding-block: 32px 60px; }
body.template-14.in-index #content-wrapper {
  max-width: none;
  width: 100%;
  padding: 0;
  margin: 0;
}
body.template-14.in-index .content-wrapper-in,
body.template-14.in-index #content { max-width: none; width: 100%; padding: 0; margin: 0; }
body.template-14 .btn,
body.template-14 .btn.btn-primary,
body.template-14 .btn-conversion,
body.template-14 .kl-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  min-height: 46px;
  padding: 13px 23px;
  border: 1px solid var(--kl-accent);
  border-radius: 0;
  background: var(--kl-accent);
  color: var(--kl-button-text);
  font-size: 18px;
  font-weight: 650;
  line-height: 1.25;
  text-decoration: none;
  box-shadow: none;
  cursor: pointer;
}
body.template-14 .btn:hover,
body.template-14 .btn.btn-primary:hover,
body.template-14 .btn-conversion:hover,
body.template-14 .kl-button:hover { background: var(--kl-hover); color: var(--kl-button-text); border-color: var(--kl-hover); }
body.template-14 .btn.btn-secondary { background: var(--kl-text); color: var(--kl-bg); border-color: var(--kl-text); }
body.template-14 .btn.btn-secondary:hover { background: var(--kl-accent); color: var(--kl-button-text); border-color: var(--kl-accent); }
body.template-14 .btn.btn-tertiary { background: var(--kl-panel); color: var(--kl-text); border-color: var(--kl-border); }
body.template-14 .btn.btn-tertiary:hover { background: var(--kl-bg); color: var(--kl-text); }
body.template-14 .btn:focus-visible,
body.template-14 .kl-button:focus-visible { outline-color: var(--kl-text); }
body.template-14 :is(.btn,.kl-button):is(:disabled,.disabled,[aria-disabled="true"]) {
  background: var(--kl-disabled-bg);
  color: var(--kl-disabled-text);
  border-color: var(--kl-border);
  opacity: 1;
  cursor: not-allowed;
  /* Zakázaný stav řídí Shoptet/HTML, samotné CSS nezakáže odkaz. */
}

/* HLAVIČKA — DOM potvrzený v zadání, rozbalování dál řídí Shoptet */
body.template-14 #header {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  align-items: center;
  gap: 22px;
  padding: 20px var(--kl-gutter);
  min-height: 82px;
  border-bottom: 1px solid var(--kl-line);
  background: var(--kl-bg);
  color: var(--kl-text);
}
body.template-14 #header :where(.header-top,.header-bottom,.navigation-wrapper,.header-top-wrapper,.header-bottom-wrapper) {
  width: auto; max-width: none; margin: 0; padding: 0; background-color: var(--kl-bg); color: var(--kl-text); border: 0;
}
body.template-14 #header .header-top,
body.template-14 #header .header-top-wrapper { position: static; }
body.template-14 #header .header-top-wrapper { display: flex; align-items: center; gap: 16px; }
body.template-14 #header .site-name { margin: 0; flex: 0 0 auto; min-width: max-content; line-height: 1; }
body.template-14 #header .site-name a { display: block; }
body.template-14 #header .site-name img { display: block; width: auto; height: 40px; max-width: min(32vw,235px); object-fit: contain; }
body.template-14 #header .header-bottom,
body.template-14 #header .header-bottom-wrapper { background-color: transparent; }
body.template-14 #header .header-bottom { padding-right: 210px; }
body.template-14 #navigation { background: var(--kl-bg); color: var(--kl-text); }
body.template-14 #navigation .navigation-in { display: flex; justify-content: flex-end; align-items: center; }
body.template-14 #navigation .menu-level-1 { display: flex; align-items: center; gap: 32px; list-style: none; padding: 0; margin: 0; }
body.template-14 #navigation .menu-level-1 > li { background: transparent; }
body.template-14 #navigation .menu-level-1 > li > a { padding: 10px 0; color: var(--kl-text); font-size: 16px; text-decoration: none; }
body.template-14 #navigation .menu-level-1 > li > a:hover { color: var(--kl-hover); text-decoration: underline; }
body.template-14 #header .navigation-buttons { position: absolute; width: auto; right: var(--kl-gutter); top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: 8px; }
body.template-14 #header .btn-icon,
body.template-14 #header .navigation-tools .btn { min-width: 44px; min-height: 44px; padding: 8px; border: 1px solid transparent; background: var(--kl-bg); color: var(--kl-text); font-size: 15px; }
body.template-14 #header .navigation-buttons .toggle-window,
body.template-14 #header .navigation-buttons .top-nav-button-login { background: transparent; color: var(--kl-text); }
body.template-14 #header .navigation-buttons .toggle-window:hover,
body.template-14 #header .navigation-buttons .top-nav-button-login:hover { background: var(--kl-panel); color: var(--kl-hover); }
body.template-14 #header .btn-icon:hover { background: var(--kl-panel); color: var(--kl-hover); border-color: var(--kl-border); }
body.template-14 #header :where(.navigationActions,.menu-level-2,.menu-level-3,.user-action,.search-whisperer) { background-color: var(--kl-panel); color: var(--kl-text); }
body.template-14 #header :where(.menu-level-2,.menu-level-3) a { color: var(--kl-text); }
/* Neurčujeme display/visibility dropdownů, user-action ani mobilního menu. */

/* ÚVOD – HERO — vlastní kl-* HTML pro slot před produkty, bez vloženého JS */
body.template-14 .welcome-wrapper,
body.template-14 .welcome { width: 100%; max-width: none; padding: 0; margin: 0; background: var(--kl-bg); color: var(--kl-text); text-align: left; }
body.template-14 :where(.kl-home,.kl-home *,.kl-protocol,.kl-protocol *,.kl-footer,.kl-footer *) { box-sizing: border-box; }
body.template-14 .kl-home { width: 100%; margin: 0; }
body.template-14 .kl-hero { position: relative; isolation: isolate; overflow: hidden; min-height: 635px; background: var(--kl-bg); color: var(--kl-text); }
body.template-14 .kl-hero-photo { position: absolute; z-index: -1; inset: 0 0 0 34%; background: var(--kl-hero-image) center / cover no-repeat; }
body.template-14 .kl-hero-copy { position: relative; width: 51%; min-height: 635px; padding: 58px var(--kl-gutter); background: var(--kl-bg); clip-path: polygon(0 0,98% 0,98% 33%,100% 33%,100% 67%,98% 67%,98% 100%,0 100%); }
body.template-14 .kl-hero-copy h1 { font-family: var(--kl-font-heading); font-size: 57px; font-weight: 600; line-height: 1.05; letter-spacing: -.025em; margin: 26px 0; }
body.template-14 .kl-hero-copy p { font-size: 19px; max-width: 385px; margin: 0 0 19px; }
body.template-14 .kl-tag { display: inline-block; background: var(--kl-accent); color: var(--kl-button-text); padding: 7px 10px; font-size: 13px; font-weight: 650; letter-spacing: .05em; line-height: 1.4; }
body.template-14 .kl-redactions { display: flex; gap: 9px; margin-top: 33px; }
body.template-14 .kl-redactions i { width: 104px; height: 12px; background: var(--kl-text); }
body.template-14 .kl-redactions i:last-child { width: 34px; }
body.template-14 .kl-stamp { position: absolute; z-index: 2; right: 6%; bottom: 48px; padding: 12px 25px; background: var(--kl-bg); color: var(--kl-accent); border: 3px solid var(--kl-accent); transform: rotate(-7deg); font-size: 31px; font-weight: 700; line-height: .95; }
body.template-14 .kl-stamp small { display: block; margin-top: 8px; font-size: 11px; letter-spacing: .08em; }
body.template-14 .kl-ribbon { display: flex; justify-content: space-between; gap: 20px; padding: 20px var(--kl-gutter); border-block: 1px solid var(--kl-line); font-size: 14px; letter-spacing: .07em; }
body.template-14 .kl-register-title { margin: 0; padding: 68px var(--kl-gutter) 35px; }
body.template-14 .kl-eyebrow { display: block; font-size: 13px; letter-spacing: .12em; }
body.template-14 .kl-register-title h2 { margin: 13px 0 0; font-size: 42px; }

/* ÚVOD – PROTOKOL — samostatně vložitelný pod nativní produkty */
body.template-14 .kl-protocol { padding: 54px var(--kl-gutter); background: var(--kl-text); color: var(--kl-bg); }
body.template-14 .kl-protocol h2 { margin: 0; font-size: 42px; }
body.template-14 .kl-protocol ol { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 35px; margin: 35px 0 0; padding: 0; list-style: none; }
body.template-14 .kl-protocol li { border-top: 7px solid var(--kl-bg); padding-top: 25px; }
body.template-14 .kl-protocol h3 { font-family: var(--kl-font-text); font-size: 25px; font-weight: 700; margin: 0; }
body.template-14 .kl-protocol p { font-size: 18px; margin: 18px 0 0; }
body.template-14 .kl-protocol a { color: var(--kl-bg); }
body.template-14 .kl-protocol a:hover { color: var(--kl-panel); }

/* KATEGORIE A VÝPIS PRODUKTŮ — obecné Shoptet třídy, ověřit markup v Sambě */
body.template-14 :where(.products-block,.products-block .product,.products-block .p,.products-block .p-in) { color: var(--kl-text); }
body.template-14 .products-block { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; margin: 0; padding: 0; }
body.template-14.in-index .products-block { padding: 0 var(--kl-gutter) 68px; }
body.template-14 .products-block .product { float: none; width: auto; min-width: 0; padding: 0; margin: 0; border: 0; border-radius: 0; background: var(--kl-panel); box-shadow: none; }
body.template-14 .products-block .p { height: 100%; background: var(--kl-panel); }
body.template-14 .products-block .image { display: flex; align-items: center; justify-content: center; height: 410px; padding: 30px; background: var(--kl-texture-image) center / cover no-repeat; overflow: hidden; }
body.template-14 .products-block .image img { display: block; width: auto; max-width: 100%; height: auto; max-height: 350px; object-fit: contain; margin: 0; }
body.template-14 .products-block .p-in { padding: 25px 28px; }
body.template-14 .products-block .name { display: block; color: var(--kl-text); font-family: var(--kl-font-heading); font-size: 29px; font-weight: 600; line-height: 1.05; margin: 12px 0 20px; text-decoration: none; }
body.template-14 .products-block .name:hover { color: var(--kl-hover); text-decoration: underline; }
body.template-14 .products-block .p-desc { margin: 0 0 20px; color: var(--kl-text); font-size: 16px; }
body.template-14 .products-block .p-desc p { margin: 0; }
body.template-14 .products-block .kl-case-meta { margin: 0; font-size: 13px; letter-spacing: .06em; }
body.template-14 .products-block .p-bottom { display: flex; justify-content: space-between; align-items: center; gap: 15px; flex-wrap: wrap; }
body.template-14 .products-block .price-final { font-size: 25px; font-weight: 700; color: var(--kl-text); }
body.template-14 :where(.sidebar-inner,.box,.filters-wrapper,.filter-section,.subcategories li,.subcategories .category) { background: var(--kl-panel); color: var(--kl-text); border-color: var(--kl-line); }
body.template-14 .sidebar :where(h2,h3,h4) { color: var(--kl-text); }
body.template-14 :where(.categories,.categories ul) { background: var(--kl-panel); color: var(--kl-text); }
body.template-14 .categories a { color: var(--kl-text); }
body.template-14 .categories a:hover,
body.template-14 .categories .active > a { color: var(--kl-hover); text-decoration: underline; }
body.template-14 :where(.breadcrumbs,.breadcrumb) { padding-block: 16px; font-size: 15px; }
body.template-14 :where(.breadcrumbs,.breadcrumb) a { color: var(--kl-accent); }
body.template-14 :where(.pagination,.pagination-wrapper,.list-ordering) { color: var(--kl-text); border-color: var(--kl-line); }
body.template-14 .pagination a,
body.template-14 .pagination strong { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--kl-border); background: var(--kl-panel); color: var(--kl-text); text-decoration: none; }
body.template-14 .pagination a:hover,
body.template-14 .pagination .active,
body.template-14 .pagination strong { background: var(--kl-accent); color: var(--kl-button-text); }
body.template-14 :where(.filter-label,.filter-section label,.filter-total-count) { color: var(--kl-text); }
body.template-14 :where(.ui-slider,.slider-wrapper) { background-color: var(--kl-panel); }
body.template-14 :where(.ui-slider-range,.ui-slider-handle) { background-color: var(--kl-accent); border-color: var(--kl-bg); }

/* DETAIL — p-detail / p-info-wrapper / p-data-wrapper: ověřit na živé Sambě */
body.template-14 .p-detail { color: var(--kl-text); }
body.template-14 :where(.p-detail-inner,.p-info-wrapper,.p-data-wrapper,.p-detail-tabs-wrapper,.extended-description,.tab-content,.p-detail .detail-parameters) { background-color: var(--kl-panel); color: var(--kl-text); border-color: var(--kl-line); }
body.template-14 .p-detail .p-image-wrapper { padding: 30px; background: var(--kl-texture-image) center / cover no-repeat; }
body.template-14 .p-detail .p-image-wrapper img { max-width: 100%; height: auto; }
body.template-14 .p-detail :where(.price-final,.price-final-holder,.availability-value) { color: var(--kl-text); }
body.template-14 .p-detail :where(.p-short-description,.p-final-price-wrapper,.p-detail-description) { color: var(--kl-text); }
body.template-14 :where(.shp-tabs,.responsive-nav,.shp-tab-link) { background-color: var(--kl-panel); color: var(--kl-text); border-color: var(--kl-line); }
body.template-14 .shp-tabs a { color: var(--kl-accent); }
body.template-14 .shp-tabs .active a { color: var(--kl-text); text-decoration: underline; }
body.template-14 :where(.p-detail table,.detail-parameters table) { color: var(--kl-text); border-color: var(--kl-line); }
body.template-14 :where(.p-detail th,.p-detail td) { background-color: transparent; border-color: var(--kl-line); }

/* KOŠÍK A OBJEDNÁVKA — strukturu kroků, validace a platby ponechat Shoptetu */
body.template-14 :where(.cart-table,.cart-header,.cart-content,.cart-widget,.cart-widget-inner,.cart-widget-product,.cart-summary,.order-summary,.order-summary-inner,.ordering-process,.order-information,.co-box,.co-contact-information,.co-billing-address,.co-delivery-address,.shipping-billing-table,.delivery,.payment) {
  background-color: var(--kl-panel); color: var(--kl-text); border-color: var(--kl-line);
}
body.template-14 :where(.cart-table th,.cart-table td,.order-summary th,.order-summary td,.shipping-billing-table td) { background-color: transparent; color: var(--kl-text); border-color: var(--kl-line); }
body.template-14 :where(.cart-table a,.cart-widget a,.order-summary a) { color: var(--kl-accent); }
body.template-14 :where(.cart-table .price,.cart-price,.price-primary,.recapitulation .price,.order-summary .price) { color: var(--kl-text); }
body.template-14 .cart-table .p-name { font-family: var(--kl-font-heading); font-weight: 600; }
body.template-14 :where(.quantity input,.amount input) { color: var(--kl-text); background: var(--kl-bg); }
body.template-14 :where(.quantity .increase,.quantity .decrease,.quantity .increase:hover,.quantity .decrease:hover,.remove-item) { color: var(--kl-accent); background-color: var(--kl-bg); border-color: var(--kl-border); }
body.template-14 :where(.cart-table .remove-item,.cart-widget .remove-item) { min-width: 44px; min-height: 44px; }
body.template-14 :where(.cart-table .remove-item:hover,.cart-widget .remove-item:hover) { color: var(--kl-hover); }
body.template-14 :where(.radio-wrapper,.checkbox-wrapper,.shipping-billing-table .radio-wrapper) { color: var(--kl-text); border-color: var(--kl-border); }
body.template-14 :where(.radio-wrapper:has(input:checked),.shipping-billing-table tr:has(input:checked)) { background-color: var(--kl-bg); }

/* FORMULÁŘE — účet, hledání, filtry, objednávka, newsletter */
body.template-14 .form-control,
body.template-14 :where(input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="range"]):not([type="hidden"]),select,textarea) {
  background-color: var(--kl-bg);
  color: var(--kl-text);
  border: 1px solid var(--kl-border);
  border-radius: 0;
  min-height: 46px;
  padding: 11px 13px;
  font-size: 17px;
  line-height: 1.3;
  box-shadow: none;
  color-scheme: dark;
}
body.template-14 :where(input,textarea)::placeholder { color: var(--kl-muted); opacity: 1; }
body.template-14 :is(input,select,textarea):focus-visible { border-color: var(--kl-hover); outline-color: var(--kl-hover); }
body.template-14 :where(input,textarea):disabled::placeholder { color: var(--kl-disabled-text); opacity: 1; }
body.template-14 :is(input,select,textarea):disabled { background: var(--kl-disabled-bg); color: var(--kl-disabled-text); opacity: 1; cursor: not-allowed; }
body.template-14 :where(input[type="checkbox"],input[type="radio"],input[type="range"]) { accent-color: var(--kl-accent); color: var(--kl-text); color-scheme: dark; }
body.template-14 :where(label,.form-group,.form-group label,.help-block,.help-inline,.form-group .required) { color: var(--kl-text); }
body.template-14 .has-error .form-control,
body.template-14 [aria-invalid="true"] { border-color: var(--kl-error-text); }
body.template-14 :where(.has-error .help-block,.form-group .error-message,.validator-msg,.error-field) { color: var(--kl-error-text); }
body.template-14 input:-webkit-autofill { -webkit-text-fill-color: var(--kl-text); box-shadow: 0 0 0 1000px var(--kl-bg) inset; caret-color: var(--kl-text); }
/* Hlášky se liší popisem/i ikonou a barvou plochy, ne pouze červenou/zelenou. */
body.template-14 :where(.alert,.messages .msg,.msg) { padding: 16px 20px; background: var(--kl-info-bg); color: var(--kl-text); border: 1px solid var(--kl-border); border-radius: 0; }
body.template-14 :where(.alert-success,.msg-success,.msg.success) { background: var(--kl-success-bg); color: var(--kl-text); }
body.template-14 :where(.alert-danger,.alert-error,.msg-error,.msg.error) { background: var(--kl-error-bg); color: var(--kl-text); }
body.template-14 :where(.alert-warning,.msg-warning) { background: var(--kl-warning-bg); color: var(--kl-text); }
body.template-14 :where(.alert a,.msg a) { color: var(--kl-text); text-decoration: underline; }
body.template-14 :where(.alert a:hover,.msg a:hover) { color: var(--kl-hover); }
body.template-14 :where(.alert .close,.msg .close) { color: var(--kl-text); background: transparent; }
body.template-14 :where(.modal-content,.popup-widget-inner,.login-widget,.search-whisperer) { background: var(--kl-panel); color: var(--kl-text); border-color: var(--kl-border); }

/* PATIČKA — standardní patičku jen barvíme; obsah/odkazy spravuje admin */
body.template-14 #footer { padding: 0; background: var(--kl-bg); color: var(--kl-text); border-top: 1px solid var(--kl-line); }
body.template-14 #footer :where(.footer-bottom,.footer-bottom-full-width,.footer-rows,.footer-rows-wrapper,.custom-footer,.custom-footer__contact) { background-color: var(--kl-bg); color: var(--kl-text); border-color: var(--kl-line); }
body.template-14 #footer :where(h2,h3,h4) { color: var(--kl-text); }
body.template-14 #footer a { color: var(--kl-text); }
body.template-14 #footer a:hover { color: var(--kl-hover); }
body.template-14 .kl-footer { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 35px; padding: 50px var(--kl-gutter); background: var(--kl-bg); color: var(--kl-text); font-size: 15px; }
body.template-14 .kl-footer-stamp { display: inline-block; align-self: start; justify-self: start; padding: 16px; border: 2px solid var(--kl-accent); color: var(--kl-accent); transform: rotate(-3deg); }
body.template-14 .kl-footer p { margin: 0; }
body.template-14 .kl-footer ul { list-style: none; padding: 0; margin: 0; }
body.template-14 .kl-footer a { color: var(--kl-text); }
body.template-14 .kl-footer a:hover { color: var(--kl-hover); }

/* PATIČKA – VOLITELNÝ PROTOKOL V JEJÍM ŠIROKÉM ÚVODU */
body.template-14 #footer .kl-protocol,
body.template-14 #footer .kl-protocol :where(h2,h3,p,li,a) { color: var(--kl-bg); }
body.template-14 #footer .kl-protocol { background: var(--kl-text); }
body.template-14 #footer .kl-protocol a:hover { color: var(--kl-panel); }

/* COOKIES — zachovat dostupná tlačítka a nastavení, nic neskrývat */
body.template-14 .siteCookies,
body.template-14 .siteCookies.siteCookies--dark { background-color: var(--kl-panel); color: var(--kl-text); border-color: var(--kl-border); }
body.template-14 .siteCookies a { color: var(--kl-accent); text-decoration: underline; }
body.template-14 .siteCookies a:hover { color: var(--kl-hover); }
body.template-14 .siteCookies .siteCookies__button { min-height: 44px; padding: 12px 20px; border: 1px solid var(--kl-accent); background: var(--kl-accent); color: var(--kl-button-text); opacity: 1; }
body.template-14 .siteCookies .siteCookies__button:hover { background: var(--kl-hover); color: var(--kl-button-text); }
body.template-14 .siteCookies .siteCookies__button:focus-visible { outline: 3px solid var(--kl-text); outline-offset: 3px; }
/* Lištu pozicuje Shoptet. Záměrně neměníme z-index, consent ani pořadí tlačítek. */

/* MOBIL — 767 px a méně; bez skrývání menu, captcha či podmínek */
@media (max-width: 1100px) and (min-width: 768px) {
  body.template-14 #header { gap: 14px; padding-inline: 4%; }
  body.template-14 #header .header-bottom { padding-right: 170px; }
  body.template-14 #navigation .menu-level-1 { gap: 18px; }
  body.template-14 #header .navigation-buttons { right: 4%; }
  body.template-14 #header .site-name img { max-width: 180px; }
}
@media (max-width: 767px) {
  body.template-14 { font-size: 16px; --kl-gutter: 6%; }
  body.template-14 #header { display: block; min-height: 70px; padding: 15px var(--kl-gutter); }
  body.template-14 #header .header-top-wrapper { display: flex; justify-content: space-between; gap: 10px; }
  body.template-14 #header .site-name { flex: 1 1 auto; min-width: 0; }
  body.template-14 #header .site-name img { width: 170px; height: 34px; max-width: 100%; }
  body.template-14 #header .navigation-buttons { position: static; top: auto; transform: none; gap: 0; flex-shrink: 0; }
  body.template-14 #header .btn-icon { min-width: 40px; min-height: 44px; font-size: 13px; padding: 7px; }
  body.template-14 #header .header-bottom { padding-right: 0; }
  body.template-14 #navigation .navigation-in { justify-content: flex-start; }
  body.template-14 #navigation .menu-level-1 { flex-wrap: wrap; gap: 10px 20px; }
  body.template-14 #navigation .menu-level-1 > li > a { display: inline-flex; min-height: 44px; align-items: center; font-size: 15px; }
  body.template-14 .kl-hero { display: flex; flex-direction: column; min-height: 0; }
  body.template-14 .kl-hero-copy { width: 100%; min-height: 0; padding: 30px var(--kl-gutter) 38px; clip-path: none; }
  body.template-14 .kl-hero-copy h1 { font-size: 42px; margin: 26px 0; }
  body.template-14 .kl-hero-copy p { font-size: 18px; max-width: 385px; }
  body.template-14 .kl-hero-photo { position: relative; z-index: 0; inset: auto; height: 245px; order: 2; }
  body.template-14 .kl-stamp { right: 25px; bottom: 25px; max-width: calc(100% - 50px); font-size: 25px; padding: 12px 18px; }
  body.template-14 .kl-stamp small { font-size: 9px; letter-spacing: .03em; }
  body.template-14 .kl-ribbon { display: block; padding-block: 16px; font-size: 13px; }
  body.template-14 .kl-ribbon span { display: block; }
  body.template-14 .kl-ribbon span + span { margin-top: 6px; }
  body.template-14 .kl-register-title { padding-top: 42px; padding-bottom: 24px; }
  body.template-14 .kl-register-title h2 { font-size: 32px; }
  body.template-14 .products-block { grid-template-columns: minmax(0,1fr); gap: 32px; }
  body.template-14.in-index .products-block { padding-bottom: 40px; }
  body.template-14 .products-block .image { height: 325px; padding: 25px; }
  body.template-14 .products-block .image img { max-height: 275px; }
  body.template-14 .products-block .p-in { padding: 25px; }
  body.template-14 .products-block .name { font-size: 29px; }
  body.template-14 .products-block .p-bottom { gap: 12px; }
  body.template-14 .products-block .btn { font-size: 16px; padding: 12px 20px; }
  body.template-14 .kl-protocol { padding: 38px var(--kl-gutter); }
  body.template-14 .kl-protocol h2 { font-size: 32px; }
  body.template-14 .kl-protocol ol { grid-template-columns: minmax(0,1fr); gap: 35px; }
  body.template-14 .kl-protocol li { border-top-width: 4px; padding-top: 20px; }
  body.template-14 .kl-protocol h3 { font-size: 24px; }
  body.template-14 .kl-protocol p { font-size: 18px; }
  body.template-14 .kl-footer { grid-template-columns: minmax(0,1fr); padding-block: 40px; gap: 25px; font-size: 15px; }
  body.template-14:not(.in-index) #content-wrapper { padding-inline: var(--kl-gutter); }
  body.template-14 .cart-table { font-size: 15px; table-layout: fixed; width: 100%; }
  body.template-14 .cart-table input[type="number"] { width: 58px; max-width: 100%; min-width: 0; padding-inline: 6px; }
  body.template-14 .cart-table :where(th,td) { padding: 10px 6px; }
  body.template-14 .cart-table .p-name { overflow-wrap: anywhere; }
  body.template-14 .cart-table img { max-width: 58px; height: auto; }
  body.template-14 :where(.form-control,select,textarea) { max-width: 100%; }
  body.template-14 .siteCookies { max-width: 100%; }
  body.template-14 .siteCookies .siteCookies__button { width: 100%; margin: 4px 0; }
}
@media (prefers-reduced-motion: reduce) {
  body.template-14 :where(.kl-home,.kl-home *) { scroll-behavior: auto; }
}

/* KOLO 1 / ÚVOD – OBA SLOTY PŘED PRODUKTY (C)
   Hero může být v carousel-wrapper nebo benefit-banners-full-width.
   Obaly uvolňujeme jen tehdy, obsahují-li náš fragment; jiné bannery neměníme.
   Protokol patří do welcome ZA nativní výpis Samby. */
body.template-14.in-index :is(.carousel-wrapper,.benefit-banners-full-width):has(.kl-before-products) {
  width: 100%; max-width: none; margin: 0; padding: 0; background: var(--kl-bg);
}
body.template-14.in-index :is(.carousel-wrapper,.benefit-banners-full-width):has(.kl-before-products)
  :is(.container,.row,.banners-row,.wide-carousel,.benefit-banners,.benefitBanner,.benefitBanner__content,.banner-wrapper) {
  width: 100%; max-width: none; margin: 0; padding: 0;
}
body.template-14.in-index :is(.carousel-wrapper,.benefit-banners-full-width):has(.kl-before-products)
  :is(.benefit-banners,.benefitBanner,.benefitBanner__content) { display: block; }
body.template-14.in-index .kl-before-products {
  display: block; width: 100%; max-width: none; margin: 0; padding: 0; text-align: left;
}
/* Bez 100vw a záporných okrajů: nevzniká přesah o šířku scrollbarů. */
body.template-14.in-index #content .products-wrapper.product-slider-holder {
  width: 100%; max-width: none; margin: 0; padding: 0 var(--kl-gutter) 68px;
}
body.template-14.in-index #content .products-wrapper .products.product-slider,
body.template-14.in-index #content .products-wrapper .products-block {
  width: 100%; max-width: none; margin: 0; padding: 0;
}
/* Slider bez pomocného products-block obalu, např. před inicializací Shoptetu. */
body.template-14.in-index #content .products.product-slider:not(:has(> .products-block)) {
  display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px;
}

/* KOLO 1 / KARTY A KATEGORIE (4–12) */
body.template-14 #content .product .name,
body.template-14 #content .product .name span,
body.template-14 #content .products-top .name,
body.template-14 #content .products-top .name span { color: var(--kl-text); }
body.template-14 #content .product .name:hover,
body.template-14 #content .product .name:hover span,
body.template-14 #content .products-top .name:hover,
body.template-14 #content .products-top .name:hover span { color: var(--kl-hover); }
body.template-14.in-index .homepage-group-title.homepage-products-heading-2 {
  /* Náhradní nadpis registru je ve fragmentu; původní zůstává čtečkám. */
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%);
  white-space: nowrap; border: 0;
}
body.template-14 .product .p-code { display: none; }
body.template-14 #content .product .p-in { display: flex; flex-direction: column; align-items: stretch; text-align: left; padding: 25px 28px; }
body.template-14 #content .product .p-in-in { text-align: left; }
body.template-14 #content .product .p-in .p-in-in .name {
  display: block; height: auto; min-height: 0; overflow: visible;
  -webkit-line-clamp: unset; -webkit-box-orient: initial;
  letter-spacing: -.02em; margin: 12px 0 20px;
  font: 600 29px/1.08 var(--kl-font-heading);
}
body.template-14 #content .product .p-bottom { display: block; text-align: left; }
/* Skutečný Shoptet offer obaluje cenu, dostupnost, nákup a krátký popis. */
body.template-14 #content .product .p-bottom > div:has(> .prices) {
  display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px 16px;
  align-items: end; text-align: left;
}
body.template-14 #content .product .p-bottom .p-desc { grid-column: 1 / -1; grid-row: 1; padding: 0; margin: 0; color: var(--kl-text); text-align: left; font-size: 16px; }
body.template-14 #content .product .p-bottom .availability { grid-column: 1 / -1; grid-row: 2; text-align: left; }
body.template-14 #content .product .p-bottom .ratings-wrapper { grid-column: 1 / -1; grid-row: 4; text-align: left; }
body.template-14 #content .product .p-bottom .prices {
  grid-column: 1; grid-row: 3; display: flex; flex-direction: column;
  align-items: flex-start; justify-content: flex-end; padding: 0; margin: 0; text-align: left;
}
body.template-14 #content .product .p-bottom .price-final { flex-basis: auto; color: var(--kl-text); font-size: 25px; }
body.template-14 #content .product .p-bottom .p-tools { grid-column: 2; grid-row: 3; padding: 0; margin: 0; justify-self: end; }
body.template-14 #content .product .p-bottom .p-tools form { width: auto; margin: 0; }
body.template-14 #content .product .btn.btn-cart.add-to-cart-button { width: auto; min-height: 46px; white-space: normal; background: var(--kl-accent); color: var(--kl-button-text); }
body.template-14 #content .product .btn.btn-cart.add-to-cart-button:hover { background: var(--kl-hover); color: var(--kl-button-text); }
body.template-14 #content .product .btn.btn-cart.add-to-cart-button span { color: inherit; }
body.template-14 .breadcrumbs.navigation-home-icon-wrapper { background: var(--kl-bg); color: var(--kl-muted); }
body.template-14 .breadcrumbs.navigation-home-icon-wrapper a { color: var(--kl-accent); }
body.template-14 .breadcrumbs.navigation-home-icon-wrapper a:hover { color: var(--kl-hover); }
body.template-14 .listSorting__control { background: var(--kl-panel); color: var(--kl-text); border-color: var(--kl-border); }
body.template-14 .listSorting__control:hover,
body.template-14 .listSorting__control--current { background: var(--kl-accent); color: var(--kl-button-text); border-color: var(--kl-accent); }
body.template-14 div.category-header { background: var(--kl-panel); color: var(--kl-text); }
body.template-14 div.category-header :is(h1,h2,p) { color: var(--kl-text); }
body.template-14 .box-categories .active > a,
body.template-14 .sidebar .active > a { background: var(--kl-bg); color: var(--kl-hover); }
body.template-14 .box-categories .active > a span,
body.template-14 .sidebar .active > a span { color: inherit; }

/* KOLO 1 / DETAIL (13–15) — explicitní ID přebije bílou plochu Samby */
body.template-14 #tab-content.tab-content { background: var(--kl-panel); color: var(--kl-text); }
body.template-14 .shp-tabs a.shp-tab-link,
body.template-14 .shp-tabs .active a.shp-tab-link,
body.template-14 a.shp-tab-link.active,
body.template-14 a.shp-tab-link[aria-selected="true"] { background: var(--kl-panel); color: var(--kl-text); border-color: var(--kl-border); }
body.template-14 .shp-tabs a.shp-tab-link:hover { background: var(--kl-bg); color: var(--kl-hover); }
body.template-14 .ratings-wrapper span,
body.template-14 .stars-label { color: var(--kl-muted); }
body.template-14 .link-icon.print,
body.template-14 .link-icon.chat,
body.template-14 .link-icon.share { color: var(--kl-accent); }
body.template-14 .link-icon.print:hover,
body.template-14 .link-icon.chat:hover,
body.template-14 .link-icon.share:hover { color: var(--kl-hover); }

/* KOLO 1 / KOŠÍK A OBJEDNÁVKA (16–20) */
body.template-14 table.cart-table tr.removeable,
body.template-14 table.cart-table tr.removeable td { background: var(--kl-panel); color: var(--kl-text); border-color: var(--kl-line); }
body.template-14 table.cart-table tr.removeable td.p-name a.main-link { color: var(--kl-accent); }
body.template-14 table.cart-table tr.removeable td.p-name a.main-link:hover { color: var(--kl-hover); }
body.template-14 table.cart-table tr.removeable :is(strong.price-final,td.p-total,.p-price) { color: var(--kl-text); }
body.template-14 .cart-table .quantity { display: inline-grid; grid-template-columns: 44px minmax(44px,60px) 44px; align-items: center; min-width: 132px; border: 1px solid var(--kl-border); background: var(--kl-bg); }
body.template-14 .cart-table .quantity label { grid-column: 2; grid-row: 1; min-width: 0; margin: 0; }
body.template-14 .cart-table .quantity input { width: 100%; min-width: 0; min-height: 44px; padding: 8px 4px; color: var(--kl-text); background: var(--kl-bg); text-align: center; border: 0; }
body.template-14 .cart-table .quantity .increase,
body.template-14 .cart-table .quantity .decrease { position: static; width: 44px; height: 44px; min-height: 44px; padding: 0; border: 0; background: var(--kl-bg); color: var(--kl-accent); font-size: 20px; }
body.template-14 .cart-table .quantity .increase { grid-column: 3; grid-row: 1; }
body.template-14 .cart-table .quantity .decrease { grid-column: 1; grid-row: 1; }
body.template-14 .cart-table .quantity :is(.increase,.decrease):hover,
body.template-14 .cart-table .remove-item:hover { background: var(--kl-panel); color: var(--kl-hover); }
body.template-14 .cart-table .remove-item { width: 44px; height: 44px; min-height: 44px; padding: 0; border: 1px solid var(--kl-border); background: var(--kl-bg); color: var(--kl-accent); }
/* ordering-process je i třída BODY; krokovník je ol.cart-header. */
body.template-14 ol.cart-header { background: var(--kl-bg); color: var(--kl-text); }
body.template-14 ol.cart-header li :is(a,strong),
body.template-14 ol.cart-header li.completed :is(a,strong),
body.template-14 ol.cart-header li.active :is(a,strong) { background: transparent; color: var(--kl-text); }
body.template-14 ol.cart-header li :is(a,strong) span { color: inherit; }
body.template-14 ol.cart-header li :is(a,strong)::before { background: var(--kl-panel); color: var(--kl-text); border-color: var(--kl-border); }
body.template-14 ol.cart-header li.active :is(a,strong)::before { background: var(--kl-accent); color: var(--kl-button-text); border-color: var(--kl-accent); }
body.template-14 ol.cart-header li.completed :is(a,strong)::before { background: var(--kl-panel); color: var(--kl-accent); border-color: var(--kl-accent); }
body.template-14 ol.cart-header li a:hover,
body.template-14 ol.cart-header li.completed a:hover { color: var(--kl-hover); }
/* Nativní input zůstává pro klávesnici i čtečku; vzhled kreslí label Samby. */
body.template-14 .radio-wrapper input[type="radio"] + label::before { background: var(--kl-bg); border: 2px solid var(--kl-border); width: 20px; height: 20px; box-sizing: border-box; }
body.template-14 .radio-wrapper input[type="radio"]:checked + label::before { background: var(--kl-bg); border-color: var(--kl-accent); }
body.template-14 .radio-wrapper input[type="radio"] + label::after { width: 10px; height: 10px; left: 5px; border: 0; box-sizing: border-box; }
body.template-14 .radio-wrapper input[type="radio"]:not(:checked) + label::after { content: none; }
body.template-14 .radio-wrapper input[type="radio"] + label::after { top: calc(.75em + 7px); }
body.template-14 .shipping-billing-table .radio-wrapper input[type="radio"] + label::after { top: calc(.77em + 17px); }
body.template-14 .radio-wrapper input[type="radio"]:checked + label::after { content: ""; background: var(--kl-accent); border-color: var(--kl-accent); }
body.template-14 .radio-wrapper input[type="radio"]:focus-visible + label { outline: 3px solid var(--kl-hover); outline-offset: 3px; }
body.template-14 .radio-wrapper input[type="radio"]:disabled + label { color: var(--kl-muted); }
body.template-14 .radio-wrapper input[type="radio"]:checked + label > span b { color: var(--kl-text); }
body.template-14 .radio-wrapper .payment-logo img { padding: 6px; background: var(--kl-text); border-radius: 2px; box-sizing: content-box; }
body.template-14 .radio-wrapper .payment-shipping-price,
body.template-14 .radio-wrapper .payment-shipping-price strong,
body.template-14 .radio-wrapper .for-free,
body.template-14 .radio-wrapper.active .for-free { color: var(--kl-accent); }

/* KOLO 1 / HORNÍ NOTIFIKACE (21)
   Samba používá .msg.msg-success / .msg.msg-notice. Původní :where mělo nízkou váhu.
   Neměníme position, z-index, dobu zobrazení ani ovládání notifikací. */
body.template-14 .msg.msg-success,
body.template-14 .msg.msg-notice { background: var(--kl-success-bg); border-color: var(--kl-border); color: var(--kl-text); }
body.template-14 .messages .msg.msg-success,
body.template-14 .messages .msg.msg-notice { background: var(--kl-success-bg); color: var(--kl-text); }
body.template-14 .msg.msg-success a,
body.template-14 .msg.msg-notice a { color: var(--kl-text); }
body.template-14 .msg.msg-success a:hover,
body.template-14 .msg.msg-notice a:hover { color: var(--kl-hover); }
body.template-14 .messages .msg .close { color: var(--kl-text); }

/* KOLO 1 / MOBIL — zachovat statické ikony a pružné karty */
@media (max-width: 767px) {
  body.template-14 #header .site-name { min-width: 0; }
  body.template-14 #header .navigation-buttons { position: static; width: auto; top: auto; transform: none; }
  body.template-14.in-index #content .products-wrapper.product-slider-holder { padding-bottom: 40px; }
  body.template-14.in-index #content .products.product-slider:not(:has(> .products-block)) { grid-template-columns: minmax(0,1fr); }
  body.template-14 #content .product .p-in { padding: 25px; }
  body.template-14 #content .product .p-bottom > div:has(> .prices) { grid-template-columns: minmax(0,1fr) auto; gap: 10px; }
  body.template-14 #content .product .btn.btn-cart.add-to-cart-button { padding-inline: 14px; font-size: 16px; }
  body.template-14 .cart-table .quantity { grid-template-columns: repeat(2,minmax(0,1fr)); min-width: 0; width: 64px; max-width: 100%; }
  body.template-14 .cart-table .quantity label { grid-column: 1 / -1; grid-row: 1; }
  body.template-14 .cart-table .quantity .decrease { grid-column: 1; grid-row: 2; }
  body.template-14 .cart-table .quantity .increase { grid-column: 2; grid-row: 2; }
  body.template-14 .cart-table .quantity :is(.increase,.decrease) { width: 100%; min-width: 0; height: 44px; }
}

/* KOLO 1 / KONTEJNERY HLAVIČKY A BARVA OBOU SLOTŮ
   Samba má i delší selektory #header .header-top .header-top-wrapper;
   stejné vnoření s body.template-14 je přebije bez !important. */
body.template-14 #header .header-top,
body.template-14 #header .header-top .header-top-wrapper,
body.template-14 #header .header-bottom,
body.template-14 #header .header-bottom .header-bottom-wrapper {
  width: auto; max-width: none; height: auto; margin: 0; padding: 0; border: 0;
}
body.template-14 #header .header-top,
body.template-14 #header .header-top .header-top-wrapper { position: static; }
body.template-14 #header .header-top .header-top-wrapper .site-name {
  flex: 0 0 auto; width: auto; min-width: max-content; max-width: none;
  height: auto; margin: 0; padding: 0; border: 0; text-align: left;
}
body.template-14 #header .header-top .header-top-wrapper .site-name a { height: auto; margin: 0; padding: 0; }
body.template-14 #header .header-bottom { padding-right: 210px; }
body.template-14 .kl-before-products,
body.template-14 .kl-before-products .kl-ribbon,
body.template-14 .kl-before-products .kl-register-title { color: var(--kl-text); }
@media (min-width: 768px) and (max-width: 1100px) {
  body.template-14 #header .header-bottom { padding-right: 170px; }
}
@media (max-width: 767px) {
  body.template-14 #header .header-bottom { padding-right: 0; }
  body.template-14 #header .header-top .header-top-wrapper .site-name { flex: 1 1 auto; min-width: 0; }
}
/* KOLO 1 / stejná levá hrana loga, registru a karet */
body.template-14 #header .navigation-tools { order: 2; }
body.template-14 #header .navigation-tools:empty { display: none; }
body.template-14 #header .header-top .header-top-wrapper .site-name { order: 0; }
body.template-14 #header .header-top .header-top-wrapper .site-name a { min-width: 0; max-width: 100%; }
body.template-14 #header .navigation-buttons { order: 1; }
body.template-14 #header #navigation .navigation-in { position: relative; left: auto; top: auto; width: 100%; max-width: 100%; }
body.template-14.in-index .welcome-wrapper .welcome { width: 100%; max-width: none; margin: 0; }
@media (max-width: 767px) {
  body.template-14 #header .header-top .header-top-wrapper { flex-wrap: nowrap; gap: 8px; }
  body.template-14 #header .header-top .header-top-wrapper .site-name a { width: auto; }
  body.template-14 #header .header-top .header-top-wrapper .site-name a img { max-width: 100%; }
}
/* KOLO 1 / původní full-width posun Samby není potřeba v plném #content */
body.template-14.in-index #content .full-width {
  left: auto; right: auto; width: 100%; max-width: none;
  margin-left: 0; margin-right: 0; transform: none;
}
body.template-14 #header .header-top .header-top-wrapper .navigation-tools { order: 2; }
body.template-14 #header .header-top .header-top-wrapper .navigation-tools:empty { display: none; }
@media (max-width: 767px) {
  body.template-14 ol.cart-header { gap: 10px; }
  body.template-14 ol.cart-header li { flex: 1 1 0; min-width: 0; }
  body.template-14 ol.cart-header li :is(a,strong) { min-width: 0; font-size: 14px; }
  body.template-14 ol.cart-header li :is(a,strong) span { white-space: normal; overflow-wrap: anywhere; }
}
/* Bootstrap clearfix pseudo-prvky jsou ve flex hlavičce prázdné položky s gapem. */
body.template-14 #header .header-top .header-top-wrapper::before,
body.template-14 #header .header-top .header-top-wrapper::after { content: none; display: none; }
/* Karty fungují i bez pomocného products-block obalu slideru. */
body.template-14 #content .products-wrapper .product { float: none; width: auto; min-width: 0; margin: 0; padding: 0; border: 0; background: var(--kl-panel); }
body.template-14 #content .products-wrapper .product .p { height: 100%; background: var(--kl-panel); }
body.template-14 #content .products-wrapper .product .image { display: flex; justify-content: center; align-items: center; height: 410px; padding: 30px; background: var(--kl-texture-image) center / cover no-repeat; overflow: hidden; }
body.template-14 #content .products-wrapper .product .image img { display: block; width: auto; max-width: 100%; height: auto; max-height: 350px; object-fit: contain; margin: 0; }
@media (max-width: 767px) {
  body.template-14 #content .products-wrapper .product .image { height: 325px; padding: 25px; }
  body.template-14 #content .products-wrapper .product .image img { max-height: 275px; }
}
