/* ============================================================
   SABONO — Custom storefront styles
   Restored from backup + BergHOFF-style improvements
   ============================================================ */

/* ── 0. Hero Slider (shs) ─────────────────────────────────── */
.shs {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #111;
  margin-top: 0;
}

/* Full-bleed: escape Gutenberg's constrained-layout container */
.entry-content > .shs,
.is-layout-constrained > .shs {
  max-width: 100vw;
  width: 100vw;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

.shs__track {
  position: relative;
  width: 100%;
  height: min(620px, 65vh);
  min-height: 400px;
}

.shs__slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 700ms ease;
  display: flex;
  align-items: flex-end;
}

.shs__slide--active {
  opacity: 1;
}

.shs__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.64) 0%, rgba(0, 0, 0, 0.22) 55%, rgba(0, 0, 0, 0) 100%),
    linear-gradient(to top, rgba(0, 0, 0, 0.42) 0%, transparent 50%);
}

.shs__content {
  position: relative;
  z-index: 1;
  padding: 40px 56px 52px;
  max-width: 660px;
  color: #fff;
}

.shs__heading {
  margin: 0 0 12px;
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 800;
  line-height: 1.05;
  color: #fff;
}

.shs__sub {
  margin: 0 0 26px;
  font-size: 1.04rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.82);
  max-width: 460px;
}

.shs__btn {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 0 28px;
  background: rgba(17, 17, 17, 0.84);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.22);
  transition: background 160ms ease;
}

.shs__btn:hover {
  background: var(--sabono-accent, #587466);
  color: #fff;
  text-decoration: none;
}

/* Arrows */
.shs__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.38);
  background: rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 1.9rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 160ms ease;
}

.shs__arrow:hover {
  background: rgba(255, 255, 255, 0.3);
}

.shs__arrow--prev { left: 20px; }
.shs__arrow--next { right: 20px; }

/* Dot indicators */
.shs__dots {
  position: absolute;
  bottom: 22px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  gap: 8px;
}

.shs__dot {
  width: 32px;
  height: 3px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.4);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background 220ms ease, width 220ms ease;
}

.shs__dot--active {
  width: 52px;
  background: #fff;
}

@media (max-width: 640px) {
  .shs {
    margin-top: -30px;
  }

  .shs__content {
    padding: 22px 20px 38px;
  }

  .shs__arrow {
    display: none;
  }

  .shs__heading {
    font-size: 1.8rem;
  }

  .shs__sub {
    display: none;
  }
}

/* ── 1. Design tokens ─────────────────────────────────────── */
:root {
  --sabono-ink: #17231f;
  --sabono-soft-ink: #42504b;
  --sabono-muted: #6f7771;
  --sabono-paper: #f3efe7;
  --sabono-panel: #fbfcfa;
  --sabono-warm: #d9c9ad;
  --sabono-line: rgba(39, 50, 45, 0.12);
  --sabono-accent: #587466;
  --sabono-blue: #315172;
  --sabono-gold: #9c7a46;
}

/* ── 1.1 Language switcher ───────────────────────────────── */
.sabono-language-menu-item {
  display: inline-flex;
  align-items: center;
}

.sabono-language-switcher {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  min-height: 34px;
  border: 1px solid var(--sabono-line);
  border-radius: 999px;
  padding: 3px;
  background: #fff;
}

.sabono-language-switcher a {
  display: inline-grid;
  min-width: 34px;
  min-height: 26px;
  place-items: center;
  border-radius: 999px;
  color: var(--sabono-soft-ink);
  font-size: 0.72rem;
  font-weight: 850;
  line-height: 1;
  text-decoration: none;
  padding: 0;
  background: transparent;
  transition: background 240ms ease, color 240ms ease;
}

/* Active pill */
.ct-header .sabono-language-switcher a.is-active {
  background: var(--sabono-ink) !important;
  color: #fff !important;
}

/* Hovering the inactive option: fade out the active pill, fade in on hover target */
.ct-header .sabono-language-switcher:has(a:not(.is-active):hover) a.is-active {
  background: transparent !important;
  color: var(--sabono-soft-ink) !important;
}

.ct-header .sabono-language-switcher a:not(.is-active):hover {
  background: var(--sabono-ink) !important;
  color: #fff !important;
}

.mobile-menu .sabono-language-menu-item,
[data-device="mobile"] .sabono-language-menu-item {
  margin-top: 8px;
}

/* ── 2. Clickable tile cards (stretch-link pattern) ────────── */
/* Tiles injected with .gspb-tile-link become fully clickable  */
.gspb_container:has(> .gspb-tile-link) {
  position: relative;
  cursor: pointer;
}

.gspb-tile-link {
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: inherit;
}

/* Keep label overlay visible above the stretch link */
.gspb_container:has(> .gspb-tile-link) > [class*="gspb_container"]:not(.gspb-tile-link) {
  position: relative;
  z-index: 3;
}

/* Hover: subtle lift effect on the tile image */
.gspb_container:has(> .gspb-tile-link):hover img {
  transform: scale(1.03);
  transition: transform 220ms ease;
}

/* ── 3. Promo bar (BergHOFF-style announcement strip) ──────── */
.sabono-promo-bar {
  position: relative;
  z-index: 9999;
  width: 100vw;
  max-width: 100vw;
  box-sizing: border-box;
  padding: 9px 16px;
  background: var(--sabono-ink);
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-align: center;
}

@media (max-width: 480px) {
  .sabono-promo-bar {
    padding: 7px 10px;
    font-size: 0.75rem;
    line-height: 1.25;
    letter-spacing: 0;
    overflow: hidden;
    overflow-wrap: anywhere;
  }
}

.sabono-promo-bar a {
  display: inline-block;
  max-width: calc(100vw - 20px);
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.sabono-promo-bar a:hover {
  opacity: 0.85;
}

/* ── 3. Global base ───────────────────────────────────────── */
body.sabono-storefront {
  color: var(--sabono-ink);
  background: #fbfcfc;
}

.home .entry-header {
  display: none;
}

.home .hero-section {
  display: none;
}

.home .ct-container-full[data-vertical-spacing] {
  padding-top: 0;
  padding-bottom: 0;
}

.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  border-radius: 6px;
  font-weight: 650;
}

/* ── 4. Header ─────────────────────────────────────────────── */

/* All rows: no individual borders, shared white base */
.ct-header [data-row] {
  background: #fff;
  box-shadow: none;
  border-bottom: none;
}

/* Single clean border under the entire header block */
#header {
  border-bottom: 1px solid rgba(39, 50, 45, 0.1);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

/* Top row: social icons — ultra-thin, neutral grey */
.ct-header [data-row="top"] {
  background: #f7f7f5;
  border-bottom: 1px solid rgba(39, 50, 45, 0.06);
  min-height: 36px;
}

/* Middle row: logo + primary nav — clean white with more height */
.ct-header [data-row="middle"] {
  background: #fff;
  min-height: 72px;
}

/* End column (nav + icons) fills remaining space */
.ct-header [data-row="middle"] [data-column="end"] {
  flex: 1;
  min-width: 0;
}

/* Items container: nav centered, icons pinned right */
.ct-header [data-row="middle"] [data-column="end"] [data-items] {
  display: flex !important;
  align-items: center;
  width: 100%;
  gap: 16px;
}

/* Nav expands and centers its links */
.ct-header [data-row="middle"] [data-column="end"] nav[data-id="menu"] {
  flex: 1;
  display: flex;
  justify-content: center;
}

/* Center the <ul> within the nav */
.ct-header [data-row="middle"] nav[data-id="menu"] > ul.menu {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 4px;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}

/* Bottom row: category nav — warm beige strip, centered */
.ct-header [data-row="bottom"] {
  background: var(--sabono-paper, #f3efe7);
  border-top: 1px solid rgba(39, 50, 45, 0.07);
  min-height: 42px;
}

.ct-header [data-row="bottom"] nav.menu-container {
  display: flex;
  justify-content: center;
  width: 100%;
}

.ct-header [data-row="bottom"] nav.menu-container > ul.menu {
  display: flex !important;
  justify-content: center;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}

/* Sticky: keep it solid */
.ct-header.ct-header--has-sticky .ct-header--sticky [data-row],
#header.ct-header--has-sticky [data-row] {
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(14px);
}

.ct-header .site-title,
.ct-header .ct-header-text,
.ct-header [data-id="logo"] {
  letter-spacing: -0.01em;
  font-weight: 800;
}

.ct-header [data-id="logo"] a {
  display: inline-flex;
  align-items: center;
}

.ct-header [data-id="logo"] img,
.ct-header [data-id="logo"] .custom-logo {
  display: block;
  height: 96px;
  width: auto;
  max-height: 96px;
  object-fit: contain;
}

@media (max-width: 999px) {
  .ct-header [data-id="logo"] img,
  .ct-header [data-id="logo"] .custom-logo {
    height: 68px;
    max-height: 68px;
  }
}

/* Primary nav links */
.ct-header nav a,
.ct-header .ct-menu-link {
  position: relative;
  color: var(--sabono-soft-ink);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 8px 13px;
  border-radius: 7px;
  transition: color 160ms ease, background 160ms ease;
}

/* Pill hover */
.ct-header [data-row="middle"] .ct-menu-link:hover {
  background: rgba(88, 116, 102, 0.09);
  color: var(--sabono-ink);
}

/* Active/current page — accent color + subtle background */
.ct-header [data-row="middle"] .current-menu-item > .ct-menu-link,
.ct-header [data-row="middle"] .current-menu-ancestor > .ct-menu-link {
  color: var(--sabono-accent);
  background: rgba(88, 116, 102, 0.07);
}

/* Animated underline on hover/active */
.ct-header [data-row="middle"] .ct-menu-link::before {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 13px;
  right: 13px;
  height: 2px;
  background: var(--sabono-accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 220ms ease;
}

.ct-header [data-row="middle"] .ct-menu-link:hover::before,
.ct-header [data-row="middle"] .current-menu-item > .ct-menu-link::before,
.ct-header [data-row="middle"] .current-menu-ancestor > .ct-menu-link::before {
  transform: scaleX(1);
}

.ct-header nav a:hover,
.ct-header .ct-menu-link:hover {
  color: var(--sabono-ink);
}

.ct-header .sabono-header-search-menu-item {
  flex: 0 1 clamp(300px, 22vw, 380px);
  min-width: 260px;
  padding: 0;
}

.ct-header .sabono-header-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
  align-items: center;
  width: 100%;
  min-height: 40px;
  border: 1px solid rgba(23, 35, 31, 0.12);
  border-radius: 999px;
  padding: 4px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(23, 35, 31, 0.06);
}

.ct-header .sabono-header-search:focus-within {
  border-color: rgba(23, 35, 31, 0.32);
  box-shadow: 0 0 0 3px rgba(87, 116, 102, 0.14);
}

.ct-header .sabono-header-search input {
  width: 100%;
  min-width: 0;
  min-height: 32px;
  border: 0;
  border-radius: 999px;
  padding: 0 10px 0 13px;
  background: transparent;
  color: var(--sabono-ink);
  font-size: 0.82rem;
  outline: 0;
}

.ct-header .sabono-header-search input::placeholder {
  color: rgba(66, 80, 75, 0.72);
}

