@charset "UTF-8";
/* === SCSS Variables === */
/* 5.2:1 on white — use where white text on red needs AA contrast */
/* Grays */
/* Semantic */
/* Aliases */
/* === CSS Custom Properties === */
:root {
  /* Theme colors */
  --we-primary: #177AAB;
  --we-primary-text: #FFFFFF;
  --we-accent: #ED1C24;
  --we-accent-text: #FFFFFF;
  --we-text: #000000;
  --we-link: #177AAB;
  --we-shaded: #b9d7e6;
  /* Shared design tokens (used by product-layout, search-page, etc.) */
  --accent: #177AAB;
  --yellow: #FFCC00;
  --dark: #000000;
  --white: #FFFFFF;
  --bg: #ebebeb;
  --green: #2e8b3a;
  --ci-red: #ED1C24;
  /* Layout */
  --max-w: 1400px;
  /* Radii */
  --r-card: 14px;
  --r-pill: 12px;
  --r-btn: 12px;
}

/* === Type Scale ===
 * Named font-size variables for sizes reused across multiple components.
 * One-off sizes (e.g. product title, main price) stay as literals.
 *
 * Imported by style.scss and available to project SCSS files via
 * ScssParser's $import_paths pointing to assets/css/.
 */
/* === Type Scale ===
 * Named font-size variables for sizes reused across multiple components.
 * One-off sizes (e.g. product title, main price) stay as literals.
 *
 * Imported by style.scss and available to project SCSS files via
 * ScssParser's $import_paths pointing to assets/css/.
 */
/* === Shared Mixins ===
 * Imported by style.scss (global) and available to project SCSS files
 * via ScssParser's $import_paths pointing to assets/css/.
 *
 * These mixins extract patterns duplicated across header, live-search,
 * product-layout, and search-page stylesheets.
 */
/* ── Pill button ─────────────────────────────────────────────────────
 * Shared shape for ATC buttons, variant buttons, sidebar buttons.
 * Colors are passed as arguments so each context can set its own palette.
 *
 * Usage:
 *   @include pill-button(var(--accent), var(--white));
 */
/* ── Quantity stepper ────────────────────────────────────────────────
 * Pill-shaped wrapper + increment/decrement buttons + number input.
 * Sizes are passed as arguments (live-search is compact, product page is larger).
 *
 * Usage:
 *   .my-stepper { @include qty-stepper-wrap(30px); }
 *   .my-btn    { @include qty-stepper-btn(26px); }
 *   .my-input  { @include qty-stepper-input(34px); }
 */
/* ── Uppercase label ─────────────────────────────────────────────────
 * Small caps label used for section headers, facet titles, badge text.
 *
 * Usage:
 *   .my-label { @include uppercase-label; }
 *   .my-label { @include uppercase-label(0.75rem); }
 */
/* === Base Reset === */
/* Box model, body margin and image containment lost when Hello Elementor stylesheet was disabled. */
html {
  -webkit-text-size-adjust: 100%;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  line-height: 1.33;
}

img {
  border-style: none;
  height: auto;
  max-width: 100%;
}

/* === Global === */
body {
  font-family: "Roboto";
  font-size: 16px;
  margin: 0;
  color: #000000;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

p {
  margin-block-start: 10px;
  margin-block-end: 20px;
}

strong {
  font-weight: bolder;
}

a {
  color: #177AAB;
}

h1,
h2,
h3,
h4,
h5 {
  text-transform: uppercase;
  font-weight: 300;
  color: #177AAB;
  margin: 0;
  padding: 0 0 20px;
}

h1 {
  font-size: 38px;
}

h2 {
  font-size: 30px;
}

h3 {
  font-size: 24px;
}

h4,
h5 {
  font-size: 18px;
}

button,
.button,
input[type=button],
input[type=reset],
input[type=submit] {
  font-weight: 700;
  line-height: 1.2;
}

/* ── Content pages: max-width + form borders ─────────────────────── */
.page .site-main {
  max-width: var(--max-w);
  margin-left: auto;
  margin-right: auto;
  padding: 1rem 16px 2rem;
}

/* Borlabs Cookie preferences button — shaded style (matches Hinweise accordion / payment box) */
.brlbs-cmpnt-btn-preferences {
  background: var(--we-shaded) !important;
  color: var(--we-text) !important;
  border: none !important;
}

/* Form field borders (Newsletter, Vertrag widerrufen, etc.) */
.page .elementor-field-textual,
.page .elementor-field-group input,
.page .elementor-field-group textarea,
.page .elementor-field-group select,
.page .woocommerce-form .input-text,
.page .woocommerce-form select {
  border-color: #ccc !important;
}

/* == Layout == */
.flex-row {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
}

.flex-col {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
}

/* === Accessibility === */
/* Visually hidden, accessible to screen readers */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* WPGB screen-reader-only elements: ensure readable when focused */
.wpgb-sr-only,
.wpgb-select-sr-only {
  color: #000000;
  background: #FFFFFF;
  opacity: 1;
}

/* Focus indicator */
a:focus {
  outline: 1px solid #000000;
}

/* === WooCommerce button theming === */
.woocommerce .woocommerce-cart-form button:not(.wea-qty-btn),
.woocommerce .woocommerce-cart-form .wc-forward,
.woocommerce #place_order,
.woocommerce .cart .single_add_to_cart_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  background: #177AAB;
  color: #FFFFFF;
  border: none;
  cursor: pointer;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  line-height: 1.2;
  border-radius: var(--r-pill, 999px);
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  cursor: pointer;
}
.woocommerce .woocommerce-cart-form button:not(.wea-qty-btn):hover,
.woocommerce .woocommerce-cart-form .wc-forward:hover,
.woocommerce #place_order:hover,
.woocommerce .cart .single_add_to_cart_button:hover {
  background: #126087;
  border-color: #126087;
  color: #FFFFFF;
}

/* === Product bundle children (WPC Product Bundles) === */
.woosb-item-child .product-price .amount,
.woosb-item-child .product-price .tax_label,
.woosb-item-child .product-subtotal .amount,
.woosb-item-child .product-subtotal .tax_label,
.woosb-item-child .product-total .amount,
.woosb-item-child .product-total .tax_label {
  opacity: 1;
  font-size: 90%;
}

.woosb-bundled .woosb-item-product {
  border-left: 1px solid #e0e0e0;
  padding-left: 8px;
}

/* Mini-cart: hide bundle child product link (redundant) */
.mini-cart-body .woosb-cart-child .product-name a:first-child:not(:hover, :focus) {
  position: absolute;
  left: -9999px;
  top: -9999px;
}

/* Mini-cart: bundle children can't be removed individually */
.mini-cart-body .woosb-cart-child .product-remove {
  display: none;
}

/* Set Elementor Form Fields' inputs and placeholders to the correct font */
.elementor-field {
  font-family: "Roboto";
}

/* === Site header === */
/* Skip link */
.skip-link {
  position: absolute;
  top: -100%;
  left: 0;
  z-index: 1000;
  padding: 0.75rem 1.5rem;
  background: #177AAB;
  color: #FFFFFF;
  font-weight: 700;
  text-decoration: none;
}
.skip-link:focus-visible {
  top: 0;
}

/* Header shell */
.site-header {
  display: flex !important;
  flex-direction: column !important;
  position: sticky !important;
  top: 0;
  justify-content: stretch;
  z-index: 100;
  background: #FFFFFF;
  width: 100% !important;
  max-width: none !important;
  padding-block: 0 !important;
  padding-inline: 0 !important;
  border-bottom: 1px solid #000000;
  /* ── Elementor / theme neutraliser ──────────────────────────────────
     Two-class specificity (.site-header button) beats Elementor's
     single-class selectors (.elementor-button, etc.).
     ─────────────────────────────────────────────────────────────── */
  /* Restore focus-visible for keyboard a11y */
}
.site-header button,
.site-header a {
  color: inherit;
  background-color: transparent;
  border-color: transparent;
  box-shadow: none;
  outline: none;
  transition: none;
  text-decoration: none;
  margin: 0;
  line-height: inherit;
  font-size: inherit;
}
.site-header button:hover, .site-header button:focus, .site-header button:active,
.site-header a:hover,
.site-header a:focus,
.site-header a:active {
  color: inherit;
  background-color: transparent;
  border-color: transparent;
  box-shadow: none;
  outline: none;
}
.site-header :focus-visible {
  outline: 2px solid #000000;
  outline-offset: 2px;
}
.site-header *,
.site-header *::before,
.site-header *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.header-top {
  flex: 1;
  display: flex;
  align-items: center;
  padding: 0.25rem 0.5rem;
  gap: 0.5rem;
  width: 100%;
  margin: 0 auto;
}

/* Menu toggle */
.menu-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.25rem;
  min-width: 44px;
  min-height: 44px;
}
.menu-toggle svg {
  width: 22px;
  height: 12px;
}

/* Logo */
.site-logo {
  flex: 0 1 auto;
  min-width: 0;
  order: 0;
}
.site-logo a {
  display: block;
  line-height: 0;
}
.site-logo img {
  height: 36px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: left;
}

/* Search form */
.header-search {
  display: none;
  flex: 1 1 0%;
  min-width: 0;
  max-width: 320px;
}

.header-search-form {
  display: flex;
  align-items: center;
  border: none;
  border-radius: 999px;
  background: #f0f0f0;
  overflow: hidden;
  /* Suppress individual focus rings — the form wrapper handles it */
}
.header-search-form:focus-within {
  outline: 2px solid #177AAB;
  outline-offset: 1px;
}
.header-search-form *:focus,
.header-search-form *:focus-visible {
  outline: none !important;
}

.header-search-input {
  flex: 1;
  border: none !important;
  border-radius: 0 !important;
  padding: 0.5rem 0.75rem;
  font-size: 0.9375rem;
  color: #000000;
  background: transparent;
  outline: none;
  min-width: 0;
  box-shadow: none !important;
}
.header-search-input::placeholder {
  color: #595959; /* 4.58:1 on #f0f0f0, meets WCAG AA */
}

.header-search-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.375rem 0.5rem;
  min-width: 44px;
  min-height: 44px;
}
.header-search-submit svg {
  width: 18px;
  height: 18px;
}

