/*
 * Tartak Theme — Motyw dla tartaku
 * Version: 1.1.0
 * Craftsman aesthetic — VOXAR
 */

/* ============================================
   CSS CUSTOM PROPERTIES
   ============================================ */
:root {
  /* Wood palette */
  --wood-darkest:  #150c08;
  --wood-dark:     #3e2723;
  --wood-medium:   #5d4037;
  --wood-light:    #8d6e63;
  --wood-lighter:  #bcaaa4;
  --wood-lightest: #efebe9;

  /* Accents */
  --gold:          #c9a227;
  --gold-light:    #e8c547;
  --gold-dark:     #9a7a10;
  --green:         #558b2f;
  --orange:        #d84315;

  /* Neutrals */
  --white:         #ffffff;
  --off-white:     #fdf9f5;
  --cream:         #f5efe8;
  --gray-100:      #f4f4f4;
  --gray-200:      #e8e8e8;
  --gray-300:      #d4d4d4;
  --gray-500:      #9e9e9e;
  --gray-700:      #5e5e5e;
  --gray-900:      #1c1c1c;

  /* Typography */
  --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body:    'Mulish', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Sizing */
  --container-max: 1280px;

  /* Radii */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;

  /* Shadows */
  --shadow-sm: 0 2px 8px rgba(21, 12, 8, 0.08);
  --shadow-md: 0 6px 24px rgba(21, 12, 8, 0.12);
  --shadow-lg: 0 16px 48px rgba(21, 12, 8, 0.18);

  /* Easing */
  --ease: cubic-bezier(0.25, 0.8, 0.25, 1);
}

/* ============================================
   RESET & BASE
   ============================================ */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--gray-900);
  background-color: var(--off-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

ul, ol { padding-left: 1.5rem; }
p { margin-bottom: 1em; }

a {
  color: var(--wood-medium);
  text-decoration: none;
  transition: color 0.25s var(--ease);
}
a:hover { color: var(--wood-dark); }

/* ============================================
   TYPOGRAPHY
   ============================================ */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  color: var(--wood-dark);
  font-weight: 700;
  line-height: 1.15;
  margin-bottom: 0.6em;
}

h1 { font-size: clamp(2rem,   5vw, 3.25rem); }
h2 { font-size: clamp(1.6rem, 4vw, 2.5rem);  }
h3 { font-size: clamp(1.3rem, 3vw, 1.875rem);}
h4 { font-size: 1.5rem;   }
h5 { font-size: 1.25rem;  }
h6 { font-size: 1rem;     }

/* ============================================
   LAYOUT
   ============================================ */
.container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 1.5rem;
}

.row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -0.75rem;
}

[class*="col-"] { padding: 0 0.75rem; }

/* xs / sm / md — without breakpoint (desktop-first, reset by mobile query below) */
.col-xs-6           { flex: 0 0 50%;      max-width: 50%;      }
.col-xs-12          { flex: 0 0 100%;     max-width: 100%;     }
.col-sm-2           { flex: 0 0 16.666%;  max-width: 16.666%;  }
.col-sm-4           { flex: 0 0 33.333%;  max-width: 33.333%;  }
.col-sm-6           { flex: 0 0 50%;      max-width: 50%;      }
.col-sm-8           { flex: 0 0 66.666%;  max-width: 66.666%;  }
.col-sm-12          { flex: 0 0 100%;     max-width: 100%;     }
.col-md-3           { flex: 0 0 25%;      max-width: 25%;      }
.col-md-4           { flex: 0 0 33.333%;  max-width: 33.333%;  }
.col-md-6           { flex: 0 0 50%;      max-width: 50%;      }
.col-md-8           { flex: 0 0 66.666%;  max-width: 66.666%;  }
.col-md-9           { flex: 0 0 75%;      max-width: 75%;      }
.col-md-12          { flex: 0 0 100%;     max-width: 100%;     }

/* lg — applies only at ≥992px */
@media (min-width: 992px) {
  .col-lg-3           { flex: 0 0 25%;      max-width: 25%;      }
  .col-lg-4           { flex: 0 0 33.333%;  max-width: 33.333%;  }
  .col-lg-8           { flex: 0 0 66.666%;  max-width: 66.666%;  }
  .col-lg-9           { flex: 0 0 75%;      max-width: 75%;      }
  .col-lg-12          { flex: 0 0 100%;     max-width: 100%;     }
}

/* xl — applies only at ≥1200px */
@media (min-width: 1200px) {
  .col-xl-3           { flex: 0 0 25%;      max-width: 25%;      }
  .col-xl-4           { flex: 0 0 33.333%;  max-width: 33.333%;  }
}

/* ============================================
   WOOD GRAIN MIXIN (reusable background)
   ============================================ */
.wood-bg,
#header,
#footer {
  background-color: var(--wood-dark);
  background-image:
    repeating-linear-gradient(
      93.5deg,
      transparent 0, transparent 3px,
      rgba(255, 195, 80, 0.022) 3px, rgba(255, 195, 80, 0.022) 4px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0, transparent 9px,
      rgba(0, 0, 0, 0.07) 9px, rgba(0, 0, 0, 0.07) 10px
    ),
    linear-gradient(175deg, #4a2c1c 0%, var(--wood-dark) 45%, #2a1508 100%);
}

/* ============================================
   HEADER
   ============================================ */
#header {
  position: sticky;
  top: 0;
  z-index: 1000;
  color: var(--white);
  transition: box-shadow 0.3s var(--ease);
}

#header.scrolled {
  box-shadow: 0 4px 32px rgba(0, 0, 0, 0.45);
}

/* Top bar: contact info / social */
.header-topbar {
  background: rgba(0, 0, 0, 0.3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  padding: 7px 0;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.5);
}

.header-topbar .container {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.header-topbar a {
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.75rem;
  transition: color 0.2s;
}

.header-topbar a:hover {
  color: var(--gold);
  text-decoration: none;
}

/* Main header row */
.header-main {
  padding: 16px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.header-inner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

/* Logo */
.header-logo {
  flex-shrink: 0;
}

.header-logo a {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-decoration: none;
}

.header-logo img.logo {
  max-height: 54px;
  width: auto;
}

.header-logo .logo-text {
  font-family: var(--font-display);
  font-size: 1.8rem;
  font-weight: 900;
  color: var(--white);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  line-height: 1;
  transition: color 0.2s;
}

.header-logo a:hover .logo-text {
  color: var(--gold);
}

.header-logo .logo-tagline {
  font-family: var(--font-body);
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.42);
}

/* Search — grows to fill space */
.header-search {
  flex: 1;
  display: flex;
  align-items: center;
}

/* Right: account, cart */
.header-actions {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.header-actions a,
.header-actions button {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.3px;
  transition: color 0.2s;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.header-actions a:hover,
.header-actions button:hover {
  color: var(--gold);
  text-decoration: none;
}

/* ============================================
   NAVIGATION
   ============================================ */
.main-menu {
  background-color: rgba(0, 0, 0, 0.22);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  position: relative;
}

.main-menu .container {
  display: flex;
  align-items: stretch;
}

/* ps_mainmenu renders div.menu > ul.top-menu — expand to fill the nav */
.main-menu .menu {
  flex: 1;
  display: flex;
  align-items: center;
  min-width: 0;
}

.main-menu .top-menu {
  flex: 1;
  min-width: 0;
}

.main-menu ul {
  list-style: none;
  display: flex;
  flex-wrap: nowrap;
  overflow: visible; /* must stay visible so dropdowns show below the nav */
  padding: 0;
  margin: 0;
}

.main-menu li { position: relative; }

.main-menu a {
  display: block;
  padding: 12px 14px;
  color: rgba(255, 255, 255, 0.80);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.9px;
  transition: color 0.2s;
  position: relative;
  text-decoration: none;
}

.main-menu a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 18px;
  right: 18px;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transition: transform 0.22s var(--ease);
  transform-origin: right;
}

.main-menu a:hover {
  color: var(--white);
  text-decoration: none;
}

.main-menu a:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* Dropdown submenu — desktop hover */
.main-menu .sub-menu {
  display: none;         /* hidden by default (no longer using Bootstrap .collapse) */
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 500;
  min-width: 200px;
  background: var(--wood-darkest, #1a0906);
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
  padding: 0.4rem 0;
  overflow: visible;
}

.main-menu li:hover > .sub-menu,
.main-menu li.menu-open > .sub-menu { display: block; }

.main-menu .sub-menu .top-menu {
  flex-direction: column;
  flex-wrap: nowrap;
  overflow: visible;
}
.main-menu .sub-menu .top-menu > li { width: 100%; }
.main-menu .sub-menu a {
  padding: 10px 20px;
  font-size: 0.73rem;
  white-space: nowrap;
  border-bottom: 1px solid rgba(255,255,255,0.05);
}
.main-menu .sub-menu a:hover::after { display: none; }

/* ============================================
   HAMBURGER BUTTON
   ============================================ */
.menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  margin-left: auto;
  flex-shrink: 0;
}

.menu-toggle span {
  display: block;
  height: 2px;
  width: 100%;
  background: var(--white);
  border-radius: 2px;
  transition: all 0.28s ease;
  transform-origin: center;
}

.menu-toggle.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle.active span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.menu-toggle.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ============================================
   TARTAK SLIDER (ps_imageslider theme override)
   Fade-based: all slides absolutely positioned,
   active slide fades in via opacity transition.
   ============================================ */
.tartak-slider {
  position: relative;
  background: var(--wood-dark);
  width: 100%;
}

/* Track height: responsive, clamp between 220px and 560px */
.tartak-slider__track {
  position: relative;
  overflow: hidden;
  height: clamp(220px, 42vw, 560px);
}

/* All slides absolutely fill the track */
.tartak-slider__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.65s ease;
  pointer-events: none;
  z-index: 1;
}

.tartak-slider__slide.is-active {
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
}

.tartak-slider__slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.tartak-slider__link {
  display: block;
  width: 100%;
  height: 100%;
}

/* Caption overlay — kept away from the arrow buttons */
.tartak-slider__caption {
  position: absolute;
  bottom: 2.5rem;    /* above dot indicators */
  left: 4.5rem;      /* clears left arrow (0.75 + 2.75 + 1rem) */
  right: 4.5rem;     /* clears right arrow */
  max-width: 520px;
  background: rgba(30,17,10,0.6);
  backdrop-filter: blur(4px);
  padding: 0.85rem 1.25rem;
  border-left: 4px solid var(--accent-gold);
  line-height: 1.4;
  z-index: 5;
}

.tartak-slider__title {
  font-family: var(--font-display);
  font-size: clamp(1rem, 2.5vw, 1.6rem);
  color: #fff;
  margin: 0 0 0.2rem;
}

.tartak-slider__desc {
  color: rgba(255,255,255,0.88);
  font-size: 0.9rem;
  margin: 0;
  line-height: 1.5;
}

/* Prev / Next buttons */
.tartak-slider__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(30,17,10,0.5);
  color: #fff;
  border: none;
  width: 2.75rem;
  height: 2.75rem;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
  border-radius: 2px;
}

