/* ============================================================
   GESANDTSCHAFT — WooCommerce-Schicht (funktional-dunkel)
   Lädt nach gx.css und nach den WC-Default-Styles. Überschreibt deren
   helle Flächen ins dunkle gx-Designsystem. Tokens kommen aus gx.css.
   Alles unter .gx-woo gekapselt (Wrapper aus woocommerce.php / page.php).
   Polish liegt auf Shop-Archiv und Produktseite; Warenkorb/Kasse/Konto
   sind dunkel und token-konsistent, ohne schwere Template-Umbauten.
   ============================================================ */

.gx-woo{padding:64px 0 96px;}
.gx-woo .woocommerce{color:var(--body);}
.gx-woo a{color:var(--primary-on-dark);text-underline-offset:3px;}

/* ---- Überschriften ---- */
.gx-woo h1,.gx-woo h2,.gx-woo h3,
.gx-woo .woocommerce-products-header__title,
.gx-woo .product_title,
.gx-woo .cart_totals h2,
.gx-woo #order_review_heading,
.gx-woo #customer_details h3,
.gx-woo .woocommerce-column__title,
.gx-woo .woocommerce-order-details__title,
.gx-woo .woocommerce-MyAccount-content h2,
.gx-woo .related > h2,
.gx-woo .upsells > h2{
  font-family:var(--font-display);font-weight:500;color:var(--ink);
  letter-spacing:-0.2px;line-height:1.2;
}
.gx-woo .woocommerce-products-header__title,
.gx-woo .product_title{font-size:38px;margin:0 0 8px;}
.gx-woo h2,.gx-woo #order_review_heading,.gx-woo .cart_totals h2,
.gx-woo #customer_details h3,.gx-woo .related > h2,.gx-woo .upsells > h2{font-size:28px;}

/* ---- Vorspann-Texte ---- */
.gx-woo .woocommerce-products-header,
.gx-woo .term-description,
.gx-woo-intro{max-width:720px;}
.gx-woo-intro{font:400 19px/1.7 var(--font-text);color:var(--body);margin:0 0 8px;}

/* ---- Breadcrumb ---- */
.gx-woo .woocommerce-breadcrumb{
  font:500 11px/1.6 var(--font-label);letter-spacing:0.18em;text-transform:uppercase;
  color:var(--muted);margin-bottom:40px;
}
.gx-woo .woocommerce-breadcrumb a{color:var(--muted);}
.gx-woo .woocommerce-breadcrumb a:hover{color:var(--primary-on-dark);}

/* ---- Notices (Hinweis / Erfolg / Fehler) ---- */
.gx-woo .woocommerce-message,
.gx-woo .woocommerce-info,
.gx-woo .woocommerce-error,
.gx-woo .woocommerce-noreviews,
.gx-woo .wc-block-components-notice-banner{
  background:var(--canvas-elevated);border:1px solid var(--hairline);
  border-left:2px solid var(--primary-on-dark);border-radius:2px;
  color:var(--body);font:400 16px/1.6 var(--font-text);
  padding:16px 20px;list-style:none;
}
.gx-woo .woocommerce-error{border-left-color:var(--primary);}
.gx-woo .woocommerce-message::before,
.gx-woo .woocommerce-info::before,
.gx-woo .woocommerce-error::before{color:var(--primary-on-dark);}
.gx-woo .woocommerce-message a,
.gx-woo .woocommerce-info a,
.gx-woo .woocommerce-error a{color:var(--ink);}

/* ============================================================
   Buttons: ein einziger starker Aufruf in Purpurrot (button-primary),
   Sekundäres als Linie auf Dunkel (button-outline-on-dark).
   ============================================================ */
