/*
 * Fesselliebe accessibility & contrast layer v1.7.0
 * Loaded after the visual theme overrides.
 * Keeps the dark Fesselliebe look while strengthening readability, keyboard use,
 * form states and the main e-commerce flow.
 */

:root {
  --bw-a11y-text: #f4f3ef;
  --bw-a11y-copy: #dedbd5;
  --bw-a11y-muted: #c8c6c1;
  --bw-a11y-subtle: #b5b2ac;
  --bw-a11y-border: #6b6b6b;
  --bw-a11y-border-strong: #969696;
  --bw-a11y-link: #b8c0ff;
  --bw-a11y-danger: #ff8a8a;
  --bw-a11y-success: #a9e6b2;
  --bw-a11y-focus-inner: #ffffff;
  --bw-a11y-focus-outer: var(--bw-accent, #d00032);
}

/* ---------- Global readability ---------- */
body {
  color: var(--bwc-body-color, var(--bw-a11y-copy));
}

p,
li,
dd,
dt,
address,
legend,
label,
.form-label,
.form-check-label {
  text-rendering: optimizeLegibility;
}

p,
.rich-text,
.product__description,
.product__details,
.page-content,
.step__content {
  overflow-wrap: anywhere;
}

.text-body-secondary,
.text-body-tertiary,
.text-muted,
.form-text,
small,
.small {
  color: var(--bw-a11y-muted) !important;
  opacity: 1 !important;
}

.rich-text a,
.page-content a:not(.btn),
.step__content a:not(.btn),
.checkout-grid a:not(.btn),
#footer .ps-emailsubscription a {
  color: var(--bw-a11y-link) !important;
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

.rich-text a:hover,
.page-content a:not(.btn):hover,
.step__content a:not(.btn):hover,
.checkout-grid a:not(.btn):hover,
#footer .ps-emailsubscription a:hover {
  color: #fff !important;
  text-decoration-thickness: .12em;
}

/* Clear, two-tone keyboard focus: white edge + brand-blue halo. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible,
.form-check-input:focus-visible {
  outline: 3px solid var(--bw-a11y-focus-inner) !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 6px var(--bw-a11y-focus-outer) !important;
}

.skip-link,
.visually-hidden-focusable.skip-link {
  position: fixed !important;
  z-index: 99999 !important;
  top: 12px !important;
  left: 12px !important;
  min-height: 44px;
  padding: 11px 16px !important;
  background: #fff !important;
  color: #111 !important;
  border: 3px solid var(--bw-accent, #d00032) !important;
  font-weight: 900;
}

/* Minimum practical target size for standalone UI controls. */
.btn,
button,
.form-select,
select,
input[type="submit"],
input[type="button"],
input[type="reset"] {
  min-height: 44px;
}

/* Form controls remain recognizable on dark surfaces. */
.form-control,
.form-select,
textarea,
select {
  background: #f7f7f5 !important;
  color: #111 !important;
  border: 2px solid #8a8a86 !important;
}

.form-control::placeholder,
textarea::placeholder {
  color: #5a5a57 !important;
  opacity: 1 !important;
}

.form-control:hover,
.form-select:hover,
textarea:hover,
select:hover {
  border-color: #4f4f4c !important;
}

.form-control:focus,
.form-select:focus,
textarea:focus,
select:focus {
  border-color: #111 !important;
  box-shadow: 0 0 0 3px #fff, 0 0 0 6px var(--bw-accent, #d00032) !important;
}

.form-check-input {
  width: 1.25rem;
  height: 1.25rem;
  min-width: 1.25rem;
  margin-top: .14rem;
  background-color: #111 !important;
  border: 2px solid #d2d0ca !important;
  box-shadow: none !important;
}

