/* =====================================================================
   WIENINGER · WooCommerce-Skin + Produktdetail-Referenz  —  wgn-woo.css

   TEIL A: skinnt echte WooCommerce-Elemente (Archiv, Single, Warenkorb,
           Kassa, Konto, Mini-Cart, Hinweise, Tabs, Badges) aufs Design.
   TEIL B: .wgn-product = Referenz-Layout der Produktdetailseite (Mockup /
           Vorlage fürs Elementor-Pro Single-Product-Template).
   Tokens aus wgn-ui.css.
   ===================================================================== */

/* =====================================================================
   TEIL A — WooCommerce-Skin
   ===================================================================== */

.woocommerce, .woocommerce-page { font-family: var(--wgn-sans); color: var(--wgn-ink); }

/* ---- Buttons ---- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce-page a.button, .woocommerce-page button.button {
	font-family: var(--wgn-sans); font-weight: 600; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase;
	background: var(--wgn-ink); color: #fff; border: 1.5px solid var(--wgn-ink); border-radius: .2rem;
	padding: .85em 1.7em; transition: background .25s, border-color .25s;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: #000; border-color: #000; color: #fff; }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button, .woocommerce #respond input#submit.alt {
	background: var(--wgn-red); border-color: var(--wgn-red); color: #fff;
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce .single_add_to_cart_button:hover { background: var(--wgn-red-hover); border-color: var(--wgn-red-hover); }

/* ---- Preise ---- */
.woocommerce .price, .woocommerce-Price-amount { font-family: var(--wgn-serif); color: var(--wgn-ink); }
.woocommerce del { color: var(--wgn-ink-soft); opacity: .8; }
.woocommerce ins { text-decoration: none; }

/* ---- Sale-/Status-Badge ---- */
.woocommerce span.onsale {
	background: var(--wgn-red); color: #fff; border-radius: 1rem; min-width: 0; min-height: 0;
	padding: .35em .85em; font-size: .7rem; font-weight: 700; letter-spacing: .04em; line-height: 1;
}

