/* ============================================================
   Wax Room Lab - Luxury Theme Override
   Loads AFTER theme.css, overrides beauty_cosmetic styles
   ============================================================ */

/* --- Fonts --- */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/playfair-display-v40-latin_latin-ext-regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/playfair-display-v40-latin_latin-ext-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/playfair-display-v40-latin_latin-ext-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/playfair-display-v40-latin_latin-ext-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('fonts/inter-v20-latin_latin-ext-300.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/inter-v20-latin_latin-ext-regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/inter-v20-latin_latin-ext-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/inter-v20-latin_latin-ext-600.woff2') format('woff2');
}

/* --- Design tokens (typography) --- */
:root {
  --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-size-body: 16px;
  --font-weight-body: 300;
  --line-height-body: 1.7;
  --color-body: #0C0C0C;
}

/* --- Global Typography Override --- */
html {
  font-family: var(--font-body);
}
body {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-body);
  line-height: var(--line-height-body);
  color: var(--color-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--font-display);
}
/* Neutralize legacy Josefin Sans declarations in theme.css */
.ui-menu .ui-menu-item a,
.top-menu a:not([data-depth="0"]),
#header .top-menu a,
.tytuly,
.josefin-sans-light {
  font-family: var(--font-body);
}

/* FINDING-005: submenu leaf items follow nav spec from DESIGN.md
   (Inter 11px w500 ls 0.15em uppercase). Mega-menu category headers
   (depth=1, .dropdown-submenu) intentionally keep Playfair display
   font as section labels — that's a deliberate luxury pattern. */