.gx-woo a.button,
.gx-woo button.button,
.gx-woo input.button,
.gx-woo .woocommerce a.button,
.gx-woo .woocommerce button.button,
.gx-woo .woocommerce input.button,
.gx-woo #respond input#submit,
.gx-woo .button.alt,
.gx-woo .single_add_to_cart_button,
.gx-woo #place_order,
.gx-woo .wc-proceed-to-checkout .checkout-button,
.gx-woo .woocommerce-Button{
  font:600 13px/1 var(--font-label);letter-spacing:0.2em;text-transform:uppercase;
  border-radius:0;border:1px solid var(--hairline);background:transparent;color:var(--ink);
  padding:18px 30px;min-height:48px;cursor:pointer;
  transition:color var(--dur) var(--ease),background var(--dur) var(--ease),border-color var(--dur) var(--ease);
  text-decoration:none;display:inline-block;text-align:center;
}
.gx-woo a.button:hover,
.gx-woo button.button:hover,
.gx-woo input.button:hover,
.gx-woo .woocommerce-Button:hover{
  border-color:var(--primary-on-dark);color:var(--primary-on-dark);background:transparent;
}
/* Primäre Aufrufe (Abonnieren, Weiter zur Kasse, Bestellen): Purpurrot-Fläche.
   Diese tragen in WooCommerce durchgängig die Klasse .alt. Loop-Buttons im
   Shop-Archiv bleiben bewusst Linie, damit Purpurrot knapp geführt bleibt.
   Selektoren element-qualifiziert, damit sie die Basis-Button-Regel schlagen. */
.gx-woo a.button.alt,
.gx-woo button.button.alt,
.gx-woo input.button.alt,
.gx-woo button#place_order,
.gx-woo a.checkout-button.button{
  background:var(--primary);border-color:var(--primary);color:#fff;
}
.gx-woo a.button.alt:hover,
.gx-woo button.button.alt:hover,
.gx-woo input.button.alt:hover,
.gx-woo button#place_order:hover,
.gx-woo a.checkout-button.button:hover{
  background:#7e1c39;border-color:#7e1c39;color:#fff;
}
.gx-woo .button[disabled],
.gx-woo .button:disabled,
.gx-woo .button.disabled{opacity:0.45;cursor:not-allowed;}

/* ============================================================
   Formularfelder auf Dunkel (text-input-on-dark).
   ============================================================ */