/* ---- Produkt-Loop (Archiv = Shop-Seite) ---- */
.woocommerce ul.products { gap: clamp(1.1rem, 2.2vw, 1.75rem); }
.woocommerce ul.products li.product {
	background: var(--wgn-paper); border: 1px solid var(--wgn-line); border-radius: .4rem; overflow: hidden;
	padding: 0 0 1.25rem; transition: transform .3s var(--wgn-ease), box-shadow .3s var(--wgn-ease);
}
.woocommerce ul.products li.product:hover { transform: translateY(-4px); box-shadow: var(--wgn-shadow); }
.woocommerce ul.products li.product a img { margin: 0 0 1rem; background: linear-gradient(180deg,#fff,#f4efe7); padding: clamp(1rem,3vw,2rem); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--wgn-serif); font-weight: 500; font-size: 1.15rem; color: var(--wgn-ink); padding: 0 1.25rem; }
.woocommerce ul.products li.product .price { display: block; padding: .25rem 1.25rem .75rem; font-size: 1.1rem; }
.woocommerce ul.products li.product .button { margin: 0 1.25rem 1.25rem; }

/* ---- Mengen-Selektor ---- */
.woocommerce .quantity .qty {
	font-family: var(--wgn-sans); font-size: 1rem; color: var(--wgn-ink);
	background: var(--wgn-paper); border: 1px solid var(--wgn-line); border-radius: .25rem; padding: .6rem .5rem; width: 4.5rem;
}

/* ---- Hinweise (Notices) ---- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
	border: 1px solid var(--wgn-line); border-left: 3px solid var(--wgn-red);
	background: var(--wgn-paper); color: var(--wgn-ink); border-radius: .25rem;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--wgn-red); }

/* ---- Tabellen (Warenkorb/Kassa) ---- */
.woocommerce table.shop_table { border: 1px solid var(--wgn-line); border-radius: .4rem; }
.woocommerce table.shop_table th { font-family: var(--wgn-sans); text-transform: uppercase; letter-spacing: .06em; font-size: .76rem; color: var(--wgn-ink-soft); }

/* ---- Formularfelder (Kassa/Konto) ---- */
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce-page form .form-row input.input-text, .woocommerce .select2-container .select2-selection {
	font-family: var(--wgn-sans); font-size: 1rem; color: var(--wgn-ink);
	background: var(--wgn-paper); border: 1px solid var(--wgn-line); border-radius: .25rem; padding: .8rem 1rem;
}
.woocommerce form .form-row input.input-text:focus { outline: none; border-color: var(--wgn-red); box-shadow: 0 0 0 2px rgba(196,28,15,.15); }

/* ---- Ergebnis-Anzahl & Sortierung ---- */
.woocommerce .woocommerce-result-count { color: var(--wgn-ink-soft); font-size: .9rem; }
.woocommerce .woocommerce-ordering select { font-family: var(--wgn-sans); border: 1px solid var(--wgn-line); border-radius: .25rem; padding: .5rem .75rem; background: var(--wgn-paper); }

/* ---- Produkt-Tabs (Single) ---- */
.woocommerce-tabs ul.tabs { border: 0; }
.woocommerce-tabs ul.tabs::before { border-bottom: 1px solid var(--wgn-line); }
.woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; }
.woocommerce-tabs ul.tabs li a { font-family: var(--wgn-sans); text-transform: uppercase; letter-spacing: .08em; font-size: .82rem; font-weight: 600; color: var(--wgn-ink-soft); }
.woocommerce-tabs ul.tabs li.active a { color: var(--wgn-ink); }
.woocommerce-tabs ul.tabs li.active { border-bottom: 2px solid var(--wgn-red); }

/* ---- Mini-Cart (Header-Dropdown) ---- */
.widget_shopping_cart_content .woocommerce-mini-cart__total { font-family: var(--wgn-serif); }
.widget_shopping_cart_content .button { width: 100%; margin-top: .35rem; }

/* =====================================================================
   TEIL B — Produktdetail-Referenz-Layout (.wgn-product)
   ===================================================================== */

.wgn-product { background: var(--wgn-cream); padding: clamp(2.5rem, 6vw, 5rem) var(--wgn-pad-x); font-family: var(--wgn-sans); color: var(--wgn-ink); }
.wgn-product * { box-sizing: border-box; }
.wgn-product__wrap { max-width: var(--wgn-shell); margin-inline: auto; display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }

/* Galerie */
.wgn-product__gallery { position: sticky; top: 6rem; }
.wgn-product__main { aspect-ratio: 4 / 5; background: linear-gradient(180deg,#fff,#f3eee6); border: 1px solid var(--wgn-line); border-radius: .4rem; display: flex; align-items: center; justify-content: center; padding: clamp(1.5rem,4vw,3rem); }
.wgn-product__main img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.wgn-product__thumbs { display: flex; gap: .75rem; margin-top: .9rem; }
.wgn-product__thumb { width: 4.5rem; aspect-ratio: 4/5; background: linear-gradient(180deg,#fff,#f3eee6); border: 1px solid var(--wgn-line); border-radius: .3rem; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: .4rem; }
.wgn-product__thumb.is-active { border-color: var(--wgn-red); }
.wgn-product__thumb img { max-width: 100%; max-height: 100%; }

/* Info */
.wgn-product__tag { display: inline-block; margin: 0 0 .75rem; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--wgn-ink-soft); }
.wgn-product__title { margin: 0; font-family: var(--wgn-serif); font-weight: 500; letter-spacing: -.02em; line-height: 1.1; font-size: clamp(1.9rem, 4vw, 2.9rem); }
.wgn-product__vintage { display: block; margin: .35rem 0 0; font-size: 1.05rem; color: var(--wgn-ink-soft); }
.wgn-product__awards { display: flex; gap: .5rem; flex-wrap: wrap; margin: 1.1rem 0 0; }
.wgn-product__award { background: var(--wgn-ink); color: #fff; font-size: .68rem; font-weight: 700; letter-spacing: .04em; padding: .4em .75em; border-radius: 1rem; }
.wgn-product__price { margin: 1.25rem 0 .25rem; font-family: var(--wgn-serif); font-size: 1.9rem; color: var(--wgn-ink); }
.wgn-product__price small { font-family: var(--wgn-sans); font-size: .78rem; color: var(--wgn-ink-soft); margin-left: .4em; }
.wgn-product__desc { margin: 1.25rem 0 0; line-height: 1.7; color: var(--wgn-ink-soft); }

.wgn-product__buy { display: flex; align-items: center; gap: .9rem; margin: 1.75rem 0; flex-wrap: wrap; }
.wgn-product__qty { display: inline-flex; align-items: center; border: 1px solid var(--wgn-line); border-radius: .25rem; background: var(--wgn-paper); }
.wgn-product__qty button { width: 2.6rem; height: 2.9rem; border: 0; background: transparent; font-size: 1.2rem; color: var(--wgn-ink); cursor: pointer; }
.wgn-product__qty input { width: 2.5rem; height: 2.9rem; border: 0; text-align: center; font-size: 1rem; background: transparent; color: var(--wgn-ink); -webkit-appearance: none; appearance: none; }
.wgn-product__buy .wgn-btn { flex: 1 1 14rem; }
.wgn-product__hint { font-size: .85rem; color: var(--wgn-ink-soft); }

/* Eckdaten */
.wgn-product__meta { margin: 0; border-top: 1px solid var(--wgn-line); }
.wgn-product__meta .wgn-product__spec { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-bottom: 1px solid var(--wgn-line); }
.wgn-product__meta dt { margin: 0; color: var(--wgn-ink-soft); font-size: .85rem; }
.wgn-product__meta dd { margin: 0; color: var(--wgn-ink); font-size: .9rem; font-weight: 600; text-align: right; }

/* Tabs/Akkordeon */
.wgn-product__tabs { max-width: var(--wgn-shell); margin: clamp(2.5rem,5vw,4rem) auto 0; }
.wgn-product__tabnav { display: flex; gap: 1.75rem; border-bottom: 1px solid var(--wgn-line); }
.wgn-product__tabnav button { background: transparent; border: 0; padding: .75rem 0; margin-bottom: -1px; font-family: var(--wgn-sans); font-weight: 600; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wgn-ink-soft); cursor: pointer; border-bottom: 2px solid transparent; }
.wgn-product__tabnav button.is-active { color: var(--wgn-ink); border-bottom-color: var(--wgn-red); }
.wgn-product__tabpanel { padding: 1.5rem 0 0; line-height: 1.7; color: var(--wgn-ink-soft); max-width: 60ch; }

@media (max-width: 860px) {
	.wgn-product__wrap { grid-template-columns: 1fr; gap: 2rem; }
	.wgn-product__gallery { position: static; }
}
@media (prefers-reduced-motion: reduce) {
	.woocommerce ul.products li.product { transition: none; }
}

/* =====================================================================
   TEIL C — Mein Konto (WooCommerce Account, Brand-Look)
   ===================================================================== */
.woocommerce-account .woocommerce { max-width: var(--wgn-shell); margin-inline: auto; }
.woocommerce-account h1, .woocommerce-account h2, .woocommerce-account h3 { font-family: var(--wgn-serif); font-weight: 500; color: var(--wgn-ink); }

/* Konto-Navigation (Sidebar) */
.woocommerce-account .woocommerce-MyAccount-navigation { width: 26%; }
.woocommerce-account .woocommerce-MyAccount-content { width: 70%; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--wgn-line); }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--wgn-line); border-left: 2px solid transparent; }
.woocommerce-MyAccount-navigation li a { display: block; padding: .95rem .9rem; font-family: var(--wgn-sans); font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--wgn-ink-soft); text-decoration: none; transition: color .2s, background .2s; }
.woocommerce-MyAccount-navigation li a:hover { color: var(--wgn-ink); background: var(--wgn-cream); }
.woocommerce-MyAccount-navigation li.is-active { border-left-color: var(--wgn-gold); background: var(--wgn-cream); }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--wgn-red); }

