/**
 * OneStorefront for JTL-Shop 5 — proprietäre CSS-Erweiterungen (Theme: onestorefront)
 * Wird nach onestorefront.css in template.xml (Minify) eingebunden.
 *
 * Copyright (c) 2026 UpCode.ONE Sp. z o.o.
 */

@import url('onestorefront-brand-glass.css');
/* onestorefront-legacy-neutralize.css: via template.xml (after onestorefront.css) */
/* shop-cc-theme.css: loaded after theme CSS via layout/header.tpl (avoids duplicate fetch) */

/* --------------------------------------------------------------------------
   Design system — brand blues, surfaces, shadows (PLP card = reference)
   -------------------------------------------------------------------------- */
:root {
  --osf-radius-sm: 0.35rem;
  --osf-radius-btn: 0.5rem;
  --osf-radius-btn-pill: 9999px;
  --osf-radius-md: 0.75rem;
  --osf-radius-lg: 1.25rem;
  --osf-footer-newsletter-radius: var(--osf-radius-lg);
  --osf-radius-pill: 9999px;

  /* Brand palette — Kalorienrechner-Optik (#1789ad + #35D7FF); Laufzeit: osf-brand-design-vars */
  --osf-brand: #1789ad;
  --osf-brand-rgb: 23, 137, 173;
  --osf-accent: #35d7ff;
  --osf-accent-rgb: 53, 215, 255;
  --osf-primary: var(--osf-brand);
  --osf-primary-dark: #1789ad;

  /* Surfaces */
  --osf-surface: #f5f8fa;
  --osf-surface-elevated: #ffffff;
  --osf-border-subtle: rgba(23, 137, 173, 0.22);

  /* Shadows — match .osf-product-card / PLP */
  --osf-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
  --osf-shadow-card: var(--osf-shadow-sm);
  --osf-shadow-hover: 0 12px 28px rgba(0, 0, 0, 0.1);
  --osf-header-shadow: 0 4px 16px rgba(15, 41, 53, 0.08), 0 1px 3px rgba(0, 0, 0, 0.06);

  /* Header chrome — dunkel wie Footer (#0e5f73 → #12272f → #1a3340) */
  --osf-header-dark-top: #0e5f73;
  --osf-header-dark-deep: #12272f;
  --osf-header-dark-bg: #1a3340;
  --osf-header-dark-gradient: linear-gradient(180deg, #0e5f73 0%, #12272f 4rem, #1a3340 100%);
  --osf-header-dark-border: rgba(var(--osf-accent-rgb, 53, 215, 255), 0.25);
  --osf-header-topbar: var(--osf-header-dark-deep);
  --osf-header-topbar-text: var(--osf-footer-text, #e8f1f4);
  --osf-header-bg: var(--osf-header-dark-bg);
  --osf-header-text: var(--osf-footer-text, #e8f1f4);

  /* Footer chrome (layered) */
  --osf-footer-bg: #1a3340;
  --osf-footer-text: #e8f1f4;
  --osf-footer-deep: #12272f;
  --osf-footer-muted: rgba(232, 241, 244, 0.88);
  --osf-footer-inlead-bg: #111111;
  --osf-footer-inlead-deep: #0a0a0a;
  --osf-footer-newsletter-bg: var(--osf-footer-deep);
  --osf-footer-newsletter-border: rgba(var(--osf-accent-rgb, 53, 215, 255), 0.22);
  --osf-footer-main-divider: rgba(255, 255, 255, 0.12);

  /* Bootstrap sync — secondary = Textgrau, nicht Akzent-Cyan */
  --primary: var(--osf-brand);
  --secondary: var(--osf-muted);
  --light: var(--osf-surface);

  /* CTA pills — reference: .osf-store-locator__route-btn (Route planen) */
  --osf-btn-gradient: linear-gradient(135deg, var(--osf-brand, #1789ad) 0%, var(--osf-accent, #35d7ff) 100%);
  --osf-btn-gradient-hover: linear-gradient(135deg, var(--osf-accent, #35d7ff) 0%, var(--osf-brand, #1789ad) 100%);
  --osf-btn-shadow: 0 8px 24px rgba(var(--osf-brand-rgb, 23, 137, 173), 0.22), 0 4px 16px rgba(var(--osf-accent-rgb, 53, 215, 255), 0.32);
  --osf-btn-shadow-sm: 0 4px 16px rgba(var(--osf-brand-rgb, 23, 137, 173), 0.22), 0 2px 10px rgba(var(--osf-accent-rgb, 53, 215, 255), 0.28);
  --osf-btn-pill-radius: 9999px;
}

/* --------------------------------------------------------------------------
   Sitewide surface + header / footer brand chrome
   -------------------------------------------------------------------------- */
body {
  background: linear-gradient(
    165deg,
    rgba(var(--osf-brand-rgb, 23, 137, 173), 0.08) 0%,
    rgba(var(--osf-accent-rgb, 53, 215, 255), 0.05) 35%,
    var(--osf-surface, #f5f8fa) 28%
  );
  background-color: var(--osf-surface, #f5f8fa);
  color: var(--osf-heading, #000000);
}

.sticky-header header,
body.osf-header-sticky #osf-header-sticky-root.sticky-top {
  position: sticky;
  top: 0;
}

/* Single sticky shell: topbar + main header (+ optional mobile search) */
#osf-header-sticky-root.osf-header-sticky-root {
  z-index: 1020;
  background: var(--osf-header-dark-gradient);
  background-color: var(--osf-header-dark-bg);
  color: var(--osf-header-text);
}

#osf-header-sticky-root > header#jtl-nav-wrapper {
  position: relative;
  top: auto;
}

/*
 * Sticky shell (menu_scroll=menu + single row): entire header sticks — topbar, logo/search/icons, nav.
 * Do not collapse rows on scroll (scaleY(0) hid nav but preserved height = empty header shell).
 */
@media (min-width: 992px) {
  #osf-header-sticky-root.osf-header-scroll-mode {
    position: sticky;
    top: 0;
    overflow-anchor: none;
  }

  body.osf-header-sticky #main-wrapper {
    overflow-anchor: auto;
  }

  .osf-header-scroll-mode.osf-header-scroll--collapsed #header-top-bar.osf-header-topbar,
  .osf-header-scroll-mode.osf-header-scroll--collapsed .hide-navbar .osf-header-categories,
  .osf-header-scroll-mode:not(.osf-header-scroll--collapsed) #header-top-bar.osf-header-topbar,
  .osf-header-scroll-mode:not(.osf-header-scroll--collapsed) .hide-navbar .osf-header-categories {
    transform: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    overflow: visible;
  }
}

/* Mobile scroll search lives inside sticky root — no second fixed-top bar */
#osf-header-sticky-root .fixed-search.smoothscroll-top-search {
  position: relative;
  top: auto;
}

#header-top-bar {
  background: transparent;
  background-color: transparent;
  color: var(--osf-header-topbar-text);
  border-bottom: 1px solid var(--osf-header-dark-border);
}

#header-top-bar a:not(.dropdown-item):not(.btn),
#header-top-bar .nav-link,
#header-top-bar .topbar-main .nav-item {
  color: var(--osf-header-topbar-text);
}

#header-top-bar a:not(.dropdown-item):not(.btn):hover,
#header-top-bar .nav-link:hover {
  color: rgba(255, 255, 255, 0.88);
}

header {
  background: transparent;
  background-color: transparent;
  color: var(--osf-header-text);
  box-shadow: none;
  border-bottom: 1px solid var(--osf-header-dark-border);
}

header a:not(.dropdown-item):not(.btn) {
  color: var(--osf-header-text);
}

header a:not(.dropdown-item):not(.btn):hover {
  color: var(--osf-accent, #35d7ff);
}

header .navbar-toggler {
  color: var(--osf-header-text);
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0.5rem;
}

header .form-control,
header .form-control:focus {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: var(--osf-header-dark-border);
  color: var(--osf-header-text);
}

header .form-control::placeholder {
  color: #fff;
  opacity: 1;
}

header .navbar-nav > .nav-item > .nav-link::before {
  border-color: var(--osf-primary);
}

/* Pill input-group — shared footer newsletter + header search (newsletter bar reference) */
.osf-pill-input-group,
#footer .osf-footer-newsletter .newsletter-email-wrapper .input-group,
header .search-wrapper .input-group,
header .main-search .input-group,
header .search-form-wrapper-fixed .input-group {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  border: 1px solid rgba(var(--osf-accent-rgb, 53, 215, 255), 0.3);
  border-radius: var(--osf-radius-btn-pill, var(--osf-btn-pill-radius, 9999px));
  overflow: hidden;
  isolation: isolate;
  background: rgba(255, 255, 255, 0.12);
  box-shadow: none;
}

.osf-pill-input-group > .form-control,
.osf-pill-input-group > .form-control:first-child,
#footer .osf-pill-input-group > #newsletter_email,
#footer .osf-pill-input-group > .form-control:first-child,
header .osf-pill-input-group > .form-control:first-child,
header .search-wrapper .input-group .form-control,
header .main-search .input-group .form-control,
header .search-form-wrapper-fixed .input-group .form-control,
header .search-wrapper .input-group .twitter-typeahead,
header .main-search .input-group .twitter-typeahead,
header .search-form-wrapper-fixed .input-group .twitter-typeahead {
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
  border: 0;
  background: rgba(255, 255, 255, 0.12);
  box-shadow: none;
  min-height: 2.75rem;
  padding-left: 1.25rem;
  padding-right: 1rem;
  color: var(--osf-header-text, var(--osf-footer-text, #e8f1f4));
}

header .search-wrapper .input-group .form-control::placeholder,
header .main-search .input-group .form-control::placeholder,
header .search-form-wrapper-fixed .input-group .form-control::placeholder,
header .search-wrapper input[name="qs"]::placeholder,
header .main-search input[name="qs"]::placeholder,
header .search-form-wrapper-fixed input[name="qs"]::placeholder,
header .search-wrapper .tt-input::placeholder,
header .main-search .tt-input::placeholder,
header .search-form-wrapper-fixed .tt-input::placeholder {
  color: #fff;
  opacity: 1;
}

header .search-wrapper .input-group .form-control::-webkit-input-placeholder,
header .main-search .input-group .form-control::-webkit-input-placeholder,
header .search-form-wrapper-fixed .input-group .form-control::-webkit-input-placeholder,
header .search-wrapper input[name="qs"]::-webkit-input-placeholder,
header .main-search input[name="qs"]::-webkit-input-placeholder,
header .search-form-wrapper-fixed input[name="qs"]::-webkit-input-placeholder {
  color: #fff;
  opacity: 1;
}

header .search-wrapper .input-group .form-control::-moz-placeholder,
header .main-search .input-group .form-control::-moz-placeholder,
header .search-form-wrapper-fixed .input-group .form-control::-moz-placeholder,
header .search-wrapper input[name="qs"]::-moz-placeholder,
header .main-search input[name="qs"]::-moz-placeholder,
header .search-form-wrapper-fixed input[name="qs"]::-moz-placeholder {
  color: #fff;
  opacity: 1;
}

header .search-wrapper .input-group .form-control:-ms-input-placeholder,
header .main-search .input-group .form-control:-ms-input-placeholder,
header .search-form-wrapper-fixed .input-group .form-control:-ms-input-placeholder,
header .search-wrapper input[name="qs"]:-ms-input-placeholder,
header .main-search input[name="qs"]:-ms-input-placeholder,
header .search-form-wrapper-fixed input[name="qs"]:-ms-input-placeholder {
  color: #fff;
  opacity: 1;
}

/* Footer newsletter: white text + placeholder (match header search) */
#footer #newsletter_email,
#footer .osf-pill-input-group > #newsletter_email,
#footer .osf-pill-input-group > .form-control:first-child,
#footer .osf-footer-newsletter .newsletter-email-wrapper .form-control {
  color: #fff;
}

#footer #newsletter_email::placeholder,
#footer .osf-pill-input-group > #newsletter_email::placeholder,
#footer .osf-pill-input-group > .form-control::placeholder,
#footer .osf-footer-newsletter .form-control::placeholder {
  color: #fff;
  opacity: 1;
}

#footer #newsletter_email::-webkit-input-placeholder,
#footer .osf-pill-input-group > #newsletter_email::-webkit-input-placeholder,
#footer .osf-footer-newsletter .form-control::-webkit-input-placeholder {
  color: #fff;
  opacity: 1;
}

#footer #newsletter_email::-moz-placeholder,
#footer .osf-pill-input-group > #newsletter_email::-moz-placeholder,
#footer .osf-footer-newsletter .form-control::-moz-placeholder {
  color: #fff;
  opacity: 1;
}

#footer #newsletter_email:-ms-input-placeholder,
#footer .osf-footer-newsletter .form-control:-ms-input-placeholder {
  color: #fff;
  opacity: 1;
}

.osf-pill-input-group > .form-control:first-child,
.osf-pill-input-group > .form-control,
#footer .osf-pill-input-group > #newsletter_email,
#footer .osf-pill-input-group > .form-control,
header .search-wrapper .input-group > .form-control:first-child,
header .search-wrapper .input-group .form-control,
header .main-search .input-group > .form-control:first-child,
header .main-search .input-group .form-control,
header .search-form-wrapper-fixed .input-group > .form-control:first-child,
header .search-form-wrapper-fixed .input-group .form-control,
header .search-wrapper .input-group .twitter-typeahead,
header .main-search .input-group .twitter-typeahead,
header .search-form-wrapper-fixed .input-group .twitter-typeahead,
header .search-wrapper .input-group .twitter-typeahead .form-control,
header .main-search .input-group .twitter-typeahead .form-control,
header .search-form-wrapper-fixed .input-group .twitter-typeahead .form-control {
  border-radius: 0;
}

.osf-pill-input-group > .input-group-append,
header .search-wrapper .input-group-append,
header .main-search .input-group-append,
header .search-form-wrapper-fixed .input-group-append {
  flex: 0 0 auto;
  margin-left: 0;
  display: flex;
  background: transparent;
  border: 0;
  border-radius: 0;
}

/* Reuses newsletter CTA tokens: --osf-btn-gradient, --osf-btn-gradient-hover, min-w-sm */
.osf-pill-input-group .input-group-append .btn,
.osf-pill-input-group .input-group-append .osf-search-submit,
#footer .osf-pill-input-group .input-group-append .btn,
#footer #newsletter_email ~ .input-group-append .btn,
header .search-wrapper .input-group-append .osf-search-submit,
header .main-search .input-group-append .osf-search-submit,
header .search-form-wrapper-fixed .input-group-append .osf-search-submit {
  border: none;
  min-height: 2.75rem;
  padding: 0 1.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
  background: var(--osf-btn-gradient);
  background-image: var(--osf-btn-gradient);
  color: var(--osf-text-on-brand, #ffffff);
  border-radius: 0;
  box-shadow: var(--osf-btn-shadow-sm);
  transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.osf-pill-input-group .input-group-append .btn:hover,
.osf-pill-input-group .input-group-append .btn:focus,
.osf-pill-input-group .input-group-append .osf-search-submit:hover,
.osf-pill-input-group .input-group-append .osf-search-submit:focus,
header .search-wrapper .input-group-append .osf-search-submit:hover,
header .main-search .input-group-append .osf-search-submit:hover,
header .search-form-wrapper-fixed .input-group-append .osf-search-submit:hover,
header .search-wrapper .input-group-append .osf-search-submit:focus,
header .main-search .input-group-append .osf-search-submit:focus,
header .search-form-wrapper-fixed .input-group-append .osf-search-submit:focus {
  background: var(--osf-btn-gradient-hover);
  background-image: var(--osf-btn-gradient-hover);
  color: var(--osf-text-on-brand, #ffffff);
  box-shadow: var(--osf-btn-shadow);
}

.osf-pill-input-group .input-group-append .osf-search-submit:active,
header .search-wrapper .input-group-append .osf-search-submit:active,
header .main-search .input-group-append .osf-search-submit:active,
header .search-form-wrapper-fixed .input-group-append .osf-search-submit:active {
  transform: translateY(1px);
}

header .osf-search-submit__label {
  color: var(--osf-text-on-brand, #ffffff);
}

/* Header utility icons (account, wishlist, cart) */
#shop-nav.nav-icons > .nav-item > .nav-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.6rem;
  border-radius: var(--osf-radius-md);
  transition: background-color 0.2s ease, color 0.2s ease;
}

#shop-nav.nav-icons > .nav-item > .nav-link:hover,
#shop-nav.nav-icons > .nav-item > .nav-link:focus {
  background-color: rgba(var(--osf-brand-rgb, 23, 137, 173), 0.35);
}

#shop-nav.nav-icons .osf-header-nav-icon {
  font-size: 1.2rem;
  line-height: 1;
  color: var(--osf-accent, #35d7ff);
  transition: color 0.2s ease, transform 0.15s ease;
}

#shop-nav.nav-icons > .nav-item > .nav-link:hover .osf-header-nav-icon,
#shop-nav.nav-icons > .nav-item > .nav-link:focus .osf-header-nav-icon {
  color: #ffffff;
}

#shop-nav.nav-icons .cart-icon-dropdown-price {
  font-size: 0.875rem;
  font-weight: 600;
  /* Admin header-color may be dark; use light topbar token on dark chrome */
  color: var(--osf-header-topbar-text, #e8f1f4);
}

#shop-nav.nav-icons .cart-icon-dropdown-icon .fa-sup {
  background: linear-gradient(135deg, var(--osf-brand, #1789ad) 0%, var(--osf-accent, #35d7ff) 100%);
  color: #ffffff;
  border: 2px solid var(--osf-header-dark-bg);
}

/* Mega-menu dim: backdrop below sticky shell; category row stays gray-blue (not black bleed-through) */
@media (min-width: 992px) {
  /* Category row merged into .hide-navbar — no second header strip */
  #osf-header-sticky-root.osf-header-sticky-root header .hide-navbar .osf-header-categories,
  #osf-header-sticky-root.osf-header-sticky-root header .hide-navbar [class*="menu-center-"],
  #osf-header-sticky-root.osf-header-sticky-root header .hide-navbar [class*="menu-multiple-rows-"] {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  /* Legacy markup: standalone category strip as direct header child */
  #osf-header-sticky-root.osf-header-sticky-root > header > .container-fluid[class*="menu-center-"],
  #osf-header-sticky-root.osf-header-sticky-root > header > .container[class*="menu-center-"],
  #osf-header-sticky-root.osf-header-sticky-root > header > .container-fluid[class*="menu-multiple-rows-"],
  #osf-header-sticky-root.osf-header-sticky-root > header > .container[class*="menu-multiple-rows-"] {
    display: none !important;
  }

  /* Fallback if backdrop is still injected inside sticky root (legacy/cached JS) */
  #osf-header-sticky-root:has(> .modal-backdrop.show) .hide-navbar,
  #osf-header-sticky-root:has(> .modal-backdrop.show) header .hide-navbar .osf-header-categories,
  #osf-header-sticky-root:has(> .modal-backdrop.show) header .hide-navbar [class*="menu-center-"],
  #osf-header-sticky-root:has(> .modal-backdrop.show) header .hide-navbar [class*="menu-multiple-rows-"],
  #osf-header-sticky-root:has(> .modal-backdrop.show) #header-top-bar {
    background: var(--osf-header-dark-gradient) !important;
    background-color: var(--osf-header-dark-bg, #1a3340) !important;
  }

  /* Backdrop after sticky root must not cover mega panel (onestorefront.css sets 1020) */
  .modal-backdrop.zindex-dropdown {
    z-index: 1010 !important;
  }

  header .navbar-nav > .dropdown-full > .dropdown-menu.show,
  header .osf-manufacturer-mega__menu.show {
    z-index: 1031 !important;
    border-bottom-left-radius: var(--osf-radius-md, 0.5rem);
    border-bottom-right-radius: var(--osf-radius-md, 0.5rem);
  }

  /* Desktop submenu/mega panel: elevated surface vs dark header (overrides shop-cc-theme dark !important) */
  header .navbar-nav > .dropdown-full > .dropdown-menu,
  header .navbar-nav > .dropdown-full > .dropdown-menu.show,
  .osf-shop-cc-theme header .navbar-nav > .dropdown-full > .dropdown-menu,
  .osf-shop-cc-theme header .navbar-nav > .dropdown-full > .dropdown-menu.show,
  .osf-shop-cc-theme header .dropdown-full > .dropdown-menu,
  .osf-shop-cc-theme #mainNavigation .navbar-nav > .dropdown-full > .dropdown-menu.show {
    background: var(--osf-surface-elevated, #ffffff) !important;
    background-color: var(--osf-surface-elevated, #ffffff) !important;
    color: var(--osf-heading, #000000) !important;
    border: 1px solid var(--osf-border-subtle, rgba(23, 137, 173, 0.22)) !important;
    border-top: 1px solid rgba(var(--osf-brand-rgb, 23, 137, 173), 0.18) !important;
    box-shadow: var(--osf-header-shadow, 0 4px 16px rgba(15, 41, 53, 0.08)), 0 8px 24px rgba(15, 41, 53, 0.06) !important;
  }

  header .navbar-nav > .dropdown-full > .dropdown-menu .dropdown-body,
  header .navbar-nav > .dropdown-full > .dropdown-menu .subcategory-wrapper,
  .osf-shop-cc-theme header .navbar-nav > .dropdown-full > .dropdown-menu .dropdown-body,
  .osf-shop-cc-theme header .navbar-nav > .dropdown-full > .dropdown-menu .subcategory-wrapper {
    background: transparent !important;
    color: inherit !important;
  }

  header .navbar-nav > .dropdown-full > .dropdown-menu a,
  header .navbar-nav > .dropdown-full > .dropdown-menu .nav-link,
  header .navbar-nav > .dropdown-full > .dropdown-menu .submenu-headline-toplevel,
  header .navbar-nav > .dropdown-full > .dropdown-menu .categories-recursive-link,
  header .navbar-nav > .dropdown-full > .dropdown-menu strong,
  .osf-shop-cc-theme header .navbar-nav > .dropdown-full > .dropdown-menu a,
  .osf-shop-cc-theme header .navbar-nav > .dropdown-full > .dropdown-menu .nav-link,
  .osf-shop-cc-theme header .navbar-nav > .dropdown-full > .dropdown-menu .submenu-headline-toplevel,
  .osf-shop-cc-theme header .navbar-nav > .dropdown-full > .dropdown-menu strong {
    color: var(--osf-header-dark-bg, #1a3340) !important;
  }

  header .navbar-nav > .dropdown-full > .dropdown-menu a:hover,
  header .navbar-nav > .dropdown-full > .dropdown-menu a:focus,
  header .navbar-nav > .dropdown-full > .dropdown-menu .nav-link:hover,
  header .navbar-nav > .dropdown-full > .dropdown-menu .nav-link:focus,
  .osf-shop-cc-theme header .navbar-nav > .dropdown-full > .dropdown-menu a:hover,
  .osf-shop-cc-theme header .navbar-nav > .dropdown-full > .dropdown-menu .nav-link:hover {
    color: var(--osf-brand, #1789ad) !important;
  }

  header .navbar-nav > .dropdown-full > .dropdown-menu .submenu-headline-toplevel {
    border-bottom-color: var(--osf-border-subtle, rgba(23, 137, 173, 0.22)) !important;
  }

  /* Horizontal nav scroller must not clip full-width mega dropdown */
  #mainNavigation.nav-scrollbar:has(.navbar-nav > .dropdown.show),
  #mainNavigation.nav-scrollbar:has(.dropdown-menu.show) {
    overflow: visible;
  }

  #mainNavigation.nav-scrollbar:has(.navbar-nav > .dropdown.show) .nav-scrollbar-inner,
  #mainNavigation.nav-scrollbar:has(.dropdown-menu.show) .nav-scrollbar-inner {
    overflow-x: auto;
    overflow-y: visible;
  }

  .osf-header-scroll-mode:not(.osf-header-scroll--collapsed) .hide-navbar .osf-header-categories:has(.dropdown.show),
  .osf-header-scroll-mode:not(.osf-header-scroll--collapsed) .hide-navbar .osf-header-categories:has(.dropdown-menu.show) {
    max-height: none;
    overflow: visible;
  }

  /* Category nav: center link group (menu_center=center; scroll row lacks base .menu-center-center rule) */
  header .hide-navbar .osf-header-categories.menu-center-center > .navbar.navbar-expand-lg {
    justify-content: center;
  }

  header .hide-navbar .osf-header-categories.menu-center-center #mainNavigation {
    margin-right: 0;
  }

  header .hide-navbar .osf-header-categories.menu-center-center .nav-mobile-body {
    display: flex;
    justify-content: center;
    width: 100%;
  }

  header .hide-navbar .osf-header-categories.menu-center-center .nav-scrollbar-inner {
    margin-left: auto !important;
    margin-right: auto !important;
    justify-content: center;
    width: auto;
    max-width: 100%;
    flex: 0 1 auto;
  }

}

/* Mobile off-canvas category menu — legacy base uses $header-bg-color (often white) on #mainNavigation */
@media (max-width: 991.98px) {
  /*
   * OPC/portlets (e.g. Kalorienrechner .upcode-cc__header) use z-index 1020 — same as sticky header.
   * #mainNavigation lives inside header; raise shell while open so off-canvas paints above page content.
   */
  #osf-header-sticky-root:has(#mainNavigation.show),
  #jtl-nav-wrapper:has(#mainNavigation.show) {
    z-index: 1065 !important;
  }

  /*
   * Admin template vars (osf_template_admin_vars) set --osf-header-text to header-color (#1a1a1a).
   * Off-canvas uses dark panel — scope light tokens here; do not rely on var(--osf-header-text) fallback.
   */
  #mainNavigation.navbar-collapse {
    --osf-header-text: #e8f1f4;
    --osf-header-text-secondary: rgba(232, 241, 244, 0.88);
    background: var(--osf-header-dark-gradient);
    background-color: var(--osf-header-dark-bg, #1a3340);
    color: #e8f1f4;
    min-height: calc(var(--vh, 1vh) * 100);
    max-width: min(100vw, 20rem);
    box-shadow: 4px 0 28px rgba(0, 0, 0, 0.4);
    z-index: 1055;
    border-right: 1px solid var(--osf-header-dark-border, rgba(53, 215, 255, 0.25));
  }

  #mainNavigation.navbar-collapse .nav-mobile-header {
    background: transparent;
    background-color: transparent;
  }

  #mainNavigation.navbar-collapse .nav-mobile-body,
  #mainNavigation.navbar-collapse .nav-scrollbar-inner {
    background: var(--osf-header-dark-gradient);
    background-color: var(--osf-header-dark-bg, #1a3340);
  }

  #mainNavigation.navbar-collapse .nav-mobile-body {
    min-height: calc(var(--vh, 1vh) * 100 - 3.125rem);
    flex: 1 1 auto;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  #mainNavigation.navbar-collapse .nav-scrollbar-inner {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    justify-content: flex-start !important;
  }

  #mainNavigation.navbar-collapse .nav-mobile-header {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Drill-down: JS slides .navbar-nav; subpanels sit at left:100% — must not clip horizontally */
  #mainNavigation.navbar-collapse .nav-mobile-body,
  #mainNavigation.navbar-collapse .nav-scrollbar-inner {
    overflow-x: visible;
    overflow-y: auto;
  }

  #mainNavigation.navbar-collapse .navbar-nav {
    color: #e8f1f4;
  }

  #mainNavigation.navbar-collapse .navbar-nav {
    position: relative;
  }

  /*
   * Submenu panel: escape transformed .navbar-nav (legacy left:100% + translateX breaks paint/hit-test).
   * Fixed layer inside off-canvas; JS slide on .navbar-nav stays for root level only.
   */
  #mainNavigation.navbar-collapse.show .dropdown-menu.show {
    position: fixed !important;
    left: 0 !important;
    top: 3.125rem !important;
    width: min(100vw, 20rem) !important;
    max-width: min(100vw, 20rem) !important;
    height: calc(var(--vh, 1vh) * 100 - 3.125rem) !important;
    margin: 0 !important;
    transform: none !important;
    overflow-y: auto;
    background: var(--osf-header-dark-gradient) !important;
    background-color: var(--osf-header-dark-bg, #1a3340) !important;
    color: #e8f1f4 !important;
    z-index: 1060;
    -webkit-overflow-scrolling: touch;
  }

  /* transform on .navbar-nav re-parents position:fixed; reset slide when subpanel is open */
  #mainNavigation.navbar-collapse.show:has(.dropdown-menu.show) .navbar-nav {
    transform: none !important;
  }

  #mainNavigation.navbar-collapse.show:has(.dropdown-menu.show) .navbar-nav > .nav-item:not(.show),
  #mainNavigation.navbar-collapse.show:has(.dropdown-menu.show) .navbar-nav > .nav-item.show > .dropdown-toggle {
    display: none !important;
  }

  #mainNavigation.navbar-collapse.show:has(.dropdown-menu.show) {
    overflow-x: visible;
    overflow-y: hidden;
  }

  #mainNavigation.navbar-collapse.show {
    display: flex !important;
    flex-direction: column;
  }

  #mainNavigation.navbar-collapse.show .osf-manufacturer-mega__menu.show {
    position: fixed !important;
    left: 0 !important;
    top: 3.125rem !important;
    width: min(100vw, 20rem) !important;
    max-width: min(100vw, 20rem) !important;
    height: calc(var(--vh, 1vh) * 100 - 3.125rem) !important;
    margin: 0 !important;
    transform: none !important;
    overflow-y: auto;
    background: var(--osf-header-dark-gradient) !important;
    background-color: var(--osf-header-dark-bg, #1a3340) !important;
    color: #e8f1f4 !important;
    z-index: 1060;
  }

  #mainNavigation.navbar-collapse .osf-manufacturer-mega__menu.show .osf-manufacturer-mega,
  #mainNavigation.navbar-collapse .osf-manufacturer-mega__menu.show .osf-manufacturer-mega__abc {
    background: var(--osf-header-dark-bg, #1a3340);
    color: #e8f1f4;
  }

  #mainNavigation.navbar-collapse .osf-manufacturer-mega__menu.show .osf-manufacturer-mega__name,
  #mainNavigation.navbar-collapse .osf-manufacturer-mega__menu.show .osf-manufacturer-mega__item a,
  #mainNavigation.navbar-collapse .osf-manufacturer-mega__menu.show .osf-manufacturer-mega__all-link,
  #mainNavigation.navbar-collapse .osf-manufacturer-mega__menu.show .osf-manufacturer-mega__abc-btn,
  #mainNavigation.navbar-collapse .osf-manufacturer-mega__menu.show a {
    color: #e8f1f4 !important;
  }

  #mainNavigation.navbar-collapse .nav-mobile-header-name .nav-offcanvas-title,
  #mainNavigation.navbar-collapse .nav-offcanvas-title,
  #mainNavigation.navbar-collapse span.nav-offcanvas-title,
  #mainNavigation.navbar-collapse a.nav-offcanvas-title,
  .osf-shop-cc-theme #mainNavigation.navbar-collapse a.nav-offcanvas-title[data-menu-back],
  .osf-shop-cc-theme #mainNavigation.navbar-collapse .nav-mobile-header-name .nav-offcanvas-title {
    color: #e8f1f4 !important;
  }

  #mainNavigation.navbar-collapse a.nav-offcanvas-title[data-menu-back] {
    display: inline-flex !important;
    align-items: center;
    min-height: 2.75rem;
    min-width: 2.75rem;
    padding: 0.375rem 0;
    font-weight: 600;
    text-decoration: none;
  }

  #mainNavigation.navbar-collapse a.nav-offcanvas-title[data-menu-back] .fas,
  #mainNavigation.navbar-collapse a.nav-offcanvas-title[data-menu-back] .fa-chevron-left {
    color: #e8f1f4 !important;
  }

  #mainNavigation.navbar-collapse .nav-mobile-header-hr {
    border-color: var(--osf-header-dark-border, rgba(53, 215, 255, 0.25));
    opacity: 1;
  }

  #mainNavigation.navbar-collapse .nav-link,
  #mainNavigation.navbar-collapse .dropdown-toggle,
  #mainNavigation.navbar-collapse .dropdown-menu a,
  #mainNavigation.navbar-collapse .dropdown-menu .nav-link,
  #mainNavigation.navbar-collapse .dropdown-menu .categories-recursive-link,
  #mainNavigation.navbar-collapse .dropdown-menu .submenu-headline-toplevel,
  #mainNavigation.navbar-collapse .dropdown-menu .d-block,
  .osf-shop-cc-theme #mainNavigation.navbar-collapse .dropdown-menu a,
  .osf-shop-cc-theme #mainNavigation.navbar-collapse .dropdown-menu .nav-link,
  .osf-shop-cc-theme #mainNavigation.navbar-collapse .dropdown-menu .categories-recursive-link {
    color: #e8f1f4 !important;
    min-height: 2.75rem;
  }

  #mainNavigation.navbar-collapse .nav-link:hover,
  #mainNavigation.navbar-collapse .nav-link:focus,
  #mainNavigation.navbar-collapse .dropdown-toggle:hover,
  #mainNavigation.navbar-collapse .dropdown-toggle:focus,
  #mainNavigation.navbar-collapse .dropdown-menu a:hover,
  #mainNavigation.navbar-collapse .dropdown-menu a:focus,
  #mainNavigation.navbar-collapse .dropdown-menu .categories-recursive-link:hover {
    color: var(--osf-accent, #35d7ff) !important;
  }

  #mainNavigation.navbar-collapse .navbar-toggler {
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  #mainNavigation.navbar-collapse .dropdown-menu {
    background: var(--osf-header-dark-gradient);
    background-color: var(--osf-header-dark-bg, #1a3340);
    border-color: var(--osf-header-dark-border, rgba(53, 215, 255, 0.25));
    color: #e8f1f4;
  }

  #mainNavigation.navbar-collapse .dropdown-menu .dropdown-body,
  #mainNavigation.navbar-collapse .dropdown-menu .subcategory-wrapper {
    background-color: var(--osf-header-dark-bg, #1a3340);
    color: #e8f1f4;
  }

  /* Sticky header must stay under open panel + backdrop */
  #osf-header-sticky-root.osf-header-sticky-root {
    z-index: 1020;
  }

  .modal-backdrop.show {
    z-index: 1050;
  }
}

#footer {
  background-color: var(--osf-footer-bg);
  color: var(--osf-footer-text);
  padding-top: 3.5rem;
}

#footer:not(.osf-footer--inlead) {
  --osf-footer-bg: #1a3340;
  --osf-footer-text: #ffffff;
  --osf-footer-deep: #12272f;
  --osf-footer-muted: #ffffff;
}

#footer.osf-footer--inlead {
  --osf-footer-bg: var(--osf-footer-inlead-bg);
  --osf-footer-deep: var(--osf-footer-inlead-deep);
  --osf-footer-newsletter-bg: var(--osf-footer-inlead-deep);
  --osf-footer-text: #f2f2f2;
  --osf-footer-muted: rgba(242, 242, 242, 0.68);
}

#footer .osf-footer__container {
  max-width: none;
  padding-left: clamp(1rem, 3vw, 2.5rem);
  padding-right: clamp(1rem, 3vw, 2.5rem);
  overflow: visible;
}