.ct-header .sabono-header-search button {
  min-height: 32px;
  border: 0;
  border-radius: 999px;
  padding: 0 14px;
  background: var(--sabono-ink);
  color: #fff;
  font-size: 0.74rem;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
}

.ct-header .sabono-header-search button:hover {
  background: #294c50;
}

.sabono-mobile-header-search-slot {
  display: none;
}

/* Header mini cart dropdown */
.ct-header [data-row="middle"] {
  position: relative;
  z-index: 60;
}

.ct-header [data-row="bottom"] {
  position: relative;
  z-index: 40;
}

.ct-header-cart {
  position: relative;
}

.ct-header-cart .ct-cart-content {
  right: 0;
  left: auto;
  width: min(calc(100vw - 32px), 430px);
  max-width: min(calc(100vw - 32px), 430px);
  margin-top: 18px;
  padding: 22px;
  border: 1px solid rgba(23, 35, 31, 0.1);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 20px 54px rgba(23, 35, 31, 0.16);
  color: var(--sabono-ink);
  z-index: 10020;
}

.ct-header-cart .ct-cart-content[data-placement="left"],
.ct-header-cart .ct-cart-content[data-placement="right"] {
  right: 0;
  left: auto;
}

.ct-header-cart:hover .ct-cart-content:not([data-count="0"]),
.ct-header-cart:focus-within .ct-cart-content:not([data-count="0"]) {
  display: block;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.ct-header-cart .woocommerce-mini-cart {
  max-height: min(48vh, 360px);
  margin: 0;
  padding: 0;
  overflow-y: auto;
}

.ct-header-cart .woocommerce-mini-cart-item {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) 24px;
  gap: 14px;
  align-items: start;
  margin: 0 0 18px;
  padding: 0 0 18px;
}

.ct-header-cart .woocommerce-mini-cart-item:not(:last-child) {
  border-bottom: 1px solid rgba(23, 35, 31, 0.08);
}

.ct-header-cart .woocommerce-mini-cart-item .ct-media-container {
  grid-column: 1;
  grid-row: 1;
  width: 72px;
  aspect-ratio: 1;
  border: 1px solid rgba(23, 35, 31, 0.1);
  border-radius: 6px;
  background: var(--sabono-paper);
}

.ct-header-cart .woocommerce-mini-cart-item .ct-media-container img {
  object-fit: contain;
}

.ct-header-cart .woocommerce-mini-cart-item .product-data {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  font-size: 0.9rem;
}

.ct-header-cart .woocommerce-mini-cart-item .product-title {
  display: block;
  margin: 0 0 6px;
  color: var(--sabono-ink);
  font-size: 0.94rem;
  font-weight: 800;
  line-height: 1.32;
}

.ct-header-cart .woocommerce-mini-cart-item .quantity {
  color: var(--sabono-soft-ink);
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.35;
}

.ct-header-cart .woocommerce-mini-cart-item .remove {
  position: static;
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  padding: 5px;
  color: var(--sabono-soft-ink);
}

.ct-header-cart .woocommerce-mini-cart-item .remove:hover {
  color: #9a2f22;
}

.ct-header-cart .woocommerce-mini-cart__total {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin: 0 0 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(23, 35, 31, 0.1);
  color: var(--sabono-ink);
  font-size: 0.92rem;
  line-height: 1.35;
  text-align: left;
  text-transform: none;
}

.ct-header-cart .woocommerce-mini-cart__total strong {
  font-weight: 850;
}

.ct-header-cart .woocommerce-mini-cart__buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding-top: 0;
  border-top: 0;
}

.ct-header-cart .woocommerce-mini-cart__buttons .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 14px;
  border-radius: 999px;
  background: #294c50;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 850;
  line-height: 1.15;
  text-align: center;
  text-transform: none;
  white-space: normal;
}

.ct-header-cart .woocommerce-mini-cart__buttons .button:hover {
  background: var(--sabono-ink);
  color: #fff;
}

/* Category (bottom) row nav links — slightly smaller, spaced out */
.ct-header [data-row="bottom"] nav a,
.ct-header [data-row="bottom"] .ct-menu-link {
  font-size: 0.73rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--sabono-soft-ink);
  padding: 6px 14px;
  border-radius: 0;
  border-bottom: 2px solid transparent;
  transition: color 180ms ease, border-color 180ms ease;
}

.ct-header [data-row="bottom"] nav a:hover,
.ct-header [data-row="bottom"] .ct-menu-link:hover {
  color: var(--sabono-ink);
  border-bottom-color: var(--sabono-accent);
}

/* Active category */
.ct-header [data-row="bottom"] .current-menu-item > .ct-menu-link,
.ct-header [data-row="bottom"] .current-menu-ancestor > .ct-menu-link {
  color: var(--sabono-accent);
  border-bottom-color: var(--sabono-accent);
}

/* ── 5. Navigation dropdown fix ───────────────────────────── */
/* Ensure submenus render above all content */
.ct-header [data-id="menu"] .sub-menu,
.ct-header [data-id="menu"] .children,
nav.ct-nav-links .sub-menu,
nav.ct-nav-links .children {
  z-index: 9990 !important;
}

/* Force visibility on hover/focus — fix broken dropdown */
.ct-header .menu-item-has-children:hover > .sub-menu,
.ct-header .menu-item-has-children:focus-within > .sub-menu,
nav .menu-item-has-children:hover > .sub-menu,
nav .menu-item-has-children:focus-within > .sub-menu {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: none !important;
}

/* Dropdown panel styling */
.ct-header .sub-menu {
  border-top: 2px solid var(--sabono-accent);
  border-radius: 0 0 6px 6px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(20, 20, 20, 0.1);
}

.ct-header .sub-menu a {
  padding: 10px 16px;
  color: var(--sabono-soft-ink) !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  text-transform: none !important;
}

.ct-header .sub-menu a:hover {
  background: var(--sabono-paper);
  color: var(--sabono-ink) !important;
}

/* ── 6. Mobile menu fix ───────────────────────────────────── */
@media (max-width: 999px) {
  /* Drawer must sit above everything */
  .ct-drawer-canvas,
  [data-id="offcanvas"],
  .ct-drawer {
    z-index: 10000 !important;
  }

  /* Backdrop */
  .ct-drawer-canvas-overlay {
    z-index: 9999 !important;
  }

  /* Make sure mobile trigger is visible */
  .ct-header [data-id="trigger"],
  .ct-toggle-dropdown-mobile {
    display: flex !important;
  }

  /* Hide desktop-only dropdown arrows on mobile */
  .ct-header .ct-toggle-dropdown-desktop {
    display: none !important;
  }

  .ct-header .sabono-header-search-menu-item {
    width: 100%;
    min-width: 0;
    margin-top: 10px;
  }

  .ct-header .sabono-header-search {
    width: 100%;
    border-radius: 8px;
  }

  .ct-header .sabono-header-search input,
  .ct-header .sabono-header-search button {
    border-radius: 6px;
  }

  .ct-header [data-device="mobile"] [data-row="middle"] .ct-container.sabono-mobile-header-has-search {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    column-gap: 8px;
    row-gap: 0;
    align-items: center;
  }

  .ct-header [data-device="mobile"] [data-row="middle"] .ct-container.sabono-mobile-header-has-search > [data-column] {
    min-width: 0;
  }

  .ct-header [data-device="mobile"] [data-row="middle"] .ct-container.sabono-mobile-header-has-search > [data-column="start"] {
    grid-column: 1;
    grid-row: 1;
  }

  .ct-header [data-device="mobile"] [data-row="middle"] .ct-container.sabono-mobile-header-has-search > [data-column="end"] {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
  }

  .ct-header [data-device="mobile"] [data-row="middle"] .ct-container.sabono-mobile-header-has-search > [data-column="end"] [data-items] {
    gap: 10px;
  }

  .sabono-mobile-header-search-slot {
    display: block;
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }

  .ct-header .sabono-header-search--mobile {
    grid-template-columns: minmax(0, 1fr) 30px;
    gap: 4px;
    min-height: 36px;
    padding: 3px;
    border-color: rgba(23, 35, 31, 0.1);
    box-shadow: none;
  }

  .ct-header .sabono-header-search--mobile input {
    min-height: 30px;
    width: 100%;
    min-width: 0;
    padding: 0 4px 0 9px;
    font-size: 0.76rem;
  }

  .ct-header .sabono-header-search--mobile button {
    --sabono-search-icon-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4.2-4.2'/%3E%3C/svg%3E");
    position: relative;
    width: 30px;
    min-height: 30px;
    padding: 0;
    overflow: hidden;
    background-color: var(--sabono-ink);
    background-image: var(--sabono-search-icon-svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 15px 15px;
    color: transparent;
    font-size: 0;
  }

}

/* ── 7. Hero sections ─────────────────────────────────────── */
.sabono-hero,
.sabono-brand-hero {
  min-height: 520px;
}

.sabono-hero {
  display: flex;
  align-items: center;
  overflow: hidden;
}

.sabono-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(360px, 0.96fr);
  gap: 48px;
  align-items: center;
  width: 100%;
}

.sabono-hero-copy {
  display: grid;
  gap: 18px;
  max-width: 680px;
}

.sabono-hero-copy > * {
  margin-block: 0;
}

.sabono-hero h1 {
  max-width: 11ch;
}

.sabono-hero .sabono-search {
  max-width: 620px;
}

.sabono-hero-visual {
  position: relative;
  margin: 0;
  aspect-ratio: 16 / 11;
}

.sabono-hero-visual img {
  display: block;
  width: 100%;
  height: 100%;
  border: 1px solid rgba(20, 20, 20, 0.08);
  border-radius: 8px;
  box-shadow: 0 28px 70px rgba(20, 20, 20, 0.14);
  object-fit: cover;
}

/* ── 8. Typography helpers ───────────────────────────────── */
.sabono-kicker,
.sabono-card-brand,
.sabono-product-brand {
  color: var(--sabono-accent);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.sabono-muted {
  color: var(--sabono-muted);
}

/* ── 9. Search widget ─────────────────────────────────────── */
.sabono-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  width: 100%;
}

.sabono-search label {
  display: grid;
  gap: 6px;
  margin: 0;
}

.sabono-search label span {
  color: var(--sabono-muted);
  font-size: 0.82rem;
  font-weight: 700;
}

.sabono-search input {
  min-height: 46px;
  border: 1px solid var(--sabono-line);
  border-radius: 0;
  padding: 0 14px;
  background: #fff;
}

.sabono-search button {
  align-self: end;
  min-height: 46px;
  border: 0;
  border-radius: 0;
  padding: 0 20px;
  background: var(--sabono-ink);
  color: #fff;
  font-weight: 700;
}

/* ── 10. Archive tools / filter ──────────────────────────── */
.sabono-archive-tools {
  display: grid;
  gap: 16px;
  margin: 0 0 24px;
  padding: 18px;
  border: 1px solid var(--sabono-line);
  border-radius: 8px;
  background: var(--sabono-panel);
}