.tartak-slider__btn:hover { background: rgba(30,17,10,0.9); }
.tartak-slider__prev { left: 0.75rem; }
.tartak-slider__next { right: 0.75rem; }

/* Dot indicators */
.tartak-slider__dots {
  position: absolute;
  bottom: 0.75rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.4rem;
  z-index: 10;
}

.tartak-slider__dot {
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.7);
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: background 0.2s, border-color 0.2s;
}

.tartak-slider__dot.is-active,
.tartak-slider__dot:hover {
  background: var(--accent-gold);
  border-color: var(--accent-gold);
}

/* ============================================
   HERO
   ============================================ */
.homepage-hero {
  position: relative;
  min-height: 60vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--wood-darkest);
  background-image:
    repeating-linear-gradient(
      92.5deg,
      transparent 0, transparent 4px,
      rgba(255, 175, 55, 0.016) 4px, rgba(255, 175, 55, 0.016) 5px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0, transparent 11px,
      rgba(0, 0, 0, 0.09) 11px, rgba(0, 0, 0, 0.09) 12px
    ),
    linear-gradient(155deg, #2d1b0e 0%, #150c08 55%, #0d0705 100%);
}

.homepage-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 70% 55% at 62% 48%, rgba(201, 162, 39, 0.07) 0%, transparent 68%);
  pointer-events: none;
}

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 700px;
  padding: 5rem 0;
}

.hero-eyebrow {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 14px;
  animation: fadeInUp 0.7s ease both;
  animation-delay: 0.1s;
}

.hero-eyebrow::before {
  content: '';
  display: inline-block;
  width: 36px;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}

.hero-title {
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 7vw, 5.5rem);
  font-weight: 900;
  line-height: 1.0;
  color: var(--white);
  margin-bottom: 0;
  letter-spacing: -1.5px;
  animation: fadeInUp 0.7s ease both;
  animation-delay: 0.22s;
}

.hero-title em {
  font-style: italic;
  color: var(--gold);
  font-weight: 700;
}

.hero-rule {
  width: 64px;
  height: 3px;
  background: linear-gradient(90deg, var(--gold), var(--wood-medium));
  margin: 1.75rem 0;
  border-radius: 2px;
  animation: fadeInUp 0.7s ease both;
  animation-delay: 0.34s;
}

.hero-description {
  font-size: 1.08rem;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.62);
  max-width: 500px;
  line-height: 1.82;
  margin-bottom: 2.5rem;
  animation: fadeInUp 0.7s ease both;
  animation-delay: 0.46s;
}

.hero-actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  align-items: center;
  animation: fadeInUp 0.7s ease both;
  animation-delay: 0.58s;
}

.hero-badge {
  position: absolute;
  bottom: 2.5rem;
  right: 2rem;
  text-align: center;
  color: rgba(255, 255, 255, 0.35);
  font-size: 0.72rem;
  letter-spacing: 0.5px;
  line-height: 1.8;
}

.hero-badge .stars {
  display: block;
  color: var(--gold);
  font-size: 0.88rem;
  letter-spacing: 3px;
}

/* ============================================
   BUTTONS
   ============================================ */
.btn,
button.btn,
input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 13px 30px;
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  border: 2px solid transparent;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.22s var(--ease);
  text-decoration: none;
  white-space: nowrap;
  line-height: 1;
}

/* Gold / Primary */
.btn-gold,
.btn-primary {
  background: var(--gold);
  color: var(--wood-darkest);
  border-color: var(--gold);
}
.btn-gold:hover,
.btn-primary:hover {
  background: var(--gold-light);
  border-color: var(--gold-light);
  color: var(--wood-darkest);
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(201, 162, 39, 0.38);
}

/* Outline (for hero dark bg) */
.btn-outline {
  background: transparent;
  color: rgba(255, 255, 255, 0.82);
  border-color: rgba(255, 255, 255, 0.28);
}
.btn-outline:hover {
  background: rgba(255, 255, 255, 0.08);
  color: var(--white);
  border-color: rgba(255, 255, 255, 0.55);
  text-decoration: none;
}

/* Secondary (wood-toned) */
.btn-secondary {
  background: var(--wood-medium);
  color: var(--white);
  border-color: var(--wood-medium);
}
.btn-secondary:hover {
  background: var(--wood-dark);
  border-color: var(--wood-dark);
  color: var(--white);
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

/* Accent */
.btn-accent {
  background: var(--orange);
  color: var(--white);
  border-color: var(--orange);
}
.btn-accent:hover {
  background: #bf3a10;
  border-color: #bf3a10;
  color: var(--white);
  text-decoration: none;
  transform: translateY(-2px);
}

/* Sizes */
.btn-sm { padding: 9px 20px; font-size: 0.75rem; }
.btn-lg { padding: 16px 40px; font-size: 0.88rem; }

/* ============================================
   FEATURES STRIP
   ============================================ */
.features-strip {
  background: var(--cream);
  border-top: 1px solid var(--wood-lightest);
  border-bottom: 1px solid var(--wood-lightest);
  padding: 1.75rem 0;
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.feature {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.5rem;
  border-right: 1px solid var(--wood-lightest);
}

.feature:last-child { border-right: none; }

.feature-icon {
  font-size: 1.35rem;
  flex-shrink: 0;
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--white);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}

.feature-text strong {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--wood-dark);
  margin-bottom: 2px;
}

.feature-text span {
  font-size: 0.76rem;
  color: var(--gray-500);
}

/* ============================================
   SECTION HEADER
   ============================================ */
.section-header {
  text-align: center;
  margin-bottom: 3rem;
}

.section-tag {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 3.5px;
  text-transform: uppercase;
  color: var(--gold-dark);
  background: rgba(201, 162, 39, 0.1);
  padding: 5px 14px;
  border-radius: 20px;
  margin-bottom: 1rem;
  border: 1px solid rgba(201, 162, 39, 0.22);
}

.section-title {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  color: var(--wood-dark);
  margin-bottom: 0.75rem;
}

.section-description {
  color: var(--gray-700);
  max-width: 540px;
  margin: 0 auto;
  font-size: 1.02rem;
}

/* Section with divider */
.section-rule {
  display: block;
  width: 48px;
  height: 3px;
  background: linear-gradient(90deg, var(--gold), var(--wood-lighter));
  margin: 1rem auto 0;
  border-radius: 2px;
}

/* ============================================
   HOMEPAGE SECTIONS
   ============================================ */
.featured-products {
  padding: 2.5rem 0;
}

/* ============================================
   PRODUCT GRID
   ============================================ */
.products-grid,
.products.row,
div.products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.5rem;
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
}

/* Reset Bootstrap .row gutter offsets for CSS Grid — gutter is handled by gap */
.products.row {
  margin-left: 0;
  margin-right: 0;
}

/* Grid items: reset Bootstrap col-* constraints (max-width % is relative to
   the grid CELL, not the container — col-xl-3's 25% would make items 74px wide) */
.products.row > *,
div.products > * {
  max-width: 100%;
  flex: none;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}

/* ============================================
   PRODUCT CARD
   ============================================ */
.product-miniature {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: transform 0.32s var(--ease), box-shadow 0.32s var(--ease), border-color 0.32s var(--ease);
  display: flex;
  flex-direction: column;
}

.product-miniature:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
  border-color: var(--wood-lighter);
}


/* Thumbnail */
.product-thumbnail {
  position: relative;
  overflow: hidden;
  background: var(--cream);
  aspect-ratio: 4 / 3;
}

.product-thumbnail a:not(.banner) {
  display: block;
  width: 100%;
  height: 100%;
}

/* Defensive: hide phantom .banner anchors injected by ps_banner module */
a.banner:empty,
div.products > a.banner,
.product-thumbnail a.banner {
  display: none !important;
}

.product-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
}

.product-miniature:hover .product-thumbnail img {
  transform: scale(1.06);
}

/* Product flags */
.product-flags {
  position: absolute;
  top: 10px;
  left: 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 2;
}

.product-flag {
  display: inline-block;
  padding: 3px 9px;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  border-radius: 3px;
  background: var(--gold);
  color: var(--wood-darkest);
}

.product-flag.new     { background: var(--green);  color: var(--white); }
.product-flag.on-sale { background: var(--orange); color: var(--white); }
.product-flag.discount{ background: var(--orange); color: var(--white); }

/* Info section */
.product-description {
  padding: 1.2rem 1.25rem 1.25rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.product-title {
  font-family: 'Roboto', sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: var(--wood-dark);
  margin-bottom: 0.4rem;
  line-height: 1.35;
}

.product-title a {
  color: inherit;
}

.product-title a:hover {
  color: var(--gold-dark);
}

.product-price-and-shipping {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  margin-top: auto;
  padding-top: 0.75rem;
}

.price {
  font-size: 1.18rem;
  font-weight: 700;
  color: var(--wood-dark);
}

.regular-price {
  font-size: 0.88rem;
  color: var(--gray-500);
  text-decoration: line-through;
}

.product-actions,
.miniature-actions {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--gray-200);
}

.product-actions .btn,
.miniature-actions .btn {
  width: 100%;
}

/* ============================================
   PRODUCT PAGE
   ============================================ */