.gx-woo input[type=text],
.gx-woo input[type=email],
.gx-woo input[type=tel],
.gx-woo input[type=password],
.gx-woo input[type=number],
.gx-woo input[type=search],
.gx-woo input[type=url],
.gx-woo input.input-text,
.gx-woo textarea,
.gx-woo select,
.gx-woo .select2-container--default .select2-selection--single,
.gx-woo .select2-container--default .select2-selection--multiple{
  background:var(--canvas-elevated)!important;color:var(--ink)!important;
  border:1px solid var(--hairline)!important;border-radius:2px;
  font:400 16px/1.5 var(--font-text);padding:13px 16px;min-height:48px;
  width:100%;box-shadow:none;
}
.gx-woo textarea{min-height:120px;}
.gx-woo input::placeholder,.gx-woo textarea::placeholder{color:var(--muted-soft);}
.gx-woo input:focus,
.gx-woo textarea:focus,
.gx-woo select:focus,
.gx-woo .select2-container--focus .select2-selection{
  outline:none;border-color:var(--primary-on-dark)!important;
  box-shadow:0 0 0 2px rgba(207,90,116,0.25);
}
.gx-woo label{color:var(--body);font:400 15px/1.5 var(--font-text);}
.gx-woo .required{color:var(--primary-on-dark);}
/* select2-Dropdown (Land etc.) */
.gx-woo .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--ink);line-height:46px;}
.gx-woo .select2-container--default .select2-selection--single .select2-selection__arrow{height:46px;}
.select2-dropdown{background:var(--canvas-elevated)!important;border:1px solid var(--hairline)!important;color:var(--ink);}
.select2-results__option{color:var(--body);}
.select2-results__option--highlighted{background:var(--primary)!important;color:#fff!important;}
.select2-search--dropdown .select2-search__field{background:var(--canvas)!important;color:var(--ink)!important;border:1px solid var(--hairline)!important;}

/* ============================================================
   Tabellen (Warenkorb, Order-Review, Konto-Bestellungen).
   ============================================================ */
.gx-woo table.shop_table,
.gx-woo table.woocommerce-table{
  border:1px solid var(--hairline);border-collapse:collapse;border-radius:0;
  background:transparent;color:var(--body);width:100%;
}
.gx-woo table.shop_table th,
.gx-woo table.woocommerce-table th{
  font:500 11px/1.5 var(--font-label);letter-spacing:0.18em;text-transform:uppercase;
  color:var(--primary-on-dark);text-align:left;padding:16px 18px;
  border-bottom:1px solid var(--hairline);background:var(--canvas-elevated);
}
.gx-woo table.shop_table td,
.gx-woo table.woocommerce-table td{
  padding:18px;border-top:1px solid var(--hairline);
  font:400 16px/1.6 var(--font-text);color:var(--body);vertical-align:middle;
}
.gx-woo table.shop_table tfoot th,
.gx-woo table.shop_table tfoot td{background:var(--canvas-elevated);color:var(--ink);}
.gx-woo table.shop_table .product-name a{color:var(--ink);text-decoration:none;}
.gx-woo table.shop_table .product-name a:hover{color:var(--primary-on-dark);}
.gx-woo .woocommerce-Price-amount,
.gx-woo .amount{color:var(--primary-on-dark);font-feature-settings:'tnum';white-space:nowrap;}
.gx-woo td.product-thumbnail img{width:64px;border:1px solid var(--hairline);border-radius:2px;}

/* Mengen-Stepper */
.gx-woo .quantity .qty{
  width:84px;text-align:center;background:var(--canvas-elevated)!important;
  color:var(--ink)!important;border:1px solid var(--hairline)!important;border-radius:2px;
  min-height:48px;
}

/* ============================================================
   Shop-Archiv (Produkt-Loop).
   Editorial statt Kachelwand: keine Karten, Trennung über Weißraum.
   ============================================================ */
.gx-woo .woocommerce-result-count{
  font:500 11px/1.6 var(--font-label);letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);
}
.gx-woo .woocommerce-ordering select{width:auto;display:inline-block;}
.gx-woo ul.products{margin:48px 0 0;padding:0;list-style:none;display:grid;gap:48px 40px;}
.gx-woo ul.products li.product{
  background:transparent;border:none;box-shadow:none;text-align:left;margin:0;padding:0 0 28px;
  border-bottom:1px solid var(--hairline);
}
.gx-woo ul.products li.product a.woocommerce-LoopProduct-link{display:block;text-decoration:none;}
.gx-woo ul.products li.product img{
  width:100%;margin:0 0 22px;border:1px solid var(--hairline);border-radius:2px;background:var(--canvas-elevated);
}
.gx-woo ul.products li.product .woocommerce-loop-product__title{
  font:500 23px/1.3 var(--font-display);color:var(--ink);padding:0;margin:0 0 10px;
}
.gx-woo ul.products li.product .price{
  display:block;color:var(--primary-on-dark);font:500 16px/1.5 var(--font-label);
  letter-spacing:0.04em;margin:0 0 18px;
}
.gx-woo ul.products li.product .price del{color:var(--muted-soft);opacity:1;margin-right:8px;}
.gx-woo ul.products li.product .price ins{text-decoration:none;color:var(--primary-on-dark);}
.gx-woo ul.products li.product .button{margin-top:4px;}
/* Sale-Marke als ruhiges Versalien-Label, keine Pille */
.gx-woo span.onsale{
  position:static;display:inline-block;margin:0 0 12px;min-height:0;min-width:0;
  background:transparent;color:var(--primary-on-dark);border-radius:0;line-height:1.4;
  font:600 11px/1.4 var(--font-label);letter-spacing:0.18em;text-transform:uppercase;padding:0;
}

/* Pagination */
.gx-woo .woocommerce-pagination ul{border:none;display:flex;gap:8px;justify-content:center;margin-top:56px;list-style:none;padding:0;}
.gx-woo .woocommerce-pagination ul li{border:none;margin:0;}
.gx-woo .woocommerce-pagination ul li a,
.gx-woo .woocommerce-pagination ul li span{
  background:transparent;border:1px solid var(--hairline);color:var(--body);border-radius:2px;
  min-width:44px;min-height:44px;line-height:42px;padding:0 6px;
}
.gx-woo .woocommerce-pagination ul li span.current{border-color:var(--primary-on-dark);color:var(--ink);}
.gx-woo .woocommerce-pagination ul li a:hover{border-color:var(--primary-on-dark);color:var(--primary-on-dark);}