/* ── 11. Empty states ─────────────────────────────────────── */
.sabono-empty-state {
  display: grid;
  place-items: center;
  min-height: 420px;
  padding: 56px 24px;
  border: 1px solid var(--sabono-line);
  border-radius: 8px;
  background: linear-gradient(135deg, #fbfaf7 0%, #ffffff 58%, #eef3f0 100%);
  text-align: center;
}

.sabono-empty-state__content {
  display: grid;
  gap: 18px;
  justify-items: center;
  width: min(100%, 760px);
}

.sabono-empty-state h1,
.sabono-empty-state h2 {
  max-width: 720px;
  margin: 0;
  font-size: clamp(2.2rem, 5vw, 4.2rem);
  line-height: 1.05;
}

.sabono-empty-state h2 {
  font-size: clamp(1.9rem, 4vw, 3.2rem);
}

.sabono-empty-state p {
  max-width: 620px;
  margin: 0;
}

.sabono-empty-state .sabono-search {
  max-width: 640px;
  text-align: left;
}

.sabono-empty-state__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.sabono-empty-state__links a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  border: 1px solid var(--sabono-line);
  border-radius: 999px;
  padding: 0 15px;
  color: var(--sabono-soft-ink);
  background: #fff;
  font-weight: 750;
}

.woocommerce-cart .return-to-shop {
  display: none;
}

/* ── 12. Filter groups ────────────────────────────────────── */
.sabono-filter-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 14px;
}

.sabono-filter-groups h3 {
  margin: 0 0 8px;
  font-size: 0.9rem;
}

.sabono-filter-groups a {
  display: inline-flex;
  margin: 0 8px 8px 0;
  border: 1px solid var(--sabono-line);
  border-radius: 999px;
  padding: 7px 11px;
  color: var(--sabono-soft-ink);
  background: #fff;
  font-size: 0.9rem;
}

/* ── 12.1 Home content blocks ────────────────────────────── */
.sabono-home-intro,
.sabono-home-section,
.sabono-service-strip,
.sabono-info-page,
.sabono-delivery-page {
  width: min(1120px, calc(100% - 48px));
  margin: 64px auto;
}

.sabono-home-intro {
  display: grid;
  grid-template-columns: minmax(260px, 0.7fr) minmax(320px, 1fr);
  gap: 36px;
  align-items: end;
}

.sabono-kicker {
  margin: 0 0 10px;
  color: var(--sabono-gold);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
}

.sabono-home-intro h2,
.sabono-home-section h2,
.sabono-info-page h1 {
  margin: 0;
  color: var(--sabono-ink);
  letter-spacing: 0;
}

.sabono-home-intro h2 {
  max-width: 12ch;
  font-size: clamp(2.2rem, 4.6vw, 4.4rem);
  line-height: 0.98;
}

.sabono-home-intro p,
.sabono-section-heading p,
.sabono-info-page p {
  margin: 0;
  color: var(--sabono-soft-ink);
  line-height: 1.72;
}

.sabono-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--sabono-line);
}

.sabono-home-section h2 {
  font-size: clamp(1.65rem, 3vw, 2.6rem);
}

.sabono-category-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 260px));
  grid-auto-rows: 230px;
  justify-content: center;
  gap: 12px;
  max-width: 1120px;
  margin-inline: auto;
}

.sabono-category-tile:first-child {
  grid-column: span 2;
  grid-row: span 2;
}

.sabono-category-tile {
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  background: #1a2320;
  color: #fff;
  text-decoration: none;
  display: block;
}

.sabono-category-tile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--sabono-banner-position, center);
  transition: transform 450ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.sabono-category-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(10, 18, 14, 0.70) 0%,
    rgba(10, 18, 14, 0.14) 48%,
    transparent 100%
  );
  transition: opacity 280ms ease;
}

.sabono-category-tile:hover img {
  transform: scale(1.06);
}

.sabono-category-tile:hover::after {
  opacity: 0.88;
}

.sabono-category-tile span {
  position: absolute;
  z-index: 2;
  left: 20px;
  right: 20px;
  bottom: 18px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.sabono-category-tile strong {
  display: block;
  color: #fff;
  font-size: 1.05rem;
  font-weight: 850;
  letter-spacing: -0.01em;
  line-height: 1.2;
  transition: letter-spacing 220ms ease;
}

.sabono-category-tile:first-child strong {
  font-size: 1.35rem;
}

.sabono-category-tile:hover strong {
  letter-spacing: 0.01em;
}

.sabono-category-tile small {
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* Bestseller showcase */
.sabono-bestseller-showcase {
  margin-top: 58px;
}

.sabono-bestseller-layout {
  display: grid;
  grid-template-columns: minmax(280px, 1.1fr) repeat(4, minmax(0, 1fr));
  gap: 14px;
  align-items: stretch;
}

.sabono-bestseller-layout + .sabono-bestseller-layout {
  margin-top: 22px;
}

.sabono-bestseller-banner,
.sabono-home-banner {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 8px;
  background: var(--sabono-ink);
  color: #fff;
  text-decoration: none;
}

.sabono-bestseller-banner {
  min-height: 420px;
}

.sabono-bestseller-banner img,
.sabono-home-banner img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--sabono-banner-position, center);
  transition: transform 420ms ease;
}

.sabono-bestseller-banner::after,
.sabono-home-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top, rgba(12, 18, 16, 0.68), rgba(12, 18, 16, 0.14) 58%, rgba(12, 18, 16, 0.02)),
    linear-gradient(90deg, rgba(12, 18, 16, 0.20), transparent 52%);
}

.sabono-bestseller-banner:hover img,
.sabono-home-banner:hover img {
  transform: scale(1.04);
}

.sabono-bestseller-banner span,
.sabono-home-banner span {
  position: absolute;
  z-index: 1;
  left: 22px;
  right: 22px;
  bottom: 22px;
  display: grid;
  gap: 8px;
}

.sabono-bestseller-banner strong,
.sabono-home-banner strong {
  color: #fff;
  font-size: clamp(1.35rem, 2.1vw, 2rem);
  font-weight: 850;
  line-height: 1.08;
}

.sabono-bestseller-banner small,
.sabono-home-banner small {
  max-width: 26ch;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.9rem;
  line-height: 1.45;
}

.sabono-bestseller-products {
  display: contents;
}

.sabono-bestseller-products ul.products {
  display: contents !important;
}

.sabono-bestseller-products ul.products li.product {
  width: auto !important;
  height: 100%;
  margin: 0 !important;
}

.sabono-home-banner-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 230px;
  gap: 14px;
}

.sabono-home-banner:first-child {
  grid-column: span 2;
  grid-row: span 2;
}

.sabono-home-banner strong {
  font-size: clamp(1.08rem, 1.4vw, 1.45rem);
}

.sabono-home-banner:first-child strong {
  font-size: clamp(1.45rem, 2.3vw, 2.15rem);
}

/* Brand panels */
.sabono-brand-panel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.sabono-brand-panel {
  position: relative;
  min-height: 300px;
  overflow: hidden;
  border-radius: 14px;
  background: #1a2320;
  color: #fff;
  text-decoration: none;
  display: block;
}

.sabono-brand-panel img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 300px;
  object-fit: cover;
  object-position: var(--sabono-banner-position, center);
  transition: transform 450ms ease;
}

.sabono-brand-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10, 18, 14, 0.62), rgba(10, 18, 14, 0.04));
}

.sabono-brand-panel:hover img {
  transform: scale(1.04);
}

.sabono-brand-panel span {
  position: absolute;
  z-index: 2;
  left: 22px;
  right: 22px;
  bottom: 20px;
  color: #fff;
  font-size: 1.3rem;
  font-weight: 850;
  letter-spacing: -0.02em;
}

.sabono-service-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(22px, 4vw, 58px);
  align-items: start;
  padding: 8px 0 22px;
}

.sabono-service-item {
  display: grid;
  justify-items: center;
  gap: 13px;
  min-width: 0;
  text-align: center;
}

.sabono-service-icon {
  display: inline-grid;
  width: 34px;
  height: 34px;
  place-items: center;
  color: var(--sabono-ink);
}

.sabono-service-icon svg {
  width: 32px;
  height: 32px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.sabono-service-item h3 {
  margin: 3px 0 0;
  color: var(--sabono-ink);
  font-size: 0.84rem;
  font-weight: 850;
  line-height: 1.25;
  text-transform: uppercase;
}

.sabono-service-item p {
  max-width: 29ch;
  margin: 0;
  color: var(--sabono-soft-ink);
  font-size: 0.98rem;
  line-height: 1.65;
}

.sabono-info-page {
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(280px, 0.55fr);
  gap: 28px;
  align-items: start;
}

.sabono-info-page__hero {
  padding: 42px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid var(--sabono-line);
}

.sabono-info-page h1 {
  max-width: 16ch;
  font-size: clamp(2rem, 4vw, 3.8rem);
  line-height: 1;
}

.sabono-info-page__hero p {
  max-width: 720px;
  margin-top: 22px;
}

.sabono-info-page__hero a {
  display: inline-flex;
  align-items: center;
  min-height: 46px;
  margin-top: 28px;
  border-radius: 999px;
  padding: 0 22px;
  background: var(--sabono-ink);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 850;
  text-decoration: none;
}

.sabono-info-page__facts {
  display: grid;
  gap: 10px;
}

.sabono-info-page__facts div {
  display: grid;
  gap: 4px;
  min-height: 96px;
  border: 1px solid var(--sabono-line);
  border-radius: 8px;
  padding: 18px;
  background: #fff;
}

.sabono-info-page__facts strong {
  color: var(--sabono-ink);
  font-size: 1.15rem;
}

.sabono-info-page__facts span {
  color: var(--sabono-muted);
  line-height: 1.45;
}

.sabono-delivery-page {
  display: grid;
  gap: 40px;
  color: var(--sabono-ink);
  min-width: 0;
  overflow-wrap: anywhere;
}

.sabono-delivery-page,
.sabono-delivery-page * {
  box-sizing: border-box;
}

.sabono-delivery-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.48fr);
  gap: 28px;
  align-items: stretch;
  min-width: 0;
}

.sabono-delivery-hero > div:first-child {
  width: 100%;
  max-width: 100%;
  min-height: 360px;
  border: 1px solid var(--sabono-line);
  border-radius: 8px;
  padding: clamp(28px, 4vw, 48px);
  background: #fff;
}

.sabono-delivery-hero h1,
.sabono-delivery-section-heading h2,
.sabono-delivery-process h2 {
  margin: 0;
  color: var(--sabono-ink);
  letter-spacing: 0;
}

.sabono-delivery-hero h1 {
  max-width: 12ch;
  font-size: clamp(2.35rem, 5vw, 4.8rem);
  line-height: 0.98;
}

.sabono-delivery-hero p,
.sabono-delivery-section-heading p,
.sabono-delivery-card p,
.sabono-payment-card p,
.sabono-delivery-process p,
.sabono-delivery-process li {
  color: var(--sabono-soft-ink);
  line-height: 1.7;
}

.sabono-delivery-hero > div:first-child > p:not(.sabono-kicker) {
  max-width: 680px;
  margin: 26px 0 0;
}

.sabono-delivery-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.sabono-delivery-actions a,
.sabono-delivery-process aside a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  border-radius: 999px;
  padding: 0 22px;
  font-size: 0.82rem;
  font-weight: 850;
  text-decoration: none;
  text-transform: uppercase;
}