/* Product name on product page */
.product-container .product-name,
.product-container h1 { font-family: 'Roboto', sans-serif; font-size: 1.6rem; margin-bottom: 0.6rem; color: var(--wood-dark); }

/* Product flags on product page — static, not overlay */
.product-container .product-flags {
  position: static;
  flex-direction: row;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}

/* Product images */
.images-container { position: relative; }
.images-container .product-cover { border-radius: var(--radius-md); overflow: hidden; position: relative; }
.images-container .product-cover img { width: 100%; display: block; height: auto; }
.images-container .layer {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,0.3);
  opacity: 0;
  transition: opacity 0.25s;
  cursor: zoom-in;
}
.images-container .layer i { color: #fff; font-size: 2rem; }
.images-container .product-cover:hover .layer { opacity: 1; }
.js-qv-mask.mask { margin-top: 0.6rem; }
.product-images.js-qv-product-images {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
}
.thumb-container { flex: 0 0 auto; }
.thumb {
  width: 70px; height: 70px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  cursor: pointer;
  border: 2px solid var(--gray-200);
  transition: border-color 0.2s;
  display: block;
}
.thumb:hover,
.thumb.selected { border-color: var(--wood-medium); }

/* Add to cart — classic partial structure */
.control-label {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--gray-700);
  margin-bottom: 0.5rem;
}
.product-quantity {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.product-quantity .qty { flex-shrink: 0; }
#quantity_wanted { width: 80px; text-align: center; }
.product-quantity .add { flex: 1 1 auto; }
.product-quantity .add .add-to-cart { width: 100%; white-space: nowrap; }
.product-quantity input[type="number"] { width: 80px; text-align: center; }

/* Product availability alerts — scoped to product actions area only
   (the #product-availability id also appears in product-activation.tpl above the header,
    so a global margin-top would create a visible gap above the sticky header) */
.product-add-to-cart #product-availability { margin-top: 0.75rem; }

.combination-description {
  display: none; /* hidden here — JS copies its text to description_short area */
}

.stock-badge {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.15em 0.6em;
  border-radius: var(--radius-sm);
  letter-spacing: 0.02em;
}
.stock-badge--in  { background: #e8f5e9; color: #2e7d32; }
.stock-badge--out { background: #ffebee; color: #c62828; }
.alert {
  padding: 0.65rem 0.9rem;
  border-radius: var(--radius-sm);
  font-size: 0.875rem;
  margin-bottom: 0.4rem;
}
.alert-success { background: #e8f5e9; color: #2e7d32; }
.alert-warning  { background: #fff3e0; color: #e65100; }
.alert-danger   { background: #ffebee; color: #c62828; }
.alert-content-wrapper { display: flex; align-items: flex-start; gap: 0.5rem; }
.alert-content-wrapper i { font-size: 1.2rem; line-height: 1.4; }

/* Product details data sheet */
.data-sheet {
  display: grid;
  grid-template-columns: minmax(90px, 35%) 1fr;
  gap: 0.35rem 1rem;
  margin: 0; padding: 0;
}
.data-sheet dt.name {
  font-weight: 600;
  color: var(--gray-700);
  font-size: 0.875rem;
}
.data-sheet dd.value {
  margin: 0;
  font-size: 0.875rem;
  color: var(--gray-900);
}
.js-product-details { padding: 1rem 0; }
.product-features { margin-top: 1rem; }
.product-features .h6 {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--gray-500);
  margin-bottom: 0.6rem;
}
.product-reference,
.product-quantities,
.product-weight,
.product-availability-date,
.product-condition,
.product-combination-desc,
.product-manufacturer { margin-bottom: 0.6rem; font-size: 0.875rem; }
.product-reference .label,
.product-quantities .label,
.product-weight .label,
.product-combination-desc .label { font-weight: 600; color: var(--gray-700); margin-right: 0.4rem; }

/* Product page top section */
.product-container { margin-top: 1rem; }
.product-information { padding-top: 0.5rem; }
.product-minimal-quantity { font-size: 0.8rem; color: var(--gray-600); margin-top: 0.5rem; min-height: 1em; }

/* ============================================
   PRODUCT VARIANTS (color swatches, radio, select)
   ============================================ */
.product-variants { margin-bottom: 0.5rem; }

.product-variants-item { margin-bottom: 1rem; }

.variant-label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--wood-medium);
  margin-bottom: 0.6rem;
}

.variant-current {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: var(--gray-800);
  margin-left: 0.2rem;
}

/* Color swatches */
.color-variants {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.color-variant label { cursor: pointer; display: block; }

.color-variant input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
}

.color-swatch {
  display: block;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  box-shadow: 0 0 0 1.5px var(--gray-300);
  cursor: pointer;
  transition: box-shadow 0.15s;
}

.color-swatch.active,
.color-variant.selected .color-swatch {
  box-shadow: 0 0 0 2.5px var(--accent-gold);
}

/* Radio variants (e.g. size chips) */
.radio-variants {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.radio-variant input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
}

.radio-label {
  display: inline-block;
  padding: 0.3rem 0.8rem;
  border: 1.5px solid var(--gray-300);
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.88rem;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.radio-label:hover { border-color: var(--wood-light); }

.radio-label.selected {
  border-color: var(--accent-gold);
  background: var(--accent-gold);
  color: #fff;
}

/* ============================================
   PRODUCT IMAGE ZOOM BUTTON
   ============================================ */
.product-cover__zoom {
  position: absolute;
  bottom: 0.75rem;
  right: 0.75rem;
  background: rgba(255,255,255,0.9);
  border: none;
  border-radius: 50%;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: zoom-in;
  opacity: 0;
  transition: opacity 0.2s;
  z-index: 5;
  box-shadow: var(--shadow-sm);
}

.images-container .product-cover:hover .product-cover__zoom { opacity: 1; }

.product-cover__zoom .material-icons { font-size: 1.4rem; color: var(--wood-dark); }

/* ============================================
   PRODUCT LIGHTBOX
   ============================================ */
.product-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.92);
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s;
}

.product-lightbox.is-open {
  opacity: 1;
  pointer-events: auto;
}

.product-lightbox__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: rgba(255,255,255,0.12);
  border: none;
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s;
  z-index: 2001;
}

.product-lightbox__close:hover { background: rgba(255,255,255,0.25); }
.product-lightbox__close .material-icons { font-size: 1.5rem; }

.product-lightbox__body {
  max-width: 90vw;
  max-height: 90vh;
  cursor: zoom-out;
}

.product-lightbox__img {
  max-width: 100%;
  max-height: 90vh;
  object-fit: contain;
  display: block;
}

/* ============================================
   SOCIAL SHARING (ps_sharebuttons override)
   ============================================ */
.social-sharing {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 1rem 0;
}

.social-sharing__label {
  font-size: 0.82rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--gray-600);
}

.social-sharing__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 0.4rem;
}

.social-sharing__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  color: #fff;
  transition: opacity 0.2s, transform 0.2s;
  text-decoration: none;
}

.social-sharing__btn:hover { opacity: 0.85; transform: scale(1.1); color: #fff; }

.social-sharing__btn--facebook { background: #1877f2; }
.social-sharing__btn--twitter  { background: #000; }
.social-sharing__btn--pinterest { background: #e60023; }

.social-sharing__btn svg {
  width: 0.95rem;
  height: 0.95rem;
  fill: currentColor;
  display: block;
}

/* ============================================
   CATEGORY PRODUCTS (related — ps_categoryproducts)
   ============================================ */
.product-accessories { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--gray-200); }

.product-accessories__title {
  font-family: var(--font-display);
  font-size: 1.1rem;
  color: var(--wood-dark);
  margin-bottom: 1.25rem;
}

/* ============================================
   LEFT COLUMN — CATEGORY TREE & FACETS
   ============================================ */
#left-column { font-size: 0.88rem; }

/* Category tree */
.category-tree {
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--gray-200);
}
.category-tree ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.category-tree > ul { margin-bottom: 0; }
.category-tree li { margin-bottom: 0.3rem; }
.category-tree a {
  color: var(--wood-medium);
  font-size: 0.875rem;
  text-decoration: none;
  transition: color 0.2s;
  display: block;
  padding: 0.1rem 0;
}
.category-tree a:hover { color: var(--wood-dark); font-weight: 600; }
/* Indent nested levels — both direct ul>ul and ul>li>div>ul (Smarty wrapper) */
.category-tree ul ul,
.category-tree li > div > ul { padding-left: 0.9rem; margin-top: 0.15rem; }
/* Hide empty div wrappers */
.category-tree li > div:empty { display: none; }

/* Facet sections (ps_facetedsearch) */
.facet {
  margin-bottom: 1.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--gray-200);
}
.facet:last-child { border-bottom: none; }

.h6, .facet-title {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--wood-dark);
  margin-bottom: 0.75rem;
  display: block;
}

.facet ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.facet ul li { margin-bottom: 0.35rem; }

.facet-label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
  color: var(--gray-700);
  font-size: 0.85rem;
}
.facet-label:hover { color: var(--wood-dark); }
.facet-label a { color: inherit; font-size: inherit; margin-bottom: 0; }
.facet-label .magnitude {
  color: var(--gray-500);
  font-size: 0.75rem;
}

/* Bootstrap/PrestaShop utility */
.hide { display: none !important; }
.hidden-xs-up { display: none !important; }
.collapse { display: none; }
.collapse.in { display: block; }

/* Facet filters: always visible on desktop — template uses collapse for mobile only */
@media (min-width: 768px) {
  #search_filters .collapse { display: block !important; }
  /* Mobile toggle div must be fully hidden on desktop */
  #search_filters .facet .title.hidden-md-up { display: none !important; }
}

/* Active filters badge */
.active-search-filters { margin-bottom: 1rem; }
#js-active-search-filters { margin-bottom: 0; }
#js-active-search-filters.active_filters { margin-bottom: 1rem; }

.active-filter-title {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--wood-dark);
  margin-bottom: 0.5rem;
  display: block;
}

.filter-block {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: var(--green);
  color: var(--white);
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 600;
  margin: 0.2rem 0.2rem 0.2rem 0;
  text-decoration: none;
}
.filter-block:hover { background: var(--wood-medium); color: var(--white); }
.filter-block .close { color: inherit; font-size: 0.9rem; margin-left: 2px; opacity: 0.7; }