.form-check-input:checked {
  background-color: var(--bw-accent, #d00032) !important;
  border-color: #fff !important;
}

.form-check-input[type="radio"] {
  border-radius: 50% !important;
}

.form-check-label {
  color: var(--bw-a11y-copy) !important;
  line-height: 1.5;
}

.required::after,
.form-label.required::after,
.form-check-label.required::after {
  color: var(--bw-a11y-danger) !important;
}

.invalid-feedback,
.form-error,
.help-block ul,
.has-error .form-text,
.alert-danger,
.notification-error {
  color: #fff !important;
}

.alert-danger,
.notification-error {
  background: #6d1f28 !important;
  border-color: #ff9aa4 !important;
}

.alert-success,
.notification-success {
  background: #153f23 !important;
  color: #fff !important;
  border-color: #a9e6b2 !important;
}

/* ---------- Faceted search / left filter ---------- */
#search-filters.search-filters,
#search_filters,
#left-column #search-filters,
#left-column #search_filters {
  background: #151515 !important;
  color: var(--bw-a11y-copy) !important;
  border: 1px solid var(--bw-a11y-border) !important;
  padding: 0 !important;
  box-shadow: none !important;
}

#search-filters .left-block__title,
#search_filters .left-block__title,
#search_filters > .h6 {
  margin: 0 !important;
  padding: 18px 18px 14px !important;
  color: #fff !important;
  font-size: 1rem !important;
  font-weight: 900 !important;
  letter-spacing: .035em;
  text-transform: none !important;
  border-bottom: 1px solid var(--bw-a11y-border) !important;
}

#search-filters .accordion,
#search_filters .accordion {
  --bs-accordion-bg: transparent;
  --bs-accordion-color: var(--bw-a11y-copy);
  --bs-accordion-border-color: var(--bw-a11y-border);
  --bs-accordion-btn-color: var(--bw-a11y-copy);
  --bs-accordion-btn-bg: #1b1b1b;
  --bs-accordion-active-color: #fff;
  --bs-accordion-active-bg: #242424;
  margin: 0;
}

#search-filters .accordion-item,
#search_filters .facet,
#search_filters .accordion-item {
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid #525252 !important;
}

#search-filters .accordion-item:last-child,
#search_filters .facet:last-child {
  border-bottom: 0 !important;
}

#search-filters .accordion-button,
#search_filters .title,
#search_filters .accordion-button {
  width: 100%;
  min-height: 52px;
  padding: 14px 16px !important;
  background: #1b1b1b !important;
  color: var(--bw-a11y-text) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: .95rem !important;
  font-weight: 800 !important;
  line-height: 1.3;
}

#search-filters .accordion-button:hover,
#search_filters .title:hover,
#search_filters .accordion-button:hover {
  background: #252525 !important;
}

#search-filters .accordion-button:not(.collapsed),
#search_filters .accordion-button:not(.collapsed) {
  background: #252525 !important;
  color: #fff !important;
  box-shadow: inset 4px 0 0 var(--bw-accent, #d00032) !important;
}

#search-filters .accordion-button::after,
#search_filters .accordion-button::after {
  filter: invert(1) grayscale(1) brightness(1.8);
}

#search-filters .accordion-body,
#search_filters .accordion-body,
#search_filters .collapse {
  background: #151515 !important;
  color: var(--bw-a11y-copy) !important;
}

#search-filters .accordion-body,
#search_filters .accordion-body {
  margin: 0 !important;
  padding: 10px 14px 14px !important;
  list-style: none;
}

#search-filters .search-filters__item,
#search_filters .facet-label {
  margin: 0;
  padding: 3px 0;
}

#search-filters .search-filters__form-check,
#search_filters .form-check {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  min-height: 36px;
  padding: 6px 4px 6px 1.8rem !important;
}

#search-filters .search-filters__form-label,
#search-filters .search-filters__link,
#search_filters .facet-label,
#search_filters .facet-label a,
#search_filters .search-link {
  color: var(--bw-a11y-copy) !important;
  opacity: 1 !important;
  font-size: .93rem !important;
  line-height: 1.4;
  text-decoration: none !important;
}

#search-filters .search-filters__form-label:hover,
#search-filters .search-filters__link:hover,
#search_filters .facet-label:hover,
#search_filters .facet-label a:hover {
  color: #fff !important;
  text-decoration: underline !important;
  text-underline-offset: .18em;
}

