/*
 * Redesign 2026-10 — "Werbeartikel Schenken" design system.
 * Loaded after theme.min.css (compiled FreshCart); everything here overrides or extends it.
 * Tokens are prefixed --ws- so they cannot collide with Bootstrap/FreshCart variables.
 * Scope: palette, top teaser row, product cards, section headings, header (single state) + category menu.
 */

/* Inter, self-hosted (OFL). Variable font: one file per script range covers weights 100 to 900. */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../Fonts/inter/inter-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../Fonts/inter/inter-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root,
[data-bs-theme=light] {
  --ws-surface: #ffffff;
  --ws-surface-sunken: #f0f3f2;
  --ws-sky: #dbe7f3;
  --ws-sky-soft: #eef3f8;
  --ws-sand: #f3e6d0;
  --ws-cream: #fff4ec;
  --ws-line-warm: #f4d9c8;
  --ws-orange: #d93a1a;          /* action + price color; white on it = 4.6:1 */
  --ws-orange-hover: #c2310f;
  --ws-orange-logo: #f6502f;     /* logo / decoration only, never text or button fill */
  --ws-on-orange: #ffffff;
  --ws-ink: #21313c;
  --ws-text: #5c6c75;
  --ws-text-muted: #5c6c75;
  --ws-border: #dfe2e1;
  --ws-border-control: #889397;
  --ws-focus-ring: #21313c;

  --ws-space-1: 4px;
  --ws-space-2: 8px;
  --ws-space-3: 16px;
  --ws-space-4: 24px;
  --ws-space-5: 48px;

  --ws-radius-sm: 8px;
  --ws-radius-md: 12px;
  --ws-radius-lg: 16px;
  --ws-radius-xl: 20px;
  --ws-radius-pill: 999px;

  --ws-shadow-card: 0 1px 3px rgba(33, 49, 60, 0.1), 0 0 0 1px rgba(33, 49, 60, 0.05);
  --ws-shadow-card-hover: 0 16px 32px rgba(33, 49, 60, 0.16), 0 0 0 2px #d93a1a;
  --ws-shadow-photo: 0 12px 24px rgba(0, 0, 0, 0.22);

  /* Re-point the theme's primary to the accessible orange. */
  --fc-primary: #d93a1a;
  --fc-primary-rgb: 217, 58, 26;
  --fc-link-color: #d93a1a;
  --fc-link-color-rgb: 217, 58, 26;
  --fc-link-hover-color: #c2310f;
  --fc-link-hover-color-rgb: 194, 49, 15;

  /* FreshCart's green leftovers (primary tints, "blue"): nothing in the shop uses them, but anything built on them must not turn green. */
  --fc-blue: #d93a1a;
  --fc-light-primary: #fde8e3;
  --fc-light-primary-rgb: 253, 232, 227;
  --fc-dark-primary: #7d1d09;
  --fc-dark-primary-rgb: 125, 29, 9;
}

/* ---- Theme hard-codes #f6502f in several places; override the ones the shop uses ---- */
.bg-primary { background-color: var(--ws-orange) !important; }
a { color: var(--ws-orange); }
a:hover { color: var(--ws-orange-hover); }
.btn-primary {
  --fc-btn-bg: var(--ws-orange);
  --fc-btn-border-color: var(--ws-orange);
  --fc-btn-hover-bg: var(--ws-orange-hover);
  --fc-btn-hover-border-color: var(--ws-orange-hover);
  --fc-btn-active-bg: var(--ws-orange-hover);
  --fc-btn-active-border-color: var(--ws-orange-hover);
  --fc-btn-disabled-bg: var(--ws-orange);
  --fc-btn-disabled-border-color: var(--ws-orange);
  --fc-btn-focus-shadow-rgb: 217, 58, 26;
  border-radius: var(--ws-radius-pill);
  font-weight: 700;
}
.btn-outline-primary {
  --fc-btn-color: var(--ws-orange);
  --fc-btn-border-color: var(--ws-orange);
  --fc-btn-hover-bg: var(--ws-orange);
  --fc-btn-hover-border-color: var(--ws-orange);
  --fc-btn-active-bg: var(--ws-orange);
  --fc-btn-active-border-color: var(--ws-orange);
  border-radius: var(--ws-radius-pill);
  font-weight: 700;
}
.navbar { --fc-navbar-hover-color: var(--ws-orange-hover); }
.pagination {
  --fc-pagination-hover-bg: var(--ws-orange);
  --fc-pagination-hover-border-color: var(--ws-orange);
}
.dropdown-menu { --fc-dropdown-link-active-bg: var(--ws-orange); }
.form-check-input:checked { background-color: var(--ws-orange); border-color: var(--ws-orange); }

/* ---- Type ---- */
.ws-heading-1 { font-size: 24px; line-height: 28px; font-weight: 800; letter-spacing: -0.02em; }
.ws-heading-2 { font-size: 26px; line-height: 30px; font-weight: 800; letter-spacing: -0.02em; color: var(--ws-ink); }
.ws-heading-3 { font-size: 20px; line-height: 26px; font-weight: 800; letter-spacing: -0.01em; color: var(--ws-ink); }
.ws-heading-2--sm { font-size: 21px; line-height: 25px; }
.ws-product-title { font-size: 16px; line-height: 22px; font-weight: 700; }
.ws-label { font-size: 12px; line-height: 16px; font-weight: 500; }
.ws-pill { font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.02em; }
.ws-price-hero { font-size: 40px; line-height: 44px; font-weight: 800; letter-spacing: -0.03em; }
.ws-price { font-size: 26px; line-height: 30px; font-weight: 800; letter-spacing: -0.02em; }
.ws-price-prefix { font-size: 12px; line-height: 16px; font-weight: 600; }
.ws-button { font-size: 14px; line-height: 20px; font-weight: 700; }