/* ============================================================
   Produkt-Einzelseite.
   ============================================================ */
.gx-woo div.product{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:64px;align-items:start;}
.gx-woo div.product .woocommerce-product-gallery{margin:0;}
.gx-woo div.product .woocommerce-product-gallery img{border:1px solid var(--hairline);border-radius:2px;background:var(--canvas-elevated);}
.gx-woo div.product .summary{margin:0;}
.gx-woo div.product .summary > .price,
.gx-woo div.product p.price{
  color:var(--primary-on-dark);font:500 22px/1.4 var(--font-label);letter-spacing:0.03em;
  margin:0 0 24px;font-feature-settings:'tnum';
}
.gx-woo div.product p.price del{color:var(--muted-soft);margin-right:10px;}
.gx-woo div.product p.price ins{text-decoration:none;color:var(--primary-on-dark);}
.gx-woo .woocommerce-product-details__short-description{
  font:400 19px/1.75 var(--font-text);color:var(--body);margin:0 0 28px;max-width:600px;
}
.gx-woo .woocommerce-product-details__short-description p{margin:0 0 16px;}
/* Subscriptions: Wiederholungsdetails und Anmeldegebühr */
.gx-woo .subscription-details,
.gx-woo .subscription-price .subscription-details{
  color:var(--muted);font:400 15px/1.5 var(--font-text);letter-spacing:0;
}
.gx-woo .wcs-price-string,
.gx-woo .subscription-price{color:var(--primary-on-dark);}
.gx-woo form.cart{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 32px;}
.gx-woo form.cart .quantity{margin:0;}
.gx-woo .product_meta{
  border-top:1px solid var(--hairline);padding-top:20px;margin-top:8px;
  font:400 14px/1.7 var(--font-text);color:var(--muted);
}
.gx-woo .product_meta a{color:var(--primary-on-dark);}
.gx-woo .product_meta > span{display:block;}

/* Produkt-Tabs */
.gx-woo .woocommerce-tabs{grid-column:1 / -1;margin-top:24px;}
.gx-woo .woocommerce-tabs ul.tabs{margin:0 0 32px;padding:0 0 0;border:none;display:flex;gap:36px;flex-wrap:wrap;}
.gx-woo .woocommerce-tabs ul.tabs::before{display:none;}
.gx-woo .woocommerce-tabs ul.tabs li{
  background:transparent;border:none;border-radius:0;margin:0;padding:0 0 8px;
}
.gx-woo .woocommerce-tabs ul.tabs li a{
  font:500 12px/1.4 var(--font-label);letter-spacing:0.2em;text-transform:uppercase;
  color:var(--muted);padding:0;
}
.gx-woo .woocommerce-tabs ul.tabs li.active{border-bottom:1px solid var(--primary-on-dark);}
.gx-woo .woocommerce-tabs ul.tabs li.active a{color:var(--ink);}
.gx-woo .woocommerce-tabs .panel{font:400 18px/1.75 var(--font-text);color:var(--body);}
.gx-woo .woocommerce-tabs .panel h2{margin-top:0;}

/* Verwandte / Upsell-Produkte */
.gx-woo .related,.gx-woo .upsells{grid-column:1 / -1;margin-top:80px;border-top:1px solid var(--hairline);padding-top:64px;}

/* ============================================================
   Warenkorb.
   ============================================================ */