/* Header actions */
.header-actions {
  display: flex;
  align-items: center;
  gap: 0;
  margin-left: auto;
}

.header-action-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.375rem;
  min-width: 44px;
  min-height: 44px;
  color: #000000;
  text-decoration: none;
}
.header-action-btn svg {
  width: 22px;
  height: 22px;
}

/* Trust seal */
.trust-seal {
  display: none;
  min-width: 0;
  flex-shrink: 2;
}
.trust-seal a {
  display: block;
  line-height: 0;
}
.trust-seal img {
  height: 40px;
  width: auto;
  max-width: 100%;
  min-height: 24px;
}

/* Search toggle (hidden on tablet+ via media query) */
.search-toggle {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 44px;
  min-height: 44px;
}
.search-toggle svg {
  width: 22px;
  height: 22px;
}

/* Cart */
.cart-link {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.5rem 0.75rem;
  border: none !important;
  text-decoration: none;
  color: #000000 !important;
  background: #f0f0f0 !important;
  white-space: nowrap;
  min-height: 44px;
  cursor: pointer;
  font-size: inherit;
  line-height: inherit;
}
.cart-link:focus-visible {
  outline: 2px solid #177AAB;
  outline-offset: 2px;
}

.cart-icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
}
.cart-icon svg {
  width: 22px;
  height: 22px;
}

.cart-badge {
  position: absolute;
  top: -6px;
  right: -8px;
  background: #177AAB;
  color: #FFFFFF;
  font-size: 0.6875rem;
  font-weight: 700;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.cart-total {
  font-size: 0.6rem;
  font-weight: 600;
}

/* Navigation (hamburger dropdown) */
.menu-toggle-wrap {
  position: relative;
  order: -1;
}

.main-nav {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 200;
  background: #FFFFFF;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  width: max-content;
  min-width: 260px;
  max-width: min(360px, 100vw - 1rem);
}
.main-nav.is-open {
  display: block;
}
.main-nav .nav-list {
  list-style: none;
  padding: 0.5rem 0;
  margin: 0;
  /* Parent items with children */
  /* Sub-menu (nested list) */
}
.main-nav .nav-list li {
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.main-nav .nav-list li:last-child {
  border-bottom: none;
}
.main-nav .nav-list a {
  display: block;
  padding: 0.625rem 1.25rem;
  color: #000000;
  text-decoration: none;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.main-nav .nav-list a:hover, .main-nav .nav-list a:focus {
  background: rgba(0, 0, 0, 0.04);
  text-decoration: none;
  outline-offset: -2px;
}
.main-nav .nav-list .menu-item-has-children > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.main-nav .nav-list .menu-item-has-children .sub-menu-toggle {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.625rem;
  margin: -0.625rem -0.5rem -0.625rem 0;
  color: #000000;
  line-height: 1;
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.main-nav .nav-list .menu-item-has-children .sub-menu-toggle::after {
  content: "›";
  font-size: 1.25rem;
  transition: transform 0.15s;
}
.main-nav .nav-list .menu-item-has-children .sub-menu-toggle[aria-expanded=true]::after {
  transform: rotate(90deg);
}
.main-nav .nav-list .sub-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  display: none;
  background: rgba(0, 0, 0, 0.02);
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}
.main-nav .nav-list .sub-menu.is-open {
  display: block;
}
.main-nav .nav-list .sub-menu a {
  font-weight: 400;
  font-size: 0.75rem;
  text-transform: none;
  padding-left: 2rem;
}

/* Mobile search overlay */
.mobile-search {
  display: none;
  padding: 0.75rem 1rem;
  background: #FFFFFF;
  border-bottom: 1px solid #e0e0e0;
}
.mobile-search.is-open {
  display: block;
}
.mobile-search .header-search-form {
  max-width: 100%;
}

/* ── Tablet (768px+) ── */
@media (min-width: 768px) {
  .header-top {
    gap: 0.75rem;
    /* Match the breadcrumb / content column alignment. The breadcrumb's
       inner padding is 24px, but the logo has intrinsic whitespace and
       the nav items have their own padding, so halving this to 12px
       gives a better visual match. */
    width: min(100% - 36px, 1400px);
    padding-left: 12px;
    padding-right: 12px;
  }
  .site-logo img {
    height: 48px;
  }
  .trust-seal {
    display: flex;
    flex-shrink: 2;
  }
  .trust-seal img {
    height: 52px;
  }
  .site-header .menu-toggle-wrap {
    order: 0;
    margin-left: auto;
  }
  .main-nav {
    left: auto;
    right: 0;
  }
  .header-actions {
    margin-left: 0;
    gap: 0.25rem;
  }
  .header-action-btn svg {
    width: 20px;
    height: 20px;
  }
  .cart-icon {
    width: 24px;
    height: 24px;
  }
  .cart-icon svg {
    width: 22px;
    height: 22px;
  }
  .site-header .cart-link {
    margin-left: 0;
    gap: 0.25rem;
    padding: 0.375rem 0.75rem;
  }
  .cart-total {
    font-size: 0.9375rem;
  }
}
/* Navigation bar (blue accent strip) */
.nav-bar {
  display: none;
  background: #177AAB;
}

/* ── Desktop (1024px+) ── */
@media (min-width: 1024px) {
  .mobile-search {
    display: none !important;
  }
  .site-header {
    border-bottom: none;
  }
  .header-top {
    /* Keep the 24px horizontal padding set at tablet+ so logo/cart align
       with the breadcrumb/content column; only adjust the vertical. */
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    /* Uniform small gap between all top-level items; extra space is
       absorbed by auto-margins on .header-search and .menu-toggle-wrap
       below, which centers the search + trust-seal block. */
    gap: 0.5rem;
  }
  .header-search {
    display: flex;
    flex: 1 1 0%;
    min-width: 0;
  }
  .search-toggle {
    display: none;
  }
  .site-logo img {
    height: 60px;
  }
  .trust-seal {
    margin-left: auto;
  }
  .trust-seal img {
    height: 68px;
  }
  .header-actions {
    gap: 0.5rem;
  }
  .main-nav .nav-list {
    padding: 0.5rem 2rem;
    max-width: 1280px;
    margin: 0 auto;
  }
  .main-nav .nav-list a {
    font-size: 0.8125rem;
  }
  .nav-bar {
    display: block;
  }
  .nav-bar-list {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.25rem;
    list-style: none;
    /* Match .header-top's tablet+ formula + 12px internal padding so
       the first nav item's left edge visually aligns with the logo and
       breadcrumb (nav items carry their own inner padding too). */
    width: min(100% - 36px, 1400px);
    padding-left: 12px;
    padding-right: 12px;
    margin: 0 auto;
  }
  .nav-bar-list a {
    display: block;
    padding: 0.625rem 0.75rem;
    color: #FFFFFF;
    text-decoration: none;
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    white-space: nowrap;
  }
  .nav-bar-list a:hover, .nav-bar-list a:focus {
    text-decoration: underline;
    color: #FFFFFF;
    outline-offset: 2px;
  }
}
/* ── Mini cart off-canvas ── */
.mini-cart-overlay {
  position: fixed;
  inset: 0;
  z-index: 999;
  background: rgba(0, 0, 0, 0.45);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.mini-cart-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

.mini-cart-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  width: 380px;
  max-width: 90vw;
  background: #FFFFFF;
  box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
  transform: translateX(100%);
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column;
  /* Reset inherited styles inside drawer */
  /* Offset for the admin bar. On desktop (783px+) it's always fixed.
     On mobile (<783px) it scrolls away, so the offset creates a small
     gap when scrolled — but only admins see it, never customers. */
}
.mini-cart-drawer.is-open {
  transform: translateX(0);
}
.mini-cart-drawer * {
  box-sizing: border-box;
}
.mini-cart-drawer button, .mini-cart-drawer button:hover, .mini-cart-drawer button:focus {
  color: #000000;
}
body.admin-bar .mini-cart-drawer {
  top: var(--wp-admin--admin-bar--height, 0px);
}

.mini-cart-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #e0e0e0;
  flex-shrink: 0;
}
.mini-cart-header h2 {
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  color: #000000;
  margin: 0;
  padding: 0;
}

.mini-cart-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: none !important;
  border: none !important;
  cursor: pointer;
  font-size: 1.5rem;
  line-height: 1;
  color: #000000;
}

.mini-cart-body {
  flex: 1;
  overflow-y: auto;
  padding: 1rem 1.25rem;
  -webkit-overflow-scrolling: touch;
}
.mini-cart-body .woocommerce-mini-cart {
  list-style: none;
  padding: 0;
  margin: 0;
}
.mini-cart-body .woocommerce-mini-cart-item {
  display: grid;
  grid-template-columns: 64px 1fr 24px;
  column-gap: 0.75rem;
  padding: 0.875rem 0;
  font-weight: 400;
}
.mini-cart-body .woocommerce-mini-cart-item:not(:last-child) {
  border-bottom: 1px solid #e0e0e0;
}
.mini-cart-body .woocommerce-mini-cart-item a {
  color: #000000 !important;
  text-decoration: none;
  font-size: 0.875rem;
  line-height: 1.4;
  font-weight: 400;
}
.mini-cart-body .woocommerce-mini-cart-item a:hover {
  text-decoration: underline !important;
}
.mini-cart-body .wea-cart-item__thumb {
  grid-column: 1;
  grid-row: 1/span 2;
  align-self: start;
}
.mini-cart-body .wea-cart-item__thumb img {
  width: 64px;
  height: auto;
  border-radius: 2px;
  display: block;
}
.mini-cart-body .wea-cart-item__body {
  grid-column: 2;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}
.mini-cart-body .wea-cart-item__name,
.mini-cart-body .wea-cart-item__name a {
  font-weight: 400;
  font-size: 0.875rem;
  line-height: 1.3;
}
.mini-cart-body .wea-cart-item__meta {
  font-size: 0.75rem;
  color: #555;
  font-weight: 400;
}
.mini-cart-body .wea-cart-item__meta p,
.mini-cart-body .wea-cart-item__meta dl,
.mini-cart-body .wea-cart-item__meta dd,
.mini-cart-body .wea-cart-item__meta dt {
  margin: 0;
  padding: 0;
  font-weight: 400;
}
.mini-cart-body .wea-cart-item__price {
  font-size: 0.8125rem;
  font-weight: 400;
  color: #000000;
  line-height: 1.4;
  margin-top: 0.125rem;
}
.mini-cart-body .wea-cart-item__price .wea-cart-item__qty-price {
  display: block;
}
.mini-cart-body .wea-cart-item__price .wea-cart-item__meta-line {
  display: block;
  font-size: 0.75rem;
  color: #555;
  margin-top: 0.125rem;
}
.mini-cart-body .wea-cart-item__remove {
  grid-column: 3;
  font-size: 1.1rem;
  line-height: 1;
  color: #888 !important;
  margin-top: 0.5rem;
}
.mini-cart-body .wea-cart-item__remove:hover {
  color: #000000 !important;
  text-decoration: none !important;
}
.mini-cart-body .woocommerce-mini-cart__empty-message {
  text-align: center;
  padding: 2rem 0;
  color: #666;
  font-size: 0.9375rem;
}

.mini-cart-footer {
  flex-shrink: 0;
  padding: 1rem 1.25rem;
  border-top: 1px solid #e0e0e0;
}
.mini-cart-footer .woocommerce-mini-cart__total {
  display: flex;
  justify-content: space-between;
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: #000000;
}
.mini-cart-footer .woocommerce-mini-cart__total .amount {
  color: #000000;
}
.mini-cart-footer .woocommerce-mini-cart__buttons {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.mini-cart-footer .woocommerce-mini-cart__buttons a {
  display: block;
  text-align: center;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  border-radius: 4px;
  text-decoration: none;
  border-radius: var(--r-btn, 50px);
}
.mini-cart-footer .woocommerce-mini-cart__buttons a.wc-forward {
  background: #FFFFFF !important;
  color: #000000 !important;
  border: 1px solid #e0e0e0 !important;
}
.mini-cart-footer .woocommerce-mini-cart__buttons a.wc-forward:hover {
  border-color: #000000 !important;
}
.mini-cart-footer .woocommerce-mini-cart__buttons a.checkout {
  background: #177AAB !important;
  color: #FFFFFF !important;
  border: 1px solid #177AAB !important;
}
.mini-cart-footer .woocommerce-mini-cart__buttons a.checkout:hover {
  background: #126087 !important;
  border-color: #126087 !important;
}

/* Fix header alignments (Elementor compat)
   NOTE: previously had `header>section:nth-child(1) { margin-top: var(--wp-admin--admin-bar--height) }`
   which double-offset the header when logged in (WP's html margin-top already handles it).
   Revert if Elementor pages show the header tucked behind the admin bar. */
.elementor-posts-container.elementor-posts .elementor-post {
  margin: 12px;
}

[data-elementor-type=product-archive] > div:nth-child(1) p {
  margin: 12px;
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
  .mini-cart-overlay {
    transition: none;
  }
  .mini-cart-drawer {
    transition: none;
  }
}
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) .woocommerce-breadcrumb,
.woocommerce-breadcrumb {
  margin-block-end: 0;
}
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) .woocommerce-breadcrumb a,
.woocommerce-breadcrumb a {
  color: #177AAB;
}