#footer a:not(.btn),
#footer .productlist-filter-headline,
#footer .newsletter-footer-heading,
#footer .btn-outline-primary {
  color: var(--osf-footer-text);
}

#footer a:not(.btn):hover {
  color: var(--osf-primary);
}

#footer .card .card-title,
#footer .newsletter-footer-heading {
  color: #ffffff;
  font-weight: 700;
}

#footer .footnote-vat,
#footer .footnote-vat .small,
#footer .osf-footer-footnote,
#footer .osf-footer-footnote .small {
  color: var(--osf-footer-muted);
}

#footer .footnote-vat,
#footer .osf-footer-footnote {
  margin-top: var(--osf-footer-gap, 1.5rem);
  padding-top: 0;
  width: 100%;
}

#footer #footer-boxes .card,
#footer .box,
#footer .osf-footer-link-card,
#footer .osf-footer-col--links .card {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  outline: none;
}

#footer .osf-footer-link-card:hover,
#footer #footer-boxes .card:hover,
#footer .box:hover {
  box-shadow: none;
  outline: none;
}

/* Footer social — circular icon buttons (brand column + legacy .footer-social-media) */
#footer .osf-footer-social,
#footer .footer-social-media ul {
  gap: 0.625rem;
}

#footer .osf-footer-social li,
#footer .footer-social-media li {
  margin: 0;
}

#footer .osf-footer-social .btn,
#footer .footer-social-media .btn {
  --osf-footer-social-size: 2.5rem;
  width: var(--osf-footer-social-size);
  height: var(--osf-footer-social-size);
  min-width: var(--osf-footer-social-size);
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--osf-radius-pill);
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.08);
  color: var(--osf-footer-text);
  box-shadow: none;
  line-height: 1;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    transform 0.15s ease,
    box-shadow 0.2s ease;
}

#footer .osf-footer-social .btn .fa-fw,
#footer .footer-social-media .btn .fa-fw,
#footer .osf-footer-social .btn i,
#footer .footer-social-media .btn i {
  font-size: 1.05rem;
}

#footer .osf-footer-social .btn:hover,
#footer .osf-footer-social .btn:focus-visible,
#footer .footer-social-media .btn:hover,
#footer .footer-social-media .btn:focus-visible {
  color: #ffffff;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22);
}

#footer .osf-footer-social .btn:hover,
#footer .osf-footer-social .btn:focus-visible,
#footer .footer-social-media .btn:hover,
#footer .footer-social-media .btn:focus-visible {
  background: var(--osf-primary);
  border-color: var(--osf-primary);
}

#footer .osf-footer-social .btn:focus-visible,
#footer .footer-social-media .btn:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.85);
  outline-offset: 2px;
}

#footer .osf-footer-social .btn-facebook:hover,
#footer .osf-footer-social .btn-facebook:focus-visible,
#footer .footer-social-media .btn-facebook:hover,
#footer .footer-social-media .btn-facebook:focus-visible {
  background: #1877f2;
  border-color: #1877f2;
}

#footer .osf-footer-social .btn-instagram:hover,
#footer .osf-footer-social .btn-instagram:focus-visible,
#footer .footer-social-media .btn-instagram:hover,
#footer .footer-social-media .btn-instagram:focus-visible {
  background: linear-gradient(
    135deg,
    #f09433 0%,
    #e6683c 22%,
    #dc2743 48%,
    #cc2366 72%,
    #bc1888 100%
  );
  border-color: transparent;
}

#footer .osf-footer-social .btn-tiktok:hover,
#footer .osf-footer-social .btn-tiktok:focus-visible,
#footer .footer-social-media .btn-tiktok:hover,
#footer .footer-social-media .btn-tiktok:focus-visible {
  background: #010101;
  border-color: rgba(255, 255, 255, 0.35);
}

#footer .osf-footer-social .btn-youtube:hover,
#footer .osf-footer-social .btn-youtube:focus-visible,
#footer .footer-social-media .btn-youtube:hover,
#footer .footer-social-media .btn-youtube:focus-visible {
  background: #ff0000;
  border-color: #ff0000;
}

#footer .osf-footer-social .btn-linkedin:hover,
#footer .osf-footer-social .btn-linkedin:focus-visible,
#footer .footer-social-media .btn-linkedin:hover,
#footer .footer-social-media .btn-linkedin:focus-visible {
  background: #0a66c2;
  border-color: #0a66c2;
}

/* Footer — main grid (link columns, utilities, store) */
#footer .osf-footer-divider,
#footer hr.osf-footer-divider {
  display: none;
  margin: 0;
  padding: 0;
  border: 0;
  height: 0;
  overflow: hidden;
  opacity: 0;
}

#footer .osf-footer-main {
  --osf-footer-gap: 1.5rem;
  --osf-footer-column-gap: 1.5rem;
  --osf-footer-newsletter-gap: 2.5rem;
  --osf-footer-heading-row: 1.1875rem;
  --osf-footer-body-gap: 0.85rem;
  row-gap: var(--osf-footer-gap);
  align-items: start;
}

#footer.newsletter-active .osf-footer-main {
  margin-top: var(--osf-footer-newsletter-gap, 2.5rem);
}

/* Newsletter band vs. footer columns — all breakpoints (mobile + desktop) */
#footer.newsletter-active .osf-footer-newsletter.row,
#footer.newsletter-active .newsletter-footer.osf-footer-newsletter {
  background-color: var(--osf-footer-newsletter-bg);
  border: 1px solid var(--osf-footer-newsletter-border);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.osf-shop-cc-theme #footer.newsletter-active .osf-footer-newsletter {
  background: linear-gradient(
    165deg,
    rgba(var(--osf-brand-rgb, 23, 137, 173), 0.28) 0%,
    var(--osf-footer-newsletter-bg) 58%
  );
  border: 1px solid var(--osf-footer-newsletter-border);
}

#footer.newsletter-active .osf-footer-main {
  border-top: 1px solid var(--osf-footer-main-divider);
  padding-top: 0.25rem;
}

@media (min-width: 992px) {
  #footer .osf-footer-main[class*="--cols-"].row {
    display: grid;
    grid-template-columns: repeat(var(--osf-footer-cols, 5), minmax(0, 1fr));
    column-gap: var(--osf-footer-column-gap, 1.5rem);
    margin-left: 0;
    margin-right: 0;
    align-items: start;
  }

  #footer .osf-footer-main[class*="--cols-"].row > [class*="col"] {
    flex: none;
    width: 100%;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
    align-self: start;
  }

  #footer .osf-footer-column {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    height: auto !important;
    min-height: 0;
  }

  #footer .osf-footer-column__heading--static:not(.osf-footer-column__heading--brand) {
    flex: 0 0 auto;
    min-height: var(--osf-footer-heading-row);
  }

  #footer .osf-footer-column__heading--brand {
    flex: 0 0 auto;
    min-height: 0;
    padding: 0;
    margin: 0;
  }

  #footer .osf-footer-column__title {
    margin-bottom: var(--osf-footer-body-gap);
  }

  #footer .osf-footer-column__body {
    padding-top: 0;
    flex: 0 1 auto;
  }

  #footer.osf-footer--inlead .osf-footer-main--cols-5.row {
    grid-template-columns: 1.6fr 0.92fr 0.92fr 0.92fr 0.88fr;
  }

  /* 5 cols: brand column wider than link/store columns */
  #footer:not(.osf-footer--inlead) .osf-footer-main--cols-5.row {
    grid-template-columns: 1.55fr 0.95fr 0.95fr 0.95fr 0.95fr;
    column-gap: 1.25rem;
  }
}

#footer .osf-footer-column__title,
#footer .osf-footer-column__heading,
#footer .osf-footer-column__heading .osf-footer-column__title,
#footer :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6),
#footer .productlist-filter-headline,
#footer .osf-store-locator__title {
  color: #ffffff;
}

#footer .osf-footer-column__title {
  display: block;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: var(--osf-footer-heading-row, 1.1875rem);
  margin: 0 0 var(--osf-footer-body-gap, 0.85rem);
}

#footer .osf-footer-column__heading {
  text-decoration: none;
  padding: 0.65rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  margin-bottom: 0;
}

#footer a.osf-footer-column__heading:not(.btn):hover,
#footer button.osf-footer-column__heading--toggle:hover,
#footer button.osf-footer-column__heading--toggle:focus-visible {
  color: var(--osf-primary);
}

#footer button.osf-footer-column__heading--toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin: 0;
  padding: 0.65rem 0;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

#footer button.osf-footer-column__heading--toggle .osf-footer-column__title {
  margin-bottom: 0;
}

#footer button.osf-footer-column__heading--toggle::after {
  flex-shrink: 0;
  margin-left: 0.5rem;
}

@media (max-width: 991.98px) {
  #footer button.osf-footer-column__heading--toggle[aria-expanded="true"]::after {
    transform: rotate(180deg);
  }
}

#footer .osf-footer-column__heading--static {
  border-bottom: 0;
  padding: 0;
}

#footer .osf-footer-column__body {
  padding-top: 0.75rem;
}

#footer .osf-footer-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
}

#footer .osf-footer-brand__logo {
  max-height: 7rem;
  max-width: min(100%, 18rem);
  width: auto;
  height: auto;
  object-fit: contain;
}

#footer .osf-footer-col--brand .osf-footer-social .btn {
  --osf-footer-social-size: 3.125rem;
}

#footer .osf-footer-col--brand .osf-footer-social .btn .fa-fw,
#footer .osf-footer-col--brand .osf-footer-social .btn i {
  font-size: 1.2rem;
}

#footer .osf-footer-col--brand .osf-footer-social,
#footer .osf-footer-col--brand .osf-footer-brand__social {
  gap: 0.75rem;
}

#footer .osf-footer-column__heading--brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
}

#footer .osf-footer-column__heading--brand .osf-footer-brand {
  margin: 0;
  align-items: center;
  width: 100%;
}

#footer .osf-footer-column__heading--brand .osf-footer-brand__logo-link {
  margin-bottom: 0 !important;
  margin-inline: auto;
  display: block;
}

#footer .osf-footer-col--brand .osf-footer-column__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 0;
  width: 100%;
}

#footer .osf-footer-calorie-cc-wrap {
  margin: 0;
  padding: 0;
}

#footer .osf-footer-col--calorie_calculator .osf-footer-column__body,
#footer .osf-footer-col--calorie_calculator .upcode-cc--footer {
  margin-top: 0;
}

#footer .osf-footer-col--calorie_calculator .upcode-cc--footer,
#footer .osf-footer-calorie-cc.upcode-cc--footer {
  max-width: 20rem;
  width: 100%;
}

#footer .osf-footer-calorie-cc .upcode-cc__footer-cta {
  width: max-content;
  max-width: 100%;
}

#footer .osf-footer-col--calorie_calculator .upcode-cc__footer-lead {
  margin-top: 0;
  margin-bottom: var(--osf-footer-body-gap, 0.85rem);
  font-size: 0.95rem;
  line-height: var(--osf-footer-heading-row, 1.1875rem);
}

@media (max-width: 575.98px) {
  #footer .osf-footer-brand__logo {
    max-height: 5rem;
    max-width: min(100%, 14rem);
  }

  #footer .osf-footer-col--brand .osf-footer-social .btn {
    --osf-footer-social-size: 2.75rem;
  }
}

#footer .osf-footer-brand__social {
  display: flex;
  width: 100%;
  justify-content: center;
}

#footer .osf-footer-brand__social,
#footer .osf-footer-col--brand .osf-footer-social {
  justify-content: center;
  width: 100%;
  margin-top: 0.75rem;
}

#footer .osf-footer-payment-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.5rem;
  max-width: 100%;
}

#footer .osf-footer-payment-grid__item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 1.75rem;
  padding: 0.2rem 0.35rem;
  background: rgba(255, 255, 255, 0.92);
  border-radius: var(--osf-radius-sm, 4px);
}

#footer .osf-footer-payment-grid__img {
  max-height: 1.25rem;
  width: auto;
  max-width: 2.75rem;
  object-fit: contain;
}

#footer .osf-footer-payment-grid--bar {
  justify-content: center;
  gap: 0.45rem 0.6rem;
  padding: 0.5rem 0 0.25rem;
  width: 100%;
}

#footer .osf-footer-payment-grid--bar .osf-footer-payment-grid__item {
  min-height: 0;
  padding: 0;
  background: transparent;
  border-radius: 0;
}

#footer .osf-footer-payment-grid--bar .osf-footer-payment-grid__img {
  max-height: 1.35rem;
  max-width: 2.65rem;
}

#footer .osf-footer-prebottom {
  background-color: var(--osf-footer-deep);
  color: var(--osf-footer-muted);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  margin-top: 1.5rem;
  padding: 1rem clamp(1rem, 3vw, 2.5rem) 0.65rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
}

#footer .osf-footer-prebottom .osf-footer-bottom__legal {
  flex-wrap: wrap;
  justify-content: center;
  line-height: 1.5;
}

#footer .osf-footer-prebottom .osf-footer-bottom__legal-link {
  color: var(--osf-footer-text);
  font-size: 0.75rem;
  letter-spacing: 0.01em;
}

#footer .osf-footer-bottom__container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  padding-top: 0.65rem;
  padding-bottom: 1.25rem;
}

#footer .osf-footer-bottom__legal-link {
  color: #e2eef2;
  font-size: 0.8125rem;
  text-decoration: none;
}

#footer .osf-footer-bottom__legal-link:hover {
  color: var(--osf-footer-text);
  text-decoration: underline;
}

#footer .osf-footer-bottom__sep {
  color: var(--osf-footer-muted);
  opacity: 0.65;
}

#footer .osf-footer-col--store .osf-store-locator__card,
#footer .osf-footer-col--store_info .osf-store-locator__card,
#footer .osf-footer-col--store .osf-store-locator__map,
#footer .osf-footer-col--store_info .osf-store-locator__map {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

#footer .osf-footer-legal-box .productlist-filter-headline {
  display: none;
}

#footer .osf-footer-col--links .osf-footer-link-card {
  height: 100%;
}

#footer .osf-footer-col--links .card,
#footer .osf-footer-link-card .card {
  height: 100%;
  margin-bottom: 0;
}

#footer .osf-footer-link-list .nav-link {
  padding: 0.2rem 0;
  line-height: 1.45;
}

#footer .osf-footer-withdraw-link {
  display: inline;
  text-decoration: underline;
  font-weight: 600;
}

#footer .osf-footer-col--actions {
  margin-top: 0;
}

#footer .osf-footer-col--actions .osf-store-locator__card,
#footer .osf-footer-col--store_actions .osf-store-locator__card {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}

#footer .osf-footer-col--actions .osf-store-locator__body,
#footer .osf-footer-col--store_actions .osf-store-locator__body {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  max-width: 100%;
  grid-template-columns: none;
}

#footer .osf-footer-col--actions .osf-store-locator__aside,
#footer .osf-footer-col--store_actions .osf-store-locator__aside,
#footer .osf-store-locator__aside--footer-actions {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: flex-start;
  flex: none;
  margin-left: 0;
  margin-right: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

#footer .osf-store-locator--actions .osf-store-locator__aside--footer-actions {
  margin-top: 0;
}

#footer .osf-store-locator__footer-actions {
  align-items: flex-start;
  gap: 0.5rem;
}

#footer .osf-store-locator__aside--footer-actions .osf-store-locator__actions,
#footer .osf-store-locator--actions .osf-store-locator__aside .osf-store-locator__actions,
#footer .osf-store-locator__footer-actions .osf-store-locator__actions {
  flex: 0 0 auto;
}

/* Route & Kontakt — heading, then button + QR stacked below (left; CTA group centered internally) */
#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: var(--osf-footer-body-gap, 0.85rem);
  width: 100%;
}

#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column__heading--static,
#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column__heading--toggle {
  order: 1;
  flex: 0 0 auto;
  width: 100%;
  margin: 0;
}

#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column__body,
#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-route-stack {
  order: 2;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: flex-start;
  width: 100%;
  margin: 0;
  padding: 0;
}

/* Mobile footer accordion: layout display:flex must not override Bootstrap .collapse */
@media (max-width: 991.98px) {
  #footer .osf-footer-column__body.collapse:not(.show) {
    display: none !important;
  }

  #footer .osf-footer-column__body.collapse.show {
    display: block !important;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column__body.collapse.show,
  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-route-stack.collapse.show {
    display: flex;
  }

  #footer .osf-footer-col--brand .osf-footer-column__body.collapse.show {
    display: flex;
  }

  #footer .osf-footer-col--calorie_calculator .osf-footer-column__body.collapse.show {
    display: block !important;
  }
}

#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
}

#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__body,
#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__body--stacked,
#footer .osf-store-locator--actions.osf-store-locator--in-footer .osf-store-locator__body,
#footer .osf-store-locator--actions.osf-store-locator--in-footer .osf-store-locator__body--stacked {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  max-width: 100%;
  grid-template-columns: none;
}

#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__title {
  display: none;
  margin: 0;
  padding: 0;
  min-height: 0;
  height: 0;
  overflow: hidden;
}

#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column__heading--static,
#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column__title {
  width: 100%;
  margin-inline: 0;
  padding-inline: 0;
}

@media (max-width: 991.98px) {
  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column__heading--static,
  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column__title {
    text-align: left;
  }
}

#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__aside--footer-actions {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: flex-start;
  align-self: flex-start;
  flex: none;
  gap: var(--osf-footer-body-gap, 0.85rem);
  padding: 0;
  margin: 0;
  width: max-content;
  max-width: 100%;
  min-width: 0;
}

#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: max-content;
  max-width: 100%;
  margin: 0;
  padding: 0;
  flex: 0 0 auto;
  min-width: 0;
}

#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__route-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  margin-inline: 0;
  margin-left: 0;
  align-self: flex-start;
  padding: 0.5rem 1rem;
  width: max-content;
  max-width: 100%;
  transform: none;
  background-image: linear-gradient(90deg, var(--osf-brand, #1789ad) 0%, var(--osf-accent, #35d7ff) 100%);
  box-shadow: 0 3px 12px rgba(var(--osf-brand-rgb, 23, 137, 173), 0.35);
}

#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__route-btn:hover,
#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__route-btn:focus,
#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__route-btn:focus-visible,
#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__route-btn:active {
  transform: none;
  background-image: linear-gradient(90deg, var(--osf-accent, #35d7ff) 0%, var(--osf-brand, #1789ad) 100%);
}

#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__route-btn .fa-route {
  display: inline-block;
  transform: none;
  line-height: 1;
  vertical-align: middle;
}

#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__qr--compact {
  margin-top: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: max-content;
  max-width: 100%;
}

#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__qr-link,
#footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__qr-image {
  margin-inline: 0;
  margin-left: 0;
}

/* Route & Kontakt — desktop: centered stack inside column; column stays in footer grid */
@media (min-width: 992px) {
  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column {
    align-items: stretch;
    width: 100%;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column__heading--static,
  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column__heading--toggle {
    justify-content: center;
    width: 100%;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column__title {
    display: block;
    width: 100%;
    margin-bottom: var(--osf-footer-body-gap, 0.85rem);
    text-align: center;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column {
    gap: normal;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column__body,
  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-route-stack {
    width: 100%;
    align-items: center;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__body,
  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__body--stacked,
  #footer .osf-store-locator--actions.osf-store-locator--in-footer .osf-store-locator__body,
  #footer .osf-store-locator--actions.osf-store-locator--in-footer .osf-store-locator__body--stacked {
    align-items: center !important;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__aside,
  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__aside--footer-actions,
  #footer .osf-store-locator--actions.osf-store-locator--in-footer .osf-store-locator__aside--footer-actions {
    align-items: center;
    align-self: center !important;
    margin-inline: auto !important;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__actions {
    align-items: center;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__route-btn {
    align-self: center;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-store-locator__qr--compact {
    align-items: center;
  }

  #footer .osf-footer-column--route-center > .osf-footer-column__heading--static {
    display: flex;
    justify-content: center;
    text-align: center;
  }

  #footer .osf-footer-column--route-center .osf-footer-column__title {
    display: inline-block;
    width: auto;
    max-width: 100%;
    text-align: center;
  }

  #footer .osf-footer-column--route-center > .osf-footer-column__body,
  #footer .osf-footer-column--route-center .osf-footer-route-stack {
    align-items: center;
  }

  #footer .osf-footer-column--route-center .osf-store-locator__aside--footer-actions {
    align-self: center;
    margin-inline: auto;
  }
}

@media (max-width: 991.98px) {
  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column--route-center {
    align-items: stretch;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column--route-center .osf-footer-column__heading--toggle {
    justify-content: space-between;
    text-align: left;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-column--route-center .osf-footer-column__title {
    text-align: left;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-route-stack {
    align-items: flex-start;
  }
}

#footer .osf-store-locator__qr--compact {
  margin-top: 0.5rem;
}

#footer .osf-store-locator__qr--compact .osf-store-locator__qr-hint {
  display: none;
}

#footer .osf-footer-col--actions .osf-footer-social,
#footer .osf-footer-col--store_actions .osf-footer-social {
  margin-top: 1.25rem;
}

#footer .osf-footer-social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.625rem;
  justify-content: flex-start;
}

#footer .osf-footer-newsletter {
  row-gap: 1.25rem;
  border-radius: var(--osf-footer-newsletter-radius, 1.25rem);
  overflow: hidden;
  background-clip: padding-box;
  -webkit-background-clip: padding-box;
  padding: clamp(1.25rem, 2.5vw, 2rem) clamp(1rem, 3vw, 2.5rem);
}

#footer .osf-footer-newsletter__form .newsletter-email-wrapper {
  margin-bottom: 0;
}

#footer .osf-footer-newsletter .newsletter-email-wrapper .input-group {
  border-radius: var(--osf-radius-pill);
  overflow: hidden;
}

/* Newsletter input-group: pill outer edges (email left, submit right) */
#footer .osf-footer-newsletter .newsletter-email-wrapper .input-group > #newsletter_email,
#footer .osf-footer-newsletter .newsletter-email-wrapper .input-group > .form-control:first-child,
#footer .osf-footer-newsletter .newsletter-email-wrapper .input-group .form-control#newsletter_email {
  border-radius: var(--osf-radius-btn-pill, 9999px) 0 0 var(--osf-radius-btn-pill, 9999px) !important;
  border-top-left-radius: var(--osf-radius-btn-pill, 9999px) !important;
  border-bottom-left-radius: var(--osf-radius-btn-pill, 9999px) !important;
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  min-height: 2.75rem;
}

#footer .osf-footer-newsletter .newsletter-email-wrapper .input-group-append .btn,
#footer .osf-footer-newsletter #newsletter_email ~ .input-group-append .btn {
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0 var(--osf-radius-btn-pill, 9999px) var(--osf-radius-btn-pill, 9999px) 0 !important;
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  border-top-right-radius: var(--osf-radius-btn-pill, 9999px) !important;
  border-bottom-right-radius: var(--osf-radius-btn-pill, 9999px) !important;
}

#copyright,
#copyright.osf-footer-bottom {
  background-color: var(--osf-footer-deep);
  color: var(--osf-footer-muted);
  margin-top: 0;
}

#copyright a {
  color: var(--osf-footer-text);
}

/* --------------------------------------------------------------------------
   Footer — Store Locator (address, optional map embed, route, QR)
   -------------------------------------------------------------------------- */
#footer .osf-footer-col--store,
#footer .osf-footer-col--store_info,
#footer .osf-footer-col--store_actions {
  margin-top: 0;
}

#footer .osf-footer-col--store .osf-store-locator__card,
#footer .osf-footer-col--store_info .osf-store-locator__card,
#footer .osf-footer-col--store_actions .osf-store-locator__card,
#footer .osf-store-locator--in-footer .osf-store-locator__card {
  height: auto;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  outline: none;
  padding: 0;
  margin: 0;
}

/* External column title replaces in-card store locator heading */
#footer .osf-footer-column:has(.osf-footer-column__heading) .osf-store-locator__title {
  display: none;
}

#footer .osf-store-locator--in-footer {
  margin: 0;
}

#footer .osf-footer-col--store .osf-store-locator__body,
#footer .osf-footer-col--store_info .osf-store-locator__body,
#footer .osf-store-locator--info .osf-store-locator__body {
  grid-template-columns: 1fr;
}

#footer .osf-footer-col--store_actions .osf-store-locator__body,
#footer .osf-store-locator--actions .osf-store-locator__body {
  grid-template-columns: 1fr;
}

.osf-store-locator {
  margin: 0;
}

.osf-store-locator__card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-shadow-card);
  padding: 1.25rem 1.25rem 1.35rem;
}

.osf-store-locator__title,
#footer .osf-store-locator__title {
  color: #ffffff;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-bottom: 1rem;
}

#footer .osf-store-locator--in-footer .osf-store-locator__title {
  margin-bottom: 0;
}

.osf-store-locator__body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: start;
}

.osf-store-locator__address {
  font-style: normal;
  color: var(--osf-footer-text);
  line-height: 1.55;
}

.osf-store-locator__service {
  color: var(--osf-footer-muted);
}

.osf-store-locator__hours-label,
.osf-store-locator__qr-label {
  color: var(--osf-footer-muted);
  letter-spacing: 0.06em;
}

.osf-store-locator__hours-details {
  border: 0;
  padding: 0;
  margin: 0;
}

.osf-store-locator__hours-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  cursor: pointer;
  list-style: none;
  color: var(--osf-footer-text);
  padding: 0.15rem 0;
}

.osf-store-locator__hours-summary::-webkit-details-marker {
  display: none;
}

.osf-store-locator__hours-summary::after {
  content: "";
  flex: 0 0 auto;
  width: 0.45rem;
  height: 0.45rem;
  margin-left: auto;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.75;
  transition: transform 0.15s ease;
}

.osf-store-locator__hours-details[open] > .osf-store-locator__hours-summary::after {
  transform: rotate(-135deg);
  margin-top: 0.2rem;
}

.osf-store-locator__hours-summary .osf-store-locator__hours-label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  margin: 0;
}

.osf-store-locator__hours-compact {
  font-size: 0.875rem;
  color: var(--osf-footer-text);
  font-weight: 400;
  text-transform: none;
  letter-spacing: normal;
}

.osf-store-locator__hours-panel {
  padding-top: 0.5rem;
}

.osf-store-locator__hours-text {
  color: var(--osf-footer-text);
  line-height: 1.5;
}

.osf-store-locator__hours-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
}

.osf-store-locator__hours-day {
  flex: 0 0 2.25rem;
  font-weight: 600;
}

.osf-store-locator__aside {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1.25rem;
}

.osf-store-locator__actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1 1 12rem;
  min-width: 0;
}

.osf-store-locator__qr {
  flex: 0 0 auto;
}

.osf-store-locator__qr-image {
  display: block;
  width: 120px;
  height: 120px;
  border-radius: var(--osf-radius-sm);
  background: #ffffff;
  padding: 0.35rem;
  box-shadow: var(--osf-shadow-sm);
}

.osf-store-locator__qr-hint {
  color: var(--osf-footer-muted);
  max-width: 14rem;
}

.osf-store-locator__map {
  position: relative;
  min-height: 12rem;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--osf-radius-sm);
  overflow: hidden;
}

.osf-store-locator__map iframe.needs-consent:not([src]) {
  visibility: hidden;
}

.osf-store-locator__map-placeholder,
.osf-store-locator__map-consent,
.osf-store-locator__map-load-btn {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem;
  margin: 0;
  text-align: center;
  color: var(--osf-footer-text);
  background: rgba(0, 0, 0, 0.35);
  border: 0;
  z-index: 1;
}

.osf-store-locator__map-consent {
  text-decoration: none;
}

.osf-store-locator__map-consent:hover {
  color: #ffffff;
  text-decoration: none;
}

.osf-store-locator__map-consent-hint,
.osf-store-locator__map-placeholder-text {
  color: var(--osf-footer-muted);
  max-width: 18rem;
}

.osf-store-locator__map-attribution {
  position: relative;
  z-index: 2;
  color: var(--osf-footer-muted);
}

.osf-store-locator__map-attribution a {
  color: var(--osf-footer-text);
}

@media (min-width: 768px) {
  .osf-store-locator__body {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1.5rem 2rem;
  }

  /* store_info only — keep address/hours block layout (not actions flex stack) */
  #footer .osf-footer-col--store_info .osf-store-locator__body,
  #footer .osf-store-locator--info.osf-store-locator--in-footer .osf-store-locator__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    width: 100%;
  }

  #footer .osf-footer-col--store_info .osf-store-locator__info {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  #footer .osf-footer-col--store_info .osf-store-locator__hours-summary {
    justify-content: flex-start;
  }

  #footer .osf-footer-col--store_info .osf-store-locator__hours-summary::after {
    margin-left: 0.35rem;
  }


  /* store_actions: desktop centering is in @media (min-width: 992px) block above — do not flex-start here */

  #footer .osf-store-locator--empty .osf-store-locator__empty-hint {
    color: var(--osf-footer-muted, rgba(255, 255, 255, 0.65));
    line-height: 1.45;
  }

  #footer .osf-footer-col--actions .osf-footer-social {
    justify-content: flex-end;
  }

  #footer :is(.osf-footer-col--store_actions, .osf-footer-col--actions) .osf-footer-social {
    justify-content: flex-start;
  }
}


@media (max-width: 575.98px) {
  #footer .osf-footer-main {
    --osf-footer-gap: 1.25rem;
  }

  .osf-store-locator__aside {
    flex-direction: column;
  }

  .osf-store-locator__qr-hint {
    max-width: none;
  }
}

@media (max-width: 991.98px) {
  .osf-store-locator__card {
    padding: 1rem;
  }

  .osf-store-locator__actions,
  .osf-store-locator__aside {
    width: 100%;
  }

  .osf-store-locator__actions .btn {
    width: 100%;
  }

  #footer .osf-footer-social {
    margin-top: 0.75rem;
  }

  #footer #footer-boxes .row > [class*="col-"],
  #footer .osf-footer-col--links {
    margin-bottom: 0;
  }

  header {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  #footer {
    padding-top: 2.5rem;
  }

  #footer #footer-boxes .row > [class*="col-"] {
    margin-bottom: 1.5rem;
  }

  #copyright > div {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
}

/* [AI_EDIT_START] — Product listing (PLP) modernization */

/* --------------------------------------------------------------------------
   PDP — buybox surface (aligned with PLP card elevation)
   -------------------------------------------------------------------------- */
.osf-pdp-buybox {
  background: var(--osf-surface-elevated);
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-shadow-card);
  padding: 1rem 1.15rem;
}

@media (max-width: 575.98px) {
  .osf-pdp-buybox {
    padding: 0.85rem 0.9rem;
  }
}

/* --------------------------------------------------------------------------
   PDP / bulk-price hooks (preserve when extending product detail styles)
   -------------------------------------------------------------------------- */
.osf-pdp-price,
.osf-pdp-price-note {
  /* Hooks for future PDP styling */
}

/* PDP — two-line price block (main + meta) */
.osf-pdp-price__main {
  margin-bottom: 0.15rem;
  line-height: 1.15;
}

.osf-pdp-price__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.15rem 0.35rem;
  margin-top: 0.2rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: #6c757d;
}

.osf-pdp-price__meta-base,
.osf-pdp-price__meta-tax,
.osf-pdp-price__meta .base-price,
.osf-pdp-price__meta .vat_info {
  display: inline;
}

.osf-pdp-price__meta-sep {
  color: inherit;
  opacity: 0.75;
  white-space: pre;
}

.osf-pdp-price__meta a.shipment {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.osf-pdp-price__meta a.shipment:hover {
  color: var(--bs-body-color, #212529);
}

/* --------------------------------------------------------------------------
   PDP — buy row: qty + ATC grouped on the right
   -------------------------------------------------------------------------- */
.osf-pdp-buybox #add-to-cart .osf-pdp-buy-row.basket-form-inline {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 0.5rem;
  text-align: right;
  margin-left: 0;
  margin-right: 0;
}

.osf-pdp-buybox #add-to-cart .osf-pdp-buy-row.basket-form-inline > [class*="col"] {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  margin-bottom: 0;
}

.osf-pdp-buybox #add-to-cart .osf-pdp-buy-row.basket-form-inline .btn-block {
  width: auto;
  min-width: min(100%, 12rem);
  white-space: nowrap;
}

/* --------------------------------------------------------------------------
   PDP — quantity selector (compact, rounded; aligned with ATC button)
   -------------------------------------------------------------------------- */
.osf-pdp-buybox #add-to-cart #quantity-grp.form-counter {
  --osf-pdp-qty-height: 2.5rem;
  border: 0;
  border-radius: var(--osf-radius-btn);
  max-width: 10rem;
  max-height: var(--osf-pdp-qty-height);
  overflow: hidden;
  margin-left: 0;
  margin-right: 0;
}

.osf-pdp-buybox #add-to-cart #quantity-grp.form-counter .form-control {
  height: calc(var(--osf-pdp-qty-height) - 2px);
  max-height: calc(var(--osf-pdp-qty-height) - 2px);
  font-size: 0.9375rem;
  padding: 0.2rem 0.35rem;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.osf-pdp-buybox #add-to-cart #quantity-grp .btn,
.osf-pdp-buybox #add-to-cart #quantity-grp .input-group-text {
  height: calc(var(--osf-pdp-qty-height) - 2px);
  max-height: calc(var(--osf-pdp-qty-height) - 2px);
  padding: 0 0.65rem;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.osf-pdp-buybox #add-to-cart #quantity-grp .btn:focus,
.osf-pdp-buybox #add-to-cart #quantity-grp .form-control:focus {
  box-shadow: none;
}

.osf-pdp-buybox #add-to-cart #quantity-grp .input-group-prepend > .btn:first-child {
  border-top-left-radius: var(--osf-radius-btn);
  border-bottom-left-radius: var(--osf-radius-btn);
}

.osf-pdp-buybox #add-to-cart #quantity-grp .input-group-append > .btn:last-child {
  border-top-right-radius: var(--osf-radius-btn);
  border-bottom-right-radius: var(--osf-radius-btn);
}

.osf-pdp-buybox #add-to-cart #quantity-grp .input-group-append > .input-group-text + .btn {
  border-top-right-radius: var(--osf-radius-btn);
  border-bottom-right-radius: var(--osf-radius-btn);
}

/* OSF quantity counters — no outer frame / segment dividers (PDP, PLP, sticky) */
:is(
  .osf-pdp-buybox #add-to-cart #quantity-grp.form-counter,
  .osf-sticky-atc__qty-grp.form-counter,
  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions__qty .form-counter,
  .osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty .form-counter
) {
  border: 0 !important;
  box-shadow: none;
}

:is(
  .osf-pdp-buybox #add-to-cart #quantity-grp.form-counter,
  .osf-sticky-atc__qty-grp.form-counter,
  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions__qty .form-counter,
  .osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty .form-counter
) :is(.form-control, .btn, .input-group-text) {
  border: 0 !important;
  border-left-width: 0 !important;
  border-right-width: 0 !important;
  box-shadow: none !important;
}