.top-menu a[data-depth="2"],
.top-menu .sub-menu a:not(.dropdown-submenu) {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

/* --- Global Color Override --- */
a:hover { color: #000; }
#wrapper {
  background: #fff;
  box-shadow: none;
  padding-top: 0;
}
#footer { padding-top: 0; }

/* --- Skip to Content (a11y) --- */
.skip-to-content:focus {
  position: fixed;
  top: 0; left: 0;
  z-index: 9999;
  padding: 12px 24px;
  background: #000;
  color: #fff;
  clip: auto;
  width: auto;
  height: auto;
}

/* --- Announcement Bar with carousel --- */
.announcement-bar {
  width: 100%;
  background: #000;
  color: #fff;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  line-height: 1.4;
  font-weight: 400;
  font-family: 'Inter', sans-serif;
  padding: 10px 0;
  overflow: hidden;
}
@media (min-width: 768px) {
  .announcement-bar { font-size: 11px; }
}
.announcement-bar__container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media (min-width: 768px) {
  .announcement-bar__container { padding: 0 24px; }
}
.announcement-bar__left {
  width: 25%;
}
.announcement-bar__left a,
.announcement-bar__left a:visited,
.announcement-bar__left a:active {
  color: #fff !important;
  font-size: 10px;
  letter-spacing: 0.15em;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: color 0.2s;
}
.announcement-bar__left a:hover { color: #ccc !important; text-decoration: none; }
.announcement-bar__message {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.announcement-bar__right { width: 25%; }

/* --- Site Header --- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
  border-bottom: 1px solid #eee;
  transition: box-shadow 0.3s ease;
}
.site-header--sticky {
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}
.site-header__container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 16px;
}
@media (min-width: 768px) {
  .site-header__container { padding: 0 24px; }
}
.site-header__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 64px;
  border-bottom: 1px solid #f5f5f5;
}
@media (min-width: 768px) {
  .site-header__top { height: 80px; }
}
.site-header__logo a { display: flex; align-items: center; }
.site-header__logo img {
  max-height: 40px;
}
@media (min-width: 768px) {
  .site-header__logo img { max-height: 50px; }
}
.site-header__search {
  flex: 1;
  max-width: 560px;
  margin: 0 32px;
}
/* Luxury search wrapper */
.luxury-search {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
}
.luxury-search__icon {
  position: absolute;
  left: 16px;
  top: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  z-index: 2;
  pointer-events: none;
  color: #000;
  font-size: 18px;
  transition: color 0.2s;
}
.luxury-search__icon .material-icons { font-size: 18px; line-height: 1; }
/* Style the PS search widget inside luxury wrapper */
.luxury-search .searchtoggle,
.luxury-search .search-widget-not {
  width: 100% !important;
  margin: 0 !important;
}
.luxury-search .search-widget-not form {
  position: static;
  display: flex;
}
.luxury-search input[type="text"],
.luxury-search .searchtoggle input[type="text"],
.luxury-search .search-widget-not input[type="text"] {
  width: 100% !important;
  padding: 12px 16px 12px 48px !important;
  border: 1px solid #eee !important;
  background: rgba(245,245,245,0.5) !important;
  font-size: 14px !important;
  font-family: 'Inter', sans-serif !important;
  color: #000 !important;
  transition: all 0.3s ease !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: auto !important;
  position: relative !important;
  z-index: 1 !important;
}
.luxury-search input[type="text"]::placeholder,
.luxury-search .search-widget-not input::placeholder {
  color: #999 !important;
}
.luxury-search { isolation: isolate; }
.luxury-search__icon { z-index: 10 !important; color: #000 !important; }
/* Schowaj duplikujące elementy z ps_searchbar.tpl — zostawiamy tylko .luxury-search__icon
   jako wizualny wskaźnik, submit działa enterem. */
.luxury-search .search_button,
.luxury-search .search-widget form button[type="submit"],
.luxury-search .search-widget form button[type=submit] {
  display: none !important;
}
.luxury-search input[type="text"]:focus,
.luxury-search .search-widget-not input[type="text"]:focus {
  border-color: #000 !important;
  background: #fff !important;
  outline: none !important;
  box-shadow: 0 0 0 1px #000 !important;
}
/* Na focus utrzymaj kolor ikony — explicit żeby żadna kolizja nie zmieniła */
.luxury-search:focus-within .luxury-search__icon { color: #000 !important; }
.luxury-search .search-widget-not button,
.luxury-search .search-widget-not-button {
  position: absolute !important;
  right: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  background: none !important;
  border: none !important;
  cursor: pointer;
  padding: 4px !important;
  opacity: 0;
}
.luxury-search .search-widget-not form {
  position: relative;
}
.site-header__icons {
  display: flex;
  align-items: center;
  gap: 8px;
}
.site-header__icon a {
  color: #000;
  padding: 8px;
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.site-header__icon a:hover { color: #666; text-decoration: none; }
.site-header__nav {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 48px;
}
.site-header__nav a {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 500;
  color: #000;
  padding: 8px 0;
  margin: 0 24px;
  position: relative;
}
.site-header__nav a::after {
  content: '';
  position: absolute;
  width: 0;
  height: 1px;
  bottom: -4px;
  left: 0;
  background: #000;
  transition: width 0.3s ease;
}
.site-header__nav a:hover::after { width: 100%; }
.site-header__nav a:hover { text-decoration: none; color: #666; }

/* Icon buttons */
.btn-icon {
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #000;
}
.btn-icon:hover { color: #666; }
.btn-icon:focus { outline: 2px solid #000; outline-offset: 2px; }

/* --- Header nav2 module fixes --- */
/* Shrink SVG icons from 48px to 24px */
.site-header__icons svg {
  width: 22px !important;
  height: 22px !important;
}
/* Fix search widget in header icons */
.site-header__icons .search-widget,
.site-header__icons #_desktop_search_plugin {
  display: flex;
  align-items: center;
}
.site-header__icons .search_button {
  flex-direction: row !important;
  gap: 0 !important;
  padding: 8px;
  min-width: 44px;
  min-height: 44px;
  justify-content: center;
  align-items: center;
}
.site-header__icons .search_toggle {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  background: #fff;
  border: 1px solid #eee;
  padding: 16px;
  min-width: 300px;
  z-index: 200;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.site-header__icons .search-widget:hover .search_toggle,
.site-header__icons .search_toggle:hover {
  display: block;
}
.site-header__icons .search_toggle input[type="text"] {
  width: 100%;
  padding: 10px 16px;
  border: 1px solid #eee;
  font-size: 14px;
  font-family: 'Inter', sans-serif;
}
.site-header__icons .search_toggle input:focus {
  outline: none;
  border-color: #000;
}
/* === Vanilla user menu (zastępuje Bootstrap dropdown z ps_customersignin) === */
.site-header__icons .user-info {
  position: relative;
}
.site-header__icons .user-info-title {
  background: none; border: 0; padding: 8px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: inherit;
  min-width: 44px; min-height: 44px;
  -webkit-tap-highlight-color: transparent;
}
.site-header__icons .user-info-title:focus { outline: none; }
.site-header__icons .user-info-title:focus-visible { outline: 2px solid #000; outline-offset: 2px; }
.site-header__icons .user-info-title svg { width: 22px; height: 22px; }
.site-header__icons .user-menu {
  position: absolute; top: 100%; right: 0;
  min-width: 180px;
  max-width: calc(100vw - 32px);
  margin: 0; padding: 8px 0;
  list-style: none;
  background: #fff;
  border: 1px solid #eee;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  z-index: 1000;
  display: none;
}
.site-header__icons .user-menu.open { display: block; }
.site-header__icons .user-menu li { list-style: none; }
.site-header__icons .user-menu-item {
  display: block;
  padding: 10px 20px;
  font-size: 13px;
  color: #222;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}
.site-header__icons .user-menu-item:hover,
.site-header__icons .user-menu-item:focus {
  background: #f5f5f5;
  color: #000;
  text-decoration: none;
}

/* Fix user-info dropdown — legacy (jeśli gdzieś się pojawia .dropdown-menu) */
.site-header__icons .user-info--legacy {
  padding: 8px !important;
  min-width: 44px;
  min-height: 44px;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0 !important;
  position: relative;
}
.site-header__icons .user-info .expand-more {
  display: flex;
  align-items: center;
  justify-content: center;
}
.site-header__icons .user-info .dropdown-menu {
  position: absolute;
  top: 100%;
  right: 0;
  background: #fff;
  border: 1px solid #eee;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  padding: 8px 0;
  min-width: 180px;
  z-index: 200;
}
.site-header__icons .user-info .dropdown-item {
  padding: 8px 20px;
  font-size: 13px;
  color: #222;
  display: block;
}
.site-header__icons .user-info .dropdown-item:hover {
  background: #f5f5f5;
  text-decoration: none;
}
/* Fix cart */
.site-header__icons #_desktop_cart {
  display: flex;
  align-items: center;
}
.site-header__icons .blockcart {
  background: transparent !important;
  height: auto !important;
  padding: 8px !important;
  margin: 0 !important;
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
}
.site-header__icons .blockcart a {
  color: #000 !important;
  display: flex;
  align-items: center;
  gap: 6px;
}
.site-header__icons .blockcart svg {
  width: 22px !important;
  height: 22px !important;
}
.site-header__icons .cart-products-count {
  background: #000;
  color: #fff;
  font-size: 10px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
}

/* --- Main navigation (displayTop hook) --- */
/* Usuń niebieską ramkę po kliku w link menu (mysz/touch) — zachowaj :focus-visible dla klawiatury */
.top-menu a,
.mobile-menu__body a,
.mobile-menu__head a {
  -webkit-tap-highlight-color: transparent;
}
.top-menu a:focus { outline: none; }
.top-menu a:focus-visible { outline: 2px solid #000; outline-offset: 2px; }

/* Kill beauty_cosmetic base menu styles */
.top-menu a[data-depth="0"],
#index .top-menu a[data-depth="0"],
#header .top-menu a[data-depth="0"] {
  font-size: 11px !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: #000 !important;
  background: transparent !important;
  padding: 14px 22px !important;
  width: auto !important;
  transition: color 0.2s ease !important;
}
/* Kill beauty_cosmetic menu hover overrides (white text on black bg) */
#header > .header-top .menu ul li:hover a.dropdown-item[data-depth="0"],
#index .top-menu a:hover[data-depth="0"],
.top-menu a[data-depth="0"]:hover,
#header .top-menu a[data-depth="0"]:hover {
  color: #666 !important;
  background: transparent !important;
  font-size: 11px !important;
  padding: 14px 22px !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  width: auto !important;
}

/* Submenu — mega menu dropdown (desktop only) */
@media (min-width: 768px) {
  /* Nav container must be position:relative for full-width mega */
  .site-header__nav { position: relative; overflow: visible; }
  .site-header__nav .menu { position: static !important; }
  .site-header__nav #top-menu { position: static !important; }
  .site-header__nav #top-menu > li { position: static !important; }
  /* Nav items padding is set globally above — no extra override needed */
  /* Invisible bridge: extend li hover zone downward to cover the gap to the dropdown.
     pointer-events: none — bridge nakłada się na dolne 20px <a>, więc bez tego
     przechwytywałby kliknięcia z dolnej części linka po otwarciu dropdownu. */
  .site-header__nav #top-menu > li > .popover.sub-menu::before,
  .site-header__nav #top-menu > li > .sub-menu.collapse::before {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    top: -20px !important;
    left: 0 !important;
    right: 0 !important;
    height: 20px !important;
    background: transparent !important;
    border: none !important;
    width: 100% !important;
    border-radius: 0 !important;
    pointer-events: none !important;
  }
  /* Prevent horizontal scroll from mega menu */
  body { overflow-x: hidden; }

  .site-header__nav .top-menu .sub-menu.collapse,
  .site-header__nav .popover.sub-menu,
  .site-header__nav .popover.sub-menu[style] {
    display: block !important;
    position: absolute !important;
    top: 100% !important;
    left: 50% !important;
    right: auto !important;
    width: 100vw !important;
    max-width: 100vw !important;
    transform: translateX(-50%);
    margin-left: 0 !important;
    background: rgba(255,255,255,0.97) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border: none !important;
    border-top: 1px solid #eee !important;
    border-bottom: 1px solid #eee !important;
    box-shadow: 0 12px 40px rgba(0,0,0,0.1) !important;
    padding: 48px 0 !important;
    min-width: 0 !important;
    z-index: 200 !important;
    border-radius: 0 !important;
    max-width: none !important;
    height: auto !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: opacity 0.2s ease, visibility 0s 0.2s !important;
    pointer-events: none !important;
  }
  .site-header__nav .top-menu > li:hover > .sub-menu.collapse,
  .site-header__nav .top-menu > li:hover > .popover.sub-menu {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateX(-50%) !important;
    pointer-events: auto !important;
    transition: opacity 0.2s ease, visibility 0s 0s !important;
  }

  /* Mega menu inner layout — depth-1 list becomes a grid */
  .site-header__nav .sub-menu > ul[data-depth="1"] {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
    gap: 32px !important;
    max-width: 1280px !important;
    margin: 0 auto !important;
    padding: 0 24px !important;
    list-style: none !important;
  }
}
/* Mega menu items — desktop only */
@media (min-width: 768px) {
  /* Each depth-1 category becomes a column */
  .site-header__nav .top-menu .sub-menu ul[data-depth="1"] > li {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
  }
  /* Depth-1 links = column headers (like reference h3) */
  .site-header__nav .top-menu .sub-menu a[data-depth="1"],
  .site-header__nav .top-menu .sub-menu a.dropdown-submenu {
    color: #000 !important;
    font-size: 16px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-weight: 400 !important;
    padding: 0 0 8px 0 !important;
    margin-bottom: 20px !important;
    display: block !important;
    background: transparent !important;
    width: auto !important;
    font-family: 'Playfair Display', serif !important;
    border-bottom: 1px solid #eee !important;
    transition: color 0.2s ease !important;
  }
  .site-header__nav .top-menu .sub-menu a[data-depth="1"]:hover,
  .site-header__nav .top-menu .sub-menu a.dropdown-submenu:hover {
    color: #666 !important;
    background: transparent !important;
    text-decoration: none !important;
  }
  .site-header__nav .top-menu .sub-menu a[data-depth="1"]::before,
  .site-header__nav .top-menu .sub-menu a.dropdown-submenu::before {
    display: none !important;
  }
  /* Depth-2 items = sub-links with animated line indicator
     FINDING-005 (desktop): match nav spec from DESIGN.md w500/0.15em
     instead of legacy w400/0.1em. !important here overrides theme.css
     and the .site-header__nav specificity is higher than my mobile
     fallback at line ~104, so this rule is what actually wins on desktop. */
  .site-header__nav .top-menu .sub-menu a[data-depth="2"] {
    color: #999 !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    font-weight: 500 !important;
    letter-spacing: 0.15em !important;
    padding: 8px 0 !important;
    display: flex !important;
    align-items: center !important;
    background: transparent !important;
    font-family: var(--font-body) !important;
    transition: color 0.3s ease !important;
    position: relative !important;
  }
  /* Kill the beauty_cosmetic default dot/circle on dropdown items */
  .site-header__nav .top-menu .sub-menu a.dropdown-item::before,
  .site-header__nav .sub-menu a.dropdown-item::before {
    display: none !important;
    content: none !important;
    border: none !important;
    width: 0 !important;
    height: 0 !important;
  }
  .site-header__nav .top-menu .sub-menu a.dropdown-item:hover::before,
  .site-header__nav .sub-menu a.dropdown-item:hover::before {
    display: none !important;
    content: none !important;
    border: none !important;
  }
  .site-header__nav .top-menu .sub-menu a[data-depth="2"]:hover {
    color: #000 !important;
    text-decoration: none !important;
  }
  /* Show nested collapses */
  .site-header__nav .top-menu .sub-menu .collapse {
    display: block !important;
    height: auto !important;
  }
  /* Depth-2 list styling */
  .site-header__nav .top-menu .sub-menu ul[data-depth="2"] {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .site-header__nav .top-menu .sub-menu ul[data-depth="2"] > li {
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    width: auto !important;
  }
  /* Hide mobile toggles in desktop */
  .site-header__nav .top-menu .sub-menu .pull-xs-right { display: none !important; }
  .site-header__nav .top-menu .sub-menu .navbar-toggler { display: none !important; }
  .site-header__nav .top-menu .sub-menu .collapse-icons { display: none !important; }
}

.site-header__nav {
  border-top: 1px solid #eee;
}
/* Nav container */
.site-header__nav .menu {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  display: flex !important;
  justify-content: center;
}
.site-header__nav #top-menu {
  display: flex !important;
  justify-content: center;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-wrap: nowrap;
}
.site-header__nav #top-menu > li {
  float: none !important;
  position: relative;
}
/* Underline animation on hover */
.site-header__nav #top-menu > li > a::after {
  content: '';
  position: absolute;
  width: 0;
  height: 1px;
  bottom: 10px;
  left: 16px;
  background: #000;
  transition: width 0.3s ease;
}
.site-header__nav #top-menu > li:hover > a::after {
  width: calc(100% - 32px);
}

/* --- Mobile Menu --- */
.mobile-menu {
  position: fixed;
  top: 0; bottom: 0; left: 0;
  width: 100%;
  max-width: 320px;
  background: #fff;
  z-index: 200;
  transform: translateX(-100%);
  transition: transform 0.3s ease-in-out;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
}
.mobile-menu.open { transform: translateX(0); }
.mobile-menu__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid #eee;
}
.mobile-menu__logo {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.mobile-menu__body {
  flex: 1;
  padding: 8px 0;
}
.mobile-menu__body a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 500;
  border-bottom: 1px solid #f5f5f5;
  color: #000;
}
.mobile-menu__body a:hover { text-decoration: none; color: #666; }
.mobile-menu__body a:focus { outline: none; }
.mobile-menu__body a:focus-visible { outline: 2px solid #000; outline-offset: -2px; }

/* === Mobile menu — submenu collapse (vanilla, bez Bootstrap) === */
.mobile-menu .collapse:not(.show) { display: none !important; }
.mobile-menu .collapse.show { display: block !important; }

/* CRITICAL RESET — wszystkie wbudowane PS/Bootstrap style w mobile drawer */
.mobile-menu .collapse,
.mobile-menu .popover,
.mobile-menu .sub-menu,
.mobile-menu .top-menu,
.mobile-menu .top-menu li,
.mobile-menu .top-menu a,
.mobile-menu .pull-xs-right,
.mobile-menu .collapse-icons {
  position: static !important;
  inset: auto !important;
  top: auto !important; right: auto !important; bottom: auto !important; left: auto !important;
  transform: none !important;
  background: none !important;
  background-image: none !important;
  border: 0 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  filter: none !important;
  margin: 0 !important;
  float: none !important;
  white-space: normal !important;
}
/* Wymuszenie pełnej szerokości i block layout dla kontenerów submenu.
   Selektory z #mobile-menu (ID) żeby pokonać theme.css:7805
   ".top-menu .sub-menu ul[data-depth='1'] > li { width: 155px !important }"
   (specificity 40 + !important — bez ID nasze 21 przegrywa).
   UWAGA: .collapse pomijamy, bo musi zachować logikę show/hide. */
#mobile-menu .popover,
#mobile-menu .sub-menu,
#mobile-menu .top-menu,
#mobile-menu .top-menu li,
#mobile-menu .top-menu .sub-menu ul[data-depth="1"] > li,
#mobile-menu .top-menu .sub-menu ul[data-depth="2"] > li,
#mobile-menu .top-menu ul[data-depth="1"] > li,
#mobile-menu .top-menu ul[data-depth="2"] > li,
#mobile-menu .top-menu ul[data-depth="3"] > li {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}
.mobile-menu .top-menu li { list-style: none !important; }
/* .collapse — szerokość pełna, ale display sterowany klasą .show */
#mobile-menu .collapse {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}
#mobile-menu .collapse:not(.show) { display: none !important; }
#mobile-menu .collapse.show { display: block !important; }

/* Linki — flex row, label po lewej (flex: 1), chevron po prawej (margin-left: auto) */
.mobile-menu .top-menu a {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  text-align: left !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid #f0f0f0 !important;
  font-size: 12.5px !important;
  text-transform: uppercase;
  letter-spacing: 0.08em !important;
  color: #000 !important;
  font-weight: 500;
  width: 100% !important;
  box-sizing: border-box !important;
  gap: 8px !important;
  line-height: 1.3 !important;
}
.mobile-menu .menu-label {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  hyphens: none !important;
}
.mobile-menu .top-menu .top-menu a {
  padding-left: 32px !important;
  font-size: 11.5px !important;
  color: #555 !important;
  font-weight: 400;
  background: #fafafa !important;
}
.mobile-menu .top-menu .top-menu .top-menu a {
  padding-left: 48px !important;
  font-size: 11px !important;
  color: #777 !important;
  background: #f5f5f5 !important;
}

/* Chevron span — wciśnięty na prawą stronę */
.mobile-menu .pull-xs-right {
  display: inline-flex !important;
  align-items: center !important;
  flex-shrink: 0 !important;
  margin-left: auto !important;
}

/* Collapse-icons — toggle button, 44x44 touch target */
.mobile-menu .collapse-icons {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important; height: 44px !important;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.mobile-menu .collapse-icons .material-icons { font-size: 22px !important; line-height: 1; color: #000 !important; }
.mobile-menu .collapse-icons.collapsed .add { display: inline-block !important; }
.mobile-menu .collapse-icons.collapsed .remove { display: none !important; }
.mobile-menu .collapse-icons:not(.collapsed) .add { display: none !important; }
.mobile-menu .collapse-icons:not(.collapsed) .remove { display: inline-block !important; }
.mobile-menu__footer {
  padding: 24px;
  background: #f5f5f5;
  border-top: 1px solid #eee;
}
.mobile-backdrop {
  position: fixed;
  top: 0; right: 0; bottom: 0; left: 0;
  background: rgba(0,0,0,0.4);
  backdrop-filter: blur(2px);
  z-index: 150;
}
.mobile-backdrop.hidden { display: none; }

/* --- Hero Section --- */
.hero {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 600px;
  max-height: 900px;
  background: #0a0a0a;
  display: flex;
  align-items: center;
  overflow: hidden;
}
@media (min-width: 768px) { .hero { min-height: 700px; } }
.hero__bg {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: grayscale(100%) brightness(0.7);
  z-index: 0;
}
.hero__overlay {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.2) 100%);
  z-index: 1;
}
.hero__content {
  position: relative;
  z-index: 2;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  width: 100%;
  text-align: center;
}
@media (min-width: 768px) {
  .hero__content { text-align: left; padding: 0 48px; }
}
.hero__tag {
  color: rgba(255,255,255,0.9);
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 24px;
  display: block;
  font-family: 'Inter', sans-serif;
}
@media (min-width: 768px) { .hero__tag { font-size: 14px; } }
.hero__title {
  font-family: 'Playfair Display', serif;
  font-size: 40px;
  color: #fff;
  line-height: 1.05;
  margin-bottom: 28px;
  max-width: 650px;
  font-weight: 400;
}
@media (min-width: 768px) { .hero__title { font-size: 64px; } }
@media (min-width: 1024px) { .hero__title { font-size: 76px; } }
.hero__desc {
  color: rgba(255,255,255,0.8);
  font-size: 15px;
  font-weight: 300;
  margin-bottom: 40px;
  max-width: 520px;
  line-height: 1.7;
}
@media (min-width: 768px) { .hero__desc { font-size: 17px; } }
.hero__ctas {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media (min-width: 576px) { .hero__ctas { flex-direction: row; gap: 20px; } }

/* Hero fallback */
.hero-fallback {
  position: relative;
  width: 100%;
  height: 600px;
  background: #f5f5f5;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 768px) { .hero-fallback { height: 800px; } }
.hero-fallback__content { position: relative; z-index: 1; text-align: center; padding: 0 24px; }
.hero-fallback__tag { font-size: 14px; letter-spacing: 0.2em; text-transform: uppercase; color: #666; margin-bottom: 16px; display: block; }
.hero-fallback__title { font-family: 'Playfair Display', serif; font-size: 40px; color: #000; margin-bottom: 24px; }
@media (min-width: 768px) { .hero-fallback__title { font-size: 60px; } }

/* Hero buttons */
.btn-hero-primary, .btn-hero-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 18px 40px;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-family: 'Inter', sans-serif;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
}
.btn-hero-primary { background: #fff; color: #000; }
.btn-hero-primary:hover { background: #f0f0f0; color: #000; text-decoration: none; }
.btn-hero-secondary { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.7); }
.btn-hero-secondary:hover { background: #fff; color: #000; border-color: #fff; text-decoration: none; }

/* --- Category Grid --- */
.home-categories { padding: 80px 0; background: #fff; }
.home-categories__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 48px;
}
.home-categories__header h2 {
  font-family: 'Playfair Display', serif;
  font-size: 30px;
  margin-bottom: 8px;
}
@media (min-width: 768px) { .home-categories__header h2 { font-size: 36px; } }
.home-categories__subtitle { color: #666; font-weight: 300; }
.home-categories__viewall {
  display: flex;
  align-items: center;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 500;
  color: #000;
}
.home-categories__viewall:hover { text-decoration: none; color: #666; }
.home-categories__viewall .material-icons { margin-left: 8px; font-size: 16px; }
.home-categories__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 768px) { .home-categories__grid { grid-template-columns: repeat(3, 1fr); } }
.home-categories__card {
  position: relative;
  overflow: hidden;
  height: 384px;
  background: #f5f5f5;
  display: block;
  cursor: pointer;
}
.home-categories__card:hover { text-decoration: none; }
.home-categories__card:hover .home-categories__img { transform: scale(1.05); }
.home-categories__card:hover .home-categories__shop-now { opacity: 1; }
.home-categories__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms ease;
}
.home-categories__placeholder { width: 100%; height: 100%; background: #eee; }
.home-categories__overlay {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.6), transparent);
}
.home-categories__label {
  position: absolute;
  bottom: 0; left: 0;
  padding: 24px;
  width: 100%;
}
.home-categories__label h3 {
  font-family: 'Playfair Display', serif;
  font-size: 24px;
  color: #fff;
  margin-bottom: 4px;
}
.home-categories__shop-now {
  color: #fff;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  opacity: 0;
  transition: opacity 300ms ease;
  display: flex;
  align-items: center;
}
.home-categories__shop-now .material-icons { font-size: 12px; margin-left: 8px; }

/* --- Bestsellers --- */
.home-bestsellers { padding: 80px 0; background: #fff; }
.home-bestsellers__header {
  text-align: center;
  margin-bottom: 64px;
}
.home-bestsellers__header h2 {
  font-family: 'Playfair Display', serif;
  font-size: 30px;
  margin-bottom: 16px;
}
@media (min-width: 768px) { .home-bestsellers__header h2 { font-size: 36px; } }
.home-bestsellers__divider {
  width: 64px;
  height: 1px;
  background: #000;
  margin: 0 auto;
}
.home-bestsellers__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  list-style: none;
  padding: 0;
}
@media (min-width: 576px) { .home-bestsellers__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .home-bestsellers__grid { grid-template-columns: repeat(4, 1fr); } }
.home-bestsellers__item { list-style: none; }
.home-bestsellers__cta { text-align: center; margin-top: 64px; }
.home-bestsellers__empty {
  text-align: center;
  padding: 48px 24px;
  color: #666;
  font-style: italic;
}

/* --- Product Miniature (luxury card) --- */
.product-miniature { display: flex; flex-direction: column; }
.product-miniature__image-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 4/5;
  background: #fff;
  overflow: hidden;
  margin-bottom: 16px;
}
.product-miniature__image-wrap:hover .product-miniature__img { transform: scale(1.05); }
.product-miniature__image-wrap:hover .product-miniature__quick-add { transform: translateY(0); }
.product-miniature__image-link { display: block; width: 100%; height: 100%; }
.product-miniature__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 500ms ease;
}
.product-miniature__flags {
  position: absolute;
  top: 8px; left: 8px;
  z-index: 2;
  list-style: none;
  padding: 0; margin: 0;
}
.product-miniature__flag {
  display: inline-block;
  padding: 4px 8px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 4px;
}
.product-miniature__flag--new { background: #eee; color: #000; }
.product-miniature__flag--on-sale,
.product-miniature__flag--discount { background: #000; color: #fff; }
.product-miniature__quick-add {
  position: absolute;
  bottom: 0; left: 0;
  width: 100%;
  padding: 16px;
  transform: translateY(100%);
  transition: transform 300ms ease-in-out;
  background: rgba(255,255,255,0.9);
  backdrop-filter: blur(4px);
}
.product-miniature__name {
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 4px;
}
.product-miniature__name a { color: #000; }
.product-miniature__name a:hover { text-decoration: underline; }
.product-miniature__info .price { font-size: 14px; font-weight: 600; }
.product-miniature__info .regular-price { text-decoration: line-through; color: #999; font-size: 13px; }
.product-miniature__info .discount-percentage { color: #ff4c4c; font-size: 12px; margin-left: 4px; }

/* Quick Add Button */
.btn-quick-add {
  display: block;
  width: 100%;
  padding: 12px;
  background: #000;
  color: #fff;
  border: none;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  text-align: center;
  cursor: pointer;
  font-family: 'Inter', sans-serif;
}
.btn-quick-add:hover { background: #222; color: #fff; text-decoration: none; }
.btn-quick-add:focus { outline: 2px solid #000; outline-offset: 2px; }
.btn-quick-add--disabled { background: #eee; color: #999; cursor: not-allowed; }
.btn-quick-add--success { background: #4cbb6c; }

.btn-outline-dark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 40px;
  background: transparent;
  color: #000;
  border: 1px solid #000;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}
.btn-outline-dark:hover { background: #000; color: #fff; text-decoration: none; }

/* --- Editorial Section --- */
.home-editorial {
  display: flex;
  flex-direction: column;
}
@media (min-width: 1024px) { .home-editorial { flex-direction: row; min-height: 600px; } }
.home-editorial__image {
  width: 100%;
  height: 450px;
}
@media (min-width: 1024px) { .home-editorial__image { width: 50%; height: auto; min-height: 600px; } }
.home-editorial__image {
  background: #e8e4e0;
}
.home-editorial__image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(30%); }
.home-editorial__content {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  background: #000;
  color: #fff;
}
@media (min-width: 1024px) {
  .home-editorial__content { width: 50%; padding: 48px 96px; }
}
.home-editorial__inner { max-width: 420px; }
.home-editorial__inner h2 {
  font-family: 'Playfair Display', serif;
  font-size: 32px;
  color: #fff;
  margin-bottom: 28px;
  line-height: 1.15;
  font-weight: 400;
}
@media (min-width: 1024px) { .home-editorial__inner h2 { font-size: 48px; } }
.home-editorial__inner p {
  color: rgba(255,255,255,0.7);
  font-weight: 300;
  line-height: 1.7;
  margin-bottom: 32px;
}
.home-editorial__features {
  list-style: none;
  padding: 0;
  margin-bottom: 40px;
}
.home-editorial__features li {
  display: flex;
  align-items: center;
  font-size: 14px;
  font-weight: 300;
  color: rgba(255,255,255,0.7);
  margin-bottom: 16px;
}
.home-editorial__features .material-icons { color: #fff; margin-right: 12px; font-size: 18px; }
.home-editorial__link {
  color: #fff;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 500;
  border-bottom: 1px solid #fff;
  padding-bottom: 4px;
}
.home-editorial__link:hover { color: rgba(255,255,255,0.7); text-decoration: none; }

/* --- Testimonials --- */
.home-testimonials {
  padding: 100px 0 120px;
  background: #fff;
  border-top: 1px solid #f0f0f0;
  text-align: center;
}
.home-testimonials__tag {
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #666;
  margin-bottom: 16px;
  display: block;
}
.home-testimonials h2 {
  font-family: 'Playfair Display', serif;
  font-size: 30px;
  margin-bottom: 64px;
}
@media (min-width: 768px) { .home-testimonials h2 { font-size: 36px; } }
.home-testimonials__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
}
@media (min-width: 768px) { .home-testimonials__grid { grid-template-columns: repeat(3, 1fr); } }
.home-testimonials__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.home-testimonials__stars { margin-bottom: 24px; }
.home-testimonials__stars .material-icons { color: #000; font-size: 14px; }
.home-testimonials__quote {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 18px;
  color: #666;
  line-height: 1.6;
  margin-bottom: 24px;
}
.home-testimonials__author { margin-top: auto; }
.home-testimonials__name {
  font-weight: 500;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 4px;
}
.home-testimonials__role { font-size: 12px; color: #999; }

/* --- Site Footer --- */
.site-footer {
  background: #000;
  color: #fff;
  padding-top: 100px;
  padding-bottom: 48px;
}
.site-footer__container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 16px;
}
@media (min-width: 768px) { .site-footer__container { padding: 0 24px; } }
.site-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  margin-bottom: 64px;
}
@media (min-width: 768px) {
  .site-footer__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
  .site-footer__grid {
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 24px;
  }
  /* Brand stays in column 1, row 1 */
  .site-footer__grid > .site-footer__brand {
    grid-column: 1;
    grid-row: 1;
  }
  /* Produkty + Nasza firma block in columns 2-3 */
  .site-footer__grid > .col-md-4.links:not(.block-contact):not(#block_myaccount_infos) {
    grid-column: 2 / 4;
    grid-row: 1;
  }
  /* Twoje konto in column 4 */
  .site-footer__grid > #block_myaccount_infos {
    grid-column: 4;
    grid-row: 1;
  }
  /* Informacja o sklepie - hidden (moved to footer template) */
  .site-footer__grid > .block-contact {
    display: none;
  }
  /* Newsletter below brand */
  .site-footer__grid > .block_newsletter {
    grid-column: 1;
    grid-row: 3;
  }
}
.site-footer__logo { display: block; margin-bottom: 24px; }
.site-footer__logo img { max-height: 40px; filter: brightness(0) invert(1); }
.site-footer__tagline { color: rgba(255,255,255,0.5); font-size: 13px; line-height: 1.8; margin-bottom: 16px; }
.site-footer__tagline a { color: rgba(255,255,255,0.6); }
.site-footer__tagline a:hover { color: #fff; text-decoration: none; }
.site-footer__newsletter-label {
  display: block;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.7);
  margin-bottom: 12px;
}
.site-footer__heading {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 500;
  margin-bottom: 24px;
  color: #fff;
  font-family: 'Inter', sans-serif;
}
.site-footer__links ul { list-style: none; padding: 0; }
.site-footer__links li { margin-bottom: 16px; }
.site-footer__links a { color: rgba(255,255,255,0.6); font-size: 14px; }
.site-footer__links a:hover { color: #fff; text-decoration: none; }
.site-footer__social { margin-top: 32px; }
.site-footer__social a { color: rgba(255,255,255,0.6); font-size: 18px; margin-right: 16px; }
.site-footer__social a:hover { color: #fff; }
.site-footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
@media (min-width: 768px) {
  .site-footer__bottom { flex-direction: row; justify-content: space-between; }
}
.site-footer__bottom p { font-size: 12px; color: rgba(255,255,255,0.4); margin: 0; }
.site-footer__bottom-links { display: flex; gap: 24px; }
.site-footer__bottom-links a { font-size: 12px; color: rgba(255,255,255,0.4); }
.site-footer__bottom-links a:hover { color: #fff; text-decoration: none; }

/* --- Hide old beauty_cosmetic elements --- */
.header-top > .container > .row > .belka { display: none; }
.header-top > .container > .row > .tlo_menu { display: none; }
#mobile_top_menu_wrapper { display: none !important; }
.footer-container { display: none; }

/* --- displayHome ($HOOK_HOME): show slider + bestsellers, hide rest --- */
.luxury-home-modules > .featured-products { display: none !important; }
.luxury-home-modules > .custom-text { display: none !important; }
.luxury-home-modules > .block-reassurance { display: none !important; }
.luxury-home-modules > [class*="banner"] { display: none !important; }
/* Show and style bestsellers from displayHome */
.luxury-home-modules > .home-bestsellers__products {
  display: block !important;
  padding: 100px 24px;
  max-width: 1280px;
  margin: 0 auto;
  background: #fff;
}
@media (min-width: 768px) {
  .luxury-home-modules > .home-bestsellers__products { padding: 100px 48px; }
}
/* Full-width background behind bestsellers */
.luxury-home-modules::after {
  content: '';
  display: block;
  background: #fff;
  margin-top: -1px;
}
/* Bestsellery header via CSS */
.luxury-home-modules > .home-bestsellers__products::before {
  content: 'Bestsellery';
  display: block;
  text-align: center;
  font-family: 'Playfair Display', serif;
  font-size: 32px;
  font-weight: 400;
  margin-bottom: 20px;
  color: #000;
  letter-spacing: 0.02em;
}
@media (min-width: 768px) {
  .luxury-home-modules > .home-bestsellers__products::before { font-size: 40px; }
}
/* Divider line under header */
.luxury-home-modules > .home-bestsellers__products > .home-bestsellers__grid::before {
  content: '';
  display: block;
  width: 64px;
  height: 1px;
  background: #000;
  margin: 0 auto 48px;
  grid-column: 1 / -1;
}

/* Product grid override - convert owl carousel to CSS grid */
.luxury-home-modules .products,
.luxury-products-section .products {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 16px;
}
@media (min-width: 768px) {
  .luxury-home-modules .products,
  .luxury-products-section .products { padding: 0 24px; }
}
.luxury-home-modules .product_list,
.luxury-products-section .product_list {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 32px !important;
  list-style: none !important;
  padding: 0 !important;
  width: 100% !important;
  transform: none !important;
}
@media (min-width: 768px) {
  .luxury-home-modules .product_list,
  .luxury-products-section .product_list { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (min-width: 1024px) {
  .luxury-home-modules .product_list,
  .luxury-products-section .product_list { grid-template-columns: repeat(4, 1fr) !important; }
}
.luxury-home-modules .product_list .item,
.luxury-home-modules .product_list .product_item,
.luxury-home-modules .product_list > li,
.luxury-products-section .product_list .item,
.luxury-products-section .product_list .product_item,
.luxury-products-section .product_list > li {
  width: 100% !important;
  float: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* Kill owl carousel transforms and wrapping */
.luxury-home-modules .owl-wrapper-outer,
.luxury-home-modules .owl-wrapper,
.luxury-products-section .owl-wrapper-outer,
.luxury-products-section .owl-wrapper {
  display: contents !important;
  width: auto !important;
  transform: none !important;
  transition: none !important;
}
.luxury-home-modules .owl-item,
.luxury-products-section .owl-item {
  width: 100% !important;
}

/* Style luxury-products-section (displaySliderFeature/Bestseller) */
.luxury-products-section { padding: 0; background: #fff; }
.luxury-products-section:empty { display: none; }
/* Hide duplicate linia_tytul headers from modules (we have our own h2) */
.luxury-products-section .linia_tytul { display: none !important; }
.luxury-products-section .SliderNavigation { display: none !important; }
.luxury-products-section .view_more {
  text-align: center;
  margin-top: 48px;
  padding-bottom: 20px;
}
.luxury-products-section .view_more a {
  display: inline-flex;
  padding: 16px 40px;
  border: 1px solid #000;
  color: #000;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-family: 'Inter', sans-serif;
}
.luxury-products-section .view_more a:hover {
  background: #000;
  color: #fff;
  text-decoration: none;
}

/* Global CTA button refinement */
.btn-outline-dark,
.luxury-products-section .view_more a {
  transition: all 0.3s ease;
}
.luxury-products-section .featured-products { margin: 0; padding: 0; }

/* --- Footer PS module overrides for luxury look --- */
.site-footer .links { color: rgba(255,255,255,0.6); }
.site-footer .links .col-md-6 { width: 100%; }
.site-footer .links h3 {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 500;
  color: #fff;
  font-family: 'Inter', sans-serif;
  margin-bottom: 16px;
}
.site-footer .links .title span.h3 {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 500;
  color: #fff;
  font-family: 'Inter', sans-serif;
}
.site-footer .links ul { list-style: none; padding: 0; }
.site-footer .links ul.collapse { display: block !important; height: auto !important; }
.site-footer .links li { margin-bottom: 12px; }
.site-footer .links a {
  color: rgba(255,255,255,0.6) !important;
  font-size: 14px;
}
.site-footer .links a:hover { color: #fff !important; text-decoration: none; }
.site-footer .links .navbar-toggler { display: none; }
.site-footer .links .title .pull-xs-right { display: none; }
.site-footer .links .wrapper { padding: 0; }

/* --- Style product modules inside bestsellers section --- */
.home-bestsellers .featured-products { margin: 0; padding: 0; }
.home-bestsellers .linia_tytul { display: none; }
.home-bestsellers .view_more { display: none; }
.home-bestsellers .SliderNavigation { display: none; }
.home-bestsellers .products { width: 100%; }
.home-bestsellers .product_list {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  list-style: none;
  padding: 0;
  width: 100% !important;
}
@media (min-width: 768px) {
  .home-bestsellers .product_list { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
  .home-bestsellers .product_list { grid-template-columns: repeat(4, 1fr); }
}
.home-bestsellers .product_list .item,
.home-bestsellers .product_list .product_item,
.home-bestsellers .product_list > li,
.home-bestsellers .product_list .owl-item {
  width: 100% !important;
  float: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.home-bestsellers .owl-wrapper-outer,
.home-bestsellers .owl-wrapper {
  display: contents !important;
  width: auto !important;
  transform: none !important;
}
.home-bestsellers .product-miniature {
  background: transparent;
  border: none;
  box-shadow: none;
}
.home-bestsellers .thumbnail-container {
  box-shadow: none;
  border: none;
  background: transparent;
}
.home-bestsellers .product-miniature .thumbnail.product-thumbnail img,
.home-bestsellers .product-miniature .ddproduct-img1 {
  width: 100%;
  height: auto;
  aspect-ratio: 4/5;
  object-fit: cover;
}
.home-bestsellers .product-miniature .product-title a {
  color: #000;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 500;
}
.home-bestsellers .product-miniature .price {
  font-weight: 600;
  color: #000;
}
.home-bestsellers .product-miniature .product-flags .new {
  background: #eee;
  color: #000;
}

/* Force bestsellers grid product cards to take full width */
.home-bestsellers__grid .home-bestsellers__item {
  width: 100% !important;
  min-width: 0;
}
.home-bestsellers__grid .product-miniature {
  width: 100% !important;
  display: block !important;
}
.home-bestsellers__grid .thumbnail-container {
  width: 100% !important;
  display: block !important;
  box-shadow: none !important;
  border: none !important;
}
.home-bestsellers__grid .dd-product-image {
  width: 100% !important;
  overflow: hidden;
}
.home-bestsellers__grid .product-thumbnail {
  display: block !important;
  width: 100% !important;
}
.home-bestsellers__grid .ddproduct-img1,
.home-bestsellers__grid .product-thumbnail img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4/5;
  object-fit: cover;
  display: block !important;
}
.home-bestsellers__grid .drugi_image {
  display: none !important;
}
.home-bestsellers__grid .product-desc {
  padding: 12px 0 !important;
}
.home-bestsellers__grid .product-title {
  margin: 0 0 4px !important;
}
.home-bestsellers__grid .product-title a {
  color: #000 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}
.home-bestsellers__grid .price {
  font-weight: 600 !important;
  color: #000 !important;
}
.home-bestsellers__grid .pw-hideprices-text {
  font-size: 13px;
  color: #666;
  font-style: italic;
}

/* Global product card luxury styling */
.luxury-home-modules .product-miniature,
.luxury-products-section .product-miniature,
.home-bestsellers .product-miniature {
  background: transparent;
  border: none !important;
  box-shadow: none !important;
}
.luxury-home-modules .thumbnail-container,
.luxury-products-section .thumbnail-container,
.home-bestsellers .thumbnail-container {
  box-shadow: none !important;
  border: none !important;
  background: transparent;
}
.luxury-home-modules .dd-product-image,
.luxury-products-section .dd-product-image {
  overflow: hidden;
}
.luxury-home-modules .ddproduct-img1,
.luxury-products-section .ddproduct-img1,
.luxury-home-modules .product-thumbnail img,
.luxury-products-section .product-thumbnail img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4/5;
  object-fit: cover;
  transition: transform 500ms ease;
}
.luxury-home-modules .dd-product-image:hover img,
.luxury-products-section .dd-product-image:hover img {
  transform: scale(1.05);
}
.luxury-home-modules .product-title a,
.luxury-products-section .product-title a,
.home-bestsellers .product-title a {
  color: #000 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}
.luxury-home-modules .product-title a:hover,
.luxury-products-section .product-title a:hover {
  text-decoration: underline !important;
}
.luxury-home-modules .price,
.luxury-products-section .price {
  font-weight: 600 !important;
  color: #000 !important;
  font-size: 14px !important;
}
.luxury-home-modules .product-flags li,
.luxury-products-section .product-flags li {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 3px 8px;
}
.luxury-home-modules .product-flags .new { background: #eee; color: #000; }
.luxury-home-modules .product-flags .on-sale,
.luxury-home-modules .product-flags .discount { background: #000; color: #fff; }
/* PW Hide Prices styling */
.luxury-home-modules .pw-hideprices-text,
.luxury-products-section .pw-hideprices-text {
  font-size: 13px;
  color: #666;
  font-style: italic;
}

/* --- Fix header positioning --- */
#header {
  position: relative !important;
  background: #fff;
}

/* Hide wrapper section shadow and padding for homepage */
.page-home #wrapper { padding-top: 0; background: #fff; }
.page-home #wrapper > .container { max-width: 100%; padding: 0; }
.page-home #content-wrapper { padding: 0; }
.page-home .breadcrumb { display: none; }

/* ============================================================
   FIXES - zgłoszone problemy
   ============================================================ */

/* FIX 1: Drugie zdjęcie produktu (hover) rozlewa się na cała stronę */
.dd-product-image { position: relative; overflow: hidden; }
.dd-product-image .drugi_image {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  opacity: 0;
  transition: opacity 400ms ease;
  z-index: 1;
}
.dd-product-image:hover .drugi_image {
  opacity: 1;
}
/* Ukryj inne hover obrazki z modułu displayDdProductHover */
.dd-product-image [class*="hover-image"],
.dd-product-image .product-hover-image {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* FIX 2: Dwie wyszukiwarki - ukryj tę w ikonie (displayNav2), zostaw tę w środku */
.site-header__icons .search-widget,
.site-header__icons #_desktop_search_plugin,
.site-header__icons .searchtoggle { display: none !important; }

/* FIX 3: Footer - ostyluj moduły PS z displayFooter */
.site-footer .links {
  color: rgba(255,255,255,0.6);
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
  padding: 0 !important;
}
.site-footer .links .row {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  gap: 24px;
}
.site-footer .links .col-md-6 {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  padding: 0 !important;
}
@media (min-width: 1024px) {
  .site-footer .links .col-md-6 {
    width: auto !important;
    max-width: none !important;
    flex: 1 !important;
  }
}
.site-footer .links .wrapper {
  padding: 0 !important;
  margin-bottom: 32px;
}
.site-footer .links h3,
.site-footer .links .h3 {
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  font-weight: 500 !important;
  color: #fff !important;
  font-family: 'Inter', sans-serif !important;
  margin-bottom: 16px !important;
}
/* Pokaż listy linków (są ukryte przez collapse) */
.site-footer .links ul.collapse {
  display: block !important;
  height: auto !important;
}
.site-footer .links ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.site-footer .links li {
  margin-bottom: 10px !important;
}
.site-footer .links a {
  color: rgba(255,255,255,0.6) !important;
  font-size: 14px !important;
}
.site-footer .links a:hover {
  color: #fff !important;
  text-decoration: none !important;
}
/* Ukryj mobilne toggle w footerze */
.site-footer .links .title.clearfix.hidden-md-up { display: none !important; }
.site-footer .links .navbar-toggler { display: none !important; }
.site-footer .links .pull-xs-right { display: none !important; }
/* Reset all Bootstrap column classes inside footer */
.site-footer [class*="col-"] {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  padding: 0 !important;
  float: none !important;
}
/* Info o sklepie w footerze */
.site-footer .block-contact {
  color: rgba(255,255,255,0.5);
  font-size: 13px;
  line-height: 1.6;
}
.site-footer .block-contact .title { display: none; }
.site-footer .block-contact a { color: rgba(255,255,255,0.6) !important; }
.site-footer .block-contact a:hover { color: #fff !important; }
/* Twoje konto heading fix */
.site-footer .myaccount-title,
.site-footer .myaccount-title a {
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  font-weight: 500 !important;
  color: #fff !important;
  font-family: 'Inter', sans-serif !important;
  margin-bottom: 16px !important;
}
.site-footer .myaccount-title a:hover { color: rgba(255,255,255,0.7) !important; }

/* Block contact styling */
.site-footer .block-contact {
  font-size: 13px;
  line-height: 1.8;
}
.site-footer .block-contact-title {
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  font-weight: 500 !important;
  color: #fff !important;
  font-family: 'Inter', sans-serif !important;
  margin-bottom: 16px !important;
}
/* Newsletter */
.site-footer .block_newsletter {
  padding: 0 !important;
  margin: 0 !important;
}
.site-footer .block_newsletter .row { margin: 0; }
.site-footer .block_newsletter h2.newsletter {
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  font-weight: 500 !important;
  color: #fff !important;
  font-family: 'Inter', sans-serif !important;
  margin-bottom: 12px !important;
}
.site-footer .block_newsletter p {
  color: rgba(255,255,255,0.5);
  font-size: 12px;
  margin-bottom: 12px;
  padding: 0 !important;
}
.site-footer .block_newsletter .input-wrapper {
  width: 100%;
}
.site-footer .block_newsletter input[type="text"],
.site-footer .block_newsletter input[type="email"] {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid rgba(255,255,255,0.3) !important;
  color: #fff !important;
  padding: 8px 0 !important;
  font-size: 14px !important;
  width: 100% !important;
  outline: none !important;
  border-radius: 0 !important;
}
.site-footer .block_newsletter input::placeholder {
  color: rgba(255,255,255,0.4) !important;
}
.site-footer .block_newsletter .btn {
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.5) !important;
  color: #fff !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 8px 20px !important;
  margin-top: 12px !important;
  float: none !important;
  border-radius: 0 !important;
}
.site-footer .block_newsletter .btn:hover {
  background: #fff !important;
  color: #000 !important;
}

/* FIX 4: Announcement bar - already static in CSS above */

/* ============================================================
   DODATKOWE POPRAWKI
   ============================================================ */

/* Wrapper sekcji na stronach wewnętrznych */
#wrapper { background: #fff; box-shadow: none; }

/* Linki w headerze - wymuś czarny */
#header a { color: #222; }
#header a:hover { color: #000; text-decoration: none; }

/* Koszyk w headerze - popraw styl */
.site-header__icons .blockcart {
  background: transparent !important;
  height: auto !important;
  padding: 8px !important;
  margin: 0 !important;
}
.site-header__icons .cart-products-count {
  background: #000;
  color: #fff;
  font-size: 10px;
  min-width: 16px;
  height: 16px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  line-height: 1;
}
/* Cart preview dropdown */
.site-header__icons .blockcart {
  position: relative !important;
}
/* Cart preview — toggle behavior:
   - Desktop (hover:hover): pokazuje na hover via theme.css :hover rule
   - Touch (hover:none): tap = sticky :hover na iOS odpala theme.css rule
     również, więc na touch używamy klasy .is-open (sterowanej przez JS).
   .is-open ma wyższą specificity (3 ID + 1 class = 310) niż theme.css :hover
   (2 ID + 4 class = 240) — pokonuje również po dodaniu !important. */
#header div#_desktop_cart #koszykajax.is-open {
  opacity: 1 !important;
  visibility: visible !important;
  max-width: calc(100vw - 16px);
}
@media (hover: none), (pointer: coarse) {
  /* Na touch wyłączamy :hover trigger gdy preview NIE jest .is-open
     (żeby sticky :hover po tap nie pokazywał starego state). */
  #header div#_desktop_cart .cart_top:hover #koszykajax:not(.is-open) {
    opacity: 0 !important;
    visibility: hidden !important;
  }
}
#header #koszykajax {
  top: 100% !important;
  right: 0 !important;
  left: auto !important;
  width: 340px !important;
  background: #fff !important;
  border: 1px solid #eee !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.1) !important;
  z-index: 300 !important;
}

/* User info dropdown - czysty styl */
.site-header__icons .user-info {
  position: relative;
}
.site-header__icons .user-info .dropdown-menu {
  position: absolute;
  top: 100%;
  right: 0;
  background: #fff;
  border: 1px solid #eee;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  padding: 8px 0;
  min-width: 180px;
  z-index: 300;
  border-radius: 0;
}
.site-header__icons .user-info .dropdown-item {
  padding: 8px 20px;
  font-size: 13px;
  color: #222;
  display: block;
}
.site-header__icons .user-info .dropdown-item:hover {
  background: #f5f5f5;
  text-decoration: none;
}

/* SVG ikony w headerze - popraw rozmiar */
.site-header__icons svg {
  width: 22px !important;
  height: 22px !important;
}

/* Product card - wymuś aspect-ratio na obrazkach */
.product-miniature .product-thumbnail {
  display: block;
  overflow: hidden;
}
.product-miniature .ddproduct-img1 {
  width: 100% !important;
  height: auto;
  display: block;
}

/* Breadcrumb na podstronach */
.breadcrumb { background: transparent; font-size: 13px; }

/* Popraw product desc padding */
.product-desc { padding: 14px 0 !important; }
.product-description { padding: 0 !important; }
/* Product title - sentence case, refined */
.luxury-home-modules .product-title,
.luxury-products-section .product-title,
.home-bestsellers .product-title {
  margin-bottom: 6px !important;
}
.luxury-home-modules .product-title a,
.luxury-products-section .product-title a,
.home-bestsellers .product-title a {
  text-transform: none !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.01em !important;
}

/* Ukryj stary header/footer z beauty_cosmetic */
.header-top > .container > .row > .belka { display: none !important; }
.header-top > .container > .row > .tlo_menu { display: none !important; }
#mobile_top_menu_wrapper { display: none !important; }
.footer-container { display: none !important; }

/* Newsletter w footerze - ostyluj */
.site-footer .block_newsletter {
  margin-top: 16px;
}
.site-footer .block_newsletter form {
  display: flex;
  border-bottom: 1px solid rgba(255,255,255,0.3);
}
.site-footer .block_newsletter input[type="email"],
.site-footer .block_newsletter input[type="text"] {
  background: transparent !important;
  border: none !important;
  color: #fff !important;
  padding: 8px 0 !important;
  font-size: 14px !important;
  flex: 1;
  outline: none;
}
.site-footer .block_newsletter input::placeholder {
  color: rgba(255,255,255,0.4) !important;
}
.site-footer .block_newsletter button,
.site-footer .block_newsletter input[type="submit"] {
  background: transparent !important;
  border: none !important;
  color: #fff !important;
  cursor: pointer;
  padding: 8px !important;
}

/* Inne podstrony - czysty wrapper */
#wrapper > .container { max-width: 1280px; }

/* Ukryj stary belka header na wszystkich stronach */
.belka { display: none !important; }
.tlo_menu { display: none !important; }

/* Hero bez tytulu - fallback wygląd */
.hero__content:empty + .hero__ctas,
.hero__tag:empty { display: none; }

/* Popraw product hover image na stronach kategorii */
#js-product-list .dd-product-image { position: relative; overflow: hidden; }
#js-product-list .drugi_image {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  opacity: 0;
  transition: opacity 400ms ease;
  z-index: 1;
}
#js-product-list .dd-product-image:hover .drugi_image { opacity: 1; }

/* Mobile overrides moved to consolidated block below */

/* ============================================================
   CATEGORY / LISTING PAGES - Luxury Override
   ============================================================ */

/* Breadcrumb refinement
   FINDING-010: cross-page consistency — same component (.breadcrumb a)
   was rendering w300 on PDP and w500 on category. Unified to:
   non-current = Inter 12px w400 color #666 (legible but secondary),
   current = Inter 12px w500 color #000 (visible "you are here").
   ls 0.05em across the board, beats theme.css #wrapper specificity. */
.breadcrumb,
#wrapper .breadcrumb {
  background: transparent !important;
  padding: 16px 0 !important;
  margin: 0 !important;
  font-size: 12px !important;
  font-family: var(--font-body) !important;
  font-weight: 400 !important;
  letter-spacing: 0.05em !important;
  color: #666 !important;
  border: none !important;
}
.breadcrumb li,
#wrapper .breadcrumb li { color: #666 !important; font-weight: 400 !important; }
.breadcrumb li a,
#wrapper .breadcrumb li a { color: #666 !important; font-weight: 400 !important; transition: color 0.2s; }
.breadcrumb li a:hover,
#wrapper .breadcrumb li a:hover { color: #000 !important; text-decoration: none; }
.breadcrumb li::after,
.breadcrumb li .separator { color: #ccc; }
.breadcrumb li:last-child,
.breadcrumb li:last-child span,
#wrapper .breadcrumb li:last-child,
#wrapper .breadcrumb li:last-child a,
#wrapper .breadcrumb li:last-child span { color: #000 !important; font-weight: 500 !important; }
.breadcrumb ol { padding: 0; margin: 0; }

/* Category page header */
#js-product-list-header h1,
h1.h1,
.page-category h1 {
  font-family: 'Playfair Display', serif !important;
  font-size: 32px !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  color: #000 !important;
  margin-bottom: 16px !important;
  line-height: 1.2 !important;
}
@media (min-width: 768px) {
  #js-product-list-header h1,
  h1.h1,
  .page-category h1 { font-size: 40px !important; }
}

/* Category description */
#category-description,
.block-category .block-category-inner {
  font-size: 14px !important;
  line-height: 1.7 !important;
  color: #666 !important;
  font-weight: 300 !important;
  max-width: 720px;
  margin-bottom: 40px;
}

/* Left sidebar / facets */
#left-column,
#search_filters {
  font-family: 'Inter', sans-serif;
}
#search_filters .facet .title,
#search_filters .facet-title,
.block-categories .category-top-menu > li > a,
#left-column .block-categories .category-top-menu a {
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  font-weight: 500 !important;
  color: #000 !important;
  font-family: 'Inter', sans-serif !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid #eee !important;
  margin-bottom: 8px;
}
#search_filters .facet .facet-label a,
#search_filters .facet .facet-label label {
  font-size: 13px !important;
  color: #666 !important;
  font-weight: 400 !important;
  padding: 6px 0 !important;
}
#search_filters .facet .facet-label a:hover,
#search_filters .facet .facet-label label:hover { color: #000 !important; }

/* Sort by + product count */
.products-sort-order,
.sort-by-row {
  font-size: 13px !important;
  font-family: 'Inter', sans-serif !important;
}
.products-sort-order .select-title {
  border: 1px solid #eee !important;
  background: #fff !important;
  padding: 8px 16px !important;
  font-size: 13px !important;
  color: #000 !important;
  border-radius: 0 !important;
}
.products-sort-order .select-list { border-radius: 0 !important; }
.total-products { font-size: 13px; color: #999; font-weight: 300; }

/* Product list grid on category pages */
/* Kill Bootstrap row flex on the .products wrapper */
#js-product-list .products.row {
  display: block !important;
  margin: 0 !important;
}
/* The actual product list UL becomes a CSS grid */
#js-product-list .product_list,
#js-product-list .products > ul {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 24px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}
@media (min-width: 768px) {
  #js-product-list .product_list,
  #js-product-list .products > ul { grid-template-columns: repeat(3, 1fr) !important; gap: 32px !important; }
}
@media (min-width: 1200px) {
  #js-product-list .product_list,
  #js-product-list .products > ul { grid-template-columns: repeat(3, 1fr) !important; }
}
/* Kill Bootstrap column widths on product items */
#js-product-list .product_item,
#js-product-list .product_list > li {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  float: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Product cards in category - luxury style */
#js-product-list .product-miniature,
#js-product-list .js-product-miniature {
  width: 100% !important;
  float: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: #fff !important;
  border: none !important;
  box-shadow: none !important;
}
#js-product-list .thumbnail-container {
  width: 100% !important;
  box-shadow: none !important;
  border: none !important;
  background: #fff !important;
}
#js-product-list .dd-product-image {
  width: 100% !important;
  overflow: hidden;
}
#js-product-list .product-thumbnail {
  display: block !important;
  width: 100% !important;
}
#js-product-list .ddproduct-img1,
#js-product-list .product-thumbnail img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4/5;
  object-fit: cover;
  display: block !important;
  transition: transform 500ms cubic-bezier(0.4, 0, 0.2, 1);
}
#js-product-list .dd-product-image:hover img:first-child {
  transform: scale(1.03);
}
#js-product-list .product-desc,
#js-product-list .product-description {
  padding: 14px 0 !important;
}
#js-product-list .product-title {
  margin: 0 0 6px !important;
}
#js-product-list .product-title a {
  color: #000 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: 0.01em !important;
  line-height: 1.4 !important;
  transition: color 0.2s;
}
#js-product-list .product-title a:hover { color: #666 !important; text-decoration: none !important; }
#js-product-list .price {
  font-weight: 600 !important;
  color: #000 !important;
  font-size: 14px !important;
}
#js-product-list .regular-price {
  text-decoration: line-through;
  color: #999 !important;
  font-size: 13px !important;
}
#js-product-list .product-flags li {
  font-size: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 3px 8px !important;
  border-radius: 0 !important;
}
#js-product-list .product-flags .new { background: #eee !important; color: #000 !important; }
#js-product-list .product-flags .on-sale,
#js-product-list .product-flags .discount { background: #000 !important; color: #fff !important; }
/* PW Hide prices on category */
#js-product-list .pw-hideprices-text {
  font-size: 13px;
  color: #666;
  font-style: italic;
}
/* Hide second image on category */
#js-product-list .drugi_image { display: none !important; }

/* Pagination */
.pagination {
  font-family: 'Inter', sans-serif;
  margin-top: 48px;
}
.pagination a,
.pagination .current,
.pagination li a,
.pagination li span {
  border-radius: 0 !important;
  font-size: 13px !important;
  min-width: 40px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pagination .current a,
.pagination li.current span {
  background: #000 !important;
  color: #fff !important;
  border-color: #000 !important;
}
.pagination a:hover {
  background: #f5f5f5 !important;
  text-decoration: none !important;
}

/* ============================================================
   PRODUCT PAGE - Luxury Override
   ============================================================ */

/* Product page layout */
.page-product #wrapper { background: #fff; }
.page-product #wrapper > .container {
  max-width: 1440px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 24px;
  box-sizing: border-box;
}
@media (min-width: 768px) {
  .page-product #wrapper > .container { padding: 0 40px; }
}
@media (min-width: 1200px) {
  .page-product #wrapper > .container { padding: 0 56px; }
}
/* Upewniamy się że wewnętrzne kontenery PDP nie compress'ują się */
.page-product #content-wrapper,
.page-product .product-detail.pdp-v2 {
  width: 100%;
  max-width: 100%;
  margin: 0;
}

/* Product images */
.page-product .product-images,
.page-product .images-container {
  background: #f8f8f8;
}
.page-product .product-cover img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.page-product .product-thumbs img,
.page-product .js-modal-product-images img {
  border: 1px solid transparent;
  transition: border-color 0.2s;
  cursor: pointer;
}
.page-product .product-thumbs img:hover,
.page-product .product-thumbs .selected img {
  border-color: #000;
}

/* Product info area */
.page-product h1.h1,
.page-product .h1[itemprop="name"] {
  font-family: 'Playfair Display', serif !important;
  font-size: 28px !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  color: #000 !important;
  line-height: 1.2 !important;
  margin-bottom: 16px !important;
}
@media (min-width: 768px) {
  .page-product h1.h1,
  .page-product .h1[itemprop="name"] { font-size: 36px !important; }
}

/* Product price */
.page-product .current-price,
.page-product .product-price {
  font-size: 24px !important;
  font-weight: 600 !important;
  color: #000 !important;
  margin-bottom: 16px;
}
.page-product .regular-price {
  text-decoration: line-through;
  color: #999;
  font-size: 16px;
}
.page-product .discount-percentage,
.page-product .discount-amount {
  color: #ff4c4c;
  font-size: 14px;
}
.page-product .tax-shipping-delivery-label {
  font-size: 12px;
  color: #999;
  font-weight: 300;
}

/* Product description */
.page-product .product-description,
.page-product #product-description {
  font-size: 15px !important;
  line-height: 1.7 !important;
  color: #444 !important;
  font-weight: 300 !important;
}

/* Product quantity selector */
.page-product .qty-selector,
.page-product .product-quantity {
  margin-bottom: 24px;
}
.page-product .qty input,
.page-product .product-quantity input[type="number"] {
  border: 1px solid #eee !important;
  border-radius: 0 !important;
  text-align: center;
  font-size: 14px !important;
  width: 60px !important;
  height: 44px !important;
  font-family: 'Inter', sans-serif !important;
}
.page-product .product-quantity .input-group-btn-vertical button,
.page-product .bootstrap-touchspin .btn {
  border-radius: 0 !important;
  border: 1px solid #eee !important;
  background: #fff !important;
  color: #000 !important;
}
.page-product .bootstrap-touchspin .btn:hover { background: #f5f5f5 !important; }

/* Add to cart button */
.page-product .add-to-cart,
.page-product .btn-primary.add-to-cart {
  background: #000 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 16px 40px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  font-family: 'Inter', sans-serif !important;
  transition: background 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  min-height: 52px;
}
.page-product .add-to-cart:hover,
.page-product .btn-primary.add-to-cart:hover {
  background: #222 !important;
}
.page-product .add-to-cart:focus {
  outline: 2px solid #000;
  outline-offset: 2px;
}

/* Product tabs */
.page-product .tabs,
.page-product .product-tabs {
  border: none !important;
  margin-top: 48px;
}
.page-product .product-description-title {
  font-family: 'Inter', sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: #000;
  margin: 0 0 24px;
  padding-bottom: 12px;
  border-bottom: 1px solid #eee;
}
.page-product .nav-tabs {
  border-bottom: 1px solid #eee !important;
  margin-bottom: 32px;
}
.page-product .nav-tabs .nav-link {
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  font-weight: 500 !important;
  color: #999 !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  padding: 12px 24px !important;
  background: transparent !important;
  font-family: 'Inter', sans-serif !important;
  transition: color 0.2s, border-color 0.2s;
}
.page-product .nav-tabs .nav-link:hover { color: #000 !important; }
.page-product .nav-tabs .nav-link.active {
  color: #000 !important;
  border-bottom-color: #000 !important;
  background: transparent !important;
}
.page-product .tab-content {
  font-size: 14px;
  line-height: 1.7;
  color: #444;
  font-weight: 300;
}

/* Product features / data sheet */
.page-product .product-features,
.page-product .data-sheet {
  font-size: 14px;
}
.page-product .data-sheet dt,
.page-product .product-features dt { font-weight: 500; color: #000; }
.page-product .data-sheet dd,
.page-product .product-features dd { color: #666; font-weight: 300; }

/* Related products / accessories */
.page-product .products-section-title,
.page-product .featured-products h2,
.page-product .crossseling-title,
.page-product .product-accessories h2 {
  font-family: 'Playfair Display', serif !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  text-align: center !important;
  margin-bottom: 40px !important;
  letter-spacing: 0.02em;
}

/* Product variants */
.page-product .product-variants .product-variants-item label {
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  font-weight: 500 !important;
  color: #000 !important;
  margin-bottom: 8px !important;
}
.page-product .product-variants select {
  border: 1px solid #eee !important;
  border-radius: 0 !important;
  font-size: 14px !important;
  padding: 10px 16px !important;
  color: #000 !important;
  font-family: 'Inter', sans-serif !important;
  background: #fff !important;
}
.page-product .product-variants select:focus {
  border-color: #000 !important;
  outline: none !important;
}

/* ============================================================
   GLOBAL REFINEMENTS - Per Design Brief
   ============================================================ */

/* Unified transition easing - applied to interactive elements only */

/* Heading letter-spacing per brief */
h1, h2, h3, h4, .h1, .h2, .h3, .h4 {
  letter-spacing: 0.03em;
}

/* Increase section padding for luxury feel */
.home-bestsellers { padding: 100px 0 !important; }
.home-testimonials { padding: 120px 0 140px !important; }
.home-editorial__content { padding: 64px 24px !important; }
@media (min-width: 1024px) {
  .home-editorial__content { padding: 64px 96px !important; }
}

/* Buttons global refinement */
.btn-hero-primary,
.btn-hero-secondary,
.btn-outline-dark,
.btn-quick-add,
.page-product .add-to-cart {
  transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Links - clean transitions */
a { transition: color 0.25s cubic-bezier(0.4, 0, 0.2, 1); }

/* Container max-width consistency */
.container {
  max-width: 1280px;
}

/* Content wrapper spacing */
#content-wrapper {
  padding-top: 24px;
  padding-bottom: 48px;
}
#index #content-wrapper {
  padding-top: 0;
  padding-bottom: 0;
}

#main .page-footer {
  margin-bottom:0!important;
}
/* Cards - subtle hover lift */
#js-product-list .thumbnail-container,
.home-bestsellers .thumbnail-container,
.luxury-home-modules .thumbnail-container,
.luxury-products-section .thumbnail-container {
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
#js-product-list .thumbnail-container:hover,
.home-bestsellers .thumbnail-container:hover,
.luxury-home-modules .thumbnail-container:hover,
.luxury-products-section .thumbnail-container:hover {
  transform: translateY(-2px);
}

/* Images - ensure visibility */

/* ============================================================
   INNER PAGES - Contact, CMS, Account
   ============================================================ */

/* CMS pages */
.page-cms #content {
  font-size: 15px;
  line-height: 1.7;
  color: #444;
  font-weight: 300;
}
.page-cms h1,
.page-cms .h1 {
  font-family: 'Playfair Display', serif !important;
  font-size: 32px !important;
  font-weight: 400 !important;
  margin-bottom: 32px !important;
}

/* Fix: heading-cms underline (theme.css ::before/::after) had fixed top:40px,
   which overlapped wrapped titles. Anchor underlines below the title instead. */
.heading-cms { padding-bottom: 18px !important; }
.heading-cms::before,
.heading-cms::after {
  top: auto !important;
  bottom: 0 !important;
}
@media (max-width: 768px) {
  .heading-cms { padding-bottom: 16px !important; }
  .heading-cms::before { width: min(250px, 90%) !important; }
}

/* Account pages */
.page-my-account h1,
.page-authentication h1,
.page-customer-account h1 {
  font-family: 'Playfair Display', serif !important;
  font-size: 28px !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em;
}

/* Forms styling */
.form-control {
  border-radius: 0 !important;
  border: 1px solid #eee !important;
  font-size: 14px !important;
  padding: 12px 16px !important;
  font-family: 'Inter', sans-serif !important;
  transition: border-color 0.2s;
}
.form-control:focus {
  border-color: #000 !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Generic buttons */
.btn-primary {
  background: #000 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  font-family: 'Inter', sans-serif !important;
  padding: 12px 32px !important;
  transition: background 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
.btn-primary:hover { background: #222 !important; color: #fff !important; }

/* Contact page */
.contact-form label {
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  font-weight: 500 !important;
  color: #000 !important;
  margin-bottom: 8px !important;
}

/* ============================================================
   CHECKOUT - Clean and Trustworthy
   ============================================================ */

.page-order h1,
.page-cart h1 {
  font-family: 'Playfair Display', serif !important;
  font-size: 28px !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em;
}
.page-order .card,
.page-cart .card {
  border: 1px solid #eee !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.page-order .card-header,
.page-cart .card-header {
  background: #fff !important;
  border-bottom: 1px solid #eee !important;
  border-radius: 0 !important;
}
.page-order .step-title,
.checkout-step .step-title {
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  font-weight: 500 !important;
}

/* Cart table */
.page-cart .product-line-grid {
  border-bottom: 1px solid #f5f5f5;
  padding: 24px 0;
}
.page-cart .product-line-info .label {
  font-weight: 500;
  font-size: 14px;
}
.page-cart .cart-summary-line {
  font-size: 14px;
  padding: 8px 0;
}

/* ============================================================
   RESPONSIVE - Category & Product Mobile
   ============================================================ */
@media (max-width: 767px) {

  /* === GLOBAL MOBILE === */
  /* iOS Safari quirk: overflow-x: hidden na samym body NIE blokuje horizontal
     scroll gdy potomek ma absolute position wystający poza viewport.
     Trzeba na html. NIE dajemy overflow:hidden na .site-header bo to ucina
     absolute popup menu (user-menu, cart preview). */
  html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    width: 100% !important;
    position: relative;
  }
  #wrapper, #content-wrapper, main, #notifications, .site-footer {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
  #header, .site-header {
    max-width: 100% !important;
  }
  #wrapper > .container { padding-left: 16px !important; padding-right: 16px !important; }
  .container { max-width: 100% !important; padding-left: 16px !important; padding-right: 16px !important; }
  #content-wrapper { padding-top: 16px; padding-bottom: 32px; }
  /* PS notifications po zalogowaniu — zapobiec overflow z długiego tekstu */
  #notifications, #notifications .container, #notifications .alert, #notifications .alert ul, #notifications .alert li {
    max-width: 100% !important;
    word-break: break-word;
    overflow-wrap: break-word;
    box-sizing: border-box;
  }
  /* Jeśli user-menu wpada zalogowany z długim customer name */
  .site-header__icons .user-menu {
    max-width: calc(100vw - 32px) !important;
    word-break: break-word;
  }

  /* === HEADER MOBILE === */
  .site-header__top { height: 56px !important; }
  .site-header__logo img { max-height: 32px !important; }
  .site-header__search { display: none !important; }
  .site-header__icons svg { width: 22px !important; height: 22px !important; }
  /* Konto + koszyk na mobile — wymuś widoczność (theme.css:18887 chowa #_desktop_cart na ≤769) */
  body .site-header__icons,
  body .site-header__icons #_desktop_user_info,
  body #_desktop_cart,
  body .site-header__icons #_desktop_cart,
  body .site-header__icons .user-info,
  body .site-header__icons .blockcart {
    display: flex !important;
    align-items: center !important;
    visibility: visible !important;
  }
  .site-header__icons .user-info,
  .site-header__icons .blockcart {
    min-width: 44px; min-height: 44px;
    justify-content: center;
  }
  .site-header__icons .user-info > span,
  .site-header__icons .blockcart > a {
    padding: 8px;
    display: flex; align-items: center; justify-content: center;
  }
  .site-header__icons .user-info svg,
  .site-header__icons .blockcart svg { width: 22px !important; height: 22px !important; }
  .announcement-bar { font-size: 9px; padding: 8px 12px; letter-spacing: 0.15em; }
  .announcement-bar__left { display: none !important; }
  .announcement-bar__right { display: none !important; }

  /* === HOMEPAGE MOBILE === */
  .hero { min-height: 500px !important; max-height: 700px !important; }
  .hero__content { text-align: center !important; display: flex; flex-direction: column; align-items: center; }
  .hero__title { font-size: 32px !important; max-width: 300px; }
  .hero__desc { font-size: 13px !important; max-width: 300px; text-align: center; }
  .hero__tag { font-size: 10px !important; }
  .hero__ctas { width: 100%; max-width: 300px; flex-direction: column !important; gap: 12px !important; }
  .hero__ctas .btn-hero-primary,
  .hero__ctas .btn-hero-secondary { width: 100%; padding: 14px 20px !important; font-size: 11px !important; }

  /* Bestsellers mobile */
  .luxury-home-modules > .home-bestsellers__products { padding: 64px 16px !important; }
  .luxury-home-modules > .home-bestsellers__products::before { font-size: 28px !important; }
  .luxury-home-modules .product_list,
  .luxury-products-section .product_list {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
  }

  /* Editorial mobile */
  .home-editorial { flex-direction: column !important; }
  .home-editorial__image { height: 300px !important; }
  .home-editorial__content { padding: 40px 20px !important; }
  .home-editorial__inner h2 { font-size: 26px !important; }
  .home-editorial__inner p { font-size: 14px !important; }
  .home-editorial__features li { font-size: 13px !important; }

  /* Testimonials mobile */
  .home-testimonials { padding: 64px 16px !important; }
  .home-testimonials h2 { font-size: 26px !important; margin-bottom: 40px !important; }
  .home-testimonials__grid { grid-template-columns: 1fr !important; gap: 40px !important; }
  .home-testimonials__quote { font-size: 16px !important; }

  /* === CATEGORY MOBILE === */
  #left-column {
    margin-bottom: 16px;
    padding: 0 !important;
  }
  #js-product-list .products.row { padding: 0 !important; }
  #js-product-list .product_list {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
  }
  #js-product-list .product-title a { font-size: 11px !important; line-height: 1.3 !important; }
  #js-product-list .price { font-size: 12px !important; }
  #js-product-list .product-desc,
  #js-product-list .product-description { padding: 8px 0 !important; }
  h1.h1, .page-category h1 { font-size: 26px !important; }
  .total-products { font-size: 12px !important; }
  .products-sort-order .select-title { font-size: 12px !important; padding: 6px 12px !important; }

  /* === PRODUCT PAGE MOBILE === */
  .page-product #wrapper > .container { padding: 0 16px !important; }
  .page-product h1.h1,
  .page-product .h1[itemprop="name"] { font-size: 22px !important; line-height: 1.25 !important; }
  .page-product .current-price,
  .page-product .product-price { font-size: 20px !important; }
  .page-product .add-to-cart,
  .page-product .btn-primary.add-to-cart {
    width: 100% !important;
    padding: 14px 24px !important;
    font-size: 12px !important;
  }
  .page-product .product-quantity { flex-wrap: wrap; gap: 12px; }
  .page-product .product-information { padding-left: 0 !important; padding-top: 20px !important; }
  .page-product .product-leftside,
  .page-product .product-cover-wrap { padding: 8px !important; }
  .page-product .product-images,
  .page-product .js-qv-product-images { gap: 4px !important; margin-top: 8px !important; }
  .page-product .product-images > li,
  .page-product .thumb-container { width: 56px !important; height: 56px !important; }

  /* Product carousels - MUST not overflow on mobile */
  .page-product .featured-products,
  .page-product .crossselling-products,
  .page-product [class*="accessories"] {
    overflow: hidden !important;
    max-width: 100vw !important;
    width: 100% !important;
  }
  .page-product .owl-wrapper-outer {
    overflow: hidden !important;
    max-width: 100% !important;
  }
  .page-product .owl-wrapper {
    max-width: none;
  }
  .page-product .products,
  .page-product .product_list {
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  /* Convert owl carousel to horizontal scroll on mobile */
  .page-product .owl-wrapper {
    display: flex !important;
    flex-wrap: nowrap !important;
    transform: none !important;
    width: auto !important;
  }
  .page-product .owl-item {
    flex: 0 0 45% !important;
    max-width: 45% !important;
    width: 45% !important;
    margin-right: 12px !important;
  }
  .page-product .owl-wrapper-outer {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding-bottom: 8px;
  }
  .page-product .owl-item {
    scroll-snap-align: start;
  }
  /* Hide owl navigation on mobile - use swipe */
  .page-product .SliderNavigation,
  .page-product .owl-nav,
  .page-product .owl-buttons,
  .page-product .btn.prev,
  .page-product .btn.next { display: none !important; }
  /* Section titles on mobile */
  .page-product .linia_tytul { font-size: 20px !important; margin: 32px 0 20px !important; }

  /* Product tabs mobile */
  .page-product .nav-tabs .nav-link { padding: 10px 12px !important; font-size: 11px !important; letter-spacing: 0.1em !important; }

  /* === FOOTER MOBILE === */
  .site-footer { padding-top: 48px !important; }
  .site-footer__grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .site-footer__brand { margin-bottom: 8px; }
  .site-footer__logo img { max-height: 32px !important; }
  .site-footer__tagline { font-size: 12px !important; }
  .site-footer .links .col-md-6 {
    width: 100% !important;
    flex: 0 0 100% !important;
  }
  .site-footer .links .row { gap: 16px !important; }
  .site-footer__bottom { flex-direction: column !important; text-align: center; gap: 8px !important; padding-top: 24px !important; }
  .site-footer__bottom p { font-size: 11px !important; }

  /* === INNER PAGES MOBILE === */
  .page-cms h1 { font-size: 24px !important; }
  .page-order h1,
  .page-cart h1 { font-size: 22px !important; }
  .breadcrumb { font-size: 11px !important; padding: 12px 0 !important; }
}

/* ============================================================
   PRODUCT PAGE - Related Products / Carousel Overrides
   ============================================================ */

/* Related products + accessories carousel - luxury override */
.page-product .product_list,
.page-product .products {
  padding: 0 !important;
}
.page-product .owl-wrapper-outer {
  overflow: hidden;
}
/* Carousel navigation arrows - minimal style */
.page-product .SliderNavigation,
.page-product .owl-nav,
.page-product .owl-buttons {
  position: absolute;
  top: 50%;
  width: 100%;
  transform: translateY(-50%);
  pointer-events: none;
  z-index: 5;
}
.page-product .SliderNavigation a,
.page-product .SliderNavigation button,
.page-product .owl-prev,
.page-product .owl-next {
  pointer-events: auto;
  background: #fff !important;
  color: #000 !important;
  border: 1px solid #eee !important;
  border-radius: 50% !important;
  width: 40px !important;
  height: 40px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 16px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  position: absolute;
  padding: 0 !important;
}
.page-product .SliderNavigation a:hover,
.page-product .owl-prev:hover,
.page-product .owl-next:hover {
  background: #000 !important;
  color: #fff !important;
  border-color: #000 !important;
  text-decoration: none !important;
}
.page-product .SliderNavigation .SliderPrev,
.page-product .owl-prev { left: -20px; }
.page-product .SliderNavigation .SliderNext,
.page-product .owl-next { right: -20px; }

/* Section titles for related products */
.page-product .linia_tytul {
  font-family: 'Playfair Display', serif !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  text-align: center !important;
  letter-spacing: 0.02em !important;
  color: #000 !important;
  text-transform: none !important;
  margin: 48px 0 32px !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}
@media (min-width: 768px) {
  .page-product .linia_tytul { font-size: 26px !important; margin: 64px 0 40px !important; }
}

/* Product page - product images section */
.page-product .product-leftside,
.page-product .product-cover-wrap {
  background: #f8f8f8;
  padding: 16px;
}
.page-product .product-cover {
  text-align: center;
}
.page-product .product-cover img {
  max-height: 500px;
  width: auto;
  max-width: 100%;
}
/* Product thumbnails */
.page-product .product-images,
.page-product .js-qv-product-images {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}
.page-product .product-images > li,
.page-product .thumb-container {
  width: 72px;
  height: 72px;
  overflow: hidden;
  cursor: pointer;
  border: 1px solid #eee;
  transition: border-color 0.2s;
}
.page-product .product-images > li:hover,
.page-product .thumb-container:hover,
.page-product .thumb-container.selected {
  border-color: #000;
}
.page-product .product-images > li img,
.page-product .thumb-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Product info right side */
.page-product .product-information {
  padding-left: 32px;
}
@media (max-width: 767px) {
  .page-product .product-information { padding-left: 0; padding-top: 24px; }
}

/* Product reference / SKU */
.page-product .product-reference {
  font-size: 12px;
  color: #999;
  letter-spacing: 0.05em;
  margin-bottom: 16px;
}

/* Product availability */
.page-product .product-availability {
  font-size: 12px;
  margin-bottom: 16px;
}
.page-product .product-availability .product-available {
  color: #4cbb6c;
}
.page-product .product-availability .product-unavailable {
  color: #ff4c4c;
}

/* Product actions section */
.page-product .product-actions {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid #f0f0f0;
}

/* Social sharing */
.page-product .social-sharing {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid #f0f0f0;
}
.page-product .social-sharing li a {
  color: #999;
  font-size: 16px;
  transition: color 0.2s;
}
.page-product .social-sharing li a:hover { color: #000; }

/* Category page sidebar - left column block styling */
#left-column .block-categories {
  margin-bottom: 32px;
}
#left-column .block-categories .category-top-menu {
  list-style: none;
  padding: 0;
}
#left-column .block-categories .category-top-menu li {
  margin-bottom: 0;
}
#left-column .block-categories .category-top-menu a {
  display: block;
  padding: 10px 0 !important;
  font-size: 13px !important;
  color: #666 !important;
  border-bottom: 1px solid #f5f5f5 !important;
  font-family: 'Inter', sans-serif !important;
  transition: color 0.2s;
}
#left-column .block-categories .category-top-menu a:hover {
  color: #000 !important;
  text-decoration: none !important;
}
#left-column .block-categories .category-top-menu .category-sub-menu {
  padding-left: 16px;
}
/* Active category */
#left-column .block-categories .category-top-menu .current > a {
  color: #000 !important;
  font-weight: 500 !important;
}

/* View more button on category */
#js-product-list .view_more,
#js-product-list .load-more {
  text-align: center;
  margin-top: 48px;
}
#js-product-list .view_more a,
#js-product-list .load-more a {
  display: inline-flex;
  padding: 14px 36px;
  border: 1px solid #000;
  color: #000;
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-family: 'Inter', sans-serif;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
#js-product-list .view_more a:hover,
#js-product-list .load-more a:hover {
  background: #000;
  color: #fff;
  text-decoration: none;
}

/* ============================================================
   PRINT STYLES
   ============================================================ */
@media print {
  .announcement-bar,
  .site-header__nav,
  .mobile-menu,
  .mobile-backdrop,
  .site-footer { display: none !important; }
  body { color: #000 !important; font-size: 12pt !important; }
}

/* ============================================================
   PDP REDESIGN — design tokens + .pdp-v2 scope (PR 1)
   Nowe style dla strony produktowej żyją wewnątrz .pdp-v2, żeby
   nie dotykać pozostałych stron. Tokeny prefiksowane --pdp-*.
   ============================================================ */
:root {
  --pdp-color-bg: #FFFFFF;
  --pdp-color-ink: #0C0C0C;
  --pdp-color-ink-soft: #1A1A1A;
  --pdp-color-muted: #6B6B6B;
  --pdp-color-line: #E5E5E5;
  --pdp-color-surface: #F7F7F7;
  --pdp-color-accent: #0C0C0C;
  --pdp-color-accent-hover: #2A2A2A;
  --pdp-color-success: #16a34a;
  --pdp-color-warning: #d97706;
  --pdp-color-error: #dc2626;

  --pdp-font-heading: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --pdp-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --pdp-fs-h1: clamp(24px, 3.2vw, 34px);
  --pdp-fs-h2: clamp(18px, 2.2vw, 22px);
  --pdp-fs-h3: 16px;
  --pdp-fs-body: 15px;
  --pdp-fs-small: 13px;
  --pdp-lh-tight: 1.2;
  --pdp-lh-body: 1.6;
  --pdp-tracking-ui: 0.12em;

  --pdp-space-1: 4px;
  --pdp-space-2: 8px;
  --pdp-space-3: 12px;
  --pdp-space-4: 16px;
  --pdp-space-5: 24px;
  --pdp-space-6: 32px;
  --pdp-space-8: 48px;
  --pdp-space-10: 64px;

  --pdp-radius-sm: 4px;
  --pdp-radius-md: 8px;
  --pdp-radius-lg: 12px;
  --pdp-radius-pill: 999px;

  --pdp-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
  --pdp-shadow-md: 0 4px 24px rgba(0, 0, 0, 0.08);
  --pdp-shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.12);

  --pdp-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --pdp-dur-fast: 150ms;
  --pdp-dur-base: 250ms;
  --pdp-dur-slow: 400ms;

  --pdp-touch-min: 44px;
}

.pdp-v2 {
  font-family: var(--pdp-font-body);
  font-size: var(--pdp-fs-body);
  line-height: var(--pdp-lh-body);
  color: var(--pdp-color-ink);
  background: var(--pdp-color-bg);
}
.pdp-v2 h1, .pdp-v2 h2, .pdp-v2 h3,
.pdp-v2 .h1, .pdp-v2 .h2, .pdp-v2 .h3 {
  font-family: var(--pdp-font-heading);
  line-height: var(--pdp-lh-tight);
  color: var(--pdp-color-ink);
}
.pdp-v2 h1 { font-size: var(--pdp-fs-h1); font-weight: 700; }
.pdp-v2 h2 { font-size: var(--pdp-fs-h2); font-weight: 600; }
.pdp-v2 h3 { font-size: var(--pdp-fs-h3); font-weight: 600; }

/* FINDING-002: product-miniature cards inside PDP carousels (related,
   cross-sell, accessories) must NOT inherit PDP heading scale —
   they are independent product cards and follow the global card style
   (Playfair 16px w400 uppercase) used on home + category. */
.pdp-v2 .product-miniature h3,
.pdp-v2 .product-miniature .h3 {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  line-height: 1.3;
}

.pdp-v2 :focus-visible {
  outline: 2px solid var(--pdp-color-ink);
  outline-offset: 2px;
  border-radius: var(--pdp-radius-sm);
}
.pdp-v2 :focus:not(:focus-visible) { outline: none; }

@media (prefers-reduced-motion: reduce) {
  .pdp-v2 *,
  .pdp-v2 *::before,
  .pdp-v2 *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
   PDP GALLERY (PR 2) — Swiper main + thumbs + zoom
   Zeruje CLS via aspect-ratio, max-width 100%, object-fit.
   ============================================================ */
/* Zredukowane odstępy między breadcrumb/nav a główną sekcją 2-col
   oraz między .product-detail a następującymi sekcjami (accordion) */
body.page-product .breadcrumb {
  margin-bottom: 0;
  padding-top: var(--pdp-space-2);
  padding-bottom: var(--pdp-space-2);
  background: transparent;
}
body.page-product #wrapper .breadcrumb { padding: var(--pdp-space-2) 0; }
body.page-product #content,
body.page-product #product #content { margin-top: 0; padding-top: 0; }
.pdp-v2.product-detail { margin-top: 0; padding-top: 0; }

/* Grid items (gallery + info) align to top — nie stretch — żeby info
   panel nie wyglądał na wyśrodkowany pionowo gdy jest krótszy od galerii.
   minmax(0, 1fr) forces faktyczny równy podział; samo 1fr daje min-content
   intrinsic co przy długich H1 może rozjechać proporcje. */
.pdp-v2 ._1apwheh0 {
  align-items: start;
  grid-template-columns: 1fr !important;
  gap: var(--pdp-space-5);
  width: 100%;
  max-width: 100%;
}
@media (min-width: 900px) {
  .pdp-v2 ._1apwheh0 {
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, 1fr) !important;
    gap: var(--pdp-space-6);
  }
}
@media (min-width: 1200px) {
  .pdp-v2 ._1apwheh0 {
    grid-template-columns: minmax(0, 1.3fr) minmax(380px, 1fr) !important;
    gap: var(--pdp-space-8);
  }
}
/* Override theme.css .ks837i0 — usuwamy flex-align:center + space-between */
.pdp-v2 .ks837i0 {
  display: block;
  padding-top: 0;
  padding-bottom: 0;
}
.pdp-v2 .ks837i1 {
  display: block;
}
.pdp-v2 .pdp-gallery {
  display: flex;
  flex-direction: column;
  gap: var(--pdp-space-3);
  width: 100%;
  min-width: 0;      /* CRITICAL: allow shrink in grid item */
  max-width: 100%;
}
.pdp-v2 .pdp-gallery__main {
  position: relative;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  background: var(--pdp-color-surface);
  overflow: hidden;
  border-radius: var(--pdp-radius-md);
}
/* Aspect-ratio via padding trick (bardziej niezawodne niż CSS aspect-ratio
   w grid-item z dynamicznym JS — Swiper czyta offsetWidth przed finalnym layout) */
.pdp-v2 .pdp-gallery__main::before {
  content: '';
  display: block;
  padding-bottom: 100%;
}
.pdp-v2 .pdp-gallery__main > .swiper-wrapper {
  position: absolute;
  inset: 0;
}
.pdp-v2 .pdp-gallery__main .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--pdp-color-surface);
  width: 100%;
  height: 100%;
}
.pdp-v2 .pdp-gallery__main .swiper-zoom-container {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pdp-v2 .pdp-gallery__img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.pdp-v2 .pdp-gallery__main .swiper-button-prev,
.pdp-v2 .pdp-gallery__main .swiper-button-next {
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid var(--pdp-color-line);
  border-radius: var(--pdp-radius-pill);
  color: var(--pdp-color-ink);
  opacity: 0;
  transition: opacity var(--pdp-dur-base) var(--pdp-ease), background var(--pdp-dur-fast) var(--pdp-ease);
  margin-top: -20px;
}
.pdp-v2 .pdp-gallery__main:hover .swiper-button-prev,
.pdp-v2 .pdp-gallery__main:hover .swiper-button-next,
.pdp-v2 .pdp-gallery__main:focus-within .swiper-button-prev,
.pdp-v2 .pdp-gallery__main:focus-within .swiper-button-next {
  opacity: 1;
}
.pdp-v2 .pdp-gallery__main .swiper-button-prev::after,
.pdp-v2 .pdp-gallery__main .swiper-button-next::after {
  font-size: 16px;
  font-weight: 700;
}
.pdp-v2 .pdp-gallery__main .swiper-button-prev:hover,
.pdp-v2 .pdp-gallery__main .swiper-button-next:hover {
  background: #fff;
}
.pdp-v2 .pdp-gallery__main .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  background: var(--pdp-color-ink);
  opacity: 0.25;
  transition: opacity var(--pdp-dur-fast) var(--pdp-ease);
}
.pdp-v2 .pdp-gallery__main .swiper-pagination-bullet-active {
  opacity: 1;
}
.pdp-v2 .pdp-gallery__thumbs {
  width: 100%;
  padding: 2px;
}
.pdp-v2 .pdp-gallery__thumbs .swiper-wrapper {
  align-items: center;
}
.pdp-v2 .pdp-gallery__thumb {
  flex: 0 0 auto;
  width: 80px;
  height: 80px;
  padding: 0;
  border: 1px solid var(--pdp-color-line);
  border-radius: var(--pdp-radius-sm);
  background: var(--pdp-color-surface);
  cursor: pointer;
  overflow: hidden;
  transition: border-color var(--pdp-dur-fast) var(--pdp-ease);
  display: flex;
  align-items: center;
  justify-content: center;
}
.pdp-v2 .pdp-gallery__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.pdp-v2 .pdp-gallery__thumb:hover,
.pdp-v2 .pdp-gallery__thumb.swiper-slide-thumb-active {
  border-color: var(--pdp-color-ink);
}
.pdp-v2 .pdp-gallery__main .swiper-zoom-container.swiper-slide-zoomed {
  cursor: zoom-out;
}
@media (max-width: 767px) {
  .pdp-v2 .pdp-gallery__main {
    border-radius: 0;
    margin-left: calc(-1 * var(--pdp-space-4));
    margin-right: calc(-1 * var(--pdp-space-4));
    width: calc(100% + 2 * var(--pdp-space-4));
  }
  .pdp-v2 .pdp-gallery__thumb {
    width: 64px;
    height: 64px;
  }
  .pdp-v2 .pdp-gallery__main .swiper-button-prev,
  .pdp-v2 .pdp-gallery__main .swiper-button-next {
    display: none;
  }
}

