/* =========================================================================
   WMAV KAPP – WooCommerce (Raster, Karten, Single, Preistabelle, Mini-Cart)
   ========================================================================= */

.wmav-shop, .wmav-archive, .wmav-single, .wmav-page { padding-block: var(--wmav-space-6); }

.wmav-section-title { font-size: var(--wmav-fs-700); text-align: center; margin: var(--wmav-space-7) 0 var(--wmav-space-5); color: var(--wmav-green-dark); }

/* --- Filter-Chips --------------------------------------------------------- */
.wmav-chips { display: flex; flex-wrap: wrap; gap: var(--wmav-space-2); margin-bottom: var(--wmav-space-6); }
.wmav-chip {
  display: inline-flex; align-items: center; white-space: nowrap;
  min-height: 40px; padding: 0 var(--wmav-space-4);
  background: var(--wmav-bg); color: var(--wmav-ink);
  border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius-pill);
  font-size: var(--wmav-fs-300); font-weight: var(--wmav-weight-medium); text-decoration: none;
  transition: background var(--wmav-transition), border-color var(--wmav-transition), color var(--wmav-transition);
}
.wmav-chip:hover { background: var(--wmav-green-soft); border-color: var(--wmav-green); color: var(--wmav-green-dark); }
.wmav-chip.is-active { background: var(--wmav-green-dark); color: #fff; border-color: var(--wmav-green-dark); }
.wmav-chip.is-active:hover { background: var(--wmav-green); border-color: var(--wmav-green); color: #fff; }
/* Mobil: eine saubere, horizontal scrollbare Reihe statt 2-zeiligem Umbruch */
@media (max-width: 600px) {
  .wmav-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: var(--wmav-space-2); }
  .wmav-chips::-webkit-scrollbar { display: none; }
  .wmav-chip { flex: 0 0 auto; }
}

/* --- Produktraster -------------------------------------------------------- */
.wmav-product-grid,
.woocommerce .wmav-product-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid !important; gap: var(--wmav-space-5);
  grid-template-columns: repeat(4, 1fr);
}
.wmav-product-grid::before, .wmav-product-grid::after { content: none !important; } /* WC clearfix abschalten */

/* WooCommerce setzt li.product auf width:22% + float – das zerschießt das Grid.
   Innerhalb unseres Rasters hart zurücksetzen. */
.wmav-product-grid li.product,
.woocommerce .wmav-product-grid li.product {
  width: auto !important;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
}

/* --- Produktkarte (Stretched-Link) --------------------------------------- */
.wmav-product-grid { align-items: stretch; } /* gleiche Höhe pro Reihe */
.wmav-card {
  position: relative;
  display: flex; flex-direction: column;
  height: 100%;                 /* Karte füllt die Rasterzelle → alle gleich hoch */
  background: #fff;
  border: 1px solid var(--wmav-border);
  border-radius: var(--wmav-radius-lg);
  overflow: hidden;
  box-shadow: var(--wmav-shadow);
  transition: box-shadow var(--wmav-transition), transform var(--wmav-transition);
}
.wmav-card:hover { box-shadow: var(--wmav-shadow-lg); transform: translateY(-2px); }
.wmav-card__link { position: absolute; inset: 0; z-index: 2; text-indent: -9999px; overflow: hidden; }
/* Feste Bildfläche → alle Medien gleich hoch, Bild zentriert */
.wmav-card__media {
  height: 200px; flex: 0 0 auto;
  display: flex; align-items: center; justify-content: center;
  padding: var(--wmav-space-5);
}
.wmav-card__media img { max-height: 160px; max-width: 100%; width: auto; object-fit: contain; mix-blend-mode: multiply; }
/* Body wächst, damit der Button immer unten sitzt (über alle Karten ausgerichtet) */
.wmav-card__body {
  display: flex; flex-direction: column; gap: var(--wmav-space-3);
  padding: 0 var(--wmav-space-5) var(--wmav-space-5);
  flex: 1 1 auto;
}
.wmav-card__title {
  /* !important: Elementor injiziert globale h3-Typografie und würde sonst die
     Kachelgröße überschreiben → Titel zu groß, „Akku-" verwaist in Zeile 1. */
  font-size: var(--wmav-fs-500) !important; line-height: 1.3 !important;
  font-weight: var(--wmav-weight-bold); margin: 0; color: var(--wmav-ink);
  display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; min-height: 2.6em; /* 2 Zeilen reservieren → Preise/Buttons fluchten */
  overflow-wrap: break-word; hyphens: manual;
}
.wmav-card__price { color: var(--wmav-green-dark); font-weight: var(--wmav-weight-bold); }
.wmav-card__price .amount { color: var(--wmav-green-dark); }
.wmav-card__action { margin-top: auto; position: relative; z-index: 1; }
/* Der Karten-Link liegt über dem Button – Klick landet immer auf dem Link. */

/* --- Pagination ----------------------------------------------------------- */
.wmav-archive .page-numbers,
.woocommerce-pagination .page-numbers {
  list-style: none; display: flex; flex-wrap: wrap; gap: var(--wmav-space-2);
  justify-content: center; margin: var(--wmav-space-6) 0 0; padding: 0;
}
.page-numbers li a, .page-numbers li span, .woocommerce-pagination a.page-numbers, .woocommerce-pagination span.page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: var(--wmav-tap); min-height: var(--wmav-tap); padding: 0 var(--wmav-space-3);
  border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius);
  color: var(--wmav-ink); text-decoration: none;
}
.page-numbers li .current, .page-numbers li a:hover { background: var(--wmav-green-dark); color: #fff; border-color: var(--wmav-green-dark); }

/* --- Single Product ------------------------------------------------------- */
.wmav-single__grid {
  display: grid; gap: var(--wmav-space-7);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  align-items: start;
}
/* WooCommerce-Produktgalerie sauber ins Layout einpassen */
.wmav-single__gallery .woocommerce-product-gallery {
  width: 100% !important; margin: 0; position: relative;
}
.wmav-single__gallery .woocommerce-product-gallery__wrapper { margin: 0; }
/* Rahmen sitzt auf dem stabilen Container (FlexSlider-Viewport bzw. Wrapper als
   Fallback ohne JS) – NICHT auf der einzelnen Slide, sonst schneidet das
   overflow:hidden des Viewports den linken/rechten Rand ab. */
.wmav-single__gallery .flex-viewport,
.wmav-single__gallery .woocommerce-product-gallery__wrapper {
  border: 1px solid var(--wmav-border);
  border-radius: var(--wmav-radius-lg);
  overflow: hidden;
  background: #fff;
}
/* Ist FlexSlider aktiv, trägt .flex-viewport den Rahmen → innerer Wrapper ohne. */
.wmav-single__gallery .flex-viewport .woocommerce-product-gallery__wrapper {
  border: 0; border-radius: 0; background: none;
}
.wmav-single__gallery .woocommerce-product-gallery__image { border: 0; border-radius: 0; background: none; }
.wmav-single__gallery .woocommerce-product-gallery__image a { display: block; }
.wmav-single__gallery .woocommerce-product-gallery__image img,
.wmav-single__gallery img {
  width: 100%; height: auto; display: block; border-radius: 0;
  aspect-ratio: 4 / 3; object-fit: contain; padding: var(--wmav-space-5);
  background: #fff;
}
/* Zoom-Lupe als runder Token-Button oben rechts */
.wmav-single__gallery .woocommerce-product-gallery__trigger {
  position: absolute; top: var(--wmav-space-4); right: var(--wmav-space-4); z-index: 5;
  width: 40px; height: 40px; display: flex; align-items: center; justify-content: center;
  background: #fff; border: 1px solid var(--wmav-border); border-radius: 50%;
  box-shadow: var(--wmav-shadow); text-indent: 0; font-size: 0;
}
.wmav-single__gallery .woocommerce-product-gallery__trigger::before {
  content: ""; width: 16px; height: 16px; border: 2px solid var(--wmav-green-dark); border-radius: 50%;
  position: static; background: none;
}
.wmav-single__gallery .woocommerce-product-gallery__trigger::after {
  content: ""; position: absolute; width: 8px; height: 2px; background: var(--wmav-green-dark);
  transform: rotate(45deg); bottom: 9px; right: 7px; border-radius: 2px;
}
/* Thumbnails */
.wmav-single__gallery .flex-control-thumbs { display: flex; gap: var(--wmav-space-2); list-style: none; padding: var(--wmav-space-3) 0 0; margin: 0; }
.wmav-single__gallery .flex-control-thumbs li { width: 72px; }
.wmav-single__gallery .flex-control-thumbs img { border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius); padding: 4px; aspect-ratio: 1; cursor: pointer; }
.wmav-single__desc { font-size: var(--wmav-fs-500); color: var(--wmav-muted); margin-bottom: var(--wmav-space-5); }

/* --- Preistabelle --------------------------------------------------------- */
.wmav-price-table {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: var(--wmav-space-4);
  background: var(--wmav-bg-soft);
  border: 1px solid var(--wmav-border);
  border-radius: var(--wmav-radius-lg);
  padding: var(--wmav-space-5);
  margin-bottom: var(--wmav-space-5);
}
.wmav-price-table__item { display: flex; flex-direction: column; gap: var(--wmav-space-1); }
.wmav-price-table__label { font-weight: var(--wmav-weight-bold); color: var(--wmav-ink); display: inline-flex; align-items: center; gap: 4px; }
.wmav-price-table__value { font-size: var(--wmav-fs-600); font-weight: var(--wmav-weight-black); color: var(--wmav-green); }
/* Info-Icon mit echtem Tooltip (Hover + Tastatur-Fokus) */
.wmav-info {
  display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px; margin-left: 5px; padding: 0;
  color: var(--wmav-muted);
  background: none !important;   /* Elementor stylt sonst generische Elemente grün */
  border: none !important; box-shadow: none !important;
  cursor: help; position: relative; vertical-align: -2px;
}
.wmav-info svg { width: 16px; height: 16px; display: block; fill: none; }
.wmav-info:hover, .wmav-info:focus-visible { color: var(--wmav-green-dark); outline: none; }
/* Tooltip darf nicht von Eltern abgeschnitten werden */
.wmav-price-table, .wmav-price-table__item, .wmav-price-table__label { overflow: visible; }
.wmav-info::after {
  content: attr(data-tip);
  position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%);
  width: max-content; max-width: 220px;
  background: var(--wmav-ink); color: #fff;
  padding: 8px 10px; border-radius: var(--wmav-radius);
  font-size: 12px; font-weight: var(--wmav-weight-normal); font-style: normal;
  line-height: 1.4; text-align: left; white-space: normal;
  opacity: 0; visibility: hidden; transition: opacity .15s ease;
  z-index: 20; pointer-events: none; box-shadow: var(--wmav-shadow-lg);
}
.wmav-info::before {
  content: ""; position: absolute; bottom: calc(100% + 2px); left: 50%; transform: translateX(-50%);
  border: 6px solid transparent; border-top-color: var(--wmav-ink);
  opacity: 0; visibility: hidden; transition: opacity .15s ease; z-index: 20;
}
.wmav-info:hover::after, .wmav-info:focus-visible::after,
.wmav-info:hover::before, .wmav-info:focus-visible::before { opacity: 1; visibility: visible; }