:is(
  .osf-pdp-buybox #add-to-cart #quantity-grp.form-counter,
  .osf-sticky-atc__qty-grp.form-counter,
  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions__qty .form-counter,
  .osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty .form-counter
) :is(.form-control, .btn):focus {
  box-shadow: none !important;
}

/* --------------------------------------------------------------------------
   PDP — availability + delivery time (single line)
   -------------------------------------------------------------------------- */
.osf-pdp-availability-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}

.osf-pdp-availability-inline__sep {
  color: inherit;
  opacity: 0.75;
  white-space: pre;
}

.osf-pdp-availability-inline__delivery,
.osf-pdp-availability-inline .estimated-delivery {
  display: inline;
}

.osf-pdp-availability-inline .estimated-delivery-info {
  text-decoration: underline;
  text-underline-offset: 0.12em;
}


/* --------------------------------------------------------------------------
   PDP — Portionen-Kacheln (einzelne Karten)
   -------------------------------------------------------------------------- */
.osf-portion-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 1rem 0 1.25rem;
}

.osf-portion-stats__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 4.5rem;
  padding: 1rem 1.15rem;
  min-width: 0;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 14px;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.06),
    0 4px 14px rgba(15, 23, 42, 0.08);
}

.osf-portion-stats__value {
  display: block;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.2;
  color: #212121;
}

.osf-portion-stats__label {
  margin-top: 0.25rem;
  font-size: 0.8rem;
  color: rgba(0, 0, 0, 0.55);
}

@media (max-width: 575px) {
  .osf-portion-stats {
    gap: 0.5rem;
  }

  .osf-portion-stats__item {
    min-height: 0;
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
  }

  .osf-portion-stats__value {
    font-size: 1rem;
  }

  .osf-portion-stats__label {
    font-size: 0.7rem;
  }
}

/* --------------------------------------------------------------------------
   PDP — compact buy column (portion tiles, price box, bulk, qty)
   -------------------------------------------------------------------------- */
.osf-pdp .osf-portion-stats {
  --osf-pdp-portion-gap: 0.55rem;
  gap: var(--osf-pdp-portion-gap);
  margin: 0.65rem 0 0.85rem;
}

.osf-pdp .osf-portion-stats__item {
  min-height: 3.35rem;
  padding: 0.65rem 0.75rem;
  border-radius: 12px;
}

.osf-pdp .osf-portion-stats__value {
  font-size: 1rem;
}

.osf-pdp .osf-portion-stats__label {
  margin-top: 0.15rem;
  font-size: 0.72rem;
}

.osf-pdp .osf-pdp-buybox {
  padding: 0.8rem 0.95rem;
}

.osf-pdp .osf-pdp-price__main .price.h1,
.osf-pdp .osf-pdp-price__main .price {
  font-size: clamp(1.35rem, 2.5vw, 1.65rem);
}

.osf-pdp .osf-pdp-price__meta {
  font-size: 0.8125rem;
  margin-top: 0.1rem;
}

.osf-pdp .osf-bulk-prices {
  margin-top: 0.75rem;
}

.osf-pdp .osf-bulk-prices__header {
  margin-bottom: 0.55rem;
}

.osf-pdp .osf-bulk-prices__title {
  font-size: 0.95rem;
}

.osf-pdp .osf-bulk-prices__grid {
  gap: 0.55rem;
}

.osf-pdp .osf-bulk-prices__card {
  margin-top: 0.5rem;
  padding: 0.95rem 0.5rem 0.6rem;
}

.osf-pdp .osf-bulk-prices__badge {
  font-size: 0.65rem;
  padding: 0.15rem 0.45rem;
}

.osf-pdp .osf-bulk-prices__price {
  font-size: 0.875rem;
}

.osf-pdp .osf-bulk-prices__line--base {
  font-size: 0.6rem;
}

.osf-pdp .osf-pdp-buybox #add-to-cart #quantity-grp.form-counter {
  --osf-pdp-qty-height: 2.35rem;
}

.osf-pdp .stock-information {
  margin-top: 0.35rem;
}

@media (max-width: 575.98px) {
  .osf-pdp .osf-portion-stats__item {
    padding: 0.55rem 0.6rem;
    min-height: 0;
  }

  .osf-pdp .osf-portion-stats__value {
    font-size: 0.92rem;
  }

  .osf-pdp .osf-pdp-buybox {
    padding: 0.7rem 0.8rem;
  }
}

/* --------------------------------------------------------------------------
   PDP — Merkmal highlights (Trainingsziel / Ernährungsform)
   -------------------------------------------------------------------------- */
.osf-pdp-merkmal-highlights {
  --osf-pdp-merkmal-gap: 0.5rem;
  --osf-pdp-merkmal-icon-size: 1.05rem;
  --osf-pdp-merkmal-label-size: 0.8125rem;
  --osf-pdp-merkmal-muted: #94a3b8;
  --osf-pdp-merkmal-ink: var(--osf-primary-deeper, #0f4c5c);
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: var(--osf-pdp-merkmal-gap);
}

.osf-pdp-merkmal-highlights--training {
  margin: 0.65rem 0 0.5rem;
}

.osf-pdp-merkmal-highlights--nutrition {
  --osf-pdp-nutrition-silver-top: #f6f8fa;
  --osf-pdp-nutrition-silver-mid: #c5d0d6;
  --osf-pdp-nutrition-shine: rgba(255, 255, 255, 0.4);
  --osf-pdp-nutrition-ring-shadow:
    0 3px 14px rgba(15, 76, 92, 0.12),
    0 1px 4px rgba(15, 76, 92, 0.07);
  --osf-pdp-nutrition-ring-inset:
    inset 0 1px 2px rgba(255, 255, 255, 0.72),
    inset 0 -2px 5px rgba(15, 76, 92, 0.07);
  --osf-nutrition-vegan: color-mix(
    in srgb,
    var(--success, #15803d) 52%,
    color-mix(in srgb, var(--osf-pdp-nutrition-silver-mid) 38%, var(--osf-brand, #1789ad))
  );
  --osf-nutrition-lactose: color-mix(in srgb, #1789ad 82%, var(--osf-pdp-nutrition-silver-mid));
  --osf-nutrition-gluten: color-mix(
    in srgb,
    #b8860b 62%,
    color-mix(in srgb, #d4c9a8 48%, var(--osf-pdp-nutrition-silver-mid))
  );
  --osf-nutrition-vegetarian: color-mix(in srgb, var(--success, #22c55e) 28%, var(--osf-brand, #1789ad));
  margin: 0;
  gap: 1.5rem;
  padding: 1rem 0.25rem 0.35rem;
  border-top: 1px solid var(--osf-border-subtle, rgba(15, 76, 92, 0.12));
  justify-content: center;
  align-items: flex-start;
  flex-wrap: wrap;
}

.osf-pdp-merkmal-highlights__item {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}

.osf-pdp-merkmal-highlights--training .osf-pdp-merkmal-highlights__item {
  flex: 1 1 0;
  min-width: min(100%, 7.5rem);
  padding: 0.55rem 0.65rem;
  background: #fff;
  border: 1px solid rgba(15, 76, 92, 0.1);
  border-radius: 10px;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.05),
    0 3px 10px rgba(15, 23, 42, 0.06);
}

.osf-pdp-merkmal-highlights__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: var(--osf-pdp-merkmal-icon-size);
  line-height: 1;
  color: var(--osf-pdp-merkmal-ink);
}

.osf-pdp-merkmal-highlights__label {
  font-size: var(--osf-pdp-merkmal-label-size);
  font-weight: 600;
  line-height: 1.25;
  color: var(--osf-pdp-merkmal-ink);
}

/* Ernährungsform — premium circle badge (gradient ring + shine + metallic check) */
.osf-pdp-nutrition-badge {
  --osf-nutrition-badge-color: var(--osf-brand, #1789ad);
  --osf-nutrition-badge-size: 4.5rem;
  --osf-nutrition-badge-ring: 3px;
  --osf-nutrition-badge-icon: 1.65rem;
  --osf-nutrition-badge-check: 1.28rem;
  --osf-pdp-nutrition-ring-top: var(--osf-pdp-nutrition-silver-top, #f6f8fa);
  --osf-pdp-nutrition-ring-mid: color-mix(
    in srgb,
    var(--osf-nutrition-badge-color) 22%,
    var(--osf-pdp-nutrition-silver-mid, #c5d0d6)
  );
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
  flex: 0 0 auto;
  min-width: 4.75rem;
  touch-action: manipulation;
  transition: transform 0.22s ease;
}

.osf-pdp-nutrition-badge--vegan {
  --osf-nutrition-badge-color: var(--osf-nutrition-vegan);
  --osf-pdp-nutrition-ring-top: color-mix(in srgb, #f4faf6 70%, var(--osf-pdp-nutrition-silver-top, #f6f8fa));
}

.osf-pdp-nutrition-badge--laktosefrei {
  --osf-nutrition-badge-color: var(--osf-nutrition-lactose);
}

.osf-pdp-nutrition-badge--glutenfrei {
  --osf-nutrition-badge-color: var(--osf-nutrition-gluten);
  --osf-pdp-nutrition-ring-top: color-mix(in srgb, #faf6ee 65%, var(--osf-pdp-nutrition-silver-top, #f6f8fa));
  --osf-pdp-nutrition-ring-mid: color-mix(
    in srgb,
    var(--osf-nutrition-badge-color) 28%,
    #e8e2d4
  );
}

.osf-pdp-nutrition-badge--vegetarisch {
  --osf-nutrition-badge-color: var(--osf-nutrition-vegetarian);
}

.osf-pdp-nutrition-badge__visual {
  position: relative;
  width: var(--osf-nutrition-badge-size);
  height: var(--osf-nutrition-badge-size);
  filter: drop-shadow(0 2px 6px rgba(15, 76, 92, 0.08));
  transition: filter 0.22s ease, transform 0.22s ease;
}

.osf-pdp-nutrition-badge__ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: none;
  background: linear-gradient(
    165deg,
    var(--osf-pdp-nutrition-ring-top) 0%,
    var(--osf-pdp-nutrition-ring-mid) 42%,
    var(--osf-nutrition-badge-color) 100%
  );
  box-shadow: var(--osf-pdp-nutrition-ring-shadow, 0 3px 14px rgba(15, 76, 92, 0.12)),
    var(--osf-pdp-nutrition-ring-inset, inset 0 1px 2px rgba(255, 255, 255, 0.72));
  box-sizing: border-box;
}

.osf-pdp-nutrition-badge__ring::before {
  content: '';
  position: absolute;
  inset: var(--osf-nutrition-badge-ring);
  border-radius: 50%;
  background: var(--osf-surface-elevated, #fff);
  box-shadow: inset 0 1px 3px rgba(15, 76, 92, 0.05);
}

.osf-pdp-nutrition-badge__ring::after {
  content: '';
  position: absolute;
  inset: var(--osf-nutrition-badge-ring);
  border-radius: 50%;
  background: linear-gradient(
    135deg,
    transparent 36%,
    var(--osf-pdp-nutrition-shine, rgba(255, 255, 255, 0.4)) 50%,
    transparent 64%
  );
  pointer-events: none;
}

.osf-pdp-nutrition-badge__icon {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--osf-nutrition-badge-icon);
  line-height: 1;
  color: var(--osf-nutrition-badge-color);
  filter: drop-shadow(0 1px 2px rgba(15, 76, 92, 0.18));
}

.osf-pdp-nutrition-badge__icon--struck::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 72%;
  height: 2.5px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--osf-nutrition-badge-color) 18%,
    var(--osf-nutrition-badge-color) 82%,
    transparent 100%
  );
  border-radius: 1px;
  opacity: 0.92;
  transform: translate(-50%, -50%) rotate(-42deg);
  pointer-events: none;
}

.osf-pdp-nutrition-badge__check {
  position: absolute;
  right: -0.08rem;
  bottom: 0.12rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--osf-nutrition-badge-check);
  height: var(--osf-nutrition-badge-check);
  border-radius: 50%;
  border: 1.5px solid color-mix(in srgb, #fff 55%, var(--osf-pdp-nutrition-silver-mid, #c5d0d6));
  background: linear-gradient(
    145deg,
    #fafcfd 0%,
    var(--osf-pdp-nutrition-silver-mid, #c5d0d6) 38%,
    color-mix(in srgb, var(--osf-nutrition-badge-color) 35%, #a8b4ba) 100%
  );
  color: var(--osf-nutrition-badge-color);
  font-size: 0.52rem;
  line-height: 1;
  box-shadow:
    0 0 0 2px var(--osf-surface-elevated, #fff),
    0 2px 6px rgba(15, 76, 92, 0.14),
    inset 0 1px 1px rgba(255, 255, 255, 0.85);
}

.osf-pdp-nutrition-badge__check i {
  filter: drop-shadow(0 0.5px 0 rgba(255, 255, 255, 0.5));
}

.osf-pdp-nutrition-badge__label {
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  letter-spacing: 0.01em;
  color: var(--osf-header-dark-bg, #1a3340);
}

@media (hover: hover) and (pointer: fine) {
  .osf-pdp-nutrition-badge:hover {
    transform: translateY(-2px);
  }

  .osf-pdp-nutrition-badge:hover .osf-pdp-nutrition-badge__visual {
    filter: drop-shadow(0 4px 12px rgba(15, 76, 92, 0.14));
  }
}

.osf-pdp .product-gallery .osf-pdp-merkmal-highlights--nutrition,
.osf-pdp .osf-pdp-nutrition-col .osf-pdp-merkmal-highlights--nutrition {
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}

@media (max-width: 575.98px) {
  .osf-pdp-merkmal-highlights--training .osf-pdp-merkmal-highlights__item {
    flex: 1 1 calc(50% - var(--osf-pdp-merkmal-gap));
    min-width: calc(50% - var(--osf-pdp-merkmal-gap));
  }
}

/* --------------------------------------------------------------------------
   PLP — portion stats & bulk tiers (list + gallery cards)
   -------------------------------------------------------------------------- */
.osf-plp-card-extras {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin: 0.5rem 0 0.65rem;
  min-width: 0;
}

.osf-plp-portion-stats {
  margin: 0;
  gap: 0.45rem;
}

.osf-plp-portion-stats .osf-portion-stats__item {
  min-height: 3.85rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
  padding: 0.55rem 0.4rem;
  border-radius: var(--osf-radius-md, 0.75rem);
}

.osf-portion-stats.osf-plp-portion-stats {
  align-items: stretch;
}

.osf-plp-portion-stats .osf-portion-stats__value {
  font-size: 0.82rem;
  line-height: 1.15;
}

.osf-plp-portion-stats .osf-portion-stats__label {
  margin-top: 0.15rem;
  font-size: 0.62rem;
}

.osf-plp-portion-stats--gallery .osf-portion-stats__value {
  font-size: 0.75rem;
}

.osf-plp-portion-stats--gallery .osf-portion-stats__label {
  font-size: 0.58rem;
}

.osf-plp-bulk {
  margin-top: 0;
}

.osf-plp-bulk .osf-bulk-prices__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  overflow: visible;
  justify-content: center;
  padding-bottom: 0;
}

.osf-plp-bulk .osf-bulk-prices__card {
  flex: 1 1 calc(33.333% - 0.35rem);
  min-width: 0;
  max-width: none;
  min-height: 4.65rem;
  padding: 0.85rem 0.35rem 0.55rem;
  box-sizing: border-box;
}

.osf-bulk-prices.is-plp-limited .osf-bulk-prices__card--tier-hidden {
  display: none !important;
}

.osf-bulk-prices__plp-hint {
  margin-top: 0.3rem;
  text-align: center;
  font-size: 0.68rem;
  line-height: 1.35;
}

a.osf-bulk-prices__plp-hint--link.osf-bulk-prices__plp-hint {
  display: inline-block;
  max-width: 100%;
  padding: 0.2rem 0.45rem;
  border-radius: 0.35rem;
  color: var(--osf-bulk-muted, #64748b);
  text-decoration: none;
  transition: color 0.15s ease, background-color 0.15s ease;
}

a.osf-bulk-prices__plp-hint--link.osf-bulk-prices__plp-hint:hover,
a.osf-bulk-prices__plp-hint--link.osf-bulk-prices__plp-hint:focus-visible {
  color: var(--bs-primary, #0d6efd);
  background-color: rgba(13, 110, 253, 0.07);
  outline: none;
  text-decoration: none;
}

.osf-plp-bulk .osf-bulk-prices__badge {
  font-size: 0.62rem;
  padding: 0.15rem 0.4rem;
}

.osf-plp-bulk .osf-bulk-prices__price {
  font-size: 0.78rem;
}

.osf-plp-bulk .osf-bulk-prices__discount {
  font-size: 0.62rem;
}

.osf-plp-bulk .osf-bulk-prices__plp-hint {
  min-height: 1.15rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations:not(.osf-plp-gallery-variations--under-image) {
  min-height: 2.9rem;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image {
  position: relative;
  z-index: 4;
  margin: -2.35rem 0.65rem 0.35rem;
  padding: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  background: transparent;
  box-shadow: none;
  min-height: 0;
  justify-content: flex-start;
}

.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .productbox-variations,
.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .osf-plp-variations--gallery,
.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .osf-detail-variations,
.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .row,
.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .col,
.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image dl,
.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .variation-wrapper,
.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image dd.osf-detail-variation__body {
  width: 100%;
  max-width: 100%;
  flex: 0 0 100%;
  box-sizing: border-box;
}

.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .row {
  margin-left: 0;
  margin-right: 0;
}

.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .col {
  padding-left: 0;
  padding-right: 0;
}

.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .osf-variation-select-wrap,
.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .osf-plp-variations--gallery select.custom-select:not(.selectpicker) {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  box-sizing: border-box;
  border-radius: var(--osf-radius-btn);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.14);
}

.osf-plp #product-list.layout-gallery .osf-product-card.osf-product-card--inline-variations.productbox {
  overflow: hidden;
}

.osf-plp #product-list.layout-gallery .osf-product-card.osf-product-card--inline-variations .osf-plp-gallery-actions {
  flex-shrink: 0;
}

.osf-plp-bulk .osf-bulk-prices__line--base {
  font-size: 0.58rem;
}

.osf-plp-bulk--list .osf-bulk-prices__card {
  flex: 1 1 calc(33.333% - 0.35rem);
  min-width: 0;
  max-width: none;
}

.productbox-row .osf-plp-card-extras--list {
  margin-top: 0.35rem;
  margin-bottom: 0.5rem;
}

@media (max-width: 575.98px) {
  .osf-plp-portion-stats .osf-portion-stats__value {
    font-size: 0.72rem;
  }

  .osf-plp-bulk .osf-bulk-prices__card {
    flex: 1 1 calc(33.333% - 0.3rem);
    min-width: 0;
    min-height: 4.35rem;
  }
}

/* --------------------------------------------------------------------------
   PDP — Staffelpreise (soft tier cards)
   -------------------------------------------------------------------------- */
.osf-bulk-prices {
  --osf-bulk-border: var(--osf-border-subtle);
  --osf-bulk-surface: var(--osf-surface-elevated);
  --osf-bulk-muted: #64748b;
  margin-top: 1rem;
}

.osf-bulk-prices__header {
  margin-bottom: 0.85rem;
  text-align: center;
}

.osf-bulk-prices__title {
  font-weight: 700;
  color: var(--osf-primary-deeper);
  letter-spacing: -0.01em;
  text-align: center;
}

.osf-bulk-prices__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: stretch;
  justify-content: center;
}

.osf-bulk-prices__card {
  position: relative;
  flex: 1 1 0;
  min-width: 5.25rem;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-end;
  margin-top: 0.65rem;
  padding: 1.15rem 0.65rem 0.75rem;
  border: 1px solid var(--osf-bulk-border);
  border-radius: var(--osf-radius-md);
  background: var(--osf-bulk-surface);
  color: var(--osf-primary-deeper);
  text-align: center;
  cursor: pointer;
  box-shadow: var(--osf-shadow-card);
  transition:
    border-color 0.15s ease,
    background-color 0.15s ease,
    box-shadow 0.15s ease,
    transform 0.15s ease;
}

.osf-bulk-prices__card:hover {
  border-color: rgba(31, 157, 203, 0.4);
  box-shadow: var(--osf-shadow-hover);
  transform: translateY(-1px);
}

.osf-bulk-prices__card:focus-visible {
  outline: 2px solid var(--primary, #1789ad);
  outline-offset: 2px;
}

.osf-bulk-prices__card.is-best-value {
  border-color: rgba(31, 157, 203, 0.35);
}

.osf-bulk-prices__card.is-selected {
  border-color: var(--primary, #1789ad);
  background-color: rgba(31, 157, 203, 0.08);
  box-shadow:
    0 0 0 1px rgba(31, 157, 203, 0.2),
    0 4px 14px rgba(31, 157, 203, 0.12);
}

.osf-bulk-prices__badge {
  position: absolute;
  top: -0.55rem;
  left: 50%;
  transform: translateX(-50%);
  display: inline-block;
  max-width: calc(100% - 0.75rem);
  padding: 0.2rem 0.55rem;
  border-radius: var(--osf-radius-pill);
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.01em;
  text-align: center;
  white-space: nowrap;
  color: #fff;
  background: var(--osf-primary-deeper);
  box-shadow: var(--osf-shadow-sm);
}

.osf-bulk-prices__card.is-best-value .osf-bulk-prices__badge,
.osf-bulk-prices__card.is-selected .osf-bulk-prices__badge {
  background: var(--primary, #1789ad);
  box-shadow: 0 2px 8px rgba(31, 157, 203, 0.28);
}

.osf-bulk-prices__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  gap: 0.2rem;
  width: 100%;
  min-height: 3rem;
}

.osf-bulk-prices__line {
  display: block;
  line-height: 1.2;
  width: 100%;
}

.osf-bulk-prices__line--price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.35rem;
}

.osf-bulk-prices__price {
  font-size: 0.95rem;
  font-weight: 700;
  color: #0f172a;
}

.osf-bulk-prices__discount {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--success, #22c55e);
  white-space: nowrap;
}

.osf-bulk-prices__line--base {
  font-size: 0.65rem;
  font-weight: 500;
  color: var(--osf-bulk-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.osf-bulk-prices__sim-notice {
  margin-top: 0.35rem;
  font-size: 0.72rem;
  line-height: 1.35;
}

.osf-bulk-prices.is-collapsible:not(.is-expanded) .osf-bulk-prices__card--tier-hidden {
  display: none !important;
}

.osf-sticky-atc__tiers.is-collapsible:not(.is-expanded) .osf-bulk-prices__card--tier-hidden {
  display: none !important;
}

.osf-bulk-prices__footer {
  margin-top: 0.65rem;
  text-align: center;
}

.osf-bulk-prices__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.35rem 0.75rem;
  border: 0;
  border-radius: var(--osf-radius-pill);
  background: transparent;
  color: var(--primary, #1789ad);
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.3;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.osf-bulk-prices__toggle:hover {
  color: var(--osf-primary-deeper);
}

.osf-bulk-prices__toggle:focus-visible {
  outline: 2px solid var(--primary, #1789ad);
  outline-offset: 2px;
}

.osf-bulk-prices--sim {
  outline: 2px dashed rgba(31, 157, 203, 0.35);
  outline-offset: 0.35rem;
  border-radius: var(--osf-radius-md);
  padding: 0.5rem 0.35rem 0.65rem;
}

.osf-bulk-prices--many-tiers .osf-bulk-prices__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.55rem;
  justify-content: center;
  align-items: stretch;
}

.osf-bulk-prices--many-tiers .osf-bulk-prices__card {
  flex: none;
  min-width: 0;
  max-width: none;
  width: 100%;
  padding: 1rem 0.35rem 0.6rem;
}

.osf-bulk-prices--many-tiers .osf-bulk-prices__price {
  font-size: 0.82rem;
}

.osf-bulk-prices--many-tiers .osf-bulk-prices__discount {
  font-size: 0.62rem;
}

.osf-bulk-prices--many-tiers .osf-bulk-prices__line--base {
  font-size: 0.58rem;
}

@media (max-width: 991.98px) {
  .osf-bulk-prices--many-tiers .osf-bulk-prices__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .osf-bulk-prices--many-tiers .osf-bulk-prices__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .osf-bulk-prices__grid {
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0.5rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-top: 0.25rem;
    padding-bottom: 0.15rem;
  }

  .osf-bulk-prices__card {
    flex: 1 1 0;
    min-width: 4.75rem;
    padding: 1rem 0.4rem 0.65rem;
    text-align: center;
  }

  .osf-bulk-prices__badge {
    font-size: 0.65rem;
    padding: 0.18rem 0.5rem;
  }

  .osf-bulk-prices__price {
    font-size: 0.85rem;
  }

  .osf-bulk-prices__line--base {
    font-size: 0.6rem;
  }

  .osf-bulk-prices--many-tiers .osf-bulk-prices__grid {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    padding-inline: 0.15rem;
  }

  .osf-bulk-prices--many-tiers .osf-bulk-prices__card {
    flex: 0 0 auto;
    min-width: 4.65rem;
    max-width: 5.25rem;
    scroll-snap-align: start;
  }
}

/* --------------------------------------------------------------------------
   PDP — page chrome (gallery, meta, tabs, sliders) — aligned with buybox
   -------------------------------------------------------------------------- */
#content-wrapper:has(.osf-pdp) .breadcrumb-container {
  padding-top: 0.35rem;
  padding-bottom: 0.15rem;
}

#content-wrapper:has(.osf-pdp) .breadcrumb-wrapper .breadcrumb {
  background: transparent;
  padding: 0.25rem 0;
  margin-bottom: 0;
  font-size: 0.8125rem;
}

#content-wrapper:has(.osf-pdp) .breadcrumb-item a {
  color: #64748b;
  text-decoration: none;
}

#content-wrapper:has(.osf-pdp) .breadcrumb-item a:hover {
  color: var(--osf-primary);
}

#content-wrapper:has(.osf-pdp) .breadcrumb-item.active {
  color: var(--osf-primary-deeper);
  font-weight: 600;
}

.osf-pdp .product-detail {
  row-gap: 1.5rem;
}

.osf-pdp .product-title {
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--osf-primary-deeper);
  margin-bottom: 0.35rem;
  line-height: 1.2;
}

.osf-pdp .rating-wrapper {
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
}

.osf-pdp .rating-wrapper a {
  color: inherit;
  text-decoration: none;
}

.osf-pdp .rating-wrapper a:hover {
  color: var(--osf-primary);
}

.osf-pdp .info-essential {
  font-size: 0.875rem;
  color: #64748b;
  margin-bottom: 0.75rem;
}

.osf-pdp .info-essential li {
  padding: 0.12rem 0;
}

.osf-pdp .info-essential a {
  color: var(--osf-primary);
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.osf-pdp .info-essential a:hover {
  color: var(--osf-primary-dark);
}

.osf-pdp .shortdesc,
.osf-pdp-shortdesc {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: #475569;
  margin: 0.5rem 0 1rem;
}

.osf-pdp-shortdesc ul {
  margin: 0;
  padding-left: 1.15rem;
  list-style: disc;
}

.osf-pdp-shortdesc li {
  margin-bottom: 0.45rem;
}

.osf-pdp-shortdesc li:last-child {
  margin-bottom: 0;
}

.osf-pdp #image_wrapper.gallery-with-action:not(.fullscreen) {
  background: var(--osf-surface-elevated);
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-shadow-card);
  padding: 0.65rem;
  /* overflow: visible — clip on .inner; hidden here clips #productImagesModal on iOS */
  overflow: visible;
}

.osf-pdp #image_wrapper:not(.fullscreen) #gallery .square-image .inner {
  border-radius: var(--osf-radius-md);
  overflow: hidden;
  background: #fff;
}

.osf-pdp .product-thumbnails-wrapper .product-thumbnails .inner {
  border-radius: var(--osf-radius-sm);
  overflow: hidden;
  border: 1px solid var(--osf-border-subtle);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.osf-pdp .product-thumbnails-wrapper .slick-current .inner {
  border-color: var(--osf-primary, #1789ad);
  box-shadow: 0 0 0 1px rgba(23, 137, 173, 0.28);
}

@media (max-width: 991.98px) {
  .osf-pdp-merkmal-highlights--nutrition {
    gap: 1.15rem;
  }

  .osf-pdp-nutrition-badge {
    --osf-nutrition-badge-size: 4rem;
    --osf-nutrition-badge-icon: 1.35rem;
    min-width: 4.25rem;
  }
}

.osf-pdp .product-actions .btn {
  border-radius: var(--osf-radius-pill);
  border: 1px solid var(--osf-border-subtle);
  background: var(--osf-surface-elevated);
  box-shadow: var(--osf-shadow-sm);
}

.osf-pdp .tab-navigation {
  margin-top: 2rem;
}

.osf-pdp .tab-navigation .nav-tabs {
  border-bottom: none;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.osf-pdp .tab-navigation .nav-item {
  margin-bottom: 0;
}

.osf-pdp .tab-navigation .nav-link {
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-btn) !important;
  padding: 0.5rem 1rem;
  font-weight: 600;
  font-size: 0.875rem;
  color: #64748b;
  background: var(--osf-surface-elevated);
  margin-bottom: 0.35rem;
}

.osf-pdp .tab-navigation .nav-link::after {
  display: none;
}

.osf-pdp .tab-navigation .nav-link:hover {
  color: var(--osf-primary);
  border-color: rgba(31, 157, 203, 0.35);
  background: var(--osf-primary-faint);
}

.osf-pdp .tab-navigation .nav-link.active {
  color: #fff;
  background: var(--osf-primary);
  border-color: var(--osf-primary);
}

.osf-pdp .tab-navigation + .tab-content,
.osf-pdp #product-tabs ~ .tab-content {
  margin-top: 0.65rem;
  padding: 1.25rem 1.35rem;
  background: var(--osf-surface-elevated);
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-shadow-card);
}

.osf-pdp #tabAccordion .card {
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-shadow-card);
  margin-bottom: 0.75rem;
  overflow: hidden;
}

.osf-pdp #tabAccordion .card-header {
  background: var(--osf-surface-elevated);
  border-bottom: 1px solid var(--osf-border-subtle);
  font-weight: 600;
  color: var(--osf-primary-deeper);
  padding: 0.85rem 1rem;
}

.osf-pdp #tabAccordion .card-header:not(.collapsed) {
  color: var(--osf-primary);
}

.osf-pdp #tabAccordion .card-body {
  background: var(--osf-surface-elevated);
  padding: 1rem 1.15rem;
}

.osf-pdp .desc {
  line-height: 1.65;
  color: #334155;
}

.osf-pdp .desc > p:last-child {
  margin-bottom: 0;
}

.osf-pdp .desc table {
  border-radius: var(--osf-radius-md);
  overflow: hidden;
  border-color: var(--osf-border-subtle);
}

/* Merkmale / Eigenschaften-Box (Beschreibung-Tab) */
.osf-pdp .osf-pdp-merkmale-box {
  margin-top: 1.25rem;
  background: var(--osf-surface-elevated);
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-shadow-card);
  overflow: hidden;
}

.osf-pdp .osf-pdp-merkmale-box__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  margin: 0;
  padding: 0.85rem 1rem;
  border: 0;
  background: var(--osf-surface-elevated);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--osf-primary-deeper);
  text-align: left;
  cursor: pointer;
}

.osf-pdp .osf-pdp-merkmale-box__toggle:focus-visible {
  outline: 2px solid var(--osf-primary);
  outline-offset: -2px;
}

.osf-pdp .osf-pdp-merkmale-box__icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: rgba(15, 76, 129, 0.08);
  color: var(--osf-primary-deeper);
  transition: background-color 0.2s ease, color 0.2s ease;
}

.osf-pdp .osf-pdp-merkmale-box__icon .fa-chevron-down {
  font-size: 0.7rem;
  line-height: 1;
  transition: transform 0.2s ease;
}

.osf-pdp .osf-pdp-merkmale-box__toggle:not(.collapsed) {
  color: var(--osf-primary);
  border-bottom: 1px solid var(--osf-border-subtle);
}

.osf-pdp .osf-pdp-merkmale-box__toggle:not(.collapsed) .osf-pdp-merkmale-box__icon {
  background: rgba(31, 157, 203, 0.14);
  color: var(--osf-primary);
}

.osf-pdp .osf-pdp-merkmale-box__toggle:not(.collapsed) .fa-chevron-down,
.osf-pdp .osf-pdp-merkmale-box__toggle[aria-expanded="true"] .fa-chevron-down {
  transform: rotate(180deg);
}

.osf-pdp .osf-pdp-merkmale-box__body,
.osf-pdp .osf-pdp-merkmale-box__collapse {
  background: var(--osf-surface-elevated);
}

.osf-pdp .osf-pdp-merkmale-box .product-attributes {
  margin-top: 0;
  padding: 0.35rem 0.65rem 0.85rem;
}

.osf-pdp .osf-pdp-merkmale-box .product-attributes .table {
  margin-bottom: 0;
  border: 0;
  border-radius: 0;
  overflow: visible;
  background: transparent;
  border-color: var(--osf-border-subtle);
}

.osf-pdp .osf-pdp-merkmale-box .table-bordered-outline tr:first-child {
  border-top-width: 0;
}

.osf-pdp .osf-pdp-merkmale-box .table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(15, 76, 129, 0.04);
}

.osf-pdp .osf-pdp-merkmale-box .table-striped tbody tr:nth-of-type(even) {
  background-color: transparent;
}

.osf-pdp .osf-pdp-merkmale-box .product-attributes .badge {
  border-radius: var(--osf-radius-pill);
  font-weight: 600;
}

:is(.osf-pdp, .osf-cart) .recommendations {
  margin-top: 2.5rem;
}

:is(.osf-pdp, .osf-cart) .recommendations .hr-sect,
:is(.osf-pdp, .osf-cart) .recommendations .productlist-filter-headline {
  font-size: clamp(1.125rem, 2vw, 1.35rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--osf-primary-deeper);
  margin-bottom: 1rem;
}

:is(.osf-pdp, .osf-cart) .recommendations .hr-sect::before,
:is(.osf-pdp, .osf-cart) .recommendations .hr-sect::after {
  border-color: var(--osf-border-subtle);
}

:is(.osf-pdp, .osf-cart) .recommendations .box.box-slider,
:is(.osf-pdp, .osf-cart) .recommendations .slick-slider-other.is-not-opc {
  background: var(--osf-surface-elevated);
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-shadow-card);
  padding: 1rem 1.1rem 1.15rem;
}

.osf-pdp .partslist .box,
.osf-pdp .bundle {
  background: var(--osf-surface-elevated);
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-shadow-card);
  padding: 1rem 1.1rem;
  margin-bottom: 1.5rem;
}

:is(.osf-pdp, .osf-cart) .recommendations .slick-slider-other.is-not-opc .hr-sect {
  border-top: none;
  border-bottom: none;
  padding-top: 0;
  padding-bottom: 0;
  margin-top: 0;
}

:is(.osf-pdp, .osf-cart) .recommendations .product-wrapper {
  padding: 0.35rem;
  border-radius: var(--osf-radius-md);
  transition: background-color 0.15s ease;
}

:is(.osf-pdp, .osf-cart) .recommendations:not(.osf-pdp-rec--gallery) .product-wrapper:hover {
  background: var(--osf-primary-faint);
}