#search-filters .search-filters__magnitude,
#search_filters .magnitude {
  color: var(--bw-a11y-muted) !important;
  opacity: 1 !important;
}

#search-filters .form-check-input,
#search_filters input[type="checkbox"],
#search_filters input[type="radio"] {
  border-color: #d6d4cf !important;
}

#search-filters .search-filters__clear,
#search_filters .clear-all-wrapper {
  padding: 12px 14px 0;
}

#search-filters .js-search-filters-clear-all,
#search_filters .js-search-filters-clear-all {
  width: 100%;
  min-height: 44px;
  background: transparent !important;
  color: #fff !important;
  border: 1px solid var(--bw-a11y-border-strong) !important;
}

#search-filters .search-filters__dropdown-toggle,
#search_filters .facet-dropdown .select-title {
  width: 100%;
  min-height: 44px;
  background: #111 !important;
  color: #fff !important;
  border: 1px solid var(--bw-a11y-border-strong) !important;
}

#search-filters .dropdown-menu,
#search_filters .dropdown-menu {
  background: #111 !important;
  color: #fff !important;
  border: 1px solid var(--bw-a11y-border-strong) !important;
}

#search-filters .dropdown-item,
#search_filters .select-list {
  min-height: 42px;
  padding: 10px 12px;
  color: var(--bw-a11y-copy) !important;
  background: transparent !important;
}

#search-filters .dropdown-item:hover,
#search_filters .dropdown-item:focus,
#search_filters .select-list:hover,
#search_filters .select-list:focus {
  background: #2b2b2b !important;
  color: #fff !important;
}

#search-filters .search-filters__slider-values,
#search_filters .faceted-slider p {
  color: var(--bw-a11y-copy) !important;
}

#search-filters .noUi-target,
#search_filters .noUi-base,
#search_filters .noUi-connects {
  background: #6f6f6f !important;
}

#search-filters .noUi-connect {
  background: #fff !important;
}

#search-filters .noUi-handle {
  background: var(--bw-accent, #d00032) !important;
  border: 3px solid #fff !important;
  box-shadow: none !important;
}

/* ---------- Newsletter ---------- */
.ps-emailsubscription.bw-newsletter,
#footer .ps-emailsubscription {
  background: #141414 !important;
  color: var(--bw-a11y-copy) !important;
  border-top: 1px solid var(--bw-a11y-border) !important;
  border-bottom: 1px solid var(--bw-a11y-border) !important;
}

.bw-newsletter__inner {
  padding-block: clamp(28px, 4vw, 52px);
}

.bw-newsletter__eyebrow {
  margin: 0 0 8px;
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.bw-newsletter__title {
  margin: 0 0 10px;
  color: #fff !important;
  font-family: var(--bw-head);
  font-size: clamp(2rem, 3.2vw, 3.5rem);
  line-height: .95;
  text-transform: uppercase;
}

.bw-newsletter__lead {
  max-width: 42rem;
  margin: 0;
  color: var(--bw-a11y-muted) !important;
  line-height: 1.65;
}

.bw-newsletter__form {
  padding: clamp(18px, 2.5vw, 28px);
  background: #1d1d1d;
  border: 1px solid var(--bw-a11y-border);
}

.bw-newsletter__form .form-label {
  margin-bottom: 8px;
  color: #fff !important;
  font-size: .9rem;
  font-weight: 800;
}

.bw-newsletter__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: stretch;
}

.bw-newsletter__row .form-control {
  min-height: 50px;
  margin: 0;
}

.bw-newsletter__submit {
  min-width: 150px;
  min-height: 50px;
  background: var(--bw-accent, #d00032) !important;
  color: #fff !important;
  border: 2px solid #fff !important;
  font-weight: 900;
  text-transform: uppercase;
}

.bw-newsletter__submit:hover {
  background: #fff !important;
  color: #111 !important;
  border-color: #fff !important;
}

.bw-newsletter__legal,
.bw-newsletter__legal p,
.bw-newsletter__legal label,
.bw-newsletter__legal .form-check-label,
.bw-newsletter__conditions {
  color: var(--bw-a11y-muted) !important;
  opacity: 1 !important;
  font-size: .875rem !important;
  line-height: 1.55;
}

/* ---------- Checkout / order flow ---------- */
#checkout,
#checkout .checkout-grid,
#checkout .step,
#checkout .step__content {
  color: var(--bw-a11y-copy) !important;
}

