/*
 * Motoplazza custom theme override (loaded after Storefront default CSS)
 * Cieľ: motocard.com look — kompaktné karty, čisté tiles, brand farby
 */

:root {
  /* Záväzná paleta podľa docs/design/DESIGN.md */
  --mp-accent: #FF3B30;        /* červená — IBA na akcie (CTA, akciová cena, badge, košík) */
  --mp-accent-dark: #E62E24;   /* hover stav červenej */
  --mp-text: #1A1A1A;          /* primárny text, hlavičky */
  --mp-muted: #666666;          /* sekundárny text (popisy, meta info) */
  --mp-hint: #999999;           /* hint/disabled, prečiarknutá pôvodná cena */
  --mp-border: #E5E5E5;         /* hranice */
  --mp-bg-light: #F5F5F5;       /* jemné pozadia, hover stavy */
  --mp-footer-bg: #1A1A1A;      /* pozadie päty */
  --mp-white: #FFFFFF;
}

/* ============================================
 *  PRODUCT CARDS — podla docs/design/DESIGN.md bod 5.
 *  - 4 v rade na desktope (Bootstrap layout to riesi)
 *  - karta: biele pozadie, border 0.5px #E5E5E5, radius 8px
 *  - obrazok: 1:1 stvorec, #F5F5F5 pozadie, contain
 *  - content padding: 12px
 *  - manufacturer (12px sive), nazov (14px/500), cena (16px/600)
 *  - tlacidlo Detail: cierne pozadie, biely text, hover cervene
 *  - skryt variant-characteristics a description
 * ============================================ */

/* Card container */
.product-box,
.card.product-box,
.card.product-box.box-standard,
.card.product-box.box-minimal {
  border: 0.5px solid var(--mp-border) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  overflow: hidden !important;
  transition: box-shadow .2s ease, border-color .2s ease !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  background: var(--mp-white) !important;
}

/* Hover: subtle shadow lift bez transformu */
.product-box:hover,
.card.product-box:hover {
  border-color: var(--mp-border) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
}

/* Card body — bez vlastneho paddingu, deti definuju svoje */
.product-box .card-body,
.card.product-box .card-body {
  display: flex !important;
  flex-direction: column !important;
  padding: 0 !important;
  height: auto !important;
  flex: 0 0 auto !important;
  justify-content: flex-start !important;
  position: relative !important;  /* pre absolute badge */
}

/* Image wrapper — 1:1 stvorec, sive pozadie, bez paddingu.
 * Pri velmi sirokych monitoroch (col-xl-3 ~480px) by stvorec bol prilis velky,
 * preto clampneme max-height = 280px. */
.product-box .product-image-wrapper {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  aspect-ratio: 1 / 1 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: 280px !important;
  padding: 0 !important;
  background: var(--mp-bg-light) !important;
  overflow: hidden !important;
  flex: 0 0 auto !important;
  width: 100% !important;
}

/* Fallback ak browser nepodporuje aspect-ratio (stare Safari < 15) */
@supports not (aspect-ratio: 1) {
  .product-box .product-image-wrapper::before {
    content: "";
    display: block;
    padding-top: 100%;
  }
  .product-box .product-image-wrapper {
    position: relative !important;
  }
  .product-box .product-image-link {
    position: absolute !important;
    inset: 0 !important;
  }
}

.product-box .product-image-wrapper img,
.product-box .product-image {
  max-width: 90% !important;
  max-height: 90% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
}

.product-box .product-image-link {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
}

/* Product info — text content pod obrazkom */
.product-box .product-info {
  padding: 12px !important;
  flex: 0 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  text-align: left !important;
  height: auto !important;
  min-height: 0 !important;
}

/* ============================================
 *  MANUFACTURER LOGO CHIP — IBA LISTING.
 *  Biely chip s logom v rohu obrazka produktovej karty.
 *  PDP pouziva Shopware default "volne" logo vedla nazvu produktu
 *  (.product-heading-manufacturer-logo-container) — NEzasahujeme.
 * ============================================ */

.product-box .product-manufacturer-logo {
  position: absolute !important;
  top: 8px !important;
  left: 8px !important;
  z-index: 3 !important;
  background-color: var(--mp-white) !important;
  background-image: none !important;
  padding: 4px 8px !important;
  border: none !important;
  border-radius: 3px !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: auto !important;
  min-height: 20px !important;
  max-width: 80px !important;
  margin: 0 !important;
  opacity: 1 !important;
  pointer-events: none !important;  /* aby neblokoval klik na obrazok */
}

.product-box .product-manufacturer-logo img {
  height: 16px !important;
  max-width: 60px !important;
  max-height: 20px !important;
  width: auto !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 !important;
}

.product-box .product-manufacturer-logo .text-fallback {
  font-weight: 700 !important;
  letter-spacing: 1px !important;
  font-size: 11px !important;
  color: var(--mp-text) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

/* Konflikt s -20% badgom v listingu: chip sa posuva doprava. */
.product-box:has(.product-badge-discount) .product-manufacturer-logo {
  left: auto !important;
  right: 8px !important;
}

/* Schovaj textovy manufacturer riadok pod obrazkom v karte —
 * znacka je uz v chipe v rohu obrazka. */
.product-box .product-manufacturer {
  display: none !important;
}

/* Badge container — pozicia v lavom hornom rohu obrazka */
.product-box .product-badges {
  position: absolute !important;
  top: 8px !important;
  left: 8px !important;
  z-index: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}

/* Akciovy badge "-20%" (vytvoreny cez patch-discount-badge-twig.sh) */
.product-box .product-badge-discount,
.product-badge-discount {
  display: inline-block !important;
  background: var(--mp-accent) !important;
  color: var(--mp-white) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  padding: 4px 8px !important;
  border-radius: 3px !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  white-space: nowrap !important;
  min-width: 38px !important;
  text-align: center !important;
}

/* Rating — schovat ak prazdne */
.product-box .product-rating:empty {
  display: none !important;
}

/* Manufacturer (znacka) — 12px sedy text */
.product-box .product-manufacturer {
  font-size: 12px !important;
  font-weight: 400 !important;
  color: var(--mp-muted) !important;
  line-height: 1.2 !important;
  margin: 0 0 4px 0 !important;
  padding: 0 !important;
}

.product-box .product-manufacturer:empty {
  display: none !important;
}

/* Product name — 14px/500, cierna */
.product-box .product-name {
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  margin: 0 0 8px 0 !important;
  padding: 0 !important;
  color: var(--mp-text) !important;
  min-height: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  text-decoration: none !important;
}

.product-box .product-name:hover {
  color: var(--mp-accent) !important;
}

/* Description — schovat (zbytocny "vata" v karte) */
.product-box .product-description {
  display: none !important;
}

/* Variant characteristics ("Color: Black | Size: M") — schovat,
 * vsetky parents teraz displayParent=true, takze nedavaju zmysel v karte.
 * min-height: 0 je dolezite — Shopware default mu dava min-height: 3em
 * co aj pri display:none robi flex layout glitche na niektoryh browseroch. */
.product-box .product-variant-characteristics {
  display: none !important;
  min-height: 0 !important;
  height: 0 !important;
}

/* Listing — stretch karty na rovnaku vysku v rade.
 * Predtym bolo flex-start, ale userom-pozadovany equal heights cez stretch. */
.cms-listing-row {
  align-items: stretch !important;
}

.cms-listing-row .product-box,
.cms-listing-col .product-box,
.cms-listing-col .card.product-box,
.cms-listing-col .card.product-box.box-standard,
.cms-listing-col .card.product-box.box-minimal {
  height: 100% !important;     /* flex stretch v rade — karty rovnako vysoke */
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  /* POZOR: ZIADNY max-height — kombinacia max-height + overflow:hidden zo
   * .product-box base pravidla orezavala ceny a tlacidlo Detail v listingu. */
}

.cms-listing-row .card-body,
.cms-listing-col .card-body {
  height: 100% !important;     /* fill .product-box height */
  flex: 1 1 auto !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}

/* product-info rastie aby vyplnil zvysny priestor v card-body */
.cms-listing-row .product-info,
.cms-listing-col .product-info {
  flex: 1 1 auto !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 12px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}

/* Vsetky prvky v info (nazov, cena, stav) — kompaktne bez expansion */
.cms-listing-col .product-info > * {
  flex: 0 0 auto !important;
}

/* Action button na spodok karty cez margin-top: auto */
.cms-listing-row .product-action,
.cms-listing-col .product-action {
  margin-top: auto !important;
  position: static !important;
  flex: 0 0 auto !important;
}

/* Price */
.product-box .product-price-info {
  padding: 0 !important;
  margin: 0 0 10px 0 !important;
  flex: 0 0 auto !important;
}

.product-box .product-price-unit {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
}

.product-box .product-price-unit:empty {
  display: none !important;
}

.product-box .product-price-wrapper {
  margin: 0 !important;
  padding: 0 !important;
}

.product-box .product-cheapest-price:empty {
  display: none !important;
}

.product-box .product-price {
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--mp-text) !important;
  margin: 0 !important;
}