/* Section heading with one outline icon (ink, 20px). */
.ws-section-title { display: flex; align-items: center; gap: var(--ws-space-3); margin: 0; }
.ws-section-title svg { width: 20px; height: 20px; flex: none; color: var(--ws-ink); }

/* ---- Button ---- */
.ws-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ws-space-2);
  box-sizing: border-box;
  min-height: 44px;
  padding: 0 22px;
  border: 0;
  border-radius: var(--ws-radius-pill);
  background: var(--ws-orange);
  color: var(--ws-on-orange);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 150ms;
}
.ws-btn:hover { background: var(--ws-orange-hover); color: var(--ws-on-orange); }
.ws-btn:focus-visible { outline: 2px solid var(--ws-focus-ring); outline-offset: 2px; }
.ws-btn--block { display: flex; width: 100%; }
.ws-btn--lg { min-height: 48px; }
.ws-btn--on-orange { background: var(--ws-on-orange); color: var(--ws-orange); }
.ws-btn--on-orange:hover { background: var(--ws-cream); color: var(--ws-orange-hover); }
.ws-btn--on-orange:focus-visible { outline-color: var(--ws-on-orange); }
.ws-btn--ink { background: var(--ws-ink); color: var(--ws-on-orange); }
.ws-btn--ink:hover { background: var(--ws-orange-hover); color: var(--ws-on-orange); }

/* ---- Product card: photo tile, category, name; price + button pinned to the bottom ---- */
.ws-card {
  position: relative;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  height: 100%;
  padding: var(--ws-space-3);
  padding-top: 12px;
  background: var(--ws-surface);
  border-radius: var(--ws-radius-lg);
  box-shadow: var(--ws-shadow-card);
  color: var(--ws-text);
  transition: box-shadow 150ms, transform 150ms;
}
.ws-card:hover { box-shadow: var(--ws-shadow-card-hover); transform: translateY(-4px); }
.ws-card:hover .ws-btn { background: var(--ws-orange-hover); }
.ws-card__media {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 170px;
  margin: 0 -4px 12px;
  background: var(--ws-sky-soft);
  border-radius: var(--ws-radius-md);
  overflow: hidden;
}
.ws-card__media img { max-width: 88%; max-height: 88%; width: auto; height: auto; object-fit: contain; }
.ws-card__meta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; column-gap: var(--ws-space-2); margin: 0 var(--ws-space-1) 2px; }
.ws-card__label { min-width: 0; overflow-wrap: anywhere; color: var(--ws-text-muted); text-decoration: none; }
.ws-card__label:hover { color: var(--ws-ink); text-decoration: underline; }
.ws-card__sku { margin-left: auto; white-space: nowrap; color: var(--ws-text-muted); text-align: right; }
.ws-card__title { margin: 0 var(--ws-space-1); color: var(--ws-ink); }
.ws-card__title a { color: inherit; text-decoration: none; }
.ws-card__title a:hover { color: var(--ws-ink); }
.ws-card__foot { margin-top: auto; padding: var(--ws-space-3) var(--ws-space-1) 0; }
.ws-card__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; color: var(--ws-orange); }
.ws-card__price .ws-price-prefix { color: var(--ws-text-muted); }
/* Whole card is clickable through the title link; other links stay above the overlay. */
.ws-card a:not(.stretched-link) { position: relative; z-index: 2; }
.ws-card .stretched-link:focus-visible::after { outline: 2px solid var(--ws-focus-ring); outline-offset: 2px; border-radius: var(--ws-radius-lg); }

