/* Priority: 200
 * DecFort UI-kit 6524:18625. Native components retain their data and behavior.
 */
body .catalog-category { --titleWeight: 500; }
body .catalog-category :is(h2,h3) { font-weight: 500; }
body .xleb-catalog-categories--icons .xleb-catalog-category { gap: 12px; }
body .xleb-catalog-categories--icons .xleb-catalog-category__media { width: 132px; height: 132px; border-radius: 4px; overflow: hidden; }
body .xleb-catalog-categories--icons .xleb-catalog-category > .textM { font-size: 16px; line-height: 20px; }

/* Header icon states use the same Phosphor glyphs as the design. */
body header .buttons > :is(.df-header-wishlist,.xleb-desktop-header-cart),
body header .xleb-mobile-header-actions > :is(.df-header-wishlist,.df-mobile-cart-link) { position: relative; }
body header .buttons > :is(.df-header-wishlist,.xleb-desktop-header-cart) > i::before { font-size: 24px !important; }
body header :is(.df-header-wishlist,.xleb-desktop-header-cart,.df-mobile-cart-link):is(:hover,:focus-visible,.is-not-empty) > i::before {
  font-family: "Phosphor-Fill" !important;
}
body header :is(.xleb-desktop-header-cart,.df-mobile-cart-link).is-not-empty:is(:hover,:focus-visible) > i { opacity: .5; }
body header :is(.df-wishlist-count,.xleb-mobile-cart-badge) {
  position: absolute; top: -2px; right: calc(50% - 20px); display: flex;
  align-items: center; justify-content: center; min-width: 16px; height: 16px;
  padding: 0 2px; box-sizing: border-box; border: 0; border-radius: 32px;
  background: var(--primary500); color: var(--white); font: 400 12px/16px var(--textFont);
}
body header .df-wishlist-count[hidden] { display: none; }

/* One product control, with responsive presentation and native wishlist API. */
body .decfort-product .df-favorite { color: var(--contentOpacityColor); font: 400 16px/20px var(--textFont); gap: 8px; }
body .decfort-product .df-favorite:is(:hover,:focus-visible,.is-saved) { color: var(--contentColor); }
body .decfort-product .df-favorite i, body .decfort-product .df-favorite i::before { font-size: 20px !important; width: 20px; height: 20px; line-height: 20px; }
body .decfort-product .df-favorite.is-saved i { color: var(--primary500); }
body .decfort-product .df-favorite.is-saved i::before { font-family: "Phosphor-Fill" !important; }
body .decfort-product .df-favorite:focus-visible { outline: 2px solid var(--primary500); outline-offset: 4px; }
body .xleb-catalog-card > .df-card-wishlist:is(.is-saved,:hover),
body .df-wishlist-remove { color: var(--white); filter: none; }
body .df-card-wishlist i::before, body .df-wishlist-remove i::before { font-size: 24px !important; }
body .df-card-wishlist.is-saved i::before { font-family: "Phosphor-Fill" !important; }

/* Filter data and term selection remain in Vue Posts. */
body .xleb-catalog .acf-filter-range input { background: var(--white); height: 40px; }
body .xleb-catalog .xleb-catalog-filters .term.filter.active.is-checkbox-ui { color: var(--contentColor) !important; }
body .xleb-catalog .xleb-catalog-filters .term.filter .posts-counter { color: inherit; }
body .xleb-catalog .xleb-catalog-filters .term.filter:has(.term-color-swatch) { width: 100%; gap: 12px; }
body .xleb-catalog .xleb-catalog-filters .term-color-swatch { box-sizing: border-box; width: 20px; height: 20px; margin: 2px; }
body .xleb-catalog .xleb-catalog-filters .term.filter.active .term-color-swatch { outline: 1px solid var(--primary500); outline-offset: 2px; }

/* Tags are native category links, with one visual treatment. */
body .catalog-category__tag,
body .decfort-product .xcat-product-tag {
  display: inline-flex; align-items: center; box-sizing: border-box; min-height: 36px;
  padding: 6px 12px; border: 0; border-radius: var(--roundedXS);
  background: var(--blackOpacity50); color: var(--contentColor);
}
body .catalog-category__tag:is(:hover,:focus-visible),
body .decfort-product a.xcat-product-tag:is(:hover,:focus-visible) { color: var(--primary500); }