.sabono-delivery-actions a:first-child,
.sabono-delivery-process aside a:first-of-type {
  background: var(--sabono-ink);
  color: #fff;
}

.sabono-delivery-actions a:last-child,
.sabono-delivery-process aside a:last-of-type {
  border: 1px solid var(--sabono-line);
  background: #fff;
  color: var(--sabono-ink);
}

.sabono-delivery-facts {
  display: grid;
  gap: 10px;
}

.sabono-delivery-facts div {
  display: grid;
  align-content: center;
  gap: 8px;
  min-height: 112px;
  border: 1px solid var(--sabono-line);
  border-radius: 8px;
  padding: 22px;
  background: #fff;
}

.sabono-delivery-facts strong {
  font-size: clamp(1.4rem, 2.5vw, 2.1rem);
  line-height: 1;
}

.sabono-delivery-facts span,
.sabono-delivery-card span {
  color: var(--sabono-muted);
  font-size: 0.78rem;
  font-weight: 850;
  line-height: 1.35;
  text-transform: uppercase;
}

.sabono-delivery-section-heading {
  display: grid;
  grid-template-columns: minmax(240px, 0.55fr) minmax(320px, 0.8fr);
  gap: 28px;
  align-items: end;
  border-bottom: 1px solid var(--sabono-line);
  padding-bottom: 24px;
}

.sabono-delivery-section-heading h2,
.sabono-delivery-process h2 {
  font-size: clamp(1.9rem, 3.6vw, 3.1rem);
  line-height: 1.05;
}

.sabono-delivery-section-heading p {
  max-width: 680px;
  margin: 0;
}

.sabono-delivery-grid,
.sabono-payment-grid {
  display: grid;
  gap: 14px;
}

.sabono-delivery-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sabono-payment-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.sabono-delivery-card,
.sabono-payment-card {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 210px;
  border: 1px solid var(--sabono-line);
  border-radius: 8px;
  padding: 22px;
  background: #fff;
}

.sabono-delivery-card h3,
.sabono-payment-card h3 {
  margin: 0;
  color: var(--sabono-ink);
  font-size: 1.18rem;
  line-height: 1.25;
}

.sabono-delivery-card p,
.sabono-payment-card p {
  margin: 0;
  font-size: 0.95rem;
}

.sabono-delivery-process {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.44fr);
  gap: 28px;
  align-items: stretch;
  border-top: 1px solid var(--sabono-line);
  padding-top: 36px;
}

.sabono-delivery-process > div,
.sabono-delivery-process aside {
  border-radius: 8px;
  padding: clamp(24px, 3.5vw, 38px);
}

.sabono-delivery-process > div {
  background: #fff;
  border: 1px solid var(--sabono-line);
}

.sabono-delivery-process ol {
  display: grid;
  gap: 14px;
  margin: 24px 0 0;
  padding-left: 1.25rem;
}

.sabono-delivery-process aside {
  display: grid;
  align-content: start;
  gap: 14px;
  background: var(--sabono-ink);
  color: #fff;
}

.sabono-delivery-process aside h2,
.sabono-delivery-process aside p {
  color: #fff;
}

.sabono-delivery-process aside p {
  margin: 0 0 8px;
  opacity: 0.82;
}

.sabono-contact-page {
  display: grid;
  gap: 28px;
  width: min(100% - 48px, 1200px);
  margin: 56px auto;
  color: var(--sabono-ink);
}

.sabono-contact-hero {
  display: grid;
  grid-template-columns: minmax(320px, 0.75fr) minmax(420px, 1fr);
  gap: 28px;
  align-items: stretch;
}

.sabono-contact-hero > div:first-child,
.sabono-contact-form,
.sabono-contact-map {
  border: 1px solid var(--sabono-line);
  border-radius: 8px;
  background: #fff;
}

.sabono-contact-hero > div:first-child {
  display: grid;
  align-content: center;
  padding: 40px;
}

.sabono-contact-hero h1 {
  max-width: 13ch;
  margin: 0;
  color: var(--sabono-ink);
  font-size: clamp(2.25rem, 4vw, 4rem);
  line-height: 1;
}

.sabono-contact-hero p {
  max-width: 620px;
  margin: 22px 0 0;
  color: rgba(23, 35, 31, 0.7);
  font-size: 1.05rem;
  line-height: 1.7;
}

.sabono-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.sabono-contact-card {
  display: grid;
  align-content: space-between;
  min-height: 142px;
  padding: 22px;
  border: 1px solid var(--sabono-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sabono-ink);
  text-decoration: none;
  transition: border-color 160ms ease, transform 160ms ease;
}

.sabono-contact-card:hover {
  border-color: rgba(23, 35, 31, 0.34);
  transform: translateY(-2px);
}

.sabono-contact-card span,
.sabono-contact-map__heading span,
.sabono-contact-form label span {
  color: rgba(23, 35, 31, 0.58);
  font-size: 0.74rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.sabono-contact-card strong {
  color: var(--sabono-ink);
  font-size: clamp(1rem, 1.5vw, 1.22rem);
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.sabono-contact-layout {
  display: grid;
  grid-template-columns: minmax(420px, 1fr) minmax(340px, 0.66fr);
  gap: 28px;
  align-items: stretch;
}

.sabono-contact-map {
  display: grid;
  overflow: hidden;
}

.sabono-contact-map__heading {
  display: grid;
  gap: 8px;
  padding: 24px;
}

.sabono-contact-map__heading strong {
  color: var(--sabono-ink);
  font-size: 1.2rem;
  line-height: 1.35;
}

.sabono-contact-map iframe {
  width: 100%;
  min-height: 430px;
  border: 0;
}

.sabono-contact-form {
  display: grid;
  gap: 18px;
  padding: 28px;
}

.sabono-contact-form__header {
  display: grid;
  gap: 8px;
  padding-bottom: 6px;
}

.sabono-contact-form h2 {
  margin: 0;
  color: var(--sabono-ink);
  font-size: clamp(1.5rem, 2vw, 2rem);
}

.sabono-contact-form p {
  margin: 0;
  color: rgba(23, 35, 31, 0.68);
  line-height: 1.55;
}

.sabono-contact-form__status {
  border-radius: 8px;
  padding: 12px 14px;
  font-weight: 750;
}

.sabono-contact-form__status--sent {
  background: rgba(45, 118, 86, 0.12);
  color: #226244;
}

.sabono-contact-form__status--error {
  background: rgba(153, 48, 48, 0.12);
  color: #8a2929;
}

.sabono-contact-form label {
  display: grid;
  gap: 8px;
}

.sabono-contact-form input,
.sabono-contact-form textarea {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--sabono-line);
  border-radius: 8px;
  padding: 12px 14px;
  background: #fff;
  color: var(--sabono-ink);
  font: inherit;
}

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

.sabono-contact-form input:focus,
.sabono-contact-form textarea:focus {
  border-color: rgba(23, 35, 31, 0.45);
  outline: 3px solid rgba(87, 116, 102, 0.16);
}

.sabono-contact-form button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  border: 0;
  border-radius: 8px;
  padding: 0 22px;
  background: var(--sabono-ink);
  color: #fff;
  font-size: 0.9rem;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.sabono-contact-form__trap {
  position: absolute;
  width: 1px !important;
  height: 1px !important;
  margin: -1px;
  padding: 0 !important;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0 !important;
  white-space: nowrap;
}

/* ── 13. Catalog sidebar filters ─────────────────────────── */
.sabono-shop-catalog {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: 34px;
  align-items: start;
}

.sabono-shop-catalog__sidebar {
  position: sticky;
  top: 120px;
}

.sabono-catalog-filters {
  display: grid;
  gap: 22px;
  color: var(--sabono-ink);
}

.sabono-catalog-filters__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--sabono-line);
  padding-bottom: 14px;
}

.sabono-catalog-filters h2,
.sabono-catalog-filters h3 {
  margin: 0;
  color: var(--sabono-ink);
  letter-spacing: 0;
}

.sabono-catalog-filters h2 {
  font-size: 1.18rem;
  font-weight: 800;
}

.sabono-catalog-filters h3,
.sabono-catalog-filters__search label {
  font-size: 0.86rem;
  font-weight: 800;
  text-transform: uppercase;
}

.sabono-catalog-filters__reset {
  color: var(--sabono-muted);
  font-size: 0.82rem;
  font-weight: 750;
  text-decoration: none;
}

.sabono-catalog-filters__search,
.sabono-catalog-filters__price,
.sabono-catalog-filters__section {
  display: grid;
  gap: 10px;
}

.sabono-catalog-filters__search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.sabono-catalog-filters__search input,
.sabono-catalog-filters__price input {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--sabono-line);
  border-radius: 6px;
  padding: 0 12px;
  background: #fff;
  color: var(--sabono-ink);
  font: inherit;
}

.sabono-catalog-filters__search button,
.sabono-catalog-filters__price button {
  min-height: 42px;
  border: 1px solid var(--sabono-ink);
  border-radius: 6px;
  padding: 0 14px;
  background: var(--sabono-ink);
  color: #fff;
  font-size: 0.84rem;
  font-weight: 800;
  cursor: pointer;
}

.sabono-catalog-filters__price-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
}

.sabono-catalog-filters__price label {
  display: grid;
  gap: 5px;
  margin: 0;
}

.sabono-catalog-filters__price span {
  color: var(--sabono-muted);
  font-size: 0.78rem;
  font-weight: 750;
}

.sabono-catalog-filters__list {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sabono-catalog-filters__list a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 38px;
  border: 1px solid transparent;
  border-radius: 6px;
  padding: 7px 9px;
  color: var(--sabono-soft-ink);
  text-decoration: none;
}

.sabono-catalog-filters__list a:hover,
.sabono-catalog-filters__list a.is-active {
  border-color: var(--sabono-line);
  background: #f7f8f5;
  color: var(--sabono-ink);
}