.gx-woo .woocommerce-cart-form table.cart td.actions .coupon .input-text{width:180px;display:inline-block;margin-right:10px;}
.gx-woo .cart-collaterals,.gx-woo .cart_totals{float:none;width:100%;}
.gx-woo .cart_totals{max-width:480px;margin-left:auto;margin-top:48px;}
.gx-woo .cart_totals table{border:1px solid var(--hairline);}
.gx-woo .wc-proceed-to-checkout{padding-top:24px;}
.gx-woo .wc-proceed-to-checkout .checkout-button{display:block;width:100%;}
.gx-woo a.remove{
  color:var(--muted)!important;border:1px solid var(--hairline);border-radius:50%;
  width:24px;height:24px;line-height:22px;background:transparent!important;
}
.gx-woo a.remove:hover{color:#fff!important;background:var(--primary)!important;border-color:var(--primary);}

/* ============================================================
   Kasse.
   ============================================================ */
.gx-woo .col2-set .col-1,.gx-woo .col2-set .col-2,
.gx-woo #customer_details .col-1,.gx-woo #customer_details .col-2{width:100%;float:none;}
.gx-woo #customer_details{margin-bottom:40px;}
.gx-woo .woocommerce-billing-fields,
.gx-woo .woocommerce-shipping-fields,
.gx-woo .woocommerce-additional-fields{margin-bottom:24px;}
.gx-woo #order_review{
  background:var(--canvas-elevated);border:1px solid var(--hairline);border-radius:2px;padding:32px;
}
.gx-woo #order_review table.shop_table{border:none;}
.gx-woo #order_review table.shop_table th,
.gx-woo #order_review table.shop_table td{background:transparent;}
.gx-woo .wc_payment_methods{list-style:none;margin:0 0 24px;padding:0;}
.gx-woo .wc_payment_methods li{
  border-top:1px solid var(--hairline);padding:16px 0;
}
.gx-woo .wc_payment_methods li:last-child{border-bottom:1px solid var(--hairline);}
.gx-woo .wc_payment_methods label{color:var(--ink);font:500 15px/1.5 var(--font-text);}
.gx-woo .payment_box{
  background:var(--canvas)!important;border:1px solid var(--hairline);border-radius:2px;
  color:var(--body);font:400 14px/1.6 var(--font-text);margin-top:12px;
}
.gx-woo .payment_box::before{display:none;}
.gx-woo #place_order{display:block;width:100%;margin-top:24px;}

/* Germanized: rechtliche Hinweise, Checkboxen, Bestell-Button-Bereich */
.gx-woo .wc-gzd-additional-info,
.gx-woo .wc-gzd-product-name-suffix,
.gx-woo .wc-gzd-item-delivery-time,
.gx-woo .delivery-time-info,
.gx-woo .units,
.gx-woo .price-unit{color:var(--muted);font:400 14px/1.5 var(--font-text);}
.gx-woo .woocommerce-terms-and-conditions-wrapper,
.gx-woo .wc-gzd-checkbox-placeholder,
.gx-woo #wc-gzd-legal,
.gx-woo .legal{
  font:400 14px/1.6 var(--font-text);color:var(--body);
}
.gx-woo .woocommerce-terms-and-conditions{
  background:var(--canvas)!important;border:1px solid var(--hairline);color:var(--body);
}
.gx-woo input[type=checkbox],.gx-woo input[type=radio]{accent-color:var(--primary);width:auto;min-height:0;}
.gx-woo .wc-gzd-premium-overlay,
.gx-woo .gzd-notice{background:var(--canvas-elevated)!important;color:var(--body)!important;border:1px solid var(--hairline);}

/* ============================================================
   Mein Konto.
   ============================================================ */