/* --- Buybox (Zusatzprodukt) ---------------------------------------------- */
.wmav-buybox {
  background: var(--wmav-bg-soft);
  border: 1px solid var(--wmav-border);
  border-radius: var(--wmav-radius-lg);
  padding: var(--wmav-space-5);
}
.wmav-buybox__price { font-size: var(--wmav-fs-700); font-weight: var(--wmav-weight-black); color: var(--wmav-ink); margin-bottom: var(--wmav-space-4); }
.wmav-buybox form.cart { display: flex; align-items: center; gap: var(--wmav-space-3); flex-wrap: wrap; }
.wmav-buybox .quantity input.qty {
  width: 72px; min-height: var(--wmav-tap); padding: 0 var(--wmav-space-2);
  text-align: center; border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius);
}
.wmav-buybox button.single_add_to_cart_button {
  min-height: var(--wmav-tap); padding: 0.65em 1.6em;
  background: var(--wmav-green-dark); color: #fff;
  border: none; border-radius: var(--wmav-radius);
  font-weight: var(--wmav-weight-bold); cursor: pointer;
  transition: background var(--wmav-transition);
}
.wmav-buybox button.single_add_to_cart_button:hover { background: var(--wmav-green); }

/* --- Mini-Cart Inhalt ----------------------------------------------------- */
.wmav-minicart .woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; }
.wmav-minicart .woocommerce-mini-cart__empty-message { color: var(--wmav-muted); }
.wmav-minicart .mini_cart_item { display: flex; gap: var(--wmav-space-3); padding: var(--wmav-space-3) 0; border-bottom: 1px solid var(--wmav-border); position: relative; }
.wmav-minicart .mini_cart_item img { width: 56px; height: auto; border-radius: var(--wmav-radius); }
.wmav-minicart .woocommerce-mini-cart__total { display: flex; justify-content: space-between; font-weight: var(--wmav-weight-bold); padding-top: var(--wmav-space-3); }

/* --- WooCommerce-Notices token-konform ----------------------------------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  /* Einheitlich dünner Rahmen rundum (kein dicker Akzent-Balken links). */
  border: 1px solid var(--wmav-green);
  border-radius: var(--wmav-radius);
  background: var(--wmav-green-soft); padding: var(--wmav-space-3) var(--wmav-space-4); list-style: none;
  color: var(--wmav-ink);
}
.woocommerce-error {
  border-color: var(--wmav-danger);
  background: var(--wmav-danger-soft);
}
/* WC-Default-Icon-Glyphen entfernen (Icon-Font wird DSGVO-konform nicht geladen
   → würde sonst als blaue Tofu-Box links/rechts erscheinen). */
.woocommerce-info::before, .woocommerce-info::after,
.woocommerce-error::before, .woocommerce-error::after { content: none !important; display: none !important; }
/* Toggle-Links („Klicke hier …", „Gutschein") im Designsystem-Grün – dezent
   (medium statt fett), Unterstrich nur beim Hover. */
.woocommerce-info a, .woocommerce-error a {
  color: var(--wmav-green-dark) !important; font-weight: var(--wmav-weight-medium); text-decoration: none;
}
.woocommerce-info a:hover, .woocommerce-error a:hover { color: var(--wmav-green) !important; text-decoration: underline; }

/* Erfolgsmeldung (z. B. „… in den Warenkorb") als Toast unten rechts.
   Info-/Fehlermeldungen bleiben inline (am Formular). */
.woocommerce-message {
  position: fixed; bottom: 24px; right: 24px; z-index: 320;
  margin: 0; width: max-content; max-width: min(420px, calc(100vw - 32px));
  display: flex; align-items: center; gap: var(--wmav-space-3);
  background: #fff; color: var(--wmav-ink);
  border: 1px solid var(--wmav-green);
  border-radius: var(--wmav-radius-lg); box-shadow: var(--wmav-shadow-lg);
  padding: var(--wmav-space-4) var(--wmav-space-5);
  font-size: var(--wmav-fs-400);
  animation: wmav-toast-in .3s ease;
  transition: opacity .3s ease, transform .3s ease;
}
.woocommerce-message::before { content: none; } /* WC-Default-Häkchen aus */
.woocommerce-message .button { margin-left: var(--wmav-space-3); flex: 0 0 auto; min-height: 40px; padding: 0.5em 1.1em; }
.woocommerce-message.is-leaving { opacity: 0; transform: translateY(20px); }
@keyframes wmav-toast-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@media (max-width: 560px) {
  .woocommerce-message { left: 16px; right: 16px; bottom: 16px; width: auto; max-width: none; }
}

.wmav-empty { color: var(--wmav-muted); padding: var(--wmav-space-6) 0; text-align: center; }

/* Doppel-Titel auf WC-Seiten vermeiden: das Elementor-H1 „Warenkorb/Kasse"
   ausblenden – der konsistente Theme-Banner bleibt. (Nur H1-Ebene, andere
   Elementor-Headings im Seiteninhalt bleiben unberührt.) */
.woocommerce-cart h1.elementor-heading-title,
.woocommerce-checkout h1.elementor-heading-title { display: none; }

/* --- Archiv-Kopf: Breadcrumb, Ergebniszahl, Sortierung ------------------- */
.woocommerce-breadcrumb { color: var(--wmav-muted); font-size: var(--wmav-fs-300); margin-bottom: var(--wmav-space-3); }
.woocommerce-breadcrumb a { color: var(--wmav-muted); }
.woocommerce-breadcrumb a:hover { color: var(--wmav-green-dark); }
.woocommerce-result-count { color: var(--wmav-muted); margin: 0; }
.woocommerce-ordering select,
.woocommerce .woocommerce-ordering select {
  min-height: var(--wmav-tap);
  padding: 0 2.4em 0 var(--wmav-space-3);
  border: 1px solid var(--wmav-border);
  border-radius: var(--wmav-radius);
  background: #fff;
  font-family: var(--wmav-font); font-size: var(--wmav-fs-400); color: var(--wmav-ink);
  cursor: pointer;
}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 1024px) {
  .wmav-product-grid { grid-template-columns: repeat(3, 1fr); }
  .wmav-single__grid { grid-template-columns: 1fr; gap: var(--wmav-space-6); }
}
@media (max-width: 700px) {
  .wmav-product-grid { grid-template-columns: repeat(2, 1fr); gap: var(--wmav-space-4); }
  .wmav-card__media img { max-height: 140px; }
}
@media (max-width: 420px) {
  .wmav-product-grid { grid-template-columns: 1fr; }
}

/* =========================================================================
   WOOCOMMERCE – Warenkorb, Kasse, Danke-Seite, Mini-Cart (Design-System)
   Alles token-basiert; ersetzt das neutrale Woo-Default-Aussehen.
   ========================================================================= */

/* --- Buttons: alle Woo-Buttons auf Token-Stil ---------------------------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce #place_order,
.woocommerce button.button.alt,
.woocommerce a.button.alt {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: var(--wmav-tap);
  padding: 0.7em 1.6em;
  /* !important über alle Zustände: verhindert das Durchblitzen der
     WooCommerce-Default-Lila (#a46497) bei Klick/Focus/Loading. */
  background: var(--wmav-green-dark) !important;
  color: #fff !important;
  border: 1px solid transparent;
  border-radius: var(--wmav-radius);
  font-family: var(--wmav-font);
  font-weight: var(--wmav-weight-bold);
  font-size: var(--wmav-fs-400);
  line-height: 1.1;
  text-transform: none;
  cursor: pointer;
  transition: background var(--wmav-transition), box-shadow var(--wmav-transition), transform var(--wmav-transition);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #place_order:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button:focus,
.woocommerce button.button:focus,
.woocommerce input.button:focus,
.woocommerce #place_order:focus,
.woocommerce button.button.alt:focus,
.woocommerce a.button.loading,
.woocommerce button.button.loading {
  background: var(--wmav-green) !important; color: #fff !important;
  transform: translateY(-1px); box-shadow: var(--wmav-shadow-lg);
  outline: none;
}
/* Deaktivierte Buttons (z. B. „Warenkorb aktualisieren" bis Änderung): echter
   Disabled-Look statt blasses Geistergrün. */
.woocommerce button.button:disabled,
.woocommerce button.button[disabled],
.woocommerce button.button:disabled[disabled],
.woocommerce input.button:disabled,
.woocommerce input.button[disabled] {
  background: var(--wmav-bg-soft) !important;
  color: var(--wmav-muted) !important;
  border: 1px solid var(--wmav-border) !important;
  box-shadow: none !important; transform: none !important;
  cursor: not-allowed; opacity: 1;
}
.woocommerce a.button:active,
.woocommerce button.button:active,
.woocommerce input.button:active,
.woocommerce #place_order:active { transform: translateY(0); box-shadow: var(--wmav-shadow); }
/* Sekundär-Buttons (z. B. „Zurück zum Shop") bekommen denselben Lift, aber invertiert */
.woocommerce .button.wc-backward:hover,
.woocommerce a.button.wc-forward.wp-element-button.button--secondary:hover {
  background: var(--wmav-green-soft); color: var(--wmav-green-dark);
  transform: translateY(-1px); box-shadow: var(--wmav-shadow);
}
.woocommerce .button.wc-backward,        /* „Zurück zum Shop" o.ä. */
.woocommerce a.button.wc-forward.wp-element-button.button--secondary { background: #fff; color: var(--wmav-green-dark); border-color: var(--wmav-green-dark); }

/* --- Formularfelder global ------------------------------------------------ */
.woocommerce form .form-row label,
.woocommerce-checkout label,
.woocommerce-cart label { font-weight: var(--wmav-weight-medium); color: var(--wmav-ink); }

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce #order_comments,
.woocommerce .quantity input.qty,
.woocommerce table.cart input.qty,
.select2-container--default .select2-selection--single {
  min-height: var(--wmav-tap);
  padding: 0.4em var(--wmav-space-3);
  border: 1px solid var(--wmav-border);
  border-radius: var(--wmav-radius);
  font-family: var(--wmav-font);
  font-size: var(--wmav-fs-400);
  background: #fff;
  color: var(--wmav-ink);
  box-sizing: border-box;
}
.select2-container--default .select2-selection--single { display: flex; align-items: center; }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--wmav-green-dark);
  box-shadow: 0 0 0 3px var(--wmav-green-soft);
  outline: none;
}