/* PDP recommendation gallery sliders: reuse PLP gallery card rules */
:is(.osf-pdp, .osf-cart) .recommendations.osf-pdp-rec--gallery .osf-pdp-rec-plp-context .product-list.layout-gallery .product-wrapper {
  display: flex;
  align-items: stretch;
  padding: 0.5rem;
}

:is(.osf-pdp, .osf-cart) .recommendations.osf-pdp-rec--gallery .slick-slider-other.is-not-opc {
  padding: 1rem 0.75rem 1.25rem;
}

/* OPC trust/USPs below PDP (Gratis Versand, etc.) */
#content-wrapper:has(.osf-pdp) > .container-fluid:has([data-area-id]) {
  margin-top: 2rem;
  margin-bottom: 0.5rem;
}

#content-wrapper:has(.osf-pdp) [data-area-id] > div {
  height: 100%;
  padding: 1rem 0.75rem;
  background: var(--osf-surface-elevated);
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-shadow-card);
  text-align: center;
}

#content-wrapper:has(.osf-pdp) [data-area-id] p {
  margin-bottom: 0;
  text-align: center !important;
}

#content-wrapper:has(.osf-pdp) [data-area-id] strong {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--osf-primary-deeper);
}

#content-wrapper:has(.osf-pdp) [data-area-id] span {
  font-size: 0.8125rem;
  color: #64748b;
  line-height: 1.45;
}

@media (max-width: 991.98px) {
  .osf-pdp .tab-navigation + .tab-content,
  .osf-pdp #product-tabs ~ .tab-content {
    padding: 1rem;
  }

  #content-wrapper:has(.osf-pdp) > .container-fluid:has([data-area-id]) {
    margin-top: 1.5rem;
  }
}

/* --------------------------------------------------------------------------
   PLP scope: category / search result pages
   -------------------------------------------------------------------------- */
.osf-plp {
  --osf-plp-radius: var(--osf-radius-lg, 1.25rem);
  --osf-plp-filter-bg: var(--osf-surface-elevated, #ffffff);
  --osf-plp-shadow: var(--osf-shadow-card);
  --osf-plp-shadow-hover: var(--osf-shadow-hover);
  --osf-plp-border: var(--osf-border-subtle);
  --osf-plp-gap: 1.25rem;
  --osf-plp-top-filter-border: rgba(var(--osf-brand-rgb, 23, 137, 173), 0.16);
  --osf-plp-top-filter-radius: 1rem;
  --osf-plp-top-filter-gap: 0.875rem;
  --osf-plp-top-filter-icon-size: 3rem;
  --osf-plp-top-filter-card-radius: 0.75rem;
}

@media (max-width: 575.98px) {
  .osf-plp {
    --osf-plp-gap: 0.875rem;
  }

  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-title,
  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper,
  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__rating,
  .osf-plp .osf-plp-availability {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}

/* Category header */
.osf-plp .osf-plp-header {
  margin-bottom: 1.5rem;
}

.osf-plp .osf-plp-header__title {
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--osf-primary-deeper);
  margin-bottom: 0.5rem;
}

.osf-plp .osf-plp-intro {
  width: 100%;
  max-width: none;
  margin-bottom: 1.25rem;
  color: #475569;
  font-size: 0.95rem;
  line-height: 1.65;
}

.osf-plp .osf-plp-intro__content-wrap,
.osf-plp .osf-plp-intro__content {
  width: 100%;
  max-width: none;
}

.osf-plp .osf-plp-intro__content > :first-child {
  margin-top: 0;
}

.osf-plp .osf-plp-intro__content > :last-child {
  margin-bottom: 0;
}

.osf-plp .osf-plp-intro__content h1,
.osf-plp .osf-plp-intro__content h2 {
  font-size: clamp(1.125rem, 2vw, 1.35rem);
  font-weight: 600;
  line-height: 1.3;
  color: var(--osf-primary-deeper, #0f172a);
  margin: 0 0 0.75rem;
}

.osf-plp .osf-plp-intro__content p {
  margin-bottom: 0.75rem;
}

.osf-plp .osf-plp-intro__content ul,
.osf-plp .osf-plp-intro__content ol {
  margin-bottom: 0.75rem;
  padding-left: 1.25rem;
}

.osf-plp .osf-plp-intro--readmore.is-collapsed .osf-plp-intro__content {
  max-height: calc(var(--osf-plp-desc-lines, 4) * 1.65em);
  overflow: hidden;
}

.osf-plp .osf-plp-intro--readmore:not(.is-collapsed) .osf-plp-intro__content {
  max-height: none !important;
  overflow: visible !important;
}

.osf-plp .osf-plp-intro--readmore.is-collapsed .osf-plp-intro__content-wrap {
  position: relative;
}

.osf-plp .osf-plp-intro--readmore.is-collapsed .osf-plp-intro__content-wrap::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2.5rem;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 88%);
}