/* Dashboard-Inhalt */
.woocommerce-MyAccount-content { color: var(--wgn-ink); line-height: 1.7; }
.woocommerce-MyAccount-content a { color: var(--wgn-blue); }

/* Login / Registrierung als Karten */
.woocommerce-account .u-columns .col-1, .woocommerce-account .u-columns .col-2 {
	background: var(--wgn-cream); border: 1px solid var(--wgn-line); border-radius: .5rem; padding: clamp(1.5rem, 3vw, 2.4rem);
}
.woocommerce-account .u-columns .col-1 > h2, .woocommerce-account .u-columns .col-2 > h2 { margin-top: 0; }
.woocommerce form.login, .woocommerce form.register { border: 0; padding: 0; margin: 0; }
.woocommerce form .form-row label { font-size: .85rem; color: var(--wgn-ink-soft); margin-bottom: .3rem; }

/* Adressen */
.woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.woocommerce-Address { background: var(--wgn-cream); border: 1px solid var(--wgn-line); border-radius: .5rem; padding: 1.5rem; }
.woocommerce-Address-title h3 { margin-top: 0; }
.woocommerce-Address address { font-style: normal; color: var(--wgn-ink-soft); line-height: 1.8; }

/* Bestellungen */
.woocommerce-orders-table th { font-family: var(--wgn-sans); text-transform: uppercase; letter-spacing: .06em; font-size: .74rem; color: var(--wgn-ink-soft); }