/* Left column search/filter wrapper */
#search_filters { margin-top: 0.5rem; }
#search_filters > .h6 { margin-bottom: 1rem; }

/* ---- Custom checkbox (faceted search) ---- */
.custom-checkbox {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  margin-right: 0.4rem;
  vertical-align: middle;
}

/* Hide native input but keep it interactive */
.custom-checkbox input[type="checkbox"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  margin: 0;
  cursor: pointer;
  z-index: 2;
  width: 100%;
  height: 100%;
}

/* Visual box */
.custom-checkbox > span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  border: 1.5px solid var(--wood-light);
  border-radius: 2px;
  background: #fff;
  transition: background 0.15s, border-color 0.15s;
  pointer-events: none;
}

/* Checkmark icon — hidden by default */
.custom-checkbox > span .material-icons {
  font-size: 0.75rem;
  line-height: 1;
  color: transparent;
  transition: color 0.15s;
}

/* Checked state — dual selector:
   1. input:checked ~ span  → CSS pseudo-class (works for JS-driven changes)
   2. .facet-label.active   → server-rendered class PS adds to label when filter is active */
.custom-checkbox input:checked ~ span,
.facet-label.active .custom-checkbox > span {
  background: var(--accent-gold);
  border-color: var(--accent-gold);
}

.custom-checkbox input:checked ~ span .material-icons,
.facet-label.active .custom-checkbox > span .material-icons {
  color: #fff;
}

/* ---- Custom radio (faceted search) ---- */
.custom-radio {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin-right: 0.5rem;
  vertical-align: middle;
}

.custom-radio input[type="radio"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  margin: 0;
  cursor: pointer;
  z-index: 2;
  width: 100%;
  height: 100%;
}

.custom-radio > span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid #ccc;
  border-radius: 50%;
  background: #fff;
  transition: background 0.15s, border-color 0.15s;
  pointer-events: none;
}

.custom-radio > span::after {
  content: '';
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: transparent;
  transition: background 0.15s;
}

/* checked via :checked pseudo-class — classic dot style */
.custom-radio input[type="radio"]:checked ~ span {
  border-color: var(--accent-orange) !important;
  background: #fff !important;
}

.custom-radio input[type="radio"]:checked ~ span::after {
  background: var(--accent-orange) !important;
  width: 0.55rem !important;
  height: 0.55rem !important;
}

/* fallback dla adresów — checkout JS zmienia .selected na article */
.js-address-item.selected .custom-radio > span,
.address-item.selected .custom-radio > span {
  border-color: var(--accent-orange) !important;
  background: #fff !important;
}

.js-address-item.selected .custom-radio > span::after,
.address-item.selected .custom-radio > span::after {
  background: var(--accent-orange) !important;
  width: 0.55rem !important;
  height: 0.55rem !important;
}

/* custom-checkbox */
.custom-checkbox {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  vertical-align: middle;
  margin-right: 0.4rem;
}

.custom-checkbox input[type="checkbox"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  margin: 0;
  cursor: pointer;
  z-index: 2;
  width: 100%;
  height: 100%;
}

.custom-checkbox > span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid #ccc;
  border-radius: 3px;
  background: #fff;
  transition: background 0.15s, border-color 0.15s;
  pointer-events: none;
}

.custom-checkbox > span .material-icons {
  font-size: 1rem;
  color: transparent;
  transition: color 0.15s;
  line-height: 1;
}

.custom-checkbox input[type="checkbox"]:checked ~ span {
  border-color: var(--accent-gold);
  background: var(--accent-gold);
}

.custom-checkbox input[type="checkbox"]:checked ~ span .material-icons {
  color: #fff;
}

/* usunięcie bullet z listy warunków płatności */
.js-conditions-to-approve ul,
#conditions-to-approve ul {
  list-style: none;
  padding: 0;
  margin: 0.75rem 0;
}

.js-conditions-to-approve li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
  list-style: none;
}

.js-conditions-to-approve .float-xs-left {
  flex-shrink: 0;
}

/* Facet label flex layout */
.facet-label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
  padding: 0.15rem 0;
}

.facet-label .search-link {
  color: var(--text-dark);
  text-decoration: none;
  font-size: 0.85rem;
  flex: 1;
}

.facet-label:hover .search-link { color: var(--accent-gold); }

/* Make ps-shown-by-js visible (PS hides it without JS) */
.ps-shown-by-js { display: flex !important; }

/* ============================================
   CATALOG / PRODUCT PAGE
   ============================================ */
.page-content {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-md);
  padding: 2rem;
}

.page-header {
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--wood-lightest);
}

/* Category description / header */
.category-description {
  margin-bottom: 1.5rem;
  color: var(--text-muted);
  line-height: 1.7;
}
.category-description img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  margin-bottom: 1rem;
}

/* Product listing header */
#js-product-list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--wood-lightest);
}
.products-section-title {
  font-size: clamp(1.1rem, 2.5vw, 1.5rem);
  margin-bottom: 0;
  color: var(--wood-dark);
}
.products-sort-order { flex-shrink: 0; }

/* Sort / per-page dropdown */
.btn-unstyle {
  background: none;
  border: 1.5px solid var(--gray-300);
  border-radius: var(--radius-sm);
  padding: 7px 12px;
  font-family: var(--font-body);
  font-size: 0.88rem;
  color: var(--gray-700);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  transition: border-color 0.2s, color 0.2s;
}
.btn-unstyle:hover { border-color: var(--wood-medium); color: var(--wood-dark); }
.btn-unstyle .material-icons { font-size: 1.1rem; }

.dropdown { position: relative; display: inline-block; }
.dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-sm);
  min-width: 220px;
  z-index: 200;
  padding: 0.4rem 0;
}
.dropdown.open .dropdown-menu,
.dropdown-menu.show { display: block; }
.select-list {
  display: block;
  padding: 0.45rem 1rem;
  font-size: 0.88rem;
  color: var(--gray-700);
  text-decoration: none;
  white-space: nowrap;
}
.select-list:hover,
.select-list.current { background: var(--cream); color: var(--wood-dark); }
.select-list.current { font-weight: 600; }

/* Sort orders row */
.sort-by-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.products-selection {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--gray-200);
}

/* ============================================
   PRODUCT TABS
   ============================================ */
.product-tabs { margin-top: 2.5rem; }

.nav { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; }

.nav-tabs {
  border-bottom: 2px solid var(--wood-lightest);
  gap: 0;
  margin-bottom: 1.5rem;
}
.nav-tabs li { margin-bottom: -2px; }
.nav-tabs li a {
  display: block;
  padding: 0.7rem 1.4rem;
  font-size: 0.88rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--gray-500);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: color 0.2s, border-color 0.2s;
}
.nav-tabs li a:hover { color: var(--wood-medium); }
.nav-tabs li.active a {
  color: var(--wood-dark);
  border-bottom-color: var(--wood-dark);
}

.tab-pane { display: none; }
.tab-pane.active { display: block; }

/* Product-page description inside tab — override miniature card styles */
.product-tabs .product-description {
  padding: 0.5rem 0;
  display: block;
  flex: none;
}

/* Product page reassurance + additional info */
.product-additional-info { margin-bottom: 0.75rem; }
.product-additional-info .product-additional-info { margin-bottom: 0; }

/* ============================================
   BREADCRUMB
   ============================================ */
.breadcrumb {
  padding: 1rem 0;
  font-size: 0.8rem;
  color: var(--gray-500);
}

.breadcrumb ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  padding: 0;
  margin: 0;
}

.breadcrumb li {
  display: flex;
  align-items: center;
}

.breadcrumb li + li::before {
  content: '/';
  margin: 0 8px;
  color: var(--gray-300);
}

.breadcrumb a {
  color: var(--wood-medium);
}

.breadcrumb .current {
  color: var(--gray-500);
}

/* ============================================
   FORMS
   ============================================ */
.form-control,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="number"],
input[type="search"],
textarea,
select {
  width: 100%;
  padding: 11px 15px;
  font-family: var(--font-body);
  font-size: 0.93rem;
  color: var(--gray-900);
  background: var(--white);
  border: 1.5px solid var(--gray-300);
  border-radius: var(--radius-sm);
  transition: border-color 0.2s, box-shadow 0.2s;
  -webkit-appearance: none;
  appearance: none;
}

.form-control:focus,
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--wood-medium);
  box-shadow: 0 0 0 3px rgba(93, 64, 55, 0.1);
}

label {
  display: block;
  font-size: 0.83rem;
  font-weight: 600;
  color: var(--gray-700);
  margin-bottom: 6px;
  letter-spacing: 0.2px;
}

.form-group { margin-bottom: 1.25rem; }

/* ============================================
   SEARCH WIDGET
   ============================================ */
.search-widget form {
  display: flex;
  align-items: stretch;
}

.search-widget input[type="text"],
.search-widget input[type="search"] {
  border-right: none;
  border-radius: var(--radius-sm) 0 0 var(--radius-sm);
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 255, 255, 0.14);
  color: var(--white);
  min-width: 180px;
  padding: 9px 13px;
}

.search-widget input::placeholder {
  color: rgba(255, 255, 255, 0.36);
}

.search-widget input:focus {
  border-color: var(--gold);
  box-shadow: none;
  background: rgba(255, 255, 255, 0.13);
}

.search-widget button,
.search-widget [type="submit"] {
  padding: 9px 15px;
  background: var(--gold);
  border: 1.5px solid var(--gold);
  border-left: none;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--wood-darkest);
  cursor: pointer;
  font-weight: 700;
  font-size: 0.85rem;
  transition: background 0.2s;
  width: auto;
}

.search-widget button:hover { background: var(--gold-light); }

/* ============================================
   PS SEARCHBAR MODULE
   Moduł renderuje id="search_widget" class="search-widgets"
   (nie pasuje do .search-widget powyżej — stąd osobna sekcja)
   ============================================ */
#search_widget {
  flex: 1;
  display: flex;
  align-items: center;
}

#search_widget form {
  display: flex;
  align-items: center;
  flex: 1;
}