.organ-clock-homepage {
  flex: 0 0 20%;
}
.organ-clock-homepage img {
  max-width: 100px;
}

.boxed-title h5 {
  color: #000000;
}

div.woocommerce ul.products li.product,
section.upsells ul.products li.product {
  background: #F5FCFF;
}
div.woocommerce ul.products li.product a .woocommerce-loop-product__title,
div.woocommerce ul.products li.product a .price,
section.upsells ul.products li.product a .woocommerce-loop-product__title,
section.upsells ul.products li.product a .price {
  padding: 0 8px;
}
div.woocommerce ul.products li.product a.add_to_cart_button,
section.upsells ul.products li.product a.add_to_cart_button {
  background: transparent;
  color: #177AAB;
}
div.woocommerce ul.products li.product .wc-gzd-additional-info,
section.upsells ul.products li.product .wc-gzd-additional-info {
  padding: 0 8px;
}
span.onsale,
.woocommerce .elementor-widget-woocommerce-product-images span.onsale {
  display: none;
}

/* Related Products/Categories boxes */
.related-title {
  padding: 0 4px;
  font-size: 1.1em;
  background: #FFFFFF;
  text-transform: uppercase;
}

.product-cat-list {
  padding: 4px 10px 0;
}
.product-cat-list > a {
  margin: 0;
}
.product-cat-list > a > .product-cat-item {
  padding: 5px 0;
  margin: 0;
  border-bottom: solid 1px rgba(204, 204, 204, 0.6);
  font-size: 18px;
  font-weight: 300;
  text-transform: uppercase;
}

/* Warning box for "restricted sale in countries" */
.product-restricted-countries {
  border: 2px solid #ffcb05;
  padding: 8px;
  text-align: center;
}

.vat-warning {
  text-align: center;
}

#add_payment_method #payment div.payment_box::before,
.woocommerce-cart #payment div.payment_box::before,
.woocommerce-checkout #payment div.payment_box::before {
  border-bottom-color: var(--we-shaded);
}

#add_payment_method #payment div.payment_box,
.woocommerce-cart #payment div.payment_box,
.woocommerce-checkout #payment div.payment_box {
  background-color: var(--we-shaded);
  color: var(--black);
}

/* === Blog post content (.beitrag) === */
div.beitrag {
  margin-block-start: 20px;
}
div.beitrag > div {
  font-size: 0.8125rem;
  line-height: 1.7;
}
div.beitrag > div h2,
div.beitrag > div h3 {
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: none;
}
div.beitrag > div h4,
div.beitrag > div h5 {
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: none;
  color: #000000;
}
div.beitrag p,
div.beitrag ul,
div.beitrag ol {
  margin-block-start: 10px;
  margin-block-end: 20px;
}
div.beitrag .nomargin {
  margin-block-end: 0;
}

/* === Blog post (single) template overrides ===
 * Styles for the Elementor single-post template. Mobile-first. */
/* ── Max-width: stretch Elementor's 1200px to 1400px ────────── */
.single-post .elementor-section-boxed > .elementor-container {
  max-width: var(--max-w);
}

.single-post .e-con-boxed {
  --container-max-width: var(--max-w);
}

/* ── Post title ─────────────────────────────────────────────── */
.single-post .elementor-widget-theme-post-title .elementor-heading-title {
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1.2;
  color: #000000;
}

/* ── Featured image ─────────────────────────────────────────── */
.single-post .elementor-widget-theme-post-featured-image img {
  width: 100%;
  height: auto;
}

/* ── Section headings ("Das könnte...", "Kategorien", etc.) ─── */
.single-post .related-title .elementor-heading-title,
.single-post .elementor-element-9f08d60 .elementor-heading-title,
.single-post .elementor-element-9d97fbf .elementor-heading-title {
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #000000;
  margin-bottom: 0;
}

/* ── Related blog posts (Elementor Posts widget) ──────────── */
.single-post .elementor-posts {
  gap: 1rem !important;
}

.single-post .elementor-post {
  overflow: hidden;
  border: 1px solid #e0e0e0;
  background: #FFFFFF;
  transition: box-shadow 0.15s ease;
}
.single-post .elementor-post:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.single-post .elementor-post__thumbnail {
  aspect-ratio: 16/10;
}
.single-post .elementor-post__thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.single-post .elementor-post__text {
  padding: 0.75rem;
}

.single-post .elementor-post__title {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 0.375rem;
}
.single-post .elementor-post__title a {
  color: #000000;
  text-decoration: none;
}
.single-post .elementor-post__title a:hover {
  text-decoration: underline;
}

.single-post .elementor-post__excerpt {
  font-size: 0.75rem;
  color: #555;
  line-height: 1.5;
  margin: 0 0 0.5rem;
}
.single-post .elementor-post__excerpt p {
  margin: 0;
}

.single-post .elementor-post__read-more {
  font-size: 0.75rem;
  font-weight: 600;
  color: #000000;
  text-decoration: none;
}
.single-post .elementor-post__read-more:hover {
  text-decoration: underline;
}

/* ── Organ clock category list ──────────────────────────────── */
.single-post .product-cat-list {
  padding: 0;
}
.single-post .product-cat-list a {
  text-decoration: none;
  color: #000000;
}
.single-post .product-cat-list a:hover {
  text-decoration: underline;
}
.single-post .product-cat-list .product-cat-item {
  padding: 0.5rem;
  margin: 0;
  border-bottom: 1px solid #e0e0e0;
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: none;
}

/* ── WooCommerce product cards (legacy [products] shortcode) ── */
.single-post .woocommerce ul.products {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  padding: 0.5rem 0 1rem;
  margin: 0;
  list-style: none;
  scrollbar-width: thin;
  scrollbar-color: #e0e0e0 transparent;
}
.single-post .woocommerce ul.products li.product {
  flex: 0 0 clamp(200px, 60vw, 260px);
  scroll-snap-align: start;
  width: auto !important;
  margin: 0 !important;
  float: none !important;
  background: #FFFFFF;
  border: 1px solid #e0e0e0;
  overflow: hidden;
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  /* Hide ATC button — users click through to product page */
}
.single-post .woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  text-decoration: none;
  color: #000000;
}
.single-post .woocommerce ul.products li.product a.woocommerce-LoopProduct-link img {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
  margin-bottom: 0.5rem;
}
.single-post .woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 0.75rem;
  font-weight: 700;
  color: #000000;
  padding: 0 !important;
  margin: 0 0 0.25rem;
}
.single-post .woocommerce ul.products li.product .price {
  font-size: 0.75rem;
  color: #000000;
  padding: 0 !important;
  display: block;
}
.single-post .woocommerce ul.products li.product .wc-gzd-additional-info {
  font-size: 0.6rem;
  color: #666;
  padding: 0 !important;
  margin: 0.125rem 0 0;
  display: block;
}
.single-post .woocommerce ul.products li.product a.button,
.single-post .woocommerce ul.products li.product a.add_to_cart_button {
  display: none;
}