/* ============================================================
   PDP BUTTONS (PR 3)
   ============================================================ */
.pdp-v2 .pdp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--pdp-space-2);
  min-height: var(--pdp-touch-min);
  padding: 10px 20px;
  font-family: var(--pdp-font-body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: var(--pdp-tracking-ui);
  text-transform: uppercase;
  text-decoration: none;
  border-radius: var(--pdp-radius-md);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background var(--pdp-dur-fast) var(--pdp-ease),
              color var(--pdp-dur-fast) var(--pdp-ease),
              border-color var(--pdp-dur-fast) var(--pdp-ease),
              transform var(--pdp-dur-fast) var(--pdp-ease);
  user-select: none;
}
.pdp-v2 .pdp-btn--primary {
  background: var(--pdp-color-ink);
  color: #fff;
  border-color: var(--pdp-color-ink);
}
.pdp-v2 .pdp-btn--primary:hover,
.pdp-v2 .pdp-btn--primary:focus-visible {
  background: var(--pdp-color-accent-hover);
  color: #fff;
  border-color: var(--pdp-color-accent-hover);
}
.pdp-v2 .pdp-btn--secondary {
  background: transparent;
  color: var(--pdp-color-ink);
  border-color: var(--pdp-color-ink);
}
.pdp-v2 .pdp-btn--secondary:hover,
.pdp-v2 .pdp-btn--secondary:focus-visible {
  background: var(--pdp-color-ink);
  color: #fff;
}
.pdp-v2 .pdp-btn:active { transform: translateY(1px); }