/* ---- Teaser card: filled color panel, tilted photo, price + button pinned to the bottom ---- */
.ws-teaser {
  --t-bg: var(--ws-orange);
  --t-fg: var(--ws-on-orange);
  --t-pill-bg: var(--ws-on-orange);
  --t-pill-fg: var(--ws-orange);
  --t-price: var(--ws-on-orange);
  --t-prefix: var(--ws-on-orange);
  --t-blob: rgba(255, 255, 255, 0.14);
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
  height: 100%;
  min-height: 264px;
  padding: var(--ws-space-4);
  background: var(--t-bg);
  color: var(--t-fg);
  border-radius: var(--ws-radius-xl);
  overflow: hidden;
}
.ws-teaser--sand { --t-bg: var(--ws-sand); --t-fg: var(--ws-ink); --t-pill-bg: var(--ws-ink); --t-pill-fg: var(--ws-on-orange); --t-price: var(--ws-ink); --t-prefix: var(--ws-ink); --t-blob: rgba(255, 255, 255, 0.5); }
.ws-teaser--sky { --t-bg: var(--ws-sky); --t-fg: var(--ws-ink); --t-pill-bg: var(--ws-ink); --t-pill-fg: var(--ws-on-orange); --t-price: var(--ws-orange-hover); --t-prefix: var(--ws-ink); --t-blob: rgba(255, 255, 255, 0.55); }
.ws-teaser__blob { position: absolute; right: -56px; top: -56px; width: 250px; height: 250px; border-radius: 50%; background: var(--t-blob); pointer-events: none; }
.ws-teaser__photo {
  position: absolute;
  right: 20px;
  top: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 140px;
  height: 150px;
  background: var(--ws-surface);
  border-radius: var(--ws-radius-lg);
  box-shadow: var(--ws-shadow-photo);
  transform: rotate(6deg);
  overflow: hidden;
}
.ws-teaser__photo img { max-width: 90%; max-height: 90%; width: auto; height: auto; object-fit: contain; }
.ws-teaser__top { position: relative; }
.ws-teaser__pill { display: inline-block; padding: var(--ws-space-1) 12px; border-radius: var(--ws-radius-pill); background: var(--t-pill-bg); color: var(--t-pill-fg); text-decoration: none; }
a.ws-teaser__pill:hover { color: var(--t-pill-fg); opacity: 0.9; }
.ws-teaser__title { max-width: 56%; margin: 12px 0 0; color: var(--t-fg); hyphens: auto; overflow-wrap: break-word; }
.ws-teaser__title a { color: inherit; text-decoration: none; }
.ws-teaser__title a:hover { color: inherit; text-decoration: underline; }
.ws-teaser__foot { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.ws-teaser__price { display: flex; flex-direction: column; color: var(--t-price); line-height: 1; }
.ws-teaser__price .ws-price-prefix { color: var(--t-prefix); }
.ws-teaser a:focus-visible { outline: 2px solid var(--ws-focus-ring); outline-offset: 2px; }
.ws-teaser:not(.ws-teaser--sand):not(.ws-teaser--sky) a:focus-visible { outline-color: var(--ws-on-orange); }

/* ---- Page title, category sidebar, pagination (theme defaults are brown --fc-dark and #f6502f) ---- */
.ws-page-title { margin: 0 0 var(--ws-space-4); }
.text-dark { color: var(--ws-ink) !important; }
.pagination {
  --fc-pagination-active-bg: var(--ws-orange);
  --fc-pagination-active-border-color: var(--ws-orange);
  --fc-pagination-focus-bg: var(--ws-orange);
  --fc-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(217, 58, 26, 0.25);
  --fc-pagination-color: var(--ws-text);
}

/* ---- Footer and breadcrumb ---- */
.ws-footer { background: var(--ws-surface-sunken); color: var(--ws-text); }
.ws-footer__rule { margin-left: 0; margin-right: 0; border: 0; border-top: 1px solid var(--ws-border); opacity: 1; }
.ws-footer__title { font-size: 14px; line-height: 20px; font-weight: 800; letter-spacing: 0.01em; color: var(--ws-ink); }
.ws-footer .nav-link { padding-left: 0; padding-right: 0; color: var(--ws-ink); font-size: 14px; }
.ws-footer .nav-link:hover, .ws-footer .nav-link:focus-visible { color: var(--ws-orange-hover); text-decoration: underline; }
.ws-footer .nav-item { color: var(--ws-ink); font-size: 14px; }
.ws-footer .social-links { color: var(--ws-ink); }
.ws-footer .social-links:hover { color: var(--ws-orange-hover); }
.ws-footer a:focus-visible { outline: 2px solid var(--ws-focus-ring); outline-offset: 2px; }
.ws-footer__legal { color: var(--ws-text); }
.ws-breadcrumb { padding: 12px 0 8px; }
.ws-breadcrumb .breadcrumb { margin-bottom: 0; font-size: 13px; }
.ws-breadcrumb .breadcrumb-item.active { color: var(--ws-text); }

/* ---- Mobile: the category list as a two-column sheet, seasonal block first ---- */
.ws-sheet__season { display: flex; flex-direction: column; margin-bottom: var(--ws-space-3); padding: var(--ws-space-3); background: var(--ws-sand); border-radius: var(--ws-radius-lg); }
.ws-sheet__season-title { margin: 8px 0 var(--ws-space-2); }
.ws-sheet__season-list { list-style: none; margin: 0; padding: 0; }
.ws-sheet__season-list a { display: flex; align-items: center; justify-content: space-between; min-height: 44px; padding: 0 8px 0 4px; border-radius: 10px; color: var(--ws-ink); font-size: 15px; font-weight: 600; text-decoration: none; }
.ws-sheet__season-list a .feather-icon { color: var(--ws-orange-hover); }
.ws-sheet__list { columns: 2; column-gap: 12px; list-style: none; margin: 0; padding: 0; }
.ws-sheet__list li { break-inside: avoid; }
.ws-sheet__list a { display: flex; align-items: center; min-height: 44px; padding: 4px 10px; border-radius: 10px; color: var(--ws-ink); font-size: 15px; line-height: 20px; text-decoration: none; overflow-wrap: anywhere; hyphens: auto; }
.ws-sheet__list a:hover, .ws-sheet__list a:focus-visible, .ws-sheet__season-list a:hover, .ws-sheet__season-list a:focus-visible { background: var(--ws-cream); color: var(--ws-orange-hover); outline: none; }
#navbar-default .nav-link { color: var(--ws-ink); min-height: 44px; display: flex; align-items: center; }
@media (max-width: 575.98px) { .ws-teaser__pill { max-width: calc(100% - 176px); border-radius: 16px; } .ws-teaser__title { max-width: calc(100% - 176px); } .ws-teaser__title.ws-heading-1 { font-size: 20px; line-height: 24px; } }

/* The shopping layout row uses gx-10 (3rem gutters), wider than the container padding: horizontal scroll on phones. */
@media (max-width: 767.98px) { .row.gx-10 { --fc-gutter-x: 1.5rem; } }

/* ---- Category sidebar (left menu): card with the current area, the full entry list (no inner scroll), season chips, service box ---- */
:root { --ws-sidebar-width: 280px; }
.ws-side-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 44px; margin-bottom: var(--ws-space-2); padding: 0 var(--ws-space-3); border: 0; border-radius: var(--ws-radius-pill); background: var(--ws-cream); color: var(--ws-ink); font-size: 14px; font-weight: 700; }
.ws-side-toggle:focus-visible { outline: 2px solid var(--ws-focus-ring); outline-offset: 2px; }
.ws-side { width: 100%; background: var(--ws-surface); border-top: 3px solid var(--ws-orange); border-radius: 0 0 var(--ws-radius-lg) var(--ws-radius-lg); box-shadow: var(--ws-shadow-card); overflow: hidden; }
.ws-side ul { list-style: none; margin: 0; padding: 0; }
.ws-side__head { padding: var(--ws-space-3) var(--ws-space-3) 14px; background: var(--ws-cream); border-bottom: 1px solid var(--ws-line-warm); }
.ws-side--season .ws-side__head { background: var(--ws-sand); border-bottom: 0; }
.ws-side__back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 10px; color: var(--ws-orange-hover); font-size: 13px; line-height: 20px; font-weight: 700; text-decoration: none; }
.ws-side__back:hover { color: var(--ws-orange-hover); text-decoration: underline; }
.ws-side__back .feather-icon { font-size: 14px; line-height: 1; }
.ws-side__pill { display: block; width: max-content; margin-bottom: var(--ws-space-2); padding: 2px 10px; border-radius: var(--ws-radius-pill); background: var(--ws-orange); color: var(--ws-on-orange); font-size: 11px; line-height: 18px; }
.ws-side__title { margin: 0; }
.ws-side__title a { color: var(--ws-ink); text-decoration: none; }
.ws-side__title a:hover { color: var(--ws-orange-hover); }
.ws-side__count { display: block; margin-top: 2px; color: var(--ws-ink); }
.ws-side__listbox { position: relative; }
.ws-side .ws-side__list { padding: var(--ws-space-2); }
.ws-side__list a { display: flex; align-items: center; justify-content: space-between; gap: var(--ws-space-2); box-sizing: border-box; min-height: 34px; padding: 7px 10px 7px 12px; border-radius: 10px; color: var(--ws-ink); text-decoration: none; font-size: 14px; line-height: 20px; font-weight: 500; }
.ws-side__list a .feather-icon { flex: none; font-size: 14px; line-height: 1; opacity: 0; color: var(--ws-orange-hover); }
.ws-side__list a:hover, .ws-side__list a:focus-visible { background: var(--ws-cream); color: var(--ws-orange-hover); font-weight: 700; outline: none; }
.ws-side__list a:hover .feather-icon, .ws-side__list a:focus-visible .feather-icon { opacity: 1; }
.ws-side__list a[aria-current="page"] { background: var(--ws-orange); color: var(--ws-on-orange); font-weight: 700; }
.ws-side__list a[aria-current="page"] .feather-icon { opacity: 1; color: var(--ws-on-orange); }
.ws-side__list a:focus-visible { outline: 2px solid var(--ws-focus-ring); outline-offset: -2px; }
.ws-side__others { padding: 14px var(--ws-space-3); border-top: 1px solid var(--ws-border); }
.ws-side__others p { margin: 0 0 var(--ws-space-2); color: var(--ws-text); }
.ws-side__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ws-side__chips a { display: inline-flex; align-items: center; gap: var(--ws-space-1); min-height: 30px; padding: 0 10px; border-radius: var(--ws-radius-pill); background: var(--ws-cream); color: var(--ws-ink); text-decoration: none; font-size: 12px; line-height: 16px; font-weight: 600; }
.ws-side__chips a:hover { background: var(--ws-line-warm); color: var(--ws-ink); }
.ws-side__chips a:focus-visible { outline: 2px solid var(--ws-focus-ring); outline-offset: 2px; }
.ws-side__chips em { font-style: normal; font-weight: 500; color: var(--ws-text); }
.ws-side__service { display: flex; align-items: center; gap: 12px; padding: 14px var(--ws-space-3); background: var(--ws-cream); border-top: 1px solid var(--ws-line-warm); }
.ws-side__circle { display: flex; flex: none; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--ws-sand); color: var(--ws-orange); font-size: 18px; }
.ws-side__service b { display: block; color: var(--ws-ink); }
.ws-side__phone { display: block; color: var(--ws-ink); font-size: 16px; line-height: 22px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.ws-side__phone:hover { color: var(--ws-orange-hover); }
.ws-side__service .ws-label { color: var(--ws-text); }
@media (min-width: 768px) { .ws-side { max-width: var(--ws-sidebar-width); margin-right: auto; } }

/* ---- Request and sample modals ---- */
.modal-content { border: 0; border-radius: var(--ws-radius-lg); box-shadow: 0 24px 48px rgba(33, 49, 60, 0.22); }
.modal-title { color: var(--ws-ink); font-weight: 800; letter-spacing: -0.01em; }
.modal-title .text-primary { color: var(--ws-text) !important; font-size: 14px !important; line-height: 20px; font-weight: 600; }
.modal .form-label { color: var(--ws-ink); font-size: 14px; font-weight: 600; }
.modal .form-control, .modal .form-select { border: 1px solid var(--ws-border-control); border-radius: 12px; color: var(--ws-ink); }
.modal .form-control::placeholder { color: var(--ws-text); opacity: 1; }
.modal .form-control:focus, .modal .form-select:focus { border-color: var(--ws-orange); box-shadow: 0 0 0 3px rgba(217, 58, 26, 0.2); }
.modal .form-check-input { border-color: var(--ws-border-control); }
.modal .form-check-input:focus { border-color: var(--ws-orange); box-shadow: 0 0 0 3px rgba(217, 58, 26, 0.2); }
.modal .form-check-label, .modal .form-text { color: var(--ws-text); }
.modal .btn-close:focus-visible { outline: 2px solid var(--ws-focus-ring); outline-offset: 2px; box-shadow: none; }

/* ---- Product detail page ---- */
.ws-btn--outline { background: var(--ws-surface); color: var(--ws-ink); box-shadow: inset 0 0 0 2px var(--ws-ink); }
.ws-btn--outline:hover { background: var(--ws-cream); color: var(--ws-orange-hover); box-shadow: inset 0 0 0 2px var(--ws-orange-hover); }
.ws-detail > .container, .ws-detail-tabs > .container { max-width: none; padding-left: 0; padding-right: 0; }
.ws-detail { margin-top: 0; }
.ws-detail__back { display: inline-flex; align-items: center; gap: var(--ws-space-2); margin-bottom: var(--ws-space-3); color: var(--ws-text); font-size: 14px; line-height: 20px; font-weight: 500; text-decoration: none; }
.ws-detail__back:hover { color: var(--ws-ink); text-decoration: underline; }
.ws-detail__gallery { padding: var(--ws-space-3); background: var(--ws-sky-soft); border-radius: var(--ws-radius-lg); }
.ws-detail__gallery #product img { display: block; max-width: 100%; height: auto; margin: 0 auto; border-radius: var(--ws-radius-md); }
.ws-detail__gallery .product-tools .thumbnails { margin: var(--ws-space-3) 0 0; }
.ws-detail__gallery .thumbnails-img { overflow: hidden; background: var(--ws-surface); border: 2px solid transparent; border-radius: var(--ws-radius-md); cursor: pointer; transition: border-color 150ms; }
.ws-detail__gallery .thumbnails-img:hover, .ws-detail__gallery .thumbnails-img:focus-within { border-color: var(--ws-orange); }
.ws-detail__gallery .product-tools img { display: block; border-radius: 0; }
.ws-detail__title { margin: 0 0 var(--ws-space-1); }
.ws-detail__sku { margin: 0 0 var(--ws-space-3); color: var(--ws-text); font-size: 14px; line-height: 20px; }
.ws-detail__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--ws-space-2); margin: 0 0 var(--ws-space-4); padding: var(--ws-space-3) 0; border-top: 1px solid var(--ws-border); border-bottom: 1px solid var(--ws-border); color: var(--ws-orange); }
.ws-detail__price .ws-price-prefix { color: var(--ws-text); font-size: 14px; line-height: 20px; }
.ws-detail__prices { margin-bottom: var(--ws-space-4); }
.ws-detail__prices-title { margin: 0 0 var(--ws-space-1); color: var(--ws-ink); font-weight: 700; }
.ws-detail__prices-img { display: inline-block; max-width: 100%; border: 1px solid var(--ws-border); border-radius: var(--ws-radius-md); overflow: hidden; }
.ws-detail__prices-img img { display: block; max-width: 100%; height: auto; }
.ws-detail__note { margin: 0; padding: var(--ws-space-3); background: var(--ws-cream); border: 1px solid var(--ws-line-warm); border-radius: var(--ws-radius-md); color: var(--ws-ink); }
.ws-detail__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.ws-detail__actions .ws-btn { flex: 1 1 200px; }
.ws-detail-tabs .nav-lb-tab .nav-item .nav-link { color: var(--ws-text); font-weight: 600; }
.ws-detail-tabs .nav-lb-tab .nav-item .nav-link.active, .ws-detail-tabs .nav-lb-tab .nav-item .nav-link:hover { color: var(--ws-ink); border-bottom-color: var(--ws-orange); }
.ws-detail-tabs .nav-lb-tab .nav-item .nav-link:focus-visible { outline: 2px solid var(--ws-focus-ring); outline-offset: 2px; }
.ws-detail-tabs .tab-content { padding-top: var(--ws-space-2); color: var(--ws-text); }
.ws-detail-tabs .list-group-item a { color: var(--ws-ink); text-decoration: none; }
.ws-detail-tabs .list-group-item a:hover { color: var(--ws-orange-hover); text-decoration: underline; }
@media (max-width: 575.98px) { .ws-detail__actions .ws-btn { flex-basis: 100%; } }