/* --- Tabellen (Warenkorb / Bestellung) ----------------------------------- */
.woocommerce table.shop_table {
  border: 1px solid var(--wmav-border);
  border-radius: var(--wmav-radius-lg);
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  background: #fff;
}
.woocommerce table.shop_table thead th {
  background: var(--wmav-bg-soft);
  color: var(--wmav-ink);
  font-weight: var(--wmav-weight-bold);
  padding: var(--wmav-space-4);
  border-bottom: 1px solid var(--wmav-border);
}
.woocommerce table.shop_table td,
.woocommerce table.shop_table th { padding: var(--wmav-space-4); }
.woocommerce table.shop_table tbody tr + tr td { border-top: 1px solid var(--wmav-border); }
.woocommerce table.cart img { width: 64px; height: auto; border-radius: var(--wmav-radius); }
.woocommerce a.remove {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; line-height: 1;
  border-radius: 50%;
  color: var(--wmav-danger) !important;
  border: 1px solid var(--wmav-border);
  background: #fff !important;
  font-size: 18px;
  transition: background var(--wmav-transition), color var(--wmav-transition);
}
.woocommerce a.remove:hover { background: var(--wmav-danger) !important; color: #fff !important; border-color: var(--wmav-danger); }
.woocommerce .product-name a { color: var(--wmav-ink); font-weight: var(--wmav-weight-medium); }
.woocommerce .product-name a:hover { color: var(--wmav-green-dark); }
.woocommerce .amount { color: var(--wmav-ink); }

/* --- Warenkorb-Seite ------------------------------------------------------ */
.woocommerce-cart .cart-collaterals .cart_totals {
  background: var(--wmav-bg-soft);
  border: 1px solid var(--wmav-border);
  border-radius: var(--wmav-radius-lg);
  padding: var(--wmav-space-5);
  margin-left: auto;
  max-width: 460px;
}
.woocommerce-cart .cart_totals h2 { font-size: var(--wmav-fs-600); margin-top: 0; }
.woocommerce-cart .cart_totals table.shop_table { border: none; }
.woocommerce-cart .cart_totals .order-total .amount { color: var(--wmav-green-dark); font-size: var(--wmav-fs-500); }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { width: 100%; font-size: var(--wmav-fs-500); }
.woocommerce-cart .coupon { display: flex; gap: var(--wmav-space-2); flex-wrap: wrap; }
.woocommerce-cart .actions .button { white-space: nowrap; }

/* --- Kasse ---------------------------------------------------------------- */
.woocommerce-checkout #customer_details { margin-bottom: var(--wmav-space-5); }
.woocommerce-checkout h3 { font-size: var(--wmav-fs-600); color: var(--wmav-ink); }
.woocommerce-checkout #order_review_heading { font-size: var(--wmav-fs-600); margin-top: 0; }
.woocommerce-checkout #order_review {
  background: var(--wmav-bg-soft);
  border: 1px solid var(--wmav-border);
  border-radius: var(--wmav-radius-lg);
  padding: var(--wmav-space-6); /* gleicher Innenabstand wie die Warenkorb-Summen-Karte */
}
.woocommerce-checkout #order_review table.shop_table { border: none; background: transparent; }
.woocommerce-checkout #order_review .order-total .amount { color: var(--wmav-green-dark); font-size: var(--wmav-fs-500); }
.woocommerce-checkout #payment {
  background: #fff !important;
  border: 1px solid var(--wmav-border);
  border-radius: var(--wmav-radius);
  margin-top: var(--wmav-space-4);
}
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--wmav-border); padding: var(--wmav-space-4); }
.woocommerce-checkout #payment div.payment_box { background: var(--wmav-bg-soft); border-radius: var(--wmav-radius); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--wmav-bg-soft); }
.woocommerce-checkout #payment .place-order { padding: var(--wmav-space-4); }
.woocommerce-checkout #place_order { width: 100%; font-size: var(--wmav-fs-500); }

/* --- Danke-/Bestellbestätigungsseite ------------------------------------- */
.woocommerce-order .woocommerce-notice--success,
.woocommerce-order .woocommerce-thankyou-order-received {
  background: var(--wmav-green-soft);
  border: 1px solid var(--wmav-green);
  border-radius: var(--wmav-radius-lg);
  padding: var(--wmav-space-5);
  font-size: var(--wmav-fs-500);
  font-weight: var(--wmav-weight-bold);
  color: var(--wmav-green-dark);
}
.woocommerce-order .woocommerce-order-overview {
  list-style: none; margin: var(--wmav-space-5) 0; padding: 0;
  display: grid; gap: var(--wmav-space-3);
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  border: none;
}
.woocommerce-order .woocommerce-order-overview li {
  background: #fff;
  border: 1px solid var(--wmav-border);
  border-radius: var(--wmav-radius);
  padding: var(--wmav-space-4);
  border-left: none;
  text-transform: none;
  color: var(--wmav-muted);
  font-weight: var(--wmav-weight-medium);
}
.woocommerce-order .woocommerce-order-overview li strong {
  display: block; margin-top: var(--wmav-space-1);
  color: var(--wmav-ink); font-size: var(--wmav-fs-500);
}
.woocommerce-order h2 { font-size: var(--wmav-fs-600); margin-top: var(--wmav-space-6); }

/* --- Mini-Cart Slide-in (verfeinert) ------------------------------------- */
.wmav-minicart .woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; }
.wmav-minicart .woocommerce-mini-cart__empty-message { color: var(--wmav-muted); padding: var(--wmav-space-5) 0; text-align: center; }
/* Robustes Flex-Layout passend zum echten WC-DOM:
   <li> → a.remove · a(img + Name) · span.quantity */
.wmav-minicart .mini_cart_item {
  position: relative;
  display: flex !important; align-items: center; gap: var(--wmav-space-3);
  padding: var(--wmav-space-3) 26px var(--wmav-space-3) 0;
  border-bottom: 1px solid var(--wmav-border);
  float: none !important;
}
.wmav-minicart .mini_cart_item > a:not(.remove) {
  display: flex !important; align-items: center; gap: var(--wmav-space-3);
  flex: 1 1 auto; min-width: 0;
  color: var(--wmav-ink); font-weight: var(--wmav-weight-medium); line-height: 1.3;
}
.wmav-minicart .mini_cart_item img {
  width: 48px !important; height: 48px !important; flex: 0 0 auto;
  object-fit: contain; background: #fff;
  border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius);
  padding: 2px; margin: 0 !important; float: none !important;
}
.wmav-minicart .mini_cart_item .quantity { flex: 0 0 auto; color: var(--wmav-muted); font-size: var(--wmav-fs-300); white-space: nowrap; }
.wmav-minicart .mini_cart_item a.remove {
  position: absolute !important; top: 50% !important; right: 0 !important; left: auto !important;
  transform: translateY(-50%);
  width: 22px !important; height: 22px !important; min-width: 22px;
  display: inline-flex !important; align-items: center; justify-content: center;
  font-size: 14px; line-height: 1;
  border: 1px solid var(--wmav-border) !important; border-radius: 50% !important;
  background: #fff !important; color: var(--wmav-danger) !important;
  margin: 0 !important;
}
.wmav-minicart .mini_cart_item a.remove:hover { background: var(--wmav-danger) !important; color: #fff !important; border-color: var(--wmav-danger) !important; }
.wmav-minicart .woocommerce-mini-cart__total {
  display: flex; justify-content: space-between; align-items: center;
  padding: var(--wmav-space-4) 0; margin-top: var(--wmav-space-2);
  border-top: 2px solid var(--wmav-border);
  font-size: var(--wmav-fs-500); font-weight: var(--wmav-weight-bold);
}
.wmav-minicart .woocommerce-mini-cart__total .amount { color: var(--wmav-green-dark); }
.wmav-minicart .woocommerce-mini-cart__buttons { display: flex; flex-direction: column; gap: var(--wmav-space-2); margin: 0; padding: 0; }
.wmav-minicart .woocommerce-mini-cart__buttons a {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: var(--wmav-tap); padding: 0.6em 1.2em;
  border-radius: var(--wmav-radius); font-weight: var(--wmav-weight-bold);
}
.wmav-minicart .woocommerce-mini-cart__buttons a:not(.checkout) { background: #fff; border: 1px solid var(--wmav-green-dark); color: var(--wmav-green-dark); }
.wmav-minicart .woocommerce-mini-cart__buttons a.checkout { background: var(--wmav-green-dark); color: #fff; }

/* === Mini-Cart NEU (eigenes Template woocommerce/cart/mini-cart.php) ===== */
.wmav-mc-list { list-style: none; margin: 0; padding: 0; }
.wmav-mc-item {
  position: relative;
  display: flex; align-items: flex-start; gap: var(--wmav-space-3);
  padding: var(--wmav-space-4) 28px var(--wmav-space-4) 0;
  border-bottom: 1px solid var(--wmav-border);
}
.wmav-mc-item__media { flex: 0 0 auto; }
.wmav-mc-item__media img {
  width: 52px; height: 52px; display: block;
  object-fit: contain; background: #fff;
  border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius); padding: 3px;
}
.wmav-mc-item__info { display: flex; flex-direction: column; gap: var(--wmav-space-1); min-width: 0; flex: 1 1 auto; }
/* Buchungszeitraum-Pill bekommt etwas Luft (Mietprodukte); Zusatzprodukte ohne
   Pill bleiben einfach Name + Preis mit gleichem Zeilenabstand. */
.wmav-mc-item__info .wbt-booking-period { margin: var(--wmav-space-2) 0; align-self: flex-start; }
.wmav-mc-item__qty { margin-top: 2px; }
.wmav-mc-item__name { color: var(--wmav-ink) !important; font-weight: var(--wmav-weight-medium); line-height: 1.3; text-decoration: none !important; }
.wmav-mc-item__name:hover { color: var(--wmav-green-dark) !important; }
.wmav-mc-item__qty { color: var(--wmav-muted); font-size: var(--wmav-fs-300); }
.wmav-mc-item__info dl, .wmav-mc-item__info dl * { margin: 0; color: var(--wmav-muted); font-size: var(--wmav-fs-300); }
.wmav-mc-item__remove {
  position: absolute; top: 50%; right: 0; transform: translateY(-50%);
  width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--wmav-border); border-radius: 50%;
  background: #fff; color: var(--wmav-danger);
  font-size: 14px; line-height: 1; text-decoration: none;
}
.wmav-mc-item__remove:hover { background: var(--wmav-danger); color: #fff; border-color: var(--wmav-danger); }
.wmav-mc-foot { padding-top: var(--wmav-space-4); }
.wmav-mc-total { display: flex; justify-content: space-between; align-items: center; font-weight: var(--wmav-weight-bold); font-size: var(--wmav-fs-500); padding-bottom: var(--wmav-space-4); }
.wmav-mc-total strong { color: var(--wmav-green-dark); }
.wmav-mc-actions { display: flex; flex-direction: column; gap: var(--wmav-space-2); }
.wmav-mc-empty { color: var(--wmav-muted); text-align: center; padding: var(--wmav-space-6) 0; }

/* --- Warenkorb-Zeilen sauber ausrichten ---------------------------------- */
.woocommerce-cart table.cart td { vertical-align: middle; }
.woocommerce-cart table.cart td.product-thumbnail img { width: 72px; height: auto; }
.woocommerce-cart table.cart td.product-name { font-weight: var(--wmav-weight-medium); }
.woocommerce-cart table.cart td.product-name a { color: var(--wmav-ink); }
.woocommerce-cart table.cart td.product-name a:hover { color: var(--wmav-green-dark); }
.woocommerce-cart table.cart td.product-name .wbt-booking-period,
.woocommerce-cart table.cart td.product-name dl.variation,
.woocommerce-cart table.cart td.product-name small {
  display: block; margin-top: 2px;
  color: var(--wmav-muted); font-size: var(--wmav-fs-300); font-weight: var(--wmav-weight-normal);
}
.woocommerce-cart table.cart td.product-remove { width: 44px; text-align: center; }
.woocommerce-cart table.cart td.actions { padding-top: var(--wmav-space-4); }

/* --- „Ähnliche …" Abschnitt: gleiche Karten wie im Archiv ---------------- */
.wmav-related { margin-top: var(--wmav-space-7); padding-top: var(--wmav-space-6); border-top: 1px solid var(--wmav-border); }
.wmav-related .wmav-product-grid { margin-top: var(--wmav-space-2); }

/* =========================================================================
   POLISH-PASS – „geiler" Warenkorb / Kasse (zweispaltig, sticky, premium)
   ========================================================================= */

/* --- Warenkorb: zweispaltiges Layout mit sticky Summen-Karte (Desktop) ---- */
@media (min-width: 769px) {
  .woocommerce-cart main.woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: var(--wmav-space-7);
    align-items: start;
  }
  /* Formular (Tabelle + Aktionen) links, Summen rechts */
  .woocommerce-cart main.woocommerce > form.woocommerce-cart-form { grid-column: 1; min-width: 0; }
  .woocommerce-cart main.woocommerce > .cart-collaterals {
    grid-column: 2; width: 100%;
    position: sticky; top: var(--wmav-space-5);
  }
  /* Volle Breite für alles, was nicht Form oder Summen ist (Notices etc.) */
  .woocommerce-cart main.woocommerce > .woocommerce-notices-wrapper,
  .woocommerce-cart main.woocommerce > .wmav-related { grid-column: 1 / -1; }
  .woocommerce-cart .cart-collaterals .cart_totals { max-width: none; margin-left: 0; width: 100%; }
  .woocommerce-cart .cart-collaterals .cross-sells { margin-bottom: var(--wmav-space-5); }
}

/* --- Summen-Karte aufgewertet -------------------------------------------- */
.woocommerce-cart .cart_totals h2 {
  font-size: var(--wmav-fs-500); text-transform: none;
  padding-bottom: var(--wmav-space-3); margin-bottom: var(--wmav-space-3);
  border-bottom: 1px solid var(--wmav-border);
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td { padding: var(--wmav-space-2) 0; }
.woocommerce-cart .cart_totals .order-total th { font-size: var(--wmav-fs-500); }
.woocommerce-cart .cart_totals .order-total .amount {
  color: var(--wmav-green-dark); font-size: var(--wmav-fs-700); font-weight: var(--wmav-weight-black);
}
.woocommerce-cart .wc-proceed-to-checkout { padding-top: var(--wmav-space-4); }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  width: 100%; font-size: var(--wmav-fs-500); margin-bottom: 0;
}

/* --- Mietzeitraum als Akzent-Meta (Kalender-Icon) – überall identisch ----- */
.woocommerce-cart table.cart td.product-name .wbt-booking-period,
.wmav-mc-item__info .wbt-booking-period,
.woocommerce-checkout #order_review .wbt-booking-period,
.woocommerce-order .wbt-booking-period,
.wbt-booking-period {
  display: flex; align-items: center; gap: 5px;
  width: max-content; max-width: 100%;     /* erzwingt eigene Zeile, schrumpft auf Inhalt */
  margin: var(--wmav-space-2) 0;
  padding: 4px 12px;
  background: var(--wmav-green-soft); color: var(--wmav-green-dark) !important;
  border-radius: var(--wmav-radius-pill);
  font-size: var(--wmav-fs-300); font-weight: var(--wmav-weight-medium); line-height: 1.4;
  white-space: normal;
}
.woocommerce-cart table.cart td.product-name .wbt-booking-period::before,
.wmav-mc-item__info .wbt-booking-period::before,
.woocommerce-checkout #order_review .wbt-booking-period::before,
.woocommerce-order .wbt-booking-period::before,
.wbt-booking-period::before {
  content: ""; flex: 0 0 auto; width: 13px; height: 13px;
  /* schlichtes Kalender-Glyph als Maske (lokal, kein externer Request) */
  background: currentColor;
  -webkit-mask: var(--wmav-cal-icon) center / contain no-repeat;
          mask: var(--wmav-cal-icon) center / contain no-repeat;
}
:root {
  --wmav-cal-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg>');
}

/* --- Kasse: sticky Bestellübersicht (Desktop) ---------------------------- */
@media (min-width: 769px) {
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review { position: sticky; top: var(--wmav-space-5); }
  .woocommerce-checkout #order_review_heading { z-index: 1; }
}
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td { padding: var(--wmav-space-4) 0; font-size: var(--wmav-fs-400); vertical-align: top; }
/* Produktspalte konsequent linksbündig (Header, Name, Menge) */
.woocommerce-checkout #order_review table.shop_table thead th.product-name,
.woocommerce-checkout #order_review table.shop_table td.product-name,
.woocommerce-checkout #order_review .product-quantity { text-align: left; }

/* Danke-Seite: Bestelldetails-Tabelle linksbündig + mehr Zeilenluft */
.woocommerce-order-details table.shop_table th,
.woocommerce-order-details table.shop_table td,
.woocommerce table.shop_table.order_details th,
.woocommerce table.shop_table.order_details td {
  text-align: left; padding: var(--wmav-space-3) var(--wmav-space-4);
}
.woocommerce-order-details table.shop_table td.product-total,
.woocommerce-order-details table.shop_table th.product-total,
.woocommerce-order-details table.shop_table .woocommerce-Price-amount,
.woocommerce table.shop_table.order_details td.product-total,
.woocommerce table.shop_table.order_details .woocommerce-Price-amount { text-align: right; }
.woocommerce-checkout #order_review .order-total .amount {
  color: var(--wmav-green-dark); font-size: var(--wmav-fs-600); font-weight: var(--wmav-weight-black);
}