@media (max-width: 760px) {
	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content { width: 100%; float: none; }
	.woocommerce-Addresses { grid-template-columns: 1fr; }
}

/* ===========================================================
   TEIL D – Widerruf-Formular (Germanized / EU Order Withdrawal Button)
   =========================================================== */
.order-withdrawal-request {
	max-width: 620px; margin: 0 auto;
	background: var(--wgn-paper);
	border: 1px solid var(--wgn-line); border-radius: .6rem;
	padding: clamp(1.5rem, 4vw, 2.6rem);
	box-shadow: var(--wgn-shadow);
}
.order-withdrawal-request .eu-owb-form-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; }
.order-withdrawal-request .form-row { margin: 0; display: flex; flex-direction: column; }
.order-withdrawal-request .form-row-full { grid-column: 1 / -1; }
.order-withdrawal-request .form-row label {
	font-family: var(--wgn-sans); font-size: .82rem; font-weight: 600;
	letter-spacing: .02em; color: var(--wgn-ink-soft); margin-bottom: .4rem;
}
.order-withdrawal-request .required_field { color: var(--wgn-bordeaux); }
.order-withdrawal-request .input-text,
.order-withdrawal-request input[type="text"],
.order-withdrawal-request input[type="email"],
.order-withdrawal-request textarea {
	width: 100%; box-sizing: border-box;
	font-family: var(--wgn-sans); font-size: 1rem; color: var(--wgn-ink);
	background: #fff; border: 1px solid var(--wgn-line); border-radius: .4rem;
	padding: .7rem .85rem; transition: border-color .2s var(--wgn-ease), box-shadow .2s var(--wgn-ease);
}
.order-withdrawal-request .input-text:focus,
.order-withdrawal-request input:focus,
.order-withdrawal-request textarea:focus {
	outline: none; border-color: var(--wgn-gold);
	box-shadow: 0 0 0 3px rgba(132,120,76,.15);
}
.order-withdrawal-request .form-row-submit { grid-column: 1 / -1; margin-top: .5rem; }
.order-withdrawal-request .woocommerce-button,
.order-withdrawal-request button[type="submit"] {
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--wgn-sans); font-weight: 600; font-size: .92rem;
	letter-spacing: .04em; text-transform: uppercase;
	background: var(--wgn-red); color: #fff; border: 1px solid var(--wgn-red);
	border-radius: .4rem; padding: .85rem 1.8rem; cursor: pointer;
	transition: background .2s var(--wgn-ease), transform .1s var(--wgn-ease);
}
.order-withdrawal-request .woocommerce-button:hover,
.order-withdrawal-request button[type="submit"]:hover { background: var(--wgn-red-hover); border-color: var(--wgn-red-hover); }
.order-withdrawal-request .woocommerce-button:active { transform: translateY(1px); }
.eu-owb-notice-wrapper .notice,
.order-withdrawal-request .notice {
	background: var(--wgn-cream); border-left: 3px solid var(--wgn-gold);
	padding: .9rem 1.1rem; border-radius: .3rem; color: var(--wgn-ink-soft);
	font-size: .9rem; line-height: 1.6; margin-bottom: 1rem;
}
.order-withdrawal-request .form-row-manually-select-items { flex-direction: row; align-items: center; gap: .55rem; }
.order-withdrawal-request .input-checkbox { width: auto; }
@media (max-width: 560px) {
	.order-withdrawal-request .eu-owb-form-fields { grid-template-columns: 1fr; }
}