/* Akciova cena: aktualna cena je cervena ak ma listPrice */
.product-box .product-price.with-list-price {
  color: var(--mp-accent) !important;
}

/* Precsiarknuta povodna cena (vedla novej, 6px medzera) */
.product-box .list-price {
  display: inline-block !important;
  margin-left: 6px !important;
  vertical-align: baseline !important;
}

.product-box .list-price-price {
  color: var(--mp-hint) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  text-decoration: line-through !important;
}

/* Skryt "list-price-no-line-through" override (Shopware ho prida ak su
 * vyplnene before/afterListPrice — my ich mame prazdne, ale niekedy sa
 * trieda prida nasilno). Force-line-through. */
.product-box .list-price.list-price-no-line-through .list-price-price {
  text-decoration: line-through !important;
}

/* Skryt inline "(ušetríte X%)" text — pouzivame samostatny badge */
.product-box .list-price-percentage,
.list-price-percentage {
  display: none !important;
}

/* CTA — tlacidlo "Detail" */
.product-box .product-action {
  padding: 0 !important;
  margin: 0 !important;
  flex: 0 0 auto !important;
}

.product-box .product-action .d-grid,
.product-box .product-action {
  width: 100% !important;
}

.product-box .product-action .btn,
.product-box .product-action .btn-light,
.product-box .product-action .btn-detail,
.product-box .product-action .btn-primary {
  background: var(--mp-text) !important;
  border: none !important;
  color: var(--mp-white) !important;
  padding: 10px 16px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  border-radius: 4px !important;
  width: 100% !important;
  text-decoration: none !important;
}

.product-box .product-action .btn:hover,
.product-box .product-action .btn-light:hover,
.product-box .product-action .btn-detail:hover,
.product-box .product-action .btn-primary:hover {
  background: var(--mp-accent) !important;
  border-color: var(--mp-accent) !important;
  color: var(--mp-white) !important;
}

/* ============================================
 *  SLIDER container — kill fixed height on items
 * ============================================ */

.cms-element-product-slider,
.cms-block-product-slider {
  overflow: hidden !important;
}

/* tns (tiny slider) items — kill rigid height */
.cms-element-product-slider .tns-outer,
.cms-element-product-slider .product-slider-container {
  padding: 0 !important;
}

.cms-element-product-slider .tns-inner {
  max-height: none !important;
}

.cms-element-product-slider .tns-item {
  padding: 0 8px !important;
  height: auto !important;
  align-self: stretch !important;
}

.cms-element-product-slider .product-slider-item {
  padding: 0 8px !important;
}

/* Force all cards in slider to same compact layout */
.cms-element-product-slider .tns-item .card.product-box,
.cms-element-product-slider .product-slider-item .card.product-box {
  height: 100% !important;
}

