:root {
  --cs-blue-dark: #25445a;
  --cs-blue-cta: #2f6f8f;
  --cs-beige: #f3eadc;
  --cs-muted: #746f5f;
}

/* odstráni testovací nápis */
body::before {
  display: none !important;
  content: none !important;
}

/* základ */
.products,
.products-block,
.category-products,
#products {
  font-family: Ubuntu, Arial, sans-serif !important;
}

/* 3 produkty na desktop */
@media (min-width: 992px) {
  .products,
  .products-block,
  .category-products,
  #products {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
    row-gap: 28px !important;
  }

  .products > div,
  .products-block > div,
  .category-products > div,
  #products > div {
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
}

/* 2 produkty na tablet a mobil */
@media (max-width: 991px) {
  .products,
  .products-block,
  .category-products,
  #products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    row-gap: 22px !important;
  }

  .products > div,
  .products-block > div,
  .category-products > div,
  #products > div {
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
}

/* hlavný produktový box - iba jeden hlavný okraj */
.product,
.p,
[data-micro="product"] {
  background: #ffffff !important;
  border: 1px solid var(--cs-beige) !important;
  border-radius: 28px !important;
  padding: 14px !important;
  box-shadow: none !important;
  outline: none !important;
  overflow: hidden !important;
}

/* hover bez zdvojenia okraja */
.product:hover,
.p:hover,
[data-micro="product"]:hover {
  border: 1px solid var(--cs-beige) !important;
  box-shadow: none !important;
  outline: none !important;
  transform: translateY(-4px) !important;
}