/* ---- Cookie banner and settings dialog (EXT:dp_cookieconsent) ----
   The extension is themed through its own variables, so these win over the colors stored in the database template
   record. Accept and reject are both solid buttons of the same size; "Anpassen" is the outlined one. */
body .cc-window, body .cc-window.cc-type-extend, body .cc-window-config, body .cc-window-config.cc-type-extend, body .dp--revoke {
  --dp-cookie-palette-popup-background: var(--ws-surface);
  --dp-cookie-palette-popup-text: var(--ws-ink);
  --dp-cookie-palette-button-background: var(--ws-orange);
  --dp-cookie-palette-button-text: var(--ws-on-orange);
  --dp-cookie-config-background: rgba(33, 49, 60, 0.35);
  --dp-cookie-config-text: var(--ws-ink);
  --dp-cookie-config-group-cookie-background: var(--ws-surface-sunken);
  --dp-cookie-config-group-cookie-border: var(--ws-border);
  --dp-cookie-config-group-cookie-text: var(--ws-ink);
  --dp-cookie-overlay-box-background: var(--ws-sky-soft);
  --dp-cookie-overlay-box-text: var(--ws-ink);
  --dp-cookie-overlay-btn-background: var(--ws-orange);
  --dp-cookie-overlay-btn-text: var(--ws-on-orange);
  --dp-cookie-extend-gap: 8px;
}
body .cc-window { max-height: calc(100vh - 2rem); overflow: auto; border-top: 3px solid var(--ws-orange); border-radius: var(--ws-radius-lg); box-shadow: 0 24px 48px rgba(33, 49, 60, 0.22); font-family: inherit; font-size: 15px; line-height: 22px; }
body .cc-window .cc-message { padding: var(--ws-space-4) var(--ws-space-4) var(--ws-space-2); }
body .cc-window .cc-link { color: var(--ws-orange-hover); font-weight: 600; opacity: 1; }
body .cc-window .powered-by, body .cc-window-config .powered-by { color: var(--ws-text); opacity: 1; }
body .cc-type-extend.cc-window .cc-compliance { gap: var(--ws-space-2); padding: 0 var(--ws-space-4) var(--ws-space-3); }
body .cc-type-extend.cc-window .cc-compliance .cc-btn.cc-allow-all { width: 100%; margin: 0; }
body .cc-type-extend.cc-window .cc-compliance .cc-btn:not(.cc-allow-all) { width: calc(50% - 4px); }
body .cc-window .cc-btn, body .cc-window-config .cc-config-footer .cc-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 22px; border: 0; border-radius: var(--ws-radius-pill); font-size: 14px; line-height: 20px; font-weight: 700; opacity: 1; transition: background-color 150ms; }
body .cc-window .cc-btn.cc-allow-all, body .cc-window-config .cc-btn.cc-allow-all { background: var(--ws-orange); color: var(--ws-on-orange); }
body .cc-window .cc-btn.cc-deny, body .cc-window-config .cc-btn.cc-deny { background: var(--ws-ink); color: var(--ws-on-orange); }
body .cc-type-extend .cc-btn:not(.cc-allow-all) { border: 0; }
body .cc-window .cc-btn.cc-allow-all:hover, body .cc-window .cc-btn.cc-deny:hover, body .cc-window-config .cc-btn.cc-allow-all:hover, body .cc-window-config .cc-btn.cc-deny:hover { background: var(--ws-orange-hover); opacity: 1; }
body .cc-window .cc-btn.cc-config, body .cc-window-config .cc-config-footer .cc-btn:not(.cc-allow-all):not(.cc-deny) { background: var(--ws-surface); color: var(--ws-ink); box-shadow: inset 0 0 0 2px var(--ws-ink); }
body .cc-window .cc-btn.cc-config:hover, body .cc-window-config .cc-config-footer .cc-btn:not(.cc-allow-all):not(.cc-deny):hover { background: var(--ws-cream); color: var(--ws-orange-hover); box-shadow: inset 0 0 0 2px var(--ws-orange-hover); opacity: 1; }
body .cc-window .cc-btn:focus-visible, body .cc-window .cc-link:focus-visible, body .cc-window-config .cc-btn:focus-visible, body .cc-window-config .cc-btn-close:focus-visible, body .dp--revoke:focus-visible { outline: 2px solid var(--ws-focus-ring); outline-offset: 2px; }
body .cc-window-config .cc-config { border-top: 3px solid var(--ws-orange); border-radius: var(--ws-radius-lg); box-shadow: 0 24px 48px rgba(33, 49, 60, 0.22); font-family: inherit; }
body .cc-window-config .cc-config-header { border-bottom-color: var(--ws-border); }
body .cc-window-config .cc-config-group { border-bottom: 1px solid var(--ws-border); }
body .cc-window-config .cc-config-group-name .cc-btn { min-height: 0; padding: 0.75rem 1.25rem; border-radius: var(--ws-radius-sm); box-shadow: none; }
body .cc-form-switch .dp--check-box:not(:checked) { background-color: var(--ws-border-control); border-color: var(--ws-border-control); }
body .cc-form-switch .dp--check-box:focus-visible { outline: 2px solid var(--ws-focus-ring); outline-offset: 2px; }
body .dp--revoke { border: 1px solid var(--ws-border); box-shadow: var(--ws-shadow-card); opacity: 1; }
@media (max-width: 575.98px) {
  body .cc-window.cc-bottom-right, body .cc-window.cc-bottom-left { left: 12px; right: 12px; bottom: 12px; width: auto; max-width: none; font-size: 14px; line-height: 20px; }
  body .cc-window .cc-message { padding: var(--ws-space-3) var(--ws-space-3) var(--ws-space-2); }
  body .cc-type-extend.cc-window .cc-compliance { padding: 0 var(--ws-space-3) var(--ws-space-3); }
}