.cms-element-product-slider .tns-item .card-body,
.cms-element-product-slider .product-slider-item .card-body {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Push action button to bottom within equalized card */
.cms-element-product-slider .product-info {
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
}

.cms-element-product-slider .product-action {
  margin-top: auto !important;
}

/* Slider dots */
.cms-element-product-slider .tns-nav button {
  background: var(--mp-border) !important;
  border: none !important;
}

.cms-element-product-slider .tns-nav .tns-nav-active {
  background: var(--mp-text) !important;
}

/* Slider arrow buttons */
.cms-element-product-slider .base-slider-controls .base-slider-controls-prev,
.cms-element-product-slider .base-slider-controls .base-slider-controls-next {
  background: rgba(26, 26, 26, .9) !important;
  color: var(--mp-white) !important;
  border-radius: 50% !important;
  width: 38px !important;
  height: 38px !important;
}

/* Slider title (Top prilby) */
.product-slider-title,
.cms-element-product-slider h2,
.cms-element-product-slider .product-slider-title,
h2.product-slider-title {
  font-size: 20px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  margin: 0 0 16px 0 !important;
  color: var(--mp-text) !important;
}

/* ============================================
 *  HOMEPAGE V4 — banner, USP (3 dlazdice + tiles riadi blok image-three-cover)
 * ============================================ */

/* ---------- BANNER S AKCIOU (homepage-sale-banner) ---------- */

.homepage-sale-banner-section .cms-block {
  background: linear-gradient(90deg, #1A1A1A 0%, #2a2a2a 100%) !important;
  border-radius: 10px !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.homepage-sale-banner-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 20px !important;
  padding: 32px 40px !important;
}

.homepage-sale-banner-text {
  flex: 1 1 auto !important;
}

.homepage-sale-banner-text h2 {
  color: var(--mp-white) !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  margin: 0 0 8px 0 !important;
}

.homepage-sale-banner-text p {
  color: var(--mp-hint) !important;
  font-size: 16px !important;
  margin: 0 !important;
}

.homepage-sale-banner-btn,
.btn.homepage-sale-banner-btn {
  background-color: var(--mp-accent) !important;
  color: var(--mp-white) !important;
  padding: 12px 24px !important;
  border-radius: 4px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  border: none !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.homepage-sale-banner-btn:hover {
  background-color: var(--mp-accent-dark) !important;
  color: var(--mp-white) !important;
}

/* ---------- PRODUCT SLIDER -> GRID (homepage) ---------- */

/* Vypneme tns slider controls a navigation pre homepage slidery */
.homepage-bestseller-section .tns-controls,
.homepage-bestseller-section .tns-nav,
.homepage-bestseller-section .base-slider-controls,
.homepage-novinky-section .tns-controls,
.homepage-novinky-section .tns-nav,
.homepage-novinky-section .base-slider-controls {
  display: none !important;
}

/* Slider container — premenime na grid */
.homepage-bestseller-section .cms-element-product-slider .tns-outer,
.homepage-novinky-section .cms-element-product-slider .tns-outer {
  padding: 0 !important;
}

/* Force tns inner na grid namiesto carousel */
.homepage-bestseller-section .cms-element-product-slider .product-slider,
.homepage-novinky-section .cms-element-product-slider .product-slider,
.homepage-bestseller-section .cms-element-product-slider .product-slider-container,
.homepage-novinky-section .cms-element-product-slider .product-slider-container {
  overflow: visible !important;
}

.homepage-bestseller-section .cms-element-product-slider .tns-inner,
.homepage-novinky-section .cms-element-product-slider .tns-inner {
  overflow: visible !important;
}

.homepage-bestseller-section .cms-element-product-slider .tns-slider,
.homepage-novinky-section .cms-element-product-slider .tns-slider {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 16px !important;
  transform: none !important;            /* zrusi tns translate */
  width: 100% !important;
}

.homepage-bestseller-section .cms-element-product-slider .tns-item,
.homepage-novinky-section .cms-element-product-slider .tns-item {
  width: 100% !important;
  padding: 0 !important;
  /* zobrazime len prvych 4 — schovame ostatne */
}

.homepage-bestseller-section .cms-element-product-slider .tns-item:nth-child(n+5),
.homepage-novinky-section .cms-element-product-slider .tns-item:nth-child(n+5) {
  display: none !important;
}

/* Mobile: grid 2 stlpce */
@media (max-width: 991.98px) {
  .homepage-bestseller-section .cms-element-product-slider .tns-slider,
  .homepage-novinky-section .cms-element-product-slider .tns-slider {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .homepage-bestseller-section .cms-element-product-slider .tns-item:nth-child(n+5),
  .homepage-novinky-section .cms-element-product-slider .tns-item:nth-child(n+5) {
    display: block !important;          /* na mobile zobrazime aj dalsie */
  }
  .homepage-bestseller-section .cms-element-product-slider .tns-item:nth-child(n+7),
  .homepage-novinky-section .cms-element-product-slider .tns-item:nth-child(n+7) {
    display: none !important;
  }
}

/* Slider title — vacsie a vyssie */
.homepage-bestseller-section .product-slider-title,
.homepage-novinky-section .product-slider-title {
  text-align: left !important;
  margin: 0 0 24px 0 !important;
}

/* USP sekcia odstranena z homepage (Shopware sanitizer komplikoval
 * inline SVG ikony). Vratime sa k tomu pri lepsej CMS sablone alebo plugine. */

/* ============================================
 *  CATEGORY TILES (image-three-cover)
 * ============================================ */

/* 3 dlazdice vedla seba cez CSS Grid (deterministickejsie nez flex+gap).
 * Bootstrap col-md-4 + gap 16px sposobi wrap (33.33% × 3 + 32px > 100%),
 * preto vypneme flex+col a pouzijeme grid. */
.cms-block-image-three-cover .cms-block-container-row {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 16px !important;
  margin: 0 !important;
}

.cms-block-image-three-cover .cms-block-container-row > [class*="col-"] {
  flex: none !important;
  max-width: 100% !important;
  width: auto !important;
  padding: 0 !important;
}

/* Mobile: 1 dlazdica na riadok */
@media (max-width: 575.98px) {
  .cms-block-image-three-cover .cms-block-container-row {
    grid-template-columns: 1fr !important;
  }
}

.cms-block-image-three-cover .cms-element-image {
  border-radius: 10px !important;
  overflow: hidden !important;
  transition: transform .25s, box-shadow .25s !important;
  cursor: pointer !important;
}

.cms-block-image-three-cover .cms-element-image:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, .15) !important;
}

.cms-block-image-three-cover .cms-image,
.cms-block-image-three-cover .cms-image-container {
  border-radius: 10px !important;
}

/* ============================================
 *  HERO (image block na full-width sekcii)
 * ============================================ */

.cms-section:first-child .cms-block-image .cms-element-image-container {
  overflow: hidden !important;
}

/* ============================================
 *  NAVIGATION — bold uppercase ako motocard
 * ============================================ */

.main-navigation .main-navigation-menu .nav-link,
.main-navigation-menu .nav-link {
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  font-size: 14px !important;
}

.main-navigation .main-navigation-menu .nav-item.active .nav-link,
.main-navigation .main-navigation-menu .nav-link:hover {
  color: var(--mp-accent) !important;
}

/* ============================================
 *  BUTTONS GLOBAL — motocard red CTA
 * ============================================ */

.btn-primary {
  background-color: var(--mp-accent) !important;
  border-color: var(--mp-accent) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  background-color: var(--mp-accent-dark) !important;
  border-color: var(--mp-accent-dark) !important;
}

/* Odkazy: defaultne čierne (text color), nie červené.
 * Červená iba pre konkrétne akčné prvky (CTA tlačidlá, "Akcie" v menu,
 * ikona košíka, hover odkazov v päte, akciové ceny).
 */
a {
  color: var(--mp-text);
}

a:hover {
  color: var(--mp-accent);
}

/* ============================================
 *  PRODUCT DETAIL PAGE — clean look
 * ============================================ */

.product-detail-buy .btn-primary {
  padding: 14px 24px !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}

.product-detail-name {
  font-weight: 600 !important;
}

/* ============================================
 *  CATEGORY LISTING (Prilby/Integralne/)
 * ============================================ */

.cms-listing-row .product-box {
  margin-bottom: 16px !important;
}

/* ============================================
 *  SECTION SPACING — tighter
 * ============================================ */

.cms-section {
  padding: 0 !important;
}

.cms-section + .cms-section {
  margin-top: 16px !important;
}

/* ============================================
 *  FOOTER — cierne pozadie, biele texty, cervene hover.
 *  Podla docs/design/DESIGN.md bod 7.
 * ============================================ */

.footer-main {
  background-color: var(--mp-footer-bg) !important;     /* #1A1A1A */
  color: var(--mp-white) !important;
  border-top: none !important;
  padding-top: 48px !important;
  padding-bottom: 0 !important;
  margin-top: 64px !important;
}

/* Schova default "Zakaznicka linka" Hotline column.
 * Mame 4 service-category columns; Hotline sa zatial nezobrazuje.
 * Reálne kontakty pridáme neskôr (samostatnou column alebo cez CMS block). */
.footer-main #collapseFooterHotline,
.footer-main #collapseFooterHotlineTitle,
.footer-main .footer-column:has(#collapseFooterHotline),
.footer-main .footer-column:has(#collapseFooterHotlineTitle) {
  display: none !important;
}

/* Footer columns layout: 4 vedla seba na desktope.
 * Bootstrap default je col-md-4 (3 na riadok). Forcneme 25% width
 * cez prepis Bootstrap classy.  */
@media (min-width: 768px) {
  .footer-main .footer-columns .col-md-4.footer-column {
    flex: 0 0 25% !important;
    max-width: 25% !important;
    width: 25% !important;
  }
}

/* Vsetky texty v footer biele */
.footer-main,
.footer-main p,
.footer-main span,
.footer-main li,
.footer-main div {
  color: var(--mp-white) !important;
}

/* Nadpisy stlpcov */
.footer-main .footer-headline,
.footer-main .footer-column-headline {
  color: var(--mp-white) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  margin-bottom: 12px !important;
}

/* Odkazy v footer — biele, hover cervene */
.footer-main a,
.footer-main a:link,
.footer-main a:visited {
  color: var(--mp-white) !important;
  text-decoration: none !important;
}

.footer-main a:hover,
.footer-main a:focus,
.footer-main a:active {
  color: var(--mp-accent) !important;
  text-decoration: none !important;
}

/* Service menu (footer-bottom links) */
.footer-main .footer-service-menu-list {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 16px 0 !important;
}

.footer-main .footer-service-menu-list a {
  font-size: 13px !important;
  color: var(--mp-hint) !important;       /* svetlosiva pre service links */
}

.footer-main .footer-service-menu-list a:hover {
  color: var(--mp-accent) !important;
}

/* Footer bottom strip (VAT info, copyright) */
.footer-main .footer-bottom {
  border-top: 1px solid #333 !important;   /* tmavsia separacia v ramci cierneho */
  margin-top: 32px !important;
  padding: 16px 0 !important;
}

.footer-main .footer-vat,
.footer-main .footer-vat p {
  color: var(--mp-hint) !important;
  font-size: 12px !important;
  text-align: center !important;
  margin: 0 !important;
  padding: 8px 0 !important;
}

.footer-main .footer-vat a {
  color: var(--mp-hint) !important;
  text-decoration: underline !important;
}

.footer-main .footer-vat a:hover {
  color: var(--mp-accent) !important;
}

/* Copyright ("Vytvorene na Shopware") — sivy 11px */
.footer-main .footer-copyright,
.footer-main .footer-copyright * {
  color: var(--mp-hint) !important;
  font-size: 11px !important;
  text-align: center !important;
  padding: 8px 0 16px !important;
  margin: 0 !important;
}

/* Shopware icon vedla copyright — sive */
.footer-main .footer-copyright .icon svg use,
.footer-main .footer-copyright .icon svg path {
  fill: var(--mp-hint) !important;
}

/* SVG ikony (plus/minus pre collapse stlpcov) — biele namiesto sive #758CA3 */
.footer-main .icon svg use,
.footer-main .icon svg path,
.footer-main .footer-plus-icon svg use,
.footer-main .footer-minus-icon svg use {
  fill: var(--mp-white) !important;
}

.footer-main .footer-copyright .icon svg use,
.footer-main .footer-copyright .icon svg path {
  fill: var(--mp-hint) !important;     /* copyright icon zostava siva */
}

/* Hotline cislo — link biely (uz pokryte general a rule) */
.footer-main .footer-contact-hotline,
.footer-main .footer-contact-hotline a {
  color: var(--mp-white) !important;
  font-size: 14px !important;
}

.footer-main .footer-contact-hotline a:hover {
  color: var(--mp-accent) !important;
}

/* Newsletter input (ak existuje) — biele pozadie s sivymi okrajmi */
.footer-main .footer-newsletter input,
.footer-main input.form-control,
.footer-main input[type="email"] {
  background-color: var(--mp-white) !important;
  border: 1px solid var(--mp-border) !important;
  color: var(--mp-text) !important;
}

.footer-main .footer-newsletter input::placeholder,
.footer-main input.form-control::placeholder {
  color: var(--mp-muted) !important;
}

/* Newsletter CTA tlacidlo — cervene */
.footer-main .footer-newsletter .btn-primary,
.footer-main .btn-primary {
  background-color: var(--mp-accent) !important;
  border-color: var(--mp-accent) !important;
  color: var(--mp-white) !important;
}

.footer-main .footer-newsletter .btn-primary:hover,
.footer-main .btn-primary:hover {
  background-color: var(--mp-accent-dark) !important;
  border-color: var(--mp-accent-dark) !important;
}

/* Scroll-up tlacidlo (Spat hore) — uz je cervene cez global .btn-primary,
 * ale na cierno pozadi by mohlo mat tenky biely border pre kontrast */
.scroll-up-container .scroll-up-button .btn-primary {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
}

/* ============================================
 *  TYPOGRAPHY — podľa docs/design/DESIGN.md
 * ============================================ */

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: var(--mp-text) !important;
}

h1 {
  font-size: 28px !important;
  font-weight: 600 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

h2 {
  font-size: 20px !important;
  font-weight: 600 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

h3 {
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

/* Malé info (cena DPH, drobné popisy) */
small,
.small,
.product-price-tax,
.product-tax,
.product-price-info small {
  font-size: 12px !important;
}

/* Globálne tlačidlá — sentence case */
.btn,
button.btn {
  text-transform: none !important;
  letter-spacing: normal !important;
  font-weight: 500 !important;
}

/* VÝNIMKY z pravidla "žiadne uppercase":
 * - badge na akciovom produkte ("-20%") — pre istotu force uppercase
 * - veľké banner nadpisy na homepage (ak ich CMS oblečie do .hero-title)
 */
.product-badges .badge,
.product-badge-discount {
  text-transform: uppercase !important;
}

/* ============================================
 *  BOOTSTRAP / SHOPWARE BRAND OVERRIDE.
 *  Shopware default primary je #0042a0 (modra). Prepiseme ju na cervenu
 *  z palety, link color na ciernu. Tento blok ma byt CO NAJVYSSIE
 *  v subore, aby cascade nizsie pravidla pouzivali nase var().
 * ============================================ */

:root {
  --bs-primary: var(--mp-accent);
  --bs-primary-rgb: 255, 59, 48;
  --bs-link-color: var(--mp-text);
  --bs-link-color-rgb: 26, 26, 26;
  --bs-link-hover-color: var(--mp-accent);
  --bs-link-hover-color-rgb: 255, 59, 48;
  --bs-border-color: var(--mp-border);
  --bs-focus-ring-color: rgba(255, 59, 48, 0.25);
}

/* Btn primary (Bootstrap global) — cervene CTA */
.btn-primary {
  background-color: var(--mp-accent) !important;
  border-color: var(--mp-accent) !important;
  color: var(--mp-white) !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.btn-check:checked + .btn-primary {
  background-color: var(--mp-accent-dark) !important;
  border-color: var(--mp-accent-dark) !important;
  color: var(--mp-white) !important;
}

/* Btn outline-primary */
.btn-outline-primary {
  color: var(--mp-accent) !important;
  border-color: var(--mp-accent) !important;
  background-color: transparent !important;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
  background-color: var(--mp-accent) !important;
  border-color: var(--mp-accent) !important;
  color: var(--mp-white) !important;
}

/* Btn secondary (cierna sekundarka) */
.btn-secondary {
  background-color: var(--mp-text) !important;
  border-color: var(--mp-text) !important;
  color: var(--mp-white) !important;
}
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active {
  background-color: var(--mp-accent) !important;
  border-color: var(--mp-accent) !important;
  color: var(--mp-white) !important;
}

/* Pagination active page — cierne namiesto modreho */
.page-item.active .page-link,
.page-link.active {
  background-color: var(--mp-text) !important;
  border-color: var(--mp-text) !important;
  color: var(--mp-white) !important;
}
.page-link {
  color: var(--mp-text) !important;
}
.page-link:hover {
  color: var(--mp-accent) !important;
  background-color: var(--mp-bg-light) !important;
}

/* Dropdown active item */
.dropdown-item.active,
.dropdown-item:active {
  background-color: var(--mp-text) !important;
  color: var(--mp-white) !important;
}

/* ============================================
 *  FORM CONTROLS — input, select, textarea
 * ============================================ */

.form-control,
.form-select,
input[type="text"].form-control,
input[type="email"].form-control,
input[type="password"].form-control,
input[type="number"].form-control,
input[type="search"].form-control,
textarea.form-control {
  border: 1px solid var(--mp-border) !important;
  border-radius: 4px !important;
  padding: 8px 12px !important;
  font-size: 14px !important;
  color: var(--mp-text) !important;
  background-color: var(--mp-white) !important;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus {
  border-color: var(--mp-text) !important;
  box-shadow: none !important;
  outline: 0 !important;
}

.form-control::placeholder {
  color: var(--mp-muted) !important;
  opacity: 1 !important;
}

/* Form check (checkbox / radio) — cierne accent */
.form-check-input:checked {
  background-color: var(--mp-text) !important;
  border-color: var(--mp-text) !important;
}
.form-check-input:focus {
  border-color: var(--mp-text) !important;
  box-shadow: none !important;
  outline: 0 !important;
}

/* ============================================
 *  CONFIGURATOR (PDP variant selector) — velkosti + farby.
 *  Default Shopware ma modry #0042a0 selected/hover state.
 *  Zmenime: selected = cierne, hover = cervene.
 * ============================================ */

/* Selected (checked) — vseobecne */
.product-detail-configurator-option-input:checked + .product-detail-configurator-option-label {
  border-color: var(--mp-text) !important;
}

/* Selected — textovy label (velkost S/M/L) → cierne pozadie, biely text */
.product-detail-configurator-option-input:checked + .product-detail-configurator-option-label.is-display-text {
  background-color: var(--mp-text) !important;
  color: var(--mp-white) !important;
  border-color: var(--mp-text) !important;
}

/* Selected — color swatch (is-display-media): 2px cierne ramovanie */
.product-detail-configurator-option-input:checked + .product-detail-configurator-option-label.is-display-media {
  border: 2px solid var(--mp-text) !important;
}

/* Hover/active/focus — cervene namiesto modreho */
.product-detail-configurator-option-input.is-combinable + .product-detail-configurator-option-label:hover,
.product-detail-configurator-option-input.is-combinable + .product-detail-configurator-option-label:active,
.product-detail-configurator-option-input.is-combinable + .product-detail-configurator-option-label:focus,
.product-detail-configurator-option-input + .product-detail-configurator-option-label:hover,
.product-detail-configurator-option-input + .product-detail-configurator-option-label:active,
.product-detail-configurator-option-input + .product-detail-configurator-option-label:focus {
  border-color: var(--mp-accent) !important;
}

/* Hover color swatch — 2px cervene */
.product-detail-configurator-option-input + .product-detail-configurator-option-label.is-display-media:hover {
  border: 2px solid var(--mp-accent) !important;
}

/* Focus-visible ring — bez modreho glow */
.product-detail-configurator-option-input:focus-visible + .product-detail-configurator-option-label {
  box-shadow: 0 0 0 0.125rem var(--mp-white), 0 0 0 0.2rem rgba(255, 59, 48, 0.4) !important;
}

/* ============================================
 *  QUANTITY SELECTOR (-/+ button group)
 * ============================================ */

.quantity-selector-group,
.product-detail-quantity-group {
  border-radius: 4px !important;
  overflow: hidden !important;
}

.quantity-selector-group .btn-outline-light,
.product-detail-quantity-group .btn-outline-light,
.quantity-selector-group .js-btn-minus,
.quantity-selector-group .js-btn-plus {
  background-color: var(--mp-bg-light) !important;
  border: 1px solid var(--mp-border) !important;
  color: var(--mp-text) !important;
}

.quantity-selector-group .btn-outline-light:hover,
.product-detail-quantity-group .btn-outline-light:hover,
.quantity-selector-group .js-btn-minus:hover,
.quantity-selector-group .js-btn-plus:hover {
  background-color: var(--mp-border) !important;
  border-color: var(--mp-border) !important;
  color: var(--mp-text) !important;
}

/* SVG icons v +/- buttons (fill="#758CA3" hardkodovany — override) */
.quantity-selector-group .btn svg use,
.quantity-selector-group .btn svg path,
.product-detail-quantity-group .btn svg use,
.product-detail-quantity-group .btn svg path {
  fill: var(--mp-text) !important;
}

/* Input v strede */
.quantity-selector-group-input,
input.js-quantity-selector,
.product-detail-quantity-group .form-control {
  border: 1px solid var(--mp-border) !important;
  border-radius: 0 !important;          /* integrated look medzi tlacidlami */
  border-left: none !important;
  border-right: none !important;
  text-align: center !important;
}

/* ============================================
 *  HEADER — podla docs/design/DESIGN.md bod 3.
 *  - logo presne 45px
 *  - search input #F5F5F5, 40px vysoky, radius 4px
 *  - ikony 20px, kosik cerveny
 *  - sticky pri scrollovani
 *  - "Akcie" menu polozka cervena (ak existuje)
 * ============================================ */

/* --- Logo: PRESNE 45px vysoke vzdy --- */
.header-logo-main-img,
.header-logo-picture img {
  height: 45px !important;
  width: auto !important;
  max-height: 45px !important;
  object-fit: contain !important;
}

/* Logo container - odstrani margin/padding co rozbije zarovnanie */
.header-logo-main {
  display: flex !important;
  align-items: center !important;
}

.header-logo-col {
  display: flex !important;
  align-items: center !important;
}

/* --- Search input: jemne sive pozadie, 40px vysoky, radius 4px --- */
.header-search-input,
input.form-control.header-search-input {
  background-color: var(--mp-bg-light) !important;
  border: 1px solid var(--mp-bg-light) !important;
  border-radius: 4px !important;
  height: 40px !important;
  padding: 0 12px !important;
  font-size: 14px !important;
  color: var(--mp-text) !important;
}

.header-search-input::placeholder {
  color: var(--mp-muted) !important;
}

.header-search-input:focus {
  background-color: var(--mp-white) !important;
  border-color: var(--mp-text) !important;
  box-shadow: none !important;
}

/* Search submit button — zachovat 40px vysku aby visualne ladilo */
.header-search-btn {
  height: 40px !important;
  background-color: var(--mp-bg-light) !important;
  border: 1px solid var(--mp-bg-light) !important;
  border-left: none !important;
  border-radius: 0 4px 4px 0 !important;
  padding: 0 14px !important;
  color: var(--mp-text) !important;
}

.header-search-input {
  border-radius: 4px 0 0 4px !important;
  border-right: none !important;
}

/* --- Ikony hlavicky: kosik / ucet / menu --- */
.header-actions-btn,
.account-menu-btn,
.header-cart-btn {
  padding: 0 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* SVG ikony — fixna velkost 20x20 (default Shopware ma 24x24).
 * Pozor: inline SVG ma width/height atributy v HTML, takze treba CSS override. */
.header-actions-btn .icon,
.header-actions-btn .icon svg,
.account-menu-btn .icon,
.account-menu-btn .icon svg,
.header-cart-btn .icon,
.header-cart-btn .icon svg {
  width: 20px !important;
  height: 20px !important;
}

/* Ucet — cierna ikona. SVG <use fill="#758CA3"> v Shopware ma hardkodovany
 * fill v inline atribute, takze color: nestaci, treba fill: a aj
 * cielit na <use> a <path> elementy. */
.account-menu-btn,
.account-menu-btn .icon,
.account-menu-btn svg,
.account-menu-btn svg use,
.account-menu-btn svg path {
  color: var(--mp-text) !important;
  fill: var(--mp-text) !important;
}

/* Kosik — cervena */
.header-cart,
.header-cart-btn,
.header-cart-btn .icon,
.header-cart-btn svg,
.header-cart-btn svg use,
.header-cart-btn svg path,
.header-cart-icon .icon,
.header-cart-total {
  color: var(--mp-accent) !important;
  fill: var(--mp-accent) !important;
}

.header-cart-btn:hover,
.header-cart-btn:hover svg,
.header-cart-btn:hover svg use,
.header-cart-btn:hover svg path {
  color: var(--mp-accent-dark) !important;
  fill: var(--mp-accent-dark) !important;
}

/* Search icon button — sediva ikona aby ladila s sivym pozadim inputu */
.header-search-btn .icon,
.header-search-btn svg,
.header-search-btn svg use,
.header-search-btn svg path {
  color: var(--mp-text) !important;
  fill: var(--mp-text) !important;
}

/* --- Spodna lista (menu) — oddelovacia ciara, zarovnanie --- */
.main-navigation,
.nav.main-navigation-menu {
  border-top: 1px solid var(--mp-border) !important;
}

.main-navigation-menu .nav-link.main-navigation-link {
  color: var(--mp-text) !important;
  padding: 12px 16px !important;
}

.main-navigation-menu .nav-link.main-navigation-link:hover,
.main-navigation-menu .nav-link.main-navigation-link.active {
  color: var(--mp-accent) !important;
}

/* Specialna polozka "Akcie" — vzdy cervena (rozpoznavame podla title-u/textu).
 * Shopware nedava custom class, takze pouzijeme atribut [title="Akcie"]. */
.main-navigation-menu .nav-link[title="Akcie"],
.main-navigation-menu .nav-link[title="Akcie"] .main-navigation-link-text,
.main-navigation-menu .nav-link[title="Sale"],
.main-navigation-menu .nav-link[title="Sale"] .main-navigation-link-text {
  color: var(--mp-accent) !important;
  font-weight: 500 !important;
}

/* --- STICKY hlavicka + menu pri scrollovani ---
 * Pozor: .header-main a .nav-main su sourodenci v <body>,
 * NIE jeden vnoreny v druhom. Musime kazdy nastavit zvlast.
 * Magic number top pre nav-main odpoveda vyske .header-main
 * (top-bar ~30px + hlavny row ~58px = ~88px). Posun mensia
 * o 1px aby border kryl spoj.
 */
.header-main {
  position: sticky !important;
  top: 0 !important;
  z-index: 1031 !important;          /* nad nav-main */
  background-color: var(--mp-white) !important;
}

.nav-main,
.nav-main > .main-navigation {
  position: sticky !important;
  /* Vyska header-main je dynamicka (top-bar visibility, breakpoint, font size).
   * --mp-header-height nastavuje motoplazza-custom.js cez ResizeObserver.
   * Fallback 87px pre pripad ze JS este nebezal alebo zlyhal. */
  top: var(--mp-header-height, 87px) !important;
  z-index: 1030 !important;
  background-color: var(--mp-white) !important;
  box-shadow: 0 1px 0 var(--mp-border) !important;
}

/* Bez stickovania na velmi malych obrazovkach (mobile picka)  */
@media (max-width: 575.98px) {
  .header-main,
  .nav-main,
  .nav-main > .main-navigation {
    position: static !important;
  }
}

/* ============================================
 *  BREADCRUMB — predvolene Shopware/Bootstrap link color je modra.
 *  Forsneme cierny text + cerveny hover, aktualnu polozku stlmime.
 * ============================================ */

.breadcrumb-item .breadcrumb-link,
.cms-breadcrumb .breadcrumb-link,
nav.breadcrumb .breadcrumb-link {
  color: var(--mp-text) !important;
  text-decoration: none !important;
}

.breadcrumb-item .breadcrumb-link:hover,
.cms-breadcrumb .breadcrumb-link:hover {
  color: var(--mp-accent) !important;
}

.breadcrumb-item .breadcrumb-link.is-active,
.breadcrumb-item.active {
  color: var(--mp-muted) !important;
}

/* ============================================
 *  PRODUCT DETAIL — akciova cena, precsiarkkutie, badge
 * ============================================ */

/* Aktualna cena na PDP — cervena ked je akcia */
.product-detail-price.with-list-price {
  color: var(--mp-accent) !important;
  font-weight: 600 !important;
}

/* Povodna precsiarkkuta cena na PDP */
.product-detail-list-price,
.product-detail-list-price-wrapper {
  display: inline-block !important;
  margin-left: 8px !important;
}

.product-detail-list-price-wrapper .list-price-price,
.product-detail-list-price .list-price-price {
  color: var(--mp-hint) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  text-decoration: line-through !important;
}

/* Schovaj inline "(ušetríte X%)" text aj na PDP */
.product-detail-price-container .list-price-percentage,
.product-detail .list-price-percentage,
.list-price-badge {
  display: none !important;
}

/* ============================================
 *  PRODUCT DETAIL — manufacturer label cierny (nie cerveny)
 * ============================================ */

.product-detail-manufacturer-link,
.product-detail-manufacturer-link:hover,
.product-detail-manufacturer-name,
a.product-detail-manufacturer-link {
  color: var(--mp-text) !important;
  text-decoration: none !important;
}

.product-detail-manufacturer-link:hover {
  color: var(--mp-accent) !important;
}

/* ============================================
 *  LANGUAGE FLAGS — Shopware default ma len country-de a country-gb.
 *  Pre slovencinu doplname SVG vlajku VRATANE statneho znaku (stit s
 *  dvojkrizom na trojvrsi), inak by bola nerozoznatelna od ruskej.
 *  SVG je v base64 — generovane scriptom scripts/generate-sk-flag.py.
 * ============================================ */

.language-flag.country-sk {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5MCA2MCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+CiAgPCEtLSAzIGhvcml6b250YWxuZSBwcnVoeSAtLT4KICA8cmVjdCB3aWR0aD0iOTAiIGhlaWdodD0iNjAiIGZpbGw9IiNmZmZmZmYiLz4KICA8cmVjdCB5PSIyMCIgd2lkdGg9IjkwIiBoZWlnaHQ9IjIwIiBmaWxsPSIjMGI0ZWEyIi8+CiAgPHJlY3QgeT0iNDAiIHdpZHRoPSI5MCIgaGVpZ2h0PSIyMCIgZmlsbD0iI2VlMWMyNSIvPgogIDwhLS0gU3RhdG55IHpuYWs6IGJpZWx5IHN0aXQgcyBjZXJ2ZW5vdSB2eXBsbm91LCBkdm9qa3Jpem9tIGEgdHJvanZyc2ltLgogICAgICAgUG96aWNpYTogdmxhdm8sIHZlcnRpa2FsbmUgbWllcm5lIG5hZCBzdHJlZC4gU2lya2Egc3RpdHUgfjI1IGplZG5vdGllay4gLS0+CiAgPCEtLSBCaWx5IHJhbWlrIHN0aXR1IC0tPgogIDxwYXRoIGQ9Ik0gMTQgMTIgTCAzOCAxMiBMIDM4IDMyIEMgMzggNDIsIDI2IDQ3LCAyNiA0NyBDIDI2IDQ3LCAxNCA0MiwgMTQgMzIgWiIKICAgICAgICBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMSIvPgogIDwhLS0gQ2VydmVuYSB2eXBsbiBzdGl0dSAtLT4KICA8cGF0aCBkPSJNIDE2IDE0IEwgMzYgMTQgTCAzNiAzMiBDIDM2IDQwLCAyNiA0NSwgMjYgNDUgQyAyNiA0NSwgMTYgNDAsIDE2IDMyIFoiCiAgICAgICAgZmlsbD0iI2VlMWMyNSIvPgogIDwhLS0gQmlseSBkdm9qa3JpejogdmVydGlrYWxueSBrbWVuICsgZHZlIGhvcml6b250YWxuZSByYW1lbmEgLS0+CiAgPHJlY3QgeD0iMjQiIHk9IjE3IiB3aWR0aD0iNCIgaGVpZ2h0PSIyMCIgZmlsbD0iI2ZmZmZmZiIvPgogIDxyZWN0IHg9IjIwIiB5PSIyMCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjMiIGZpbGw9IiNmZmZmZmYiLz4KICA8cmVjdCB4PSIxOCIgeT0iMjYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIzIiBmaWxsPSIjZmZmZmZmIi8+CiAgPCEtLSBNb2RyZSB0cm9qdnJzaWUgcG9kIGtyaXpvbSAtLT4KICA8cGF0aCBkPSJNIDE4IDM2IEMgMjAgMzMsIDI0IDMzLCAyNiAzNiBDIDI4IDMzLCAzMiAzMywgMzQgMzYgTCAzNCA0MCBMIDE4IDQwIFoiCiAgICAgICAgZmlsbD0iIzBiNGVhMiIvPgo8L3N2Zz4=") !important;
  background-size: cover !important;
  background-position: center !important;
  border-color: #999 !important;
}

/* ============================================
 *  BRUTE FORCE PRODUCT CARD HEIGHT FIX (na konci sub broru = cascade priority)
 *  Riesi pripad ked sa Shopware default .product-description (display:-webkit-box)
 *  zlyhal a zobrazil cely text produktu, naťahujuc kartu o ~600px.
 *  Tato sekcia POZASTAVUJE vsetky balasty v product-info a uchova len:
 *  image -> manufacturer-logo (chip) -> name -> price -> Detail button.
 * ============================================ */

body .cms-listing-row .cms-listing-col,
body .cms-listing-row .cms-listing-col > article,
body .cms-listing-row .product-box,
body .cms-listing-row .card.product-box {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

body .cms-listing-row .product-box,
body .cms-listing-row .card.product-box {
  display: flex !important;
  flex-direction: column !important;
}

body .cms-listing-row .product-image-wrapper {
  flex: 0 0 auto !important;
  height: auto !important;
}

body .cms-listing-row .product-info {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 12px !important;
  display: block !important;            /* block aby flex nezdiskreditoval poradie */
}

body .cms-listing-row .product-info > * {
  flex: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 4px !important;
}

body .cms-listing-row .product-info > .product-name {
  margin-bottom: 8px !important;
}

body .cms-listing-row .product-info > .product-price-wrapper,
body .cms-listing-row .product-info > .product-price-info,
body .cms-listing-row .product-info > .product-price-unit {
  margin-bottom: 10px !important;
}

body .cms-listing-row .product-action {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body .cms-listing-row .product-action .btn,
body .cms-listing-row .product-action .btn-detail,
body .cms-listing-row .product-action .btn-light {
  width: 100% !important;
}

/* Bootstrap row stretch — karty rovnako vysoke v rade.
 * Stretch je default ale predtym sme to zmenili na flex-start lebo
 * Shopware mal height:100% co rozsovalo karty. Teraz overridujeme
 * height:100% inde a stretch zaisti rovnaku vysku. */
body .cms-listing-row.row,
body .row.cms-listing-row {
  align-items: stretch !important;
}
body .cms-listing-row.row > [class*="col-"],
body .row.cms-listing-row > [class*="col-"] {
  align-self: stretch !important;
  display: flex !important;
}
/* Card column flex aby card mohla mat height:100% */
body .cms-listing-col {
  display: flex !important;
  flex-direction: column !important;
}

/* Skry akýkoľvek prázdny placeholder + dlhý popis produktu ktorý zvysuje kartu */
body .cms-listing-row .product-description,
body .cms-listing-row .product-variant-characteristics,
body .cms-listing-row .product-rating,
body .cms-listing-row .product-rating:empty {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ============================================
 *  HOMEPAGE GRID — fix vysky kariet po prepnuti slider -> grid.
 *  Stare pravidla `.cms-element-product-slider .product-info { flex: 1 1 auto }`
 *  a `.product-action { margin-top: auto }` zostavajuce z carousel mody
 *  rozsiruju info section. CSS Grid navyse stretchuje karty na vysku
 *  najvyssej v rade. Tieto pravidla to vypinaju pre homepage sekcie.
 * ============================================ */

/* Grid kontainer — karty maju natural vysku, ziadny equal-height stretch */
.homepage-bestseller-section .cms-element-product-slider .tns-slider,
.homepage-novinky-section .cms-element-product-slider .tns-slider {
  align-items: start !important;
  align-content: start !important;
}

/* Grid item (tns-item) — natural vyska bez stretch */
.homepage-bestseller-section .tns-item,
.homepage-novinky-section .tns-item {
  align-self: start !important;
  height: auto !important;
}

/* Karta vnutri homepage gridu — natural vyska, NIE 100% */
.homepage-bestseller-section .tns-item .card.product-box,
.homepage-novinky-section .tns-item .card.product-box,
.homepage-bestseller-section .product-slider-item .card.product-box,
.homepage-novinky-section .product-slider-item .card.product-box {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

.homepage-bestseller-section .tns-item .card-body,
.homepage-novinky-section .tns-item .card-body,
.homepage-bestseller-section .product-slider-item .card-body,
.homepage-novinky-section .product-slider-item .card-body {
  height: auto !important;
  min-height: 0 !important;
}

/* Product-info — natural vyska, NIE flex:1 1 auto co expanduje prazdne miesto */
.homepage-bestseller-section .cms-element-product-slider .product-info,
.homepage-novinky-section .cms-element-product-slider .product-info {
  flex: 0 0 auto !important;
  height: auto !important;
  display: block !important;
}

/* Action button — hned pod cenou, NIE margin-top:auto co posunie nadol */
.homepage-bestseller-section .cms-element-product-slider .product-action,
.homepage-novinky-section .cms-element-product-slider .product-action {
  margin-top: 0 !important;
  position: static !important;
}

/* Skry popis a variant chars aj v homepage karte (pre istotu) */
.homepage-bestseller-section .product-description,
.homepage-bestseller-section .product-variant-characteristics,
.homepage-novinky-section .product-description,
.homepage-novinky-section .product-variant-characteristics {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* ============================================
 *  FINAL CARD HEIGHT FIX — fixna vyska obrazka.
 *  aspect-ratio:1/1 + width:100% pri sirokom kolone (col-md-3 ~360px)
 *  vyvolal stvorec 360px ktory ignoroval max-height clamp v niektorych
 *  browsorch. Riesime fixed height = predvidatelne.
 *  Image-wrapper 220px, image vnutri max 90% (cca 200px helmu).
 *  Karta total: 220 + ~140 info = ~360px.
 * ============================================ */

body .product-box .product-image-wrapper,
body .cms-listing-col .product-image-wrapper,
body .cms-listing-row .product-image-wrapper,
body .homepage-bestseller-section .product-image-wrapper,
body .homepage-novinky-section .product-image-wrapper,
body .cms-element-product-slider .product-image-wrapper {
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  width: 100% !important;
  aspect-ratio: auto !important;            /* zrusi 1/1 ratio */
  padding: 0 !important;
  background: var(--mp-bg-light) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  /* KRITICKE: Shopware default .product-image-wrapper { flex-grow: 1 }
   * v flex card-body roztiahne element nad jeho fixnu vysku!
   * Musime vypnut flex-grow + flex-basis. */
  flex-grow: 0 !important;
  flex-shrink: 0 !important;
  flex-basis: 220px !important;
  margin-bottom: 0 !important;
  position: relative !important;
}

body .product-box .product-image-wrapper img,
body .product-box .product-image {
  max-width: 90% !important;
  max-height: 90% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
}

/* Cela karta — natural vyska (ZIADNY max-height!).
 * max-height predtym orezavalo cenu/tlacidlo. align-items:flex-start
 * (uz vyssie) zabezpeci ze karty nebudu rovnako vysoke (stretch). */
body .cms-listing-col .product-box,
body .cms-listing-col .card.product-box,
body .homepage-bestseller-section .tns-item .card.product-box,
body .homepage-novinky-section .tns-item .card.product-box,
body .cms-element-product-slider .tns-item .card.product-box {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

/* Card-body — natural height */
body .cms-listing-col .card.product-box .card-body,
body .homepage-bestseller-section .tns-item .card-body,
body .homepage-novinky-section .tns-item .card-body,
body .cms-element-product-slider .tns-item .card-body {
  height: auto !important;
  min-height: 0 !important;
}

/* DIAGNOSTIKA Z KONZOLY:
 * .product-rating: 25px aj ked prazdny — Shopware ho rendre s whitespace,
 *                  ':empty' nezachyti. Force display:none vzdy.
 * .product-price-info: 115px je 3x viac nez by malo byt — zatial neviem preco,
 *                  budem riesit po dalsej diagnostike.
 */
body .product-box .product-rating,
body .cms-listing-row .product-rating,
body .homepage-bestseller-section .product-rating,
body .homepage-novinky-section .product-rating {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* DIAGNOSTIKA Z KONZOLY:
 * .product-price-unit: 36px prazdny (Shopware render <p> s whitespace, :empty nepomocha)
 * .product-price-wrapper: 79px lebo "od" + cena na dvoch riadkoch (whitespace breaks)
 *
 * Force: price-unit hidden, price-wrapper compact inline + collapse whitespace.
 */
body .product-box .product-price-unit,
body .cms-listing-col .product-price-unit,
body .homepage-bestseller-section .product-price-unit,
body .homepage-novinky-section .product-price-unit {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .product-box .product-price-wrapper,
body .cms-listing-col .product-price-wrapper,
body .homepage-bestseller-section .product-price-wrapper,
body .homepage-novinky-section .product-price-wrapper {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.4 !important;
  white-space: normal !important;
  word-spacing: 0 !important;
}

/* "od" prefix + cena na jednom riadku — nie 2-3 riadky */
body .product-box .product-price-wrapper > * {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* product-cheapest-price je prazdny ale block — skry */
body .product-box .product-cheapest-price:empty,
body .product-box .product-cheapest-price {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Cheapest sa zobrazi iba ak ma content (with-list-price atd) — override pre with-list-price */
body .product-box .product-cheapest-price.with-list-price,
body .product-box .product-cheapest-price.with-regulation-price,
body .product-box .product-cheapest-price.with-from-price {
  display: inline !important;
  height: auto !important;
}

/* product-price-info kompaktny */
body .product-box .product-price-info,
body .cms-listing-col .product-price-info,
body .homepage-bestseller-section .product-price-info,
body .homepage-novinky-section .product-price-info {
  margin: 0 0 10px 0 !important;
  padding: 0 !important;
}

/* Cena samotna inline */
body .product-box .product-price,
body .product-box span.product-price {
  display: inline !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
}

/* List price (precsiarknuta) inline */
body .product-box .list-price {
  display: inline !important;
  margin-left: 6px !important;
}

/* ============================================
 *  MOBILNÝ FIX: manufacturer chip menší na malých obrazovkách.
 *  Na phone (col-12, ~360px karta) je 80px chip relativne velky.
 * ============================================ */
@media (max-width: 575.98px) {
  body .product-box .product-manufacturer-logo {
    max-width: 56px !important;
    min-height: 16px !important;
    padding: 3px 5px !important;
    top: 6px !important;
    left: 6px !important;
    border-radius: 2px !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08) !important;
  }
  body .product-box .product-manufacturer-logo img {
    height: 10px !important;
    max-width: 40px !important;
    max-height: 14px !important;
  }
  body .product-box .product-manufacturer-logo .text-fallback {
    font-size: 9px !important;
    letter-spacing: 0.5px !important;
  }

  /* Aj akciovy badge na mobile mensi */
  body .product-box .product-badge-discount {
    font-size: 10px !important;
    padding: 3px 6px !important;
    min-width: 32px !important;
  }
}

/* Stredne tablet (576-991px): mensia velkost ale stale citatelna */
@media (min-width: 576px) and (max-width: 991.98px) {
  body .product-box .product-manufacturer-logo {
    max-width: 64px !important;
  }
  body .product-box .product-manufacturer-logo img {
    height: 12px !important;
    max-width: 48px !important;
  }
}

/* ============================================
 *  COLOR SWATCHES — Nike-style dots pod cenou.
 *  JS naplni .product-color-swatches kontainer dotmi.
 * ============================================ */

.product-color-swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin: 0 0 10px 0;
  min-height: 18px;
}

.product-color-swatches:empty {
  display: none;
}

.product-color-swatch {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1px solid #d0d0d0;
  background-color: #ccc;
  padding: 0;
  cursor: pointer;
  transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
  display: inline-block;
  box-sizing: border-box;
  position: relative;
}

.product-color-swatch:hover {
  transform: scale(1.15);
  border-color: var(--mp-text);
  box-shadow: 0 0 0 1px var(--mp-white), 0 0 0 2px var(--mp-text);
}

/* Cache-bust hard guard: ak nejaky starsi cached HTML obsahuje swatch-placeholder
 * spans v swatches kontaineri (predoslá verzia Twig render-u), skry ich.
 * Real swatches su <button class="product-color-swatch"> — placeholdery sa
 * teraz nepouzivaju (zostavaju iba v containerí s visibility:hidden). */
.product-color-swatches .swatch-placeholder {
  display: none !important;
}
/* ALE: pre kartu BEZ variants (container has visibility:hidden) ponechame
 * jeden placeholder na zachovanie vysky riadku v karte. */
.product-color-swatches[style*="visibility:hidden"] .swatch-placeholder,
.product-color-swatches[style*="visibility: hidden"] .swatch-placeholder {
  display: inline-block !important;
}

/* '+N' indikator ako klikatelny link na PDP — odlisne styly od dot-iek
 * aby user nevnimal ako "neaktivny dot". */
a.product-color-swatch-more {
  font-size: 11px !important;
  color: var(--mp-muted) !important;
  margin-left: 4px !important;
  line-height: 18px !important;
  text-decoration: none !important;
  cursor: pointer;
  font-weight: 500;
}
a.product-color-swatch-more:hover {
  color: var(--mp-text) !important;
  text-decoration: underline !important;
}

.product-color-swatch-more {
  font-size: 11px;
  color: var(--mp-muted);
  margin-left: 4px;
  line-height: 18px;
}

/* Mensi swatches na mobile */
@media (max-width: 575.98px) {
  .product-color-swatch {
    width: 14px;
    height: 14px;
  }
  .product-color-swatches {
    gap: 4px;
    min-height: 14px;
  }
  .product-color-swatch-more {
    font-size: 10px;
    line-height: 14px;
  }
}

/* Server-side rendered swatches (z customFields.mp_swatches v Twig).
 * Ziadne pseudo-element placeholdery — kazdy <button> je realna farba.
 * Karty bez variants maju style="visibility:hidden" priamo v Twig. */
.product-color-swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin: 0 0 10px 0;
  min-height: 18px;
}

/* Detail tlacidlo na dne info section (rovnaka pozicia naprieč kartami)
 * BEZ min-height na info section (natahovalo karty zbytocne velke). */
body .cms-listing-row .product-info,
body .homepage-bestseller-section .product-info,
body .homepage-novinky-section .product-info,
body .cms-element-product-slider .product-info {
  display: flex !important;
  flex-direction: column !important;
}

body .cms-listing-row .product-info .product-action,
body .homepage-bestseller-section .product-info .product-action,
body .homepage-novinky-section .product-info .product-action,
body .cms-element-product-slider .product-info .product-action {
  margin-top: auto !important;
}

/* ============================================
 *  MOBIL: jednotna vyska kariet + image-wrapper pevny rozmer
 *  (Bootstrap col-sm-6 = 2 per row, kazdy ma fixny image)
 * ============================================ */
@media (max-width: 767.98px) {
  body .product-box .product-image-wrapper,
  body .cms-listing-col .product-image-wrapper,
  body .homepage-bestseller-section .product-image-wrapper,
  body .homepage-novinky-section .product-image-wrapper {
    height: 180px !important;
    min-height: 180px !important;
    max-height: 180px !important;
    flex: 0 0 180px !important;
    aspect-ratio: auto !important;
  }
  body .product-box .product-image-wrapper img,
  body .product-box .product-image {
    max-height: 90% !important;
    max-width: 90% !important;
  }
  /* Smaller dots na mobile aby sa zmestili */
  body .product-color-swatch {
    width: 14px !important;
    height: 14px !important;
  }
  body .product-color-swatches { gap: 4px !important; }
}

/* ============================================
 *  MOBILE BANNER + KARTY — finálne dolaďovanie
 * ============================================ */
@media (max-width: 767.98px) {
  /* Sale banner — text + tlačidlo pod sebou (place vedľa) */
  .homepage-sale-banner-inner {
    flex-direction: column !important;
    text-align: center !important;
    padding: 20px 16px !important;
    gap: 12px !important;
  }
  .homepage-sale-banner-text h2 {
    font-size: 20px !important;
  }
  .homepage-sale-banner-text p {
    font-size: 13px !important;
  }
  .homepage-sale-banner-btn {
    padding: 10px 20px !important;
    font-size: 13px !important;
  }

  /* Karty mobil — menší image (180px), card body kompaktnejší */
  body .product-box .product-image-wrapper {
    height: 180px !important;
    min-height: 180px !important;
    max-height: 180px !important;
    flex: 0 0 180px !important;
  }
  body .product-box .product-info {
    padding: 10px !important;
  }
  body .product-box .product-name {
    font-size: 13px !important;
  }
  body .product-box .product-price {
    font-size: 14px !important;
  }
  /* Detail tlačidlo kompaktnejšie */
  body .product-box .product-action .btn,
  body .product-box .product-action .btn-detail {
    padding: 8px 12px !important;
    font-size: 13px !important;
  }
}

/* Phone landscape / small tablet — medzi 576-767 */
@media (max-width: 575.98px) {
  body .product-box .product-image-wrapper {
    height: 160px !important;
    min-height: 160px !important;
    max-height: 160px !important;
    flex: 0 0 160px !important;
  }
}

/* ============================================
 * KARTA EQUAL-HEIGHT cez rezervaciu miesta v subblokov
 * Princip: namiesto force celkovej vysky karty (zlemy obsah),
 * rezervujeme priestor v price-info a swatches sekciach tak,
 * aby karty so SALE / +N farbami zaberali rovnaku vysku ako bez.
 * + tlacidlo Detail/Pridat priklepene na spodok flexom.
 * ============================================ */

/* Skry hero obrazok na mobile — nie je optimalizovany */
@media (max-width: 767.98px) {
  html body .cms-section.pos-0 { display: none !important; }
}

/* A) PRICE BLOCK — rezervovany priestor pre line-through stara cena.
 *    Bez sale: ~24px (jedna cena). So sale: ~48px (cena + prečiarknuta cena).
 *    Pouzivame 48px aby karty bez sale mali rovnaku vysku ako karty so sale. */
html body .product-box .product-price-info,
html body .cms-listing-row .card.product-box .product-price-info,
html body .cms-listing-col .card.product-box .product-price-info,
html body .cms-element-product-slider .card.product-box .product-price-info {
  min-height: 48px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  margin: 0 0 8px 0 !important;
}

/* B) SWATCHES BLOCK — rezervovany priestor pre +N indicator.
 *    Bez +N: ~18px (riadok farieb). S +N: ~28px (farby + link text).
 *    Pouzivame 32px aby karty bez +N mali rovnaku vysku. */
html body .product-box .product-color-swatches,
html body .cms-listing-row .card.product-box .product-color-swatches,
html body .cms-listing-col .card.product-box .product-color-swatches,
html body .cms-element-product-slider .card.product-box .product-color-swatches {
  min-height: 32px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 0 12px 0 !important;
}

/* C) PRODUCT-INFO flex column — aby margin-top:auto na actione fungoval.
 *    Tymto prepiseme stare flex:0 0 auto pravidla v listingu. */
html body .product-box .product-info,
html body .cms-listing-row .card.product-box .product-info,
html body .cms-listing-col .card.product-box .product-info,
html body .cms-element-product-slider .card.product-box .product-info {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  height: auto !important;
}

/* C) ACTION BUTTON na spodok karty */
html body .product-box .product-action,
html body .cms-listing-row .card.product-box .product-action,
html body .cms-listing-col .card.product-box .product-action,
html body .cms-element-product-slider .card.product-box .product-action {
  margin-top: auto !important;
  flex: 0 0 auto !important;
}

/* CARD-BODY musi byt flex column 100% vysky aby flex hierarchia fungovala */
html body .product-box .card-body,
html body .cms-listing-row .card.product-box .card-body,
html body .cms-listing-col .card.product-box .card-body,
html body .cms-element-product-slider .card.product-box .card-body {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  flex: 1 1 auto !important;
}

/* CARD musi mat flex column + 100% vysky parent col */
html body .card.product-box,
html body .cms-listing-row .card.product-box,
html body .cms-listing-col .card.product-box,
html body .cms-element-product-slider .card.product-box {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

/* === MOBILE PRODUCT CARD FIX ===
 * .cms-listing-col .card.product-box.box-standard má špecificitu (0,4,0)
 * ktorá prekonáva predchádzajúce opravy. Používame (0,4,2) = cms-listing-col + 3 classes + 2 elementy.
 */
@media (max-width: 767.98px) {
  /* Specificita (0,4,2) > (0,4,0) — prekonáva .cms-listing-col .card.product-box.box-standard */
  html body .cms-listing-col .card.product-box.box-standard,
  html body .cms-listing-col .card.product-box.box-minimal {
    height: auto !important;
    min-height: 200px !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Specificita (0,3,2) — prekonáva .cms-listing-row .card-body (0,2,0) */
  html body .cms-listing-col .card-body,
  html body .cms-listing-row .card-body {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
  }

  /* Image wrapper — fixna vyska namiesto aspect-ratio ktory kolabuje */
  html body .cms-listing-col .product-image-wrapper,
  html body .cms-listing-row .product-image-wrapper {
    height: 150px !important;
    min-height: 150px !important;
    max-height: 150px !important;
    flex: 0 0 150px !important;
    aspect-ratio: unset !important;
    width: 100% !important;
    overflow: hidden !important;
  }

  html body .cms-listing-col {
    display: flex !important;
    flex-direction: column !important;
  }

  html body .row.cms-listing-row {
    align-items: stretch !important;
  }
}

/* === FITMENT BADGE NA PRODUKTE ===
 * Zobrazuje pre aké motorky je produkt určený
 */
.product-fitment-badge {
  font-size: 0.72rem;
  color: #555;
  margin: 2px 0 5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
}
.product-fitment-badge .fitment-label {
  font-weight: 700;
  color: #d84315;
  margin-right: 2px;
}
.product-fitment-badge .fitment-more {
  display: inline-block;
  background: #f0f0f0;
  border-radius: 3px;
  padding: 0 4px;
  font-size: 0.68rem;
  color: #666;
  vertical-align: middle;
}

/* Popis (description) na kartičke v listingu — skryjeme lebo tam chodí HTML fitment blok */
.cms-listing-col .product-description,
.cms-element-product-slider .product-description {
  display: none;
}

/* Fitment blok na detaile produktu */
.mp-fitment-block {
  background: #f8f9fa;
  border-left: 3px solid #d84315;
  padding: 10px 14px;
  margin: 12px 0 18px;
  border-radius: 0 4px 4px 0;
}
.mp-fitment-block strong {
  display: block;
  font-size: 0.85rem;
  color: #333;
  margin-bottom: 6px;
}
.mp-fitment-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.mp-fitment-list li {
  font-size: 0.82rem;
  color: #444;
  padding: 2px 0;
  border-bottom: 1px solid #ececec;
}
.mp-fitment-list li:last-child {
  border-bottom: none;
}

/* ============================================
 *  CARD HEIGHT FINAL FIX — tlacidlo vzdy na spodku karty
 *  Specificita 0,5,1+ bije POZASTAVUJE sekciu (0,2,1 / 0,2,2).
 *  Umiestnenie: KONIEC SUBORU = najvysssia cascade priorita.
 *
 *  Retazec:
 *  .cms-listing-col (flex col) → .product-box (flex:1) → .card-body (flex:1) → .product-info (flex:1) → .product-action (margin-top:auto)
 * ============================================ */

/* card-body musi byt flex column a vyplnit product-box */
body .cms-listing-row .cms-listing-col .card.product-box > .card-body {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  height: auto !important;
}

/* product-info musi byt flex column a vyplnit card-body
   (POZASTAVUJE ho nastavuje na display:block — toto to prepisuje) */
body .cms-listing-row .cms-listing-col .card.product-box > .card-body > .product-info {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
}

/* product-action pushnuty na spodok pomocou margin-top:auto
   (POZASTAVUJE > * nastavuje margin-top:0 — toto prepisuje) */
body .cms-listing-row .cms-listing-col .card.product-box > .card-body > .product-info > .product-action {
  margin-top: auto !important;
}

/* ============================================
 *  MANUFACTURER LOGO CHIP — size fix
 *  POZASTAVUJE sekcia (riadok 1733) prepisuje img pravidla cez
 *  "body .product-box .product-image-wrapper img { height: auto; max-height: 90% }"
 *  Toto pravidlo ma rovnaku specifiku ale pride NESKOR = vyhrava.
 * ============================================ */
body .product-box .product-manufacturer-logo img {
  height: 16px !important;
  max-width: 60px !important;
  max-height: 20px !important;
  width: auto !important;
  object-fit: contain !important;
  display: block !important;
}
body .product-box .product-manufacturer-logo {
  max-height: 28px !important;
  overflow: hidden !important;
}

/* ============================================
 *  HOMEPAGE ROVNAKÁ VÝŠKA KARIET
 *  Problem: align-items:start (riadok ~1629) zabraňuje grid stretch.
 *  Fix: prepisujeme na stretch cez vyššiu špecificitu (html body = +2 elements).
 *  Reťazec: tns-slider(stretch) → tns-item(flex col) → card(100%) → card-body(flex:1) → product-info(flex:1) → product-action(margin-top:auto)
 * ============================================ */

/* 1. Grid kontainer — stretch items na výšku radu */
html body .homepage-bestseller-section .cms-element-product-slider .tns-slider,
html body .homepage-novinky-section .cms-element-product-slider .tns-slider {
  align-items: stretch !important;
  align-content: stretch !important;
}

/* 2. Grid item (tns-item) — stretch + flex container aby karta vedela výšku */
html body .homepage-bestseller-section .tns-item,
html body .homepage-novinky-section .tns-item {
  align-self: stretch !important;
  display: flex !important;
  flex-direction: column !important;
}

/* 3. Karta — vyplni tns-item výšku */
html body .homepage-bestseller-section .tns-item .card.product-box,
html body .homepage-novinky-section .tns-item .card.product-box {
  height: 100% !important;
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
}