.sabono-catalog-filters__list span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.sabono-catalog-filters__list small {
  display: inline-grid;
  min-width: 28px;
  min-height: 24px;
  place-items: center;
  border-radius: 999px;
  background: rgba(23, 35, 31, 0.07);
  color: var(--sabono-muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.sabono-mobile-catalog-filters {
  display: none;
}

.sabono-mobile-catalog-filters > summary {
  min-height: 44px;
  border: 1px solid var(--sabono-line);
  border-radius: 6px;
  padding: 11px 14px;
  background: #fff;
  color: var(--sabono-ink);
  font-weight: 800;
  cursor: pointer;
}

.sabono-mobile-catalog-filters > .sabono-catalog-filters {
  margin-top: 12px;
  border: 1px solid var(--sabono-line);
  border-radius: 8px;
  padding: 16px;
  background: #fff;
}

@media (max-width: 999px) {
  .sabono-shop-catalog {
    grid-template-columns: 1fr;
  }

  .sabono-shop-catalog__sidebar {
    display: none;
  }

  .sabono-mobile-catalog-filters {
    display: block;
    margin: 0 0 18px;
  }
}

/* ── 13. Product cards ────────────────────────────────────── */
.woocommerce ul.products li.product {
  position: relative;
  display: grid !important;
  grid-template-rows: auto minmax(3lh, auto) minmax(2lh, auto) auto;
  align-items: start;
  border: 0;
  border-radius: 8px;
  overflow: visible;
  background: transparent;
  text-align: center;
  box-shadow: none;
  transition: none;
}

.woocommerce ul.products li.product:hover {
  border-color: transparent;
  box-shadow: none;
  transform: none;
}

.woocommerce ul.products li.product .ct-media-container,
.woocommerce ul.products li.product figure,
.woocommerce ul.products li.product .woocommerce-loop-product__link > img,
.woocommerce ul.products li.product img.wp-post-image,
.woocommerce div.product div.images {
  background: #fff;
}

.woocommerce ul.products li.product .ct-media-container,
.woocommerce ul.products li.product figure,
.woocommerce ul.products li.product .woocommerce-loop-product__link > img,
.woocommerce ul.products li.product img.wp-post-image {
  aspect-ratio: 1 / 1;
  border: 1px solid rgba(23, 35, 31, 0.16);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(23, 35, 31, 0.16), 0 14px 34px rgba(23, 35, 31, 0.08);
}

.woocommerce ul.products li.product figure {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  margin: 0 0 18px;
  background: #fff;
}

.woocommerce ul.products li.product img.wp-post-image,
.woocommerce ul.products li.product .ct-media-container img,
.woocommerce ul.products li.product figure img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  padding: 22px;
  color: transparent;
  font-size: 0;
  object-fit: contain;
  transition: transform 180ms ease;
}

.woocommerce ul.products li.product:hover img.wp-post-image,
.woocommerce ul.products li.product:hover .ct-media-container img,
.woocommerce ul.products li.product:hover figure img {
  transform: scale(1.025);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  margin-top: 18px;
  color: var(--sabono-ink);
  font-size: clamp(1.05rem, 1.45vw, 1.45rem);
  line-height: 1.22;
}

.woocommerce ul.products li.product .price {
  justify-content: center;
  color: var(--sabono-ink);
  font-size: 0.98rem;
  font-weight: 800;
}

.woocommerce ul.products li.product .button {
  min-height: 36px;
  border-radius: 0;
  padding: 0 18px;
  background: #294c50;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0;
  text-transform: uppercase;
}

.woocommerce ul.products li.product .button:hover {
  background: #17231f;
  color: #fff;
}

.woocommerce ul.products li.product .ct-open-quick-view,
.woocommerce ul.products li.product .ct-compare-button-archive {
  display: none !important;
}

.ct-size-guide-button-single {
  display: none !important;
}

.woocommerce ul.products li.product .ct-woo-card-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  width: calc(100% - 28px);
  margin-top: auto;
  margin-right: 14px;
  margin-left: 14px;
}

.woocommerce ul.products li.product .ct-woo-card-actions .price,
.woocommerce ul.products li.product .ct-woo-card-actions .button {
  margin-right: 0;
  margin-left: 0;
}

.woocommerce ul.products li.product .ct-woo-card-actions .price {
  justify-content: flex-start;
  white-space: nowrap;
}

.woocommerce ul.products.columns-3 li.product .ct-woo-card-actions,
.sabono-bestseller-products.woocommerce ul.products li.product .ct-woo-card-actions,
.sabono-brand-products .woocommerce ul.products li.product .ct-woo-card-actions {
  grid-template-columns: 1fr;
  gap: 8px;
  justify-items: center;
}

.woocommerce ul.products.columns-3 li.product .ct-woo-card-actions .price,
.sabono-bestseller-products.woocommerce ul.products li.product .ct-woo-card-actions .price,
.sabono-brand-products .woocommerce ul.products li.product .ct-woo-card-actions .price {
  justify-content: center;
}

.woocommerce ul.products.columns-3 li.product .ct-woo-card-actions .button,
.sabono-bestseller-products.woocommerce ul.products li.product .ct-woo-card-actions .button,
.sabono-brand-products .woocommerce ul.products li.product .ct-woo-card-actions .button {
  width: 100%;
  max-width: 170px;
}

.sabono-bestseller-products.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: clamp(1rem, 1.15vw, 1.18rem);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button,
.sabono-card-brand,
.sabono-card-meta,
.sabono-card-attrs {
  margin-left: 14px;
  margin-right: 14px;
}

.woocommerce ul.products li.product .button {
  margin-bottom: 14px;
}

.sabono-card-badges {
  position: absolute;
  z-index: 2;
  top: 14px;
  left: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.sabono-card-badges span {
  border-radius: 0;
  padding: 5px 8px;
  background: #17231f;
  color: #fff;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.sabono-card-badges span:last-child {
  background: #587466;
}

.woocommerce ul.products li.product.outofstock .ct-media-container,
.woocommerce ul.products li.product.outofstock .woocommerce-loop-product__link > img.wp-post-image,
.woocommerce ul.products li.product.outofstock figure > img.wp-post-image,
.single-product .related.products .product.outofstock .ct-media-container,
.single-product .related.products .product.outofstock figure > img.wp-post-image {
  opacity: 0.58 !important;
  filter: grayscale(0.35) saturate(0.78) !important;
}

.woocommerce ul.products li.product.outofstock .woocommerce-loop-product__title,
.woocommerce ul.products li.product.outofstock .entry-meta,
.woocommerce ul.products li.product.outofstock .price,
.single-product .related.products .product.outofstock .woocommerce-loop-product__title,
.single-product .related.products .product.outofstock .entry-meta,
.single-product .related.products .product.outofstock .price {
  color: rgba(23, 35, 31, 0.58);
}

.woocommerce ul.products li.product.outofstock .button,
.single-product .related.products .product.outofstock .button {
  background: #6f7d77;
  color: #fff;
}

.woocommerce ul.products li.product .out-of-stock-badge,
.single-product .related.products .product .out-of-stock-badge {
  z-index: 3;
  border-radius: 0;
  padding: 7px 10px;
  background: #17231f;
  color: #fff;
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0;
  text-transform: uppercase;
  box-shadow: 0 8px 18px rgba(23, 35, 31, 0.18);
}

.sabono-card-brand {
  margin-top: 13px;
}

.sabono-card-brand,
.sabono-card-meta,
.sabono-card-attrs {
  justify-content: center;
}

.sabono-card-meta,
.sabono-card-attrs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  color: var(--sabono-muted);
  font-size: 0.78rem;
}

.sabono-card-attrs {
  margin-top: 6px;
  margin-bottom: 8px;
}

/* ── 14. Product detail page ──────────────────────────────── */
.sabono-product-brand {
  display: inline-flex;
  margin-bottom: 8px;
}

.sabono-benefits {
  display: grid;
  gap: 8px;
  margin: 18px 0;
  padding: 0;
  list-style: none;
}

.sabono-benefits li {
  position: relative;
  padding-left: 22px;
  color: var(--sabono-soft-ink);
}

.sabono-benefits li::before {
  position: absolute;
  top: 0.58em;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--sabono-accent);
  content: "";
}

.woocommerce div.product form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.single-product .related.products {
  margin-top: clamp(40px, 6vw, 72px);
}

.single-product .related.products .ct-module-title {
  margin-bottom: 24px;
  color: var(--sabono-ink);
  font-size: clamp(1.6rem, 2.4vw, 2.3rem);
  font-weight: 850;
  letter-spacing: 0;
}

.single-product .related.products .flexy-container,
.single-product .related.products .flexy,
.single-product .related.products .flexy-view {
  overflow: visible !important;
}

.single-product .related.products .products.flexy-items {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 30px !important;
  width: 100% !important;
  transform: none !important;
}

.single-product .related.products .flexy-item {
  position: static !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  margin: 0 !important;
  order: initial !important;
  transform: none !important;
}

.single-product .related.products .flexy-arrow,
.single-product .related.products .flexy-pills,
.single-product .related.products [data-flexy-nav] {
  display: none !important;
}

.single-product .related.products .product {
  position: relative;
  display: grid !important;
  grid-template-rows: auto minmax(3lh, auto) minmax(2lh, auto) auto;
  align-items: start;
  width: auto !important;
  height: 100% !important;
  margin: 0 !important;
  text-align: center;
}

.single-product .related.products .product figure,
.single-product .related.products .product .ct-media-container,
.single-product .related.products .product img.wp-post-image {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border: 1px solid rgba(23, 35, 31, 0.16);
  border-radius: 8px;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(23, 35, 31, 0.16), 0 14px 34px rgba(23, 35, 31, 0.08);
}

.single-product .related.products .product figure {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  margin: 0 0 18px;
}

.single-product .related.products .product img.wp-post-image,
.single-product .related.products .product .ct-media-container img,
.single-product .related.products .product figure img {
  width: 100%;
  height: 100%;
  padding: 22px;
  object-fit: contain;
}

.single-product .related.products .product .woocommerce-loop-product__title {
  margin: 18px 14px 0;
  color: var(--sabono-ink);
  font-size: clamp(1.05rem, 1.45vw, 1.45rem);
  line-height: 1.22;
}

.single-product .related.products .product .entry-meta,
.single-product .related.products .product .ct-woo-card-actions {
  margin-right: 14px;
  margin-left: 14px;
}

.single-product .related.products .product .ct-woo-card-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  width: calc(100% - 28px);
  margin-top: auto;
}

.single-product .related.products .product .ct-woo-card-actions .price {
  justify-content: flex-start;
  margin-right: 0;
  margin-left: 0;
  color: var(--sabono-ink);
  font-size: 0.98rem;
  font-weight: 800;
  white-space: nowrap;
}

.single-product .related.products .product .ct-woo-card-actions .button {
  min-height: 36px;
  margin-right: 0;
  margin-bottom: 14px;
  margin-left: 0;
  border-radius: 0;
  padding: 0 18px;
  background: #294c50;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0;
  text-transform: uppercase;
}

.single-product .related.products .product.outofstock .ct-woo-card-actions .button {
  background: #6f7d77;
}

.single-product .related.products .product.outofstock .woocommerce-loop-product__title,
.single-product .related.products .product.outofstock .entry-meta,
.single-product .related.products .product.outofstock .ct-woo-card-actions .price {
  color: rgba(23, 35, 31, 0.58);
}

@media (max-width: 999px) {
  .single-product .related.products .products.flexy-items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px !important;
  }
}

@media (max-width: 600px) {
  .single-product .related.products .products.flexy-items {
    grid-template-columns: 1fr;
  }
}

/* ── 15. Product details panel ────────────────────────────── */
.sabono-product-details,
.sabono-product-service {
  margin-top: 22px;
  border: 1px solid var(--sabono-line);
  border-radius: 8px;
  padding: 18px;
  background: var(--sabono-panel);
}

.sabono-product-details h2,
.sabono-product-service h2 {
  margin-top: 0;
  font-size: 1rem;
}

.sabono-product-details dl {
  display: grid;
  gap: 10px;
  margin: 0;
}

.sabono-product-details dl div {
  display: grid;
  grid-template-columns: minmax(110px, 0.42fr) 1fr;
  gap: 12px;
  border-top: 1px solid var(--sabono-line);
  padding-top: 10px;
}

.sabono-product-details dt {
  color: var(--sabono-muted);
  font-weight: 700;
}

.sabono-product-details dd {
  margin: 0;
}