/* =====================================================================
   Shop-Filter-Leiste (Weintyp/Rebsorte/Jahrgang) – Markup aus
   wieninger-booking (Wgnb_Shop_Filter), Werte via WooCommerce Layered Nav.
   ===================================================================== */
.wgnb-filter {
	display: flex; flex-wrap: wrap; align-items: center; gap: .6rem;
	margin: 0 0 1.75rem; padding: .9rem 1rem;
	background: var(--wgn-paper); border: 1px solid var(--wgn-line); border-radius: .4rem;
	font-family: var(--wgn-sans);
}
.wgnb-filter__label {
	font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
	color: var(--wgn-ink-soft); margin-right: .25rem;
}
.wgnb-filter__field select {
	appearance: none; -webkit-appearance: none;
	font-family: var(--wgn-sans); font-size: .88rem; color: var(--wgn-ink);
	background: #fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%235f5c49' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right .8em center;
	border: 1px solid var(--wgn-line); border-radius: .25rem;
	padding: .55em 2.2em .55em .8em; cursor: pointer; min-width: 10.5rem;
}
.wgnb-filter__field select:focus-visible { outline: 2px solid var(--wgn-red); outline-offset: 2px; }
.wgnb-filter__reset {
	font-size: .82rem; color: var(--wgn-ink-soft); text-decoration: underline;
	text-underline-offset: 2px; margin-left: .25rem;
}
.wgnb-filter__reset:hover { color: var(--wgn-red); }
.wgnb-filter__submit {
	font-family: var(--wgn-sans); font-size: .82rem; font-weight: 600;
	padding: .55em 1.2em; border: 1.5px solid var(--wgn-red); border-radius: .25rem;
	background: var(--wgn-red); color: #fff; cursor: pointer;
}
@media (max-width: 640px) {
	.wgnb-filter__field { flex: 1 1 100%; }
	.wgnb-filter__field select { width: 100%; }
}


/* =====================================================================
   Woo-10-Buttonfarben hart uebersteuern: WooCommerce liefert eigene
   Button-Styles mit hoeherer Spezifitaet (lila Default) -> !important.
   ===================================================================== */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce-page a.button, .woocommerce-page button.button,