/* Bestellübersicht-Positionen: festes Tabellen-Layout, damit das Buchungs-
   zeitraum-Pill die Spalte NICHT sprengt (sonst werden die Beträge rechts
   rausgeschoben). Bild klein, Pill bricht in der Zelle um. */
.woocommerce-checkout #order_review table.shop_table { table-layout: fixed; width: 100%; }
.woocommerce-checkout #order_review table.shop_table tbody tr.cart_item {
  border-bottom: 1px solid var(--wmav-border);
}
.woocommerce-checkout #order_review td.product-name {
  color: var(--wmav-ink); font-weight: var(--wmav-weight-medium);
  text-align: left; vertical-align: top;
  /* break-word (NICHT anywhere): bricht nur überlange Wörter um, zerlegt aber
     Produktname/Datum nicht Zeichen für Zeichen in der schmalen Order-Review-Spalte. */
  word-wrap: break-word; overflow-wrap: break-word; word-break: normal;
}
/* Spaltenkopf (Produkt/Zwischensumme): dunkel (ink) wie die Summen-Labels –
   einheitlich, kein Grau. Dezente Großbuchstaben als Spaltenkopf-Konvention. */
.woocommerce-checkout #order_review table.shop_table thead th {
  text-align: left;
  color: var(--wmav-ink); font-size: var(--wmav-fs-300); font-weight: var(--wmav-weight-bold);
  text-transform: uppercase; letter-spacing: 0.04em;
}
/* Produktbild (per Hook in .product-name) klein, links neben dem Namen */
/* Saubere, konsistente Order-Review-Zeile (Germanized verschachtelt Bild + Name +
   Pille + Menge in .wc-gzd-cart-item-name-wrapper). Thumbnail in fester linker
   Spalte (absolut), Name + Buchungs-Pille + Menge stapeln rechts daneben – egal
   ob einfaches oder buchbares Produkt. */
.woocommerce-checkout #order_review .wc-gzd-cart-item-name-wrapper {
  display: block;                /* Germanized setzt hier flex (Zeile) – zurücksetzen */
  position: relative;
  min-height: 52px;
  padding-left: 64px;            /* Platz für das 52px-Bild + Abstand */
}
.woocommerce-checkout #order_review .wc-gzd-cart-item-thumbnail {
  position: absolute; left: 0; top: 0; width: 52px; margin: 0;
}
.woocommerce-checkout #order_review td.product-name img,
.woocommerce-checkout #order_review .wc-gzd-cart-item-thumbnail img {
  width: 52px !important; height: 52px !important; max-width: 52px !important; max-height: 52px !important;
  object-fit: contain; background: #fff;
  border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius); padding: 2px;
  display: block; margin: 0;
}
.woocommerce-checkout #order_review td.product-name { line-height: 1.35; }
/* Buchungs-Pille: kompakte Box (KEIN 999px-Pill-Blob bei Mehrzeiligkeit), eigene
   Zeile, bricht an Wort-/Datumsgrenzen (nicht zeichenweise). */
.woocommerce-checkout #order_review td.product-name .wbt-booking-period {
  display: flex; align-items: flex-start; width: auto; max-width: 100%;
  box-sizing: border-box; margin-top: var(--wmav-space-2);
  border-radius: var(--wmav-radius);
  padding: var(--wmav-space-2) var(--wmav-space-3);
  overflow-wrap: break-word; word-break: normal; white-space: normal;
}
.woocommerce-checkout #order_review td.product-name .wbt-booking-period::before { margin-top: 3px; }
/* Menge IMMER auf eigener Zeile darunter – konsistent für ALLE Positionen */
.woocommerce-checkout #order_review .product-quantity,
.woocommerce-checkout #order_review strong.product-quantity {
  display: block; clear: both; margin-top: var(--wmav-space-1);
  color: var(--wmav-muted); font-weight: var(--wmav-weight-normal);
}
/* Bei buchbaren Positionen erzeugt das Template-&nbsp; zwischen Block-Pille und
   Block-Menge eine Leerzeile (~34px Lücke). Nur DANN die Menge um eine Zeilenhöhe
   hochziehen, damit der Abstand zur Pille so kompakt ist wie bei einfachen Artikeln. */
.woocommerce-checkout #order_review .wc-gzd-cart-item-name-wrapper:has(.wbt-booking-period) .product-quantity {
  margin-top: calc(var(--wmav-space-1) - 1.35em);
}
/* Betragsspalte schmal & sichtbar halten */
.woocommerce-checkout #order_review td.product-total,
.woocommerce-checkout #order_review th.product-name { white-space: nowrap; }
.woocommerce-checkout #order_review td.product-total { width: 96px; font-weight: var(--wmav-weight-bold); }
.woocommerce-checkout #order_review table.shop_table tfoot th { width: auto; }

/* --- Danke-Seite: Bestelldetails ruhiger -------------------------------- */
.woocommerce-order .woocommerce-table--order-details,
.woocommerce-order .woocommerce-customer-details address {
  font-size: var(--wmav-fs-400);
}
.woocommerce-order .woocommerce-customer-details address {
  border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius-lg);
  padding: var(--wmav-space-4); font-style: normal; color: var(--wmav-ink);
}

/* --- Responsive Cart/Checkout -------------------------------------------- */
@media (max-width: 768px) {
  .woocommerce table.shop_table thead { display: none; }
  .woocommerce-cart table.cart td { display: block; text-align: right; border: none; }
  .woocommerce-cart table.cart td::before { content: attr(data-title); float: left; font-weight: var(--wmav-weight-bold); color: var(--wmav-muted); }
  .woocommerce-cart table.cart tbody tr { display: block; border-bottom: 1px solid var(--wmav-border); padding: var(--wmav-space-3) 0; }
  .woocommerce-cart .cart-collaterals .cart_totals { max-width: none; }
  .woocommerce-cart table.cart td.product-thumbnail { text-align: center; }
  .woocommerce-cart table.cart td.product-thumbnail::before { content: ""; }
  /* Mietzeitraum-Pill in der mobilen Zeile links ausrichten */
  .woocommerce-cart table.cart td.product-name { text-align: left; }
}

/* =========================================================================
   POLISH-PASS 2 – Summen-Spacing, Gutschein, Mini-Cart, Zahlarten/PayPal
   ========================================================================= */

/* --- Summen-Tabelle: Label links, Betrag rechts (kein „Zwischensumme11,90€") */
.woocommerce-cart .cart_totals table.shop_table { width: 100%; }
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td { text-align: left; }
.woocommerce-cart .cart_totals table.shop_table td { text-align: right; white-space: nowrap; padding-left: var(--wmav-space-4); }
.woocommerce-checkout #order_review table.shop_table th { text-align: left; }
.woocommerce-checkout #order_review table.shop_table td { text-align: right; }