.sabono-product-service {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

/* ── 17. Brand hero ───────────────────────────────────────── */
.sabono-brand-hero {
  margin-bottom: 36px;
  padding: 72px 24px;
  background: linear-gradient(135deg, #f6f2ec 0%, #ffffff 58%, #eef3f0 100%);
}

.sabono-brand-hero h1 {
  margin: 0 0 14px;
  font-size: clamp(2.6rem, 5vw, 4.8rem);
  line-height: 1;
}

.sabono-brand-hero p {
  max-width: 680px;
  color: var(--sabono-muted);
  font-size: 1.1rem;
}

.sabono-brand-page {
  overflow: hidden;
  background: #fbfcfc;
}

.sabono-brand-page .woocommerce {
  margin-top: 0;
}

.sabono-brand-page .sabono-brand-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(320px, 0.28fr);
  gap: clamp(28px, 5vw, 60px);
  align-items: end;
  margin: 0;
  padding: clamp(54px, 8vw, 104px) 24px;
  background: #f1eee6;
}

.sabono-brand-hero--wilmax {
  background:
    radial-gradient(circle at 85% 18%, rgba(255, 255, 255, 0.72) 0 16%, transparent 16.5%),
    linear-gradient(90deg, #f7f5ef 0%, #eef3f0 100%);
}

.sabono-brand-hero--berghoff {
  background:
    radial-gradient(circle at 82% 22%, rgba(255, 255, 255, 0.28) 0 15%, transparent 15.5%),
    linear-gradient(90deg, #ece7dc 0%, #dfe7e2 100%);
}

.sabono-brand-hero__copy {
  display: grid;
  gap: 18px;
  max-width: 860px;
}

.sabono-brand-hero__copy > * {
  margin: 0;
}

.sabono-brand-page .sabono-brand-hero h1 {
  max-width: 13ch;
  font-size: clamp(3rem, 6vw, 6.4rem);
  line-height: 0.96;
}

.sabono-brand-page .sabono-brand-hero p:not(.sabono-kicker) {
  max-width: 680px;
  color: var(--sabono-soft-ink);
  font-size: clamp(1.02rem, 1.35vw, 1.22rem);
  line-height: 1.72;
}

.sabono-brand-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
}

.sabono-brand-stat-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.sabono-brand-stat-grid span {
  display: grid;
  gap: 5px;
  border-top: 1px solid rgba(39, 50, 45, 0.16);
  padding-top: 14px;
  color: var(--sabono-muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.sabono-brand-stat-grid strong {
  color: var(--sabono-ink);
  font-size: clamp(1.25rem, 2vw, 1.8rem);
  line-height: 1;
  text-transform: none;
}

.sabono-brand-section {
  padding: clamp(54px, 7vw, 92px) 24px;
}

.sabono-brand-category-grid,
.sabono-brand-collection-grid {
  display: grid;
  gap: 22px;
}

.sabono-brand-category-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sabono-brand-category-grid a,
.sabono-brand-collection-grid a {
  display: grid;
  align-content: end;
  border: 1px solid rgba(39, 50, 45, 0.11);
  color: var(--sabono-ink);
  text-decoration: none;
}

.sabono-brand-category-grid a {
  min-height: 280px;
  padding: 24px;
  background: #f4f3ee;
}

.sabono-brand-page--wilmax .sabono-brand-category-grid a:nth-child(2),
.sabono-brand-page--berghoff .sabono-brand-category-grid a:nth-child(3) {
  background: #eef2ef;
}

.sabono-brand-page--wilmax .sabono-brand-category-grid a:nth-child(3),
.sabono-brand-page--berghoff .sabono-brand-category-grid a:nth-child(2) {
  background: #eee8dd;
}

.sabono-brand-category-grid span {
  color: var(--sabono-accent);
  font-size: 0.76rem;
  font-weight: 850;
  text-transform: uppercase;
}

.sabono-brand-category-grid strong {
  margin-top: 10px;
  font-size: clamp(1.28rem, 2vw, 1.9rem);
  line-height: 1.1;
}

.sabono-brand-category-grid em {
  margin-top: 14px;
  color: var(--sabono-muted);
  font-style: normal;
  font-weight: 650;
  line-height: 1.55;
}

.sabono-brand-collection-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sabono-brand-collection-grid a {
  min-height: 220px;
  padding: 26px;
  background: #17231f;
  color: #fff;
}

.sabono-brand-collection-grid a:nth-child(2) {
  background: #587466;
}

.sabono-brand-collection-grid a:nth-child(3) {
  background: #9c7a46;
}

.sabono-brand-collection-grid strong {
  max-width: 13ch;
  font-size: clamp(1.45rem, 2vw, 2.25rem);
  line-height: 1.05;
}

.sabono-brand-collection-grid span {
  margin-top: 14px;
  color: rgba(255, 255, 255, 0.74);
  font-weight: 650;
  line-height: 1.6;
}

.sabono-brand-products {
  background: #f7f7f4;
}

.sabono-brand-products .products {
  margin-bottom: 0;
}

.sabono-brand-category-nav {
  display: grid;
  gap: 14px;
  margin: 0 0 30px;
  padding: 20px;
  border: 1px solid rgba(39, 50, 45, 0.1);
  background: #fff;
}

.sabono-brand-category-nav__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid rgba(39, 50, 45, 0.1);
  padding-bottom: 12px;
}

.sabono-brand-category-nav__head span {
  color: var(--sabono-muted);
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.sabono-brand-category-nav__head strong {
  color: var(--sabono-ink);
  font-size: 1.05rem;
}

.sabono-brand-category-nav__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.sabono-brand-category-nav__list a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 40px;
  border: 1px solid rgba(39, 50, 45, 0.12);
  padding: 9px 12px;
  background: #f8f9f6;
  color: var(--sabono-ink);
  text-decoration: none;
}

.sabono-brand-category-nav__list a:hover,
.sabono-brand-category-nav__list a.is-active {
  border-color: var(--sabono-ink);
  background: var(--sabono-ink);
  color: #fff;
}

.sabono-brand-category-nav__list span {
  font-size: 0.84rem;
  font-weight: 800;
}

.sabono-brand-category-nav__list small {
  display: inline-grid;
  min-width: 28px;
  min-height: 22px;
  place-items: center;
  border-radius: 999px;
  background: rgba(39, 50, 45, 0.09);
  color: inherit;
  font-size: 0.72rem;
  font-weight: 850;
}

.sabono-brand-category-nav__list a:hover small,
.sabono-brand-category-nav__list a.is-active small {
  background: rgba(255, 255, 255, 0.16);
}

.sabono-brand-seo {
  display: grid;
  grid-template-columns: minmax(0, 0.45fr) minmax(320px, 0.55fr);
  gap: 34px;
  align-items: start;
  background: #17231f;
  color: #fff;
}

.sabono-brand-seo h2,
.sabono-brand-seo p {
  margin: 0;
}

.sabono-brand-seo h2 {
  max-width: 12ch;
  color: #fff;
  font-size: clamp(2rem, 4vw, 4rem);
  line-height: 0.98;
}

.sabono-brand-seo p {
  max-width: 760px;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.78;
}

.sabono-text-link {
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* ── 18. Footer ───────────────────────────────────────────── */
.sabono-site-footer {
  border-top: 1px solid var(--sabono-line);
  background: #111815;
  color: rgba(255, 255, 255, 0.82);
}

.sabono-site-footer__inner {
  display: grid;
  grid-template-columns: minmax(260px, 0.95fr) minmax(360px, 1.25fr) minmax(220px, 0.8fr);
  gap: 28px;
  width: min(1120px, calc(100% - 48px));
  margin: 0 auto;
  padding: 46px 0 24px;
}

.sabono-site-footer h2,
.sabono-site-footer h3,
.sabono-site-footer a {
  color: #fff;
}

.sabono-site-footer h2,
.sabono-site-footer h3,
.sabono-site-footer p,
.sabono-site-footer ul {
  margin: 0;
}

.sabono-site-footer h2 {
  margin-top: 10px;
  font-size: clamp(1.8rem, 3vw, 2.7rem);
  line-height: 1.05;
}

.sabono-site-footer h3 {
  color: rgba(255, 255, 255, 0.92);
  font-size: 0.86rem;
  font-weight: 850;
  text-transform: uppercase;
}

.sabono-site-footer p {
  margin-top: 16px;
  max-width: 430px;
  color: rgba(255, 255, 255, 0.68);
}

.sabono-site-footer ul {
  display: grid;
  gap: 7px;
  padding: 0;
  list-style: none;
}

.sabono-site-footer a {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.92rem;
  text-decoration: none;
}

.sabono-site-footer a:hover,
.sabono-site-footer a:focus-visible {
  color: #d8c39d;
}

.sabono-site-footer__nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.sabono-site-footer__nav section,
.sabono-site-footer__ops {
  display: grid;
  align-content: start;
  gap: 14px;
}

.sabono-site-footer__ops {
  border-left: 1px solid rgba(255, 255, 255, 0.12);
  padding-left: 26px;
}

.sabono-site-footer__ops li {
  color: rgba(255, 255, 255, 0.68);
}

.sabono-site-footer__bottom {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding-top: 22px;
  color: rgba(255, 255, 255, 0.56);
  font-size: 0.9rem;
}

.ct-footer .sabono-footer-column {
  display: grid;
  gap: 10px;
}

.ct-footer .sabono-footer-logo {
  display: inline-flex;
  width: fit-content;
  max-width: 196px;
  line-height: 0;
}

.ct-footer .sabono-footer-logo__image {
  display: block;
  width: 196px;
  max-width: 100%;
  height: auto;
}

.ct-footer [data-row="middle"],
.ct-footer [data-row="bottom"] {
  background: var(--sabono-ink) !important;
}

.ct-footer [data-row="bottom"] {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.ct-footer [data-row="bottom"],
.ct-footer [data-row="bottom"] a,
.ct-footer .ct-footer-copyright {
  color: rgba(255, 255, 255, 0.62);
}

.ct-footer .sabono-footer-column h3 {
  margin: 0;
  color: rgba(255, 255, 255, 0.92);
  font-size: 0.95rem;
  font-weight: 850;
}

.ct-footer .sabono-footer-column p {
  max-width: 320px;
  margin: 0;
  color: rgba(255, 255, 255, 0.68);
}

.ct-footer .sabono-footer-column ul {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ct-footer .sabono-footer-column a {
  color: rgba(255, 255, 255, 0.78);
  text-decoration: none;
}

.ct-footer .sabono-footer-column a:hover,
.ct-footer .sabono-footer-column a:focus-visible {
  color: #d8c39d;
}

/* ── 19. Archive page hero (hide default hero on shop pages) ─ */
.post-type-archive-product .hero-section,
.tax-product_brand .hero-section,
.tax-product_cat .hero-section,
.tax-pa_collection .hero-section,
.tax-pa_material .hero-section,
.tax-pa_product_type .hero-section {
  display: none;
}

body.sabono-photo-archive [data-block="hook:2909"] #gspb_container-id-gsbp-bdd2e83.gspb_container {
  background-color: #27322d !important;
  background-image: var(--sabono-archive-image) !important;
  background-position: var(--sabono-archive-position, center center) !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  box-shadow: 0 18px 50px rgba(21, 36, 32, 0.08);
  isolation: isolate;
}

body.sabono-photo-archive [data-block="hook:2909"] #gspb_container-id-gsbp-df886bc.gspb_container {
  background:
    linear-gradient(90deg, rgba(21, 36, 32, 0.72) 0%, rgba(21, 36, 32, 0.44) 48%, rgba(21, 36, 32, 0.2) 100%) !important;
}

body.sabono-photo-archive [data-block="hook:2909"] #gspb_container-id-gsbp-df886bc h2 {
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.32);
}

/* ── 20. Furniture/Home page sections ─────────────────────── */
.sabono-furniture-home {
  overflow: hidden;
  background: #fbfcfc;
}

.sabono-furniture-hero {
  min-height: min(760px, calc(100vh - 72px));
  padding: clamp(58px, 8vw, 104px) 24px;
  background: linear-gradient(90deg, #f1eee6 0%, #f7f5ef 48%, #e9eee9 100%);
}

.sabono-furniture-hero .sabono-hero-inner {
  grid-template-columns: minmax(0, 0.95fr) minmax(420px, 1.05fr);
  gap: clamp(36px, 6vw, 78px);
}

.sabono-furniture-hero h1 {
  max-width: 12ch;
  font-size: clamp(3.4rem, 7vw, 6.9rem);
  line-height: 0.96;
}

.sabono-hero-lead {
  max-width: 610px;
  font-size: clamp(1.04rem, 1.35vw, 1.24rem);
  line-height: 1.72;
}

.sabono-hero-actions {
  margin-top: 8px;
}

.sabono-hero-micro {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.sabono-hero-micro span {
  border: 1px solid rgba(39, 50, 45, 0.12);
  border-radius: 999px;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.52);
  color: var(--sabono-soft-ink);
  font-size: 0.82rem;
  font-weight: 750;
}

.sabono-furniture-hero .sabono-hero-visual {
  aspect-ratio: 1 / 1;
  margin: 0;
}

.sabono-furniture-hero .sabono-hero-visual img {
  border: 0;
  border-radius: 0;
  box-shadow: 0 38px 90px rgba(39, 50, 45, 0.16);
}

.sabono-furniture-section {
  padding: clamp(58px, 8vw, 96px) 24px;
}

.sabono-section-heading {
  display: grid;
  grid-template-columns: minmax(0, 0.62fr) minmax(280px, 0.38fr);
  gap: 32px;
  align-items: end;
  margin-bottom: 34px;
}

.sabono-section-heading h2 {
  margin: 0;
  color: var(--sabono-ink);
  font-size: clamp(2rem, 4vw, 3.8rem);
  line-height: 1;
}

.sabono-section-heading p {
  margin: 0;
  color: var(--sabono-muted);
  line-height: 1.7;
  max-width: 320px;
  text-align: right;
  flex-shrink: 0;
  font-size: 0.9rem;
}

.sabono-section-heading--center {
  display: block;
  text-align: center;
}

.sabono-section-heading--center h2 {
  text-align: center;
}

/* ── 21. Promo grid tiles ─────────────────────────────────── */
.sabono-furniture-promo-grid,
.sabono-offer-grid {
  display: grid;
  gap: 22px;
}

.sabono-furniture-promo-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sabono-furniture-promo,
.sabono-offer-tile {
  display: grid;
  align-content: end;
  min-height: 300px;
  border: 1px solid rgba(39, 50, 45, 0.11);
  padding: 24px;
  color: var(--sabono-ink);
  text-decoration: none;
}

.sabono-furniture-promo {
  background: #f4f3ee;
}

.sabono-furniture-promo--serving {
  background: #edf1ee;
}

.sabono-furniture-promo--knives {
  background: #eee8dd;
}

.sabono-furniture-promo--porcelain {
  background: #f7f8f6;
}

.sabono-furniture-promo span,
.sabono-offer-tile span {
  color: var(--sabono-accent);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
}

.sabono-furniture-promo strong,
.sabono-offer-tile strong {
  margin-top: 10px;
  font-size: clamp(1.35rem, 2vw, 2rem);
  line-height: 1.08;
}

.sabono-furniture-promo em,
.sabono-offer-tile em {
  margin-top: 14px;
  color: var(--sabono-muted);
  font-style: normal;
  font-weight: 700;
}

.sabono-offer-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sabono-offer-tile {
  min-height: 260px;
  background: #17231f;
  color: #fff;
}

.sabono-offer-tile:nth-child(2) {
  background: #587466;
}

.sabono-offer-tile:nth-child(3) {
  background: #9c7a46;
}

.sabono-offer-tile span,
.sabono-offer-tile em {
  color: rgba(255, 255, 255, 0.78);
}

/* ── 22. Quality story ────────────────────────────────────── */
.sabono-quality-story {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
}

.sabono-quality-story__copy {
  display: grid;
  gap: 16px;
  min-height: 330px;
  align-content: end;
  border: 1px solid rgba(39, 50, 45, 0.1);
  padding: clamp(28px, 4vw, 48px);
  background: #f4f0e7;
}

.sabono-quality-story__copy:nth-child(2) {
  background: #eef2ef;
}

.sabono-quality-story__copy h2,
.sabono-quality-story__copy p {
  margin: 0;
}

.sabono-quality-story__copy h2 {
  max-width: 12ch;
  font-size: clamp(2rem, 4vw, 4rem);
  line-height: 0.98;
}

.sabono-quality-story__copy p {
  max-width: 520px;
  color: var(--sabono-soft-ink);
  line-height: 1.72;
}

/* ── 23. Newsletter strip ─────────────────────────────────── */
.sabono-furniture-newsletter {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: clamp(42px, 6vw, 72px) 24px;
  background: #17231f;
  color: #fff;
}

.sabono-furniture-newsletter h2,
.sabono-furniture-newsletter p {
  margin: 0;
}

.sabono-furniture-newsletter h2 {
  font-size: clamp(2rem, 4vw, 4.6rem);
  line-height: 1;
}

.sabono-furniture-newsletter p {
  color: rgba(255, 255, 255, 0.72);
}

.sabono-furniture-newsletter .wp-block-buttons {
  justify-content: end;
}

/* ── 24. Archive hero ─────────────────────────────────────── */
.sabono-furniture-archive {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(320px, 0.28fr);
  gap: 34px;
  align-items: end;
  margin: 0 0 34px;
  padding: clamp(34px, 5vw, 62px);
  background: #f1eee6;
}

.sabono-furniture-archive__copy {
  display: grid;
  gap: 12px;
}

.sabono-furniture-archive__copy > * {
  margin: 0;
}

.sabono-furniture-archive h1 {
  max-width: 12ch;
  font-size: clamp(2.7rem, 6vw, 6rem);
  line-height: 0.96;
}

.sabono-furniture-archive__copy p:not(.sabono-kicker) {
  max-width: 660px;
  color: var(--sabono-soft-ink);
  font-size: 1.06rem;
  line-height: 1.72;
}

.sabono-furniture-archive__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.sabono-archive-stat {
  display: grid;
  gap: 4px;
  border-top: 1px solid rgba(39, 50, 45, 0.16);
  padding-top: 12px;
  color: var(--sabono-muted);
  font-size: 0.78rem;
  font-weight: 750;
  text-transform: uppercase;
}

.sabono-archive-stat strong {
  color: var(--sabono-ink);
  font-size: 1.35rem;
  line-height: 1;
  text-transform: none;
}

.post-type-archive-product .sabono-archive-tools,
.tax-product_cat .sabono-archive-tools {
  border: 0;
  border-top: 1px solid rgba(39, 50, 45, 0.1);
  border-bottom: 1px solid rgba(39, 50, 45, 0.1);
  border-radius: 0;
  padding: 20px 0;
  background: transparent;
}

/* ── 25. Product art placeholder ─────────────────────────── */
.sabono-source-product-image {
  display: block;
}

.sabono-product-art {
  position: relative;
  z-index: 1;
  display: block;
  width: min(62%, 240px);
  aspect-ratio: 1 / 1;
  border: 1px solid rgba(39, 50, 45, 0.18);
  background:
    radial-gradient(circle at 64% 30%, transparent 0 13%, rgba(39, 50, 45, 0.24) 13.5%, rgba(39, 50, 45, 0.24) 15%, transparent 15.5%),
    radial-gradient(ellipse at 48% 58%, transparent 0 25%, rgba(156, 122, 70, 0.28) 25.5%, rgba(156, 122, 70, 0.28) 27%, transparent 27.5%),
    linear-gradient(132deg, transparent 0 47%, rgba(39, 50, 45, 0.22) 47.5%, rgba(39, 50, 45, 0.22) 49%, transparent 49.5%);
}

.sabono-product-art::before {
  position: absolute;
  right: 6%;
  bottom: 9%;
  width: 28%;
  height: 18%;
  border: 2px solid rgba(88, 116, 102, 0.3);
  border-radius: 999px;
  content: "";
}

/* ── 26. Responsive: tablet ──────────────────────────────── */
@media (max-width: 940px) {
  .sabono-hero-inner {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .sabono-hero h1 {
    max-width: 13ch;
  }

  .sabono-hero-visual {
    max-width: 680px;
  }

  .sabono-furniture-hero .sabono-hero-inner,
  .sabono-section-heading,
  .sabono-furniture-archive,
  .sabono-quality-story,
  .sabono-furniture-newsletter,
  .sabono-brand-page .sabono-brand-hero,
  .sabono-brand-seo {
    grid-template-columns: 1fr;
  }

  .sabono-furniture-promo-grid,
  .sabono-offer-grid,
  .sabono-brand-category-grid,
  .sabono-brand-collection-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sabono-furniture-newsletter .wp-block-buttons {
    justify-content: start;
  }

  .sabono-site-footer__inner,
  .sabono-site-footer__nav,
  .sabono-home-intro,
  .sabono-section-heading,
  .sabono-info-page,
  .sabono-delivery-hero,
  .sabono-delivery-section-heading,
  .sabono-delivery-process,
  .sabono-contact-hero,
  .sabono-contact-layout {
    grid-template-columns: 1fr;
  }

  .sabono-delivery-grid,
  .sabono-payment-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sabono-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sabono-bestseller-layout {
    grid-template-columns: 1fr;
  }

  .sabono-bestseller-banner {
    min-height: 300px;
  }

  .sabono-bestseller-products {
    display: block;
  }

  .sabono-bestseller-products ul.products {
    display: grid !important;
    gap: 14px;
    margin: 0 !important;
  }

  .sabono-bestseller-products ul.products,
  .sabono-home-banner-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sabono-home-banner-grid {
    grid-auto-rows: 220px;
  }

  .sabono-home-banner:first-child {
    grid-column: span 2;
    grid-row: span 1;
  }

  .sabono-site-footer__ops {
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    padding-top: 24px;
    padding-left: 0;
  }
}

/* ── 27. Responsive: mobile ──────────────────────────────── */
@media (max-width: 760px) {
  .sabono-hero,
  .sabono-brand-hero {
    min-height: 420px;
  }

  .sabono-hero {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }

  .sabono-hero h1 {
    font-size: 2.65rem !important;
    line-height: 1.04 !important;
  }

  .sabono-furniture-hero {
    padding-inline: 18px;
  }

  .sabono-furniture-section,
  .sabono-furniture-newsletter,
  .sabono-brand-section,
  .sabono-brand-page .sabono-brand-hero {
    padding-inline: 18px;
  }

  .sabono-furniture-promo-grid,
  .sabono-offer-grid,
  .sabono-brand-category-grid,
  .sabono-brand-collection-grid,
  .sabono-furniture-archive__stats {
    grid-template-columns: 1fr;
  }

  .sabono-furniture-promo,
  .sabono-offer-tile,
  .sabono-brand-category-grid a,
  .sabono-brand-collection-grid a,
  .sabono-quality-story__copy {
    min-height: 230px;
  }

  .sabono-furniture-archive {
    padding: 30px 22px;
  }

  .sabono-search,
  .sabono-filter-groups,
  .sabono-product-service {
    grid-template-columns: 1fr;
  }

  .sabono-empty-state {
    min-height: 340px;
    padding: 40px 16px;
  }

  .sabono-site-footer__inner {
    width: min(100% - 32px, 1120px);
    padding: 42px 0 22px;
  }

  .sabono-home-intro,
  .sabono-home-section,
  .sabono-service-strip,
  .sabono-info-page,
  .sabono-delivery-page,
  .sabono-contact-page {
    width: min(100% - 32px, 1120px);
    margin: 42px auto;
  }

  .sabono-delivery-page {
    width: calc(100% - 32px);
    max-width: 1120px;
    overflow-x: clip;
  }

  .sabono-home-intro h2,
  .sabono-info-page h1,
  .sabono-delivery-hero h1 {
    max-width: none;
    font-size: 2.25rem;
  }

  .sabono-category-grid,
  .sabono-brand-panel-grid,
  .sabono-bestseller-products ul.products,
  .sabono-home-banner-grid,
  .sabono-service-strip,
  .sabono-delivery-grid,
  .sabono-payment-grid {
    grid-template-columns: 1fr;
  }

  .sabono-bestseller-banner {
    min-height: 260px;
  }

  .sabono-home-banner-grid {
    grid-auto-rows: auto;
  }

  .sabono-home-banner,
  .sabono-home-banner:first-child {
    grid-column: auto;
    grid-row: auto;
    min-height: 210px;
  }

  .sabono-category-tile,
  .sabono-category-tile img {
    min-height: 190px;
  }

  .sabono-brand-panel,
  .sabono-brand-panel img {
    min-height: 230px;
  }

  .sabono-info-page__hero {
    padding: 28px;
  }

  .sabono-delivery-hero > div:first-child {
    min-height: auto;
    padding: 28px;
  }

  .sabono-delivery-section-heading {
    gap: 14px;
  }

  .sabono-delivery-card,
  .sabono-payment-card {
    min-height: auto;
  }

  .sabono-contact-hero > div:first-child,
  .sabono-contact-form {
    padding: 24px;
  }

  .sabono-contact-grid {
    grid-template-columns: 1fr;
  }

  .sabono-contact-card {
    min-height: 112px;
  }

  .sabono-contact-map iframe {
    min-height: 320px;
  }

  .sabono-product-details dl div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .woocommerce div.product form.cart {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .woocommerce div.product form.cart .quantity,
  .woocommerce div.product form.cart .single_add_to_cart_button {
    width: 100% !important;
    max-width: none;
  }

  .woocommerce div.product form.cart .single_add_to_cart_button {
    min-height: 52px;
    white-space: nowrap;
  }
}

/* ── 29. Category product rows ([sabono_category_rows]) ──── */
.scr {
  margin-bottom: 52px;
}

.scr__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--sabono-line, rgba(39,50,45,0.12));
}

.scr__title {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--sabono-ink);
  margin: 0;
  letter-spacing: -0.01em;
}

.scr__all {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--sabono-accent);
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 160ms ease;
}

.scr__all:hover {
  opacity: 0.7;
}

.scr__carousel-wrap {
  position: relative;
}

.scr__arrow {
  display: none;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 4;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(39, 50, 45, 0.15);
  background: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  font-size: 1.1rem;
  align-items: center;
  justify-content: center;
  transition: background 150ms ease, box-shadow 150ms ease;
  color: var(--sabono-ink);
}

.scr__arrow:hover {
  background: var(--sabono-paper);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.14);
}