/* ============================================================
   PDP PRICE — locked (anon B2B gate) + visible block (PR 3)
   ============================================================ */
.pdp-v2 .pdp-price-locked {
  position: relative;
  padding: var(--pdp-space-5);
  background: var(--pdp-color-surface);
  border: 1px solid var(--pdp-color-line);
  border-radius: var(--pdp-radius-lg);
  margin: 0;
}
.pdp-v2 .pdp-price-locked__inner {
  display: flex;
  flex-direction: column;
  gap: var(--pdp-space-2);
  align-items: flex-start;
}
.pdp-v2 .pdp-price-locked__icon {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--pdp-color-ink);
  color: #fff;
  border-radius: var(--pdp-radius-pill);
  padding: 6px;
  margin-bottom: var(--pdp-space-1);
}
.pdp-v2 .pdp-price-locked__heading {
  font-family: var(--pdp-font-heading);
  font-size: 20px;
  font-weight: 700;
  color: var(--pdp-color-ink);
  line-height: var(--pdp-lh-tight);
}
.pdp-v2 .pdp-price-locked__text {
  color: var(--pdp-color-muted);
  font-size: var(--pdp-fs-body);
  line-height: var(--pdp-lh-body);
  margin: 0;
}
.pdp-v2 .pdp-price-locked__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pdp-space-2);
  margin-top: var(--pdp-space-2);
  width: 100%;
}
.pdp-v2 .pdp-price-locked__ctas .pdp-btn {
  flex: 1 1 180px;
}
@media (max-width: 480px) {
  .pdp-v2 .pdp-price-locked__ctas .pdp-btn { flex: 1 1 100%; }
}