/* ── Yellow info box (inline in post content) ─────────────── */
.single-post .elementor-widget-container [style*=fff9e5] {
  border-color: #FFE27A !important;
  padding: 1rem 1.25rem !important;
  margin: 1.5rem 0 !important;
  font-size: 0.75rem;
}
.single-post .elementor-widget-container [style*=fff9e5] h4 {
  font-size: 0.8125rem;
  font-weight: 700;
  margin-top: 0;
}
.single-post .elementor-widget-container [style*=fff9e5] ul {
  margin: 0.5rem 0 0;
  padding-left: 1.25rem;
}
.single-post .elementor-widget-container [style*=fff9e5] ul li {
  margin-bottom: 0.25rem;
}
.single-post .elementor-widget-container [style*=fff9e5] a {
  color: #177AAB;
  text-decoration: underline;
}

/* ── Tablet+ (768px) ─────────────────────────────────────── */
@media (min-width: 768px) {
  .single-post .woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    overflow-x: visible;
    scroll-snap-type: none;
  }
  .single-post .woocommerce ul.products li.product {
    flex: none;
  }
  .single-post .woocommerce ul.products li.product a.woocommerce-LoopProduct-link img {
    width: 100px;
    height: 100px;
  }
}
/* ── Desktop (1024px) ────────────────────────────────────── */
@media (min-width: 1024px) {
  .single-post .elementor-widget-theme-post-title .elementor-heading-title {
    font-size: 2rem;
  }
}
/* Override WPGB's default `fieldset:last-child { margin-bottom: 40px }` */
.wea-archive-wrap .wpgb-facet > fieldset:last-child,
.we-search-page .wpgb-facet > fieldset:last-child {
  margin-bottom: 8px;
}

.wp-grid-builder {
  /* === Badges === */
}
.wp-grid-builder .wpgb-facet .wpgb-inline-list .wpgb-button {
  border-radius: 0;
  padding: 2px;
  margin: 2px;
  border-width: 1px;
}
.wp-grid-builder .wpgb-facet .wpgb-inline-list .wpgb-button .wpgb-button-label {
  font-size: 0.95em;
}
.wp-grid-builder .wpgb-facet .wpgb-button {
  background: #FFFFFF;
}
.wp-grid-builder .wpgb-facet .wpgb-button .wpgb-button-label {
  margin: 0;
  padding: 0 8px;
}
.wp-grid-builder .wpgb-area[class*=wpgb-area-bottom-] {
  margin: 16px;
}
.wp-grid-builder .wpgb-area[class*=wpgb-area-bottom-] .wpgb-button {
  background: #177AAB;
  border: 1px solid #177AAB;
  border-radius: 0;
}
.wp-grid-builder .wpgb-area[class*=wpgb-area-bottom-] .wpgb-button:hover {
  background: #FFFFFF;
  color: #177AAB;
}
.wp-grid-builder .wpgb-card-48 .wpgb-block-1,
.wp-grid-builder .wpgb-card-48 .wpgb-block-9 {
  border-radius: 6px 0 6px 0;
}
.wp-grid-builder .wpgb-card-48 .wpgb-block-1 .wpgb-block-term,
.wp-grid-builder .wpgb-card-48 .wpgb-block-9 .wpgb-block-term {
  background: #FFCC00;
  padding: 4px 10px;
}
.wp-grid-builder .wpgb-card-48 .wpgb-block-1 .wpgb-block-term[data-id="3130"],
.wp-grid-builder .wpgb-card-48 .wpgb-block-9 .wpgb-block-term[data-id="3130"] {
  background: #FFE27A;
}

/* === Card 48: the whole card links to the product === */
/* The overlay is a pseudo-element of the title link, so the card keeps a
   single anchor - no second link to the same product, no nested anchors.
   `.wpgb-card-inner` is the box it stretches to. */
.wp-grid-builder .wpgb-card.wpgb-card-48 {
  /* WPGB positions every layer and block relative; the overlay has to reach
     past them to the card. */
  /* Focus belongs to the card, not just the title text. */
  /* Add to cart stays clickable above the overlay. */
}
.wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-card-inner {
  position: relative;
}
.wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-card-content,
.wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-card-body,
.wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-block-3 {
  position: static;
}
.wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-block-3::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
.wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-block-3:focus-visible {
  outline: none;
}
.wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-block-3:focus-visible::after {
  outline: 2px solid #000000;
  outline-offset: -3px;
}
.wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-block-6 {
  z-index: 2;
}

/* === Card 48 without hover: price and cart button side by side === */
/* Touch devices never leave the hover state once tapped, which would hide the
   price and freeze the card at its hover scale. Show the prices and the cart
   button side by side instead, the cart button in the footer flow rather than
   on top of the price. */
@media (hover: none) {
  .wp-grid-builder .wpgb-card.wpgb-card-48,
  .wp-grid-builder .wpgb-card.wpgb-card-48:hover {
    /* Relative, not static: the button stays in the footer flow but keeps
       the stacking order that lifts it above the card overlay. Its offsets
       belong to the absolute layout and have to go. */
  }
  .wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-block-4,
  .wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-block-5,
  .wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-block-6,
  .wp-grid-builder .wpgb-card.wpgb-card-48:hover .wpgb-block-4,
  .wp-grid-builder .wpgb-card.wpgb-card-48:hover .wpgb-block-5,
  .wp-grid-builder .wpgb-card.wpgb-card-48:hover .wpgb-block-6 {
    opacity: 1;
    transform: none;
  }
  .wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-card-inner,
  .wp-grid-builder .wpgb-card.wpgb-card-48:hover .wpgb-card-inner {
    transform: none;
  }
  .wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-card-footer,
  .wp-grid-builder .wpgb-card.wpgb-card-48:hover .wpgb-card-footer {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.25em 0.75em;
  }
  .wp-grid-builder .wpgb-card.wpgb-card-48 .wpgb-block-6,
  .wp-grid-builder .wpgb-card.wpgb-card-48:hover .wpgb-block-6 {
    position: relative;
    inset: auto;
    margin-left: auto;
  }
}
/* === Shared horizontal slider card styles ===
 * Used by product-layout (sidebar products, related blog posts)
 * and blog-recommendations (product cards, related posts).
 *
 * Import into any SCSS file that renders wea-hslider-card markup:
 *   @import 'hslider-card';
 *
 * Requires: _colors.scss, _typography.scss, _mixins.scss */
.wea-hslider-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.wea-hslider-card-img {
  width: 100%;
  aspect-ratio: 1;
  background: #f7f7f7;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.wea-hslider-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.wea-hslider-card-body {
  padding: 10px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.wea-hslider-card-name {
  font-size: 0.75rem;
  font-weight: 700;
  margin-bottom: 2px;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: #000000;
  text-decoration: none;
}
.wea-hslider-card-name:hover {
  text-decoration: underline;
}

.wea-hslider-card-sub {
  font-size: 0.6rem;
  margin-bottom: 4px;
  flex: 1;
  color: #000000;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.wea-hslider-card-price-line {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 0;
}

.wea-hslider-card-price {
  font-size: 0.9rem;
  font-weight: 700;
  flex-shrink: 0;
}

.wea-hslider-card-price-meta {
  font-size: 0.5rem;
  line-height: 1.3;
  display: flex;
  color: #000000;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0;
}
.wea-hslider-card-price-meta > * + *::before {
  content: "•";
  margin: 0 3px;
}

/* Product cards: accent pill button */
.wea-hslider-card-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  background: #177AAB;
  color: #FFFFFF;
  border: none;
  cursor: pointer;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  line-height: 1.2;
  border-radius: var(--r-pill, 999px);
  border-radius: 999px;
  display: block;
  width: 100%;
  padding: 10px 8px;
  font-size: 0.6rem;
  letter-spacing: 0.5px;
  text-align: center;
  margin-top: auto;
}
.wea-hslider-card-btn:hover, .wea-hslider-card-btn:focus {
  background: #177AAB;
  box-shadow: inset 0 0 0 100px rgba(0, 0, 0, 0.08);
  color: #FFFFFF;
}

/* Blog cards: plain text link with blue accent line */
.wea-blog-related .wea-hslider-card-btn {
  background: transparent;
  border: none;
  color: #000000;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-align: left;
  padding: 8px 10px 6px;
  display: inline-block;
  position: relative;
  width: auto;
  border-radius: 0;
}
.wea-blog-related .wea-hslider-card-btn::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 0;
  width: 60%;
  min-width: 120px;
  height: 2px;
  background: #177AAB;
}
.wea-blog-related .wea-hslider-card-btn:hover, .wea-blog-related .wea-hslider-card-btn:focus {
  background: transparent;
  box-shadow: none;
  color: #000000;
  text-decoration: none;
}

.wea-blog-card-cat {
  font-size: 0.5rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #999;
  margin-bottom: 4px;
}

/* === WooCommerce page overrides ===
 * Account, Cart, Checkout — max-width, blue accent, consistent typography.
 * Mobile-first. */
/* Override parent theme reset.css — allow button labels to wrap */
button,
[type=button],
[type=submit] {
  white-space: normal;
}

/* ── Shared: max-width wrapper ──────────────────────────────── */
.woocommerce-account .site-main,
.woocommerce-account #primary,
.woocommerce-cart .site-main,
.woocommerce-cart #primary,
.woocommerce-checkout .site-main,
.woocommerce-checkout #primary {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 1rem 16px 2rem;
}

/* Note: Elementor-built cart/checkout pages use .woocommerce as the
   wrapper (no .site-main / #primary). Button and layout rules below
   therefore also scope to .woocommerce. The max-width wrapper is
   handled by Elementor's own container, so it's not repeated here. */