.scr__arrow--prev { left: -18px; }
.scr__arrow--next { right: -18px; }

@media (min-width: 769px) {
  .scr__arrow { display: flex; }
}

/* WooCommerce native product list as horizontal carousel */
.scr__wc-rail {
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.scr__wc-rail::-webkit-scrollbar {
  display: none;
}

.scr__wc-list {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 30px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  scroll-snap-type: x mandatory;
  width: max-content;
}

.scr__wc-list > li.product {
  flex: 0 0 clamp(260px, 24vw, 330px) !important;
  width: clamp(260px, 24vw, 330px) !important;
  min-width: 0 !important;
  margin: 0 !important;
  scroll-snap-align: start;
}

.scr__wc-list > li.product .ct-media-container,
.scr__wc-list > li.product figure,
.scr__wc-list > li.product .woocommerce-loop-product__link > img,
.scr__wc-list > li.product img.wp-post-image,
.scr__wc-list > li.product img {
  aspect-ratio: 1 / 1;
  object-fit: contain;
  width: 100%;
}

.scr__wc-list > li.product .woocommerce-loop-product__title {
  font-size: clamp(1.05rem, 1.45vw, 1.45rem);
  line-height: 1.22;
}

.scr__wc-list > li.product .entry-meta {
  font-size: 0.78rem;
}

@media (max-width: 768px) {
  .scr__wc-list > li.product {
    flex: 0 0 260px !important;
    width: 260px !important;
  }
}

@media (max-width: 500px) {
  .scr__wc-list > li.product {
    flex: 0 0 220px !important;
    width: 220px !important;
  }
}

/* Legacy grid (kept for backwards compat) */
.scr__grid {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  gap: 14px;
  padding-bottom: 4px;
  scrollbar-width: none;
}

.scr__grid::-webkit-scrollbar {
  display: none;
}

.scr__card {
  flex: 0 0 220px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid rgba(39, 50, 45, 0.07);
  transition: box-shadow 200ms ease, transform 200ms ease;
}

.scr__card:hover {
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.09);
  transform: translateY(-3px);
}