.pdp-v2 .pdp-price-block {
  display: flex;
  flex-direction: column;
  gap: var(--pdp-space-2);
  margin: 0;
  padding: 0;
}
.pdp-v2 .pdp-price-block__row {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--pdp-space-3);
}
.pdp-v2 .pdp-price-block__primary {
  display: inline-flex;
  align-items: baseline;
  gap: var(--pdp-space-2);
}
.pdp-v2 .pdp-price-block__amount {
  font-family: var(--pdp-font-heading);
  font-size: clamp(26px, 4vw, 34px);
  font-weight: 700;
  color: var(--pdp-color-ink);
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.pdp-v2 .pdp-price-block__label {
  font-size: 13px;
  letter-spacing: var(--pdp-tracking-ui);
  text-transform: uppercase;
  color: var(--pdp-color-muted);
  font-weight: 500;
}
.pdp-v2 .pdp-price-block__secondary {
  display: inline-flex;
  align-items: baseline;
  gap: var(--pdp-space-2);
}
.pdp-v2 .pdp-price-block__amount-small {
  font-size: 15px;
  font-weight: 500;
  color: var(--pdp-color-muted);
}
.pdp-v2 .pdp-price-block__label-small {
  font-size: 12px;
  letter-spacing: var(--pdp-tracking-ui);
  text-transform: uppercase;
  color: var(--pdp-color-muted);
}
.pdp-v2 .pdp-price-block__badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  background: var(--pdp-color-ink);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: var(--pdp-tracking-ui);
  border-radius: var(--pdp-radius-pill);
}
.pdp-v2 .pdp-price-block__badge--pct::before { content: "−"; margin-right: 2px; }
.pdp-v2 .pdp-price-block__regular {
  color: var(--pdp-color-muted);
  font-size: 14px;
}
.pdp-v2 .pdp-price-block__regular .regular-price { text-decoration: line-through; }
.pdp-v2 .pdp-price-block__unit,
.pdp-v2 .pdp-price-block__pack,
.pdp-v2 .pdp-price-block__ecotax,
.pdp-v2 .pdp-price-block__tax-label,
.pdp-v2 .pdp-price-block__delivery {
  margin: 0;
  font-size: 13px;
  color: var(--pdp-color-muted);
  line-height: 1.4;
}
.pdp-v2 .pdp-price-block__delivery--oos { color: var(--pdp-color-error); }