/* ---- Header ----
   One state only: nothing is scaled, moved or hidden while the page is used. The logo keeps its native 143 x 100
   and sets the 132px main row. On long pages the same header slides away on scroll-down and returns unchanged on
   scroll-up (header-2026.js). The wrapper reserves the header height so the page never shifts. */
:root {
  --ws-header-utility: 40px;
  --ws-header-main: 132px;
  --ws-header-band: 52px;
  --ws-control-height: 52px;
  --ws-menu-bridge: 40px;
  --ws-logo-width: 143px;
  --ws-logo-height: 100px;
  --ws-header-h: 226px;
}

.ws-header { position: relative; z-index: 1030; background: var(--ws-surface); }
.ws-header__top { background: var(--ws-orange-hover); color: var(--ws-on-orange); font-size: 13px; line-height: 20px; font-weight: 500; }
.ws-header__top-inner { display: flex; justify-content: space-between; align-items: center; gap: var(--ws-space-3); height: var(--ws-header-utility); }
.ws-header__tagline { font-weight: 500; }
.ws-header__legal { display: flex; gap: 20px; margin: 0; padding: 0; list-style: none; }
.ws-header__top a { color: var(--ws-on-orange); text-decoration: none; }
.ws-header__top a:hover { text-decoration: underline; color: var(--ws-on-orange); }
.ws-header a:focus-visible, .ws-header button:focus-visible { outline: 2px solid var(--ws-focus-ring); outline-offset: 2px; }
.ws-header__top a:focus-visible, .ws-menu-btn:focus-visible, .ws-search__btn:focus-visible { outline-color: var(--ws-on-orange); }