/* ── Shared: page title ─────────────────────────────────────── */
.woocommerce-account .entry-title,
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title {
  font-size: 0.95rem;
  font-weight: 800;
  color: #000000;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}

/* Override parent theme's .page-header .entry-title max-width at all breakpoints */
.woocommerce-account .page-header .entry-title, .woocommerce-cart .page-header .entry-title, .woocommerce-checkout .page-header .entry-title {
  max-width: none;
}

/* ── Shared: blue buttons (scoped to main content to avoid header) ── */
.woocommerce-account .site-main,
.woocommerce-account #primary,
.woocommerce-account .woocommerce,
.woocommerce-cart .site-main,
.woocommerce-cart #primary,
.woocommerce-cart .woocommerce,
.woocommerce-checkout .site-main,
.woocommerce-checkout #primary,
.woocommerce-checkout .woocommerce {
  /* Secondary/outline buttons (update cart, apply coupon) */
}
.woocommerce-account .site-main .button,
.woocommerce-account .site-main button[type=submit],
.woocommerce-account .site-main .wc-forward,
.woocommerce-account .site-main .checkout-button,
.woocommerce-account .site-main input[type=submit],
.woocommerce-account #primary .button,
.woocommerce-account #primary button[type=submit],
.woocommerce-account #primary .wc-forward,
.woocommerce-account #primary .checkout-button,
.woocommerce-account #primary input[type=submit],
.woocommerce-account .woocommerce .button,
.woocommerce-account .woocommerce button[type=submit],
.woocommerce-account .woocommerce .wc-forward,
.woocommerce-account .woocommerce .checkout-button,
.woocommerce-account .woocommerce input[type=submit],
.woocommerce-cart .site-main .button,
.woocommerce-cart .site-main button[type=submit],
.woocommerce-cart .site-main .wc-forward,
.woocommerce-cart .site-main .checkout-button,
.woocommerce-cart .site-main input[type=submit],
.woocommerce-cart #primary .button,
.woocommerce-cart #primary button[type=submit],
.woocommerce-cart #primary .wc-forward,
.woocommerce-cart #primary .checkout-button,
.woocommerce-cart #primary input[type=submit],
.woocommerce-cart .woocommerce .button,
.woocommerce-cart .woocommerce button[type=submit],
.woocommerce-cart .woocommerce .wc-forward,
.woocommerce-cart .woocommerce .checkout-button,
.woocommerce-cart .woocommerce input[type=submit],
.woocommerce-checkout .site-main .button,
.woocommerce-checkout .site-main button[type=submit],
.woocommerce-checkout .site-main .wc-forward,
.woocommerce-checkout .site-main .checkout-button,
.woocommerce-checkout .site-main input[type=submit],
.woocommerce-checkout #primary .button,
.woocommerce-checkout #primary button[type=submit],
.woocommerce-checkout #primary .wc-forward,
.woocommerce-checkout #primary .checkout-button,
.woocommerce-checkout #primary input[type=submit],
.woocommerce-checkout .woocommerce .button,
.woocommerce-checkout .woocommerce button[type=submit],
.woocommerce-checkout .woocommerce .wc-forward,
.woocommerce-checkout .woocommerce .checkout-button,
.woocommerce-checkout .woocommerce input[type=submit] {
  background: #177AAB !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: var(--r-btn);
  padding: 0.75rem 1.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
  text-align: center;
  transition: background 0.15s ease;
}
.woocommerce-account .site-main .button[name=apply_coupon],
.woocommerce-account .site-main button[type=submit][name=apply_coupon],
.woocommerce-account .site-main .wc-forward[name=apply_coupon],
.woocommerce-account .site-main .checkout-button[name=apply_coupon],
.woocommerce-account .site-main input[type=submit][name=apply_coupon],
.woocommerce-account #primary .button[name=apply_coupon],
.woocommerce-account #primary button[type=submit][name=apply_coupon],
.woocommerce-account #primary .wc-forward[name=apply_coupon],
.woocommerce-account #primary .checkout-button[name=apply_coupon],
.woocommerce-account #primary input[type=submit][name=apply_coupon],
.woocommerce-account .woocommerce .button[name=apply_coupon],
.woocommerce-account .woocommerce button[type=submit][name=apply_coupon],
.woocommerce-account .woocommerce .wc-forward[name=apply_coupon],
.woocommerce-account .woocommerce .checkout-button[name=apply_coupon],
.woocommerce-account .woocommerce input[type=submit][name=apply_coupon],
.woocommerce-cart .site-main .button[name=apply_coupon],
.woocommerce-cart .site-main button[type=submit][name=apply_coupon],
.woocommerce-cart .site-main .wc-forward[name=apply_coupon],
.woocommerce-cart .site-main .checkout-button[name=apply_coupon],
.woocommerce-cart .site-main input[type=submit][name=apply_coupon],
.woocommerce-cart #primary .button[name=apply_coupon],
.woocommerce-cart #primary button[type=submit][name=apply_coupon],
.woocommerce-cart #primary .wc-forward[name=apply_coupon],
.woocommerce-cart #primary .checkout-button[name=apply_coupon],
.woocommerce-cart #primary input[type=submit][name=apply_coupon],
.woocommerce-cart .woocommerce .button[name=apply_coupon],
.woocommerce-cart .woocommerce button[type=submit][name=apply_coupon],
.woocommerce-cart .woocommerce .wc-forward[name=apply_coupon],
.woocommerce-cart .woocommerce .checkout-button[name=apply_coupon],
.woocommerce-cart .woocommerce input[type=submit][name=apply_coupon],
.woocommerce-checkout .site-main .button[name=apply_coupon],
.woocommerce-checkout .site-main button[type=submit][name=apply_coupon],
.woocommerce-checkout .site-main .wc-forward[name=apply_coupon],
.woocommerce-checkout .site-main .checkout-button[name=apply_coupon],
.woocommerce-checkout .site-main input[type=submit][name=apply_coupon],
.woocommerce-checkout #primary .button[name=apply_coupon],
.woocommerce-checkout #primary button[type=submit][name=apply_coupon],
.woocommerce-checkout #primary .wc-forward[name=apply_coupon],
.woocommerce-checkout #primary .checkout-button[name=apply_coupon],
.woocommerce-checkout #primary input[type=submit][name=apply_coupon],
.woocommerce-checkout .woocommerce .button[name=apply_coupon],
.woocommerce-checkout .woocommerce button[type=submit][name=apply_coupon],
.woocommerce-checkout .woocommerce .wc-forward[name=apply_coupon],
.woocommerce-checkout .woocommerce .checkout-button[name=apply_coupon],
.woocommerce-checkout .woocommerce input[type=submit][name=apply_coupon] {
  letter-spacing: 0;
  text-transform: none;
}
.woocommerce-account .site-main .button:hover, .woocommerce-account .site-main .button:focus,
.woocommerce-account .site-main button[type=submit]:hover,
.woocommerce-account .site-main button[type=submit]:focus,
.woocommerce-account .site-main .wc-forward:hover,
.woocommerce-account .site-main .wc-forward:focus,
.woocommerce-account .site-main .checkout-button:hover,
.woocommerce-account .site-main .checkout-button:focus,
.woocommerce-account .site-main input[type=submit]:hover,
.woocommerce-account .site-main input[type=submit]:focus,
.woocommerce-account #primary .button:hover,
.woocommerce-account #primary .button:focus,
.woocommerce-account #primary button[type=submit]:hover,
.woocommerce-account #primary button[type=submit]:focus,
.woocommerce-account #primary .wc-forward:hover,
.woocommerce-account #primary .wc-forward:focus,
.woocommerce-account #primary .checkout-button:hover,
.woocommerce-account #primary .checkout-button:focus,
.woocommerce-account #primary input[type=submit]:hover,
.woocommerce-account #primary input[type=submit]:focus,
.woocommerce-account .woocommerce .button:hover,
.woocommerce-account .woocommerce .button:focus,
.woocommerce-account .woocommerce button[type=submit]:hover,
.woocommerce-account .woocommerce button[type=submit]:focus,
.woocommerce-account .woocommerce .wc-forward:hover,
.woocommerce-account .woocommerce .wc-forward:focus,
.woocommerce-account .woocommerce .checkout-button:hover,
.woocommerce-account .woocommerce .checkout-button:focus,
.woocommerce-account .woocommerce input[type=submit]:hover,
.woocommerce-account .woocommerce input[type=submit]:focus,
.woocommerce-cart .site-main .button:hover,
.woocommerce-cart .site-main .button:focus,
.woocommerce-cart .site-main button[type=submit]:hover,
.woocommerce-cart .site-main button[type=submit]:focus,
.woocommerce-cart .site-main .wc-forward:hover,
.woocommerce-cart .site-main .wc-forward:focus,
.woocommerce-cart .site-main .checkout-button:hover,
.woocommerce-cart .site-main .checkout-button:focus,
.woocommerce-cart .site-main input[type=submit]:hover,
.woocommerce-cart .site-main input[type=submit]:focus,
.woocommerce-cart #primary .button:hover,
.woocommerce-cart #primary .button:focus,
.woocommerce-cart #primary button[type=submit]:hover,
.woocommerce-cart #primary button[type=submit]:focus,
.woocommerce-cart #primary .wc-forward:hover,
.woocommerce-cart #primary .wc-forward:focus,
.woocommerce-cart #primary .checkout-button:hover,
.woocommerce-cart #primary .checkout-button:focus,
.woocommerce-cart #primary input[type=submit]:hover,
.woocommerce-cart #primary input[type=submit]:focus,
.woocommerce-cart .woocommerce .button:hover,
.woocommerce-cart .woocommerce .button:focus,
.woocommerce-cart .woocommerce button[type=submit]:hover,
.woocommerce-cart .woocommerce button[type=submit]:focus,
.woocommerce-cart .woocommerce .wc-forward:hover,
.woocommerce-cart .woocommerce .wc-forward:focus,
.woocommerce-cart .woocommerce .checkout-button:hover,
.woocommerce-cart .woocommerce .checkout-button:focus,
.woocommerce-cart .woocommerce input[type=submit]:hover,
.woocommerce-cart .woocommerce input[type=submit]:focus,
.woocommerce-checkout .site-main .button:hover,
.woocommerce-checkout .site-main .button:focus,
.woocommerce-checkout .site-main button[type=submit]:hover,
.woocommerce-checkout .site-main button[type=submit]:focus,
.woocommerce-checkout .site-main .wc-forward:hover,
.woocommerce-checkout .site-main .wc-forward:focus,
.woocommerce-checkout .site-main .checkout-button:hover,
.woocommerce-checkout .site-main .checkout-button:focus,
.woocommerce-checkout .site-main input[type=submit]:hover,
.woocommerce-checkout .site-main input[type=submit]:focus,
.woocommerce-checkout #primary .button:hover,
.woocommerce-checkout #primary .button:focus,
.woocommerce-checkout #primary button[type=submit]:hover,
.woocommerce-checkout #primary button[type=submit]:focus,
.woocommerce-checkout #primary .wc-forward:hover,
.woocommerce-checkout #primary .wc-forward:focus,
.woocommerce-checkout #primary .checkout-button:hover,
.woocommerce-checkout #primary .checkout-button:focus,
.woocommerce-checkout #primary input[type=submit]:hover,
.woocommerce-checkout #primary input[type=submit]:focus,
.woocommerce-checkout .woocommerce .button:hover,
.woocommerce-checkout .woocommerce .button:focus,
.woocommerce-checkout .woocommerce button[type=submit]:hover,
.woocommerce-checkout .woocommerce button[type=submit]:focus,
.woocommerce-checkout .woocommerce .wc-forward:hover,
.woocommerce-checkout .woocommerce .wc-forward:focus,
.woocommerce-checkout .woocommerce .checkout-button:hover,
.woocommerce-checkout .woocommerce .checkout-button:focus,
.woocommerce-checkout .woocommerce input[type=submit]:hover,
.woocommerce-checkout .woocommerce input[type=submit]:focus {
  background: #126087 !important;
  color: #FFFFFF !important;
}
.woocommerce-account .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward),
.woocommerce-account #primary .button:not(.alt):not(.checkout-button):not(.wc-forward),
.woocommerce-account .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward),
.woocommerce-cart .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward),
.woocommerce-cart #primary .button:not(.alt):not(.checkout-button):not(.wc-forward),
.woocommerce-cart .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward),
.woocommerce-checkout .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward),
.woocommerce-checkout #primary .button:not(.alt):not(.checkout-button):not(.wc-forward),
.woocommerce-checkout .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward) {
  background: #FFFFFF !important;
  color: #000000 !important;
  border: 1px solid #e0e0e0 !important;
}
.woocommerce-account .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward):hover, .woocommerce-account .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward):focus,
.woocommerce-account #primary .button:not(.alt):not(.checkout-button):not(.wc-forward):hover,
.woocommerce-account #primary .button:not(.alt):not(.checkout-button):not(.wc-forward):focus,
.woocommerce-account .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward):hover,
.woocommerce-account .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward):focus,
.woocommerce-cart .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward):hover,
.woocommerce-cart .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward):focus,
.woocommerce-cart #primary .button:not(.alt):not(.checkout-button):not(.wc-forward):hover,
.woocommerce-cart #primary .button:not(.alt):not(.checkout-button):not(.wc-forward):focus,
.woocommerce-cart .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward):hover,
.woocommerce-cart .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward):focus,
.woocommerce-checkout .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward):hover,
.woocommerce-checkout .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward):focus,
.woocommerce-checkout #primary .button:not(.alt):not(.checkout-button):not(.wc-forward):hover,
.woocommerce-checkout #primary .button:not(.alt):not(.checkout-button):not(.wc-forward):focus,
.woocommerce-checkout .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward):hover,
.woocommerce-checkout .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward):focus {
  border-color: #000000 !important;
  background: #FFFFFF !important;
}
.woocommerce-account .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward):disabled, .woocommerce-account .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward)[disabled],
.woocommerce-account #primary .button:not(.alt):not(.checkout-button):not(.wc-forward):disabled,
.woocommerce-account #primary .button:not(.alt):not(.checkout-button):not(.wc-forward)[disabled],
.woocommerce-account .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward):disabled,
.woocommerce-account .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward)[disabled],
.woocommerce-cart .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward):disabled,
.woocommerce-cart .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward)[disabled],
.woocommerce-cart #primary .button:not(.alt):not(.checkout-button):not(.wc-forward):disabled,
.woocommerce-cart #primary .button:not(.alt):not(.checkout-button):not(.wc-forward)[disabled],
.woocommerce-cart .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward):disabled,
.woocommerce-cart .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward)[disabled],
.woocommerce-checkout .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward):disabled,
.woocommerce-checkout .site-main .button:not(.alt):not(.checkout-button):not(.wc-forward)[disabled],
.woocommerce-checkout #primary .button:not(.alt):not(.checkout-button):not(.wc-forward):disabled,
.woocommerce-checkout #primary .button:not(.alt):not(.checkout-button):not(.wc-forward)[disabled],
.woocommerce-checkout .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward):disabled,
.woocommerce-checkout .woocommerce .button:not(.alt):not(.checkout-button):not(.wc-forward)[disabled] {
  opacity: 0.4;
  cursor: default;
  pointer-events: none;
}