/* --- Gutschein-Zeile + Update-Button sauber verteilen --------------------- */
.woocommerce-cart table.cart td.actions {
  display: flex; flex-wrap: wrap; gap: var(--wmav-space-3);
  align-items: center; justify-content: space-between;
}
.woocommerce-cart .coupon {
  display: flex; gap: var(--wmav-space-2); flex-wrap: nowrap;
  flex: 1 1 340px; align-items: stretch; margin: 0;
}
.woocommerce-cart .coupon .input-text#coupon_code,
.woocommerce-cart .coupon input.input-text {
  flex: 1 1 auto; min-width: 140px; width: auto;
  min-height: var(--wmav-tap); padding: 0.4em var(--wmav-space-3);
  border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius);
  font-family: var(--wmav-font); font-size: var(--wmav-fs-400);
}
.woocommerce-cart .coupon .input-text#coupon_code:focus {
  border-color: var(--wmav-green-dark); box-shadow: 0 0 0 3px var(--wmav-green-soft); outline: none;
}
.woocommerce-cart .coupon button { flex: 0 0 auto; }
.woocommerce-cart table.cart td.actions > button[name="update_cart"] { flex: 0 0 auto; margin: 0; }
@media (max-width: 560px) {
  .woocommerce-cart .coupon { flex: 1 1 100%; }
  .woocommerce-cart table.cart td.actions > button[name="update_cart"] { width: 100%; }
}

/* --- Mini-Cart: Produktbilder hart begrenzen (container-agnostisch) -------
   Egal ob unser Markup, WC-Default-Widget oder Elementor-Off-Canvas-Cart:
   JEDES Bild in einem Warenkorb-Panel wird auf 52px geklemmt. Im Panel gibt
   es ohnehin nur Produkt-Thumbnails, daher ist der breite Selektor sicher. */
.wmav-minicart img,
#wmav-minicart img,
.widget_shopping_cart_content img,
.woocommerce-mini-cart img,
ul.product_list_widget img,
ul.cart_list img,
.mini_cart_item img,
.wmav-mc-item img,
.elementor-menu-cart__product-image img {
  width: 52px !important; height: 52px !important;
  max-width: 52px !important; max-height: 52px !important;
  min-width: 0 !important;
  object-fit: contain !important; flex: 0 0 auto !important;
  float: none !important; margin: 0 !important;
}
/* Produktname im Mini-Cart immer Ink (nicht Elementor-Grün) */
.wmav-minicart .wmav-mc-item__name,
#wmav-minicart .wmav-mc-item__name,
.widget_shopping_cart_content .wmav-mc-item__name { color: var(--wmav-ink) !important; }
#wmav-minicart .wmav-mc-item__name:hover { color: var(--wmav-green-dark) !important; }

/* --- Kasse: Zahlarten-Box ins Designsystem ------------------------------- */
.woocommerce-checkout #payment ul.payment_methods li {
  list-style: none; padding: var(--wmav-space-3) 0; border-bottom: 1px solid var(--wmav-border);
}
.woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: none; }
.woocommerce-checkout #payment ul.payment_methods li label {
  display: inline-flex; align-items: center; gap: var(--wmav-space-2);
  font-weight: var(--wmav-weight-medium); color: var(--wmav-ink); margin: 0;
}
.woocommerce-checkout #payment input[type="radio"] { accent-color: var(--wmav-green-dark); width: 18px; height: 18px; }
/* PayPal/Gateway-Logos einheitlich klein halten – das eigentliche PayPal-
   Smart-Button-iframe rendert PayPal selbst und ist nicht stylebar. */
.woocommerce-checkout #payment ul.payment_methods li img {
  max-height: 28px; width: auto; margin-left: var(--wmav-space-2); vertical-align: middle;
}
.woocommerce-checkout #payment div.payment_box {
  background: var(--wmav-bg-soft); border-radius: var(--wmav-radius);
  padding: var(--wmav-space-4); margin-top: var(--wmav-space-2);
  font-size: var(--wmav-fs-300); color: var(--wmav-muted);
}
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--wmav-bg-soft) !important; }

/* =========================================================================
   SHOPIFY-LOOK – Warenkorb, Side-Cart, Kasse, Produktseite (Redesign)
   Luftig, ruhige Trennlinien, Mengen-Stepper, Summen-Karte. In Markenfarben.
   ========================================================================= */

/* ---- Mengen-Stepper (Pill mit −/+) – überall wo WC .quantity rendert ----- */
.quantity.wmav-stepper-ready {
  display: inline-flex; align-items: center;
  border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius);
  background: #fff; overflow: hidden; height: 46px;
}
.quantity.wmav-stepper-ready input.qty {
  width: 46px !important; min-width: 46px; height: 44px !important; min-height: 44px !important;
  border: none !important; border-radius: 0 !important; background: transparent !important;
  text-align: center; padding: 0 !important; box-shadow: none !important;
  font-size: var(--wmav-fs-400); font-weight: var(--wmav-weight-bold); color: var(--wmav-ink);
  -moz-appearance: textfield; appearance: textfield;
}
.quantity.wmav-stepper-ready input.qty::-webkit-outer-spin-button,
.quantity.wmav-stepper-ready input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.wmav-qty-btn {
  width: 42px; height: 44px; flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
  border: none; background: transparent; color: var(--wmav-ink);
  font-size: 1.25rem; line-height: 1; cursor: pointer;
  transition: background var(--wmav-transition), color var(--wmav-transition);
}
.wmav-qty-btn:hover { background: var(--wmav-green-soft); color: var(--wmav-green-dark); }
.wmav-qty-btn:active { background: var(--wmav-green); color: #fff; }

/* ---- WARENKORB (Theme-Template cart/cart.php) --------------------------- */
/* alte Tabellen-Grid-Regel neutralisieren – wir layouten jetzt .wmav-cart-page.
   WICHTIG: eigene Klasse (NICHT .wmav-cart), sonst trifft die Grid-Regel auch den
   gleichnamigen Header-Warenkorb-Link und bläht ihn auf zwei Spalten auf. */
.woocommerce-cart main.woocommerce { display: block; }

.wmav-cart-page { display: block; }
@media (min-width: 861px) {
  .wmav-cart-page {
    display: grid; grid-template-columns: minmax(0, 1fr) 360px;
    gap: var(--wmav-space-7); align-items: start;
  }
  .wmav-cart__collaterals { position: sticky; top: var(--wmav-space-5); }
}
.wmav-cart__form { min-width: 0; }
.wmav-cart__items { list-style: none; margin: 0 0 var(--wmav-space-5); padding: 0; }

/* Kopfzeile (Labels) */
.wmav-cart__head {
  display: grid; grid-template-columns: 1fr auto auto; gap: var(--wmav-space-5);
  padding: 0 0 var(--wmav-space-3); margin-bottom: var(--wmav-space-2);
  border-bottom: 1px solid var(--wmav-border);
  font-size: var(--wmav-fs-300); font-weight: var(--wmav-weight-bold);
  text-transform: uppercase; letter-spacing: 0.04em; color: var(--wmav-muted);
}
.wmav-cart__head-qty { text-align: center; }
.wmav-cart__head-total { text-align: right; }

/* Position */
.wmav-cart__item {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) auto auto 28px;
  align-items: center; gap: var(--wmav-space-4);
  padding: var(--wmav-space-5) 0; border-bottom: 1px solid var(--wmav-border);
}
.wmav-cart__media img {
  width: 80px !important; height: 80px !important; object-fit: contain;
  background: #fff; border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius);
  padding: 4px;
}
.wmav-cart__info { display: flex; flex-direction: column; gap: var(--wmav-space-1); min-width: 0; }
.wmav-cart__name {
  font-weight: var(--wmav-weight-bold); color: var(--wmav-ink) !important;
  text-decoration: none !important; line-height: 1.3; font-size: var(--wmav-fs-500);
}
.wmav-cart__name:hover { color: var(--wmav-green-dark) !important; }
.wmav-cart__unit-price { color: var(--wmav-muted); font-size: var(--wmav-fs-300); }
.wmav-cart__qty { justify-self: center; }
.wmav-cart__line-total { justify-self: end; font-weight: var(--wmav-weight-bold); color: var(--wmav-ink); white-space: nowrap; }
.wmav-cart__line-total .amount { color: var(--wmav-ink); }
.wmav-cart__remove { justify-self: end; }
.wmav-cart__remove-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  border: 1px solid var(--wmav-border); background: #fff; color: var(--wmav-muted) !important;
  font-size: 18px; line-height: 1; text-decoration: none !important;
  transition: background var(--wmav-transition), color var(--wmav-transition), border-color var(--wmav-transition);
}
.wmav-cart__remove-btn:hover { background: var(--wmav-danger); color: #fff !important; border-color: var(--wmav-danger); }

/* Gutschein + Update-Leiste */
.wmav-cart__bar {
  display: flex; flex-wrap: wrap; gap: var(--wmav-space-3);
  align-items: center; justify-content: space-between;
  padding-top: var(--wmav-space-5);
}
.wmav-cart__coupon { display: flex; gap: var(--wmav-space-2); flex: 1 1 320px; align-items: stretch; }
.wmav-cart__coupon .input-text {
  flex: 1 1 auto; min-width: 140px; min-height: var(--wmav-tap);
  padding: 0.4em var(--wmav-space-4);
  border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius);
  font-family: var(--wmav-font); font-size: var(--wmav-fs-400);
}
.wmav-cart__coupon .input-text:focus { border-color: var(--wmav-green-dark); box-shadow: 0 0 0 3px var(--wmav-green-soft); outline: none; }
.wmav-cart__coupon .button { flex: 0 0 auto; }
.wmav-cart__update { flex: 0 0 auto; }
/* Auto-Update aktiv (JS): manuellen „Aktualisieren"-Button ausblenden + dezenter
   Lade-Zustand während der Aktualisierung. */
.wmav-cart-autoupdate .wmav-cart__update { display: none; }
.woocommerce-cart-form.is-updating { opacity: 0.5; pointer-events: none; transition: opacity 0.2s ease; }

/* Mobile: Position stapeln */
@media (max-width: 600px) {
  .wmav-cart__head { display: none; }
  .wmav-cart__item {
    grid-template-columns: 72px minmax(0, 1fr) 28px;
    grid-template-areas:
      "media info remove"
      "media qty  total";
    row-gap: var(--wmav-space-3);
  }
  .wmav-cart__media { grid-area: media; align-self: start; }
  .wmav-cart__info { grid-area: info; }
  .wmav-cart__qty { grid-area: qty; justify-self: start; }
  .wmav-cart__line-total { grid-area: total; justify-self: end; align-self: center; }
  .wmav-cart__remove { grid-area: remove; }
  .wmav-cart__bar { flex-direction: column; align-items: stretch; }
  .wmav-cart__update .button { width: 100%; }
}