/* Material Icons nie są załadowane — ukrywamy ikonki search i clear */
#search_widget .material-icons {
  display: none;
}

#search_widget input[type="text"],
#search_widget input[type="search"] {
  flex: 1;
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.09);
  border: 1.5px solid rgba(255, 255, 255, 0.14);
  color: var(--white);
  padding: 9px 13px;
  font-size: 0.9rem;
  line-height: 1.4;
  transition: border-color 0.2s, background 0.2s;
  -webkit-appearance: none;
  appearance: none;
}

#search_widget input::placeholder {
  color: rgba(255, 255, 255, 0.38);
}

#search_widget input:focus {
  border-color: var(--gold);
  box-shadow: none;
  background: rgba(255, 255, 255, 0.13);
  outline: none;
}

/* Drugi searchbar (z displayTop) ukryty — zostaje tylko ten z displaySearch */
.main-menu #search_widget {
  display: none;
}

/* ============================================
   BLOCKCART DROPDOWN (ps_shoppingcart)
   ============================================ */
#blockcart-wrapper {
  position: relative;
}
/* Most filling the 6px gap between trigger and dropdown — always rendered on the wrapper,
   so the cursor stays inside #blockcart-wrapper:hover while crossing the gap */
#blockcart-wrapper::after {
  content: '';
  position: absolute;
  bottom: -6px;
  left: 0;
  right: 0;
  height: 6px;
}

.blockcart .header a {
  display: flex;
  align-items: center;
  gap: 5px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  padding: 5px 8px;
  border-radius: var(--radius-sm);
  transition: color 0.2s, background 0.2s;
  white-space: nowrap;
}

.blockcart .header a:hover {
  color: var(--white);
  background: rgba(255, 255, 255, 0.08);
  text-decoration: none;
}

/* Treść koszyka — schowana, pokazuje się jako dropdown po najechaniu */
.blockcart .body {
  display: none;
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  width: 340px;
  background: var(--white);
  border-radius: var(--radius-md);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.32);
  padding: 1rem;
  z-index: 600;
  color: var(--gray-900);
}


#blockcart-wrapper:hover .blockcart .body {
  display: block;
}

/* Override white link color from .header-actions a inside cart dropdown */
.blockcart .body a {
  color: var(--gray-700);
  margin-bottom: 0;
}
.blockcart .body a:hover {
  color: var(--wood-dark);
  text-decoration: none;
}

/* Hover cart: "Produkty X zł" header above product list */
.cart-preview__section-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--gray-500);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid var(--gray-200);
  margin-bottom: 0.4rem;
}

/* Product list — no bullets */
.cart-preview__products {
  list-style: none;
  padding: 0;
  margin: 0 0 0.75rem;
}

.cart-preview__products li {
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--gray-100, #f0f0f0);
}

.cart-preview__products li:last-child {
  border-bottom: none;
}

/* Product line layout */
.cart-line {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.cart-line__name {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--wood-dark);
  line-height: 1.3;
}

.cart-line__name a {
  color: var(--wood-dark) !important;
  text-decoration: none;
}

.cart-line__name a:hover {
  color: var(--accent-gold) !important;
  text-decoration: underline;
}

.cart-line__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.cart-line__qty-price {
  font-size: 0.82rem;
  color: var(--text-muted, #777);
}

.cart-line__remove {
  display: flex !important;
  align-items: center;
  color: #c0392b !important;
  padding: 0 !important;
  line-height: 1;
  background: none;
  border: none;
  cursor: pointer;
  flex-shrink: 0;
}

.cart-line__remove .material-icons {
  font-size: 1.05rem;
}

.cart-line__remove:hover {
  color: #922b21 !important;
}

/* Subtotals & total */
.blockcart .cart-subtotals {
  margin-top: 0.5rem;
}

.blockcart .cart-subtotal {
  display: flex;
  justify-content: space-between;
  padding: 0.25rem 0;
  font-size: 0.85rem;
  color: var(--text-muted, #777);
  border-bottom: 1px solid var(--gray-100, #f0f0f0);
}

.blockcart .cart-subtotal.cart-weight-total {
  color: var(--gray-500);
  font-size: 0.8rem;
  border-bottom: none;
}

.blockcart .cart-total {
  display: flex;
  justify-content: space-between;
  font-weight: 700;
  font-size: 1rem;
  padding-top: 0.5rem;
  margin-top: 0.25rem;
  border-top: 2px solid var(--wood-lightest);
  color: var(--wood-dark);
}

/* Checkout button in dropdown */
.cart-preview__checkout {
  display: block;
  text-align: center;
  margin-top: 0.85rem;
  width: 100%;
  white-space: normal;
  line-height: 1.3;
  padding: 10px 16px;
}

/* Empty cart message */
.cart-preview__empty {
  font-size: 0.875rem;
  color: var(--text-muted, #777);
  text-align: center;
  margin: 0.5rem 0;
}

/* ============================================
   USER INFO (ps_customersignin w header)
   ============================================ */
.user-info {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.user-info a {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s;
}

.user-info a:hover {
  color: var(--gold);
  text-decoration: none;
}

/* User hover dropdown */
.user-dropdown {
  position: relative;
}

.user-dropdown__trigger {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  cursor: pointer;
}

.user-dropdown__trigger .material-icons {
  font-size: 1.2rem;
  line-height: 1;
}

.user-dropdown__arrow {
  font-size: 1rem !important;
  opacity: 0.7;
  transition: transform 0.2s;
}

.user-dropdown:hover .user-dropdown__arrow {
  transform: rotate(180deg);
}

.user-dropdown__menu {
  display: none;
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 0;
  min-width: 220px;
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 6px 24px rgba(0,0,0,0.15);
  border: 1px solid rgba(0,0,0,0.06);
  z-index: 500;
  padding: 0.35rem 0;
  /* small gap bridge so hover doesn't drop out between trigger and menu */
  margin-top: -0.5rem;
  padding-top: calc(0.35rem + 0.5rem);
}

.user-dropdown:hover .user-dropdown__menu {
  display: block;
}

.user-dropdown__item {
  display: flex !important;
  align-items: center;
  gap: 0.65rem;
  padding: 0.6rem 1.1rem;
  color: var(--wood-dark) !important;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  text-decoration: none !important;
  transition: background 0.15s, color 0.15s;
  white-space: nowrap;
}

.user-dropdown__item .material-icons {
  font-size: 1.1rem;
  color: var(--wood-medium);
  flex-shrink: 0;
}

.user-dropdown__item:hover {
  background: var(--wood-lightest, #f5ede8);
  color: var(--wood-dark) !important;
}

.user-dropdown__item--header {
  font-weight: 600 !important;
  color: var(--wood-dark) !important;
}

.user-dropdown__item--signout {
  color: #c0392b !important;
}

.user-dropdown__item--signout .material-icons {
  color: #c0392b;
}

.user-dropdown__divider {
  height: 1px;
  background: var(--gray-200, #e0e0e0);
  margin: 0.3rem 0;
}

/* Login link (not logged in) */
.user-signin-link {
  display: flex;
  align-items: center;
  gap: 0.3rem;
}

.user-signin-link .material-icons {
  font-size: 1.2rem;
  line-height: 1;
}

/* ============================================
   CART
   ============================================ */
.cart-summary {
  background: var(--white);
  padding: 1.5rem;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--gray-200);
}

.cart-total {
  font-size: 1.4rem;
  font-weight: 700;
  font-family: var(--font-display);
  color: var(--wood-dark);
  padding-top: 1rem;
  margin-top: 1rem;
  border-top: 2px solid var(--wood-lighter);
}

/* ============================================
   NOTIFICATIONS
   ============================================ */
#notifications { padding: 0.75rem 0; }

.notification {
  padding: 1rem 1.25rem;
  border-radius: var(--radius-sm);
  font-size: 0.9rem;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  border-left: 4px solid transparent;
  position: relative;
}

.notification-success {
  background: #f0f9eb;
  border-left-color: var(--green);
  color: #2e5f12;
}

.notification-warning {
  background: #fff9e6;
  border-left-color: var(--gold);
  color: #7a5600;
}

.notification-error {
  background: #fff0ee;
  border-left-color: var(--orange);
  color: #8c2400;
}

.notification-info {
  background: #eef5ff;
  border-left-color: #4a90d9;
  color: #1d3f6e;
}

.notification .close {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1.1rem;
  line-height: 1;
  opacity: 0.5;
  padding: 0;
  margin-left: auto;
  flex-shrink: 0;
  color: inherit;
  transition: opacity 0.2s;
}

.notification .close:hover { opacity: 1; }

/* ============================================
   WRAPPER / PAGE CONTENT
   ============================================ */
#wrapper {
  padding: 0.5rem 0 2rem;
}

/* Homepage has no breadcrumb/title, so no top gap needed */
body#index #wrapper {
  padding-top: 0;
}

.card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-md);
  padding: 1.5rem;
}

/* ============================================
   PAGINATION
   ============================================ */
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.35rem;
  margin-top: 3rem;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
}

.pagination .page-link,
.pagination a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 8px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--wood-medium);
  border: 1.5px solid var(--gray-300);
  border-radius: var(--radius-sm);
  transition: all 0.2s;
  text-decoration: none;
}

.pagination .active .page-link,
.pagination .page-link:hover,
.pagination a:hover {
  background: var(--wood-dark);
  border-color: var(--wood-dark);
  color: var(--white);
}

.pagination a.current {
  background: var(--wood-dark);
  border-color: var(--wood-dark);
  color: var(--white);
  pointer-events: none;
}

.pagination-spacer {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 40px;
  color: var(--gray-500);
  font-weight: 600;
  border: none;
}

.pagination-arrow {
  color: var(--wood-medium);
  font-size: 1.15rem;
  line-height: 1;
}

/* ============================================
   FOOTER
   ============================================ */
#footer {
  background-color: var(--wood-darkest);
  background-image:
    repeating-linear-gradient(
      93.5deg,
      transparent 0, transparent 3px,
      rgba(255, 195, 80, 0.016) 3px, rgba(255, 195, 80, 0.016) 4px
    ),
    linear-gradient(175deg, #2a1508 0%, var(--wood-darkest) 100%);
  color: rgba(255, 255, 255, 0.55);
  padding: 4rem 0 0;
  margin-top: 0;
}