/* ══════════════════════════════════════════════════════════════
   ACCOUNT PAGES
   ══════════════════════════════════════════════════════════════ */
.woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 0.5rem 1rem;
  border: 1px solid #e0e0e0;
  border-radius: var(--r-btn);
  text-decoration: none;
  color: #000000;
  font-size: 0.75rem;
  font-weight: 600;
}
.woocommerce-MyAccount-navigation li a:hover {
  border-color: #177AAB;
  color: #177AAB;
}
.woocommerce-MyAccount-navigation li.is-active a {
  background: #177AAB;
  color: #FFFFFF;
  border-color: #177AAB;
}

.woocommerce-MyAccount-content {
  /* Address cards — reset float on edit link */
  /* Form fields — match checkout styling */
}
.woocommerce-MyAccount-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.75rem;
}
.woocommerce-MyAccount-content table th,
.woocommerce-MyAccount-content table td {
  padding: 0.75rem;
  border-bottom: 1px solid #e0e0e0;
  text-align: left;
}
.woocommerce-MyAccount-content table th {
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.6rem;
  letter-spacing: 0.05em;
}
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a {
  margin: 0.25rem 0.25rem 0.25rem 0;
}
.woocommerce-MyAccount-content .addresses .title .edit {
  float: none;
}
.woocommerce-MyAccount-content .woocommerce-EditAccountForm,
.woocommerce-MyAccount-content .woocommerce-address-fields {
  /* Select2 — see shared rule below */
}
.woocommerce-MyAccount-content .woocommerce-EditAccountForm label,
.woocommerce-MyAccount-content .woocommerce-address-fields label {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
  color: #000000;
}
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type=text],
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type=email],
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type=tel],
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type=password],
.woocommerce-MyAccount-content .woocommerce-EditAccountForm select,
.woocommerce-MyAccount-content .woocommerce-EditAccountForm textarea,
.woocommerce-MyAccount-content .woocommerce-address-fields input[type=text],
.woocommerce-MyAccount-content .woocommerce-address-fields input[type=email],
.woocommerce-MyAccount-content .woocommerce-address-fields input[type=tel],
.woocommerce-MyAccount-content .woocommerce-address-fields input[type=password],
.woocommerce-MyAccount-content .woocommerce-address-fields select,
.woocommerce-MyAccount-content .woocommerce-address-fields textarea {
  width: 100%;
  padding: 0.625rem 0.75rem;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  font-size: 0.75rem;
  font-family: inherit;
  color: #000000;
  background: #FFFFFF;
}
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type=text]:focus,
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type=email]:focus,
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type=tel]:focus,
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type=password]:focus,
.woocommerce-MyAccount-content .woocommerce-EditAccountForm select:focus,
.woocommerce-MyAccount-content .woocommerce-EditAccountForm textarea:focus,
.woocommerce-MyAccount-content .woocommerce-address-fields input[type=text]:focus,
.woocommerce-MyAccount-content .woocommerce-address-fields input[type=email]:focus,
.woocommerce-MyAccount-content .woocommerce-address-fields input[type=tel]:focus,
.woocommerce-MyAccount-content .woocommerce-address-fields input[type=password]:focus,
.woocommerce-MyAccount-content .woocommerce-address-fields select:focus,
.woocommerce-MyAccount-content .woocommerce-address-fields textarea:focus {
  border-color: #177AAB;
  outline: none;
  box-shadow: 0 0 0 1px #177AAB;
}
.woocommerce-MyAccount-content .woocommerce-EditAccountForm .form-row,
.woocommerce-MyAccount-content .woocommerce-address-fields .form-row {
  margin-bottom: 1rem;
}
.woocommerce-MyAccount-content .woocommerce-EditAccountForm fieldset,
.woocommerce-MyAccount-content .woocommerce-address-fields fieldset {
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  padding: 1rem;
  margin-bottom: 1rem;
}
.woocommerce-MyAccount-content .woocommerce-EditAccountForm fieldset legend,
.woocommerce-MyAccount-content .woocommerce-address-fields fieldset legend {
  font-weight: 700;
  font-size: 0.75rem;
  padding: 0 0.5rem;
}

/* ── Select2 overrides (country/state selectors) ──────────────
   Select2's JS re-renders the DOM after page load, and its CSS loads
   after ours. !important on every property is required. */
.woocommerce-address-fields .select2-container.select2-container--default .select2-selection.select2-selection--single,
.woocommerce-checkout .select2-container.select2-container--default .select2-selection.select2-selection--single {
  height: auto !important;
  margin: 0 !important;
  padding: 0.625rem 0.75rem !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 4px !important;
  background: #FFFFFF !important;
}
.woocommerce-address-fields .select2-container.select2-container--default .select2-selection--single .select2-selection__rendered,
.woocommerce-checkout .select2-container.select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0 !important;
  line-height: normal !important;
  color: #000000 !important;
  font-size: 0.75rem !important;
  font-family: inherit !important;
}
.woocommerce-address-fields .select2-container.select2-container--default .select2-selection--single .select2-selection__arrow,
.woocommerce-checkout .select2-container.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  right: 0.5rem !important;
  top: 0 !important;
}
.woocommerce-address-fields .select2-container.select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce-address-fields .select2-container.select2-container--default.select2-container--open .select2-selection--single,
.woocommerce-checkout .select2-container.select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container.select2-container--default.select2-container--open .select2-selection--single {
  border-color: #177AAB !important;
  box-shadow: 0 0 0 1px #177AAB !important;
}