.scr__card-img {
  display: block;
  background: var(--sabono-paper, #f3efe7);
  aspect-ratio: 4 / 5;
  overflow: hidden;
}

.scr__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 260ms ease;
}

.scr__card:hover .scr__img {
  transform: scale(1.06);
}

.scr__card-body {
  padding: 10px 12px 14px;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 6px;
}

.scr__card-name {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--sabono-ink);
  text-decoration: none;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}

.scr__card-name:hover {
  color: var(--sabono-accent);
}

.scr__card-price {
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--sabono-accent);
  margin-top: auto;
}

.scr__card-price del {
  font-weight: 500;
  color: var(--sabono-muted);
  margin-right: 4px;
}

/* Wrap entire scr section inside a max-width container */
.scr {
  max-width: var(--theme-block-max-width, 1200px);
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

@media (max-width: 768px) {
  .scr__card { flex: 0 0 175px; }
  .scr__title { font-size: 1.1rem; }
}

@media (max-width: 500px) {
  .scr__card { flex: 0 0 148px; }
}

/* ── 30. Category grid — editorial masonry with overlay ──────────────────── */
.scg {
  max-width: var(--theme-block-max-width, 1200px);
  margin: 0 auto 72px;
  padding: 0 20px;
}

.scg__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--sabono-line);
}

.scg__heading {
  font-size: clamp(1.5rem, 2.8vw, 2.1rem);
  font-weight: 900;
  color: var(--sabono-ink);
  margin: 0;
  letter-spacing: -0.03em;
  line-height: 1.1;
}

.scg__sub {
  font-size: 0.88rem;
  color: var(--sabono-muted, #6f7771);
  margin: 0;
  text-align: right;
  max-width: 280px;
  line-height: 1.5;
  flex-shrink: 0;
}

/* Masonry: big tile left (spans 2 rows) + 2 cols of 2 tiles each */
.scg__grid {
  display: grid;
  grid-template-columns: 1.55fr 1fr 1fr;
  grid-template-rows: 240px 240px;
  gap: 12px;
}

/* First tile is tall */
.scg__tile:first-child {
  grid-row: 1 / 3;
}

/* Base tile styles */
.scg__tile {
  position: relative;
  display: block;
  text-decoration: none;
  overflow: hidden;
  border-radius: 14px;
  background: #1a1a1a;
  cursor: pointer;
}

/* Image fills tile */
.scg__tile-img {
  position: absolute;
  inset: 0;
}

.scg__tile-img img,
.scg__tile-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--sabono-banner-position, center);
  transition: transform 500ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
  display: block;
}

.scg__tile-placeholder {
  background: linear-gradient(135deg, #2e3a35 0%, #1a2320 100%);
}

/* Dark gradient overlay */
.scg__tile::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(10, 16, 13, 0.68) 0%,
    rgba(10, 16, 13, 0.16) 48%,
    transparent 100%
  );
  transition: opacity 300ms ease;
}

.scg__tile:hover::after {
  opacity: 0.85;
}

.scg__tile:hover .scg__tile-img img {
  transform: scale(1.07);
}

/* Text overlay */
.scg__tile-body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
  padding: 20px 20px 18px;
}

.scg__tile-name {
  display: block;
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.01em;
  line-height: 1.25;
  margin-bottom: 4px;
}

.scg__tile:first-child .scg__tile-name {
  font-size: 1.35rem;
}

.scg__tile-count {
  display: block;
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.62);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Arrow CTA on big tile hover */
.scg__tile:first-child .scg__tile-body::after {
  content: '→';
  display: inline-block;
  margin-left: 6px;
  font-size: 1.1rem;
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 240ms ease, transform 240ms ease;
}

.scg__tile:first-child:hover .scg__tile-body::after {
  opacity: 1;
  transform: translateX(0);
}

/* Responsive */
@media (max-width: 900px) {
  .scg__grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(3, 200px);
  }

  .scg__tile:first-child {
    grid-column: 1 / 3;
    grid-row: 1 / 2;
  }
}

@media (max-width: 500px) {
  .scg__grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 200px 160px 160px;
    gap: 8px;
  }

  .scg__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .scg__sub { text-align: left; max-width: 100%; }

  .scg__tile:first-child {
    grid-column: 1 / 3;
  }
}

/* ── Responsive: new home sections ───────────────────────────────────────── */
@media (max-width: 900px) {
  .sabono-home-intro {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .sabono-category-grid {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 200px;
  }

  .sabono-category-tile:first-child {
    grid-column: span 2;
    grid-row: span 1;
  }

  .sabono-section-heading {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    border-bottom: 1px solid var(--sabono-line);
  }

  .sabono-section-heading p {
    text-align: left;
    max-width: 100%;
  }
}

@media (max-width: 600px) {
  .sabono-category-grid {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 160px;
    gap: 8px;
  }

  .sabono-brand-panel-grid {
    grid-template-columns: 1fr;
  }

  .sabono-service-strip {
    grid-template-columns: 1fr;
  }
}