/* ============================================================
   PDP DISCOUNT LADDER (PR 3)
   ============================================================ */
.pdp-v2 .pdp-discount-ladder {
  margin-top: var(--pdp-space-4);
  padding: 0;
}
.pdp-v2 .pdp-discount-ladder__title {
  font-family: var(--pdp-font-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: var(--pdp-tracking-ui);
  text-transform: uppercase;
  color: var(--pdp-color-muted);
  margin: 0 0 var(--pdp-space-2);
}
.pdp-v2 .pdp-discount-ladder__rail {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: var(--pdp-space-2);
}
.pdp-v2 .pdp-discount-ladder__step {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--pdp-space-3);
  background: var(--pdp-color-surface);
  border: 1px solid var(--pdp-color-line);
  border-radius: var(--pdp-radius-md);
  transition: border-color var(--pdp-dur-fast) var(--pdp-ease),
              background var(--pdp-dur-fast) var(--pdp-ease);
}
.pdp-v2 .pdp-discount-ladder__step.is-active,
.pdp-v2 .pdp-discount-ladder__step:hover {
  border-color: var(--pdp-color-ink);
  background: #fff;
}
.pdp-v2 .pdp-discount-ladder__qty {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: var(--pdp-tracking-ui);
  text-transform: uppercase;
  color: var(--pdp-color-muted);
}
.pdp-v2 .pdp-discount-ladder__value {
  font-family: var(--pdp-font-heading);
  font-size: 18px;
  font-weight: 700;
  color: var(--pdp-color-ink);
  line-height: 1.2;
}
.pdp-v2 .pdp-discount-ladder__save {
  font-size: 12px;
  color: var(--pdp-color-success);
  font-weight: 500;
}