.footer-container .container .row {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  padding-bottom: 3rem;
}

.footer-container .col-md-4 {
  flex: 1 1 200px;
  min-width: 0;
}

#footer h3,
#footer h4,
#footer .footer-heading,
#footer p.h4,
#footer .block-contact-title {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--white);
  margin-bottom: 1.25rem;
  padding-bottom: 0.6rem;
  border-bottom: 2px solid var(--gold);
  display: inline-block;
}

/* p.h4 used by ps_contactinfo must stay block-level so content after it wraps */
#footer p.h4,
#footer .block-contact-title {
  display: table;
}

/* Link inside heading (ps_customeraccountlinks wraps h4 text in <a>) */
#footer h3 a,
#footer h4 a {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-decoration: none;
  display: inline;
  margin-bottom: 0;
}

/* Newsletter form layout */
.block_newsletter form {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.block_newsletter form p {
  font-size: 0.75rem;
  color: rgba(255,255,255,0.4);
  margin-bottom: 0;
  order: 3;
}
.block_newsletter form input[type="email"] { order: 1; }
.block_newsletter form input[type="submit"] { order: 2; }

/* Spacing between newsletter submit button and social follow section */
.ps-social-follow {
  margin-top: 1.5rem;
}

#footer p { color: rgba(255, 255, 255, 0.5); font-size: 0.88rem; }

#footer a {
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.88rem;
  transition: color 0.2s;
  display: inline-block;
  margin-bottom: 0.4rem;
}

#footer a:hover {
  color: var(--gold);
  text-decoration: none;
}

#footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

#footer ul li { margin-bottom: 0.4rem; }

.footer-copyright {
  padding: 1.5rem 0;
  text-align: center;
  color: rgba(255, 255, 255, 0.28);
  font-size: 0.78rem;
  letter-spacing: 0.4px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.footer-copyright a {
  color: rgba(255, 255, 255, 0.38);
  margin: 0;
  display: inline;
}

.footer-copyright a:hover { color: var(--gold); }

/* Fix ps_contactinfo outputting col-md-3 which gets constrained to 25% */
#footer .block-contact {
  max-width: 100% !important;
  flex: none !important;
  width: 100%;
}

/* ============================================
   404 / ERROR PAGE
   ============================================ */
.error-404 {
  padding: 3rem 1.5rem;
  max-width: 520px;
  margin: 0 auto;
}
.error-404-title {
  font-size: clamp(4rem, 12vw, 7rem);
  font-family: var(--font-display);
  color: var(--wood-dark);
  line-height: 1;
  margin-bottom: 0.5rem;
}
.error-404-actions {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin: 1.5rem 0 2rem;
}
.error-404-search { width: 100%; max-width: 420px; margin: 0 auto; }
.error-404-search-row {
  display: flex;
  gap: 0.5rem;
}
.error-404-search-row .form-control {
  flex: 1;
  min-width: 0;
}
.error-404-search-row .btn {
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.error-404-search-row .btn .material-icons { font-size: 1.1rem; }

/* Bootstrap responsive utilities (not loaded in this theme) */
.hidden-sm-down { display: block; }
.hidden-md-up   { display: none; }
@media (max-width: 767px) {
  .hidden-sm-down { display: none; }
  .hidden-md-up   { display: block; }
}

/* Prevent page scroll when a modal is open */
body.modal-open { overflow: hidden; }

/* ============================================
   PRODUCTCOMMENTS MODULE
   ============================================ */
/* The module JS appends <div id="ratingNotChosen"> directly inside the <ul>,
   which causes a stray browser bullet. Remove list markers from criterions list. */
#criterions_list {
  list-style: none;
  padding: 0;
  margin: 0;
}
#criterions_list li { list-style: none; }

/* Bootstrap modal base (blockwishlist and other modules use .modal.fade) */
.modal {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 1050;
  overflow-x: hidden;
  overflow-y: auto;
}
.modal.show { display: block; }
.modal-backdrop {
  display: none;
  position: fixed;
  top: 0; left: 0; width: 100vw; height: 100vh;
  background: rgba(0,0,0,0.5);
  z-index: 1040;
}
.modal-backdrop.show { display: block; }
.modal-dialog {
  position: relative;
  width: auto;
  max-width: 500px;
  margin: 1.75rem auto;
  pointer-events: none;
}
.modal-dialog-centered {
  display: flex;
  align-items: center;
  min-height: calc(100% - 3.5rem);
}
.modal.show .modal-dialog { pointer-events: all; }
.modal-content {
  background: var(--white);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  display: flex;
  flex-direction: column;
  pointer-events: all;
}
.modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--gray-200);
}
.modal-body { padding: 1rem 1.25rem; }
.modal-footer {
  padding: 0.75rem 1.25rem;
  border-top: 1px solid var(--gray-200);
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}
.modal-title { font-size: 1rem; font-weight: 700; margin: 0; }
.modal .close {
  background: none;
  border: none;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--gray-500);
  padding: 0;
}
.modal .close:hover { color: var(--gray-900); }

/* ============================================
   SCROLL ANIMATIONS
   ============================================ */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0);    }
}

.animate-on-scroll {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.animate-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.animate-on-scroll:nth-child(2) { transition-delay: 0.08s; }
.animate-on-scroll:nth-child(3) { transition-delay: 0.16s; }
.animate-on-scroll:nth-child(4) { transition-delay: 0.24s; }
.animate-on-scroll:nth-child(5) { transition-delay: 0.32s; }

/* ============================================
   UTILITIES
   ============================================ */
.text-center  { text-align: center; }
.text-right   { text-align: right; }
.text-left    { text-align: left; }
.img-responsive { max-width: 100%; height: auto; }
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
}

/* Legacy spacing */
.mt-1 { margin-top: .5rem; }  .mb-1 { margin-bottom: .5rem; }
.mt-2 { margin-top: 1rem; }   .mb-2 { margin-bottom: 1rem; }
.mt-3 { margin-top: 1.5rem; } .mb-3 { margin-bottom: 1.5rem; }

/* ============================================
   RESPONSIVE
   ============================================ */
/* col-lg-3: 4 columns only on wide full-width pages (≥1400px) */
@media (min-width: 1400px) {
  .col-lg-3 { flex: 0 0 25%; max-width: 25%; }
}

@media (max-width: 1024px) {
  .features-grid { grid-template-columns: repeat(2, 1fr); }
  .feature { border-right: none; border-bottom: 1px solid var(--wood-lightest); }
  .feature:nth-child(odd) { border-right: 1px solid var(--wood-lightest); }
  .feature:nth-last-child(-n+2) { border-bottom: none; }
}

@media (max-width: 768px) {
  .col-md-3,
  .col-md-4,
  .col-md-6,
  .col-md-8,
  .col-md-9 { flex: 0 0 100%; max-width: 100%; }

  .col-sm-4 { flex: 0 0 50%; max-width: 50%; }

  .header-inner { flex-wrap: wrap; gap: 0.75rem; }
  .header-search { order: 3; flex: 0 0 100%; }
  .header-actions { margin-left: auto; }

  .menu-toggle { display: flex; }

  .main-menu ul {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #1a0e06;
    z-index: 200;
    padding: 0.5rem 0;
    box-shadow: 0 12px 32px rgba(0,0,0,0.45);
  }

  .main-menu ul.active { display: flex; }

  /* Mobile: submenu inline (toggle via JS) */
  .main-menu .sub-menu {
    position: static;
    box-shadow: none;
    background: rgba(0,0,0,0.25);
    border-radius: 0;
    padding: 0;
    width: 100%;
  }
  .main-menu li:hover > .sub-menu { display: none !important; } /* disable CSS hover on mobile */
  .main-menu li.menu-open > .sub-menu { display: block !important; }
  .main-menu .sub-menu .top-menu { display: flex; }
  .main-menu .sub-menu .top-menu.active { display: flex; }

  .main-menu a {
    padding: 13px 24px;
    font-size: 0.85rem;
  }

  .main-menu a::after { display: none; }

  .homepage-hero { min-height: 55vh; }

  .hero-title { letter-spacing: -0.5px; }

  .hero-badge { display: none; }

  .features-grid { grid-template-columns: 1fr 1fr; }

  .products-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; }

  #footer { padding-top: 3rem; }
  .footer-container .col-md-4 { flex: 0 0 100%; max-width: 100%; margin-bottom: 2rem; }
}

@media (max-width: 480px) {
  .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .hero-actions .btn { text-align: center; justify-content: center; }

  .products-grid { grid-template-columns: 1fr 1fr; gap: 0.75rem; }

  .features-grid { grid-template-columns: 1fr; }
  .feature { border-right: none; }
  .feature:nth-child(odd) { border-right: none; }
}

/* ============================================
   BLOCKWISHLIST
   ============================================ */

/* Lists page */
.wishlist-container ul,
.wishlist-lists ul {
  list-style: none !important;
  padding: 0;
  margin: 0;
}

.wishlist-container li,
.wishlist-lists li {
  list-style: none !important;
}

.wishlist-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.875rem 1rem;
  border-bottom: 1px solid var(--gray-200);
  gap: 1rem;
}

.wishlist-list-item:first-child { border-top: 1px solid var(--gray-200); }

.wishlist-list-item__name {
  font-weight: 500;
  color: var(--wood-dark);
  flex: 1;
}

.wishlist-list-item__count {
  color: var(--gray-500);
  font-size: 0.875rem;
}

.wishlist-footer-links {
  display: flex;
  gap: 1.5rem;
  margin-top: 1.5rem;
  font-size: 0.875rem;
}

.wishlist-footer-links a {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--wood-medium);
  text-decoration: none;
}

.wishlist-footer-links a:hover { color: var(--wood-dark); }
.wishlist-footer-links .material-icons { font-size: 1.1rem; }

/* Wishlist list item — share icon pushed to the right */
.wishlist-list-item-link {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100%;
}

.wishlist-list-item-title {
  flex: 1;
}

.wishlist-list-item-right {
  flex-shrink: 0;
  margin-left: 1rem;
}