#checkout .checkout-steps {
  background: #0f0f0f !important;
  color: var(--bw-a11y-copy) !important;
  border-top: 1px solid #4f4f4f;
  border-bottom: 1px solid #707070;
}

#checkout .checkout-steps__list {
  max-width: var(--bw-max, 1440px);
  margin-inline: auto;
}

#checkout .checkout-steps__step {
  color: var(--bw-a11y-copy) !important;
}

#checkout .checkout-steps__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 34px;
  color: #fff !important;
  background: #252525 !important;
  border: 2px solid #8c8c8c !important;
  font-weight: 900;
}

#checkout .checkout-steps__btn {
  min-height: 48px;
  color: var(--bw-a11y-copy) !important;
  opacity: 1 !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

#checkout .checkout-steps__btn:hover,
#checkout .checkout-steps__btn[aria-selected="true"],
#checkout .checkout-steps__btn.active,
#checkout .checkout-steps__step.active .checkout-steps__btn {
  color: #fff !important;
  text-decoration: underline !important;
  text-decoration-color: var(--bw-accent, #d00032) !important;
  text-decoration-thickness: 3px !important;
  text-underline-offset: 7px;
}

#checkout .checkout-steps__btn[aria-selected="true"] + *,
#checkout .checkout-steps__step.active .checkout-steps__number,
#checkout .checkout-steps__step--current .checkout-steps__number {
  background: var(--bw-accent, #d00032) !important;
  border-color: #fff !important;
  color: #fff !important;
}

#checkout .checkout-steps__title,
#checkout .checkout-steps__subtitle {
  color: var(--bw-a11y-copy) !important;
  opacity: 1 !important;
}

#checkout .checkout-steps__title {
  font-weight: 900;
}

#checkout .step,
#checkout .checkout__step,
#checkout .checkout-grid__aside-wrapper,
#checkout .checkout__summary-accordion-item,
#checkout .checkout__summary-accordion-wrapper {
  background: #1b1b1b !important;
  color: var(--bw-a11y-copy) !important;
  border-color: var(--bw-a11y-border) !important;
}

#checkout .step__title,
#checkout .step__title .page-title-section,
#checkout .step__title h1,
#checkout .step__title p,
#checkout .checkout__step-title,
#checkout .checkout-step__title {
  color: #fff !important;
  opacity: 1 !important;
}

#checkout .step__title hr {
  border-color: #7a7a7a !important;
  opacity: 1 !important;
}

#checkout .step__content p,
#checkout .step__content li,
#checkout .step__content span:not(.material-icons):not(.badge),
#checkout .step__content label,
#checkout .step__account p,
#checkout .identity,
#checkout .delivery-option,
#checkout .payment-option {
  color: var(--bw-a11y-copy) !important;
  opacity: 1 !important;
}

#checkout .nav.nav-underline {
  gap: 8px 22px;
  margin-bottom: 24px;
  border-bottom: 1px solid #707070;
}

#checkout .nav-underline .nav-link,
#checkout .nav-link {
  min-height: 46px;
  padding: 10px 2px !important;
  color: var(--bw-a11y-muted) !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 3px solid transparent !important;
  opacity: 1 !important;
  font-weight: 800;
}

#checkout .nav-underline .nav-link:hover,
#checkout .nav-underline .nav-link:focus,
#checkout .nav-underline .nav-link.active,
#checkout .nav-link.active {
  color: #fff !important;
  border-bottom-color: var(--bw-accent, #d00032) !important;
}

#checkout .form-label,
#checkout legend,
#checkout .form-check-label {
  color: #f2f1ed !important;
  opacity: 1 !important;
  font-weight: 750;
}