/* ============================================================
   PDP ADD-TO-CART, QTY STEPPER, PILLS, SWATCHES (PR 4)
   ============================================================ */
.pdp-v2 .pdp-add-to-cart {
  display: flex;
  flex-direction: column;
  gap: var(--pdp-space-2);
  margin-top: var(--pdp-space-4);
}
.pdp-v2 .pdp-ctrl-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: var(--pdp-tracking-ui);
  text-transform: uppercase;
  color: var(--pdp-color-muted);
}
.pdp-v2 .pdp-cta-row {
  display: flex;
  align-items: stretch;
  gap: var(--pdp-space-3);
  width: 100%;
}
.pdp-v2 .pdp-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--pdp-color-line);
  border-radius: var(--pdp-radius-md);
  overflow: hidden;
  flex: 0 0 auto;
  background: #fff;
  height: var(--pdp-touch-min);
  line-height: 1;
}
.pdp-v2 .pdp-qty__btn {
  width: var(--pdp-touch-min);
  height: var(--pdp-touch-min);
  min-height: var(--pdp-touch-min);
  padding: 0;
  margin: 0;
  border: 0;
  background: #fff;
  color: var(--pdp-color-ink);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background var(--pdp-dur-fast) var(--pdp-ease);
}
.pdp-v2 .pdp-qty__btn:hover { background: var(--pdp-color-surface); }
.pdp-v2 .pdp-qty__btn:disabled { cursor: not-allowed; opacity: 0.4; }
.pdp-v2 .pdp-qty__input {
  width: 56px !important;
  min-width: 56px !important;
  height: var(--pdp-touch-min) !important;
  min-height: var(--pdp-touch-min) !important;
  max-height: var(--pdp-touch-min) !important;
  padding: 0 4px !important;
  margin: 0 !important;
  border: none !important;
  border-left: 1px solid var(--pdp-color-line) !important;
  border-right: 1px solid var(--pdp-color-line) !important;
  border-radius: 0 !important;
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  box-shadow: none !important;
  outline: none !important;
  box-sizing: border-box !important;
  font-family: var(--pdp-font-body) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: var(--pdp-touch-min) !important;
  color: var(--pdp-color-ink) !important;
  text-align: center !important;
  vertical-align: middle !important;
  appearance: textfield !important;
  -moz-appearance: textfield !important;
  -webkit-appearance: none !important;
  display: inline-block !important;
  flex-shrink: 0 !important;
}
.pdp-v2 .pdp-qty__input:focus,
.pdp-v2 .pdp-qty__input:focus-visible {
  background: #fff !important;
  border-color: var(--pdp-color-line) !important;
  outline: none !important;
}
.pdp-v2 .pdp-qty__input::-webkit-outer-spin-button,
.pdp-v2 .pdp-qty__input::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  appearance: none !important;
  margin: 0 !important;
  display: none !important;
}

/* PS theme.js wraps qty input w <span class="bootstrap-touchspin input-group">
   z dodatkowym <div class="input-group-btn-vertical"> z up/down buttonami.
   display:contents na samym wrapperze (.bootstrap-touchspin) — children
   promote do .pdp-qty flex layout. NIE selectowac samego .input-group bo
   nasz <input> ma tę klasę i contents na replaced element ukrywa go. */
.pdp-v2 .pdp-qty span.bootstrap-touchspin {
  display: contents !important;
}
.pdp-v2 .pdp-qty .input-group-btn-vertical,
.pdp-v2 .pdp-qty .bootstrap-touchspin-up,
.pdp-v2 .pdp-qty .bootstrap-touchspin-down {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}
.pdp-v2 .pdp-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--pdp-space-2);
  min-height: var(--pdp-touch-min);
  height: auto !important;     /* override theme.css: button.add-to-cart-buttons-products{height:44px} is OK but keep flex grow */
  padding: 12px 20px !important; /* override theme.css padding: 0px 10px */
  font-family: var(--pdp-font-body);
  font-size: 14px !important;  /* override theme.css 16px !important */
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none !important; /* override theme.css uppercase */
  white-space: nowrap;
  border-radius: var(--pdp-radius-md);
  border: 1px solid var(--pdp-color-ink);
  cursor: pointer;
  min-width: 0;
  margin: 0 !important;        /* override theme.css margin-right: 10px */
  width: auto !important;
  transition: background var(--pdp-dur-fast) var(--pdp-ease),
              transform var(--pdp-dur-fast) var(--pdp-ease),
              box-shadow var(--pdp-dur-fast) var(--pdp-ease);
}
/* KILL FontAwesome :before icon dodawane przez theme.css na .add-to-cart-buttons-products */
.pdp-v2 .pdp-cta::before,
.pdp-v2 .pdp-cta::after,
.pdp-v2 button.pdp-cta.add-to-cart-buttons-products::before,
.pdp-v2 button.pdp-cta.add-to-cart-buttons-products::after {
  content: none !important;
  display: none !important;
}
.pdp-v2 .pdp-cta__label {
  overflow: hidden;
  text-overflow: ellipsis;
}
.pdp-v2 .pdp-cta--primary {
  background: var(--pdp-color-ink) !important; /* override theme.css :hover #B8D7E9 */
  color: #fff !important;
  flex: 1 1 auto;
  min-width: 0;
}
.pdp-v2 .pdp-cta--primary:hover:not(:disabled),
.pdp-v2 .pdp-cta--primary:focus-visible:not(:disabled) {
  background: var(--pdp-color-accent-hover) !important; /* override theme.css blue !important */
  color: #fff !important;
  box-shadow: var(--pdp-shadow-md);
}
.pdp-v2 .pdp-cta:disabled,
.pdp-v2 .pdp-cta[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: 0.5;
  background: var(--pdp-color-muted);
  border-color: var(--pdp-color-muted);
}
.pdp-v2 .pdp-cta__icon { flex-shrink: 0; }

.pdp-v2 .pdp-availability {
  display: inline-flex;
  align-items: center;
  gap: var(--pdp-space-2);
  min-height: 22px;
  font-size: 13px;
  color: var(--pdp-color-muted);
}
.pdp-v2 .pdp-availability__dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--pdp-color-muted);
}
.pdp-v2 .pdp-availability__dot--available { background: var(--pdp-color-success); }
.pdp-v2 .pdp-availability__dot--last_remaining_items { background: var(--pdp-color-warning); }
.pdp-v2 .pdp-availability__dot--unavailable { background: var(--pdp-color-error); }
.pdp-v2 .pdp-availability__text {
  color: var(--pdp-color-ink-soft);
}
.pdp-v2 .pdp-min-qty-note {
  margin: 0;
  font-size: 12px;
  color: var(--pdp-color-muted);
}

/* Trust row pod CTA (PR 6) — auto-fit żeby items dopasowywały się
   do dostępnego miejsca, niezależnie od ich liczby. */
.pdp-v2 .pdp-trust-row {
  list-style: none;
  padding: var(--pdp-space-3) 0;
  margin: var(--pdp-space-3) 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--pdp-space-2) var(--pdp-space-4);
  border-top: 1px solid var(--pdp-color-line);
}
.pdp-v2 .pdp-trust-row li {
  display: inline-flex;
  align-items: center;
  gap: var(--pdp-space-2);
  font-size: 13px;
  color: var(--pdp-color-ink-soft);
  margin: 0;
  white-space: nowrap;
}
.pdp-v2 .pdp-trust-row svg {
  flex-shrink: 0;
  color: var(--pdp-color-ink);
}


/* Variant pills */
.pdp-v2 .pdp-variants { margin-top: var(--pdp-space-3); }
.pdp-v2 .pdp-variants__group {
  display: flex;
  flex-direction: column;
  gap: var(--pdp-space-2);
  margin-bottom: var(--pdp-space-3);
}
.pdp-v2 .pdp-variants__label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: var(--pdp-tracking-ui);
  text-transform: uppercase;
  color: var(--pdp-color-muted);
}
.pdp-v2 .pdp-pills {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--pdp-space-2);
}
.pdp-v2 .pdp-pills__item { margin: 0; padding: 0; }
.pdp-v2 .pdp-pills__input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 1px;
  height: 1px;
}
.pdp-v2 .pdp-pills__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--pdp-touch-min);
  padding: 0 var(--pdp-space-4);
  font-size: 14px;
  font-weight: 500;
  color: var(--pdp-color-ink);
  background: #fff;
  border: 1px solid var(--pdp-color-line);
  border-radius: var(--pdp-radius-pill);
  cursor: pointer;
  transition: all var(--pdp-dur-fast) var(--pdp-ease);
  margin: 0;
}
.pdp-v2 .pdp-pills__label:hover {
  border-color: var(--pdp-color-ink);
}
.pdp-v2 .pdp-pills__input:checked + .pdp-pills__label {
  background: var(--pdp-color-ink);
  color: #fff;
  border-color: var(--pdp-color-ink);
}
.pdp-v2 .pdp-pills__input:focus-visible + .pdp-pills__label {
  outline: 2px solid var(--pdp-color-ink);
  outline-offset: 2px;
}

/* Color swatches */
.pdp-v2 .pdp-swatches {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--pdp-space-2);
}
.pdp-v2 .pdp-swatch { margin: 0; padding: 0; }
.pdp-v2 .pdp-swatch__input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 1px;
  height: 1px;
}
.pdp-v2 .pdp-swatch__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--pdp-touch-min);
  height: var(--pdp-touch-min);
  padding: 3px;
  border: 2px solid transparent;
  border-radius: 50%;
  cursor: pointer;
  transition: border-color var(--pdp-dur-fast) var(--pdp-ease);
  margin: 0;
}
.pdp-v2 .pdp-swatch__chip {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
  box-shadow: inset 0 0 0 1px var(--pdp-color-line);
}
.pdp-v2 .pdp-swatch__input:checked + .pdp-swatch__label {
  border-color: var(--pdp-color-ink);
}
.pdp-v2 .pdp-swatch__input:focus-visible + .pdp-swatch__label {
  outline: 2px solid var(--pdp-color-ink);
  outline-offset: 2px;
}

/* Native select fallback */
.pdp-v2 .pdp-variants__select {
  min-height: var(--pdp-touch-min);
  padding: 0 var(--pdp-space-3);
  border: 1px solid var(--pdp-color-line);
  border-radius: var(--pdp-radius-md);
  background: #fff;
  font-family: var(--pdp-font-body);
  font-size: 14px;
  color: var(--pdp-color-ink);
}

/* ============================================================
   PDP STICKY MOBILE BAR (PR 4)
   ============================================================ */
.pdp-v2 .pdp-sticky-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 100;
  background: #fff;
  border-top: 1px solid var(--pdp-color-line);
  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08);
  padding: var(--pdp-space-2) var(--pdp-space-4);
  transform: translateY(100%);
  transition: transform var(--pdp-dur-base) var(--pdp-ease);
  pointer-events: none;
}
.pdp-v2 .pdp-sticky-bar.is-visible {
  transform: translateY(0);
  pointer-events: auto;
}
.pdp-v2 .pdp-sticky-bar__inner {
  display: flex;
  align-items: center;
  gap: var(--pdp-space-3);
  max-width: 1280px;
  margin: 0 auto;
}
.pdp-v2 .pdp-sticky-bar__info {
  flex: 1 1 auto;
  font-family: var(--pdp-font-heading);
  font-size: 18px;
  font-weight: 700;
  color: var(--pdp-color-ink);
}
.pdp-v2 .pdp-sticky-bar__info:empty {
  flex: 0 0 auto;
}
.pdp-v2 .pdp-sticky-bar__cta {
  flex: 0 1 auto;
  padding: 10px 16px;
  font-size: 13px;
}
@media (min-width: 1024px) {
  /* desktop: main CTA zawsze widoczny obok galerii, sticky zbędny */
  .pdp-v2 .pdp-sticky-bar { display: none; }
}
@media (max-width: 600px) {
  .pdp-v2 .pdp-cta-row { flex-wrap: wrap; }
  .pdp-v2 .pdp-cta-row .pdp-cta--primary {
    flex: 1 1 100%;
    margin-top: var(--pdp-space-2);
  }
}

/* ============================================================
   PDP INFO ACCORDION (PR 5) — pełna sekcja info pod głównym
   layoutem: Opis | Cechy | Informacje | Dokumenty | Wysyłka.
   Native <details>/<summary>, zero JS, pełna a11y. Opis open
   by default, inne closed. Chevron rotuje przy expand.
   ============================================================ */
.pdp-v2 .pdp-info-wrap {
  margin: var(--pdp-space-4) 0 var(--pdp-space-5);
  padding: 0;
}
.pdp-v2 .pdp-info-wrap__inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 0;
}
.pdp-v2 .pdp-info-sections {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--pdp-color-line);
}
.pdp-v2 .pdp-info-section {
  border-bottom: 1px solid var(--pdp-color-line);
}
.pdp-v2 .pdp-info-section__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pdp-space-3);
  min-height: var(--pdp-touch-min);
  padding: var(--pdp-space-4) 0;
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: color var(--pdp-dur-fast) var(--pdp-ease);
}
.pdp-v2 .pdp-info-section__summary::-webkit-details-marker { display: none; }
.pdp-v2 .pdp-info-section__summary::marker { display: none; content: ''; }
.pdp-v2 .pdp-info-section__summary:hover {
  color: var(--pdp-color-accent-hover);
}
.pdp-v2 .pdp-info-section__title {
  font-family: var(--pdp-font-heading);
  font-size: clamp(18px, 2.2vw, 22px);
  font-weight: 600;
  color: var(--pdp-color-ink);
  line-height: 1.2;
}
.pdp-v2 .pdp-info-section__chevron {
  flex-shrink: 0;
  color: var(--pdp-color-ink);
  transition: transform var(--pdp-dur-base) var(--pdp-ease);
}
.pdp-v2 .pdp-info-section[open] .pdp-info-section__chevron {
  transform: rotate(180deg);
}
.pdp-v2 .pdp-info-section__body {
  padding: 0 0 var(--pdp-space-5);
  color: var(--pdp-color-ink-soft);
  line-height: var(--pdp-lh-body);
  font-size: 16px;
}
.pdp-v2 .pdp-info-section[open] .pdp-info-section__summary {
  padding-bottom: var(--pdp-space-3);
}
.pdp-v2 .pdp-description {
  font-family: var(--pdp-font-body);
  font-size: 16px;
  line-height: 1.7;
  color: var(--pdp-color-ink-soft);
}
/* Specs table (Cechy / Informacje) */
.pdp-v2 .pdp-specs {
  display: grid;
  grid-template-columns: minmax(140px, max-content) 1fr;
  gap: var(--pdp-space-2) var(--pdp-space-4);
  margin: 0;
}
.pdp-v2 .pdp-specs__name {
  font-size: 14px;
  color: var(--pdp-color-muted);
  margin: 0;
  padding: var(--pdp-space-2) 0;
  border-bottom: 1px solid var(--pdp-color-line);
}
.pdp-v2 .pdp-specs__value {
  font-size: 15px;
  color: var(--pdp-color-ink);
  margin: 0;
  padding: var(--pdp-space-2) 0;
  border-bottom: 1px solid var(--pdp-color-line);
}
.pdp-v2 .pdp-specs__value a {
  color: var(--pdp-color-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}
/* Documents list */
.pdp-v2 .pdp-docs {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--pdp-space-2);
}
.pdp-v2 .pdp-docs__item { margin: 0; padding: 0; }
.pdp-v2 .pdp-docs__link {
  display: flex;
  align-items: center;
  gap: var(--pdp-space-3);
  padding: var(--pdp-space-3);
  background: var(--pdp-color-surface);
  border: 1px solid var(--pdp-color-line);
  border-radius: var(--pdp-radius-md);
  color: var(--pdp-color-ink);
  text-decoration: none;
  transition: border-color var(--pdp-dur-fast) var(--pdp-ease),
              background var(--pdp-dur-fast) var(--pdp-ease);
}
.pdp-v2 .pdp-docs__link:hover {
  border-color: var(--pdp-color-ink);
  background: #fff;
}
.pdp-v2 .pdp-docs__icon { flex-shrink: 0; color: var(--pdp-color-muted); }
.pdp-v2 .pdp-docs__name {
  flex: 1 1 auto;
  font-size: 15px;
  font-weight: 500;
}
.pdp-v2 .pdp-docs__size {
  font-size: 12px;
  color: var(--pdp-color-muted);
  letter-spacing: var(--pdp-tracking-ui);
  text-transform: uppercase;
}
.pdp-v2 .pdp-docs__download { flex-shrink: 0; color: var(--pdp-color-ink); }
/* Shipping facts list */
.pdp-v2 .pdp-shipping-facts {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--pdp-space-3);
}
.pdp-v2 .pdp-shipping-facts li {
  display: flex;
  align-items: flex-start;
  gap: var(--pdp-space-3);
  font-size: 14px;
  color: var(--pdp-color-ink-soft);
  line-height: 1.5;
}
.pdp-v2 .pdp-shipping-facts svg {
  flex-shrink: 0;
  color: var(--pdp-color-ink);
  margin-top: 2px;
}
.pdp-v2 .pdp-shipping-facts strong {
  color: var(--pdp-color-ink);
  font-weight: 600;
}
/* Override inline WYSIWYG styles bundled in $product.description (Helvetica Neue, 13px)
   bez pisania Smarty filtra — do PR 5 (pełny tabs + attribute strip). */