/* Wishlist sort dropdown (products-list page) */
.sort-by-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.products-sort-order.dropdown {
  display: inline-block;
  position: relative;
}

.products-sort-order .btn-unstyle.select-title {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.45rem 0.85rem;
  border: 1.5px solid var(--gray-300);
  border-radius: var(--radius-sm);
  background: var(--white);
  cursor: pointer;
  font-size: 0.875rem;
  color: var(--wood-dark);
}

.products-sort-order.open .dropdown-menu {
  display: block;
}

.products-sort-order .dropdown-menu {
  min-width: 160px;
}

/* Create new wishlist button */
.wishlist-add-to-new {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--wood-medium);
  font-size: 0.875rem;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}

/* ============================================
   LAYOUT — LEFT COLUMN (category/search pages)
   ============================================ */
#columns-wrapper { width: 100%; }

.layout-with-left-col {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 1.5rem;
  align-items: start;
}

#left-column {
  /* sticky sidebar on tall pages */
  position: sticky;
  top: 1.5rem;
}

@media (max-width: 767px) {
  .layout-with-left-col {
    grid-template-columns: 1fr;
  }
  #left-column { position: static; }
}

/* ============================================
   CONTACT PAGE
   ============================================ */
.contact-page-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 2.5rem;
  align-items: start;
}

.contact-heading {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 3vw, 2rem);
  color: var(--wood-dark);
  margin: 0 0 1.5rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--wood-lightest);
}

/* Contact sidebar (ps_contactinfo-rich.tpl uses .contact-rich) */
.contact-sidebar .contact-rich {
  background: var(--wood-dark);
  color: #fff;
  border-radius: 6px;
  padding: 1.5rem;
}

.contact-sidebar .contact-rich h4 {
  font-family: var(--font-display);
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--accent-gold);
  margin: 0 0 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(201,162,39,0.3);
}

.contact-sidebar .contact-rich .block {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  padding: 0.65rem 0;
  border-top: 1px solid rgba(255,255,255,0.07);
}

.contact-sidebar .contact-rich .block:first-of-type {
  border-top: none;
}

.contact-sidebar .contact-rich .icon {
  flex-shrink: 0;
  color: var(--accent-gold);
  line-height: 1;
}

.contact-sidebar .contact-rich .icon .material-icons {
  font-size: 1.2rem;
}

.contact-sidebar .contact-rich .data {
  font-size: 0.9rem;
  line-height: 1.5;
  color: rgba(255,255,255,0.85);
}

.contact-sidebar .contact-rich .data a {
  color: var(--accent-gold);
  text-decoration: none;
}

.contact-sidebar .contact-rich .data a:hover {
  text-decoration: underline;
}

.contact-sidebar .contact-rich hr {
  border-color: rgba(255,255,255,0.1);
  margin: 0;
}

/* Contact form (contactform.tpl theme override) */
.contact-form .form-group {
  margin-bottom: 1.25rem;
}

.contact-form label {
  display: block;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--wood-dark);
  margin-bottom: 0.4rem;
}

.contact-form .form-control {
  width: 100%;
  padding: 0.6rem 0.85rem;
  border: 1.5px solid var(--gray-300);
  border-radius: 4px;
  font-size: 0.95rem;
  font-family: var(--font-body);
  color: var(--text-dark);
  background: #fff;
  transition: border-color 0.2s;
  box-sizing: border-box;
}

.contact-form .form-control:focus {
  outline: none;
  border-color: var(--wood-medium);
  box-shadow: 0 0 0 3px rgba(93,64,55,0.12);
}

.contact-form textarea.form-control {
  resize: vertical;
  min-height: 140px;
}

.contact-form select.form-control {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235d4037' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.85rem center;
  padding-right: 2.5rem;
}

.contact-form .form-control-file {
  font-size: 0.9rem;
}

.contact-form .form-text {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-top: 0.2rem;
}

.contact-form .form-footer {
  margin-top: 1.5rem;
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .contact-page-layout {
    grid-template-columns: 1fr;
  }
  .contact-sidebar { order: 2; }
  .contact-main    { order: 1; }
}

/* ============================================
   CUSTOMER ACCOUNT PAGES
   ============================================ */
.account-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 2rem;
  align-items: start;
}

/* Sidebar */
.account-sidebar {
  background: var(--wood-darkest);
  border-radius: var(--radius-md);
  padding: 1.25rem 1rem;
  position: sticky;
  top: 1.5rem;
}

.account-sidebar__title {
  color: var(--gold);
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  margin: 0 0 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.account-sidebar__link {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 0.75rem;
  color: rgba(255,255,255,0.7);
  text-decoration: none;
  border-radius: var(--radius-sm);
  font-size: 0.875rem;
  transition: background 0.15s, color 0.15s;
  margin-bottom: 0.15rem;
}

.account-sidebar__link:hover,
.account-sidebar__link.active {
  background: rgba(255,255,255,0.08);
  color: var(--white);
  text-decoration: none;
}

.account-sidebar__link .material-icons {
  font-size: 1.1rem;
  color: var(--gold);
  flex-shrink: 0;
}

.account-sidebar__link--signout {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  color: rgba(255,120,100,0.75);
}

.account-sidebar__link--signout:hover {
  color: #ff6b6b;
  background: rgba(255,0,0,0.06);
}

.account-sidebar__link--signout .material-icons {
  color: rgba(255,120,100,0.75);
}

/* Account content area */
.account-main .page-header h1 {
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
}

.page-customer-account { background: none; border: none; padding: 0; }

/* Account cards (my-account page) */
.account-links {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 1rem;
}

.account-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 1.5rem 1rem;
  background: var(--white);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-md);
  text-align: center;
  color: var(--wood-dark);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
  min-height: 110px;
}

.account-card:hover {
  border-color: var(--wood-medium);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
  color: var(--wood-dark);
  text-decoration: none;
}

.account-card .material-icons {
  font-size: 2rem;
  color: var(--wood-medium);
}

/* account-card inside sidebar — override card look to match sidebar link style */
.account-sidebar .account-card {
  flex-direction: row !important;
  justify-content: flex-start !important;
  gap: 0.6rem;
  padding: 0.55rem 0.75rem !important;
  background: transparent !important;
  border: none !important;
  border-radius: var(--radius-sm) !important;
  text-align: left !important;
  color: rgba(255,255,255,0.7) !important;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  min-height: auto !important;
  box-shadow: none !important;
  width: 100%;
  margin-bottom: 0.15rem;
  transform: none !important;
  text-decoration: none;
}

.account-sidebar .account-card:hover {
  background: rgba(255,255,255,0.08) !important;
  color: var(--white) !important;
  box-shadow: none !important;
  transform: none !important;
}

.account-sidebar .account-card .material-icons {
  font-size: 1.1rem !important;
  color: var(--gold) !important;
  flex-shrink: 0;
}

/* Fallback: hook-added items that still use old .link-item pattern */
.account-links > a .link-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 1.5rem 1rem;
  background: var(--white);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-md);
  text-align: center;
  color: var(--wood-dark);
  font-size: 0.875rem;
  font-weight: 500;
  min-height: 110px;
  width: 100%;
  box-sizing: border-box;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}

.account-links > a:has(.link-item) {
  text-decoration: none;
  display: flex;
}

.account-links > a:has(.link-item):hover .link-item {
  border-color: var(--wood-medium);
  box-shadow: var(--shadow-md);
}

.account-links > a .link-item .material-icons {
  font-size: 2rem;
  color: var(--wood-medium);
}

/* Fallback: li-wrapped hook items */
.account-links > li {
  list-style: none;
  display: contents;
}

.account-links > li > a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 1.5rem 1rem;
  background: var(--white);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-md);
  text-align: center;
  color: var(--wood-dark);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  min-height: 110px;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}

.account-links > li > a:hover {
  border-color: var(--wood-medium);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

@media (max-width: 767px) {
  .account-layout {
    grid-template-columns: 1fr;
  }
  .account-sidebar { position: static; }
  .account-links { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================
   ORDER HISTORY & STATUS LABELS
   ============================================ */

.table-orders { width: 100%; border-collapse: collapse; }
.table-orders th,
.table-orders td { padding: 0.75rem 1rem; border-bottom: 1px solid var(--gray-200); vertical-align: middle; }
.table-orders thead th { background: var(--gray-100); font-weight: 600; color: var(--wood-dark); }

/* Order status badge — contrast class set by PS based on background color */
.label-pill {
  display: inline-block;
  padding: 0.25rem 0.65rem;
  border-radius: 1rem;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}
.label-pill.dark  { color: #212121 !important; }
.label-pill.light { color: #ffffff !important; }

/* Order history & detail actions */
.order-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 1.5rem; }
.table-orders .order-actions,
td.order-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }
#order-totals + .order-actions,
#order-detail > .order-actions { margin-top: 1.5rem; }

/* ============================================
   CART PAGE
   ============================================ */

/* Override Bootstrap-style row inside cart grid */
.cart-grid.row {
  display: grid !important;
  grid-template-columns: 1fr 320px;
  gap: 2rem;
  margin: 0 !important;
  align-items: start;
}

.cart-grid-body,
.cart-grid-right {
  padding: 0 !important;
  flex: none !important;
  max-width: none !important;
  min-width: 0;
}

/* Cart container card */
.cart-container { padding: 1.5rem; }
.cart-container h1 { font-size: 1.5rem; margin-bottom: 1rem; }
.cart-container hr.separator { margin: 0 0 1rem; border: none; border-top: 1px solid var(--gray-200); }

/* Cart items list */
ul.cart-items {
  list-style: none !important;
  padding: 0;
  margin: 0;
}

.cart-item {
  padding: 1.25rem 0;
}

.cart-item + .cart-item {
  border-top: 1px solid var(--gray-200);
}

/* Product line — override Bootstrap row layout */
.product-line-grid.row {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 1rem;
  margin: 0 !important;
}

.product-line-grid-left {
  flex: 0 0 80px !important;
  max-width: 80px !important;
  padding: 0 !important;
}

.product-line-grid-left img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  display: block;
}

.product-line-grid-body {
  flex: 1 1 auto !important;
  min-width: 0;
  max-width: none !important;
  padding: 0 !important;
}

.product-line-grid-right {
  flex: 0 0 auto !important;
  max-width: none !important;
  padding: 0 !important;
}

.product-line-grid-right > .row {
  display: flex !important;
  align-items: center;
  gap: 1rem;
  flex-wrap: nowrap;
  margin: 0 !important;
}

.product-line-grid-right .price,
.product-line-grid-right .total-price,
.product-line-grid-right .qty,
.product-line-grid-right .text-xs-right {
  padding: 0 !important;
  flex: 0 0 auto;
}

.product-line-grid-right .price { min-width: 60px; }
.product-line-grid-right .total-price { min-width: 60px; font-weight: 600; }

/* Product name & remove link */
.product-line-info .label {
  font-weight: 600;
  color: var(--wood-dark);
  font-size: 0.9rem;
}

.product-line-info .value {
  color: var(--gray-700);
  font-size: 0.85rem;
}

.product-line-info.product-reference .label,
.product-line-info.product-reference .value,
.product-line-info.product-line-weight .label,
.product-line-info.product-line-weight .value {
  font-size: 0.8rem;
  color: var(--gray-500);
}

.remove-from-cart {
  color: var(--gray-500);
  transition: color 0.15s;
  display: flex;
  align-items: center;
}

.remove-from-cart:hover { color: var(--orange); }
.remove-from-cart .material-icons { font-size: 1.1rem; }

/* Continue shopping link */
a.label[href] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin-top: 1rem;
  color: var(--wood-medium);
  font-size: 0.875rem;
  text-decoration: none;
}

a.label[href]:hover { color: var(--wood-dark); }

/* Quantity touchspin */
.input-group.bootstrap-touchspin {
  display: inline-flex !important;
  align-items: stretch;
  border: 1.5px solid var(--gray-300);
  border-radius: var(--radius-sm);
  overflow: hidden;
  width: auto;
}

.bootstrap-touchspin .input-group-btn-vertical {
  display: flex;
}

.bootstrap-touchspin .btn-touchspin {
  width: 32px;
  min-height: 36px;
  border: none;
  background: var(--gray-100);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--wood-dark);
  padding: 0;
  transition: background 0.15s;
  flex-shrink: 0;
}