/* Summen-Karte (Shopify-ruhig) */
.wmav-cart__collaterals .cart_totals,
.woocommerce-cart .cart-collaterals .cart_totals {
  background: var(--wmav-bg-soft); border: 1px solid var(--wmav-border);
  border-radius: var(--wmav-radius-lg); padding: var(--wmav-space-6);
  max-width: none; margin: 0; width: 100%;
}
.wmav-cart__collaterals .cart_totals h2 {
  font-size: var(--wmav-fs-600); margin: 0 0 var(--wmav-space-4);
  padding-bottom: var(--wmav-space-4); border-bottom: 1px solid var(--wmav-border);
  text-transform: none;
}
.wmav-cart__collaterals .cart_totals table.shop_table { width: 100%; border: none; background: transparent; }
.wmav-cart__collaterals .cart_totals table th { text-align: left; font-weight: var(--wmav-weight-medium); color: var(--wmav-muted); padding: var(--wmav-space-2) 0; border: none; }
.wmav-cart__collaterals .cart_totals table td { text-align: right; padding: var(--wmav-space-2) 0; border: none; color: var(--wmav-ink); }
.wmav-cart__collaterals .cart_totals .order-total th { color: var(--wmav-ink); font-size: var(--wmav-fs-500); font-weight: var(--wmav-weight-bold); padding-top: var(--wmav-space-3); }
.wmav-cart__collaterals .cart_totals .order-total td .amount,
.wmav-cart__collaterals .cart_totals .order-total .amount { color: var(--wmav-green-dark); font-size: var(--wmav-fs-700); font-weight: var(--wmav-weight-black); }
.wmav-cart__collaterals .wc-proceed-to-checkout { padding: var(--wmav-space-4) 0 0; }
.wmav-cart__collaterals .wc-proceed-to-checkout a.checkout-button {
  width: 100%; font-size: var(--wmav-fs-500); border-radius: var(--wmav-radius); padding: 0.95em 1.6em;
}
.wmav-cart__collaterals .cart_totals::after {
  content: "inkl. MwSt. · Versand wird an der Kasse berechnet";
  display: block; margin-top: var(--wmav-space-3);
  font-size: var(--wmav-fs-300); color: var(--wmav-muted); text-align: center;
}

/* ---- SIDE-CART (Drawer) Shopify-Feinschliff ----------------------------- */
.wmav-mc-note {
  margin: 0 0 var(--wmav-space-4); padding-top: var(--wmav-space-2);
  font-size: var(--wmav-fs-300); color: var(--wmav-muted); text-align: center;
}
.wmav-mc-actions .wmav-btn { border-radius: var(--wmav-radius); padding: 0.85em 1.4em; }
.wmav-mc-total { font-size: var(--wmav-fs-500); }
.wmav-mc-total strong { font-size: var(--wmav-fs-600); font-weight: var(--wmav-weight-black); }

/* ---- KASSE (Shopify-zweispaltig) ---------------------------------------- */
@media (min-width: 861px) {
  .woocommerce-checkout form.checkout {
    display: grid; grid-template-columns: minmax(0, 1fr) 480px;
    gap: var(--wmav-space-7); align-items: start;
  }
  .woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; margin: 0; }
  .woocommerce-checkout form.checkout #order_review_heading { grid-column: 2; grid-row: 1; }
  .woocommerce-checkout form.checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; top: var(--wmav-space-5); }
}
.woocommerce-checkout form.checkout .col2-set,
.woocommerce-checkout form.checkout .col-1,
.woocommerce-checkout form.checkout .col-2 { width: 100%; float: none; }
.woocommerce-checkout #customer_details .col-1 { margin-bottom: var(--wmav-space-5); }
.woocommerce-checkout h3 { font-size: var(--wmav-fs-600); margin-bottom: var(--wmav-space-4); }
.woocommerce-checkout #order_review_heading { font-size: var(--wmav-fs-600); margin: 0 0 var(--wmav-space-3); }

/* ---- PRODUKT-EINZELSEITE (Shopify-Richtung) ----------------------------- */
@media (min-width: 1025px) {
  .wmav-single__gallery { position: sticky; top: var(--wmav-space-5); }
}
.wmav-single__summary { display: flex; flex-direction: column; gap: var(--wmav-space-5); }
.wmav-single__eyebrow {
  margin: 0; font-size: var(--wmav-fs-300); font-weight: var(--wmav-weight-bold);
  text-transform: uppercase; letter-spacing: 0.05em; color: var(--wmav-green-dark);
}
.wmav-single__desc { font-size: var(--wmav-fs-400); color: var(--wmav-muted); line-height: var(--wmav-lh); margin: 0; }
.wmav-single__summary .wmav-buybox form.cart { margin-top: var(--wmav-space-2); }
.wmav-single__summary .single_add_to_cart_button { border-radius: var(--wmav-radius); padding: 0.95em 2em; }

/* ---- PayPal / Zahlart-Gateways ans Designsystem angleichen --------------
   Ziel: PayPals eigene (größere) Typo überschreiben, damit es zum Rest passt.
   WICHTIG: border-radius der Sub-Komponenten NICHT anfassen – die PayPal-
   Buttons behalten ihre Form (das eigentliche Smart-Button-iframe ist ohnehin
   von außen nicht stylebar). */
.woocommerce-checkout #payment .payment_method_ppcp-gateway,
.woocommerce-checkout #payment .payment_method_paypal,
.woocommerce-checkout #payment div.payment_box,
.woocommerce-checkout #payment div.payment_box * {
  font-family: var(--wmav-font) !important;
  font-size: var(--wmav-fs-300) !important;   /* Texte NICHT größer als Designsystem */
  line-height: 1.5;
}
.woocommerce-checkout #payment div.payment_box,
.woocommerce-checkout #payment div.payment_box p { color: var(--wmav-muted); }
/* Gateway-Label neben dem Radio: normale Textgröße, Ink */
.woocommerce-checkout #payment ul.payment_methods li label {
  font-size: var(--wmav-fs-400) !important; color: var(--wmav-ink);
}
/* PayPal-Logo/Bild neben dem Label dezent halten */
.woocommerce-checkout #payment ul.payment_methods li label img { max-height: 24px; width: auto; }
/* Smart-Button-/PayPal-Wrapper: nur Abstand, KEIN border-radius-Eingriff */
.woocommerce-checkout #payment .ppc-button-wrapper,
.woocommerce-checkout #payment .wc-ppcp-buttons,
.woocommerce-checkout #payment .paypal-buttons { margin-top: var(--wmav-space-3); }

/* ---- AGB-/Widerrufs-Zustimmung kompakt (Shopify-Stil) ------------------- */
/* Hinweis: Dieser Shop nutzt Germanized (woocommerce-gzd-checkout). Die AGB-/
   Widerrufs-Zustimmung steht in <p class="legal checkbox-legal …"> – NICHT in
   .woocommerce-terms-and-conditions-wrapper. Beide Varianten abdecken. */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout p.legal,
.woocommerce-checkout .checkbox-legal {
  /* Abstand über der Checkbox – ohne Trennlinie (nur Whitespace). */
  margin-top: var(--wmav-space-6);
  margin-bottom: var(--wmav-space-4);
}
.woocommerce-checkout .woocommerce-privacy-policy-text p,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper p { font-size: var(--wmav-fs-300); color: var(--wmav-muted); line-height: 1.5; }
/* Label als Block mit Platz links → Checkbox absolut, Text + Pflicht-Stern
   fließen inline (kein Flex-Auseinanderreißen). */
.woocommerce-checkout p.validate-required > label.checkbox,
.woocommerce-checkout .woocommerce-form__label-for-checkbox {
  display: block; position: relative; padding-left: 32px;
  line-height: 1.55; font-size: var(--wmav-fs-400); font-weight: var(--wmav-weight-normal);
  color: var(--wmav-ink); margin: 0;
}
/* Custom Checkbox (Shopify-Stil): leeres Quadrat → grün gefüllt mit weißem
   Haken. Eigene Optik statt nativem accent-color. */
.woocommerce-checkout .woocommerce-form__input-checkbox,
.woocommerce-checkout input.input-checkbox,
.woocommerce-checkout #terms {
  appearance: none; -webkit-appearance: none;
  position: absolute; left: 0; top: 1px;
  width: 20px; height: 20px; margin: 0; padding: 0;
  border: 1.5px solid var(--wmav-border); border-radius: 5px;
  background: #fff; cursor: pointer;
  transition: background var(--wmav-transition), border-color var(--wmav-transition);
}
.woocommerce-checkout .woocommerce-form__input-checkbox:hover,
.woocommerce-checkout input.input-checkbox:hover,
.woocommerce-checkout #terms:hover { border-color: var(--wmav-green-dark); }
.woocommerce-checkout .woocommerce-form__input-checkbox:checked,
.woocommerce-checkout input.input-checkbox:checked,
.woocommerce-checkout #terms:checked {
  background: var(--wmav-green-dark); border-color: var(--wmav-green-dark);
}
.woocommerce-checkout .woocommerce-form__input-checkbox:checked::after,
.woocommerce-checkout input.input-checkbox:checked::after,
.woocommerce-checkout #terms:checked::after {
  content: ""; position: absolute; left: 6px; top: 2px;
  width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.woocommerce-checkout .woocommerce-form__input-checkbox:focus-visible,
.woocommerce-checkout input.input-checkbox:focus-visible,
.woocommerce-checkout #terms:focus-visible {
  outline: none; box-shadow: 0 0 0 3px var(--wmav-green-soft);
}
.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text a { color: var(--wmav-green-dark); font-weight: var(--wmav-weight-medium); }
.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text a:hover { text-decoration: underline; }
/* Pflicht-Stern direkt an den Text hängen statt in eigene Zeile */
.woocommerce-checkout p.validate-required .required {
  color: var(--wmav-danger); text-decoration: none; margin-left: 2px;
}
/* ALLE Pflichtfeld-Sternchen einheitlich auf den Danger-Token. Vorher mischten
   sich WC/Germanized-Rottöne (#aa0000 bei span.required, #cf2e2e bei abbr.required)
   – jetzt überall identisch, ohne gepunkteten abbr-Unterstrich. */
.woocommerce-checkout .required,
.woocommerce-checkout abbr.required {
  color: var(--wmav-danger) !important;
  border-bottom: none;
  text-decoration: none;
}

/* ---- Summen einheitlich (Warenkorb-Karte + Kassen-Übersicht) -----------
   Labels dezent (kein fettes Schwarz), keine Linie zwischen jeder Zeile –
   nur eine Trennlinie über der Gesamtsumme. Token-basierte Größen. */
/* Summen einheitlich: Labels dunkel (ink, kein Grau), gleiche Schriftgröße;
   nur die Gesamtsumme wird hervorgehoben (siehe unten). */
.wmav-cart__collaterals .cart_totals table tr th,
.woocommerce-checkout #order_review table.shop_table tfoot tr th {
  font-weight: var(--wmav-weight-medium); color: var(--wmav-ink);
  font-size: var(--wmav-fs-400);
  text-align: left; border: none; padding: var(--wmav-space-2) 0;
}
.wmav-cart__collaterals .cart_totals table tr td,
.woocommerce-checkout #order_review table.shop_table tfoot tr td {
  text-align: right; color: var(--wmav-ink); border: none;
  font-size: var(--wmav-fs-400);
  padding: var(--wmav-space-2) 0; font-weight: var(--wmav-weight-medium); white-space: nowrap;
}
/* Gesamtsumme abgesetzt: eine Linie darüber, kräftiger */
.wmav-cart__collaterals .cart_totals tr.order-total th,
.wmav-cart__collaterals .cart_totals tr.order-total td,
.woocommerce-checkout #order_review tr.order-total th,
.woocommerce-checkout #order_review tr.order-total td {
  border-top: 1px solid var(--wmav-border) !important;
  padding-top: var(--wmav-space-3); padding-bottom: 0;
}
.wmav-cart__collaterals .cart_totals tr.order-total th,
.woocommerce-checkout #order_review tr.order-total th {
  color: var(--wmav-ink); font-weight: var(--wmav-weight-bold); font-size: var(--wmav-fs-500);
}
.wmav-cart__collaterals .cart_totals tr.order-total td .amount,
.woocommerce-checkout #order_review tr.order-total td .amount {
  color: var(--wmav-green-dark) !important; font-size: var(--wmav-fs-600); font-weight: var(--wmav-weight-black);
}
/* Steuerzeile dezent */
.wmav-cart__collaterals .cart_totals tr.tax-total th,
.wmav-cart__collaterals .cart_totals tr.tax-total td,
.woocommerce-checkout #order_review tr.tax-rate th,
.woocommerce-checkout #order_review tr.tax-rate td,
.woocommerce-checkout #order_review tr.tax-total th,
.woocommerce-checkout #order_review tr.tax-total td {
  font-size: var(--wmav-fs-300); color: var(--wmav-muted); font-weight: var(--wmav-weight-normal);
}