.osf-plp .osf-plp-intro--readmore {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.osf-plp .osf-plp-intro__toggle {
  align-self: center;
  display: inline-block;
  margin-top: 1rem;
  padding: 0.7rem 1.85rem;
  min-width: 11.5rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--osf-text-on-brand, #ffffff);
  text-align: center;
  text-decoration: none;
  background: linear-gradient(135deg, var(--osf-brand, #1789ad) 0%, var(--osf-accent, #35d7ff) 100%);
  background-color: transparent;
  border: 0;
  border-radius: var(--osf-radius-pill, 9999px);
  box-shadow:
    0 4px 16px rgba(var(--osf-brand-rgb, 23, 137, 173), 0.22),
    0 2px 10px rgba(var(--osf-accent-rgb, 53, 215, 255), 0.28);
  cursor: pointer;
  transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.osf-plp .osf-plp-intro__toggle:hover,
.osf-plp .osf-plp-intro__toggle:focus {
  color: var(--osf-text-on-brand, #ffffff);
  text-decoration: none;
  background: linear-gradient(135deg, var(--osf-accent, #35d7ff) 0%, var(--osf-brand, #1789ad) 100%);
  box-shadow:
    0 8px 24px rgba(var(--osf-brand-rgb, 23, 137, 173), 0.22),
    0 4px 16px rgba(var(--osf-accent-rgb, 53, 215, 255), 0.32);
}

.osf-plp .osf-plp-intro__toggle:active {
  transform: translateY(1px);
}

.osf-plp .osf-plp-intro__toggle:focus-visible {
  outline: 2px solid var(--osf-primary-deeper, #156d87);
  outline-offset: 3px;
}

.osf-plp .productlist-header-description-image {
  border-radius: var(--osf-plp-radius);
  overflow: hidden;
  margin-bottom: 1.5rem;
}

/* PLP top characteristic filters (above toolbar) */
.osf-plp-top-filters {
  margin-bottom: 1rem;
  padding: 1rem 1.125rem;
  background: var(--osf-plp-filter-bg, #fff);
  border: 1px solid var(--osf-plp-top-filter-border, rgba(23, 137, 173, 0.14));
  border-radius: var(--osf-plp-top-filter-radius, 1.25rem);
  box-shadow: var(--osf-plp-shadow, var(--osf-shadow-sm));
}

.osf-plp-top-filters__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--osf-plp-top-filter-gap, 0.75rem);
  align-items: stretch;
}

@media (max-width: 991.98px) {
  .osf-plp-top-filters__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .osf-plp-top-filters {
    padding: 0.875rem;
  }

  .osf-plp-top-filters__grid {
    grid-template-columns: 1fr;
  }
}

.osf-plp-top-filters__cell--reset {
  display: flex;
  align-items: stretch;
}

.osf-plp-top-filter {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  height: 100%;
}

.osf-plp-top-filter__trigger {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  min-height: 4.25rem;
  padding: 0.65rem 0.85rem;
  text-align: left;
  background: var(--osf-plp-filter-bg, #fff);
  border: 1px solid var(--osf-plp-top-filter-border, rgba(23, 137, 173, 0.12));
  border-radius: calc(var(--osf-plp-top-filter-radius, 1.25rem) * 0.65);
  box-shadow: 0 1px 2px rgba(15, 41, 53, 0.04);
  color: inherit;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.osf-plp-top-filter__trigger::after {
  display: none;
}

.osf-plp-top-filter__trigger:hover,
.osf-plp-top-filter__trigger:focus {
  border-color: rgba(var(--osf-brand-rgb, 23, 137, 173), 0.35);
  box-shadow: var(--osf-plp-shadow-hover, 0 4px 14px rgba(15, 41, 53, 0.08));
  outline: none;
}

.osf-plp-top-filter.is-active .osf-plp-top-filter__trigger,
.osf-plp-top-filter__trigger[aria-expanded="true"] {
  border-color: var(--osf-brand, #1789ad);
  box-shadow:
    0 0 0 3px rgba(var(--osf-brand-rgb, 23, 137, 173), 0.16),
    0 4px 12px rgba(var(--osf-brand-rgb, 23, 137, 173), 0.1);
}

.osf-plp-top-filter__trigger:focus-visible {
  outline: 2px solid var(--osf-brand, #1789ad);
  outline-offset: 2px;
}

.osf-plp-top-filter__icon {
  flex: 0 0 var(--osf-plp-top-filter-icon-size, 2.75rem);
  width: var(--osf-plp-top-filter-icon-size, 2.75rem);
  height: var(--osf-plp-top-filter-icon-size, 2.75rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  background: color-mix(in srgb, var(--osf-plp-top-filter-icon-color, #1789ad) 12%, #fff);
  color: var(--osf-plp-top-filter-icon-color, #1789ad);
  font-size: 1.15rem;
}

.osf-plp-top-filter__text {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.osf-plp-top-filter__title {
  display: block;
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.25;
  color: var(--osf-primary-deeper, #0f172a);
}

.osf-plp-top-filter__subtitle {
  display: block;
  font-size: 0.8rem;
  line-height: 1.3;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.osf-plp-top-filter.is-active .osf-plp-top-filter__subtitle {
  color: var(--osf-brand, #1789ad);
  font-weight: 500;
}

.osf-plp-top-filter__chevron {
  flex: 0 0 auto;
  font-size: 0.75rem;
  color: #94a3b8;
  transition: transform 0.15s ease;
}

.osf-plp-top-filter__trigger[aria-expanded="true"] .osf-plp-top-filter__chevron {
  transform: rotate(180deg);
}

.osf-plp-top-filter .dropdown-menu.osf-plp-top-filter__menu {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  right: 0 !important;
  transform: none !important;
  float: none;
  width: 100%;
  min-width: 100%;
  max-width: none;
  max-height: 280px;
  overflow-x: hidden;
  overflow-y: auto;
  margin-top: 0.4rem;
  padding: 0.5rem 0;
  background: var(--osf-plp-filter-bg, #fff);
  border-radius: 12px;
  border: 1px solid var(--osf-plp-top-filter-border, rgba(23, 137, 173, 0.14));
  box-shadow: var(--osf-header-shadow, 0 4px 16px rgba(15, 41, 53, 0.08), 0 1px 3px rgba(0, 0, 0, 0.06));
  scrollbar-width: thin;
  scrollbar-color: rgba(var(--osf-brand-rgb, 23, 137, 173), 0.35) transparent;
}

.osf-plp-top-filter__menu::-webkit-scrollbar {
  width: 6px;
}

.osf-plp-top-filter__menu::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(var(--osf-brand-rgb, 23, 137, 173), 0.28);
}

.osf-plp-top-filter__menu::-webkit-scrollbar-track {
  background: transparent;
}

.osf-plp-top-filter__menu .filter-search-wrapper {
  padding: 0.35rem 0.5rem 0.25rem;
}

.osf-plp-top-filter__menu a.filter-item,
.osf-plp-top-filter__menu a.dropdown-item,
.osf-plp-top-filter__menu .filter-item,
.osf-plp-top-filter__menu .dropdown-item {
  display: block;
  margin: 0 0.35rem;
  padding: 0.55rem 0.75rem;
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.35;
  color: var(--osf-header-dark-bg, #1a3340);
  text-decoration: none;
  border-radius: 0.5rem;
  border-left: 3px solid transparent;
  white-space: normal;
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease;
}

.osf-plp-top-filter__menu a.filter-item:hover,
.osf-plp-top-filter__menu a.dropdown-item:hover,
.osf-plp-top-filter__menu .filter-item:hover,
.osf-plp-top-filter__menu .dropdown-item:hover,
.osf-plp-top-filter__menu a.filter-item:focus,
.osf-plp-top-filter__menu a.dropdown-item:focus,
.osf-plp-top-filter__menu .filter-item:focus,
.osf-plp-top-filter__menu .dropdown-item:focus {
  background: var(--osf-surface, #f5f8fa);
  color: var(--osf-header-dark-bg, #1a3340);
  text-decoration: none;
}

.osf-plp-top-filter__menu a.filter-item:focus-visible,
.osf-plp-top-filter__menu a.dropdown-item:focus-visible,
.osf-plp-top-filter__menu .filter-item:focus-visible,
.osf-plp-top-filter__menu .dropdown-item:focus-visible {
  outline: 2px solid var(--osf-brand, #1789ad);
  outline-offset: 1px;
}

.osf-plp-top-filter__menu a.filter-item.active,
.osf-plp-top-filter__menu a.dropdown-item.active,
.osf-plp-top-filter__menu .filter-item.active,
.osf-plp-top-filter__menu .dropdown-item.active {
  background: color-mix(in srgb, var(--osf-brand, #1789ad) 10%, var(--osf-plp-filter-bg, #fff));
  border-left-color: var(--osf-brand, #1789ad);
  color: var(--osf-header-dark-bg, #1a3340);
  font-weight: 600;
}

.osf-plp-top-filter__menu .box-link-wrapper {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.osf-plp-top-filter__menu .snippets-filter-item-icon-right {
  position: relative;
  flex: 0 0 1.125rem;
  width: 1.125rem;
  height: 1.125rem;
  margin: 0;
  font-size: 0;
  line-height: 0;
  color: transparent;
  overflow: hidden;
}

.osf-plp-top-filter__menu .snippets-filter-item-icon-right::before {
  content: "" !important;
  display: block;
  width: 1.125rem;
  height: 1.125rem;
  border: 2px solid rgba(var(--osf-brand-rgb, 23, 137, 173), 0.38);
  border-radius: 0.3rem;
  background: var(--osf-plp-filter-bg, #fff);
  box-sizing: border-box;
  transition:
    border-color 0.15s ease,
    background-color 0.15s ease;
}

.osf-plp-top-filter__menu .filter-item.active .snippets-filter-item-icon-right::before,
.osf-plp-top-filter__menu .dropdown-item.active .snippets-filter-item-icon-right::before {
  border-color: var(--osf-brand, #1789ad);
  background: var(--osf-brand, #1789ad);
}

.osf-plp-top-filter__menu .filter-item.active .snippets-filter-item-icon-right::after,
.osf-plp-top-filter__menu .dropdown-item.active .snippets-filter-item-icon-right::after {
  content: "";
  position: absolute;
  left: 0.32rem;
  top: 0.12rem;
  width: 0.35rem;
  height: 0.62rem;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  pointer-events: none;
}

.osf-plp-top-filter__menu .filter-item-value {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--osf-header-dark-bg, #1a3340);
  overflow-wrap: anywhere;
}

.osf-plp-top-filter__menu .badge,
.osf-plp-top-filter__menu .badge.badge-outline-secondary {
  flex-shrink: 0;
  min-width: 1.5rem;
  padding: 0.15rem 0.5rem;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--osf-brand, #1789ad);
  background: transparent;
  border: 1px solid rgba(var(--osf-brand-rgb, 23, 137, 173), 0.35);
  border-radius: 999px;
}

.osf-plp-top-filter__menu .filter-item.active .badge,
.osf-plp-top-filter__menu .filter-item.active .badge.badge-outline-secondary,
.osf-plp-top-filter__menu .dropdown-item.active .badge,
.osf-plp-top-filter__menu .dropdown-item.active .badge.badge-outline-secondary {
  color: #fff;
  background: var(--osf-brand, #1789ad);
  border-color: var(--osf-brand, #1789ad);
}

@media (max-width: 575.98px) {
  .osf-plp-top-filter .dropdown-menu.osf-plp-top-filter__menu {
    left: 0 !important;
    right: 0 !important;
    min-width: 100%;
    width: 100%;
  }

  .osf-plp-top-filter__menu a.filter-item,
  .osf-plp-top-filter__menu a.dropdown-item,
  .osf-plp-top-filter__menu .filter-item,
  .osf-plp-top-filter__menu .dropdown-item {
    min-height: 44px;
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
  }
}

.osf-plp-top-filters__reset {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 4.25rem;
  padding: 0.65rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--osf-primary-deeper, #0f172a);
  background: var(--osf-plp-filter-bg, #fff);
  border: 1px solid var(--osf-plp-top-filter-border, rgba(23, 137, 173, 0.18));
  border-radius: calc(var(--osf-plp-top-filter-radius, 1.25rem) * 0.65);
  text-decoration: none;
  white-space: nowrap;
  transition: border-color 0.15s ease, color 0.15s ease;
}

.osf-plp-top-filters__reset:hover,
.osf-plp-top-filters__reset:focus {
  color: var(--osf-brand, #1789ad);
  border-color: rgba(var(--osf-brand-rgb, 23, 137, 173), 0.35);
  text-decoration: none;
}

.osf-plp-top-filters__reset-icon {
  font-size: 0.95rem;
  color: var(--osf-brand, #1789ad);
}

@media (min-width: 992px) {
  .osf-plp-top-filters__grid:has(.osf-plp-top-filters__cell--reset) {
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  }

  .osf-plp-top-filters__cell--reset {
    min-width: 11.5rem;
  }
}

/* Toolbar: sort, limits, layout */
.osf-plp .osf-plp-toolbar {
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 0;
  margin-bottom: 0.5rem;
}

.osf-plp .osf-plp-toolbar .displayoptions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

/* Phone-only row: Liste/Galerie (see snippets/productlist_page_nav.tpl) */
.osf-plp .osf-plp-toolbar--mobile-layout {
  position: relative;
  z-index: 12;
  padding-top: 0.25rem;
  padding-bottom: 0.35rem;
}

.osf-plp .osf-plp-toolbar--mobile-layout .btn-option.ed {
  position: relative;
  z-index: 1;
}

.osf-plp .osf-plp-toolbar .btn-outline-secondary {
  border-color: var(--osf-plp-border);
  border-radius: var(--osf-radius-btn);
  font-size: 0.875rem;
  padding: 0.4rem 0.85rem;
}

.osf-plp .osf-plp-toolbar .btn-outline-secondary:hover,
.osf-plp .osf-plp-toolbar .btn-outline-secondary:focus {
  border-color: var(--primary, #1789ad);
  color: var(--primary, #1789ad);
  background-color: var(--light, #f5f7fa);
}

.osf-plp .osf-plp-toolbar #js-filters .fa-filter.text-primary {
  color: var(--primary, #1789ad) !important;
}

.osf-plp .productlist-item-info {
  font-size: 0.875rem;
  color: var(--secondary, #525252);
  padding: 0.35rem 0;
}

.osf-plp .productlist-page-nav-top,
.osf-plp .productlist-page-nav-bottom {
  border-color: var(--osf-plp-border);
  opacity: 0.6;
}

/* Pagination */
.osf-plp .productlist-pagination .pagination {
  gap: 0.35rem;
  margin-bottom: 0;
}

.osf-plp .productlist-pagination .page-link,
.osf-plp .productlist-pagination .btn-outline-secondary {
  border-radius: var(--osf-radius-btn);
  border-color: var(--osf-plp-border);
  min-width: 2.5rem;
  text-align: center;
}

.osf-plp .productlist-pagination .page-item.active .page-link,
.osf-plp .productlist-pagination .dropdown-item.active .page-link {
  background-color: var(--primary, #1789ad);
  border-color: var(--primary, #1789ad);
  color: #fff;
}

.osf-plp .productlist-pagination .page-item:not(.active) .page-link:hover,
.osf-plp .productlist-pagination .page-item:not(.active) .page-link:focus,
.osf-plp .productlist-pagination .dropdown-item:not(.active) .page-link:hover,
.osf-plp .productlist-pagination .dropdown-item:not(.active) .page-link:focus,
.osf-plp .productlist-pagination .dropdown-item:not(.active):hover .page-link {
  background-color: rgba(var(--osf-accent-rgb, 53, 215, 255), 0.22) !important;
  color: var(--osf-brand, #1789ad) !important;
  border-color: rgba(var(--osf-accent-rgb, 53, 215, 255), 0.4) !important;
}

/* Footer pagination — centered (header toolbar stays right-aligned) */
.osf-plp .productlist-page-nav:not(.productlist-page-nav-header-m) {
  justify-content: center;
}

.osf-plp .productlist-page-nav:not(.productlist-page-nav-header-m) .productlist-item-info {
  margin-left: 0;
  margin-right: 0;
}

@media (min-width: 768px) {
  .osf-plp .productlist-page-nav:not(.productlist-page-nav-header-m) .productlist-item-info.productlist-item-border {
    border-right: 0;
    padding-right: 0;
  }
}

.osf-plp .productlist-page-nav:not(.productlist-page-nav-header-m) .productlist-pagination {
  margin-left: auto;
  margin-right: auto;
}

.osf-plp .productlist-page-nav:not(.productlist-page-nav-header-m) .productlist-pagination .pagination {
  justify-content: center;
}

/* Active filter chips */
.osf-plp .active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.osf-plp .active-filters .snippets-filter-item {
  border-radius: var(--osf-radius-pill);
  font-size: 0.8125rem;
  padding: 0.25rem 0.75rem;
  border-color: var(--osf-plp-border);
}

.osf-plp .active-filters .snippets-filter-item:hover {
  border-color: var(--primary, #1789ad);
  color: var(--primary, #1789ad);
}

.osf-plp .active-filters .snippets-filter-item-all {
  font-size: 0.8125rem;
  color: var(--primary, #1789ad);
  text-decoration: underline;
}

/* Product grid */
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery {
  row-gap: var(--osf-plp-gap);
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .product-wrapper {
  margin-bottom: 0 !important;
  display: flex;
}

.osf-plp #product-list .product-wrapper {
  margin-bottom: 0 !important;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card {
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card > form.form-basket {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-inner {
  background: var(--osf-surface-elevated, #ffffff);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 1px solid var(--osf-plp-border, rgba(var(--osf-brand-rgb, 23, 137, 173), 0.12));
  border-radius: var(--osf-plp-radius, var(--osf-radius-lg, 1.25rem));
  box-shadow: var(--osf-plp-shadow, var(--osf-shadow-sm));
  overflow: hidden;
  transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
  height: 100%;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-inner > .row {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  margin: 0;
  position: relative;
  z-index: 1;
}

/* Image column: fixed height; must not absorb flex growth (caption was shrinking to 0). */
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-inner > .row > [class*="col-"]:first-child,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-variations--hover-gallery {
  flex: 0 0 auto;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-inner > .row > .osf-product-card__body-col,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-inner > .row > [class*="col-"]:last-child {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  flex-shrink: 0;
  min-height: min-content;
  overflow: visible;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__meta {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__sorten,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variants {
  font-size: 0.8125rem;
  font-weight: 600;
  margin: 0.35rem 1rem 0;
  line-height: 1.3;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variation-slot {
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 100%;
  min-height: 3.35rem;
  padding: 0.2rem 1rem 0;
  max-width: 100%;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variation-slot.osf-plp-gallery-variations--under-image {
  min-height: 0;
  padding-top: 0;
  padding-right: 0;
  padding-left: 0;
  padding-bottom: 0.15rem;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variation-slot--empty.osf-plp-gallery-variations--under-image {
  min-height: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden;
  visibility: hidden;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variation-slot--empty {
  visibility: hidden;
  pointer-events: none;
  min-height: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden;
  border: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variations {
  display: block !important;
  padding: 0;
  max-width: 100%;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variations .variations {
  margin: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variations dl {
  margin: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variations dt {
  display: none;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-variations--gallery dt {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  margin: 0 0 0.25rem;
}

.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .osf-plp-variations--gallery dl:has(.osf-variation-select-wrap) > .variation-wrapper > dt.osf-detail-variation__header {
  display: none !important;
}

.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .osf-plp-variations--gallery dl:has(.osf-variation-select-wrap) > .variation-wrapper > dd.osf-detail-variation__body {
  margin-top: 0;
  margin-bottom: 0;
}

/* PLP gallery under-image: no outer card; select uses gallery PLP block styles below */
.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .osf-plp-variations--gallery:has(.osf-variation-select-wrap) .osf-detail-variation {
  margin-bottom: 0;
}

.osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .osf-plp-variations--gallery:has(.osf-variation-select-wrap) .osf-detail-variations {
  margin-bottom: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variations dd.form-group {
  margin-bottom: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variations .swatches.imgswatches,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variations .swatches.textswatches {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin: 0;
  max-height: 4.5rem;
  overflow-x: auto;
  overflow-y: hidden;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variations .variation.swatches-text,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variations .variation.gall-preview.swatches-text,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variations .variation.swatches:not(.swatches-image) {
  min-width: auto;
  padding: 0.2rem 0.45rem;
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.25;
  border: 1px solid var(--osf-plp-border);
  border-radius: var(--osf-radius-sm);
  background: #fff;
  white-space: nowrap;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variations .variation.swatches.swatches-image {
  min-width: 2.5rem;
  max-width: 2.75rem;
  padding: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variations .variation.swatches.swatches-image img {
  width: 100%;
  height: 2.25rem;
  object-fit: cover;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-image {
  background: transparent !important;
  overflow: hidden;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .square-image .inner {
  aspect-ratio: 1 / 1;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-title {
  padding: 0.65rem 1rem 0;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-title a {
  color: var(--osf-heading, #000000);
  text-decoration: none;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-title a:hover {
  color: var(--osf-brand, #1789ad);
}

/* Gallery card: variation dropdown + add-to-cart (osf_plp_gallery_buy_button) */
/* Inline variation dropdown on PLP: no hover collapse / second image swap */
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card.osf-product-card--inline-variations .productbox-variations--hover-gallery,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card.osf-product-card--inline-variations.productbox-show-variations .productbox-variations--hover-gallery {
  display: none !important;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card.osf-product-card--inline-variations .productbox-images .second-wrapper {
  display: none !important;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card.osf-product-card--inline-variations .productbox-image {
  cursor: default;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-variations--gallery {
  padding: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-variations--gallery .bootstrap-select {
  display: none !important;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-variations--gallery .osf-detail-variation__count {
  display: none;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-variations--gallery .osf-detail-variation__header {
  margin-bottom: 0.2rem;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-variations--gallery .osf-variation-select-wrap {
  width: 100%;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-variations--gallery select.custom-select:not(.selectpicker) {
  display: block !important;
  width: 100%;
  max-width: 100%;
  font-size: 0.8125rem;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding: 0.5rem 2.25rem 0.5rem 0.65rem;
  border: 1px solid var(--osf-plp-border, #d8dee6);
  border-radius: 0.5rem;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23525252' d='M1 1.5L6 6l5-4.5' stroke='%23525252' stroke-width='1.2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.65rem center;
  background-size: 0.65rem 0.4rem;
  line-height: 1.35;
  min-height: 2.5rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-variations--gallery select.custom-select:not(.selectpicker):focus {
  border-color: var(--primary, #1789ad);
  box-shadow: 0 0 0 0.15rem rgba(31, 156, 203, 0.2);
  outline: 0;
}

.osf-plp #product-list.layout-list .osf-plp-variations--list .osf-detail-variation__count,
.osf-plp #product-list.layout-list .productbox-variations--list-inline .osf-detail-variation__count {
  display: none;
}

.osf-plp #product-list.layout-list .osf-plp-variations--list select.custom-select:not(.selectpicker),
.osf-plp #product-list.layout-list .productbox-variations--list-inline select.custom-select:not(.selectpicker) {
  display: block !important;
  width: 100%;
  max-width: 100%;
  font-size: 0.8125rem;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding: 0.45rem 2rem 0.45rem 0.55rem;
  border-radius: 0.45rem;
  border: 1px solid var(--osf-plp-border, #d8dee6);
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23525252' d='M1 1.5L6 6l5-4.5' stroke='%23525252' stroke-width='1.2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.55rem center;
  background-size: 0.65rem 0.4rem;
  min-height: 2.35rem;
  line-height: 1.35;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.osf-plp #product-list.layout-list .osf-plp-variations--list select.custom-select:not(.selectpicker):focus,
.osf-plp #product-list.layout-list .productbox-variations--list-inline select.custom-select:not(.selectpicker):focus {
  border-color: var(--primary, #1789ad);
  box-shadow: 0 0 0 0.12rem rgba(31, 156, 203, 0.18);
  outline: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__caption-footer {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  width: 100%;
  min-height: 0;
  margin-top: 0;
}

/* Equal-height gallery cards — same vertical rhythm as reference (portion + staffel + actions) */
.osf-plp #product-list.layout-gallery {
  align-items: stretch;
  background: var(--osf-surface, #f5f8fa);
}

.osf-plp #product-list.layout-gallery > .product-wrapper {
  display: flex;
  flex-direction: column;
}

.osf-plp #product-list.layout-gallery > .product-wrapper > .osf-product-card.productbox {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100%;
}

.osf-plp #product-list.layout-gallery .osf-product-card .productbox-inner {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

.osf-plp #product-list.layout-gallery .osf-product-card .osf-product-card__body-col {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-card-extras--gallery {
  margin: 0.2rem 0 0.15rem;
  gap: 0.35rem;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__actions.osf-plp-gallery-actions {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  padding: 0.2rem 1rem 0.65rem;
  margin-top: auto;
  margin-left: 0;
  margin-right: 0;
  --osf-plp-action-height: 40px;
  --osf-gallery-qty-height: var(--osf-plp-action-height, 40px);
  display: block;
}

/* Legacy base: .basket-details-add-to-cart { margin-top: 1rem } — breaks row alignment with qty */
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions .osf-plp-actions-inner,
.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner {
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  align-content: center;
  gap: 0.5rem;
  width: 100%;
  min-width: 0;
  min-height: var(--osf-plp-action-height, 40px);
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions .osf-plp-actions-inner > .osf-plp-gallery-actions__qty,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions .osf-plp-actions-inner > .btn-osf-plp-gallery-cta,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions .osf-plp-actions-inner > .basket-details-add-to-cart,
.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty,
.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .btn-osf-plp-gallery-cta,
.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .basket-details-add-to-cart {
  margin: 0 !important;
  vertical-align: middle;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions__qty {
  flex: 0 0 auto;
  flex-shrink: 0;
  align-self: center;
  min-width: 0;
  max-width: 42%;
  margin: 0;
  padding: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions__qty .form-counter {
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  width: auto;
  max-width: 9.5rem;
  height: var(--osf-plp-action-height, 40px);
  min-height: var(--osf-plp-action-height, 40px);
  max-height: var(--osf-plp-action-height, 40px);
  margin: 0;
  padding: 0;
  border-radius: var(--osf-radius-btn);
  overflow: hidden;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions__qty .form-counter > .input-group-prepend,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions__qty .form-counter > .input-group-append {
  display: flex;
  align-items: stretch;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions__qty .form-counter > .input-group-prepend > .btn,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions__qty .form-counter > .input-group-append > .btn {
  height: 100%;
  min-height: 0;
  margin: 0 !important;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions__qty .form-counter .form-control {
  box-sizing: border-box;
  height: 100%;
  min-height: 0;
  line-height: 1.2;
  font-size: 0.8125rem;
  padding: 0 0.3rem;
  min-width: 2rem;
  max-width: 2.75rem;
  margin: 0;
  border-radius: 0;
  align-self: stretch;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions__qty .form-counter .btn {
  box-sizing: border-box;
  height: 100%;
  min-height: 0;
  line-height: 1;
  padding: 0 0.45rem;
  font-size: 0.7rem;
  margin: 0 !important;
  align-self: stretch;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions .btn-osf-plp-gallery-cta,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions .basket-details-add-to-cart.btn-osf-plp-gallery-cta {
  flex: 1 1 auto;
  flex-shrink: 1;
  align-self: center;
  min-width: 0;
  max-width: 100%;
  width: auto;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  font-weight: 600;
  font-size: 0.8125rem;
  line-height: 1.2;
  white-space: nowrap;
  padding: 0 0.55rem;
  height: var(--osf-plp-action-height, 40px);
  min-height: var(--osf-plp-action-height, 40px);
  max-height: var(--osf-plp-action-height, 40px);
  margin: 0 !important;
  overflow: hidden;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-cta__icon {
  display: none;
  font-size: 0.95em;
  line-height: 1;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions .btn-osf-plp-gallery-cta--icon-only {
  flex: 0 0 auto;
  width: var(--osf-plp-action-height, 40px);
  min-width: var(--osf-plp-action-height, 40px);
  max-width: var(--osf-plp-action-height, 40px);
  padding-left: 0;
  padding-right: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions .btn-osf-plp-gallery-cta--icon-only .osf-plp-gallery-cta__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-gallery-actions .btn-osf-plp-gallery-cta--icon-only .osf-plp-gallery-cta__icon {
  display: inline-block;
  margin: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper {
  padding: 0.15rem 1rem 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 0.45rem;
  row-gap: 0.1rem;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper .price_label {
  flex: 0 0 100%;
  margin-bottom: 0;
  line-height: 1.2;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper > .price {
  flex: 0 0 auto;
  margin: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper .price-note {
  flex: 1 1 auto;
  margin: 0;
  min-width: 0;
  display: contents;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper .price-note > .base-price {
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1.2;
  color: #64748b;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper .price-note > .base-price .value {
  display: inline;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper .price-note > .old-price,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper .price-note > .instead-of,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper .price-note > .discount {
  flex: 0 0 100%;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-price,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--secondary, #525252);
  line-height: 1.2;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price.special-price,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-price.special-price {
  color: var(--danger, #b90000);
}

/* Gallery cards: hide availability badge + delivery time */
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-plp-availability {
  display: none !important;
}

/* Reserved height so cards without reviews align with rated products */
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__rating {
  min-height: 1.125rem;
  padding: 0.1rem 1rem 0;
  flex-shrink: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__rating .rating {
  padding: 0;
  font-size: 0.8125rem;
  line-height: 1;
}

/* Availability badges on cards (list view; gallery hides via layout-gallery rule) */
.osf-plp .osf-plp-availability {
  padding: 0.35rem 1rem 0.75rem;
  margin-bottom: 0;
}

.osf-plp .osf-plp-availability .signal_image,
.osf-plp .osf-plp-availability .status {
  display: inline-flex;
  align-items: center;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.3;
  padding: 0.2rem 0.55rem;
  border-radius: var(--osf-radius-sm);
  background: var(--light, #f5f7fa);
}

.osf-plp .osf-plp-availability .status-0,
.osf-plp .osf-plp-availability .signal_image.status-0 {
  color: var(--danger, #b90000);
  background: rgba(185, 0, 0, 0.08);
}

.osf-plp .osf-plp-availability .status-1,
.osf-plp .osf-plp-availability .signal_image.status-1 {
  color: var(--osf-brand, #1789ad);
  background: rgba(var(--osf-brand-rgb, 23, 137, 173), 0.12);
}

.osf-plp .osf-plp-availability .status-2,
.osf-plp .osf-plp-availability .signal_image.status-2 {
  color: var(--success, #1c871e);
  background: rgba(28, 135, 30, 0.1);
}

/* Ribbons / badges — inside card bounds (productbox-inner has overflow:hidden) */
.osf-plp .osf-product-card .productbox-ribbon.ribbon,
.osf-plp #product-list.layout-list .productbox-row .productbox-ribbon.ribbon {
  z-index: 3;
  top: 0.75rem;
  left: 0.75rem;
  border-radius: var(--osf-radius-sm);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}

.osf-plp .osf-product-card .ribbon-1,
.osf-plp .osf-product-card .ribbon-2,
.osf-plp .osf-product-card .ribbon-4,
.osf-plp .osf-product-card .ribbon-5,
.osf-plp .osf-product-card .ribbon-6,
.osf-plp #product-list.layout-list .productbox-row .ribbon-1,
.osf-plp #product-list.layout-list .productbox-row .ribbon-2,
.osf-plp #product-list.layout-list .productbox-row .ribbon-4,
.osf-plp #product-list.layout-list .productbox-row .ribbon-5,
.osf-plp #product-list.layout-list .productbox-row .ribbon-6 {
  background: linear-gradient(135deg, var(--osf-brand, #1789ad) 0%, var(--osf-accent, #35d7ff) 100%);
  color: var(--osf-text-on-brand, #ffffff);
}

.osf-plp .osf-product-card .ribbon-1::before,
.osf-plp .osf-product-card .ribbon-2::before,
.osf-plp .osf-product-card .ribbon-4::before,
.osf-plp .osf-product-card .ribbon-5::before,
.osf-plp .osf-product-card .ribbon-6::before,
.osf-plp #product-list.layout-list .productbox-row .ribbon-1::before,
.osf-plp #product-list.layout-list .productbox-row .ribbon-2::before,
.osf-plp #product-list.layout-list .productbox-row .ribbon-4::before,
.osf-plp #product-list.layout-list .productbox-row .ribbon-5::before,
.osf-plp #product-list.layout-list .productbox-row .ribbon-6::before {
  border-right-color: var(--osf-brand, #1789ad);
}

.osf-plp .osf-product-card .ribbon-3,
.osf-plp #product-list.layout-list .productbox-row .ribbon-3 {
  background-color: var(--success, #1c871e);
  color: #ffffff;
}

/* Card hover: onestorefront-legacy-neutralize.css (osf-card--interactive / global legacy neutralize) */

/* List view polish */
.osf-plp #product-list.layout-list .productbox-row {
  border: 1px solid var(--osf-plp-border);
  border-radius: var(--osf-plp-radius, var(--osf-radius-lg, 1.25rem));
  margin-bottom: 1rem;
  background: #fff;
  box-shadow: var(--osf-plp-shadow);
  overflow: hidden;
}

/* List view: inline variation picker (always visible, no hover gate) */
.osf-plp #product-list.layout-list .productbox-row .productbox-variations--list-inline {
  display: block !important;
  opacity: 1;
  margin-bottom: 0.5rem;
}

.osf-plp #product-list.layout-list .productbox-row.osf-card--interactive:not(:hover, :focus, .focus) .productbox-variations--list-inline,
.osf-plp #product-list.layout-list .productbox-row.osf-card--interactive:not(:hover, :focus, .focus) .item-list-basket-details:not(.productbox-onhover) {
  opacity: 1;
}

.osf-plp #product-list.layout-list .productbox-variations--list-inline .variations {
  margin: 0;
}

.osf-plp #product-list.layout-list .productbox-variations--list-inline dl {
  margin: 0;
}

.osf-plp #product-list.layout-list .productbox-variations--list-inline dt {
  font-size: 0.8125rem;
  font-weight: 600;
  margin-bottom: 0.35rem;
}

.osf-plp #product-list.layout-list .productbox-variations--list-inline dd.form-group {
  margin-bottom: 0;
}

.osf-plp #product-list.layout-list .productbox-variations--list-inline .swatches.imgswatches,
.osf-plp #product-list.layout-list .productbox-variations--list-inline .swatches.textswatches {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin: 0;
}

.osf-plp #product-list.layout-list .productbox-variations--list-inline .variation.swatches-text,
.osf-plp #product-list.layout-list .productbox-variations--list-inline .variation.gall-preview.swatches-text,
.osf-plp #product-list.layout-list .productbox-variations--list-inline .variation.swatches:not(.swatches-image) {
  min-width: auto;
  padding: 0.2rem 0.45rem;
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.25;
  border: 1px solid var(--osf-plp-border);
  border-radius: var(--osf-radius-sm);
  background: #fff;
  white-space: nowrap;
}

.osf-plp #product-list.layout-list .productbox-variations--list-inline .variation.swatches.swatches-image {
  min-width: 2.5rem;
  max-width: 2.75rem;
  padding: 0;
}

.osf-plp #product-list.layout-list .productbox-variations--list-inline .variation.swatches.swatches-image img {
  width: 100%;
  height: 2.25rem;
  object-fit: cover;
}

/* List view: keep card content inside bounds (gallery parity) */
.osf-plp #product-list.layout-list .productbox-row,
.osf-plp #product-list.layout-list .productbox-row .productbox-inner {
  overflow: hidden;
  min-width: 0;
  max-width: 100%;
}

.osf-plp #product-list.layout-list .productbox-row .productbox-inner > .row {
  min-width: 0;
  margin-left: 0;
  margin-right: 0;
}

.osf-plp #product-list.layout-list .productbox-row .productbox-inner > .row > [class*="col-"] {
  min-width: 0;
  max-width: 100%;
}

/* List view: hide variation header row (Merkmal + Auswahltext) when theme option enabled */
.osf-plp #product-list.layout-list .osf-plp-list--variation-compact-heading .osf-detail-variation__header {
  display: none !important;
}

.osf-plp #product-list.layout-list .osf-plp-list--variation-compact-heading .osf-detail-variation__body {
  margin-top: 0;
}

/* List view: denser typography when "Kompakt" is enabled */
.osf-plp #product-list.layout-list .productbox-row.osf-plp-list-row--compact .productbox-title {
  font-size: 0.95rem;
  line-height: 1.2;
}

.osf-plp #product-list.layout-list .productbox-row.osf-plp-list-row--compact .item-list-description {
  font-size: 0.8125rem;
  line-height: 1.35;
}

.osf-plp #product-list.layout-list .productbox-row.osf-plp-list-row--compact .productlist-item-detail {
  font-size: 0.8125rem;
}

.osf-plp #product-list.layout-list .productbox-row.osf-plp-list-row--compact .item-list-price .price_wrapper > .price {
  font-size: 0.9375rem;
}

.osf-plp #product-list.layout-list .productbox-row.osf-plp-list-row--compact .item-list-price .price_wrapper .price-note > .base-price {
  font-size: 0.625rem;
}

.osf-plp #product-list.layout-list .productbox-row.osf-plp-list-row--compact .osf-plp-card-extras--list {
  margin-top: 0.15rem;
  margin-bottom: 0.25rem;
  gap: 0.25rem;
}

.osf-plp #product-list.layout-list .productbox-row.osf-plp-list-row--compact .osf-plp-list-buy-col {
  gap: 0.25rem;
}

.osf-plp #product-list.layout-list .productbox-row.osf-plp-list-row--compact .osf-detail-variations {
  margin-bottom: 0.15rem;
}

.osf-plp #product-list.layout-list .productbox-row.osf-plp-list-row--compact .custom-select,
.osf-plp #product-list.layout-list .productbox-row.osf-plp-list-row--compact .bootstrap-select > .dropdown-toggle {
  font-size: 0.8125rem;
  min-height: 2.25rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.osf-plp #product-list.layout-list .productbox-row.osf-plp-list-row--compact .osf-plp-list-actions .osf-plp-actions-inner > .basket-details-add-to-cart.btn-osf-plp-gallery-cta {
  font-size: 0.875rem;
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
}

.osf-plp #product-list.layout-list .productbox-row.osf-plp-list-row--compact .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty .form-counter .form-control {
  font-size: 0.875rem;
  height: 2.25rem;
}

.osf-plp #product-list.layout-list .productbox-row.osf-plp-list-row--compact .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty .form-counter .btn {
  width: 2.25rem;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0;
}

  margin-bottom: 0.35rem;
  line-height: 1.25;
}

.osf-plp #product-list.layout-list .item-list-price {
  margin-bottom: 0.25rem;
}

.osf-plp #product-list.layout-list .item-list-price .price_wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 0.45rem;
  row-gap: 0.1rem;
  min-width: 0;
}

.osf-plp #product-list.layout-list .item-list-price .price_wrapper .price_label {
  flex: 0 0 100%;
  margin-bottom: 0;
  line-height: 1.2;
}

.osf-plp #product-list.layout-list .item-list-price .price_wrapper > .price {
  flex: 0 0 auto;
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.2;
}

.osf-plp #product-list.layout-list .item-list-price .price_wrapper .price-note {
  flex: 1 1 auto;
  margin: 0;
  min-width: 0;
  display: contents;
}

.osf-plp #product-list.layout-list .item-list-price .price_wrapper .price-note > .base-price {
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1.2;
  color: #64748b;
}

.osf-plp #product-list.layout-list .item-list-price .price_wrapper .price-note > .base-price .value {
  display: inline;
}

.osf-plp #product-list.layout-list .item-list-price .price_wrapper .price-note > .old-price,
.osf-plp #product-list.layout-list .item-list-price .price_wrapper .price-note > .instead-of,
.osf-plp #product-list.layout-list .item-list-price .price_wrapper .price-note > .discount {
  flex: 0 0 100%;
}

.osf-plp #product-list.layout-list .osf-plp-card-extras--list {
  margin: 0.2rem 0 0.35rem;
  gap: 0.35rem;
  max-width: 100%;
  min-width: 0;
}

.osf-plp #product-list.layout-list .osf-plp-list-buy-col {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.osf-plp #product-list.layout-list .productbox-variations--list-inline {
  overflow: hidden;
  max-width: 100%;
}

.osf-plp #product-list.layout-list .osf-plp-list-buy-col .item-list-basket-details,
.osf-plp #product-list.layout-list .osf-plp-list-actions {
  box-sizing: border-box;
  --osf-plp-action-height: 40px;
  --osf-gallery-qty-height: var(--osf-plp-action-height, 40px);
  display: block;
  margin-top: 0.15rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

/* Legacy base: .item-list-basket-details { margin-top: 2rem } — only outer spacing, not between qty/CTA */
.osf-plp #product-list.layout-list .osf-plp-list-actions.item-list-basket-details {
  margin-top: 0.15rem;
}

.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty {
  flex: 0 0 auto;
  flex-shrink: 0;
  align-self: center;
  min-width: 0;
  max-width: 42%;
  margin: 0;
  padding: 0;
}

.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty .form-counter {
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  width: auto;
  max-width: 9.5rem;
  height: var(--osf-plp-action-height, 40px);
  min-height: var(--osf-plp-action-height, 40px);
  max-height: var(--osf-plp-action-height, 40px);
  margin: 0;
  padding: 0;
  border-radius: var(--osf-radius-btn);
  overflow: hidden;
}

.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty .form-counter > .input-group-prepend,
.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty .form-counter > .input-group-append {
  display: flex;
  align-items: stretch;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
}

.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty .form-counter > .input-group-prepend > .btn,
.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty .form-counter > .input-group-append > .btn {
  height: 100%;
  min-height: 0;
  margin: 0 !important;
}

.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty .form-counter .form-control {
  box-sizing: border-box;
  height: 100%;
  min-height: 0;
  line-height: 1.2;
  font-size: 0.8125rem;
  padding: 0 0.3rem;
  min-width: 2rem;
  max-width: 2.75rem;
  margin: 0;
  border-radius: 0;
  align-self: stretch;
}

.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty .form-counter .btn {
  box-sizing: border-box;
  height: 100%;
  min-height: 0;
  line-height: 1;
  padding: 0 0.45rem;
  font-size: 0.7rem;
  margin: 0 !important;
  align-self: stretch;
}

.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .btn-osf-plp-gallery-cta,
.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .basket-details-add-to-cart.btn-osf-plp-gallery-cta {
  flex: 1 1 auto;
  flex-shrink: 1;
  align-self: center;
  min-width: 0;
  max-width: 100%;
  width: auto;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  font-weight: 600;
  font-size: 0.8125rem;
  line-height: 1.2;
  white-space: nowrap;
  padding: 0 0.55rem;
  height: var(--osf-plp-action-height, 40px);
  min-height: var(--osf-plp-action-height, 40px);
  max-height: var(--osf-plp-action-height, 40px);
  margin: 0 !important;
  overflow: hidden;
}

.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .btn-osf-plp-gallery-cta--icon-only,
.osf-plp #product-list.layout-list .osf-plp-list-actions .btn-osf-plp-gallery-cta--icon-only {
  flex: 0 0 auto;
  width: var(--osf-plp-action-height, 40px);
  min-width: var(--osf-plp-action-height, 40px);
  max-width: var(--osf-plp-action-height, 40px);
  padding-left: 0;
  padding-right: 0;
}

.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .btn-osf-plp-gallery-cta--icon-only .osf-plp-gallery-cta__label,
.osf-plp #product-list.layout-list .osf-plp-list-actions .btn-osf-plp-gallery-cta--icon-only .osf-plp-gallery-cta__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .btn-osf-plp-gallery-cta--icon-only .osf-plp-gallery-cta__icon,
.osf-plp #product-list.layout-list .osf-plp-list-actions .btn-osf-plp-gallery-cta--icon-only .osf-plp-gallery-cta__icon {
  display: inline-block;
  margin: 0;
}

.osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-gallery-cta__icon {
  display: none;
  font-size: 0.95em;
  line-height: 1;
}

.osf-plp #product-list.layout-list .osf-plp-list-actions__notice {
  flex: 1 1 100%;
}

.osf-plp #product-list.layout-list .productbox-variations--list-inline .bootstrap-select {
  display: none !important;
}

.osf-plp #product-list.layout-list .productbox-variations--list-inline .osf-variation-swatches--scroll {
  max-height: 4.5rem;
}

/* Subcategory tiles */
.osf-plp .content-cats-small .sub-categories {
  border: 1px solid var(--osf-plp-border);
  border-radius: var(--osf-plp-radius, var(--osf-radius-lg, 1.25rem));
  padding: 1rem;
  background: #fff;
  overflow: hidden;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.osf-plp .content-cats-small .sub-categories:hover {
  border-color: rgba(31, 157, 203, 0.35);
  box-shadow: var(--osf-plp-shadow-hover);
}

.osf-plp .content-cats-small .subcategories-image img {
  border-radius: var(--osf-radius-btn);
}

/* PLP: Kategorien-Box ausblenden (Setting plp_hide_category_box, Default Ja) */
.osf-plp-hide-category-box.is-item-list #sidepanel_left .box-categories,
.osf-plp-hide-category-box.is-item-list #sidepanel_left .box.box-categories,
.osf-plp-hide-category-box.is-item-list #sidepanel_left [id^="sidebox-categories-"],
.osf-plp-page.osf-plp-hide-category-box #sidepanel_left .box-categories,
.osf-plp-page.osf-plp-hide-category-box #sidepanel_left .box.box-categories {
  display: none !important;
}

/* PLP: Suchfilter-Box ausblenden (Setting plp_hide_search_filter; JTL: Suchtrefferfilter benutzen) */
.osf-plp-hide-search-filter.is-item-list #sidepanel_left .box.box-search-category,
.osf-plp-page.osf-plp-hide-search-filter #sidepanel_left .box.box-search-category {
  display: none !important;
}

/* --------------------------------------------------------------------------
   Filter sidebar (desktop) — legacy-narrow column (~18rem), flex-safe
   -------------------------------------------------------------------------- */
@media (min-width: 992px) {
  .is-item-list.has-left-sidebar .row.justify-content-lg-end > .col-lg-8.col-xl-9.ml-auto-util {
    flex: 1 1 0;
    min-width: 0;
    max-width: none;
    width: auto;
  }

  .is-item-list #sidepanel_left.sidepanel-left {
    --osf-plp-radius: var(--osf-radius-lg, 1.25rem);
    position: sticky;
    top: 1rem;
    align-self: flex-start;
    flex: 0 0 18rem;
    max-width: 18rem;
    width: auto;
    min-width: 0;
    max-height: calc(100vh - 2rem);
    overflow-x: hidden;
    overflow-y: auto;
    padding-right: 1rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .is-item-list #sidepanel_left.sidepanel-left > * {
    flex-shrink: 0;
    min-height: min-content;
  }

  .is-item-list #sidepanel_left .box[class*="box-filter"],
  .is-item-list #sidepanel_left .box.box-categories,
  .is-item-list #sidepanel_left .box.box-search-category,
  .is-item-list #sidepanel_left .box.box-normal,
  #sidepanel_left .box.box-slider {
    background: var(--osf-plp-filter-bg, rgba(var(--osf-brand-rgb, 23, 137, 173), 0.14));
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(var(--osf-accent-rgb, 53, 215, 255), 0.28);
    border-radius: var(--osf-plp-radius, var(--osf-radius-lg, 1.25rem));
    box-shadow: 0 2px 10px rgba(var(--osf-brand-rgb, 23, 137, 173), 0.1);
    margin-bottom: 0;
    padding: 0.75rem 1rem 0.5rem;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    flex-shrink: 0;
    overflow: hidden;
  }

  /* Sidebar product slider (e.g. Neu im Sortiment) — align headline + slide to box padding */
  #sidepanel_left .box.box-slider .card-body {
    padding: 0;
    min-width: 0;
    max-width: 100%;
  }

  #sidepanel_left .box.box-slider .productlist-filter-headline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 0 0.65rem;
    padding: 0 0 0.5rem;
    box-sizing: border-box;
    overflow: visible;
  }

  #sidepanel_left .box.box-slider .productlist-filter-headline .more {
    float: none;
    flex-shrink: 0;
    margin: 0;
    line-height: 1;
  }

  #sidepanel_left .box.box-slider .slick-slider-mb {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
  }

  #sidepanel_left .box.box-slider .slick-list {
    margin: 0;
    padding: 0 !important;
    overflow: hidden;
  }

  #sidepanel_left .box.box-slider .slick-slide {
    padding: 0 !important;
  }

  #sidepanel_left .box.box-slider .slick-slide > div {
    width: 100% !important;
  }

  #sidepanel_left .box.box-slider .product-wrapper-product {
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    box-sizing: border-box;
  }

  #sidepanel_left .box.box-slider .osf-item-slider-card {
    min-width: 0;
    max-width: 100%;
    gap: 0.35rem;
  }

  #sidepanel_left .box.box-slider .item-slider-desc,
  #sidepanel_left .box.box-slider .item-slider-price {
    text-align: left;
  }

  #sidepanel_left .box.box-slider .item-slider.productbox-image {
    border-radius: var(--osf-radius-md, 0.75rem);
    overflow: hidden;
  }

  #sidepanel_left .box.box-slider .carousel-arrows-inside .slick-prev {
    left: 0.2rem;
    transform: translate(0, -50%);
  }

  #sidepanel_left .box.box-slider .carousel-arrows-inside .slick-next {
    right: 0.2rem;
    transform: translate(0, -50%);
  }

  .osf-shop-cc-theme #sidepanel_left .box.box-slider .product-wrapper-product > .osf-item-slider-card {
    background: rgba(255, 255, 255, 0.62) !important;
    border: 1px solid rgba(var(--osf-accent-rgb, 53, 215, 255), 0.22) !important;
    border-radius: var(--osf-radius-md, 0.75rem) !important;
    padding: 0.45rem 0.5rem 0.55rem !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06) !important;
  }

  /* Sticky flex column + Bootstrap collapse clipped filter bodies — keep expanded on desktop */
  .is-item-list #sidepanel_left .box > .collapse,
  .osf-plp-page .osf-plp-panel #sidepanel_left .box > .collapse,
  .is-item-list .osf-plp-panel #sidepanel_left .box > .collapse {
    display: block !important;
    height: auto !important;
    visibility: visible;
  }

  .is-item-list #sidepanel_left .box > .collapse.collapsing,
  .osf-plp-page .osf-plp-panel #sidepanel_left .box > .collapse.collapsing,
  .is-item-list .osf-plp-panel #sidepanel_left .box > .collapse.collapsing {
    height: auto !important;
    transition: none;
  }

  .is-item-list #sidepanel_left .productlist-filter-headline,
  .is-item-list #sidepanel_left .btn-filter-box {
    font-weight: 700;
    font-size: 0.9375rem;
    color: var(--secondary, #525252);
  }

  .is-item-list #sidepanel_left .btn-filter-box {
    padding-left: 0;
    padding-right: 0;
    text-decoration: none;
    border-radius: var(--osf-radius-btn);
  }

  .is-item-list #sidepanel_left .btn-filter-box:hover {
    color: var(--primary, #1789ad);
  }

  .is-item-list #sidepanel_left .box-categories .nav-link,
  .is-item-list #sidepanel_left .price-range-inputs .form-control,
  .is-item-list #sidepanel_left .price-range-inputs .input-group-text,
  .is-item-list #sidepanel_left .noUi-target {
    border-radius: var(--osf-radius-btn);
  }

  .is-item-list #sidepanel_left .noUi-handle {
    border-radius: var(--osf-radius-pill);
  }

  .is-item-list #sidepanel_left .filter-item {
    border-radius: var(--osf-radius-btn);
    padding: 0.35rem 0.25rem;
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .is-item-list #sidepanel_left .box-link-wrapper,
  .is-item-list #sidepanel_left .btn-filter-box {
    min-width: 0;
    max-width: 100%;
  }

  .is-item-list #sidepanel_left .filter-item.active {
    background: rgba(var(--osf-brand-rgb, 23, 137, 173), 0.12);
    color: var(--osf-heading, #000000);
    font-weight: 600;
  }

  .is-item-list #sidepanel_left .filter-item .badge {
    font-size: 0.7rem;
    border-color: var(--osf-plp-border, rgba(82, 82, 82, 0.12));
  }

  .is-item-list #sidepanel_left .box-filter-hr {
    border-color: var(--osf-plp-border, rgba(82, 82, 82, 0.12));
    margin: 0.75rem 0 0;
  }
}

/* --------------------------------------------------------------------------
   PLP category page — Kalorienrechner layout (breadcrumb + shop surface, glass panel)
   Same --osf-surface gradient as desktop / onestorefront-shop-cc-theme.css (no flat white tint).
   -------------------------------------------------------------------------- */
.osf-shop-cc-theme #content-wrapper.is-item-list,
.osf-shop-cc-theme #content-wrapper:has(.osf-plp) {
  padding-top: 0 !important;
  background: linear-gradient(
    165deg,
    rgba(var(--osf-brand-rgb, 23, 137, 173), 0.09) 0%,
    rgba(var(--osf-accent-rgb, 53, 215, 255), 0.05) 28%,
    var(--osf-surface, #f5f8fa) 32%
  ) !important;
  background-color: var(--osf-surface, #f5f8fa) !important;
}

.osf-shop-cc-theme #content-wrapper.is-item-list > .breadcrumb-container,
.osf-shop-cc-theme #content-wrapper:has(.osf-plp) > .breadcrumb-container {
  background: transparent !important;
  background-color: transparent !important;
  padding-top: clamp(0.75rem, 2vw, 1.25rem) !important;
  padding-bottom: 0.35rem !important;
  margin-bottom: 0 !important;
}

.osf-shop-cc-theme #content-wrapper.is-item-list > .breadcrumb-container .breadcrumb-wrapper,
.osf-shop-cc-theme #content-wrapper:has(.osf-plp) > .breadcrumb-container .breadcrumb-wrapper {
  margin-bottom: 0 !important;
  border-width: 0 !important;
}

.osf-shop-cc-theme #content-wrapper.is-item-list .breadcrumb-item a,
.osf-shop-cc-theme #content-wrapper:has(.osf-plp) .breadcrumb-item a,
.osf-shop-cc-theme #content-wrapper.is-item-list .breadcrumb-item.active,
.osf-shop-cc-theme #content-wrapper:has(.osf-plp) .breadcrumb-item.active,
.osf-shop-cc-theme #content-wrapper.is-item-list .breadcrumb [itemprop="name"],
.osf-shop-cc-theme #content-wrapper:has(.osf-plp) .breadcrumb [itemprop="name"] {
  color: #334155;
}

.osf-shop-cc-theme #content-wrapper.is-item-list > #content,
.osf-shop-cc-theme #content-wrapper:has(.osf-plp) > #content {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  padding-top: 0 !important;
}

.osf-plp-page {
  --osf-plp-panel-filter-bg: rgba(var(--osf-brand-rgb, 23, 137, 173), 0.2);
  max-width: min(96rem, 100%);
  margin-left: auto;
  margin-right: auto;
  padding: 0 clamp(1rem, 2.5vw, 2rem) clamp(1.5rem, 4vw, 2.5rem);
  box-sizing: border-box;
}

.osf-plp-chrome {
  margin-bottom: clamp(1rem, 2.5vw, 1.75rem);
}

.osf-plp-chrome .osf-plp-header__title {
  font-size: clamp(1.5rem, 4vw, 2.25rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--osf-heading, #000000);
  margin-bottom: 0.5rem;
}

.osf-plp-chrome .productlist-header-description-image,
.osf-plp-chrome .osf-plp-chrome__image {
  border-radius: var(--osf-plp-radius, var(--osf-radius-md, 0.75rem));
  margin-bottom: 1rem;
}

.osf-plp-panel,
.osf-shop-cc-theme #content-wrapper:has(.osf-plp) > #content > #result-wrapper.osf-plp {
  background: var(--osf-glass-mix);
  backdrop-filter: blur(var(--osf-glass-blur, 16px));
  -webkit-backdrop-filter: blur(var(--osf-glass-blur, 16px));
  border: 1px solid rgba(var(--osf-accent-rgb, 53, 215, 255), 0.28);
  border-radius: var(--osf-radius-lg, 1.25rem);
  box-shadow: var(--osf-glass-shadow, 0 8px 32px rgba(var(--osf-brand-rgb, 23, 137, 173), 0.12));
  padding: clamp(1.25rem, 3vw, 2rem);
  margin-left: 0;
  margin-right: 0;
}

.osf-plp-panel #result-wrapper.osf-plp {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}

@media (min-width: 992px) {
  .osf-plp-page .osf-plp-panel #sidepanel_left.sidepanel-left,
  .is-item-list .osf-plp-panel #sidepanel_left.sidepanel-left {
    background: transparent !important;
    box-shadow: none !important;
    padding-right: 1rem !important;
    padding-left: 0 !important;
  }

  .osf-plp-page .osf-plp-panel #sidepanel_left .box[class*="box-filter"],
  .osf-plp-page .osf-plp-panel #sidepanel_left .box.box-categories,
  .osf-plp-page .osf-plp-panel #sidepanel_left .box.box-search-category,
  .is-item-list .osf-plp-panel #sidepanel_left .box[class*="box-filter"],
  .is-item-list .osf-plp-panel #sidepanel_left .box.box-categories,
  .is-item-list .osf-plp-panel #sidepanel_left .box.box-search-category {
    background: linear-gradient(
      155deg,
      rgba(var(--osf-brand-rgb, 23, 137, 173), 0.26) 0%,
      rgba(var(--osf-accent-rgb, 53, 215, 255), 0.16) 45%,
      rgba(255, 255, 255, 0.78) 100%
    ) !important;
    border-color: rgba(var(--osf-accent-rgb, 53, 215, 255), 0.34) !important;
    box-shadow: 0 2px 12px rgba(var(--osf-brand-rgb, 23, 137, 173), 0.14) !important;
  }
}

/* Mobile filter modal */
.osf-plp .modal#collapseFilter .modal-content {
  border-radius: var(--osf-plp-radius);
  border: none;
}

.osf-plp .modal#collapseFilter .modal-header {
  border-bottom: 1px solid var(--osf-plp-border);
}

.osf-plp .productlist-filter-footer {
  border-top: 1px solid var(--osf-plp-border);
}

/* --------------------------------------------------------------------------
   Shop-wide rounded UI (buttons, forms, panels — not raw product photos)
   -------------------------------------------------------------------------- */
.osf-shop-cc-theme .btn:not(.btn-link):not(.btn-close):not(.navbar-toggler):not(.page-link):not(.slick-arrow),
.osf-shop-cc-theme a.btn:not(.btn-link):not(.page-link),
.osf-shop-cc-theme button.btn:not(.navbar-toggler):not(.slick-arrow) {
  border-radius: var(--osf-radius-btn-pill, 9999px) !important;
}

.btn,
a.btn,
button.btn,
.label,
.badge:not(.badge-pill) {
  border-radius: var(--osf-radius-btn);
}

.btn-sm,
.btn-group-sm > .btn {
  border-radius: var(--osf-radius-sm);
}

.btn-lg,
.btn-group-lg > .btn {
  border-radius: var(--osf-radius-btn);
}

.badge-pill,
.badge.rounded-pill {
  border-radius: var(--osf-radius-pill);
}

.form-control,
.custom-select,
select.form-control,
textarea.form-control,
.custom-file-label,
.custom-file-label::after,
.quantity-wrapper .form-control,
#quantity-grp .form-control,
.input-group .form-control {
  border-radius: var(--osf-radius-btn);
}

.input-group > .form-control:first-child,
.input-group > .custom-select:first-child,
.input-group > .input-group-prepend + .form-control,
.input-group > .input-group-prepend + .custom-select {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.input-group > .form-control:last-child,
.input-group > .custom-select:last-child,
.input-group > .form-control:not(:first-child),
.input-group > .custom-select:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.input-group > .input-group-append > .btn,
.input-group > .input-group-prepend > .btn,
.input-group > .input-group-append > .input-group-text,
.input-group > .input-group-prepend > .input-group-text {
  border-radius: var(--osf-radius-btn);
}

.input-group > .input-group-prepend:first-child > .btn,
.input-group > .input-group-prepend:first-child > .input-group-text {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.input-group > .input-group-append:last-child > .btn,
.input-group > .input-group-append:last-child > .input-group-text {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

/* Footer newsletter pill — after global .input-group flatten; beats brand-glass .btn-secondary */
#footer .osf-footer-newsletter .newsletter-email-wrapper .input-group:not(.has-validation) > #newsletter_email.form-control:not(:last-child),
#footer .osf-footer-newsletter .newsletter-email-wrapper .input-group > #newsletter_email,
#footer .osf-footer-newsletter .newsletter-email-wrapper .input-group > .form-control:first-child {
  border-radius: var(--osf-radius-btn-pill, 9999px) 0 0 var(--osf-radius-btn-pill, 9999px) !important;
}

#footer .osf-footer-newsletter .newsletter-email-wrapper .input-group-append .btn,
#footer .osf-footer-newsletter #newsletter_email ~ .input-group-append .btn,
.osf-shop-cc-theme #footer .osf-footer-newsletter .newsletter-email-wrapper .input-group-append .btn,
.osf-shop-cc-theme #footer .osf-footer-newsletter #newsletter_email ~ .input-group-append .btn {
  border-radius: 0 var(--osf-radius-btn-pill, 9999px) var(--osf-radius-btn-pill, 9999px) 0 !important;
}

.card,
.box,
.panel,
.productbox-inner {
  border-radius: var(--osf-radius-md);
}

.list-group {
  border-radius: var(--osf-radius-md);
  overflow: hidden;
}

.list-group-item:first-child {
  border-top-left-radius: var(--osf-radius-md);
  border-top-right-radius: var(--osf-radius-md);
}

.list-group-item:last-child {
  border-bottom-left-radius: var(--osf-radius-md);
  border-bottom-right-radius: var(--osf-radius-md);
}

.card-header:first-child {
  border-top-left-radius: var(--osf-radius-md);
  border-top-right-radius: var(--osf-radius-md);
}

.card-footer:last-child {
  border-bottom-left-radius: var(--osf-radius-md);
  border-bottom-right-radius: var(--osf-radius-md);
}

.modal-content,
.popover,
.toast,
.dropdown-menu,
.nav-pills .nav-link,
.alert,
.well,
.productlist-filter-footer .btn,
#sidepanel_left .box {
  border-radius: var(--osf-radius-lg, 1.25rem);
}

.dropdown-menu .dropdown-item:first-child {
  border-top-left-radius: calc(var(--osf-radius-md) - 2px);
  border-top-right-radius: calc(var(--osf-radius-md) - 2px);
}

.dropdown-menu .dropdown-item:last-child {
  border-bottom-left-radius: calc(var(--osf-radius-md) - 2px);
  border-bottom-right-radius: calc(var(--osf-radius-md) - 2px);
}

.pagination .page-link {
  border-radius: var(--osf-radius-btn);
}

.nav-tabs .nav-link {
  border-top-left-radius: var(--osf-radius-btn);
  border-top-right-radius: var(--osf-radius-btn);
}

.progress {
  border-radius: var(--osf-radius-pill);
}

.progress-bar {
  border-radius: var(--osf-radius-pill);
}

.custom-control-label::before {
  border-radius: var(--osf-radius-sm);
}

.custom-checkbox .custom-control-label::before {
  border-radius: var(--osf-radius-sm);
}

.custom-radio .custom-control-label::before,
.custom-switch .custom-control-label::before {
  border-radius: var(--osf-radius-pill);
}

/* Keep product photos square; rounding comes from card/gallery wrappers */
.productbox-image img,
.square-image .inner img,
.product-image img,
#product-images img,
.gallery-image img,
.image-box img,
#gallery .carousel-item img,
.product-detail-image img {
  border-radius: 0;
}

/* [AI_EDIT_END] */

/* --------------------------------------------------------------------------
   Cart drawer (Inlead-style mini cart)
   -------------------------------------------------------------------------- */
.osf-cart-drawer {
  position: fixed;
  inset: 0;
  z-index: 1300;
  pointer-events: none;
  visibility: hidden;
}

.osf-cart-drawer--open {
  pointer-events: auto;
  visibility: visible;
}

.osf-cart-drawer--open .osf-cart-drawer__overlay {
  opacity: 1;
}

.osf-cart-drawer--open .osf-cart-drawer__panel {
  transform: translateX(0);
}

.osf-cart-drawer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  opacity: 0;
  transition: opacity 0.3s ease;
  cursor: pointer;
}

.osf-cart-drawer__panel {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 410px;
  max-width: 100vw;
  background: var(--body-bg, #fff);
  color: var(--body-color, #212529);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  box-shadow: -8px 0 32px rgba(15, 41, 53, 0.14), var(--osf-shadow-card);
  border-left: 1px solid var(--osf-border-subtle);
}

.osf-cart-drawer__header {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem 3.25rem 1rem;
  flex-shrink: 0;
  background: var(--body-bg, #fff);
}

.osf-cart-drawer__title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.osf-cart-drawer__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 3;
  width: 2.75rem;
  height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--osf-border-subtle, #d1d5db);
  border-radius: 50%;
  background: var(--body-bg, #fff);
  color: var(--body-color, #212529);
  cursor: pointer;
  line-height: 1;
  box-shadow: 0 1px 3px rgba(15, 41, 53, 0.12);
}

.osf-cart-drawer__close:hover,
.osf-cart-drawer__close:focus-visible {
  background: var(--osf-surface-muted, #f3f4f6);
  color: var(--body-color, #212529);
  border-color: var(--body-color-muted, #9ca3af);
}

.osf-cart-drawer__close-icon {
  font-size: 1rem;
  line-height: 1;
  pointer-events: none;
}

.osf-cart-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: 0 1.25rem 1rem;
}

.osf-cart-drawer__footer {
  padding: 1rem 1.25rem 1.25rem;
  border-top: 1px solid var(--border-color, rgba(0, 0, 0, 0.08));
  flex-shrink: 0;
}

.osf-cart-drawer__summary-slot {
  margin-bottom: 0.75rem;
}

.osf-cart-drawer__success {
  margin-bottom: 1rem;
  padding: 0.875rem 1rem;
  border-radius: var(--osf-radius-md, 8px);
  background: #e8f6ec;
  border: 1px solid #c8e6d0;
}

.osf-cart-drawer__success-text {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
}

.osf-cart-drawer__shipping-progress {
  margin-bottom: 1.25rem;
}

.osf-cart-drawer__shipping-progress-head {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  margin-bottom: 0.5rem;
}

.osf-cart-drawer__shipping-icon {
  flex-shrink: 0;
  margin-top: 0.15rem;
  color: var(--primary, #1789ad);
}

.osf-cart-drawer__shipping-text {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.4;
}

.osf-cart-drawer__progress {
  height: 6px;
  border-radius: 999px;
  background: var(--osf-surface-muted, #eef1f3);
  overflow: hidden;
}

.osf-cart-drawer__progress-bar {
  height: 100%;
  border-radius: inherit;
  background: var(--primary, #1789ad);
  transition: width 0.35s ease;
}

.osf-cart-drawer__items {
  margin: 0 0 1rem;
  padding: 0;
}

.osf-cart-drawer__item {
  display: flex;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--osf-border-subtle, rgba(0, 0, 0, 0.08));
}

.osf-cart-drawer__item:last-child {
  border-bottom: none;
}

.osf-cart-drawer__item-thumb {
  flex: 0 0 72px;
}

.osf-cart-drawer__item-img {
  width: 72px;
  height: auto;
  border-radius: var(--osf-radius-sm, 4px);
  object-fit: cover;
}

.osf-cart-drawer__item-body {
  flex: 1;
  min-width: 0;
}

.osf-cart-drawer__item-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem;
}

.osf-cart-drawer__item-title {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.35;
}

.osf-cart-drawer__item-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.5rem;
  flex-wrap: wrap;
}

.osf-cart-drawer__qty-wrapper {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 9.75rem;
}

.osf-cart-drawer__qty-counter.form-counter {
  --osf-drawer-qty-height: 2.5rem;
  border: 1px solid var(--osf-border-subtle, #e5e7eb);
  border-radius: var(--osf-radius-btn, 6px);
  overflow: hidden;
  background: #fff;
}

.osf-cart-drawer__qty-counter .form-control {
  height: calc(var(--osf-drawer-qty-height) - 2px);
  min-height: 44px;
  border: 0;
  font-weight: 600;
  text-align: center;
  color: var(--osf-primary-deeper, #0f2935);
}

.osf-cart-drawer__qty-counter .btn {
  height: calc(var(--osf-drawer-qty-height) - 2px);
  min-width: 2.75rem;
  min-height: 44px;
  border: 0;
  background: var(--osf-primary-faint, #e8f4f8);
  color: var(--osf-primary-deeper, #0f2935);
}

.osf-cart-drawer__qty-counter .btn:hover {
  background: var(--osf-primary-light, #d0eaf2);
  color: var(--osf-primary, #1789ad);
}

.osf-cart-drawer__qty-static {
  font-size: 0.8125rem;
  color: var(--body-color-muted, #6b7280);
}

.osf-cart-drawer__qty-static-label {
  font-weight: 600;
  margin-right: 0.25rem;
}

.osf-cart-drawer--qty-loading .osf-cart-drawer__body {
  opacity: 0.65;
  pointer-events: none;
}

.osf-cart-drawer__form {
  margin: 0;
}

.osf-cart-drawer__item-name {
  color: inherit;
  text-decoration: none;
}

.osf-cart-drawer__item-name:hover {
  text-decoration: underline;
}

.osf-cart-drawer__item-price {
  flex-shrink: 0;
  font-size: 0.875rem;
  font-weight: 600;
  white-space: nowrap;
}

.osf-cart-drawer__item-edit {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  margin-top: 0.35rem;
  border-radius: var(--osf-radius-sm, 4px);
  background: var(--osf-surface-muted, #f3f4f6);
  color: var(--body-color, #6b7280);
  font-size: 0.75rem;
  text-decoration: none;
}

.osf-cart-drawer__item-edit:hover {
  background: var(--osf-border-subtle, #e5e7eb);
  color: inherit;
}

.osf-cart-drawer__overflow {
  margin: 0 0 1rem;
  font-size: 0.8125rem;
  color: var(--body-color-muted, #6b7280);
}

.osf-cart-drawer__summary-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem;
  font-size: 0.8125rem;
}

.osf-cart-drawer__summary-row--tax {
  margin-bottom: 0.25rem;
  color: var(--body-color-muted, #6b7280);
}

.osf-cart-drawer__summary-row--subtotal {
  margin-top: 0.35rem;
  margin-bottom: 0.35rem;
  font-size: 1rem;
}

.osf-cart-drawer__summary-label {
  font-weight: 700;
}

.osf-cart-drawer__summary-total {
  font-size: 1.25rem;
  font-weight: 700;
}

.osf-cart-drawer__summary-note {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--body-color-muted, #6b7280);
}

.osf-cart-drawer__btn {
  margin-bottom: 0.5rem;
  border-radius: var(--osf-radius-btn, 6px);
  font-weight: 600;
}

.osf-cart-drawer__btn--secondary {
  background: var(--osf-surface-muted, #f3f4f6);
  border: 1px solid var(--osf-border-subtle, #e5e7eb);
  color: var(--body-color, #212529);
}

.osf-cart-drawer__btn--secondary:hover {
  background: var(--osf-border-subtle, #e5e7eb);
  color: inherit;
}

.osf-cart-drawer__btn--primary {
  background: var(--primary, #1789ad);
  border-color: var(--primary, #1789ad);
}

.osf-cart-drawer__btn--primary:hover {
  background: var(--primary-dark, #1789b0);
  border-color: var(--primary-dark, #1789b0);
}

.osf-cart-drawer__legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.75rem;
  font-size: 0.75rem;
}

.osf-cart-drawer__legal a {
  color: var(--body-color-muted, #6b7280);
  text-decoration: none;
}

.osf-cart-drawer__legal a:hover {
  text-decoration: underline;
}

.osf-cart-drawer__legal-sep {
  opacity: 0.5;
}

/* Legacy dropdown fallback inside drawer */
.osf-cart-drawer__body .cart-dropdown,
.osf-cart-drawer__body #cart-dropdown-container {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
  background: transparent !important;
  box-shadow: none !important;
  position: static !important;
}

.osf-cart-drawer__body .cart-dropdown-buttons {
  display: none !important;
}

body.osf-cart-drawer--noscroll {
  overflow: hidden;
}

/* --------------------------------------------------------------------------
   Basket / cart page (Warenkorb)
   -------------------------------------------------------------------------- */
#content-wrapper:has(.osf-cart) .breadcrumb-container {
  margin-bottom: 0.5rem;
}

#content-wrapper:has(.osf-cart) .breadcrumb-item a {
  color: #64748b;
}

#content-wrapper:has(.osf-cart) .breadcrumb-item a:hover {
  color: var(--osf-primary);
}

#content-wrapper:has(.osf-cart) .breadcrumb-item.active {
  color: var(--osf-primary-deeper);
  font-weight: 600;
}

.osf-cart {
  padding-top: 0.25rem;
  padding-bottom: 2.5rem;
}

.osf-cart .basket-heading {
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--osf-primary-deeper);
  margin-bottom: 1.25rem;
}

.osf-cart .basket-heading.hr-sect {
  margin-top: 2rem;
}

.osf-cart .basket_wrapper {
  margin-bottom: 1.5rem;
}

.osf-cart #cart-form .basket-items {
  background: var(--osf-surface-elevated);
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-shadow-card);
  padding: 1rem 1.1rem 0.35rem;
}

.osf-cart .cart-items-header {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 0.25rem;
}

.osf-cart .cart-items-header .text-accent,
.osf-cart .cart-items-header span {
  color: inherit;
}

.osf-cart .cart-items-body {
  padding-top: 0.85rem;
  padding-bottom: 0.35rem;
}

.osf-cart .cart-items-body > [class*="col-"] > hr,
.osf-cart .cart-items-body hr {
  border-color: var(--osf-border-subtle);
  margin: 0.85rem 0 0;
}

.osf-cart .cart-items-image a {
  display: block;
  border-radius: var(--osf-radius-md);
  overflow: hidden;
  border: 1px solid var(--osf-border-subtle);
  background: #fff;
}

.osf-cart .cart-items-image img {
  display: block;
  width: 100%;
  height: auto;
}

.osf-cart .cart-items-name {
  font-weight: 600;
  font-size: 1rem;
  color: var(--osf-primary-deeper);
  text-decoration: none;
  line-height: 1.35;
}

.osf-cart .cart-items-name:hover {
  color: var(--osf-primary);
  text-decoration: none;
}

.osf-cart .cart-items-single-price,
.osf-cart .cart-items-price-text {
  font-size: 0.8125rem;
  color: #64748b;
  font-weight: 500;
}

.osf-cart .cart-items-price .price_overall,
.osf-cart .cart-items-price .text-accent {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--osf-primary-deeper);
}

.osf-cart .cart-items-body .list-unstyled {
  font-size: 0.8125rem;
  color: #64748b;
  margin-top: 0.5rem;
  margin-bottom: 0;
}

.osf-cart .cart-items-body .list-unstyled strong {
  color: #475569;
  font-weight: 600;
}

.osf-cart .cart-items-delete-button {
  color: #94a3b8;
  font-size: 0.8125rem;
  padding: 0.25rem 0;
}

.osf-cart .cart-items-delete-button:hover {
  color: #dc3545;
  text-decoration: none;
}

.osf-cart .qty-wrapper .form-counter {
  --osf-cart-qty-height: 2.5rem;
  max-width: 9.5rem;
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-btn);
  overflow: hidden;
  background: #fff;
}

.osf-cart .qty-wrapper .form-counter .form-control {
  height: calc(var(--osf-cart-qty-height) - 2px);
  border: 0;
  font-weight: 600;
  text-align: center;
  color: var(--osf-primary-deeper);
}

.osf-cart .qty-wrapper .form-counter .btn {
  height: calc(var(--osf-cart-qty-height) - 2px);
  border: 0;
  background: var(--osf-primary-faint);
  color: var(--osf-primary-deeper);
  min-width: 2.35rem;
}

.osf-cart .qty-wrapper .form-counter .btn:hover {
  background: var(--osf-primary-light);
  color: var(--osf-primary);
}

.osf-cart .qty-wrapper .configurepos {
  margin-top: 0.5rem;
  border-radius: var(--osf-radius-btn);
  font-size: 0.8125rem;
}

.osf-cart .shipping-calculator-form {
  margin-top: 1.25rem;
}

.osf-cart .shipping-calculator-main {
  background: var(--osf-surface-elevated);
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-shadow-card);
  padding: 1rem 1.1rem 1.15rem;
}

.osf-cart .shipping-calculator-main-heading {
  font-size: 1rem;
  font-weight: 700;
  color: var(--osf-primary-deeper);
  margin-bottom: 0.85rem;
}

.osf-cart .shipping-calculator-main .custom-select,
.osf-cart .shipping-calculator-main .form-control {
  border-color: var(--osf-border-subtle);
  border-radius: var(--osf-radius-btn);
  min-height: 2.5rem;
}

.osf-cart .shipping-calculator-main .custom-select:focus,
.osf-cart .shipping-calculator-main .form-control:focus {
  border-color: var(--osf-primary);
  box-shadow: 0 0 0 0.15rem rgba(31, 157, 203, 0.2);
}

.osf-cart .shipping-calculator-main .btn-outline-primary {
  border-radius: var(--osf-radius-btn);
  font-weight: 600;
  min-height: 2.5rem;
  border-color: var(--osf-primary);
  color: var(--osf-primary-deeper);
}

.osf-cart .shipping-calculator-main .btn-outline-primary:hover {
  background: var(--osf-primary-faint);
  border-color: var(--osf-primary-dark);
  color: var(--osf-primary-deeper);
}

.osf-cart #shipping-estimated {
  margin-top: 1rem;
}

.osf-cart #shipping-estimated .table {
  background: var(--osf-surface-elevated);
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  overflow: hidden;
  margin-bottom: 0;
  font-size: 0.875rem;
}

.osf-cart #shipping-estimated .table caption {
  caption-side: top;
  color: var(--osf-primary-deeper);
  font-weight: 600;
  padding: 0.75rem 1rem 0.35rem;
}

.osf-cart #shipping-estimated .table td {
  border-color: var(--osf-border-subtle);
  padding: 0.55rem 1rem;
}

.osf-cart .cart-summary {
  z-index: 2;
}

.osf-cart .cart-summary > .basket-heading {
  margin-bottom: 0.85rem;
}

.osf-cart .cart-summary .card-gray {
  background: var(--osf-surface-elevated);
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-shadow-card);
  margin-bottom: 1rem;
  overflow: hidden;
}

.osf-cart .cart-summary .card-gray .card-header {
  background: transparent;
  border-bottom: 1px solid var(--osf-border-subtle);
  padding: 0.65rem 1rem;
}

.osf-cart .cart-summary .card-gray .card-header .btn-link {
  color: var(--osf-primary-deeper);
  font-weight: 600;
  text-decoration: none;
  width: 100%;
  text-align: left;
}

.osf-cart .cart-summary .card-gray .card-header .btn-link:hover {
  color: var(--osf-primary);
}

.osf-cart .cart-summary .card-gray .card-body {
  padding: 0.85rem 1rem 1rem;
}

.osf-cart .cart-summary .card-gray .card-body .form-control {
  border-radius: var(--osf-radius-btn);
  border-color: var(--osf-border-subtle);
}

.osf-cart .cart-summary .card-gray .card-body .btn-outline-primary {
  border-radius: var(--osf-radius-btn);
  font-weight: 600;
}

.osf-cart .basket-summary.card-gray {
  padding: 1rem 1.1rem 1.15rem;
}

.osf-cart .basket-summary .row {
  font-size: 0.9rem;
  margin-bottom: 0.35rem;
}

.osf-cart .basket-summary .row.tax,
.osf-cart .basket-summary .row.total-net {
  color: #64748b;
}

.osf-cart .basket-summary .basket-summary-total {
  margin-top: 0.65rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--osf-border-subtle);
  font-size: 1rem;
}

.osf-cart .basket-summary .basket-summary-total .price_label {
  font-weight: 600;
  color: var(--osf-primary-deeper);
}

.osf-cart .basket-summary .total-sum {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--osf-primary-deeper);
}

.osf-cart .basket-summary .shipping-costs small {
  color: #64748b;
  line-height: 1.45;
}

.osf-cart #cart-checkout-btn {
  display: block;
  width: 100%;
  margin-top: 1rem;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
  color: #ffffff;
  text-decoration: none;
  background: linear-gradient(180deg, var(--osf-primary) 0%, var(--osf-primary-dark) 100%);
  border: 0;
  border-radius: var(--osf-radius-btn);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 2px 10px rgba(21, 109, 135, 0.28);
  transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.osf-cart #cart-checkout-btn:hover,
.osf-cart #cart-checkout-btn:focus {
  color: #ffffff;
  text-decoration: none;
  background: var(--osf-primary-dark);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 4px 14px rgba(21, 109, 135, 0.35);
}

.osf-cart #cart-checkout-btn:active {
  transform: translateY(1px);
}

.osf-cart .cart-summary > .font-weight-bold {
  background: var(--osf-primary-faint);
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  color: var(--osf-primary-deeper);
}

.osf-cart .cart-summary > .font-weight-bold .fa-truck {
  color: var(--osf-primary) !important;
}

.osf-cart .basket-summary-notice-weight-wrapper {
  font-size: 0.8125rem;
  color: #64748b;
  margin-top: 0.75rem;
}

.osf-cart .basket-freegift .basket-heading {
  margin-top: 1.5rem;
}

.osf-cart .basket-freegift .basket-heading a {
  color: inherit;
  text-decoration: none;
}

.osf-cart .basket-freegift .basket-heading a:hover {
  color: var(--osf-primary);
}

.osf-cart .osf-cart-xsell {
  margin-top: 2rem;
}

.osf-cart .basket-empty {
  margin-top: 1rem;
}

.osf-cart .basket-empty .alert {
  background: var(--osf-surface-elevated);
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-shadow-card);
  padding: 2.5rem 1.5rem;
  text-align: center;
  color: #475569;
  font-size: 1rem;
}

.osf-cart .basket-empty .alert .bubble {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  margin-bottom: 1rem;
  border-radius: 50%;
  background: var(--osf-primary-faint);
  color: var(--osf-primary);
  font-size: 1.5rem;
}

.osf-cart .basket-empty .btn-primary {
  margin-top: 1.25rem;
  padding: 0.7rem 1.85rem;
  font-weight: 600;
  border: 0;
  border-radius: var(--osf-radius-btn);
  background: linear-gradient(180deg, var(--osf-primary) 0%, var(--osf-primary-dark) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 2px 10px rgba(21, 109, 135, 0.28);
}

.osf-cart .basket-empty .btn-primary:hover {
  background: var(--osf-primary-dark);
}

@media (max-width: 1199.98px) {
  .osf-cart .cart-items-header {
    display: none !important;
  }

  .osf-cart .cart-items-body {
    background: var(--osf-surface);
    border: 1px solid var(--osf-border-subtle);
    border-radius: var(--osf-radius-md);
    padding: 0.85rem;
    margin-bottom: 0.75rem;
  }

  .osf-cart #cart-form .basket-items {
    padding: 0.75rem;
    background: transparent;
    border: 0;
    box-shadow: none;
  }

  .osf-cart .cart-items-body > [class*="col-"] > hr,
  .osf-cart .cart-items-body hr {
    display: none;
  }

  .osf-cart .cart-items-price {
    margin-top: 0.35rem;
  }

  .osf-cart .cart-summary {
    margin-top: 0.5rem;
  }
}

@media (max-width: 575.98px) {
  .osf-cart .shipping-calculator-main {
    padding: 0.85rem;
  }

  .osf-cart .basket-summary.card-gray {
    padding: 0.85rem;
  }
}

.osf-pushed-inline.d-none {
  display: none !important;
}

.cart-icon-dropdown--drawer .dropdown-menu,
.cart-icon-dropdown--drawer #cart-dropdown-container {
  display: none !important;
}

/* --------------------------------------------------------------------------
   PDP — sticky add-to-cart bar (scroll)
   -------------------------------------------------------------------------- */
.osf-sticky-atc {
  position: fixed;
  left: 50%;
  right: auto;
  bottom: calc(var(--osf-sticky-atc-bottom, 72px) + env(safe-area-inset-bottom, 0px));
  width: min(
    var(--osf-sticky-atc-max-width, 1140px),
    calc(100% - 2 * var(--osf-sticky-atc-inset, 16px))
  );
  max-width: var(--osf-sticky-atc-max-width, 1140px);
  z-index: 1030;
  pointer-events: none;
  transform: translate(-50%, 100%);
  opacity: 0;
  transition: transform 0.28s ease, opacity 0.28s ease;
}

.osf-sticky-atc--visible {
  pointer-events: auto;
  transform: translate(-50%, 0);
  opacity: 1;
}

/* PDP: scroll-top above sticky bar (same z-index layer — avoid bottom-edge flicker) */
body:has(#osf-sticky-atc.osf-sticky-atc--visible) .smoothscroll-top.show {
  bottom: calc(var(--osf-sticky-atc-bottom, 72px) + 5.75rem + env(safe-area-inset-bottom, 0px));
  z-index: 1031;
}

@media (max-width: 767.98px) {
  body:has(#osf-sticky-atc.osf-sticky-atc--visible) .smoothscroll-top.show {
    bottom: calc(var(--osf-sticky-atc-bottom, 72px) + 7.25rem + env(safe-area-inset-bottom, 0px));
  }

  .osf-sticky-atc--visible {
    transition: transform 0.22s ease, opacity 0.22s ease;
  }
}

@media (prefers-reduced-motion: reduce) {
  .osf-sticky-atc {
    transition: none;
  }
}

.osf-sticky-atc__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0.5rem;
  width: 100%;
  max-width: 100%;
  overflow: visible;
  padding: 0.5rem 0.65rem;
  padding-bottom: calc(0.5rem + env(safe-area-inset-bottom, 0px));
  background: var(--osf-surface-elevated, #fff);
  border: 1px solid var(--osf-border-subtle, rgba(21, 109, 135, 0.12));
  box-shadow: 0 -6px 28px rgba(15, 41, 53, 0.14);
  border-radius: var(--osf-radius-md);
}

/* Round control on top-right corner (outside content, clear of qty +) */
.osf-sticky-atc__toggle {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  margin: 0;
  padding: 0;
  border: 1px solid var(--osf-border-subtle, rgba(21, 109, 135, 0.18));
  border-radius: 50%;
  background: var(--osf-surface-elevated, #fff);
  color: var(--osf-text-muted, #64748b);
  box-shadow: 0 2px 10px rgba(15, 41, 53, 0.14);
  cursor: pointer;
  line-height: 1;
  pointer-events: auto;
  transform: translate(40%, -50%);
  transition:
    color 0.15s ease,
    background-color 0.15s ease,
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.osf-sticky-atc__toggle:hover,
.osf-sticky-atc__toggle:focus-visible {
  color: var(--osf-primary, var(--primary, #1789ad));
  border-color: var(--osf-primary, var(--primary, #1789ad));
  background: var(--osf-surface-elevated, #fff);
  box-shadow: 0 4px 14px rgba(21, 109, 135, 0.22);
  outline: none;
}

.osf-sticky-atc__toggle-icon {
  font-size: 0.8125rem;
  transition: transform 0.2s ease;
}

.osf-sticky-atc--minimized .osf-sticky-atc__toggle-icon {
  transform: rotate(180deg);
}

.osf-sticky-atc__panel {
  display: contents;
}

/* Minimized: single flat bar — name, price, ATC; tiers/qty/thumb hidden */
.osf-sticky-atc--minimized .osf-sticky-atc__inner {
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.45rem 0.5rem;
  padding: 0.3rem 0.55rem;
  padding-bottom: calc(0.3rem + env(safe-area-inset-bottom, 0px));
}

.osf-sticky-atc--minimized .osf-sticky-atc__panel {
  display: flex;
  flex: 1 1 auto;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.45rem 0.5rem;
  min-width: 0;
}

.osf-sticky-atc--minimized .osf-sticky-atc__thumb,
.osf-sticky-atc--minimized .osf-sticky-atc__tiers,
.osf-sticky-atc--minimized .osf-sticky-atc__qty {
  display: none !important;
}

.osf-sticky-atc--minimized .osf-sticky-atc__info {
  flex: 1 1 auto;
  width: auto;
  max-width: none;
  min-width: 0;
  order: 0;
}

.osf-sticky-atc--minimized .osf-sticky-atc__name {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
  font-size: 0.8125rem;
  line-height: 1.2;
}

.osf-sticky-atc--minimized .osf-sticky-atc__meta {
  display: none;
}

.osf-sticky-atc--minimized .osf-sticky-atc__price {
  font-size: 0.9375rem;
  line-height: 1.15;
}

.osf-sticky-atc--minimized .osf-sticky-atc__actions {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  margin-left: 0;
  order: 0;
}

.osf-sticky-atc--minimized .osf-sticky-atc__action {
  flex: 0 0 auto;
  width: auto;
  min-width: 0;
}

.osf-sticky-atc--minimized .osf-sticky-atc__btn {
  min-height: 2.25rem;
  min-width: 2.25rem;
  width: auto;
  padding: 0.35rem 0.65rem;
}

.osf-sticky-atc--minimized .osf-sticky-atc__btn-label {
  display: none;
}

@media (min-width: 480px) {
  .osf-sticky-atc--minimized .osf-sticky-atc__btn-label {
    display: inline;
  }
}

.osf-sticky-atc__info {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  order: 1;
}

.osf-sticky-atc__thumb {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: var(--osf-radius-sm);
  overflow: hidden;
  background: var(--osf-surface, #f5f8fa);
  border: 1px solid var(--osf-border-subtle, rgba(21, 109, 135, 0.12));
}

.osf-sticky-atc__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.osf-sticky-atc__text {
  min-width: 0;
  flex: 1 1 auto;
}

.osf-sticky-atc__name {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.osf-sticky-atc__pricing {
  margin-top: 0.1rem;
}

.osf-sticky-atc__price {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--osf-primary, var(--primary, #1789ad));
  line-height: 1.15;
}

.osf-sticky-atc__meta {
  margin: 0.15rem 0 0;
  font-size: 0.625rem;
  font-weight: 400;
  color: var(--osf-text-muted, #64748b);
  line-height: 1.3;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.osf-sticky-atc__meta-base {
  display: inline;
}

.osf-sticky-atc__meta-sep {
  opacity: 0.65;
}

.osf-sticky-atc__meta-tax {
  display: inline;
}

.osf-sticky-atc__tiers {
  flex: 0 0 auto;
  width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 0;
  padding-top: 0.2rem;
  order: 2;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
}

.osf-sticky-atc__tiers::-webkit-scrollbar {
  display: none;
}

.osf-sticky-atc__tiers-grid {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0.4rem;
  width: max-content;
  min-width: 100%;
  max-width: none;
  padding: 0.25rem 0.1rem 0.15rem;
  scroll-snap-type: x proximity;
}

.osf-sticky-atc__tiers-grid:has(.osf-bulk-prices__card:nth-child(3):last-child) {
  width: 100%;
  justify-content: space-between;
  gap: 0.35rem;
}

.osf-sticky-atc__tiers-grid:has(.osf-bulk-prices__card:nth-child(3):last-child) .osf-bulk-prices__card {
  flex: 1 1 28%;
  min-width: 28%;
  max-width: 32%;
  scroll-snap-align: none;
}

.osf-sticky-atc__tiers .osf-bulk-prices__card {
  flex: 0 0 auto;
  min-width: 5.25rem;
  max-width: 6.75rem;
  margin-top: 0.45rem;
  padding: 0.7rem 0.35rem 0.45rem;
  box-shadow: var(--osf-shadow-sm, 0 1px 4px rgba(15, 41, 53, 0.08));
  scroll-snap-align: start;
}

.osf-sticky-atc__tiers .osf-bulk-prices__card:hover {
  transform: translateY(-1px);
}

.osf-sticky-atc__tiers .osf-bulk-prices__badge {
  top: -0.45rem;
  font-size: 0.625rem;
  padding: 0.15rem 0.45rem;
}

.osf-sticky-atc__tiers .osf-bulk-prices__body {
  min-height: 2.35rem;
  gap: 0.1rem;
}

.osf-sticky-atc__tiers .osf-bulk-prices__price {
  font-size: 0.8125rem;
}

.osf-sticky-atc__tiers .osf-bulk-prices__discount {
  font-size: 0.625rem;
}

.osf-sticky-atc__tiers .osf-bulk-prices__line--base {
  font-size: 0.5625rem;
}

.osf-sticky-atc__tiers .footnote-reference {
  font-size: 0.55rem;
}

.osf-sticky-atc__actions {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: stretch;
  gap: 0.5rem;
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  order: 3;
}

.osf-sticky-atc__qty {
  flex: 0 1 auto;
  width: auto;
  min-width: 0;
  max-width: 46%;
}

.osf-sticky-atc__qty-grp.form-counter {
  --osf-pdp-qty-height: 2.5rem;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  border: 0;
  border-radius: var(--osf-radius-btn);
  max-height: var(--osf-pdp-qty-height);
  overflow: hidden;
}

.osf-sticky-atc__qty-grp.form-counter > .input-group-prepend,
.osf-sticky-atc__qty-grp.form-counter > .input-group-append {
  float: none;
  display: flex;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  align-items: stretch;
}

.osf-sticky-atc__qty-grp .input-group-append > .input-group-text,
.osf-sticky-atc__qty-grp .input-group-append > .btn {
  float: none;
}

.osf-sticky-atc__qty-grp.form-counter > .form-control {
  flex: 1 1 2rem;
  width: 1%;
  min-width: 2rem;
}

.osf-sticky-atc__qty-grp.form-counter .form-control {
  height: calc(var(--osf-pdp-qty-height) - 2px);
  max-height: calc(var(--osf-pdp-qty-height) - 2px);
  font-size: 0.9375rem;
  padding: 0.2rem 0.35rem;
  text-align: center;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: inherit;
  -webkit-text-fill-color: currentColor;
}

.osf-sticky-atc__qty-grp .btn,
.osf-sticky-atc__qty-grp .input-group-text {
  height: calc(var(--osf-pdp-qty-height) - 2px);
  max-height: calc(var(--osf-pdp-qty-height) - 2px);
  min-width: 0;
  min-height: 0;
  flex: 0 0 auto;
  flex-shrink: 0;
  padding: 0 0.65rem;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.osf-sticky-atc__qty-grp .btn:focus,
.osf-sticky-atc__qty-grp.form-counter .form-control:focus {
  box-shadow: none;
}

.osf-sticky-atc__qty-grp .input-group-prepend > .btn:first-child {
  border-top-left-radius: var(--osf-radius-btn);
  border-bottom-left-radius: var(--osf-radius-btn);
}

.osf-sticky-atc__qty-grp .input-group-append > .btn:last-child {
  border-top-right-radius: var(--osf-radius-btn);
  border-bottom-right-radius: var(--osf-radius-btn);
}

.osf-sticky-atc__qty-grp .input-group-append > .input-group-text + .btn {
  border-top-right-radius: var(--osf-radius-btn);
  border-bottom-right-radius: var(--osf-radius-btn);
}

.osf-sticky-atc__qty-grp .input-group-append > .input-group-text,
.osf-sticky-atc__qty-grp .input-group-text.unit {
  display: none !important;
}

.osf-sticky-atc__qty-grp .input-group-append > .btn[data-count-up] {
  flex-shrink: 0;
}

.osf-sticky-atc__action {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
}

.osf-sticky-atc__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: 100%;
  min-height: 44px;
  white-space: nowrap;
  border-radius: var(--osf-radius-btn);
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
}

.osf-sticky-atc__btn .fa-shopping-cart {
  font-size: 0.95em;
}

/* Tablet: product row full width; tiers + actions on second row */
@media (min-width: 576px) and (max-width: 991.98px) {
  .osf-sticky-atc__inner {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem 0.75rem;
    padding: 0.65rem 0.85rem;
    padding-bottom: calc(0.65rem + env(safe-area-inset-bottom, 0px));
  }

  .osf-sticky-atc__info {
    flex: 0 0 100%;
    max-width: 100%;
    order: 1;
  }

  .osf-sticky-atc__tiers {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    order: 2;
  }

  .osf-sticky-atc__actions {
    flex: 0 0 min(13rem, 42%);
    width: min(13rem, 42%);
    max-width: none;
    flex-direction: column;
    gap: 0.35rem;
    order: 3;
  }

  .osf-sticky-atc__qty {
    max-width: none;
    flex: none;
    width: 100%;
  }

  .osf-sticky-atc__action {
    flex: none;
    width: 100%;
  }
}

/* Large mobile / small tablet portrait tweaks */
@media (max-width: 767.98px) {
  .osf-sticky-atc__name {
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 0.8125rem;
  }

  .osf-sticky-atc__price {
    font-size: 1rem;
  }

  .osf-sticky-atc__meta {
    font-size: 0.6rem;
  }

  .osf-sticky-atc__tiers .osf-bulk-prices__card {
    min-width: 5rem;
    max-width: 6.25rem;
    padding: 0.65rem 0.3rem 0.4rem;
  }

  .osf-sticky-atc__tiers .osf-bulk-prices__price {
    font-size: 0.75rem;
  }

  .osf-sticky-atc__btn {
    padding-left: 0.65rem;
    padding-right: 0.65rem;
    font-size: 0.8125rem;
  }

  .osf-sticky-atc__btn-label {
    font-size: 0.8125rem;
  }
}

/* Phone: tighter padding, scaled tier cards */
@media (max-width: 575.98px) {
  .osf-sticky-atc__inner {
    padding: 0.45rem 0.55rem;
    padding-bottom: calc(0.45rem + env(safe-area-inset-bottom, 0px));
    gap: 0.4rem;
  }

  .osf-sticky-atc__thumb {
    width: 40px;
    height: 40px;
  }

  .osf-sticky-atc__tiers-grid:has(.osf-bulk-prices__card:nth-child(3):last-child) .osf-bulk-prices__card {
    min-width: 26%;
    max-width: 31%;
    padding: 0.6rem 0.25rem 0.35rem;
  }

  .osf-sticky-atc__tiers .osf-bulk-prices__badge {
    font-size: 0.5625rem;
    padding: 0.1rem 0.35rem;
  }

  .osf-sticky-atc__actions {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.5rem;
  }

  .osf-sticky-atc__qty {
    flex: 0 1 auto;
    width: auto;
    max-width: 9.5rem;
  }

  .osf-sticky-atc__qty-grp.form-counter {
    --osf-pdp-qty-height: 2.5rem;
    width: auto;
    max-width: 9.5rem;
  }

  .osf-sticky-atc__qty-grp.form-counter > .form-control {
    flex: 1 1 2.25rem;
    width: 2.25rem;
    min-width: 2.25rem;
    max-width: 3.25rem;
  }

  .osf-sticky-atc__action {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
  }

  .osf-sticky-atc__btn {
    min-width: 8.5rem;
  }
}

/* Very narrow: keep row; cap qty so ATC label stays visible */
@media (max-width: 399.98px) {
  .osf-sticky-atc__inner {
    padding: 0.4rem 0.5rem;
    padding-bottom: calc(0.4rem + env(safe-area-inset-bottom, 0px));
  }

  .osf-sticky-atc__actions {
    flex-direction: row;
    align-items: stretch;
    gap: 0.4rem;
  }

  .osf-sticky-atc__qty {
    flex: 0 1 auto;
    width: auto;
    max-width: 44%;
  }

  .osf-sticky-atc__qty-grp.form-counter {
    max-width: 100%;
  }

  .osf-sticky-atc__action {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: none;
  }

  .osf-sticky-atc__btn {
    min-width: 8.5rem;
  }
}

/* Desktop: 3-column row (info | tiers | actions) */
@media (min-width: 992px) {
  .osf-sticky-atc__inner {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    padding: 0.75rem 1rem;
    padding-bottom: 0.75rem;
  }

  .osf-sticky-atc__info {
    flex: 0 1 auto;
    width: auto;
    max-width: 38%;
    order: 0;
  }

  .osf-sticky-atc__name {
    white-space: nowrap;
    display: block;
    -webkit-line-clamp: unset;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.9rem;
  }

  .osf-sticky-atc__meta {
    font-size: 0.6875rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;
    word-break: normal;
  }

  .osf-sticky-atc__price {
    font-size: 1.1rem;
  }

  .osf-sticky-atc__tiers {
    flex: 1 1 50%;
    width: auto;
    min-width: 280px;
    justify-content: center;
    order: 0;
    overflow-x: visible;
    scroll-snap-type: none;
  }

  .osf-sticky-atc__tiers-grid {
    justify-content: center;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 0;
    scroll-snap-type: none;
  }

  .osf-sticky-atc__tiers-grid:has(.osf-bulk-prices__card:nth-child(3):last-child) {
    justify-content: center;
    gap: 0.5rem;
  }

  .osf-sticky-atc__tiers-grid:has(.osf-bulk-prices__card:nth-child(3):last-child) .osf-bulk-prices__card {
    flex: 0 0 auto;
    min-width: 6.25rem;
    max-width: 7.5rem;
  }

  .osf-sticky-atc__tiers .osf-bulk-prices__card {
    min-width: 6.25rem;
    max-width: 7.5rem;
    margin-top: 0.5rem;
    padding: 0.85rem 0.45rem 0.55rem;
    scroll-snap-align: none;
  }

  .osf-sticky-atc__tiers .osf-bulk-prices__price {
    font-size: 0.8125rem;
  }

  .osf-sticky-atc__actions {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: center;
    gap: 0.35rem;
    flex: 0 0 auto;
    width: min(100%, 11.5rem);
    max-width: 11.5rem;
    margin-left: auto;
    order: 0;
  }

  .osf-sticky-atc__qty {
    flex: none;
    width: 100%;
    max-width: none;
  }

  .osf-sticky-atc__qty-grp.form-counter {
    --osf-pdp-qty-height: 2.5rem;
  }

  .osf-sticky-atc__qty-grp .btn,
  .osf-sticky-atc__qty-grp .input-group-text {
    min-width: 0;
    min-height: 0;
  }

  .osf-sticky-atc__action {
    flex: none;
    width: 100%;
  }

  .osf-sticky-atc__btn {
    font-size: 0.875rem;
    padding: 0.5rem 1rem;
  }

  .osf-sticky-atc__btn-label {
    font-size: inherit;
  }
}

@media (min-width: 576px) and (max-width: 991.98px) {
  .osf-sticky-atc--minimized .osf-sticky-atc__inner {
    flex-wrap: nowrap;
    padding: 0.35rem 0.65rem;
    padding-bottom: calc(0.35rem + env(safe-area-inset-bottom, 0px));
  }

  .osf-sticky-atc--minimized .osf-sticky-atc__actions {
    flex-direction: row;
    flex: 0 0 auto;
    width: auto;
    max-width: none;
  }
}

@media (min-width: 992px) {
  .osf-sticky-atc__toggle {
    width: 2.5rem;
    height: 2.5rem;
    transform: translate(45%, -50%);
  }

  .osf-sticky-atc__toggle-icon {
    font-size: 0.875rem;
  }

  .osf-sticky-atc--minimized .osf-sticky-atc__inner {
    padding: 0.4rem 0.75rem;
    padding-bottom: 0.4rem;
  }

  .osf-sticky-atc--minimized .osf-sticky-atc__info {
    max-width: none;
    flex: 1 1 auto;
  }

  .osf-sticky-atc--minimized .osf-sticky-atc__actions {
    flex-direction: row;
    width: auto;
    max-width: none;
    margin-left: 0;
  }

  .osf-sticky-atc--minimized .osf-sticky-atc__action {
    width: auto;
  }

  .osf-sticky-atc--minimized .osf-sticky-atc__btn {
    min-width: 2.25rem;
  }
}

/* --------------------------------------------------------------------------
   JTL Consent Manager — OneStorefront skin (CSS-only, no markup changes)
   Markup: snippets/consent_manager.tpl · Logic: js/consent.js (JTL core)
   -------------------------------------------------------------------------- */
#consent-manager {
  --osf-consent-heading: #1e293b;
  --osf-consent-body: #64748b;
  --osf-consent-border: #e2e8f0;
  --osf-consent-toggle-off: #e2e8f0;
  --osf-consent-radius: var(--osf-radius-sm, 0.35rem);

  font-family: inherit;
  color: var(--osf-consent-body);
  font-size: 0.875rem;
}

#consent-manager strong,
#consent-manager .consent-display-1,
#consent-manager .consent-display-2,
#consent-manager .consent-display-3 {
  color: var(--osf-consent-heading);
}

#consent-manager hr {
  border-bottom-color: var(--osf-consent-border);
}

#consent-manager a {
  color: var(--osf-primary-dark, #0e5f73);
  text-decoration: none;
}

#consent-manager a:hover,
#consent-manager a:focus {
  color: var(--osf-header-dark-bg, #1a3340);
  text-decoration: underline;
}

#consent-banner a,
#consent-banner a[href],
#consent-manager .consent-banner-description a {
  color: #0e5f73 !important;
}

/* Banner card */
#consent-banner {
  background-color: var(--osf-surface-elevated);
  border: 1px solid var(--osf-consent-border);
  border-radius: var(--osf-radius-md, 0.75rem);
  box-shadow: var(--osf-shadow-card);
  padding: 2rem 1rem 1.25rem;
}

@media (min-width: 768px) {
  #consent-banner {
    padding: 1.25rem 2rem;
  }
}

:not(.fading) > #consent-banner::after {
  display: none;
}

/* Two-column banner: actions left, text right — no overlap */
#consent-banner .consent-banner-body {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}

@media (min-width: 768px) {
  #consent-banner .consent-banner-body {
    flex-direction: row;
    align-items: center;
    gap: 1.5rem 2rem;
  }
}

#consent-banner .consent-banner-actions {
  flex: 0 0 auto;
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  margin-top: 0;
  margin-left: 0;
}

@media (min-width: 768px) {
  #consent-banner .consent-banner-actions {
    flex: 0 0 16.875rem;
    width: 16.875rem;
    min-width: 16.875rem;
    max-width: 16.875rem;
  }
}

#consent-banner .consent-banner-description {
  flex: 1 1 0;
  min-width: 0;
  max-width: none;
  overflow-wrap: break-word;
}

@media (min-width: 992px) {
  #consent-banner .consent-banner-body {
    padding-left: 3.75rem;
  }
}

.consent-banner-icon {
  border-color: var(--osf-consent-border);
  color: var(--osf-primary);
  background-color: var(--osf-surface-elevated);
}

/* Buttons — shared base */
#consent-manager .consent-btn {
  border-radius: var(--osf-consent-radius);
  font-weight: 500;
  line-height: 1.25;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

/* Primary filled (accept / apply) */
#consent-manager .consent-btn-primary,
#consent-manager .consent-btn-tertiary.consent-btn-primary,
#consent-manager #consent-accept-banner-btn-close {
  background-color: var(--osf-primary);
  border-color: var(--osf-primary);
  color: #fff;
}

#consent-manager .consent-btn-primary:hover,
#consent-manager .consent-btn-primary:focus,
#consent-manager .consent-btn-tertiary.consent-btn-primary:hover,
#consent-manager .consent-btn-tertiary.consent-btn-primary:focus,
#consent-manager #consent-accept-banner-btn-close:hover,
#consent-manager #consent-accept-banner-btn-close:focus {
  background-color: var(--osf-primary-dark);
  border-color: var(--osf-primary-dark);
  color: #fff;
  box-shadow: 0 0 0 0.15rem rgba(31, 157, 203, 0.25);
}

/* Secondary outline (configure, reject, once) */
#consent-manager .consent-btn-outline-primary,
#consent-manager .consent-btn-tertiary:not(.consent-btn-primary),
#consent-manager #consent-btn-once {
  background-color: #fff;
  border-color: var(--osf-consent-border);
  color: var(--osf-consent-heading);
}

#consent-manager .consent-btn-outline-primary:hover,
#consent-manager .consent-btn-outline-primary:focus,
#consent-manager .consent-btn-tertiary:not(.consent-btn-primary):hover,
#consent-manager .consent-btn-tertiary:not(.consent-btn-primary):focus,
#consent-manager #consent-btn-once:hover,
#consent-manager #consent-btn-once:focus {
  background-color: var(--osf-primary-faint);
  border-color: var(--osf-primary);
  color: var(--osf-primary-deeper);
  box-shadow: none;
}

/* Banner: “Alle akzeptieren” = primary (wins over .consent-btn-outline-primary for LH contrast) */
#consent-manager button#consent-banner-btn-all.consent-btn-outline-primary,
#consent-manager #consent-banner-btn-all {
  background-color: var(--osf-brand, var(--osf-primary)) !important;
  border-color: var(--osf-brand, var(--osf-primary)) !important;
  color: #fff !important;
}

#consent-manager #consent-banner-btn-all:hover,
#consent-manager #consent-banner-btn-all:focus {
  background-color: var(--osf-primary-dark);
  border-color: var(--osf-primary-dark);
  color: #fff;
}

/* Confirm: “Immer erlauben” = primary */
#consent-manager #consent-btn-always {
  background-color: var(--osf-primary);
  border-color: var(--osf-primary);
  color: #fff;
}

#consent-manager #consent-btn-always:hover,
#consent-manager #consent-btn-always:focus {
  background-color: var(--osf-primary-dark);
  border-color: var(--osf-primary-dark);
  color: #fff;
}

/* Toggle switches */
#consent-manager .consent-switch .consent-label {
  color: var(--osf-consent-heading);
}

#consent-manager .consent-switch .consent-label::before {
  background-color: var(--osf-consent-toggle-off);
}

#consent-manager .consent-switch .consent-input:checked ~ .consent-label::before {
  background-color: var(--osf-primary);
}

#consent-manager .consent-switch .consent-input:focus + .consent-label::before {
  outline: 2px solid rgba(31, 157, 203, 0.35);
  outline-offset: 1px;
}

/* Settings modal — toggles inside white box, comfortable spacing */
#consent-settings .consent-modal-content {
  padding: 1.5rem 1.35rem;
}

@media (min-width: 768px) {
  #consent-settings .consent-modal-content {
    padding: 2rem 2.25rem;
  }
}

#consent-settings .consent-switch,
#consent-settings .consent-switch:nth-of-type(odd),
#consent-settings .consent-switch:nth-of-type(even) {
  width: 100%;
  max-width: 100%;
  margin: 0.5rem 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0.85rem 1.25rem !important;
  box-sizing: border-box;
}

#consent-settings .consent-btn-holder {
  gap: 1rem;
  margin-top: 0.25rem;
}

#consent-settings .consent-btn-holder .consent-switch {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0 !important;
}

#consent-settings .consent-switch .consent-label,
#consent-settings .consent-switch .consent-label.consent-label-secondary {
  display: block !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-bottom: 0.35rem !important;
  padding-left: 4rem !important;
  line-height: 1.45;
  box-sizing: border-box;
}

#consent-settings .consent-switch .consent-label::before,
#consent-settings .consent-switch .consent-label::after {
  left: 1.25rem !important;
}

#consent-settings .consent-switch .consent-label::after {
  left: 1.375rem !important;
}

#consent-settings .consent-switch .consent-input:checked ~ .consent-label::after {
  left: 2.5rem !important;
}

#consent-settings .consent-switch .consent-help {
  margin-top: 0.65rem;
  padding-left: 4rem;
  line-height: 1.55;
}

#consent-settings .consent-switch .consent-show-more {
  margin-top: 0.35rem;
  padding-left: 4rem;
}

@media (min-width: 768px) {
  #consent-settings .consent-switch .consent-label,
  #consent-settings .consent-switch .consent-label.consent-label-secondary {
    margin-left: 0 !important;
  }

  #consent-settings .consent-btn-holder {
    gap: 1.5rem;
  }
}

/* Zebra — inset only (no margin: 0 -0.5rem) */
#consent-settings .consent-switch:nth-of-type(odd) {
  background-color: #f8fafb;
  border-radius: var(--osf-consent-radius);
}

#consent-settings hr {
  margin: 1rem 0;
}

#consent-manager .consent-show-more {
  color: var(--osf-primary);
  text-align: left;
}

#consent-manager .consent-show-more:hover,
#consent-manager .consent-show-more:focus {
  color: var(--osf-primary-dark);
}

#consent-manager .consent-help {
  color: var(--osf-consent-body);
}

#consent-manager .consent-more-description,
#consent-manager .consent-info {
  border: 1px solid var(--osf-consent-border);
  border-radius: var(--osf-consent-radius);
  background-color: #f8fafb;
}

/* Modals */
#consent-manager .consent-modal {
  background-color: rgba(15, 41, 53, 0.45);
  padding: 1rem;
}

#consent-manager .consent-modal-content {
  border: 1px solid var(--osf-consent-border);
  border-radius: var(--osf-radius-md, 0.75rem);
  box-shadow: var(--osf-shadow-hover);
  padding: 1.25rem;
}

#consent-manager .consent-modal-content::after {
  display: none;
}

@media (min-width: 768px) {
  #consent-manager .consent-modal-content {
    padding: 1.75rem 2rem;
  }
}

#consent-manager .consent-modal-icon {
  color: var(--osf-primary);
  border: 1px solid var(--osf-consent-border);
  background-color: var(--osf-surface-elevated);
}