/* Select2 dropdown (appended to <body>, outside form scope) */
.select2-container--default .select2-dropdown {
  border-color: #e0e0e0 !important;
  border-radius: 4px !important;
  font-size: 0.75rem !important;
  font-family: inherit !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
  padding: 0.5rem 0.75rem !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 4px !important;
  font-size: 0.75rem !important;
  font-family: inherit !important;
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus {
  border-color: #177AAB !important;
  outline: none !important;
}

.select2-container--default .select2-results__option {
  padding: 0.5rem 0.75rem !important;
  font-size: 0.75rem !important;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: #177AAB !important;
  color: #FFFFFF !important;
}

/* ══════════════════════════════════════════════════════════════
   CART PAGE
   ══════════════════════════════════════════════════════════════ */
/* ── Cart / Checkout: page title (Elementor h1) ──────────────── */
.woocommerce-cart h1.elementor-heading-title,
.woocommerce-checkout h1.elementor-heading-title {
  color: #177AAB;
  text-transform: uppercase;
  font-weight: 300;
  font-size: 30px;
}

/* ── Checkout: section headings ──────────────────────────────── */
.woocommerce-checkout h3 {
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

/* Quantity input: hide spinner arrows (Chrome, Safari, Firefox) */
.quantity input[type=number] {
  -moz-appearance: textfield;
  appearance: textfield;
}
.quantity input[type=number]::-webkit-outer-spin-button, .quantity input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* ── Product cards ────────────────────────────────────────────── */
.wea-cart-items {
  display: flex;
  flex-direction: column;
}

.wea-cart-card {
  border-top: 1px solid #e0e0e0;
  padding: 1rem 0;
}
.wea-cart-card:last-of-type {
  border-bottom: 1px solid #e0e0e0;
}

/* Row 1: image + trash icon */
.wea-cart-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}

.wea-cart-card-img {
  width: 80px;
  flex-shrink: 0;
}
.wea-cart-card-img img {
  width: 100%;
  height: auto;
  display: block;
}
.wea-cart-card-img a {
  display: block;
}

.wea-cart-card-remove {
  flex-shrink: 0;
  /* Override .woocommerce a.remove (block, 1em×1em, red, border-radius:100%) */
}
.wea-cart-card-remove .remove {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 36px !important;
  height: 36px !important;
  font-size: inherit !important;
  line-height: 1 !important;
  color: #000000 !important;
  text-decoration: none;
  background: transparent !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: var(--r-btn) !important;
  padding: 0;
  cursor: pointer;
  transition: background 0.15s ease;
}
.wea-cart-card-remove .remove svg {
  width: 18px;
  height: 18px;
  display: block;
}
.wea-cart-card-remove .remove:hover {
  background: var(--we-shaded) !important;
  color: #000000 !important;
}

/* Row 2: name + qty stepper + price */
.wea-cart-card-bottom {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 0.75rem;
}

.wea-cart-card-name {
  font-size: 0.75rem;
  min-width: 0;
}
.wea-cart-card-name a {
  color: #000000;
  text-decoration: none;
  font-weight: 600;
}
.wea-cart-card-name a:hover {
  text-decoration: underline;
}
.wea-cart-card-name .backorder_notification {
  font-size: 0.6rem;
  margin: 0.25rem 0 0;
}

/* Quantity stepper: − [input] + */
.wea-cart-card-qty {
  flex-shrink: 0;
}
.wea-cart-card-qty .quantity {
  display: flex;
  align-items: center;
  border: 1px solid #e0e0e0;
  border-radius: var(--r-btn);
  overflow: hidden;
}
.wea-cart-card-qty .wea-qty-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 0;
  background: #177AAB;
  font-size: 1rem;
  font-weight: 700;
  color: #FFFFFF;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  flex-shrink: 0;
}
.wea-cart-card-qty .wea-qty-btn:hover {
  background: #126087;
}
.wea-cart-card-qty .wea-qty-btn:disabled {
  opacity: 0.3;
  cursor: default;
}
.wea-cart-card-qty .wea-qty-minus {
  border-radius: var(--r-btn) 0 0 var(--r-btn);
}
.wea-cart-card-qty .wea-qty-plus {
  border-radius: 0 var(--r-btn) var(--r-btn) 0;
}
.wea-cart-card-qty input[type=number] {
  width: 2.5rem;
  text-align: center;
  border: none;
  border-left: 1px solid #e0e0e0;
  border-right: 1px solid #e0e0e0;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.25rem 0;
  background: transparent;
}
.wea-cart-card-qty input[type=number]:focus {
  outline: none;
  box-shadow: inset 0 0 0 1px #177AAB;
}

.wea-cart-card-price {
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  text-align: right;
}

/* Update cart button row */
.wea-cart-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0 0;
}

.wea-back-to-shop {
  font-size: 0.75rem;
}

/* Unit price / GZD cart info — gray, smaller */
.wea-cart-card-price .wc-gzd-cart-info {
  display: block;
  color: #666;
  font-size: 0.6rem;
  font-weight: 400;
}

/* ── Cart: two-column layout ─────────────────────────────────── */
.wea-cart-columns {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-top: 1.5rem;
}

.wea-cart-left,
.wea-cart-right {
  min-width: 0;
}

/* Coupon section */
.wea-cart-coupon {
  padding: 0 0 1.5rem;
  border-bottom: 1px solid #e0e0e0;
  margin-bottom: 1.5rem;
}
.wea-cart-coupon h2 {
  font-size: 1rem;
  font-weight: 700;
  color: #177AAB;
  margin: 0 0 0.5rem;
  text-transform: none;
}
.wea-cart-coupon .wea-coupon-form,
.wea-cart-coupon .coupon {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.75rem;
}
.wea-cart-coupon .wea-coupon-form .input-text,
.wea-cart-coupon .coupon .input-text {
  flex: 1;
  padding: 0.625rem 0.75rem;
  border: 1px solid #e0e0e0;
  border-radius: var(--r-btn);
  font-size: 0.75rem;
}
.wea-cart-coupon .wea-coupon-form .button,
.wea-cart-coupon .coupon .button {
  background: #FFFFFF !important;
  color: #000000 !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: var(--r-btn);
  padding: 0.625rem 1rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.03em;
  cursor: pointer;
  white-space: nowrap;
}
.wea-cart-coupon .wea-coupon-form .button:hover, .wea-cart-coupon .wea-coupon-form .button:focus,
.wea-cart-coupon .coupon .button:hover,
.wea-cart-coupon .coupon .button:focus {
  border-color: #000000 !important;
}

/* Cart totals */
.cart_totals h2 {
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.cart_totals .shop_table {
  width: 100%;
}
.cart_totals .shop_table th,
.cart_totals .shop_table td {
  padding: 0.75rem;
  border-bottom: 1px solid #e0e0e0;
}
.cart_totals .shop_table th {
  font-weight: 600;
  text-align: left;
}

/* Checkout button */
.wc-proceed-to-checkout .checkout-button {
  width: 100%;
  padding: 1rem !important;
  font-size: 0.8125rem !important;
  background: #177AAB !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: var(--r-btn);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.wc-proceed-to-checkout .checkout-button:hover, .wc-proceed-to-checkout .checkout-button:focus {
  background: #126087 !important;
  color: #FFFFFF !important;
}

/* VAT warning */
.vat-warning {
  font-size: 0.75rem;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  text-align: center;
}

/* Cross-sells — uses wea-hslider-card markup (same as product detail sidebar) */
.cross-sells h2 {
  font-size: 1rem;
  font-weight: 700;
  text-transform: none;
  color: #177AAB;
  margin-bottom: 0.75rem;
  padding-bottom: 0;
}
.cross-sells .wea-hslider {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: #e0e0e0 transparent;
  padding: 0 0 0.5rem;
}
.cross-sells .wea-hslider-card {
  flex: 0 0 clamp(160px, 50vw, 200px);
  scroll-snap-align: start;
}

/* ── Tablet+ (768px): two columns ────────────────────────────── */
@media (min-width: 768px) {
  .wea-cart-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    align-items: start;
  }
  /* Left column: coupon + cross-sells separator */
  .wea-cart-left {
    border-right: 1px solid #e0e0e0;
    padding-right: 1.5rem;
  }
}
/* ══════════════════════════════════════════════════════════════
   CHECKOUT PAGE
   ══════════════════════════════════════════════════════════════ */
/* === Checkout product cards === */
.wea-checkout-cards {
  display: flex;
  flex-direction: column;
  margin-bottom: 1rem;
}

/* GZD metadata line beneath product name */
.wea-cart-card-meta {
  display: block;
  font-size: 0.6rem;
  color: #666;
  margin-top: 0.25rem;
}

/* Form fields */
.woocommerce-checkout {
  /* Payment methods */
  /* Place order button */
  /* Review order totals table */
}
.woocommerce-checkout .form-row {
  margin-bottom: 1rem;
}
.woocommerce-checkout .form-row label {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.woocommerce-checkout .form-row .input-text,
.woocommerce-checkout .form-row select {
  width: 100%;
  padding: 0.625rem 0.75rem;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  font-size: 0.75rem;
}
.woocommerce-checkout #order_payment_heading {
  margin-top: 1rem;
}
.woocommerce-checkout #payment {
  background: #f9f9f9;
  border-radius: 4px;
  padding: 1rem;
}
.woocommerce-checkout #payment .payment_methods {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
}
.woocommerce-checkout #payment .payment_methods li {
  padding: 0.75rem 0;
  border-bottom: 1px solid #e0e0e0;
  /* Payment method icons (Klarna, EPS, etc.) */
}
.woocommerce-checkout #payment .payment_methods li:last-child {
  border-bottom: none;
}
.woocommerce-checkout #payment .payment_methods li label {
  display: inline !important;
  font-weight: 600;
  cursor: pointer;
}
.woocommerce-checkout #payment .payment_methods li img {
  display: inline-block !important;
  vertical-align: middle;
  margin: -2px 0 0 0.5em;
  max-height: 24px;
  width: auto;
}
.woocommerce-checkout #payment .payment_box p {
  margin: 0;
}
.woocommerce-checkout #place_order {
  width: 100%;
  padding: 1rem !important;
  font-size: 0.8125rem !important;
}
.woocommerce-checkout .wea-checkout-totals {
  width: 100%;
  font-size: 0.75rem;
}
.woocommerce-checkout .wea-checkout-totals th,
.woocommerce-checkout .wea-checkout-totals td {
  padding: 0.75rem;
  border-bottom: 1px solid #e0e0e0;
}
.woocommerce-checkout .wea-checkout-totals th {
  font-weight: 600;
  text-align: left;
}