.ws-header__main { height: var(--ws-header-main); }
.ws-header__main > .container { height: 100%; }
.ws-header__grid { display: grid; grid-template-columns: var(--ws-logo-width) auto minmax(0, 1fr) 290px; align-items: center; column-gap: 20px; height: 100%; }
.ws-logo { display: block; width: var(--ws-logo-width); height: var(--ws-logo-height); }
.ws-logo img { display: block; width: var(--ws-logo-width); height: var(--ws-logo-height); }

/* The trigger and the panel form one hover container; the ::after bridge closes the gap below the button. */
.ws-menu-trigger { position: relative; }
.ws-menu-trigger.is-open::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: var(--ws-menu-bridge); }
.ws-menu-btn { display: inline-flex; align-items: center; gap: 10px; height: var(--ws-control-height); padding: 0 22px; border: 0; border-radius: var(--ws-radius-pill); background: var(--ws-orange); color: var(--ws-on-orange); font-size: 15px; font-weight: 700; white-space: nowrap; transition: background-color 150ms; }
.ws-menu-btn:hover, .ws-menu-btn[aria-expanded=true] { background: var(--ws-orange-hover); }
.ws-menu-btn .feather-icon { font-size: 18px; line-height: 1; }
.ws-menu-btn__chevron { transition: transform 150ms; }
.ws-menu-btn[aria-expanded=true] .ws-menu-btn__chevron { transform: rotate(180deg); }