#consent-manager .consent-modal-close {
  color: var(--osf-consent-body);
  border-radius: var(--osf-consent-radius);
}

#consent-manager .consent-modal-close:hover,
#consent-manager .consent-modal-close:focus {
  color: var(--osf-primary);
  background-color: var(--osf-primary-faint);
}

/* Floating cookie settings trigger */
#consent-settings-btn {
  background: var(--osf-surface-elevated);
  border: 1px solid var(--osf-consent-border);
  box-shadow: var(--osf-shadow-card);
  color: var(--osf-primary);
}

#consent-settings-btn:hover,
#consent-settings-btn:focus {
  background: var(--osf-primary);
  border-color: var(--osf-primary);
  color: #fff;
}

#consent-settings-btn .consent-icon svg {
  fill: currentColor;
}

/* Video / map consent preview links (outside #consent-manager) */
a.give-consent-preview {
  color: var(--osf-primary);
}

a.give-consent-preview:hover,
a.give-consent-preview:focus-visible {
  color: var(--osf-primary-dark);
}

/* --------------------------------------------------------------------------
   PDP — variation picker (Inlead-style chips / image swatches)
   -------------------------------------------------------------------------- */
.osf-detail-variations {
  margin-bottom: 1rem;
}

.osf-detail-variations__list {
  margin: 0;
}