/* ── Desktop (1024px+) ───────────────────────────────────────── */
@media (min-width: 1024px) {
  .woocommerce-account .site-main,
  .woocommerce-account #primary,
  .woocommerce-cart .site-main,
  .woocommerce-cart #primary,
  .woocommerce-checkout .site-main,
  .woocommerce-checkout #primary {
    padding: 2rem 24px 3rem;
  }
}
/* === Site footer === */
/* Hide Elementor popup containers on pages where Elementor's CSS is stripped.
   Without Elementor's frontend CSS, popups spill as unstyled content. */
.elementor-location-popup {
  display: none;
}

/* Override Hello Elementor's max-width: 1140px and padding on .site-footer */
.site-footer:not(.dynamic-footer) {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
}

/* Reset parent theme / Elementor styles inside footer */
.site-footer {
  /* Strip reset.css borders on inputs */
  /* Kill theme h/p padding/margin that breaks vertical centering.
     Uses unset so component classes like .footer-col-title can
     re-apply margin without fighting specificity. */
}
.site-footer input {
  border: none !important;
  border-radius: 0;
  box-shadow: none;
}
.site-footer h2,
.site-footer h3,
.site-footer p {
  padding: unset;
  margin: unset;
}

/* ── Newsletter bar ──────────────────────────────────────────────── */
.newsletter {
  background: #177AAB;
  padding: 1.25rem 0 1.5rem;
}

.newsletter-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  text-align: center;
}

.newsletter-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.125rem;
}

.newsletter-title {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #FFFFFF;
}

.newsletter-subtitle {
  font-size: 0.9375rem;
  font-weight: 400;
  font-style: italic;
  color: #FFFFFF;
}

.newsletter-form {
  display: flex;
  align-items: stretch;
  width: 100%;
  max-width: 460px;
  background: #FFFFFF;
  border-radius: 999px;
  padding: 0;
  gap: 0;
  overflow: hidden;
  /* Suppress individual focus rings */
}
.newsletter-form:focus-within {
  outline: 2px solid #FFFFFF;
  outline-offset: 2px;
}
.newsletter-form *:focus,
.newsletter-form *:focus-visible {
  outline: none !important;
}

.newsletter-input {
  flex: 1 1 auto;
  min-width: 0;
  border: none;
  background: transparent;
  padding: 0.625rem 1rem;
  font-size: 0.9375rem;
  font-style: italic;
  color: #000000;
  outline: none;
}
.newsletter-input::placeholder {
  color: #555555;
  font-style: italic;
}

.newsletter-submit {
  flex: 0 0 auto;
  border: none;
  background: #FFCC00;
  color: #000000;
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.75rem 1.5rem;
  border-radius: 999px 0 0 999px;
  cursor: pointer;
}
.newsletter-submit:hover, .newsletter-submit:focus {
  background: #d6ab00;
}
.newsletter-submit:focus-visible {
  outline: 2px solid #000000;
  outline-offset: 2px;
}

.newsletter-feedback {
  font-size: 0.8125rem;
  font-weight: 600;
  text-align: center;
  width: 100%;
}
.newsletter-feedback.is-success {
  color: #2e8b3a;
}
.newsletter-feedback.is-error {
  color: #c62828;
}
.newsletter-feedback[hidden] {
  display: none;
}

/* ── Main info area (3 columns) ──────────────────────────────────── */
.footer-main {
  background: #ebebeb;
  padding: 2rem 0;
}

.footer-main-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 12px;
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}

.site-footer .footer-col-title {
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 0.375rem;
  padding-bottom: 0;
  color: #000000;
}

/* Address column */
.footer-contact-list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.footer-contact-list li {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.9375rem;
  font-weight: 400;
}
.footer-contact-list svg {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  color: #000000;
  transform: scale(1.45);
  transform-origin: center;
}
.footer-contact-list a {
  color: #000000;
  text-decoration: none;
}
.footer-contact-list a:hover, .footer-contact-list a:focus {
  text-decoration: underline;
}

/* Social icons */
.footer-social {
  display: flex;
  gap: 0.5rem;
  margin-top: 1rem;
  padding: 0;
  list-style: none;
}
.footer-social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: #FFFFFF;
  color: #000000;
  border-radius: 4px;
  text-decoration: none;
}
.footer-social a:hover, .footer-social a:focus {
  background: #f0f0f0;
  outline: 2px solid #000000;
  outline-offset: 2px;
}
.footer-social svg {
  width: 18px;
  height: 18px;
}

/* Link column */
.footer-link-list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.footer-link-list a {
  color: #000000;
  text-decoration: none;
  font-size: 0.9375rem;
  font-weight: 400;
}
.footer-link-list a:hover, .footer-link-list a:focus {
  text-decoration: underline;
}

/* Vorteile (benefits) column */
.footer-benefits-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
}
.footer-benefits-list li {
  font-size: 0.9375rem;
  font-weight: 400;
  color: #000000;
}

/* ── Trust + payment bands ───────────────────────────────────────── */
.footer-bands {
  background: #FFFFFF;
  padding: 1.5rem 0;
}

.footer-bands-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 12px;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.footer-band {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.875rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #000000;
}
.footer-band:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.footer-band-title {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #000000;
  align-self: center;
}

/* Trust seals */
.footer-trustmarks {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
}
.footer-trustmarks a,
.footer-trustmarks .trustmark-static {
  display: block;
  line-height: 0;
}
.footer-trustmarks img {
  height: 64px;
  width: auto;
  display: block;
}
.footer-trustmarks a:focus-visible {
  outline: 2px solid #000000;
  outline-offset: 2px;
}

/* Payment icons */
.footer-payments {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
}
.footer-payments li {
  line-height: 0;
}
.footer-payments img {
  height: 22px;
  width: auto;
  display: block;
}

/* ── Legal bar ───────────────────────────────────────────────────── */
.footer-legal {
  background: #FFFFFF;
  padding: 1rem 0;
  border-top: 1px solid #e0e0e0;
}

.footer-legal-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  text-align: center;
  font-size: 0.6875rem;
  font-weight: 400;
  color: #000000;
}

.footer-legal-links {
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0 0.375rem;
}
.footer-legal-links li {
  display: inline-flex;
  align-items: center;
}
.footer-legal-links a {
  color: #000000;
  text-decoration: none;
}
.footer-legal-links a:hover, .footer-legal-links a:focus {
  text-decoration: underline;
}
.footer-legal-links li:last-child::before {
  content: "|";
  margin-right: 0.375rem;
  color: #000000;
}

.footer-copyright {
  color: #000000;
}

/* Widerrufsbutton — EU 2023/2673: must be visually distinct (color/font size) */
.footer-link-list .menu-widerruf > a {
  font-weight: 700;
  text-decoration: underline;
}

/* ── Tablet (768px+) ─────────────────────────────────────────────── */
@media (min-width: 768px) {
  /* Match #primary's 10px inline padding so footer aligns with content */
  .newsletter-inner,
  .footer-main-inner,
  .footer-bands-inner,
  .footer-legal-inner {
    max-width: 1400px;
    padding: 0 10px;
  }
  .footer-main-inner {
    flex-direction: row;
    justify-content: space-between;
    gap: 2rem;
  }
  .footer-main-inner > * {
    flex: 1 1 0;
    min-width: 0;
  }
  .footer-legal-inner {
    font-size: 0.8125rem;
  }
  .footer-legal-links {
    gap: 0 0.5rem;
  }
  .footer-legal-links li.with-divider::before {
    margin-right: 0.5rem;
  }
}
/* ── Tablet-landscape (900px+) — newsletter becomes a row ────────── */
@media (min-width: 900px) {
  .newsletter-inner {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    text-align: left;
    gap: 1.25rem;
  }
  .newsletter-text {
    flex-direction: row;
    align-items: baseline;
    gap: 0.5rem;
  }
  .newsletter-subtitle {
    font-style: normal;
    font-weight: 400;
  }
  .newsletter-form {
    max-width: 380px;
    flex: 0 1 auto;
  }
}
/* ── Desktop (1024px+) ───────────────────────────────────────────── */
@media (min-width: 1024px) {
  .newsletter-inner {
    gap: 1.5rem;
  }
  /* Align with content inside #primary (which has 10px inline padding).
     The footer sits outside #primary, so we subtract 20px to match. */
  .newsletter-inner,
  .footer-main-inner,
  .footer-bands-inner,
  .footer-legal-inner {
    max-width: calc(1400px - 20px);
    padding: 0 12px;
  }
  .footer-main {
    padding: 3rem 0;
  }
  .footer-main-inner {
    gap: 3rem;
  }
  .footer-bands-inner {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem 1.5rem;
    align-items: center;
  }
  .footer-band {
    display: contents;
  }
  .footer-band-title {
    white-space: nowrap;
  }
  .footer-trustmarks,
  .footer-payments {
    justify-content: flex-start;
  }
  .footer-trustmarks img {
    height: 70px;
  }
  .footer-payments img {
    height: 24px;
  }
  .footer-legal-inner {
    flex-direction: row;
    justify-content: space-between;
    text-align: left;
    gap: 1rem;
  }
  .footer-legal-links {
    justify-content: flex-start;
  }
}
/* ── Wide (1200px+) — bands side by side ─────────────────────────── */
@media (min-width: 1200px) {
  .footer-bands-inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .footer-band {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1rem;
    padding-bottom: 0;
    border-bottom: none;
  }
}