:where(body) .wc-block-components-button,
.woocommerce #respond input#submit {
	background: var(--wgn-ink) !important; border-color: var(--wgn-ink) !important; color: #fff !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover {
	background: #000 !important; border-color: #000 !important; color: #fff !important;
}
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button, .woocommerce #respond input#submit.alt,
.woocommerce button[name="add-to-cart"] {
	background: var(--wgn-red) !important; border-color: var(--wgn-red) !important; color: #fff !important;
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover, .woocommerce button[name="add-to-cart"]:hover {
	background: var(--wgn-red-hover) !important; border-color: var(--wgn-red-hover) !important;
}

/* Germanized EU-Widerrufsbutton (Embed auf Woo-Seiten): statt roh unter dem
   Footer zu haengen -> als dezente, zentrierte Zeile im Seitenton. */
.eu-owb-order-withdraw-from-contract-button {
	margin: 0; padding: 1.1rem var(--wgn-pad-x);
	background: var(--wgn-paper); border-top: 1px solid var(--wgn-line);
	text-align: center;
}
.eu-owb-order-withdraw-from-contract-button a.button {
	display: inline-flex; align-items: center; justify-content: center;
	background: transparent !important; color: var(--wgn-ink-soft) !important;
	border: 1.5px solid var(--wgn-line) !important; border-radius: .2rem;
	font-family: var(--wgn-sans); font-size: .78rem; font-weight: 600;
	letter-spacing: .08em; text-transform: uppercase; padding: .7em 1.4em;
}
.eu-owb-order-withdraw-from-contract-button a.button:hover {
	background: var(--wgn-ink) !important; color: #fff !important; border-color: var(--wgn-ink) !important;
}


/* ---------- Shop-Übersicht: Karten-Feinschliff ---------- */
/* Preis prominent (Serif wie auf den Wein-Karten), responsive */
.woocommerce ul.products li.product .price {
	font-family: var(--wgn-serif); font-weight: 600;
	/* !important: Woo setzt .857em/zentriert mit gleicher Spezifitaet nach uns */
	font-size: clamp(1.15rem, 2.4vw, 1.4rem) !important;
	color: var(--wgn-ink) !important;
	display: block; text-align: left !important;
	margin: .2rem 1.25rem .35rem !important;
	padding: 0 !important; /* Woo gibt dem .price zusaetzlich padding-left */
}
.woocommerce ul.products li.product .price .amount { color: var(--wgn-ink); }
/* Germanized-Zusatzhinweise (inkl. MwSt. / zzgl. Versandkosten) dezent darunter */
.woocommerce ul.products li.product .wc-gzd-additional-info,
.woocommerce ul.products li.product .price-unit {
	margin: 0 1.25rem; font-size: .72rem; color: var(--wgn-ink-soft);
}
/* h2-Element im Selektor + !important: Woo-Core setzt padding .5em 0 gleichrangig */
.woocommerce ul.products li.product h2.woocommerce-loop-product__title {
	font-family: var(--wgn-serif); font-weight: 600; font-size: 1.1rem; line-height: 1.3;
	color: var(--wgn-ink); text-align: left; padding: .5rem 1.25rem 0 !important;
}

/* Karten-Grid: gleiche Hoehen je Reihe, Warenkorb-Button unten ausgerichtet */
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem; margin: 0 0 2rem !important;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product {
	width: auto !important; float: none !important; margin: 0 !important;
	display: flex; flex-direction: column;
}
.woocommerce ul.products li.product .button {
	margin: .85rem 1.25rem 1.25rem !important;
	margin-top: auto !important; text-align: center;
}
@media (max-width: 1024px) { .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 768px)  { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } }
/* Flaschen nicht beschneiden: contain auf hellem Panel */
.woocommerce ul.products li.product a img {
	object-fit: contain; aspect-ratio: 3 / 4; width: 100%; height: auto;
	background: linear-gradient(180deg, #ffffff 0%, #f4efe7 100%);
	padding: 1.25rem;
}
@media (max-width: 560px) {
	.woocommerce ul.products li.product .price { font-size: 1.2rem !important; }
}


/* Nach AJAX-Add blendet Woo einen "Warenkorb anzeigen"-Link in die Karte —
   redundant, weil unser Drawer aufgeht, und er klebt linksbuendig. Weg damit. */
.woocommerce ul.products li.product .added_to_cart { display: none !important; }


/* =====================================================================
   Produktdetailseite (classic Woo single, Hooks aus Wgn_Product_Page)
   ===================================================================== */
.single-product div.product {
	display: grid !important;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
	max-width: var(--wgn-shell); margin-inline: auto;
	padding: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(2.5rem, 5vw, 4rem);
}
.single-product div.product .woocommerce-product-gallery,
.single-product div.product .summary.entry-summary {
	float: none !important; width: 100% !important; margin: 0 !important;
}
.single-product div.product .woocommerce-product-gallery {
	background: linear-gradient(180deg, #ffffff 0%, #f4efe7 100%);
	border: 1px solid var(--wgn-line); border-radius: .4rem;
	padding: clamp(1.5rem, 4vw, 3rem);
}
.single-product div.product .woocommerce-product-gallery img {
	object-fit: contain; width: 100%; height: auto; max-height: 34rem;
}

/* ---- Kaufspalte ---- */
.wgn-pp__kicker {
	margin: 0 0 .6rem; color: var(--wgn-gold);
	font-family: var(--wgn-sans); font-size: .74rem; font-weight: 700;
	letter-spacing: .2em; text-transform: uppercase;
}
.single-product div.product .product_title {
	font-family: var(--wgn-serif); font-weight: 600; color: var(--wgn-ink);
	font-size: clamp(1.9rem, 3.6vw, 2.7rem); line-height: 1.12; margin: 0 0 .9rem;
}
.single-product div.product .summary > .price {
	font-family: var(--wgn-serif); font-weight: 600; color: var(--wgn-ink) !important;
	font-size: clamp(1.5rem, 2.6vw, 1.9rem) !important; margin: 0 0 .1rem;
}
.single-product div.product .summary .wc-gzd-additional-info,
.single-product div.product .summary .price-unit,
.single-product div.product .summary .legal-price-info {
	font-size: .78rem; color: var(--wgn-ink-soft); margin: 0 0 .15rem;
}

/* Fakten-Haarlinien */
.wgn-pp__facts { margin: 1.4rem 0 1.5rem; padding: 0; max-width: 26rem; }
.wgn-pp__facts > div {
	display: flex; justify-content: space-between; gap: 1rem;
	padding: .55rem 0; border-top: 1px solid var(--wgn-line);
	font-family: var(--wgn-sans); font-size: .92rem;
}
.wgn-pp__facts > div:last-child { border-bottom: 1px solid var(--wgn-line); }
.wgn-pp__facts dt { color: var(--wgn-ink-soft); font-weight: 400; margin: 0; }
.wgn-pp__facts dd { color: var(--wgn-ink); font-weight: 600; margin: 0; text-align: right; }

/* Menge + Button in einer Reihe */
.single-product div.product form.cart {
	display: flex; align-items: stretch; gap: .7rem; margin: 1.25rem 0 0 !important;
}
.single-product div.product form.cart .quantity { display: flex; }
.single-product div.product form.cart .quantity .qty {
	width: 4.2rem; height: 100%; min-height: 3.1rem;
	text-align: center; font-family: var(--wgn-sans); font-size: 1rem;
	border: 1.5px solid var(--wgn-line); border-radius: .2rem; background: #fff;
	color: var(--wgn-ink);
}
.single-product div.product form.cart .single_add_to_cart_button {
	flex: 1; min-height: 3.1rem; font-size: .88rem; letter-spacing: .1em;
}

/* USP-Zeile */
.wgn-pp__usps { list-style: none; margin: 1.1rem 0 0; padding: 0; display: grid; gap: .35rem; }
.wgn-pp__usps li {
	display: flex; align-items: center; gap: .5rem;
	font-family: var(--wgn-sans); font-size: .84rem; color: var(--wgn-ink-soft);
}
.wgn-pp__usps li svg { color: var(--wgn-gold); flex: 0 0 auto; }

/* Kategorien-Meta dezent */
.single-product div.product .product_meta {
	margin-top: 1.4rem; font-family: var(--wgn-sans); font-size: .8rem; color: var(--wgn-ink-soft);
}
.single-product div.product .product_meta a { color: var(--wgn-blue); }

/* ---- Tabs: ruhige Underline-Navigation ueber volle Breite ---- */
.single-product div.product .woocommerce-tabs { grid-column: 1 / -1; margin-top: clamp(1.5rem, 3vw, 2.5rem); }
.single-product div.product .woocommerce-tabs ul.tabs {
	display: flex; gap: 1.75rem; margin: 0 0 1.5rem !important; padding: 0 !important;
	border-bottom: 1px solid var(--wgn-line); background: none;
}
.single-product div.product .woocommerce-tabs ul.tabs::before,
.single-product div.product .woocommerce-tabs ul.tabs::after,
.single-product div.product .woocommerce-tabs ul.tabs li::before,
.single-product div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.single-product div.product .woocommerce-tabs ul.tabs li {
	margin: 0 !important; padding: 0 !important;
	background: none !important; border: 0 !important; border-radius: 0 !important;
}
.single-product div.product .woocommerce-tabs ul.tabs li a {
	display: inline-block; padding: .7rem 0; margin-bottom: -1px;
	font-family: var(--wgn-sans); font-weight: 600; font-size: .82rem;
	letter-spacing: .08em; text-transform: uppercase;
	color: var(--wgn-ink-soft) !important; border-bottom: 2px solid transparent;
}
.single-product div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--wgn-ink) !important; border-bottom-color: var(--wgn-red);
}
.single-product div.product .woocommerce-tabs .panel {
	max-width: 72ch; font-family: var(--wgn-sans); color: var(--wgn-ink-soft); line-height: 1.7;
}
.single-product div.product .woocommerce-tabs .panel h2:first-of-type { display: none; }
.single-product div.product table.woocommerce-product-attributes { border: 0; }
.single-product div.product table.woocommerce-product-attributes th,
.single-product div.product table.woocommerce-product-attributes td {
	border: 0; border-top: 1px solid var(--wgn-line); padding: .55rem 0; background: none !important;
	font-style: normal;
}
.single-product div.product table.woocommerce-product-attributes th { color: var(--wgn-ink-soft); font-weight: 400; width: 10rem; }
.single-product div.product table.woocommerce-product-attributes td { color: var(--wgn-ink); font-weight: 600; }