.osf-detail-variation {
  margin-bottom: 1.1rem;
}

.osf-detail-variation:last-child {
  margin-bottom: 0;
}

.osf-detail-variation__header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.55rem;
  font-weight: inherit;
}

.osf-detail-variation__title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.45rem;
}

.osf-detail-variation__name {
  font-size: 0.95rem;
  font-weight: 600;
  color: #1e293b;
}

.osf-detail-variation__count {
  font-size: 0.85rem;
  font-weight: 500;
  color: #64748b;
}

.osf-detail-variation__selected {
  font-size: 0.85rem;
  font-weight: 500;
}

/* PDP: gewählter Wert nur im Picker, nicht in der Merkmals-Kopfzeile */
.osf-pdp-buybox .osf-detail-variation__selected {
  display: none;
}

.osf-detail-variation__body {
  margin-bottom: 0;
}

.osf-variation-swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
}

/* PDP: text chips wrap to multiple rows (no horizontal scroll) */
.osf-pdp-buybox .osf-variation-swatches--chips.osf-variation-swatches--wrap {
  flex-wrap: wrap;
  overflow: visible;
  padding-bottom: 0;
  gap: 0.5rem;
}

.osf-pdp-buybox .osf-variation-swatches--chips.osf-variation-swatches--wrap .osf-variation-swatches__item {
  flex-shrink: 1;
  scroll-snap-align: unset;
  max-width: 100%;
}

.osf-pdp-buybox .osf-detail-variations .osf-variation-option--text .osf-variation-option__label {
  max-width: none;
  white-space: normal;
  text-align: center;
  line-height: 1.2;
}

/* PDP: unavailable variation values in accordion */
.osf-pdp-buybox .osf-variation-unavailable-accordion {
  margin-top: 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: var(--osf-radius-sm, 0.35rem);
  background: #f8fafc;
}

.osf-pdp-buybox .osf-variation-unavailable-accordion__summary {
  padding: 0.55rem 0.85rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  list-style: none;
}

.osf-pdp-buybox .osf-variation-unavailable-accordion__summary::-webkit-details-marker {
  display: none;
}

.osf-pdp-buybox .osf-variation-unavailable-accordion[open] .osf-variation-unavailable-accordion__summary {
  border-bottom: 1px solid #e2e8f0;
}

.osf-pdp-buybox .osf-variation-unavailable-accordion .osf-variation-swatches--unavailable-panel {
  padding: 0.65rem 0.75rem 0.75rem;
  margin: 0;
}

/* PLP / compact rows: horizontal scroll when many options */
.osf-variation-swatches--scroll:not(.osf-variation-swatches--wrap) {
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
  padding-bottom: 0.35rem;
  scrollbar-width: thin;
}

.osf-variation-swatches--scroll:not(.osf-variation-swatches--wrap) .osf-variation-swatches__item {
  flex-shrink: 0;
  scroll-snap-align: start;
}

.osf-variation-swatches:has(.osf-variation-option--img):not(.osf-variation-swatches--scroll) {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
  gap: 0.5rem;
}

.osf-detail-variations .osf-variation-option {
  margin: 0;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.osf-detail-variations .osf-variation-option--text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.5rem;
  padding: 0.5rem 1rem;
  border: 1px solid #cbd5e1;
  border-radius: 9999px;
  background: var(--osf-surface-elevated);
  color: #1e293b;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.25;
  white-space: nowrap;
}

.osf-detail-variations .osf-variation-option--text:hover:not(.not-available):not(.active) {
  border-color: var(--osf-primary);
  background: #f8fafc;
}

.osf-detail-variations .osf-variation-option--text .osf-variation-option__label {
  max-width: 12rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.osf-detail-variations .osf-variation-option--img {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 88px;
  max-width: 110px;
  padding: 0;
  border: 1px solid #cbd5e1;
  border-radius: var(--osf-radius-sm);
  background: var(--osf-surface-elevated);
  overflow: hidden;
}

.osf-detail-variations .osf-variation-option__media {
  display: block;
  line-height: 0;
  background: var(--osf-surface);
}

.osf-detail-variations .osf-variation-option__media .square-image,
.osf-detail-variations .osf-variation-option__media img,
.osf-detail-variations .osf-variation-option--img > img {
  width: 100%;
  height: 72px;
  object-fit: cover;
  padding: 0;
}

.osf-detail-variations .osf-variation-option__caption {
  display: block;
  padding: 0.4rem 0.35rem;
  font-size: 0.72rem;
  line-height: 1.25;
  font-weight: 500;
  border-top: 1px solid #e2e8f0;
  color: #334155;
}

.osf-detail-variations .osf-variation-option.active,
.osf-detail-variations .osf-variation-option:has(.control-hidden:checked) {
  border-color: var(--osf-primary);
  box-shadow: 0 0 0 2px rgba(31, 157, 203, 0.28);
}

.osf-detail-variations .osf-variation-option--text.active,
.osf-detail-variations .osf-variation-option--text:has(.control-hidden:checked) {
  background: var(--osf-primary-faint);
  font-weight: 600;
}

.osf-detail-variations .osf-variation-option.not-available,
.osf-detail-variations .osf-variation-option.swatches-sold-out {
  opacity: 0.5;
}

.osf-detail-variations .osf-variation-option.not-available .osf-variation-option__label,
.osf-detail-variations .osf-variation-option.not-available .osf-variation-option__caption {
  text-decoration: line-through;
}

/* PDP: hide legacy select/radio only when chips/swatches are rendered in the same row */
.osf-pdp-buybox .osf-detail-variation__body:has(.osf-variation-swatches) .custom-radio {
  display: none;
}

.osf-pdp-buybox .osf-detail-variation__body:has(.osf-variation-swatches) .bootstrap-select,
.osf-pdp-buybox .osf-detail-variation__body:has(.osf-variation-swatches) select.selectpicker {
  display: none !important;
}

/* PDP dropdown mode: full-width bootstrap-select */
.osf-pdp-buybox .osf-detail-variation__body .bootstrap-select {
  width: 100%;
  max-width: 100%;
}

.osf-pdp-buybox .osf-detail-variation__body .bootstrap-select > .dropdown-toggle {
  width: 100%;
}

/* PDP: compact + rich variation dropdowns (bootstrap-select) */
.osf-pdp-buybox .osf-variation-select-wrap--simple .bootstrap-select > .dropdown-toggle,
.osf-pdp-buybox .osf-variation-select-wrap--rich .bootstrap-select > .dropdown-toggle {
  min-height: 3rem;
  padding: 0.5rem 2.25rem 0.5rem 0.75rem;
  border: 1px solid rgba(0, 0, 0, 0.85);
  border-radius: 0.35rem;
  background: #fff;
  box-shadow: none;
}

.osf-pdp-buybox .osf-variation-select-wrap--rich .bootstrap-select > .dropdown-toggle .filter-option-inner-inner,
.osf-pdp-buybox .osf-variation-select-wrap--rich .bootstrap-select .dropdown-menu li a .text {
  width: 100%;
}

.osf-pdp-buybox .osf-vselect-option {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 2.5rem;
  text-align: left;
}

.osf-pdp-buybox .osf-vselect-option__media {
  flex: 0 0 2.5rem;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  overflow: hidden;
  background: #f3f5f7;
}

.osf-pdp-buybox .osf-vselect-option__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.osf-pdp-buybox .osf-vselect-option__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  min-width: 0;
}

.osf-pdp-buybox .osf-vselect-option__label {
  font-size: 0.95rem;
  line-height: 1.25;
  font-weight: 500;
}

.osf-pdp-buybox .osf-variation-select-wrap--rich .bootstrap-select .dropdown-menu {
  max-height: 22rem;
  padding: 0.25rem 0;
}