.bootstrap-touchspin .btn-touchspin:hover { background: var(--gray-200); }

.bootstrap-touchspin .btn-touchspin .material-icons { font-size: 1rem; }

.bootstrap-touchspin .js-cart-line-product-quantity {
  width: 44px !important;
  text-align: center !important;
  border: none !important;
  border-left: 1.5px solid var(--gray-300) !important;
  border-right: 1.5px solid var(--gray-300) !important;
  border-radius: 0 !important;
  padding: 0 !important;
  height: auto !important;
  font-size: 0.9rem;
  background: var(--white);
}

/* Cart summary (right column) */
.cart-summary { padding: 1.5rem; }

.cart-summary .media-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.cart-summary .media-list li {
  list-style: none;
}

.cart-summary .cart-summary-line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.5rem 0;
  font-size: 0.9rem;
  border-bottom: 1px solid var(--gray-200);
}

.cart-summary .cart-summary-line:last-child { border-bottom: none; }
.cart-summary .cart-summary-line.cart-weight { color: var(--gray-600); font-size: 0.85rem; }

.cart-summary .cart-summary-line.cart-total {
  font-weight: 700;
  font-size: 1rem;
  color: var(--wood-dark);
  border-top: 2px solid var(--gray-200);
  margin-top: 0.5rem;
  padding-top: 0.75rem;
}

.cart-summary .value { font-weight: 600; }

/* Cart actions */
.cart-detailed-actions {
  margin-top: 1rem;
}

.cart-detailed-actions a.btn,
.cart-detailed-actions .btn {
  width: 100%;
  display: block;
  text-align: center;
  white-space: normal;
  line-height: 1.3;
  padding-top: 12px;
  padding-bottom: 12px;
}

/* Remove outer page-content card wrapper on cart — it already has inner cards */
#cart .page-content.card,
#cart .page-content.card-block {
  background: none;
  border: none;
  padding: 0;
  box-shadow: none;
}

/* Separator in cart totals */
.cart-detailed-totals hr.separator {
  margin: 0.75rem 0;
  border: none;
  border-top: 1px solid var(--gray-200);
}

@media (max-width: 900px) {
  .cart-grid.row {
    grid-template-columns: 1fr !important;
  }
}

/* ============================================================
 * Stores page (/nasze-sklepy)
 * ============================================================ */
.stores-list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.store-item.card {
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  overflow: hidden;
}

.store-item__body {
  display: flex;
  gap: 1.5rem;
  padding: 1.5rem;
  align-items: flex-start;
}

.store-item__image {
  flex: 0 0 220px;
  max-width: 220px;
}

.store-item__img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  border-radius: 6px;
}

.store-item__info {
  flex: 1 1 auto;
}

.store-item__name {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  color: var(--wood-dark);
  margin: 0 0 0.75rem;
}

.store-item__address {
  font-style: normal;
  color: var(--text-muted);
  margin-bottom: 0.75rem;
  line-height: 1.6;
}

.store-item__contacts {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
}

.store-item__contacts li {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.3rem;
  font-size: 0.95rem;
}

.store-item__contacts .material-icons {
  font-size: 1.1rem;
  color: var(--wood-medium);
}

.store-item__contacts a {
  color: var(--wood-medium);
}

.store-item__contacts a:hover {
  color: var(--accent-green);
}

.store-item__note {
  margin-bottom: 1rem;
  color: var(--text-muted);
  font-size: 0.9rem;
}

.store-item__hours-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--wood-dark);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 0.5rem;
}

.store-item__hours-table {
  border-collapse: collapse;
  font-size: 0.9rem;
  width: auto;
}

.store-item__hours-table th {
  font-weight: 600;
  color: var(--wood-dark);
  padding: 0.2rem 1rem 0.2rem 0;
  text-align: left;
  white-space: nowrap;
}

.store-item__hours-table td {
  color: var(--text-muted);
  padding: 0.2rem 0;
}

@media (max-width: 640px) {
  .store-item__body {
    flex-direction: column;
  }
  .store-item__image {
    flex: none;
    max-width: 100%;
  }
  .store-item__img {
    height: 200px;
  }
}

/* ============================================================
 * Sitemap page
 * ============================================================ */
.sitemap-content {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 2rem;
}

.sitemap-section__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--wood-dark);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom: 2px solid var(--accent-gold);
  padding-bottom: 0.4rem;
  margin-bottom: 0.75rem;
}

.sitemap-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sitemap-list li {
  margin-bottom: 0.3rem;
}

.sitemap-list a {
  color: var(--wood-medium);
  font-size: 0.9rem;
  text-decoration: none;
}

.sitemap-list a:hover {
  color: var(--accent-green);
  text-decoration: underline;
}

.sitemap-list--nested {
  margin-top: 0.3rem;
  padding-left: 1rem;
  border-left: 2px solid var(--gray-200);
}

/* ============================================
   CHECKOUT
   ============================================ */

.checkout-page {
  padding: 1.5rem 0;
}

/* Pasek nawigacji kroków */
.checkout-steps-nav {
  margin-bottom: 2rem;
}

.checkout-steps-nav__list {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0;
  counter-reset: none;
}

.checkout-steps-nav__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  padding: 0.75rem 0.5rem;
  color: var(--text-muted, #999);
  font-size: 0.85rem;
  text-align: center;
  border-bottom: 3px solid var(--gray-200);
  transition: color 0.2s, border-color 0.2s;
}

.checkout-steps-nav__item + .checkout-steps-nav__item::before {
  display: none;
}

.checkout-steps-nav__number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--gray-200);
  color: var(--text-muted, #999);
  font-weight: 700;
  font-size: 0.9rem;
  margin-bottom: 0.4rem;
  transition: background 0.2s, color 0.2s;
}

/* Aktywny krok */
.checkout-steps-nav__item.is-current {
  color: var(--wood-dark);
  border-bottom-color: var(--accent-gold);
}

.checkout-steps-nav__item.is-current .checkout-steps-nav__number {
  background: var(--accent-gold);
  color: #fff;
}

.checkout-steps-nav__item.is-complete .checkout-steps-nav__number {
  background: var(--accent-green, #558b2f);
  color: #fff;
}

.checkout-steps-nav__item.is-complete {
  color: var(--accent-green, #558b2f);
}

/* Kroki sekcji checkout */
.checkout-step {
  display: none;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--gray-200);
  margin-bottom: 1rem;
}

.checkout-step.-current {
  display: block;
}

.checkout-step.-complete {
  display: block;
}

.step-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.2rem;
  margin-bottom: 1rem;
  cursor: pointer;
  color: var(--wood-dark);
}

.step-title .done {
  display: none;
  color: var(--accent-green);
}

.checkout-step.-complete .step-title .done {
  display: inline;
}

.checkout-step.-complete .step-title .step-number {
  display: none;
}

.step-title .step-edit {
  margin-left: auto;
  font-size: 0.85rem;
  display: none;
}

.checkout-step.-complete:not(.-current) .step-title .step-edit {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
}

.checkout-step:not(.-current) .content {
  display: none;
}

.checkout-step.-complete:not(.-current) .content {
  display: none;
}

/* Przycisk Kontynuuj */
.checkout-step .continue,
.checkout-step button[name="confirm-addresses"],
.checkout-step .btn-primary {
  margin-top: 1rem;
}

/* Podsumowanie koszyka */
.cart-summary {
  padding: 1.25rem;
  border: 1px solid var(--gray-200);
  border-radius: 4px;
}

/* Selektor adresu */
.address-selector .address-item {
  border: 2px solid var(--gray-200);
  border-radius: 4px;
  padding: 1rem;
  margin-bottom: 0.75rem;
  cursor: pointer;
  transition: border-color 0.2s;
}

.address-selector .address-item.selected,
.address-selector .address-item:has(input:checked) {
  border-color: var(--accent-gold);
}

/* Formularz adresu */
.js-address-form .form-group {
  margin-bottom: 1rem;
}

.add-address,
.addresses-footer {
  margin-top: 1rem;
}