.pdp-v2 .pdp-description p,
.pdp-v2 .pdp-description span,
.pdp-v2 .pdp-description li,
.pdp-v2 .pdp-description div {
  font-family: var(--pdp-font-body) !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: inherit !important;
  min-height: 0 !important;
}
.pdp-v2 .pdp-description p {
  margin: 0 0 var(--pdp-space-3) !important;
}
.pdp-v2 .pdp-description b,
.pdp-v2 .pdp-description strong {
  font-weight: 700;
  color: var(--pdp-color-ink);
}
.pdp-v2 .pdp-description ul,
.pdp-v2 .pdp-description ol {
  margin: 0 0 var(--pdp-space-4) var(--pdp-space-5);
  padding-left: var(--pdp-space-3);
}
.pdp-v2 .pdp-description li {
  margin-bottom: var(--pdp-space-2);
}
.pdp-v2 .pdp-description h1,
.pdp-v2 .pdp-description h2,
.pdp-v2 .pdp-description h3,
.pdp-v2 .pdp-description h4 {
  font-family: var(--pdp-font-heading);
  color: var(--pdp-color-ink);
  margin: var(--pdp-space-5) 0 var(--pdp-space-3);
  line-height: 1.25;
}
.pdp-v2 .pdp-description h3 { font-size: 20px; font-weight: 600; }
.pdp-v2 .pdp-description h4 { font-size: 17px; font-weight: 600; }
.pdp-v2 .pdp-description a {
  color: var(--pdp-color-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.pdp-v2 .pdp-description img {
  max-width: 100%;
  height: auto;
  border-radius: var(--pdp-radius-md);
  margin: var(--pdp-space-4) 0;
}
.pdp-v2 .pdp-description blockquote {
  border-left: 3px solid var(--pdp-color-ink);
  padding: var(--pdp-space-2) var(--pdp-space-4);
  margin: var(--pdp-space-4) 0;
  color: var(--pdp-color-muted);
  font-style: italic;
}
.pdp-v2 .pdp-description table {
  width: 100%;
  border-collapse: collapse;
  margin: var(--pdp-space-4) 0;
}
.pdp-v2 .pdp-description th,
.pdp-v2 .pdp-description td {
  padding: var(--pdp-space-2) var(--pdp-space-3);
  border-bottom: 1px solid var(--pdp-color-line);
  text-align: left;
}
@media (max-width: 767px) {
  .pdp-v2 .pdp-description-section { margin: var(--pdp-space-5) 0; }
  .pdp-v2 .pdp-description,
  .pdp-v2 .pdp-description p,
  .pdp-v2 .pdp-description li,
  .pdp-v2 .pdp-description span,
  .pdp-v2 .pdp-description div {
    font-size: 15px !important;
    line-height: 1.65 !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   Editorial homepage — Variant A · split hero + 4-card collage + zestawy
   Wymaga: page-home--editorial w body/section. Header/footer bez zmian.
   ═══════════════════════════════════════════════════════════════════ */
.page-home--editorial {
  --brass: #a07e3c;
  --brass-2: #8a6b30;
  --ink: #0a0a0a;
  --paper: #fbfaf7;
  --paper-2: #f3f1ec;
  --line: #e6e2da;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  background: #e8e5dd;
  padding: 0;
}
.page-home--editorial img { display: block; max-width: 100%; }
.page-home--editorial a { text-decoration: none; }

/* Buttons (homepage-only) */
.page-home--editorial .wax-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 24px; font-size: 10.5px; letter-spacing: .28em; text-transform: uppercase; font-weight: 500;
  border: 1px solid currentColor; background: transparent; cursor: pointer; color: inherit;
  font-family: var(--font-body);
  transition: transform .35s ease, background .35s ease, color .35s ease, gap .35s ease;
}
@media (hover: hover) and (pointer: fine) {
  .page-home--editorial .wax-btn:hover { gap: 18px; text-decoration: none; }
}
.page-home--editorial .wax-btn.solid { background: var(--ink); color: #fff; border-color: var(--ink); }
@media (hover: hover) and (pointer: fine) {
  .page-home--editorial .wax-btn.solid:hover { background: #1a1a1a; }
}
.page-home--editorial .wax-btn--light { color: var(--paper); }
.page-home--editorial .wax-btn .arrow { display: inline-block; }

/* ───── A · Hero — split editorial: claim + meta po lewej, video po prawej ───── */
.A-hero {
  position: relative; display: grid; grid-template-columns: 1.2fr 1fr; gap: 0;
  background: var(--paper); border-bottom: 1px solid var(--line);
  max-height: 640px;
}
.A-hero-text {
  padding: 30px 56px; display: flex; flex-direction: column; justify-content: space-between;
  min-height: 0; height: 640px;
}
.A-hero-eyebrow {
  font-size: 10.5px; letter-spacing: .36em; text-transform: uppercase; color: var(--brass);
  margin-bottom: 24px; display: flex; align-items: center; gap: 14px;
}
.A-hero-eyebrow::before { content: ""; width: 36px; height: 1px; background: var(--brass); }
.A-claim {
  font-family: var(--font-display);
  font-weight: 400;     font-size: 63px;
  line-height: 1.1;letter-spacing: -.018em;
  margin: 0 0 20px; color: var(--ink);
  overflow-wrap: anywhere;
}
.A-claim em { font-style: italic; color: var(--brass); font-weight: 400; }
.A-sub { font-size: 14px; line-height: 1.7; color: #555; max-width: 380px; font-weight: 300; margin: 0 0 36px; }
.A-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.A-hero-flagship { margin-top: auto; padding-top: 28px; border-top: 1px solid var(--line); }
.A-hero-flagship-label {
  font-size: 10px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--brass); margin-bottom: 14px;
}
.A-hero-flagship-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; align-items: stretch;
}
.A-hero-flagship-list li { display: flex; }
.A-hero-flagship-list a {
  display: flex; flex-direction: column; justify-content: flex-start; width: 100%;
  color: var(--ink); text-decoration: none;
  border-left: 1px solid var(--line); padding-left: 14px;
  transition: border-color .2s ease;
}
.A-hero-flagship-list a:hover { border-left-color: var(--brass); text-decoration: none; }
.A-hero-flagship-list b {
  display: block; font-family: var(--font-display); font-weight: 500;
  font-size: 24px; letter-spacing: .01em; line-height: 1.1; margin-bottom: 6px;
  color: var(--ink);
}
.A-hero-flagship-list span {
  display: block; font-size: 13px; letter-spacing: .02em; color: #4a4a4a;
  line-height: 1.45; font-weight: 400;
}
.A-hero-photo {
  position: relative; background: #000; overflow: hidden;
  height: 640px; max-height: 640px;
}
.A-hero-photo img,
.A-hero-photo video {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.A-hero-badge {
  position: absolute; top: 32px; right: 32px; background: var(--brass); color: var(--ink);
  font-size: 10px; letter-spacing: .24em; padding: 8px 14px; text-transform: uppercase; z-index: 2;
}

/* Hero video — kontrolki play/pause + mute (prawy dolny róg) */
.A-hero-vidctl {
  position: absolute; bottom: 24px; right: 24px;
  display: flex; gap: 8px; z-index: 3;
}
.A-vid-btn {
  width: 38px; height: 38px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.5); background: rgba(0,0,0,.35);
  color: #fff; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  display: grid; place-items: center; cursor: pointer; padding: 0;
  transition: background .25s ease, transform .25s ease;
}
@media (hover: hover) and (pointer: fine) {
  .A-vid-btn:hover { background: rgba(0,0,0,.6); transform: scale(1.05); }
}
.A-vid-btn svg { width: 14px; height: 14px; }
/* Toggle ikon: pokaż "play" gdy video pauza; pokaż "unmuted" gdy dźwięk włączony */
.A-vid-btn .ico-play, .A-vid-btn .ico-unmuted { display: none; }
.A-hero-photo.is-paused .A-vid-btn .ico-pause { display: none; }
.A-hero-photo.is-paused .A-vid-btn .ico-play  { display: block; }
.A-hero-photo:not(.is-muted) .A-vid-btn .ico-muted   { display: none; }
.A-hero-photo:not(.is-muted) .A-vid-btn .ico-unmuted { display: block; }

/* Hero IG button — lewy dolny róg, otwiera rolkę w nowej karcie */
.A-hero-ig {
  position: absolute; bottom: 24px; left: 24px; z-index: 3;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 10px 16px 10px 12px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.55);
  background: rgba(0,0,0,.35); color: #fff;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  font-family: var(--font-body); font-size: 10.5px;
  letter-spacing: .22em; text-transform: uppercase; font-weight: 500;
  text-decoration: none;
  transition: background .25s ease, color .25s ease, border-color .25s ease, gap .25s ease;
}
.A-hero-ig,
.A-hero-ig:visited,
.A-hero-ig:active,
.A-hero-ig:focus { color: #fff; }
.A-hero-ig:focus { outline: none; }
.A-hero-ig:focus-visible { outline: 2px solid var(--brass); outline-offset: 2px; }
@media (hover: hover) and (pointer: fine) {
  .A-hero-ig:hover,
  .A-hero-ig:visited:hover {
    background: var(--brass); color: var(--ink); border-color: var(--brass);
    text-decoration: none; gap: 14px;
  }
}
.A-hero-ig svg { width: 16px; height: 16px; flex: 0 0 16px; }

/* ───── A · Kolaż 4 produktów ───── */
.A-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px;
  background: var(--line); border-bottom: 1px solid var(--line);
}
.A-card {
  background: var(--paper); padding: 0; display: flex; flex-direction: column;
  cursor: pointer; position: relative; overflow: hidden; transition: background .4s ease;
  color: inherit;
}
@media (hover: hover) and (pointer: fine) {
  .A-card:hover { background: var(--paper-2); text-decoration: none; }
}
.A-card .nr {
  position: absolute; top: 18px; left: 24px;
  font-family: var(--font-mono); font-size: 11px; color: var(--brass); letter-spacing: .1em; z-index: 2;
}
.A-card .cat {
  position: absolute; top: 18px; right: 24px;
  font-size: 9px; letter-spacing: .24em; color: #888; z-index: 2; text-transform: uppercase;
}
.A-card-photo {
  aspect-ratio: 1 / 1.05; overflow: hidden; background: #fff;
  display: grid; place-items: center; padding: 48px;
}
.A-card-photo img { width: 100%; height: 100%; object-fit: contain; transition: transform .8s ease; }
@media (hover: hover) and (pointer: fine) {
  .A-card:hover .A-card-photo img { transform: scale(1.06); }
}
.A-card-info {
  padding: 22px 24px 28px; border-top: 1px solid var(--line);
  display: flex; justify-content: space-between; align-items: center;
}
.A-card-info h3 {
  font-family: var(--font-display); font-size: 24px; font-weight: 400;
  margin: 0 0 2px; letter-spacing: .04em; color: var(--ink);
}
.A-card-info span { font-size: 10.5px; color: #888; letter-spacing: .04em; }
.A-card-info .cta { font-size: 18px; color: var(--ink); transition: transform .4s ease; }
@media (hover: hover) and (pointer: fine) {
  .A-card:hover .A-card-info .cta { transform: translateX(4px); }
}

/* ───── A · Pre/Post + Peelingi (ciemna strefa) ───── */
.A-strip {
  display: grid; grid-template-columns: 1fr 1fr;
  background: var(--ink); color: var(--paper);
}
.A-strip-block { padding: 80px 64px; border-right: 1px solid #222; }
.A-strip-block:last-child { border-right: 0; }
.A-strip-eyebrow {
  font-size: 10px; letter-spacing: .32em; color: var(--brass);
  text-transform: uppercase; margin-bottom: 22px;
}
.A-strip h2 {
  font-family: var(--font-display); font-weight: 400; font-size: 46px;
  line-height: 1.05; margin: 0 0 24px; letter-spacing: -.012em; color: var(--paper);
}
.A-strip p {
  font-size: 13px; line-height: 1.7; color: #aaa; max-width: 380px;
  margin: 0 0 32px; font-weight: 300;
}

/* ───── A · 4 zestawy ───── */
.A-foursome {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line);
}
.A-foursome a {
  background: var(--paper); padding: 36px 28px;
  display: flex; flex-direction: column; justify-content: space-between;
  min-height: 240px; transition: background .35s ease;
  color: inherit;
}
@media (hover: hover) and (pointer: fine) {
  .A-foursome a:hover { background: var(--ink); color: var(--paper); text-decoration: none; }
  .A-foursome a:hover .arrow { color: var(--brass); }
}
.A-foursome .small {
  font-size: 9.5px; letter-spacing: .32em; text-transform: uppercase; color: #888;
}
.A-foursome h4 {
  font-family: var(--font-display); font-size: 32px; font-weight: 400;
  margin: 18px 0 0; letter-spacing: .02em; color: inherit;
}
.A-foursome-price {
  font-size: .5em; letter-spacing: .18em; text-transform: uppercase;
  font-family: var(--font-body); color: inherit; opacity: .7;
}
.A-foursome .arrow { font-size: 18px; color: var(--brass); }

/* ───── Responsywność (≤1024px) ───── */
@media (max-width: 1024px) {
  .A-hero { grid-template-columns: 1fr; max-height: none; }
  .A-hero-text { height: auto; padding: 48px 32px; }
  .A-hero-photo { height: 60vh; min-height: 380px; }
  .A-claim { font-size: 56px; }
  .A-grid { grid-template-columns: repeat(2, 1fr); }
  .A-strip { grid-template-columns: 1fr; }
  .A-strip-block { padding: 56px 32px; border-right: 0; border-bottom: 1px solid #222; }
  .A-strip-block:last-child { border-bottom: 0; }
  .A-foursome { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .A-hero-text { padding: 36px 22px; }
  .A-claim { font-size: 44px; }
  .A-hero-flagship-list { grid-template-columns: 1fr; gap: 0; }
  .A-hero-flagship-list a {
    border-left: 0; border-top: 1px solid var(--line);
    padding: 14px 0 0;
  }
  .A-hero-flagship-list li:first-child a { border-top: 0; padding-top: 4px; }
  .A-hero-flagship-label { font-size: 11px; }
  /* Hero photo — portretowa rolka (~9:14), cap 70vh żeby nie zjadła ekranu na bardzo wysokich telefonach */
  .A-hero-photo {
    height: auto; min-height: 0;
    aspect-ratio: 9 / 14; max-height: 70vh;
  }
  /* Hero badge — bardziej kompaktowy */
  .A-hero-badge { top: 14px; right: 14px; padding: 6px 10px; font-size: 9.5px; }
  /* Touch targets ≥44px */
  .A-vid-btn { width: 44px; height: 44px; }
  .A-vid-btn svg { width: 16px; height: 16px; }
  .A-hero-vidctl { bottom: 16px; right: 16px; gap: 10px; }
  .A-hero-ig {
    bottom: 16px; left: 16px;
    width: 44px; height: 44px; padding: 0; gap: 0;
    justify-content: center;
  }
  .A-hero-ig span { display: none; }
  .A-hero-ig svg { width: 18px; height: 18px; flex: 0 0 18px; }
  /* Karty produktowe */
  .A-card-photo { padding: 32px; }
  .A-card .cat { font-size: 11px; }
  .A-card .nr { font-size: 11px; }
  .A-card-info { padding: 16px 16px 20px; gap: 10px; }
  .A-card-info > div { min-width: 0; flex: 1 1 auto; }
  .A-card-info h3 {
    font-size: 18px; letter-spacing: 0.02em;
    overflow-wrap: anywhere; line-height: 1.15;
  }
  .A-card-info span:not(.cta) {
    display: block; font-size: 11.5px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  .A-card-info .cta { flex-shrink: 0; font-size: 16px; }
  /* Strip section */
  .A-strip h2 { font-size: 36px; }
  .A-strip-block { padding: 44px 22px; }
  .A-strip-eyebrow { font-size: 11px; }
  /* Zestawy */
  .A-foursome { grid-template-columns: 1fr; }
  .A-foursome a { min-height: 180px; padding: 28px 22px; }
  .A-foursome .small { font-size: 11px; }
  /* Hero akcje */
  .A-hero-actions .wax-btn { flex: 1 1 100%; }
}
@media (max-width: 380px) {
  .A-hero-text { padding: 32px 20px; }
  .A-claim { font-size: 38px; }
  .A-grid { grid-template-columns: 1fr; }
  .A-strip h2 { font-size: 30px; }
}