.osf-pdp-buybox .osf-variation-select-wrap--rich .bootstrap-select .dropdown-menu li a {
  padding: 0.55rem 0.85rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.osf-pdp-buybox .osf-variation-select-wrap--rich .bootstrap-select .dropdown-menu li:last-child a {
  border-bottom: 0;
}

.osf-pdp-buybox .osf-variation-select-wrap--rich .bootstrap-select .dropdown-menu li.selected a,
.osf-pdp-buybox .osf-variation-select-wrap--rich .bootstrap-select .dropdown-menu li.active a {
  background: rgba(31, 157, 203, 0.08);
}

.osf-pdp-buybox .osf-variation-select-wrap--rich .bootstrap-select .dropdown-menu li.selected a .osf-vselect-option__label,
.osf-pdp-buybox .osf-variation-select-wrap--rich .bootstrap-select .dropdown-menu li.active a .osf-vselect-option__label {
  font-weight: 700;
}

.osf-pdp-buybox .osf-variation-select-wrap--rich .bootstrap-select .dropdown-menu .check-mark {
  top: 50%;
  right: 0.85rem;
  margin-top: 0;
  transform: translateY(-50%);
}

.osf-pdp-buybox .osf-variation-select-wrap--rich .bootstrap-select .bs-searchbox {
  padding: 0.5rem 0.75rem 0.35rem;
}

.osf-pdp-buybox .osf-variation-select-wrap--rich .bootstrap-select .bs-searchbox .form-control {
  border-radius: 0.35rem;
}

.osf-pdp-buybox .osf-detail-variations .osf-variation-option--text .osf-variation-option__media,
.osf-pdp-buybox .osf-detail-variations .osf-variation-option--text img {
  display: none !important;
}

.osf-pdp-buybox .osf-detail-variations {
  margin-top: 0.15rem;
}

/* --------------------------------------------------------------------------
   Header: manufacturer mega menu (full width, card grid, ABC filter)
   -------------------------------------------------------------------------- */
.osf-manufacturer-mega-nav--enhanced.dropdown-full {
  position: static;
}

.osf-manufacturer-mega__menu {
  width: 100%;
  left: 0;
  right: 0;
  max-height: min(75vh, 640px);
  overflow: hidden;
}

.osf-manufacturer-mega__menu > .dropdown-body {
  padding: 0;
  max-height: inherit;
  overflow: auto;
}

.osf-manufacturer-mega {
  padding: 1rem 1.25rem 1.25rem;
  background: var(--osf-surface-elevated);
}

/* Desktop: opaque full-width panel above page content (fixes bleed-through on e.g. /kalorienrechner) */
@media (min-width: 992px) {
  header:has(.osf-manufacturer-mega__menu.show) {
    z-index: 1050;
  }

  #mainNavigation.nav-scrollbar:has(.osf-manufacturer-mega__menu.show) {
    overflow: visible;
  }

  .osf-manufacturer-mega__menu.show,
  .osf-shop-cc-theme header .osf-manufacturer-mega__menu.show {
    z-index: 2;
    margin-top: 0;
    border-radius: 0;
    background: var(--osf-surface-elevated, #ffffff) !important;
    background-color: var(--osf-surface-elevated, #ffffff) !important;
    border-top: 1px solid rgba(var(--osf-brand-rgb, 23, 137, 173), 0.18) !important;
    box-shadow: var(--osf-header-shadow, 0 4px 16px rgba(15, 41, 53, 0.08)), 0 8px 24px rgba(15, 41, 53, 0.06) !important;
    isolation: isolate;
  }

  .osf-manufacturer-mega__menu.show > .dropdown-body,
  .osf-shop-cc-theme header .osf-manufacturer-mega__menu.show > .dropdown-body {
    background: var(--osf-surface-elevated, #ffffff) !important;
    background-color: var(--osf-surface-elevated, #ffffff) !important;
  }

  .osf-manufacturer-mega__menu.show .osf-manufacturer-mega,
  .osf-shop-cc-theme header .osf-manufacturer-mega__menu.show .osf-manufacturer-mega {
    background: var(--osf-surface-elevated, #ffffff) !important;
    background-color: var(--osf-surface-elevated, #ffffff) !important;
  }

  .osf-shop-cc-theme header .osf-manufacturer-mega__name,
  .osf-shop-cc-theme header .osf-manufacturer-mega__item a,
  .osf-shop-cc-theme header .osf-manufacturer-mega__all-link {
    color: var(--osf-header-dark-bg, #1a3340) !important;
  }

  .osf-shop-cc-theme header .osf-manufacturer-mega__abc-btn {
    color: var(--osf-header-dark-bg, #1a3340) !important;
    background: rgba(var(--osf-brand-rgb, 23, 137, 173), 0.12) !important;
  }
}

.osf-shop-cc-theme .osf-manufacturer-mega {
  background: transparent;
}

.osf-manufacturer-mega__abc {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--osf-border-subtle);
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--osf-surface-elevated);
}

.osf-manufacturer-mega__abc--legacy {
  position: static;
  border-bottom: none;
  padding-bottom: 0;
}

.osf-manufacturer-mega__abc-btn {
  min-width: 2rem;
  padding: 0.2rem 0.45rem;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--osf-primary-deeper);
  background: var(--osf-primary-faint);
  border: 1px solid transparent;
  border-radius: var(--osf-radius-sm);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.osf-manufacturer-mega__abc-btn:hover:not(:disabled):not(.is-disabled) {
  background: var(--osf-primary-light);
  border-color: var(--osf-border-subtle);
}

.osf-manufacturer-mega__abc-btn.is-active {
  color: #fff;
  background: var(--osf-primary);
  border-color: var(--osf-primary-dark);
}

.osf-manufacturer-mega__abc-btn.is-disabled,
.osf-manufacturer-mega__abc-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.osf-manufacturer-mega__abc-btn[data-letter="*"] {
  min-width: auto;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.osf-manufacturer-mega__grid {
  display: grid;
  grid-template-columns: repeat(var(--osf-mfr-cols, 6), minmax(0, 1fr));
  gap: 0.75rem 1rem;
  align-items: stretch;
}

.osf-manufacturer-mega__item {
  display: flex;
  min-width: 0;
}

.osf-manufacturer-mega__item.is-filtered-out,
.osf-manufacturer-mega__legacy-item.is-filtered-out {
  display: none !important;
}

.osf-manufacturer-mega__card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 7.5rem;
  padding: 0.85rem 0.65rem;
  text-align: center;
  text-decoration: none;
  color: #1e293b;
  background: var(--osf-surface-elevated, #fff);
  border: 1px solid transparent;
  border-radius: var(--osf-radius-md);
  box-shadow: none;
  transition: color 0.15s ease;
}

.osf-manufacturer-mega__card:hover,
.osf-manufacturer-mega__card:focus {
  text-decoration: none;
  color: var(--osf-primary-deeper);
}

.osf-manufacturer-mega__card:hover .osf-manufacturer-mega__logo,
.osf-manufacturer-mega__card:focus .osf-manufacturer-mega__logo {
  border-color: rgba(31, 157, 203, 0.28);
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.06);
}

.osf-manufacturer-mega__logo {
  --osf-mfr-logo-h: 6rem;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: var(--osf-mfr-logo-h);
  height: var(--osf-mfr-logo-h);
  padding: 0.35rem 0.5rem;
  background: #fff;
  border: 1px solid var(--osf-border-subtle);
  border-radius: var(--osf-radius-sm);
  overflow: visible;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.osf-manufacturer-mega__logo-img,
.osf-manufacturer-mega__logo img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border: 0;
  background: transparent;
}

.osf-manufacturer-mega__name {
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.3;
  word-break: break-word;
}

.osf-manufacturer-mega--names-hidden .osf-manufacturer-mega__card {
  gap: 0;
  min-height: 7.75rem;
  padding: 0.75rem 0.65rem;
}

.osf-manufacturer-mega--names-hidden .osf-manufacturer-mega__logo {
  --osf-mfr-logo-h: 6.5rem;
}

.osf-manufacturer-mega-nav--names-hidden:not(.osf-manufacturer-mega-nav--enhanced) .submenu-headline-image {
  margin-bottom: 0;
}

.osf-manufacturer-mega__footer {
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--osf-border-subtle);
}

.osf-manufacturer-mega__all-link {
  font-weight: 600;
  color: var(--osf-primary);
}

@media (max-width: 1199.98px) {
  .osf-manufacturer-mega__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .osf-manufacturer-mega {
    padding: 0.75rem 1rem 1rem;
  }

  .osf-manufacturer-mega__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
  }

  .osf-manufacturer-mega__card {
    min-height: 6.5rem;
    padding: 0.65rem 0.5rem;
  }

  .osf-manufacturer-mega--names-hidden .osf-manufacturer-mega__card {
    min-height: 4.5rem;
    padding: 0.6rem 0.5rem;
  }
}

@media (max-width: 575.98px) {
  .osf-manufacturer-mega__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .osf-manufacturer-mega__abc-btn {
    min-width: 1.65rem;
    padding: 0.15rem 0.3rem;
    font-size: 0.6875rem;
  }
}

/* --------------------------------------------------------------------------
   Startseite: Produkt-Slider (Fallback wenn shop-cc-theme verzögert lädt)
   -------------------------------------------------------------------------- */
.osf-shop-cc-theme .product-slider-wrapper .product-wrapper-product > a {
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid rgba(var(--osf-accent-rgb, 53, 215, 255), 0.22);
  border-radius: var(--osf-radius-md);
  padding: 0.45rem 0.75rem 0.65rem;
  box-shadow: var(--osf-shadow-sm);
}

.osf-shop-cc-theme .product-slider-wrapper .slick-slider-other.is-not-opc {
  background: var(--osf-glass-mix-soft);
  border: 1px solid rgba(var(--osf-accent-rgb, 53, 215, 255), 0.22);
  border-radius: var(--osf-radius-md);
  box-shadow: var(--osf-glass-shadow);
  padding: 0.85rem 0.65rem 1rem;
}

/* --------------------------------------------------------------------------
   CC-Button-Verlauf: „Mehr lesen“ (Kategorien) + „In den Warenkorb“ (PLP/PDP)
   Liegt am Dateiende — überschreibt Bootstrap .btn-primary (#1f9dcb).
   -------------------------------------------------------------------------- */
.osf-plp .osf-plp-intro__toggle,
.osf-shop-cc-theme .osf-plp .osf-plp-intro__toggle {
  background: linear-gradient(135deg, var(--osf-brand, #1789ad) 0%, var(--osf-accent, #35d7ff) 100%) !important;
  background-color: transparent !important;
  border-radius: var(--osf-radius-pill, 9999px) !important;
  color: var(--osf-text-on-brand, #ffffff) !important;
  box-shadow:
    0 4px 16px rgba(var(--osf-brand-rgb, 23, 137, 173), 0.22),
    0 2px 10px rgba(var(--osf-accent-rgb, 53, 215, 255), 0.28) !important;
}

.osf-plp .osf-plp-intro__toggle:hover,
.osf-plp .osf-plp-intro__toggle:focus,
.osf-shop-cc-theme .osf-plp .osf-plp-intro__toggle:hover {
  background: linear-gradient(135deg, var(--osf-accent, #35d7ff) 0%, var(--osf-brand, #1789ad) 100%) !important;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list) .basket-details-add-to-cart.btn-osf-plp-gallery-cta,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list) .btn-osf-plp-gallery-cta.btn-primary,
.osf-pdp-buybox #add-to-cart .btn-primary,
.osf-pdp #add-to-cart button.btn-primary,
.osf-pdp #add-to-cart .btn.btn-primary,
#add-to-cart .btn-primary,
.osf-shop-cc-theme .basket-details-add-to-cart.btn-osf-plp-gallery-cta,
.osf-shop-cc-theme #add-to-cart .btn-primary {
  background: linear-gradient(135deg, var(--osf-brand, #1789ad) 0%, var(--osf-accent, #35d7ff) 100%) !important;
  background-image: linear-gradient(135deg, var(--osf-brand, #1789ad) 0%, var(--osf-accent, #35d7ff) 100%) !important;
  background-color: transparent !important;
  border: none !important;
  border-color: transparent !important;
  border-radius: var(--osf-radius-pill, 9999px) !important;
  color: var(--osf-text-on-brand, #ffffff) !important;
  box-shadow:
    0 4px 16px rgba(var(--osf-brand-rgb, 23, 137, 173), 0.22),
    0 2px 10px rgba(var(--osf-accent-rgb, 53, 215, 255), 0.28) !important;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list) .basket-details-add-to-cart.btn-osf-plp-gallery-cta:hover,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list) .btn-osf-plp-gallery-cta.btn-primary:hover,
.osf-pdp-buybox #add-to-cart .btn-primary:hover,
.osf-pdp #add-to-cart .btn-primary:hover,
#add-to-cart .btn-primary:hover,
.osf-shop-cc-theme .basket-details-add-to-cart.btn-osf-plp-gallery-cta:hover,
.osf-shop-cc-theme #add-to-cart .btn-primary:hover {
  background: linear-gradient(135deg, var(--osf-accent, #35d7ff) 0%, var(--osf-brand, #1789ad) 100%) !important;
  background-image: linear-gradient(135deg, var(--osf-accent, #35d7ff) 0%, var(--osf-brand, #1789ad) 100%) !important;
  background-color: transparent !important;
  color: var(--osf-text-on-brand, #ffffff) !important;
}

.osf-plp .productlist-pagination .page-item.active .page-link {
  background: linear-gradient(135deg, var(--osf-brand, #1789ad) 0%, var(--osf-accent, #35d7ff) 100%) !important;
  background-color: transparent !important;
  border-color: transparent !important;
}

/* --------------------------------------------------------------------------
   Footer newsletter — outer wrapper (card radius; wins Bootstrap .row bleed)
   -------------------------------------------------------------------------- */
#footer .newsletter-footer.row.osf-footer-newsletter,
#footer .row.newsletter-footer.osf-footer-newsletter,
#footer .osf-footer-newsletter.newsletter-footer,
.osf-shop-cc-theme #footer .newsletter-footer,
.osf-shop-cc-theme #footer .osf-footer-newsletter {
  border-radius: var(--osf-footer-newsletter-radius, 1.25rem) !important;
  overflow: hidden !important;
  background-clip: padding-box !important;
  -webkit-background-clip: padding-box !important;
}

#footer .osf-footer-newsletter.row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Footer — gap below newsletter card (divider hidden; newsletter-active only) */
#footer.newsletter-active .osf-footer-main.row,
.osf-shop-cc-theme #footer.newsletter-active .osf-footer-main.row {
  margin-top: var(--osf-footer-newsletter-gap, 2.5rem) !important;
}

/* --------------------------------------------------------------------------
   Footer newsletter — pill left on email input (final cascade; custom.css)
   Blocker: .input-group > .form-control:not(:first-child) { border-*-left-radius: 0 }
   and .input-group .form-control { border-radius } later in this file (~3956–3974);
   Bootstrap onestorefront.css .input-group:not(.has-validation) > .form-control:not(:last-child).
   -------------------------------------------------------------------------- */
#footer #newsletter_email,
#footer .newsletter-email-wrapper .form-control,
#footer .osf-footer-newsletter .input-group > .form-control:first-child {
  border-top-left-radius: 9999px !important;
  border-bottom-left-radius: 9999px !important;
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  min-height: 2.75rem !important;
}

#footer .newsletter-email-wrapper .input-group,
#footer .osf-footer-newsletter .newsletter-email-wrapper .input-group {
  border-radius: 9999px !important;
  overflow: hidden !important;
}

#footer .osf-footer-newsletter .newsletter-email-wrapper .input-group-append .btn,
#footer #newsletter_email ~ .input-group-append .btn {
  min-height: 2.75rem !important;
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  border-top-right-radius: 9999px !important;
  border-bottom-right-radius: 9999px !important;
}

/* --------------------------------------------------------------------------
   Pill input-group — final cascade (header search + footer newsletter)
   Beats .input-group > .input-group-append > .btn { border-radius: var(--osf-radius-btn) }
   -------------------------------------------------------------------------- */
.osf-pill-input-group,
#footer .osf-footer-newsletter .newsletter-email-wrapper .input-group {
  border-radius: var(--osf-radius-btn-pill, 9999px) !important;
  overflow: hidden !important;
  border: 1px solid rgba(var(--osf-accent-rgb, 53, 215, 255), 0.3) !important;
  background: transparent !important;
  box-shadow: var(--osf-btn-shadow-sm) !important;
}

.osf-pill-input-group > .form-control:first-child,
#footer .osf-pill-input-group > #newsletter_email {
  flex: 1 1 auto !important;
  width: 1% !important;
  min-width: 0 !important;
  border-top-left-radius: 9999px !important;
  border-bottom-left-radius: 9999px !important;
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  min-height: 2.75rem !important;
  background: rgba(255, 255, 255, 0.12) !important;
  border: 0 !important;
  color: #fff !important;
}

#footer #newsletter_email::placeholder,
#footer .osf-pill-input-group > #newsletter_email::placeholder,
#footer .osf-footer-newsletter .newsletter-email-wrapper .form-control::placeholder {
  color: #fff !important;
  opacity: 1 !important;
}

#footer #newsletter_email::-webkit-input-placeholder,
#footer .osf-pill-input-group > #newsletter_email::-webkit-input-placeholder,
#footer .osf-footer-newsletter .newsletter-email-wrapper .form-control::-webkit-input-placeholder {
  color: #fff !important;
  opacity: 1 !important;
}

#footer #newsletter_email::-moz-placeholder,
#footer .osf-pill-input-group > #newsletter_email::-moz-placeholder,
#footer .osf-footer-newsletter .newsletter-email-wrapper .form-control::-moz-placeholder {
  color: #fff !important;
  opacity: 1 !important;
}

header .search-wrapper input[name="qs"]::placeholder,
header .main-search input[name="qs"]::placeholder,
header .search-form-wrapper-fixed input[name="qs"]::placeholder,
header .search-wrapper #search-header::placeholder,
header .search-wrapper .input-group .form-control::placeholder,
header .main-search .input-group .form-control::placeholder,
header .search-form-wrapper-fixed .input-group .form-control::placeholder {
  color: #fff !important;
  opacity: 1 !important;
}

header .search-wrapper input[name="qs"]::-webkit-input-placeholder,
header .main-search input[name="qs"]::-webkit-input-placeholder,
header .search-form-wrapper-fixed input[name="qs"]::-webkit-input-placeholder,
header .search-wrapper #search-header::-webkit-input-placeholder {
  color: #fff !important;
  opacity: 1 !important;
}

#footer .osf-pill-input-group .input-group-append .btn,
#footer #newsletter_email ~ .input-group-append .btn {
  min-height: 2.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  border-top-right-radius: 9999px !important;
  border-bottom-right-radius: 9999px !important;
  border: none !important;
  background: var(--osf-btn-gradient) !important;
  background-image: var(--osf-btn-gradient) !important;
  color: var(--osf-text-on-brand, #ffffff) !important;
  box-shadow: var(--osf-btn-shadow-sm) !important;
}

#footer .osf-pill-input-group .input-group-append .btn:hover,
#footer .osf-pill-input-group .input-group-append .btn:focus,
#footer #newsletter_email ~ .input-group-append .btn:hover,
#footer #newsletter_email ~ .input-group-append .btn:focus {
  background: var(--osf-btn-gradient-hover) !important;
  background-image: var(--osf-btn-gradient-hover) !important;
  box-shadow: var(--osf-btn-shadow) !important;
}

.osf-shop-cc-theme .osf-pill-input-group .input-group-append .btn,
.osf-shop-cc-theme .osf-pill-input-group .input-group-append .osf-search-submit,
.osf-shop-cc-theme header .search-wrapper .input-group-append .osf-search-submit,
.osf-shop-cc-theme header .main-search .input-group-append .osf-search-submit,
.osf-shop-cc-theme header .search-form-wrapper-fixed .input-group-append .osf-search-submit {
  background: var(--osf-btn-gradient) !important;
  background-image: var(--osf-btn-gradient) !important;
  border: none !important;
  color: var(--osf-text-on-brand, #ffffff) !important;
  box-shadow: var(--osf-btn-shadow-sm) !important;
}

.osf-shop-cc-theme .osf-pill-input-group .input-group-append .btn:hover,
.osf-shop-cc-theme .osf-pill-input-group .input-group-append .osf-search-submit:hover,
.osf-shop-cc-theme header .search-wrapper .input-group-append .osf-search-submit:hover,
.osf-shop-cc-theme header .main-search .input-group-append .osf-search-submit:hover,
.osf-shop-cc-theme header .search-form-wrapper-fixed .input-group-append .osf-search-submit:hover,
.osf-shop-cc-theme .osf-pill-input-group .input-group-append .btn:focus,
.osf-shop-cc-theme .osf-pill-input-group .input-group-append .osf-search-submit:focus,
.osf-shop-cc-theme header .search-wrapper .input-group-append .osf-search-submit:focus,
.osf-shop-cc-theme header .main-search .input-group-append .osf-search-submit:focus,
.osf-shop-cc-theme header .search-form-wrapper-fixed .input-group-append .osf-search-submit:focus {
  background: var(--osf-btn-gradient-hover) !important;
  background-image: var(--osf-btn-gradient-hover) !important;
  box-shadow: var(--osf-btn-shadow) !important;
}

header .osf-search-submit__label {
  color: var(--osf-text-on-brand, #ffffff) !important;
}

/* --------------------------------------------------------------------------
   Header search pill — clip-only (wrapper rounds; children square = no seam gaps)
   -------------------------------------------------------------------------- */
header .search-wrapper .input-group.osf-pill-input-group,
header .main-search .input-group.osf-pill-input-group,
header .search-form-wrapper-fixed .input-group.osf-pill-input-group {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  border-radius: var(--osf-radius-btn-pill, 9999px) !important;
  overflow: hidden !important;
  isolation: isolate !important;
  background: rgba(255, 255, 255, 0.12) !important;
  border: 1px solid rgba(var(--osf-accent-rgb, 53, 215, 255), 0.3) !important;
  box-shadow: var(--osf-btn-shadow-sm) !important;
}

header .search-wrapper .input-group.osf-pill-input-group > .twitter-typeahead,
header .main-search .input-group.osf-pill-input-group > .twitter-typeahead,
header .search-form-wrapper-fixed .input-group.osf-pill-input-group > .twitter-typeahead {
  flex: 1 1 auto !important;
  width: 1% !important;
  min-width: 0 !important;
  display: flex !important;
  align-items: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  overflow: hidden !important;
}

header .search-wrapper .input-group.osf-pill-input-group .twitter-typeahead .form-control,
header .search-wrapper .input-group.osf-pill-input-group #search-header,
header .search-wrapper .input-group.osf-pill-input-group input[name="qs"],
header .main-search .input-group.osf-pill-input-group .twitter-typeahead .form-control,
header .main-search .input-group.osf-pill-input-group input[name="qs"],
header .search-form-wrapper-fixed .input-group.osf-pill-input-group .twitter-typeahead .form-control,
header .search-form-wrapper-fixed .input-group.osf-pill-input-group input[name="qs"] {
  flex: 1 1 auto !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 2.75rem !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(255, 255, 255, 0.12) !important;
  box-shadow: none !important;
  color: var(--osf-header-text, var(--osf-footer-text, #e8f1f4)) !important;
}

header .search-wrapper .input-group.osf-pill-input-group > .input-group-append,
header .main-search .input-group.osf-pill-input-group > .input-group-append,
header .search-form-wrapper-fixed .input-group.osf-pill-input-group > .input-group-append {
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  overflow: hidden !important;
}

header .search-wrapper .input-group.osf-pill-input-group > .input-group-append > .btn,
header .search-wrapper .input-group.osf-pill-input-group .osf-search-submit,
header .main-search .input-group.osf-pill-input-group > .input-group-append > .btn,
header .main-search .input-group.osf-pill-input-group .osf-search-submit,
header .search-form-wrapper-fixed .input-group.osf-pill-input-group > .input-group-append > .btn,
header .search-form-wrapper-fixed .input-group.osf-pill-input-group .osf-search-submit,
.osf-shop-cc-theme header .search-wrapper .input-group.osf-pill-input-group > .input-group-append > .btn,
.osf-shop-cc-theme header .main-search .input-group.osf-pill-input-group > .input-group-append > .btn,
.osf-shop-cc-theme header .search-form-wrapper-fixed .input-group.osf-pill-input-group > .input-group-append > .btn,
.osf-shop-cc-theme header .search-wrapper .input-group.osf-pill-input-group .osf-search-submit,
.osf-shop-cc-theme header .main-search .input-group.osf-pill-input-group .osf-search-submit,
.osf-shop-cc-theme header .search-form-wrapper-fixed .input-group.osf-pill-input-group .osf-search-submit {
  min-height: 2.75rem !important;
  margin: 0 !important;
  padding: 0 1.25rem !important;
  border: none !important;
  border-radius: 0 !important;
  background: var(--osf-btn-gradient) !important;
  background-image: var(--osf-btn-gradient) !important;
  color: var(--osf-text-on-brand, #ffffff) !important;
  box-shadow: var(--osf-btn-shadow-sm) !important;
}

header .search-wrapper .input-group.osf-pill-input-group .osf-search-submit:hover,
header .search-wrapper .input-group.osf-pill-input-group .osf-search-submit:focus,
header .main-search .input-group.osf-pill-input-group .osf-search-submit:hover,
header .main-search .input-group.osf-pill-input-group .osf-search-submit:focus,
header .search-form-wrapper-fixed .input-group.osf-pill-input-group .osf-search-submit:hover,
header .search-form-wrapper-fixed .input-group.osf-pill-input-group .osf-search-submit:focus {
  border-radius: 0 !important;
  background: var(--osf-btn-gradient-hover) !important;
  background-image: var(--osf-btn-gradient-hover) !important;
  box-shadow: var(--osf-btn-shadow) !important;
}

/* --------------------------------------------------------------------------
   Global CTA glow — match footer „Route planen“ (all gradient primary buttons)
   -------------------------------------------------------------------------- */
.osf-shop-cc-theme .osf-btn-primary,
.osf-shop-cc-theme .btn-primary:not(.btn-link):not(.page-link):not(.btn-close):not(.navbar-toggler):not(.btn-filter-box):not(.dropdown-toggle):not(.btn-skip-to),
.osf-shop-cc-theme .btn-osf-plp-gallery-cta,
.osf-shop-cc-theme .basket-details-add-to-cart.btn-osf-plp-gallery-cta,
.osf-shop-cc-theme .osf-plp-intro__toggle,
.osf-shop-cc-theme .osf-store-locator__route-btn,
.osf-shop-cc-theme #add-to-cart .btn-primary,
.osf-shop-cc-theme .osf-pill-input-group .input-group-append .btn,
.osf-shop-cc-theme .osf-pill-input-group .input-group-append .osf-search-submit,
.osf-shop-cc-theme header .search-wrapper .input-group.osf-pill-input-group .osf-search-submit,
.osf-shop-cc-theme header .main-search .input-group.osf-pill-input-group .osf-search-submit,
.osf-shop-cc-theme header .search-form-wrapper-fixed .input-group.osf-pill-input-group .osf-search-submit,
#footer .osf-pill-input-group .input-group-append .btn,
#footer #newsletter_email ~ .input-group-append .btn {
  box-shadow: var(--osf-btn-shadow-sm) !important;
}

.osf-shop-cc-theme .osf-btn-primary:hover,
.osf-shop-cc-theme .osf-btn-primary:focus,
.osf-shop-cc-theme .btn-primary:not(.btn-link):not(.page-link):hover,
.osf-shop-cc-theme .btn-primary:not(.btn-link):not(.page-link):focus,
.osf-shop-cc-theme .btn-osf-plp-gallery-cta:hover,
.osf-shop-cc-theme .btn-osf-plp-gallery-cta:focus,
.osf-shop-cc-theme .basket-details-add-to-cart.btn-osf-plp-gallery-cta:hover,
.osf-shop-cc-theme .basket-details-add-to-cart.btn-osf-plp-gallery-cta:focus,
.osf-shop-cc-theme .osf-plp-intro__toggle:hover,
.osf-shop-cc-theme .osf-plp-intro__toggle:focus,
.osf-shop-cc-theme #add-to-cart .btn-primary:hover,
.osf-shop-cc-theme #add-to-cart .btn-primary:focus,
.osf-shop-cc-theme .osf-pill-input-group .input-group-append .btn:hover,
.osf-shop-cc-theme .osf-pill-input-group .input-group-append .btn:focus,
.osf-shop-cc-theme .osf-pill-input-group .input-group-append .osf-search-submit:hover,
.osf-shop-cc-theme .osf-pill-input-group .input-group-append .osf-search-submit:focus,
#footer .osf-pill-input-group .input-group-append .btn:hover,
#footer .osf-pill-input-group .input-group-append .btn:focus,
#footer #newsletter_email ~ .input-group-append .btn:hover,
#footer #newsletter_email ~ .input-group-append .btn:focus {
  box-shadow: var(--osf-btn-shadow) !important;
}

/* PLP gallery card — single glass shell; avoid corner color bleed from layered backgrounds */
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery
  .osf-product-card.productbox {
  overflow: visible;
  background: transparent;
  border: 0;
  box-shadow: none;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery
  .osf-product-card
  .productbox-inner {
  overflow: hidden !important;
  padding-bottom: 0.5rem;
  isolation: isolate;
  background: var(--osf-surface-elevated, #ffffff) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: var(--osf-plp-shadow, var(--osf-shadow-sm)) !important;
  background-clip: padding-box !important;
  -webkit-background-clip: padding-box !important;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery
  .osf-product-card
  .productbox-inner > .row,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery
  .osf-product-card
  .productbox-inner > .row > [class*="col-"] {
  background: transparent;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery
  .osf-product-card
  .productbox-inner > .row > [class*="col-"]:first-child,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery
  .osf-product-card
  .productbox-image,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery
  .osf-product-card
  .productbox-images,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery
  .osf-product-card
  .square-image,
:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery
  .osf-product-card
  .square-image .inner {
  background: transparent;
  border-radius: 0;
}

:is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery
  .osf-product-card
  .osf-plp-card-extras--gallery {
  margin-left: 1rem;
  margin-right: 1rem;
}

.osf-plp #product-list.layout-gallery .osf-plp-bulk .osf-bulk-prices__card {
  border-radius: var(--osf-radius-md, 0.75rem);
}

/* WCAG AA: secondary/muted text on light surfaces (Lighthouse color-contrast) */
.osf-shop-cc-theme .text-muted,
.osf-plp .text-muted,
.osf-pdp .text-muted,
.osf-cart .text-muted {
  color: #475569;
}

.osf-shop-cc-theme a.text-muted:hover,
.osf-plp a.text-muted:hover {
  color: #334155;
}

/* PLP sidebar + content: unified active state (brand gradient, not yellow underline) */
.is-item-list #sidepanel_left .filter-item.active,
.is-item-list #sidepanel_left .box-categories .nav-link.active,
.osf-shop-cc-theme #sidepanel_left .filter-item.active,
.osf-shop-cc-theme #sidepanel_left .nav-link.active {
  background: linear-gradient(135deg, rgba(var(--osf-brand-rgb, 23, 137, 173), 0.12) 0%, rgba(var(--osf-accent-rgb, 53, 215, 255), 0.1) 100%);
  border-color: rgba(var(--osf-brand-rgb, 23, 137, 173), 0.25);
  color: var(--osf-heading, #000);
  box-shadow: none;
  text-decoration: none;
}

.is-item-list #sidepanel_left .box-categories .nav-link.active::before,
.is-item-list #sidepanel_left .productlist-filter-categories > .nav-item > .nav-link::before,
.is-item-list #sidepanel_left .productlist-filter-categories > .nav-item > .nav-link.active::before,
.osf-shop-cc-theme #sidepanel_left .productlist-filter-categories > .nav-item > .nav-link::before,
.osf-shop-cc-theme #sidepanel_left .productlist-filter-categories > .nav-item > .nav-link.active::before,
.is-item-list #sidepanel_left .filter-item.active::after {
  display: none;
}

/* PLP sidebar: price slider thumbs + track (legacy #F8BF00) */
.is-item-list #sidepanel_left .noUi-horizontal .noUi-connect,
.osf-shop-cc-theme #sidepanel_left .noUi-horizontal .noUi-connect {
  background: var(--osf-brand, #1789ad) !important;
}

.is-item-list #sidepanel_left .noUi-horizontal .noUi-handle,
.osf-shop-cc-theme #sidepanel_left .noUi-horizontal .noUi-handle {
  background: var(--osf-brand, #1789ad) !important;
  border: 0 !important;
  box-shadow: 0 0 0 5px rgba(var(--osf-brand-rgb, 23, 137, 173), 0.35) !important;
}

/* PLP mobile abnahme */
.osf-plp {
  overflow-x: clip;
}

/* Gallery mobile: keep row stretch from base PLP rules (equal card height in a row) */

@media (max-width: 575.98px) {
  /* Gallery PLP mobile: only cart FAB — no portion stats, bulk tiers, or qty stepper */
  .osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-card-extras {
    display: none;
  }

  /* Mixed simple/variation rows: reserve under-image slot so title + price baselines align */
  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variation-slot.osf-plp-gallery-variations--under-image {
    flex-shrink: 0;
    min-height: 3.85rem;
  }

  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variation-slot--empty.osf-plp-gallery-variations--under-image {
    min-height: 3.85rem !important;
    height: auto !important;
    margin: -2.35rem 0.65rem 0.35rem !important;
    padding: 0 0 0.15rem !important;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
  }

  .osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .osf-plp-variations--gallery dl:has(.osf-variation-select-wrap) > .variation-wrapper > dt.osf-detail-variation__header {
    display: none !important;
  }

  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .osf-product-card__variation-slot.osf-plp-gallery-variations--under-image:not(.osf-product-card__variation-slot--empty) {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
  }

  .osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .osf-plp-variations--gallery:has(.osf-variation-select-wrap) .variation-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
  }

  .osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-variations--under-image .osf-plp-variations--gallery:has(.osf-variation-select-wrap) dd.osf-detail-variation__body {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-top: 0;
    margin-bottom: 0;
  }

  .osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-actions__qty {
    display: none !important;
  }

  .osf-plp #product-list.layout-gallery .osf-product-card .osf-product-card__actions.osf-plp-gallery-actions {
    --osf-plp-action-height: 44px;
    --osf-gallery-qty-height: 44px;
  }

  .osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-actions .osf-plp-actions-inner {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0;
  }

  .osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-actions .osf-plp-actions-inner > .btn-osf-plp-gallery-cta,
  .osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-actions .osf-plp-actions-inner > .basket-details-add-to-cart.btn-osf-plp-gallery-cta {
    flex: 0 0 auto;
    margin-left: auto;
    flex: 0 0 2.75rem;
    width: 2.75rem;
    min-width: 2.75rem;
    max-width: 2.75rem;
    height: 2.75rem;
    min-height: 2.75rem;
    max-height: 2.75rem;
    padding-left: 0;
    padding-right: 0;
    margin: 0 !important;
  }

  .osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-actions .osf-plp-actions-inner > .btn-osf-plp-gallery-cta .osf-plp-gallery-cta__label,
  .osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-actions .osf-plp-actions-inner > .basket-details-add-to-cart.btn-osf-plp-gallery-cta .osf-plp-gallery-cta__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-actions .osf-plp-actions-inner > .btn-osf-plp-gallery-cta .osf-plp-gallery-cta__icon,
  .osf-plp #product-list.layout-gallery .osf-product-card .osf-plp-gallery-actions .osf-plp-actions-inner > .basket-details-add-to-cart.btn-osf-plp-gallery-cta .osf-plp-gallery-cta__icon {
    display: inline-block;
    margin: 0;
  }

  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-title,
  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .productbox-title a {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper {
    overflow-wrap: anywhere;
    min-width: 0;
  }

  /* Price range: full row + wrap (theme .second-range-price uses nowrap → clips in overflow:hidden cards) */
  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper > .price {
    flex: 0 0 100%;
    max-width: 100%;
    min-width: 0;
  }

  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper .price .first-range-price,
  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper .price .second-range-price {
    white-space: normal;
  }

  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper .price .second-range-price {
    display: inline;
  }

  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper .price-note > .base-price {
    flex: 0 0 100%;
    max-width: 100%;
    min-width: 0;
  }

  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper .price:has(.second-range-price) {
    font-size: 0.9375rem;
    line-height: 1.25;
  }

  /* Equal price block: 2-line range slot + reserved Grundpreis row when VPE missing */
  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper > .price {
    min-height: 2.4rem;
  }

  :is(.osf-plp #product-list, .osf-pdp .recommendations .osf-pdp-rec-plp-context .product-list, .osf-cart .recommendations .osf-pdp-rec-plp-context .product-list).layout-gallery .osf-product-card .price_wrapper .price-note {
    display: block;
    flex: 0 0 100%;
    min-height: 0.875rem;
  }

  /* PLP gallery mobile: price + Grundpreis left, cart FAB top-right of price block (row-aligned) */
  .osf-plp #product-list.layout-gallery .osf-product-card .osf-product-card__caption-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 2.75rem;
    column-gap: 0.5rem;
    row-gap: 0.15rem;
    align-items: start;
    position: static;
    padding-bottom: 0.65rem;
  }

  .osf-plp #product-list.layout-gallery .osf-product-card .osf-product-card__caption-footer > [itemprop="offers"] {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
  }

  .osf-plp #product-list.layout-gallery .osf-product-card .osf-product-card__actions.osf-plp-gallery-actions {
    grid-column: 2;
    grid-row: 1;
    position: static;
    right: auto;
    bottom: auto;
    width: auto;
    max-width: none;
    padding: 0;
    margin-top: 0 !important;
    min-height: 0;
    z-index: 2;
    align-self: start;
  }

  .osf-plp #product-list.layout-gallery .osf-product-card .price_wrapper {
    padding-right: 0;
  }
}

/* Print: hide chrome, readable product list */
@media print {
  header,
  #footer,
  .osf-scroll-top,
  .consent-banner,
  #sidepanel_left {
    display: none !important;
  }

  body {
    background: #fff !important;
    color: #000 !important;
  }

  .osf-plp #product-list.layout-gallery .osf-product-card .productbox-inner {
    box-shadow: none !important;
    border: 1px solid #ccc !important;
    break-inside: avoid;
  }
}

/* Optional dark mode: respect OS preference without breaking brand */
@media (prefers-color-scheme: dark) {
  :root:not([data-osf-theme="light"]) {
    --osf-surface: #0f172a;
    --osf-surface-elevated: #1e293b;
    --osf-heading: #f1f5f9;
  }

  :root:not([data-osf-theme="light"]) body {
    background-color: var(--osf-surface);
    color: var(--osf-heading);
  }

  :root:not([data-osf-theme="light"]) .osf-plp #product-list.layout-gallery {
    background: var(--osf-surface);
  }

  :root:not([data-osf-theme="light"]) .osf-plp #product-list.layout-gallery .osf-product-card .productbox-inner {
    background: var(--osf-surface-elevated) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
  }
}

/* WCAG AA — Lighthouse color-contrast (Autopilot Iteration 1) */
#consent-manager #consent-banner #consent-banner-btn-all.consent-btn-outline-primary.btn-block,
#consent-manager #consent-banner-btn-all.consent-btn-outline-primary {
  background-color: var(--osf-header-dark-top, #0e5f73) !important;
  border-color: var(--osf-header-dark-top, #0e5f73) !important;
  color: #fff !important;
}

#consent-manager #consent-banner-btn-all:hover,
#consent-manager #consent-banner-btn-all:focus {
  background-color: var(--osf-primary-dark, #1789ad) !important;
  border-color: var(--osf-primary-dark, #1789ad) !important;
  color: #fff !important;
}

#footer .osf-footer-prebottom a,
#footer .osf-footer-bottom__legal-link,
#copyright a,
#copyright.osf-footer-bottom a {
  color: #f8fafc;
}

#footer .osf-footer-prebottom a:hover,
#footer .osf-footer-bottom__legal-link:hover,
#copyright a:hover {
  color: #fff;
}

#osf-header-sticky-root header .btn-outline-secondary.dropdown-toggle {
  color: var(--osf-header-text, #e8f1f4);
  border-color: rgba(232, 241, 244, 0.55);
  background-color: transparent;
}

#osf-header-sticky-root header .btn-outline-secondary.dropdown-toggle:hover,
#osf-header-sticky-root header .btn-outline-secondary.dropdown-toggle:focus {
  color: #fff;
  border-color: var(--osf-accent, #35d7ff);
  background-color: rgba(var(--osf-brand-rgb, 23, 137, 173), 0.35);
}

/* Mobile nav: clip root panel when closed; drill-down needs visible overflow on shell */
@media (max-width: 991.98px) {
  #mainNavigation.navbar-collapse:not(.show) {
    overflow-x: hidden;
    max-width: 100vw;
  }

  #mainNavigation.navbar-collapse.show:not(:has(.dropdown-menu.show)) {
    overflow-x: hidden;
    max-width: 100vw;
  }
}

/* PLP mobile toolbar + pagination (LH contrast) */
.osf-plp #js-filters.btn-outline-secondary,
.osf-plp .osf-plp-toolbar .btn-outline-secondary,
.osf-plp .btn-outline-secondary.dropdown-toggle,
#content-wrapper.is-item-list .btn-outline-secondary.dropdown-toggle {
  color: #334155 !important;
  border-color: #64748b !important;
  background-color: #fff !important;
}

.osf-plp .productlist-pagination .pagination-site,
.osf-plp .pagination .pagination-site {
  color: #334155;
}

header .btn-outline-secondary.dropdown-toggle,
#shop-nav .btn-outline-secondary.dropdown-toggle,
#osf-header-sticky-root .btn-outline-secondary.dropdown-toggle {
  color: #e8f1f4 !important;
  border-color: rgba(232, 241, 244, 0.65) !important;
  background-color: transparent !important;
}

header .btn-outline-secondary.dropdown-toggle:hover,
header .btn-outline-secondary.dropdown-toggle:focus,
#shop-nav .btn-outline-secondary.dropdown-toggle:hover,
#shop-nav .btn-outline-secondary.dropdown-toggle:focus,
#osf-header-sticky-root .btn-outline-secondary.dropdown-toggle:hover,
#osf-header-sticky-root .btn-outline-secondary.dropdown-toggle:focus {
  color: #fff !important;
  border-color: #35d7ff !important;
  background-color: rgba(23, 137, 173, 0.35) !important;
}

/* --------------------------------------------------------------------------
   Mobile legacy alignment (≤991.98px) — clip carousel bleed, PLP touch targets
   Ref: backup/legacy-base themes/base/sass/components/_carousel.scss (overflow-x: hidden)
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
  /* PDP image zoom modal (lives in #image_wrapper in markup; appendTo body in JS) */
  body.modal-open #productImagesModal {
    z-index: 1070;
  }

  body.modal-open .osf-pdp #image_wrapper.gallery-with-action {
    overflow: visible;
  }

  .osf-pdp #gallery img.product-image {
    cursor: zoom-in;
  }

  #main-wrapper {
    overflow-x: clip;
  }

  .product-slider-wrapper,
  .index-news-wrapper,
  .upcode-cc__activities,
  .upcode-cc__activity-grid {
    overflow-x: hidden;
    max-width: 100%;
  }

  .carousel.slick-lazy.slick-smooth-loading:not(.slick-initialized),
  .carousel.slick-lazy.slick-smooth-loading.slick-initialized {
    overflow-x: hidden;
    max-width: 100%;
  }

  .osf-plp .osf-plp-toolbar--mobile-layout .btn-option,
  .osf-plp .osf-plp-toolbar--mobile-layout #js-filters,
  .osf-plp .osf-plp-toolbar .btn-option.ed {
    min-height: 2.75rem;
    min-width: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

@media (max-width: 767.98px) {
  .osf-plp #product-list.layout-list .productbox-row .osf-plp-list-buy-col {
    margin-top: 0.65rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--osf-plp-border, #e2e8f0);
  }

  .osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner {
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-start;
  }

  .osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .osf-plp-list-actions__qty {
    max-width: 100%;
    flex: 1 1 9.5rem;
  }

  .osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .btn-osf-plp-gallery-cta,
  .osf-plp #product-list.layout-list .osf-plp-list-actions .osf-plp-actions-inner > .basket-details-add-to-cart {
    flex: 1 1 auto;
    min-width: min(100%, 12rem);
  }
}

/* [AI_EDIT_START] Performance — CLS reserve on PLP */
.osf-plp-top-filters:not(:empty) {
  min-height: 5.75rem;
}

.osf-plp #product-list.layout-gallery .square-image,
.osf-plp #product-list.layout-gallery .square-image img {
  aspect-ratio: 1 / 1;
  object-fit: contain;
}

.osf-plp #product-list.layout-gallery .square-image img {
  width: 100%;
  height: auto;
}
/* [AI_EDIT_END] */

/* [AI_EDIT_START] PDP Merkmale-Tab + Icon-Chips */
.osf-pdp-merkmal-tab {
  --osf-merkmal-tab-ink: var(--osf-primary-deeper, #0f4c5c);
  --osf-merkmal-tab-chip-bg: rgba(70, 184, 218, 0.14);
  --osf-merkmal-tab-chip-border: rgba(70, 184, 218, 0.35);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.osf-pdp-merkmal-tab__group {
  display: grid;
  grid-template-columns: minmax(7.5rem, 11rem) 1fr;
  gap: 0.65rem 1rem;
  align-items: start;
  padding: 0.75rem 0.85rem;
  border-radius: 0.5rem;
  background: rgba(248, 250, 252, 0.9);
  border: 1px solid rgba(15, 76, 92, 0.08);
}

.osf-pdp-merkmal-tab__group-title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--osf-merkmal-tab-ink);
}

.osf-pdp-merkmal-tab__values {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.osf-pdp-merkmal-tab__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.65rem 0.35rem 0.45rem;
  border-radius: 999px;
  background: var(--osf-merkmal-tab-chip-bg);
  border: 1px solid var(--osf-merkmal-tab-chip-border);
  color: var(--osf-merkmal-tab-ink);
  font-size: 0.8125rem;
  line-height: 1.25;
  max-width: 100%;
}

.osf-pdp-merkmal-tab__chip-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  flex-shrink: 0;
  border-radius: 50%;
  background: #fff;
  color: var(--osf-merkmal-tab-ink);
  font-size: 0.95rem;
}

.osf-pdp-merkmal-tab__chip-icon--nutrition {
  background: rgba(70, 184, 218, 0.2);
}

.osf-pdp-merkmal-tab__chip-icon--struck {
  position: relative;
}

.osf-pdp-merkmal-tab__chip-icon--struck::after {
  content: "";
  position: absolute;
  left: 10%;
  right: 10%;
  top: 50%;
  height: 2px;
  background: #dc3545;
  transform: rotate(-18deg);
  pointer-events: none;
}

.osf-pdp-merkmal-tab__chip-icon--img img {
  width: 1.35rem;
  height: 1.35rem;
  object-fit: contain;
  display: block;
}

.osf-pdp-merkmal-tab__chip-label {
  min-width: 0;
  word-break: break-word;
}

.osf-pdp-merkmal-highlights__icon img,
.osf-pdp-nutrition-badge__icon img {
  width: 1.15rem;
  height: 1.15rem;
  object-fit: contain;
  display: block;
}

@media (max-width: 575.98px) {
  .osf-pdp-merkmal-tab__group {
    grid-template-columns: 1fr;
    gap: 0.5rem;
    padding: 0.65rem 0.75rem;
  }

  .osf-pdp-merkmal-tab__chip {
    flex: 1 1 calc(50% - 0.45rem);
    min-width: calc(50% - 0.45rem);
  }
}

@media (max-width: 399.98px) {
  .osf-pdp-merkmal-tab__chip {
    flex: 1 1 100%;
    min-width: 100%;
  }
}
/* [AI_EDIT_END] */