/* Custom purchase and wishlist buttons must follow the shared palette too. */
body .decfort-product .btn.filled,
body .df-wishlist .df-wishlist-catalog { background: var(--btnDefaultBg); color: var(--btnDefaultColor); }
body .decfort-product .btn.filled:is(:hover,:focus-visible):not(:disabled),
body .df-wishlist .df-wishlist-catalog:is(:hover,:focus-visible) { background: var(--btnDefaultHoverBg); color: var(--btnDefaultColor); }
body .decfort-product .btn.filled:disabled { background: var(--btnDefaultDisableBg); color: var(--btnDefaultDisableColor); opacity: 1; }
body .decfort-product .df-wholesale a { color: var(--secondary500); }
body .decfort-product .df-wholesale a:is(:hover,:focus-visible) { color: var(--secondary400); }
body .navigation-slider :is(.swiper-button-next,.swiper-button-prev),
body .catalog-category__arrow > * {
  width: 48px; height: 48px; border: 0; border-radius: 50%;
  background: var(--primaryOpacity100); color: var(--primary500);
}
body .navigation-slider :is(.swiper-button-next,.swiper-button-prev):is(:hover,:focus-visible):not(.swiper-button-disabled),
body .catalog-category__arrow > :is(:hover,:focus-visible) { background: var(--primaryOpacity200); }
body .navigation-slider :is(.swiper-button-next,.swiper-button-prev).swiper-button-disabled { opacity: 1; color: var(--primaryOpacity500); background: var(--primaryOpacity100); }
body .navigation-slider :is(.swiper-button-next,.swiper-button-prev)::before { font-size: 24px !important; }

/* Navigation contrast follows light/dark content tokens. */
body header .topbar nav a:is(:hover,:focus-visible),
body #site-footer nav a:is(:hover,:focus-visible) { color: var(--contentOpacityColor); }
body header.decfort-header-over-hero .topbar nav a:is(:hover,:focus-visible) { color: var(--whiteOpacity500); }
body header .topbar nav a::before, body #site-footer nav a::before { display: none; }
body #footer-legal a { color: var(--contentOpacityColor); text-decoration: underline; }
body #footer-legal a:is(:hover,:focus-visible) { color: var(--contentColor); }

/* Reusable style for the native hero link; content/URL stay in WPBakery. */
body .df-hero-action {
  display: inline-flex; align-items: center; justify-content: center; gap: 16px;
  padding: 20px 24px; border: 0; border-radius: var(--roundedS);
  background: var(--whiteOpacity200); color: var(--white); backdrop-filter: blur(2px);
}
body .df-hero-action:is(:hover,:focus-visible) { background: var(--whiteOpacity400); color: var(--white); }
body .df-hero-action i::before { font-size: 32px !important; }

@media (max-width: 991px) {
  body header .xleb-mobile-header-actions :is(.df-wishlist-count,.xleb-mobile-cart-badge) {
    right: -4px; top: -2px; min-width: 12px; height: 12px; padding: 0 1px; font-size: 9px; line-height: 12px;
  }
}
@media (max-width: 767px) {
  body .decfort-product .df-top-inner { display: flex; flex-direction: row; align-items: flex-start; gap: 12px; }
  body .decfort-product .df-top-inner > nav { flex: 1; min-width: 0; }
  body .decfort-product .df-actions { display: flex; flex: none; }
  body .decfort-product .df-actions .df-sku { display: none; }
  body .decfort-product .df-favorite { width: 36px; height: 36px; justify-content: center; border-radius: 50%; background: var(--secondary500); color: var(--white); }
  body .decfort-product .df-favorite:is(:hover,:focus-visible,.is-saved),
  body .decfort-product .df-favorite.is-saved i { color: var(--white); }
  body .decfort-product .df-favorite-label { display: none; }
}

body .catalog-category__tag .textM, body .catalog-category__tag .textM > p { font-size: 19px; line-height: 24px; margin: 0; }

/* Cart badge is anchored to the icon square, not the label width. */
body header.new-header .buttons > .xleb-desktop-header-cart > .xleb-mobile-cart-badge {
  top: 0; right: calc(50% - 16px); left: auto; transform: none;
}
body header.new-header .buttons > .xleb-desktop-header-cart > i {
  display: flex; align-items: center; justify-content: center; width: 24px; height: 24px;
}
body header.new-header .buttons > .xleb-desktop-header-cart > i::before { font-size: 24px !important; }
body header.new-header .xleb-mobile-header-actions > .df-mobile-cart-link > .xleb-mobile-cart-badge {
  top: 0; right: 0; left: auto; transform: none; font-size: 10px; line-height: 12px;
}