.gx-woo .woocommerce-account .woocommerce{display:grid;grid-template-columns:230px minmax(0,1fr);gap:56px;align-items:start;}
.gx-woo .woocommerce-MyAccount-navigation{margin:0;}
.gx-woo .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;}
.gx-woo .woocommerce-MyAccount-navigation li{border-top:1px solid var(--hairline);}
.gx-woo .woocommerce-MyAccount-navigation li:last-child{border-bottom:1px solid var(--hairline);}
.gx-woo .woocommerce-MyAccount-navigation li a{
  display:block;padding:14px 0;text-decoration:none;color:var(--muted);
  font:500 12px/1.4 var(--font-label);letter-spacing:0.16em;text-transform:uppercase;
}
.gx-woo .woocommerce-MyAccount-navigation li a:hover{color:var(--primary-on-dark);}
.gx-woo .woocommerce-MyAccount-navigation li.is-active a{color:var(--ink);}
.gx-woo .woocommerce-MyAccount-content{font:400 17px/1.7 var(--font-text);color:var(--body);}
.gx-woo .woocommerce-MyAccount-content a{color:var(--primary-on-dark);}
.gx-woo .woocommerce-MyAccount-content mark{background:transparent;color:var(--primary-on-dark);}
/* Login / Registrierung */
.gx-woo .woocommerce-form-login,
.gx-woo .woocommerce-form-register,
.gx-woo .login,.gx-woo .register{
  border:1px solid var(--hairline);border-radius:2px;background:var(--canvas-elevated);padding:32px;
}
.gx-woo .woocommerce-form-login-toggle,
.gx-woo .woocommerce-form-register{margin-top:24px;}
.gx-woo .woocommerce-form__label-for-checkbox{display:inline-flex;align-items:center;gap:8px;}
/* Subscriptions im Konto */
.gx-woo .subscription_details,
.gx-woo .woocommerce-orders-table--subscriptions,
.gx-woo table.my_account_subscriptions,
.gx-woo table.my_account_orders{width:100%;}
.gx-woo .subscription-status,
.gx-woo .order-status,
.gx-woo .woocommerce-orders-table__cell-subscription-status{
  font:500 11px/1.4 var(--font-label);letter-spacing:0.12em;text-transform:uppercase;color:var(--primary-on-dark);
}
/* Woo-Wallet */
.gx-woo .woo-wallet-balance,
.gx-woo .woo-wallet-amount{color:var(--ink);}
.gx-woo .woo-wallet-balance{border:1px solid var(--hairline);border-radius:2px;background:var(--canvas-elevated);padding:24px;}

/* ============================================================
   Multi-Currency-Umschalter (woocommerce-multi-currency).
   ============================================================ */
.gx-woo .wmc-currency-wrapper,
.gx-woo .woocommerce-currency-switcher-form,
.gx-woo .wcml-currency-switcher{font:500 12px/1.4 var(--font-label);letter-spacing:0.1em;}
.gx-woo .wmc-currency-wrapper select{width:auto;display:inline-block;}

/* ============================================================
   Responsiv.
   ============================================================ */
@media(max-width:820px){
  .gx-woo{padding:48px 0 72px;}
  .gx-woo .woocommerce-products-header__title,
  .gx-woo .product_title{font-size:30px;}
  .gx-woo ul.products{grid-template-columns:1fr 1fr;gap:36px 24px;}
  .gx-woo div.product{grid-template-columns:1fr;gap:36px;}
  .gx-woo .woocommerce-account .woocommerce{grid-template-columns:1fr;gap:32px;}
  .gx-woo .cart_totals{max-width:none;}
  .gx-woo #order_review{padding:22px;}
}
@media(max-width:520px){
  .gx-woo ul.products{grid-template-columns:1fr;}
}

/* ============================================================
   Block-Buttons der Cart-Cross-Sells (Neu im Shop auf leerem
   Warenkorb): WooCommerce-Block-Grid, von der gx-woo-Basisregel
   nicht abgedeckt. Auf Linie gesetzt, passend zur Button-Sprache.
   ============================================================ */
.gx-woo .wc-block-grid__product-add-to-cart .wp-block-button__link,
.gx-woo .wp-block-button__link.add_to_cart_button{
  font:600 12px/1 var(--font-label);letter-spacing:0.18em;text-transform:uppercase;
  background:transparent;color:var(--ink);border:1px solid var(--hairline);border-radius:0;
  padding:14px 22px;box-shadow:none;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.gx-woo .wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
.gx-woo .wp-block-button__link.add_to_cart_button:hover{
  background:transparent;border-color:var(--primary);color:var(--primary);
}
/* Generisches Leer-Warenkorb-Symbol (off-brand, schwer auf Hell):
   ausgeblendet, die Playfair-Zeile reicht. */
.gx-woo .wc-block-cart__empty-cart__title.with-empty-cart-icon::before{display:none!important;}
.gx-woo .wc-block-cart__empty-cart__title.with-empty-cart-icon{background-image:none!important;padding-top:0!important;}