/* ---- Related: volle Breite, Karten-Look kommt vom Archiv-CSS ---- */
.single-product div.product .related.products { grid-column: 1 / -1; margin-top: clamp(2rem, 4vw, 3rem); }
.single-product div.product .related.products > h2 {
	font-family: var(--wgn-serif); font-weight: 500; color: var(--wgn-ink);
	font-size: clamp(1.5rem, 2.6vw, 2rem); margin: 0 0 1.25rem;
}

@media (max-width: 900px) {
	.single-product div.product { grid-template-columns: 1fr; gap: 1.75rem; }
	.single-product div.product .woocommerce-product-gallery img { max-height: 24rem; }
}

/* Weinclub-Hinweis auf Warenkorb/Kassa (Block-Cart-kompatibel, aus wieninger-booking) */
.wgnb-member-note {
	max-width: var(--wgn-shell); margin: 0 auto 1.25rem;
	padding: .8rem 1.1rem;
	background: var(--wgn-paper); border: 1px solid var(--wgn-gold);
	border-left-width: .3rem; border-radius: .25rem;
	font-family: var(--wgn-sans); font-size: .88rem; color: var(--wgn-ink);
}


/* =====================================================================
   WooCommerce BLOCKS (Warenkorb / Kasse / Bestellbestaetigung) im CI
   ===================================================================== */