#checkout .form-text,
#checkout .form-text *,
#checkout small,
#checkout .text-body-secondary,
#checkout .text-body-tertiary {
  color: var(--bw-a11y-muted) !important;
  opacity: 1 !important;
}

#checkout .form-check {
  min-height: 32px;
}

#checkout .delivery-option,
#checkout .payment-option,
#checkout .address-selector__item,
#checkout .card {
  background: #222 !important;
  border: 1px solid var(--bw-a11y-border) !important;
}

#checkout .delivery-option:hover,
#checkout .payment-option:hover,
#checkout .address-selector__item:hover {
  border-color: var(--bw-a11y-border-strong) !important;
}

#checkout .delivery-option:has(input:checked),
#checkout .payment-option:has(input:checked),
#checkout .address-selector__item:has(input:checked) {
  border-color: #fff !important;
  box-shadow: inset 4px 0 0 var(--bw-accent, #d00032) !important;
}

#checkout .btn-primary,
#checkout button[type="submit"].btn-primary {
  background: var(--bw-accent, #d00032) !important;
  color: #fff !important;
  border: 2px solid #fff !important;
}

#checkout .btn-primary:hover,
#checkout button[type="submit"].btn-primary:hover {
  background: #fff !important;
  color: #111 !important;
}

#checkout .btn-basic,
#checkout .btn-outline-primary,
#checkout .btn-outline-tertiary {
  color: #fff !important;
  background: transparent !important;
  border-color: var(--bw-a11y-border-strong) !important;
}

#checkout .btn-basic:hover,
#checkout .btn-outline-primary:hover,
#checkout .btn-outline-tertiary:hover {
  background: #292929 !important;
  border-color: #fff !important;
}

/* Consent/privacy text must remain readable and links visible. */
#checkout [id*="gdpr"],
#checkout [class*="gdpr"],
#checkout .js-terms,
#checkout .condition-label,
#checkout .custom-checkbox,
#checkout .custom-checkbox label {
  color: var(--bw-a11y-copy) !important;
  opacity: 1 !important;
}

/* Order summary */
#checkout .cart-summary,
#checkout .cart-summary-line,
#checkout .cart-summary-products,
#checkout .cart-summary-products p,
#checkout .cart-summary-products a {
  color: var(--bw-a11y-copy) !important;
}

#checkout .cart-summary-line .label {
  color: var(--bw-a11y-muted) !important;
  opacity: 1 !important;
}

#checkout .cart-summary-line .value,
#checkout .cart-summary-line.cart-total .value {
  color: #fff !important;
  opacity: 1 !important;
}

/* ---------- Footer ---------- */
#footer,
#footer .footer,
#footer .footer__main,
#footer .footer__before {
  color: var(--bw-a11y-muted) !important;
}

#footer p,
#footer li,
#footer address,
#footer .contact-rich,
#footer .contact-rich * {
  color: var(--bw-a11y-muted) !important;
  opacity: 1 !important;
}

#footer a {
  color: #f0efeb !important;
  opacity: 1 !important;
}

#footer a:hover,
#footer a:focus-visible {
  color: #fff !important;
  text-decoration: underline;
}

/* ---------- Zoom / mobile safeguards ---------- */
@media (max-width: 767.98px) {
  #search-filters.search-filters,
  #search_filters {
    border-inline: 0 !important;
  }

  .bw-newsletter__inner {
    padding-inline: 4px;
  }

  .bw-newsletter__form {
    margin-top: 18px;
    padding: 16px;
  }

  .bw-newsletter__row {
    grid-template-columns: 1fr;
  }

  .bw-newsletter__submit {
    width: 100%;
  }

  #checkout .checkout-steps__mobile {
    color: #fff !important;
    background: #121212 !important;
  }

  #checkout .checkout-steps__title,
  #checkout .checkout-steps__subtitle {
    margin-bottom: 4px;
  }

  #checkout .step,
  #checkout .checkout__step {
    padding-inline: 14px;
  }
}

@media (max-width: 480px) {
  .btn,
  button,
  input,
  select,
  textarea {
    max-width: 100%;
  }

  #checkout .buttons-wrapper {
    gap: 10px;
  }
}