/* odstránenie vnútorných okrajov, NIE z obrázkového boxu */
.product-inner,
.p-in,
.p-in-in,
.p-bottom,
.product-bottom,
.product-top,
.product-body,
.product-caption,
.product-content,
.product-card,
.product-card-inner,
.product .text,
.p .text,
.product .description,
.p .description {
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* obrázkový box - samostatný jeden okraj + 1:1 */
.image,
.p-image,
.product-image,
.p-main-image,
.thumbnail {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  height: auto !important;
  min-height: 0 !important;
  background: #ffffff !important;
  border: 1px solid var(--cs-beige) !important;
  border-radius: 22px !important;
  box-shadow: none !important;
  outline: none !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-bottom: 16px !important;
}

/* hover fotky bez zmeny okraja */
.image:hover,
.p-image:hover,
.product-image:hover,
.p-main-image:hover,
.thumbnail:hover {
  border: 1px solid var(--cs-beige) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* klikateľná plocha fotky */
.image a,
.p-image a,
.product-image a,
.p-main-image a,
.thumbnail a {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}

/* samotná fotka - veľká hneď, bez hover zväčšenia */
.product img,
.p img,
[data-micro="product"] img,
.image img,
.p-image img,
.product-image img,
.p-main-image img,
.thumbnail img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
  margin: auto !important;
  transform: none !important;
  box-shadow: none !important;
  outline: none !important;
}

/* bez zoomu na hover */
.product:hover .image img,
.product:hover .p-image img,
.product:hover .product-image img,
.p:hover .image img,
.p:hover .p-image img,
.p:hover .product-image img,
[data-micro="product"]:hover .image img,
[data-micro="product"]:hover .p-image img {
  transform: none !important;
}

/* názvy */
.name,
.p-name,
.product-name,
.name a,
.p-name a,
.product-name a,
[data-micro="name"],
[data-micro="product"] h3,
[data-micro="product"] h4 {
  color: var(--cs-blue-dark) !important;
  font-size: 23px !important;
  line-height: 1.12 !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

/* ceny */
.price,
.prices,
.price-final,
.price-final-holder,
[data-micro="price"] {
  color: var(--cs-blue-dark) !important;
  font-size: 25px !important;
  line-height: 1.1 !important;
  font-weight: 800 !important;
}

/* skrytie kódu produktu */
.p-code,
.product-code {
  display: none !important;
}

/* štítky */
.flag,
.flag-action,
.flag-tip,
.flag-new,
.flag-discount {
  background: var(--cs-beige) !important;
  color: var(--cs-blue-dark) !important;
  border: 1px solid var(--cs-beige) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}

/* tlačidlá */
.btn,
.btn-detail,
.btn-cart,
.add-to-cart-button,
.button-detail,
.p-tools a,
.p-tools button,
.tools a,
.tools button {
  background: var(--cs-blue-cta) !important;
  border-color: var(--cs-blue-cta) !important;
  color: #ffffff !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

.btn:hover,
.btn-detail:hover,
.btn-cart:hover,
.add-to-cart-button:hover,
.button-detail:hover,
.p-tools a:hover,
.p-tools button:hover,
.tools a:hover,
.tools button:hover {
  background: var(--cs-blue-dark) !important;
  border-color: var(--cs-blue-dark) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

/* mobil */
@media (max-width: 520px) {
  .product,
  .p,
  [data-micro="product"] {
    border-radius: 18px !important;
    padding: 8px !important;
  }

  .product:hover,
  .p:hover,
  [data-micro="product"]:hover {
    transform: none !important;
  }

  .image,
  .p-image,
  .product-image,
  .p-main-image,
  .thumbnail {
    border: 1px solid var(--cs-beige) !important;
    border-radius: 14px !important;
    margin-bottom: 12px !important;
  }

  .name,
  .p-name,
  .product-name,
  .name a,
  .p-name a,
  .product-name a,
  [data-micro="name"],
  [data-micro="product"] h3,
  [data-micro="product"] h4 {
    font-size: 17px !important;
    line-height: 1.15 !important;
  }

  .price,
  .prices,
  .price-final,
  .price-final-holder,
  [data-micro="price"] {
    font-size: 18px !important;
  }

  .product img,
  .p img,
  [data-micro="product"] img,
  .image img,
  .p-image img,
  .product-image img,
  .p-main-image img,
  .thumbnail img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
  }
}
/* FINAL: odstránenie dvojitého okraja boxu + modrý kruh TIP NA DARČEK */

/* hlavný okraj ostáva iba na vonkajšej karte */
.product,
.p,
[data-micro="product"] {
  border: 1px solid #f3eadc !important;
  border-radius: 28px !important;
  box-shadow: none !important;
  outline: none !important;
}

/* hover nemení okraj */
.product:hover,
.p:hover,
[data-micro="product"]:hover {
  border: 1px solid #f3eadc !important;
  box-shadow: none !important;
  outline: none !important;
}

/* všetky vnútorné vrstvy bez okraja */
.product-inner,
.p-in,
.p-in-in,
.p-bottom,
.product-bottom,
.product-top,
.product-body,
.product-caption,
.product-content,
.product-card,
.product-card-inner,
.products .product > div,
.products .p > div,
.products-block .product > div,
.products-block .p > div,
.category-products .product > div,
.category-products .p > div,
[data-micro="product"] > div {
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}

/* pseudo-prvky často robia druhý rámik */
.product::before,
.product::after,
.p::before,
.p::after,
[data-micro="product"]::before,
[data-micro="product"]::after,
.product-inner::before,
.product-inner::after,
.p-in::before,
.p-in::after,
.p-in-in::before,
.p-in-in::after {
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  background: transparent !important;
}

/* okraj fotky ponechať */
.image,
.p-image,
.product-image,
.p-main-image,
.thumbnail {
  border: 1px solid #f3eadc !important;
  border-radius: 22px !important;
  box-shadow: none !important;
  outline: none !important;
}

/* odkazy a vnútorné prvky nesmú robiť ďalší rámik */
.product a,
.p a,
[data-micro="product"] a {
  box-shadow: none !important;
  outline: none !important;
}

/* TIP NA DARČEK ako modrý kruh */
.flag,
.flag-action,
.flag-tip,
.flag-new,
.flag-discount {
  box-shadow: none !important;
}

/* cielime najmä tip/darčekové štítky */
.flag-tip,
.flag.flag-tip,
.flags .flag-tip,
.flags-extra .flag-tip {
  width: 64px !important;
  height: 64px !important;
  min-width: 64px !important;
  min-height: 64px !important;
  padding: 8px !important;
  border-radius: 999px !important;
  background: #2f6f8f !important;
  border: 1px solid #2f6f8f !important;
  color: #ffffff !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  font-size: 9px !important;
  line-height: 1.05 !important;
  font-weight: 800 !important;
  letter-spacing: 0.3px !important;
  text-transform: uppercase !important;
}

/* ak Shoptet používa len všeobecnú triedu .flag, nech bežné zľavy ostanú béžové */
.flag:not(.flag-tip) {
  background: #f3eadc !important;
  color: #25445a !important;
  border: 1px solid #f3eadc !important;
  border-radius: 999px !important;
}

/* mobil */
@media (max-width: 520px) {
  .product,
  .p,
  [data-micro="product"] {
    border: 1px solid #f3eadc !important;
    border-radius: 18px !important;
  }

  .image,
  .p-image,
  .product-image,
  .p-main-image,
  .thumbnail {
    border: 1px solid #f3eadc !important;
    border-radius: 14px !important;
  }

  .flag-tip,
  .flag.flag-tip,
  .flags .flag-tip,
  .flags-extra .flag-tip {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    font-size: 8px !important;
    padding: 6px !important;
  }
}
/* TIP NA DARČEK - modrý pohyblivý kruh bez čiarok */

.flag-tip,
.flag.flag-tip,
.flags .flag-tip,
.flags-extra .flag-tip {
  position: absolute !important;
  top: 18px !important;
  left: 18px !important;
  z-index: 10 !important;

  width: 66px !important;
  height: 66px !important;
  min-width: 66px !important;
  min-height: 66px !important;
  max-width: 66px !important;
  max-height: 66px !important;

  padding: 8px !important;
  margin: 0 !important;
  border-radius: 999px !important;

  background: #2f6f8f !important;
  border: 1px solid #2f6f8f !important;
  color: #ffffff !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  text-align: center !important;
  font-size: 9px !important;
  line-height: 1.05 !important;
  font-weight: 800 !important;
  letter-spacing: 0.2px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;

  box-shadow: none !important;
  outline: none !important;
  overflow: hidden !important;

  animation: csGiftFloat 2.8s ease-in-out infinite !important;
}

/* odstránenie čiarok / pseudo-prvkov zo štítku */
.flag-tip::before,
.flag-tip::after,
.flag.flag-tip::before,
.flag.flag-tip::after,
.flags .flag-tip::before,
.flags .flag-tip::after,
.flags-extra .flag-tip::before,
.flags-extra .flag-tip::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* rodič fotky musí vedieť držať absolútny badge */
.image,
.p-image,
.product-image,
.p-main-image,
.thumbnail {
  position: relative !important;
  overflow: hidden !important;
}

/* jemný pohyb, stále ďaleko od okraja */
@keyframes csGiftFloat {
  0% {
    transform: translate(0, 0);
  }

  50% {
    transform: translate(4px, 5px);
  }

  100% {
    transform: translate(0, 0);
  }
}

/* mobil */
@media (max-width: 520px) {
  .flag-tip,
  .flag.flag-tip,
  .flags .flag-tip,
  .flags-extra .flag-tip {
    top: 12px !important;
    left: 12px !important;

    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    max-width: 52px !important;
    max-height: 52px !important;

    padding: 6px !important;
    font-size: 8px !important;
    line-height: 1.05 !important;
  }

  @keyframes csGiftFloat {
    0% {
      transform: translate(0, 0);
    }

    50% {
      transform: translate(3px, 3px);
    }

    100% {
      transform: translate(0, 0);
    }
  }
}
/* TIP NA DARČEK bez pohybu */
.flag-tip,
.flag.flag-tip,
.flags .flag-tip,
.flags-extra .flag-tip {
  animation: none !important;
  transform: none !important;
}

/* odstránenie pohybu aj pri prípadnom hoveri */
.flag-tip:hover,
.flag.flag-tip:hover,
.flags .flag-tip:hover,
.flags-extra .flag-tip:hover {
  animation: none !important;
  transform: none !important;
}

/* výraznejší zľavový štítok */
.flag-discount,
.flag.flag-discount,
.flags .flag-discount,
.flags-extra .flag-discount,
.flag-action,
.flag.flag-action,
.flags .flag-action,
.flags-extra .flag-action {
  background: #e6d3b8 !important;
  border: 1px solid #e6d3b8 !important;
  color: #25445a !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  font-weight: 800 !important;
}

/* ak má zľava pseudo-prvky alebo vnútorné čiarky */
.flag-discount::before,
.flag-discount::after,
.flag-action::before,
.flag-action::after {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
/* Dostupnosť produktu - Skladom / Vypredané */
.availability,
.availability-amount,
.availability-label,
.stock,
.stock-yes,
.stock-no,
.p-availability,
[data-micro="availability"] {
  color: #8a8a8a !important;
  font-weight: 600 !important;
}

/* odkazy alebo vnútorný text v dostupnosti */
.availability *,
.availability-amount *,
.availability-label *,
.stock *,
.stock-yes *,
.stock-no *,
.p-availability *,
[data-micro="availability"] * {
  color: #8a8a8a !important;
}