/* Ueberschriften in Serif */
.wp-block-woocommerce-checkout h1, .wp-block-woocommerce-cart h1,
.woocommerce-order-received h1, .wc-block-components-title,
.wc-block-components-checkout-step__title,
.wc-block-order-confirmation-summary-list-item__key,
h1.wp-block-post-title {
	font-family: var(--wgn-serif) !important; font-weight: 600; color: var(--wgn-ink);
}
/* Primaer-Button (Jetzt kaufen / Zur Kasse) */
.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-cart .wc-block-cart__submit-button,
.wc-block-components-button:not(.is-link) {
	background: var(--wgn-red) !important; color: #fff !important;
	border: 1.5px solid var(--wgn-red) !important; border-radius: .2rem !important;
	font-family: var(--wgn-sans) !important; font-weight: 600 !important;
	letter-spacing: .08em; text-transform: uppercase; font-size: .88rem !important;
}
.wc-block-components-checkout-place-order-button:hover,
.wp-block-woocommerce-cart .wc-block-cart__submit-button:hover,
.wc-block-components-button:not(.is-link):hover {
	background: var(--wgn-red-hover) !important; border-color: var(--wgn-red-hover) !important;
}
/* Eingabefelder */
.wc-block-components-text-input input, .wc-block-components-combobox input,
.wc-block-components-country-input input, .wc-block-components-select select {
	border-color: var(--wgn-line) !important; border-radius: .25rem !important;
	color: var(--wgn-ink) !important; font-family: var(--wgn-sans);
}
.wc-block-components-text-input input:focus, .wc-block-components-combobox input:focus {
	border-color: var(--wgn-red) !important; box-shadow: 0 0 0 1px var(--wgn-red) !important;
}
/* Radios/Checkboxen im CI-Oliv */
.wc-block-checkout input[type=radio], .wc-block-checkout input[type=checkbox],
.wp-block-woocommerce-cart input[type=radio], .wp-block-woocommerce-cart input[type=checkbox] {
	accent-color: var(--wgn-red);
}
.wc-block-components-radio-control__option, .wc-block-components-checkbox {
	font-family: var(--wgn-sans);
}
/* Ausgewaehlte Optionen/Rahmen */
.wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control__option--checked-option-highlighted {
	border-color: var(--wgn-red) !important;
}
/* Summen/Betraege in Serif */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-formatted-money-amount {
	font-family: var(--wgn-serif);
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 1.25rem; font-weight: 600; }
/* Bestellbestaetigung: Karten-Look fuer die Zusammenfassung */
.wc-block-order-confirmation-summary {
	background: var(--wgn-paper); border: 1px solid var(--wgn-line); border-radius: .4rem;
}
/* Produktbilder in Cart/Checkout: Flaschen nicht beschneiden */
.wc-block-components-order-summary-item__image img,
.wc-block-cart-item__image img {
	object-fit: contain; background: #fff; border: 1px solid var(--wgn-line); border-radius: .25rem;
}