/* Respect user preference for stronger contrast. */
@media (prefers-contrast: more) {
  :root {
    --bw-a11y-copy: #fff;
    --bw-a11y-muted: #eee;
    --bw-a11y-border: #9b9b9b;
    --bw-a11y-border-strong: #fff;
  }

  .product-miniature__inner,
  .product-miniature .thumbnail-container,
  #search-filters.search-filters,
  #checkout .step,
  #checkout .checkout-grid__aside-wrapper,
  .bw-newsletter__form {
    border-width: 2px !important;
  }
}

/* Honor reduced motion beyond the theme's existing rule. */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto !important;
  }

  .product-miniature:hover .product-miniature__inner,
  .product-miniature:hover .thumbnail-container,
  .product-miniature:hover img,
  .subcategory:hover {
    transform: none !important;
  }
}

/* Windows / OS high-contrast mode: hand control back to system colors. */
@media (forced-colors: active) {
  * {
    forced-color-adjust: auto;
  }

  .btn,
  .form-control,
  .form-select,
  .form-check-input,
  #search-filters.search-filters,
  #search-filters .accordion-button,
  #checkout .step,
  #checkout .delivery-option,
  #checkout .payment-option,
  .bw-newsletter__form {
    border: 1px solid CanvasText !important;
  }

  a:focus-visible,
  button:focus-visible,
  input:focus-visible,
  select:focus-visible,
  textarea:focus-visible {
    outline: 3px solid Highlight !important;
    box-shadow: none !important;
  }
}

/* Keep keyboard-focused targets clear of sticky header and mobile purchase dock. */
html {
  scroll-padding-top: calc(var(--bw-header-height, 110px) + 20px);
  scroll-padding-bottom: 96px;
}

[id] {
  scroll-margin-top: calc(var(--bw-header-height, 110px) + 20px);
}

@media (max-width: 767.98px) {
  html {
    scroll-padding-top: calc(var(--bw-header-height, 82px) + 14px);
    scroll-padding-bottom: 110px;
  }
}

/* =========================================================
   Fesselliebe v1.8 – final contrast pass for mixed native/custom UI
   ========================================================= */
:root{
  --bw-a11y-copy:#e4e1dc;
  --bw-a11y-muted:#c9c6c0;
  --bw-a11y-subtle:#b9b6b0;
  --bw-a11y-border:#747474;
  --bw-a11y-border-strong:#9a9a9a;
  --bw-a11y-link:#c4caff;
}

/* Never use the brand blue as small body text on the dark surface. It stays
   an accent/background; readable link text gets a lighter companion color. */
.page-content .text-primary,
.page-content a.text-primary,
.checkout-grid .text-primary,
#checkout .text-primary,
#my-account .text-primary{
  color:var(--bw-a11y-link)!important;
}

.page-content h1,.page-content h2,.page-content h3,.page-content h4,.page-content h5,.page-content h6,
.checkout-grid h1,.checkout-grid h2,.checkout-grid h3,.checkout-grid h4,
#checkout label,#checkout legend,#checkout .step-title,#checkout .checkout-step-title,
#cart label,#cart legend{
  color:#f7f6f2!important;
  opacity:1!important;
}

.page-content p,.page-content li,.page-content dd,.page-content dt,
.checkout-grid p,.checkout-grid li,
#checkout .form-text,#checkout .help-block,#checkout small,
#cart .form-text,#cart .help-block,#cart small{
  color:var(--bw-a11y-copy)!important;
  opacity:1!important;
}