/* =========================================================================
   Buchungsformular (bookable_product)
   Vormals als Inline-<style> in BookingFrontend::render_booking_form() ausgegeben.
   Hierher migriert, tokenisiert und unter .wbt-booking-box gescopet, damit nichts
   site-weit leckt. Die Add-to-Cart-/FC-Nav-Buttons brandet bereits der allgemeine
   .woocommerce .button-Block oben – daher hier bewusst keine globalen Button-Regeln.
   ========================================================================= */
.wbt-booking-box {
  font-family: var(--wmav-font);
  background: var(--wmav-bg-soft);
  border: 1px solid var(--wmav-border);
  border-radius: var(--wmav-radius-lg);
  padding: var(--wmav-space-5);
}
.wbt-booking-box label {
  display: block;
  margin-top: var(--wmav-space-4);
  margin-bottom: var(--wmav-space-1);
  font-weight: var(--wmav-weight-bold);
  color: var(--wmav-ink);
}
.wbt-required { color: var(--wmav-danger); }
.wbt-booking-summary p { margin: var(--wmav-space-1) 0; }
.wbt-add-to-cart { margin-top: var(--wmav-space-5); }

/* --- Kalender (FullCalendar) --- */
#calendar { max-width: 100% !important; margin: var(--wmav-space-5) 0; }
.wbt-booking-box .fc { font-family: var(--wmav-font); }
.wbt-booking-box .fc-allowed-hover    { background-color: var(--wmav-cal-free) !important; cursor: pointer; }
.wbt-booking-box .fc-notallowed-hover { background-color: rgba(207, 46, 46, 0.30) !important; cursor: not-allowed; }
.wbt-booking-box .fc .fc-button-primary {
  background: var(--wmav-green-dark); border-color: var(--wmav-green-dark);
  font-weight: var(--wmav-weight-bold); text-transform: none; box-shadow: none;
}
.wbt-booking-box .fc .fc-button-primary:hover,
.wbt-booking-box .fc .fc-button-primary:focus,
.wbt-booking-box .fc .fc-button-primary:not(:disabled):active,
.wbt-booking-box .fc .fc-button-primary:not(:disabled).fc-button-active {
  background: var(--wmav-green); border-color: var(--wmav-green); box-shadow: none;
}
.wbt-booking-box .fc .fc-button-primary:disabled { background: var(--wmav-muted); border-color: var(--wmav-muted); opacity: .55; }
.wbt-booking-box .fc .fc-toolbar-title { font-size: var(--wmav-fs-600); font-weight: var(--wmav-weight-black); color: var(--wmav-ink); }
.wbt-booking-box .fc-theme-standard td,
.wbt-booking-box .fc-theme-standard th,
.wbt-booking-box .fc-theme-standard .fc-scrollgrid { border-color: var(--wmav-border); }
.wbt-booking-box .fc .fc-col-header-cell-cushion { color: var(--wmav-muted); font-weight: var(--wmav-weight-medium); text-decoration: none; padding: 6px; }
.wbt-booking-box .fc .fc-daygrid-day-number { color: var(--wmav-ink); text-decoration: none; padding: 6px; }
.wbt-booking-box .fc .fc-day-today { background: var(--wmav-green-soft) !important; }
.wbt-booking-box .fc a { color: inherit; }
.wbt-booking-box .fc .fc-daygrid-day-frame { min-height: var(--wmav-tap); } /* Touch-Ziel */

/* Halbtags-/Sperr-Markierungen (Klassen werden von booking.js gesetzt) */
.wbt-booking-box .wbt-halfday-top,
.wbt-booking-box .wbt-halfday-bottom,
.wbt-booking-box .wbt-halfday-blocked-top { position: relative; overflow: hidden; }
.wbt-booking-box .wbt-halfday-bottom { background: var(--wmav-bg) !important; }
.wbt-booking-box .wbt-halfday-top::before {
  content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: var(--wmav-cal-half); clip-path: polygon(0 0, 100% 0, 0 100%); z-index: 1; opacity: .8;
}
.wbt-booking-box .wbt-halfday-bottom::before {
  content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: var(--wmav-cal-half); clip-path: polygon(0 100%, 100% 100%, 100% 0); z-index: 2; opacity: .7;
}
.wbt-booking-box .wbt-halfday-blocked-top::before {
  content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: var(--wmav-cal-booked); clip-path: polygon(0 0, 100% 0, 0 100%); z-index: 5; opacity: .8; pointer-events: none;
}
.wbt-booking-box .wbt-halfday-blocked-bottom::before {
  content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 100%;
  background: var(--wmav-cal-booked); clip-path: polygon(0 100%, 100% 100%, 100% 0); z-index: 5; opacity: .8; pointer-events: none;
}

/* --- Legende --- */
.wbt-legend { display: flex; flex-wrap: wrap; gap: 10px 16px; margin: var(--wmav-space-3) 0 var(--wmav-space-1); font-size: var(--wmav-fs-300); color: var(--wmav-muted); }
.wbt-legend span { display: inline-flex; align-items: center; gap: 6px; }
.wbt-legend i { width: 14px; height: 14px; border-radius: 3px; display: inline-block; }
.wbt-legend .lg-free    { background: var(--wmav-cal-free); }
.wbt-legend .lg-booked  { background: var(--wmav-cal-booked); }
.wbt-legend .lg-blocked { background: var(--wmav-cal-blocked); }
.wbt-legend .lg-half    { background: linear-gradient(135deg, var(--wmav-cal-half) 50%, var(--wmav-bg) 50%); border: 1px solid var(--wmav-border); }

/* --- Zeitauswahl --- */
#wbt-time-wrapper { display: none; gap: var(--wmav-space-5); margin-bottom: var(--wmav-space-4); flex-wrap: wrap; }
#wbt-time-wrapper.hidden-time-wrapper { display: none; }
#wbt-time-wrapper.active { display: flex; }
.wbt-time-col { flex: 1; min-width: 150px; }

/* --- Lieferung/Entfernung (aktuell ausgeblendet) --- */
.wbt-delivery-toggle { display: none; margin-top: var(--wmav-space-4); }
#wbt-distance-wrapper { display: none; margin-top: var(--wmav-space-4); }
.wbt-field-label { display: block; margin-bottom: var(--wmav-space-1); font-weight: var(--wmav-weight-bold); }
.wbt-field-row { display: flex; gap: var(--wmav-space-4); flex-wrap: wrap; }
.wbt-field-col { flex: 1; min-width: 140px; }
#wbt-distance-wrapper input[type="text"] {
  width: 100%; max-width: 300px; padding: 10px 15px; font-size: var(--wmav-fs-500);
  border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius); box-sizing: border-box;
  margin-bottom: var(--wmav-space-2); transition: border-color var(--wmav-transition), box-shadow var(--wmav-transition);
}
#wbt-distance-wrapper input[type="text"]:focus {
  border-color: var(--wmav-green-dark); box-shadow: 0 0 0 3px var(--wmav-green-soft); outline: none;
}
#wbt_distance_info { margin-top: var(--wmav-space-1); font-size: var(--wmav-fs-400); color: var(--wmav-ink); }

/* --- Auswahlfelder --- */
.wbt-booking-box select {
  width: 100%; max-width: 300px; min-height: var(--wmav-tap); padding: 10px 15px;
  font-size: var(--wmav-fs-500); border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius);
  background-color: var(--wmav-bg); appearance: none; -webkit-appearance: none; -moz-appearance: none;
  margin-top: var(--wmav-space-1); box-sizing: border-box;
  transition: border-color var(--wmav-transition), box-shadow var(--wmav-transition);
}
.wbt-booking-box select:focus {
  border-color: var(--wmav-green-dark); box-shadow: 0 0 0 3px var(--wmav-green-soft); outline: none;
}

/* --- Verlinkte Zusatzprodukte --- */
.wbt-linked-products-wrapper { display: none; margin-top: var(--wmav-space-6); }
.wbt-linked-products-wrapper h3 { margin-bottom: var(--wmav-space-5); }
.wbt-linked-products-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: var(--wmav-space-4); }
.linked-product-box {
  display: flex; flex-direction: column; border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius-lg);
  overflow: hidden; text-align: center; padding: var(--wmav-space-4); background: var(--wmav-bg);
  box-shadow: var(--wmav-shadow); transition: box-shadow var(--wmav-transition), transform var(--wmav-transition);
}
.linked-product-box:hover { box-shadow: var(--wmav-shadow-lg); transform: translateY(-2px); }
.linked-product-image { width: 100%; height: 130px; background-size: contain; background-position: center; background-repeat: no-repeat; margin-bottom: var(--wmav-space-3); }
.linked-product-info { display: flex; flex-direction: column; align-items: center; flex: 1 1 auto; gap: var(--wmav-space-2); }
.linked-product-name {
  font-weight: var(--wmav-weight-bold); color: var(--wmav-ink); line-height: 1.3;
  overflow-wrap: anywhere; word-break: break-word; hyphens: auto; min-height: 2.6em;
  display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.linked-product-price { color: var(--wmav-green-dark); font-weight: var(--wmav-weight-bold); margin-top: auto; }
.linked-product-box label { display: inline-flex; align-items: center; gap: var(--wmav-space-2); font-weight: var(--wmav-weight-medium); color: var(--wmav-ink); }
.linked-product-box input[type="number"] {
  width: 64px; min-height: 40px; padding: 6px 8px; border-radius: var(--wmav-radius);
  border: 1px solid var(--wmav-border); text-align: center; font-family: inherit; font-size: var(--wmav-fs-400);
}
.linked-product-box input[type="number"]:focus { border-color: var(--wmav-green-dark); box-shadow: 0 0 0 3px var(--wmav-green-soft); outline: none; }

/* --- Gesamtpreis --- */
#wbt_booking_price { font-weight: var(--wmav-weight-bold); font-size: 30px; color: var(--wmav-green-dark); }
#wbt-grand-total { margin-top: var(--wmav-space-2); font-weight: var(--wmav-weight-bold); font-size: var(--wmav-fs-500); color: var(--wmav-ink); }

/* --- Verschachtelte Mietgeräte (Zubuchung an/aus) --- */
.wbt-nested-products-wrapper { margin-top: var(--wmav-space-6); }
.wbt-nested-products-wrapper h3 { margin-bottom: var(--wmav-space-1); }
.wbt-nested-hint { margin: 0 0 var(--wmav-space-4); font-size: var(--wmav-fs-300); color: var(--wmav-muted); }
.wbt-nested-products-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: var(--wmav-space-4); }
.wbt-nested-box {
  display: flex; align-items: center; gap: var(--wmav-space-3); cursor: pointer;
  border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius-lg);
  padding: var(--wmav-space-3); background: var(--wmav-bg);
  transition: border-color var(--wmav-transition), box-shadow var(--wmav-transition);
}
.wbt-nested-box:hover { border-color: var(--wmav-green-dark); box-shadow: var(--wmav-shadow); }
.wbt-nested-box:has(input:checked) { border-color: var(--wmav-green-dark); background: var(--wmav-green-soft); }
.wbt-nested-box input[type="checkbox"] { flex: 0 0 auto; width: 20px; height: 20px; accent-color: var(--wmav-green-dark); }
.wbt-nested-image {
  flex: 0 0 auto; width: 48px; height: 48px; border-radius: var(--wmav-radius);
  background: #fff center / contain no-repeat; border: 1px solid var(--wmav-border);
}
.wbt-nested-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wbt-nested-name { font-weight: var(--wmav-weight-bold); color: var(--wmav-ink); line-height: 1.25; overflow-wrap: anywhere; }
.wbt-nested-price { font-size: var(--wmav-fs-300); font-weight: var(--wmav-weight-bold); color: var(--wmav-green-dark); }