.ws-search { display: flex; align-items: stretch; height: var(--ws-control-height); min-width: 0; }
.ws-search__input { flex: 1; min-width: 0; height: 100%; padding: 0 var(--ws-space-3) 0 20px; border: 2px solid var(--ws-orange); border-right: 0; border-radius: var(--ws-radius-pill) 0 0 var(--ws-radius-pill); background: var(--ws-surface); color: var(--ws-ink); font-size: 15px; }
.ws-search__input::placeholder { color: var(--ws-text-muted); opacity: 1; }
.ws-search__input:focus { outline: 2px solid var(--ws-focus-ring); outline-offset: 2px; }
.ws-search__btn { display: inline-flex; align-items: center; gap: var(--ws-space-2); padding: 0 24px 0 20px; border: 2px solid var(--ws-orange); border-radius: 0 var(--ws-radius-pill) var(--ws-radius-pill) 0; background: var(--ws-orange); color: var(--ws-on-orange); font-size: 15px; font-weight: 700; }
.ws-search__btn:hover { background: var(--ws-orange-hover); border-color: var(--ws-orange-hover); }

/* Contact block: sand circle, orange kicker, main number, second number. */
.ws-phone { display: flex; align-items: center; gap: 12px; justify-self: end; }
.ws-phone__icon { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--ws-sand); color: var(--ws-orange); font-size: 22px; text-decoration: none; }
.ws-phone__text { display: flex; flex-direction: column; }
.ws-phone__label { font-size: 12px; line-height: 16px; font-weight: 600; color: var(--ws-orange); }
.ws-phone__nr { color: var(--ws-ink); font-size: 19px; line-height: 24px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.ws-phone__nr:hover { color: var(--ws-orange-hover); text-decoration: underline; }
.ws-phone__nr--2 { color: var(--ws-text); font-size: 12px; line-height: 16px; font-weight: 500; }
.ws-phone__nr--2:hover { color: var(--ws-ink); }

.ws-header__band { background: var(--ws-cream); border-top: 1px solid var(--ws-line-warm); border-bottom: 1px solid var(--ws-line-warm); }
.ws-band { display: flex; align-items: center; justify-content: space-between; height: var(--ws-header-band); }
.ws-band ul { display: flex; align-items: center; margin: 0; padding: 0; list-style: none; }
.ws-band__cats { gap: 28px; }
.ws-band__cats a { color: var(--ws-ink); font-size: 14px; line-height: 20px; font-weight: 600; text-decoration: none; }
.ws-band__label .ws-pill { display: inline-block; padding: 2px 10px; border-radius: var(--ws-radius-pill); background: var(--ws-orange); color: var(--ws-on-orange); font-size: 11px; line-height: 18px; }
.ws-band__cats a:hover { color: var(--ws-orange-hover); text-decoration: underline; text-underline-offset: 4px; }
.ws-band__links { gap: 20px; }
.ws-band__links a { color: var(--ws-text); font-size: 13px; line-height: 20px; font-weight: 500; text-decoration: none; }
.ws-band__links a:hover { color: var(--ws-ink); text-decoration: underline; }

@media (min-width: 992px) {
  .ws-header-wrap { min-height: var(--ws-header-h); }
  .ws-header { position: fixed; top: 0; left: 0; right: 0; transition: transform 150ms; }
  .ws-header.is-away { transform: translateY(-100%); }
}

/* Tablet and small desktop (992 to 1199px): give the search field the room, one phone number, one-line top bar. */
.ws-header__tagline { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ws-header__legal li { white-space: nowrap; }
@media (min-width: 992px) and (max-width: 1199.98px) {
  .ws-header__grid { grid-template-columns: var(--ws-logo-width) auto minmax(0, 1fr) auto; column-gap: 16px; }
  .ws-menu-btn { padding: 0 16px; }
  .ws-phone__nr { font-size: 17px; }
  .ws-phone__nr--2, .ws-phone__label { display: none; }
}

/* ---- Category menu: attached to the bottom of the main row, under the utility bar ---- */
.ws-mega { position: absolute; top: calc(var(--ws-header-utility) + var(--ws-header-main)); left: 0; right: 0; visibility: hidden; opacity: 0; transform: translateY(-4px); transition: opacity 150ms, transform 150ms, visibility 0s linear 150ms; pointer-events: none; }
.ws-mega.is-open { visibility: visible; opacity: 1; transform: none; transition: opacity 150ms, transform 150ms; pointer-events: auto; }
.ws-mega__panel { background: var(--ws-surface); border-top: 3px solid var(--ws-orange); border-radius: 0 0 var(--ws-radius-lg) var(--ws-radius-lg); box-shadow: 0 24px 48px rgba(33, 49, 60, 0.22); overflow: hidden; }
.ws-mega__body { display: grid; grid-template-columns: 300px minmax(0, 1fr); }
.ws-mega__body--no-season { grid-template-columns: minmax(0, 1fr); }
.ws-mega__list { columns: 3; column-gap: var(--ws-space-4); margin: 0; padding: var(--ws-space-4) 28px var(--ws-space-3); list-style: none; }
.ws-mega__body--no-season .ws-mega__list { columns: 4; }

/* Seasonal column: hand-maintained links ("Jetzt aktuell"), "Alle Saisonartikel" and one featured product. */
.ws-mega__season { display: flex; flex-direction: column; padding: var(--ws-space-4) 20px 20px var(--ws-space-4); background: var(--ws-sand); }
.ws-mega__eyebrow { align-self: flex-start; padding: 2px 10px; border-radius: var(--ws-radius-pill); background: var(--ws-orange); color: var(--ws-on-orange); font-size: 11px; line-height: 18px; }
.ws-mega__season-title { margin: 10px var(--ws-space-1) var(--ws-space-2); }
.ws-mega__season-list { list-style: none; margin: 0; padding: 0; }
.ws-mega__season-list a { display: flex; align-items: center; justify-content: space-between; height: 40px; padding: 0 12px 0 var(--ws-space-1); border-radius: 10px; color: var(--ws-ink); font-size: 15px; line-height: 22px; font-weight: 600; text-decoration: none; }
.ws-mega__season-list a .feather-icon { color: var(--ws-orange-hover); }
.ws-mega__season-list a:hover, .ws-mega__season-list a:focus-visible { background: var(--ws-cream); color: var(--ws-orange-hover); outline: none; }
.ws-mega__all-season { margin: 6px var(--ws-space-1) 0; color: var(--ws-orange-hover); font-size: 13px; line-height: 20px; font-weight: 700; text-decoration: none; }
.ws-mega__all-season:hover { color: var(--ws-orange-hover); text-decoration: underline; }
.ws-mega__mini { display: grid; grid-template-columns: 64px 1fr; gap: 12px; align-items: end; margin-top: auto; padding: 12px; background: var(--ws-surface); border-radius: var(--ws-radius-md); text-decoration: none; }
.ws-mega__mini:hover .ws-mega__mini-name { text-decoration: underline; }
.ws-mega__mini-photo { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: var(--ws-radius-sm); background: var(--ws-sky-soft); overflow: hidden; }
.ws-mega__mini-photo img { max-width: 88%; max-height: 88%; width: auto; height: auto; object-fit: contain; }
.ws-mega__mini-text { display: flex; flex-direction: column; min-width: 0; }
.ws-mega__mini-name { color: var(--ws-ink); font-size: 14px; line-height: 18px; font-weight: 700; }
.ws-mega__mini-price { display: flex; align-items: baseline; gap: var(--ws-space-1); margin-top: 6px; color: var(--ws-orange); }
.ws-mega__mini-price .ws-price-prefix { color: var(--ws-text); font-size: 11px; line-height: 14px; }
.ws-price-mini { font-size: 18px; line-height: 22px; font-weight: 800; }
.ws-mega__list li { break-inside: avoid; }
.ws-mega__list a { display: flex; align-items: center; justify-content: space-between; height: 40px; padding: 0 14px; border-radius: 10px; color: var(--ws-ink); font-size: 15px; line-height: 22px; font-weight: 500; text-decoration: none; }
.ws-mega__list a .feather-icon { opacity: 0; transform: translateX(-4px); transition: opacity 150ms, transform 150ms; color: var(--ws-orange-hover); }
.ws-mega__list a:hover, .ws-mega__list a:focus-visible { background: var(--ws-cream); color: var(--ws-orange-hover); font-weight: 700; outline: none; }
.ws-mega__list a:hover .feather-icon, .ws-mega__list a:focus-visible .feather-icon { opacity: 1; transform: none; }
.ws-mega__foot { display: flex; align-items: center; justify-content: space-between; gap: var(--ws-space-3); padding: 12px 42px; background: var(--ws-cream); border-top: 1px solid var(--ws-line-warm); color: var(--ws-ink); font-size: 14px; line-height: 20px; }
.ws-mega__foot a { color: var(--ws-ink); font-weight: 800; text-decoration: none; }
.ws-mega__foot a:hover { color: var(--ws-orange-hover); text-decoration: underline; }
.ws-mega__foot .ws-mega__quiet { color: var(--ws-text); font-size: 13px; font-weight: 500; text-decoration: underline; text-decoration-color: var(--ws-line-warm); text-underline-offset: 4px; }
.ws-mega__foot .ws-mega__quiet:hover { color: var(--ws-ink); }
@media (max-width: 1199.98px) { .ws-mega__body--no-season .ws-mega__list { columns: 3; } .ws-mega__body { grid-template-columns: 260px minmax(0, 1fr); } .ws-mega__body--no-season { grid-template-columns: minmax(0, 1fr); } .ws-mega__list { columns: 2; } }

body.ws-mega-open::after { content: ""; position: fixed; inset: 0; z-index: 1020; background: rgba(33, 49, 60, 0.35); }

.ws-header__mobile { background: var(--ws-surface); }
.ws-header__mobile .ws-phone__icon { width: 44px; height: 44px; font-size: 20px; }
.ws-header__toggler-icon { display: block; color: var(--ws-ink); font-size: 30px; line-height: 1; }
.ws-header__mobile .navbar-toggler { min-width: 44px; min-height: 44px; }
.navbar-default .navbar-nav .nav-link { color: var(--ws-ink); }

@media (prefers-reduced-motion: reduce) {
  .ws-card, .ws-btn, .ws-header, .ws-header *, .ws-mega { transition: none !important; }
  .ws-card:hover { transform: none; }
}