/* Bootstrap/native buttons: strong state contrast on the dark theme. */
.btn-primary,
a.btn-primary,
button.btn-primary,
input.btn-primary{
  background:var(--bw-accent,#d00032)!important;
  border-color:var(--bw-accent,#d00032)!important;
  color:#fff!important;
  font-weight:850!important;
}
.btn-primary:hover,.btn-primary:focus-visible{
  background:#0d26d6!important;
  border-color:#fff!important;
  color:#fff!important;
}
.btn-secondary,
.btn-outline-secondary{
  background:#202020!important;
  color:#fff!important;
  border:2px solid var(--bw-a11y-border-strong)!important;
}
.btn-secondary:hover,.btn-outline-secondary:hover{
  background:#313131!important;
  color:#fff!important;
  border-color:#fff!important;
}
.btn-outline-primary{
  color:#fff!important;
  background:transparent!important;
  border:2px solid var(--bw-a11y-border-strong)!important;
}
.btn-outline-primary:hover,.btn-outline-primary:focus-visible{
  color:#fff!important;
  background:var(--bw-accent,#d00032)!important;
  border-color:var(--bw-accent,#d00032)!important;
}
.btn:disabled,.btn.disabled,
button:disabled,input:disabled,select:disabled,textarea:disabled{
  opacity:1!important;
  color:#c9c6c0!important;
  background:#343434!important;
  border-color:#6f6f6f!important;
}

/* Product/listing metadata from native modules. */
.product-miniature,
.product-miniature__bottom,
.product-miniature__infos,
.product-miniature__actions{
  color:#e4e1dc;
}
.product-miniature__title{color:#fff!important}
.product-miniature__price{color:#fff!important}
.product-miniature__regular-price{color:#c9c6c0!important;opacity:1!important}
.product-miniature .text-muted,.product-miniature small{color:#c9c6c0!important;opacity:1!important}

/* Checkout tabs / authentication links were still partly dark or default blue. */
#checkout .nav-link,
#checkout .step__content a:not(.btn),
#checkout .checkout-step a:not(.btn),
#authentication .page-content a:not(.btn){
  color:var(--bw-a11y-link)!important;
  font-weight:750;
  text-decoration:underline;
  text-underline-offset:.18em;
}
#checkout .nav-link.active,
#checkout .step-title[aria-current="step"],
#checkout .checkout-step.-current .step-title{
  color:#fff!important;
}

/* Error/success text needs a readable surface, not color alone. */
.invalid-feedback,.form-error,.help-block .alert-danger,
.alert.alert-danger,.alert.alert-warning,.alert.alert-success{
  opacity:1!important;
}
.alert.alert-warning{
  color:#17130a!important;
  background:#ffe49b!important;
  border-color:#6b5200!important;
}

/* Native module labels and badges. */
.badge.bg-primary,.badge.text-bg-primary,.product-flag{
  background:var(--bw-accent,#d00032)!important;
  color:#fff!important;
}

@media (max-width:767.98px){
  .page-content p,.page-content li,.checkout-grid p,.checkout-grid li{line-height:1.55}
}

/* Fesselliebe v1.9 – inline faceted search accessibility */
.bw-filter-toggle,
.bw-inline-filters__close {
  min-height: 44px;
}
.bw-filter-toggle:focus-visible,
.bw-inline-filters__close:focus-visible,
.bw-inline-filters #search-filters a:focus-visible,
.bw-inline-filters #search-filters button:focus-visible,
.bw-inline-filters #search-filters input:focus-visible {
  outline: 3px solid #fff !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px var(--bw-accent, #d00032) !important;
}
.bw-inline-filters #search-filters .search-filters__form-label,
.bw-inline-filters #search-filters .search-filters__link,
.bw-inline-filters #search-filters .search-link,
.bw-inline-filters #search-filters .search-filters__magnitude,
.bw-inline-filters #search-filters .faceted-slider p {
  color: #e4e1dc !important;
  opacity: 1 !important;
}
.bw-inline-filters #search-filters .search-filters__magnitude {
  color: #c9c6c0 !important;
}
@media (forced-colors: active) {
  .bw-inline-filters,
  .bw-inline-filters #search-filters .accordion-item,
  .bw-filter-toggle {
    border: 1px solid CanvasText !important;
  }
}

/* Fesselliebe v2.0 accessibility refinements */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid #fff!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 6px var(--bw-accent,#d00032)!important;
}
:where(a,button,input,select,textarea,[tabindex]):focus:not(:focus-visible){outline:none}

/* Do not rely on color alone for active states. */
[aria-current="page"],.current>a,.active>a{
  text-decoration-thickness:.12em;
  text-underline-offset:.28em;
}

/* Better readable selected text and forced-colors support. */
::selection{background:#fff;color:#111}
@media(forced-colors:active){
  .product-miniature__inner,.card,.bw-inline-filters,#checkout .checkout-step{border:1px solid CanvasText!important}
  .bw-filter-toggle,.btn{forced-color-adjust:auto}
}

/* 400% zoom / narrow viewport safeguard: no horizontal page scrolling caused by shop UI. */
@media(max-width:479.98px){
  html,body{max-width:100%;overflow-x:hidden}
  .table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .btn{white-space:normal}
}

/* =========================================================
   Fesselliebe Accessibility 1.14.2 – light-action contrast fix
   Loaded last on purpose so generic account-link rules cannot recolor light
   buttons such as “Passwort vergessen?”.
   ========================================================= */
#authentication .forgot-password,
#authentication .forgot-password a,
#authentication .page-content .forgot-password a:not(.btn),
.login .forgot-password,
.login .forgot-password a,
.login__form-wrapper .forgot-password,
.login__form-wrapper .forgot-password a {
  background: #f4f3ef !important;
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  opacity: 1 !important;
}
#authentication .forgot-password a,
#authentication .page-content .forgot-password a:not(.btn),
.login .forgot-password a,
.login__form-wrapper .forgot-password a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 52px !important;
  padding: 10px 14px !important;
  border: 1px solid #d4d1ca !important;
  text-decoration: none !important;
  font-weight: 850 !important;
}
#authentication .forgot-password a:hover,
#authentication .forgot-password a:focus-visible,
.login .forgot-password a:hover,
.login .forgot-password a:focus-visible,
.login__form-wrapper .forgot-password a:hover,
.login__form-wrapper .forgot-password a:focus-visible {
  background: #ffffff !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border-color: #ffffff !important;
}

/* Generic genuinely-light Bootstrap controls must never inherit the pale link
   color used on dark surfaces. */
a.btn-light,
button.btn-light,
.btn-light,
a.btn.bg-white,
button.btn.bg-white,
.btn.bg-white,
a.btn.bg-light,
button.btn.bg-light,
.btn.bg-light {
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  opacity: 1 !important;
}

/* =========================================================
   Fesselliebe Branding 1.14.3 – authoritative Bootstrap button contrast
   Hummingbird declares .btn { --bs-btn-color:#d1d1d1; }. That token is fine
   on dark controls, but unreadable on genuinely light button surfaces.
   This last-loaded accessibility layer owns the final token values.
   ========================================================= */
.btn {
  --bs-btn-color: #ffffff !important;
  --bs-btn-hover-color: #ffffff !important;
  --bs-btn-active-color: #ffffff !important;
  --bs-btn-disabled-color: #bdbdbd !important;
  color: var(--bs-btn-color) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Every known light/white action explicitly switches to dark ink. */
.btn-light,
a.btn-light,
button.btn-light,
.btn-white,
a.btn-white,
button.btn-white,
.btn.bg-white,
a.btn.bg-white,
button.btn.bg-white,
.btn.bg-light,
a.btn.bg-light,
button.btn.bg-light,
.bw-btn--light,
a.bw-btn--light,
button.bw-btn--light,
#authentication .forgot-password a,
#authentication .forgot-password .btn,
.login .forgot-password a,
.login .forgot-password .btn,
.login__form-wrapper .forgot-password a,
.login__form-wrapper .forgot-password .btn,
.password-recovery a.btn,
.password-recovery button.btn {
  --bs-btn-color: #111111 !important;
  --bs-btn-hover-color: #000000 !important;
  --bs-btn-active-color: #000000 !important;
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  opacity: 1 !important;
}

/* Primary Fesselliebe actions are blue with white type, regardless of the generic token. */
.btn-primary,
a.btn-primary,
button.btn-primary,
input.btn-primary,
.product__add-to-cart-button {
  --bs-btn-color: #ffffff !important;
  --bs-btn-hover-color: #ffffff !important;
  --bs-btn-active-color: #ffffff !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