/* „Zubuchung zu …"-Kennzeichnung + Einrückung der Kinder im Warenkorb/Mini-Cart/Kasse */
.wbt-nested-flag { display: block; margin-bottom: 2px; font-size: var(--wmav-fs-300); font-weight: var(--wmav-weight-medium); color: var(--wmav-muted); }
.wbt-nested-flag::before { content: "\21B3\00A0"; }
.wmav-mc-item.is-nested { padding-left: var(--wmav-space-4); border-left: 2px solid var(--wmav-green-soft); }
.wmav-cart__item.is-nested { padding-left: var(--wmav-space-5); border-left: 3px solid var(--wmav-green-soft); }

/* --- Mobile --- */
@media (max-width: 768px) {
  .wbt-booking-box .fc-button-group { padding-top: 10px !important; }
  .wbt-booking-box .fc-direction-ltr .fc-toolbar > * > :not(:first-child) { margin-left: 0 !important; }
}
@media (max-width: 600px) {
  #wbt-time-wrapper.active { flex-direction: column; gap: var(--wmav-space-3); }
  #wbt-time-wrapper > div { min-width: 0 !important; width: 100%; }
  .wbt-booking-box select { width: 100% !important; max-width: none; font-size: var(--wmav-fs-400); }
  .wbt-linked-products-grid { gap: var(--wmav-space-3); }
  .linked-product-box { width: calc(50% - 6px); }
  #wbt_booking_price { font-size: 24px; }
  .wbt-booking-box .fc .fc-toolbar-title { font-size: 1.1em; }
  .wbt-booking-box .fc .fc-button { padding: .4em .6em; }
}

/* =========================================================================
   WooCommerce – restliche Standardbereiche, token-basiert
   (Mein Konto, Bewertungen, Sale-Badge, Lagerstatus, Store-Notice,
    Passwort-Stärke, Variationen). Alles unter .woocommerce*/.woocommerce-*
   gescopet, damit nichts site-weit leckt.
   ========================================================================= */

/* ---- Mein Konto: zweispaltig (Navigation + Inhalt) ---------------------- */
@media (min-width: 769px) {
  .woocommerce-account .woocommerce {
    display: grid; grid-template-columns: 240px minmax(0, 1fr);
    gap: var(--wmav-space-6); align-items: start;
  }
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--wmav-space-1); }
.woocommerce-MyAccount-navigation li a {
  display: block; padding: var(--wmav-space-3) var(--wmav-space-4);
  border-radius: var(--wmav-radius); border: 1px solid transparent;
  color: var(--wmav-ink); text-decoration: none; font-weight: var(--wmav-weight-medium);
  transition: background var(--wmav-transition), color var(--wmav-transition);
}
.woocommerce-MyAccount-navigation li a:hover { background: var(--wmav-bg-soft); color: var(--wmav-green-dark); }
.woocommerce-MyAccount-navigation li.is-active a {
  background: var(--wmav-green-soft); color: var(--wmav-green-dark); border-color: var(--wmav-green-soft); font-weight: var(--wmav-weight-bold);
}
.woocommerce-MyAccount-content { min-width: 0; }
.woocommerce-MyAccount-content a:not(.button) { color: var(--wmav-green-dark); }
.woocommerce-MyAccount-content a:not(.button):hover { text-decoration: underline; }

/* Adressen als Karten */
.woocommerce-Addresses { display: grid; gap: var(--wmav-space-5); margin-top: var(--wmav-space-4); }
@media (min-width: 600px) { .woocommerce-Addresses { grid-template-columns: 1fr 1fr; } }
.woocommerce-Address { border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius-lg); padding: var(--wmav-space-5); background: var(--wmav-bg-soft); }
.woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; gap: var(--wmav-space-3); margin-bottom: var(--wmav-space-3); }
.woocommerce-Address-title h2, .woocommerce-Address-title h3 { margin: 0; font-size: var(--wmav-fs-500); }
.woocommerce-Address address { font-style: normal; color: var(--wmav-ink); line-height: var(--wmav-lh); }

/* Bestellungen/Downloads-Tabellen erben .shop_table; Beträge/Status dezent */
.woocommerce-orders-table td, .woocommerce-orders-table th,
.woocommerce-MyAccount-downloads td, .woocommerce-MyAccount-downloads th { vertical-align: middle; }
.woocommerce-orders-table__cell-order-status { color: var(--wmav-muted); }

/* Login/Registrieren als Karten, auf Desktop nebeneinander */
.woocommerce-account .u-columns { display: grid; gap: var(--wmav-space-6); }
@media (min-width: 769px) { .woocommerce-account .col2-set.u-columns { grid-template-columns: 1fr 1fr; } }
.woocommerce form.login, .woocommerce form.register {
  border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius-lg);
  padding: var(--wmav-space-5); background: var(--wmav-bg-soft); margin: 0;
}
.woocommerce-account .woocommerce h2 { font-size: var(--wmav-fs-600); margin: 0 0 var(--wmav-space-4); }

/* ---- Sale-Badge ---------------------------------------------------------- */
.woocommerce span.onsale {
  background: var(--wmav-green-dark); color: #fff;
  border-radius: var(--wmav-radius-pill); padding: 0.3em 0.75em;
  font-size: var(--wmav-fs-300); font-weight: var(--wmav-weight-bold); line-height: 1.3;
  min-height: 0; min-width: 0; top: var(--wmav-space-3); left: var(--wmav-space-3); margin: 0;
}

/* ---- Lagerstatus --------------------------------------------------------- */
.woocommerce .stock { font-weight: var(--wmav-weight-medium); font-size: var(--wmav-fs-300); }
.woocommerce .stock.in-stock { color: var(--wmav-success); }
.woocommerce .stock.out-of-stock { color: var(--wmav-danger); }
.woocommerce .stock.available-on-backorder { color: var(--wmav-warning); }

/* ---- Shop-Hinweis (Store Notice) ---------------------------------------- */
.woocommerce-store-notice, p.demo_store {
  background: var(--wmav-green-dark); color: #fff;
  padding: var(--wmav-space-3) var(--wmav-space-5); font-size: var(--wmav-fs-300);
}
.woocommerce-store-notice a, p.demo_store a { color: #fff; text-decoration: underline; }

/* ---- Passwort-Stärke-Anzeige -------------------------------------------- */
.woocommerce-password-strength {
  border-radius: var(--wmav-radius); padding: 0.4em 0.8em; margin-top: var(--wmav-space-2);
  font-size: var(--wmav-fs-300); font-weight: var(--wmav-weight-medium); border: 1px solid transparent;
}
.woocommerce-password-strength.strong { background: var(--wmav-green-soft); color: var(--wmav-green-dark); border-color: var(--wmav-green); }
.woocommerce-password-strength.good { background: #fbf3df; color: var(--wmav-warning); border-color: var(--wmav-warning); }
.woocommerce-password-strength.short, .woocommerce-password-strength.bad { background: var(--wmav-danger-soft); color: var(--wmav-danger); border-color: var(--wmav-danger); }
.woocommerce-password-hint { display: block; margin-top: var(--wmav-space-2); color: var(--wmav-muted); font-size: var(--wmav-fs-300); }

/* ---- Variable Produkte: Variations-Auswahl ------------------------------ */
.woocommerce table.variations select { min-height: var(--wmav-tap); border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius); background: #fff; }
.woocommerce table.variations select:focus { border-color: var(--wmav-green-dark); box-shadow: 0 0 0 3px var(--wmav-green-soft); outline: none; }
.woocommerce .reset_variations { color: var(--wmav-green-dark); }
.woocommerce .single_variation .price { color: var(--wmav-green-dark); font-weight: var(--wmav-weight-bold); }

/* ---- Produktbewertungen (falls aktiv/angezeigt) ------------------------- */
.woocommerce #reviews h2, .woocommerce #reviews h3 { font-size: var(--wmav-fs-600); }
.woocommerce #reviews .commentlist { list-style: none; margin: 0; padding: 0; }
.woocommerce #reviews .comment_container {
  border: 1px solid var(--wmav-border); border-radius: var(--wmav-radius-lg);
  padding: var(--wmav-space-4); background: var(--wmav-bg-soft); display: flex; gap: var(--wmav-space-4);
}
.woocommerce #reviews .comment-text { min-width: 0; }
.woocommerce #reviews .meta { color: var(--wmav-muted); font-size: var(--wmav-fs-300); }
/* Sternebewertung in Markengrün */
.woocommerce .star-rating, .woocommerce p.stars a { color: var(--wmav-green-dark); }
.woocommerce .star-rating span::before, .woocommerce .star-rating::before { color: var(--wmav-green-dark); }
.woocommerce .commentlist .star-rating { color: var(--wmav-green-dark); }
.woocommerce #review_form .comment-form-rating p.stars a:hover { color: var(--wmav-green); }

/* ---- Leerer Warenkorb (cart-empty.php) ---------------------------------- */
.wmav-cart-empty { max-width: 480px; margin: 0 auto; padding: var(--wmav-space-8) var(--wmav-space-4); text-align: center; }
.wmav-cart-empty__icon { display: inline-flex; color: var(--wmav-green-dark); margin-bottom: var(--wmav-space-4); }
.wmav-cart-empty__icon svg { width: 48px; height: 48px; }
.wmav-cart-empty__title { margin: 0 0 var(--wmav-space-2); font-size: var(--wmav-fs-600); color: var(--wmav-ink); }
.wmav-cart-empty__text { margin: 0 0 var(--wmav-space-5); color: var(--wmav-muted); }

/* ---- Sticky Buchungs-/Warenkorb-Leiste (nur Mobil) ---------------------- */
.wmav-sticky-cta { display: none; }
@media (max-width: 768px) {
  html { scroll-behavior: smooth; }
  #wmav-buy { scroll-margin-top: 96px; }
  .wmav-sticky-cta {
    display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 150;
    background: var(--wmav-bg); border-top: 1px solid var(--wmav-border);
    box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08);
    padding: var(--wmav-space-3) 0;
    padding-bottom: calc(var(--wmav-space-3) + env(safe-area-inset-bottom, 0px));
  }
  .wmav-sticky-cta__inner { display: flex; align-items: center; gap: var(--wmav-space-4); }
  .wmav-sticky-cta__price { flex: 0 0 auto; font-weight: var(--wmav-weight-bold); font-size: var(--wmav-fs-400); color: var(--wmav-ink); white-space: nowrap; }
  .wmav-sticky-cta__price .amount { color: var(--wmav-green-dark); }
  .wmav-sticky-cta__btn { flex: 1 1 auto; justify-content: center; min-height: var(--wmav-tap); }
  body.single-product { padding-bottom: 80px; } /* Platz für die fixe Leiste */
}
