/* ATG Pickup & Delivery Pricing – frontend v0.2.5 */

.atg-pdp-pricing {
	--atg-pdp-green: #148344;
	--atg-pdp-green-dark: #107039;
	--atg-pdp-green-soft: #f4faf6;
	--atg-pdp-red: #b52b28;
	--atg-pdp-text: #1f272d;
	--atg-pdp-muted: #737d85;
	--atg-pdp-border: #dde2e5;
	--atg-pdp-surface: #fff;
	--atg-pdp-unavailable: #f6f7f8;
	box-sizing: border-box;
	container-name: atg-pdp-pricing;
	container-type: inline-size;
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	max-width: 100%;
	min-width: 0;
	width: 100%;
}

.atg-pdp-pricing *,
.atg-pdp-pricing *::before,
.atg-pdp-pricing *::after {
	box-sizing: border-box;
}

/* Keep the complete monetary amount, its prefix and currency together. */
.atg-pdp-price-line,
.atg-pdp-price-amount,
.atg-pdp-price-amount .woocommerce-Price-amount,
.atg-pdp-price-amount .woocommerce-Price-amount bdi,
.atg-pdp-price-amount .woocommerce-Price-currencySymbol,
.atg-pdp-pricing .woocommerce-Price-amount,
.atg-pdp-pricing .woocommerce-Price-amount bdi,
.atg-pdp-pricing .woocommerce-Price-currencySymbol {
	display: inline-flex;
	overflow-wrap: normal;
	white-space: nowrap;
	word-break: keep-all;
}

.atg-pdp-price-line {
	align-items: baseline;
	gap: 0.28em;
	min-width: max-content;
}

.atg-pdp-price-prefix {
	font-size: 0.72em;
	font-weight: 650;
	letter-spacing: 0;
	white-space: nowrap;
}

.atg-pdp-price-unit {
	font-size: 0.6em;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.2;
	white-space: nowrap;
}


/* Variation state changes are informational and remain in normal flow. */
.atg-pdp-pricing.is-loading-variation-price .atg-pdp-loop-price-box,
.atg-pdp-pricing.is-loading-variation-price .atg-pdp-loop-customer-price,
.atg-pdp-pricing.is-loading-variation-price .atg-pdp-price-grid,
.atg-pdp-pricing.is-loading-variation-price .atg-pdp-customer-price {
	opacity: 0.68;
	transition: opacity 120ms ease;
}

.atg-pdp-pricing.has-variation-price-error .atg-pdp-loop-price-box,
.atg-pdp-pricing.has-variation-price-error .atg-pdp-loop-customer-price,
.atg-pdp-pricing.has-variation-price-error .atg-pdp-price-grid,
.atg-pdp-pricing.has-variation-price-error .atg-pdp-customer-price {
	border-color: var(--atg-pdp-border);
}

/* -------------------------------------------------------------------------
 * Product archives: one independent, compact information block.
 * It stays in normal document flow and never behaves like a control.
 * ---------------------------------------------------------------------- */
.atg-pdp-pricing--loop {
	align-self: stretch;
	clear: both;
	display: block;
	float: none;
	flex: 0 0 100%;
	grid-column: 1 / -1;
	isolation: isolate;
	margin: 8px 0 11px;
	max-width: 100%;
	min-width: 0;
	overflow: visible;
	position: relative;
	width: 100%;
	z-index: auto;
}

/* Variable archive forms: the pricing block remains independent from quantity/button wrappers. */
form.variations_form > .atg-pdp-pricing--loop,
form.variations_form .variations + .atg-pdp-pricing--loop,
form.variations_form .atg-pdp-pricing--loop + .single_variation_wrap {
	max-width: 100%;
	min-width: 0;
}

.atg-pdp-pricing--loop .atg-pdp-loop-price-box {
	background: var(--atg-pdp-surface);
	border: 1px solid var(--atg-pdp-border);
	border-radius: 9px;
	cursor: default;
	display: block;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.atg-pdp-pricing--loop .atg-pdp-loop-price-row {
	align-items: center;
	background: var(--atg-pdp-surface);
	display: grid;
	gap: 7px;
	grid-template-columns: minmax(0, 1fr) auto;
	min-height: 34px;
	min-width: 0;
	padding: 7px 9px;
	position: relative;
	width: 100%;
}

.atg-pdp-pricing--loop .atg-pdp-loop-price-row + .atg-pdp-loop-price-row {
	border-top: 1px solid var(--atg-pdp-border);
}

.atg-pdp-pricing--loop .atg-pdp-loop-price-row.is-unavailable {
	background: var(--atg-pdp-unavailable);
}

.atg-pdp-pricing--loop .atg-pdp-loop-price-row__label {
	color: var(--atg-pdp-text);
	font-size: 11.5px;
	font-weight: 650;
	letter-spacing: 0;
	line-height: 1.2;
	min-width: 0;
	overflow: visible;
	text-align: left;
	text-overflow: clip;
	white-space: nowrap;
	word-break: normal;
}

.atg-pdp-pricing--loop .atg-pdp-loop-price-row--pickup .atg-pdp-loop-price-row__label {
	color: var(--atg-pdp-green);
}

.atg-pdp-pricing--loop .atg-pdp-loop-price-row__value {
	align-items: flex-end;
	color: var(--atg-pdp-text);
	display: flex;
	flex-direction: column;
	font-size: 16.5px;
	font-weight: 720;
	gap: 1px;
	justify-self: end;
	letter-spacing: -0.018em;
	line-height: 1.08;
	max-width: 100%;
	min-width: 0;
	overflow: visible;
	text-align: right;
	white-space: nowrap;
}

.atg-pdp-pricing--loop .atg-pdp-loop-price-row--pickup .atg-pdp-loop-price-row__value {
	color: var(--atg-pdp-green-dark);
}

.atg-pdp-pricing--loop .atg-pdp-loop-price-row__value .atg-pdp-price-unit {
	color: var(--atg-pdp-muted);
	font-size: 9px;
	font-weight: 600;
	line-height: 1.1;
}

.atg-pdp-pricing--loop .atg-pdp-loop-price-follow {
	color: var(--atg-pdp-muted);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.2;
	white-space: nowrap;
}

/* Loop customer price: one price row, no duplicated transition controls. */
.atg-pdp-pricing--loop .atg-pdp-loop-customer-price {
	background: var(--atg-pdp-surface);
	border: 1px solid var(--atg-pdp-border);
	border-radius: 9px;
	cursor: default;
	display: grid;
	gap: 3px;
	padding: 8px 9px;
	width: 100%;
}

.atg-pdp-pricing--loop .atg-pdp-loop-customer-price__row {
	align-items: center;
	display: grid;
	gap: 7px;
	grid-template-columns: minmax(0, 1fr) auto;
	min-width: 0;
}

.atg-pdp-pricing--loop .atg-pdp-loop-customer-price__label {
	color: var(--atg-pdp-green);
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}

.atg-pdp-pricing--loop .atg-pdp-loop-customer-price__value {
	align-items: flex-end;
	color: var(--atg-pdp-green-dark);
	display: flex;
	flex-direction: column;
	font-size: 16.5px;
	font-weight: 720;
	justify-self: end;
	letter-spacing: -0.018em;
	line-height: 1.08;
	text-align: right;
}

.atg-pdp-pricing--loop .atg-pdp-loop-customer-price__note {
	color: var(--atg-pdp-muted);
	font-size: 9.5px;
	font-weight: 500;
	line-height: 1.2;
}

/* If the next Woodmart control is a flex item, keep both blocks on full rows. */
.atg-pdp-pricing--loop + .wd-add-btn,
.atg-pdp-pricing--loop + .wd-add-btn-replace,
.atg-pdp-pricing--loop + .wd-add-btn-replace-hover,
.atg-pdp-pricing--loop + .add-to-cart-loop,
.atg-pdp-pricing--loop + .product-add-to-cart,
.atg-pdp-pricing--loop + .wd-product-footer {
	flex-basis: 100%;
	max-width: 100%;
	min-width: 0;
	width: 100%;
}

/* Component-width refinements: words remain complete and prices never split. */
@container atg-pdp-pricing (max-width: 220px) {
	.atg-pdp-pricing--loop .atg-pdp-loop-price-row {
		gap: 5px;
		padding: 7px 8px;
	}

	.atg-pdp-pricing--loop .atg-pdp-loop-price-row__label,
	.atg-pdp-pricing--loop .atg-pdp-loop-customer-price__label {
		font-size: 10.75px;
	}

	.atg-pdp-pricing--loop .atg-pdp-loop-price-row__value,
	.atg-pdp-pricing--loop .atg-pdp-loop-customer-price__value {
		font-size: 15.5px;
	}
}

@container atg-pdp-pricing (max-width: 175px) {
	.atg-pdp-pricing--loop .atg-pdp-loop-price-row {
		gap: 4px;
		min-height: 32px;
		padding: 6px 7px;
	}

	.atg-pdp-pricing--loop .atg-pdp-loop-price-row__label,
	.atg-pdp-pricing--loop .atg-pdp-loop-customer-price__label {
		font-size: 10px;
	}

	.atg-pdp-pricing--loop .atg-pdp-loop-price-row__value,
	.atg-pdp-pricing--loop .atg-pdp-loop-customer-price__value {
		font-size: 14px;
	}

	.atg-pdp-pricing--loop .atg-pdp-loop-price-follow {
		font-size: 10px;
	}

	.atg-pdp-pricing--loop .atg-pdp-loop-customer-price {
		padding: 7px;
	}

	.atg-pdp-pricing--loop .atg-pdp-loop-customer-price__note {
		font-size: 9px;
	}
}

@container atg-pdp-pricing (max-width: 155px) {
	.atg-pdp-pricing--loop .atg-pdp-loop-price-row__label,
	.atg-pdp-pricing--loop .atg-pdp-loop-customer-price__label {
		font-size: 9.5px;
	}

	.atg-pdp-pricing--loop .atg-pdp-loop-price-row__value,
	.atg-pdp-pricing--loop .atg-pdp-loop-customer-price__value {
		font-size: 13.25px;
	}

	.atg-pdp-pricing--loop .atg-pdp-loop-price-follow {
		font-size: 9.5px;
	}
}

/* -------------------------------------------------------------------------
 * Single product page: retain the established larger two-column presentation.
 * ---------------------------------------------------------------------- */
.atg-pdp-pricing--single,
.atg-pdp-pricing--single-variable {
	clear: both;
	margin: 20px 0 18px;
	width: 100%;
}

.atg-pdp-price-grid {
	background: var(--atg-pdp-surface);
	border: 1px solid var(--atg-pdp-border);
	border-radius: 12px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	overflow: hidden;
	width: 100%;
}

.atg-pdp-price-card {
	align-content: center;
	background: var(--atg-pdp-surface);
	display: grid;
	gap: 7px;
	min-height: 105px;
	min-width: 0;
	padding: 17px 19px 16px;
	text-align: left;
}

.atg-pdp-price-card + .atg-pdp-price-card {
	border-left: 1px solid var(--atg-pdp-border);
}

.atg-pdp-price-card--pickup {
	box-shadow: inset 0 2px 0 var(--atg-pdp-green);
}

.atg-pdp-price-card--delivery:not(.is-unavailable) {
	box-shadow: inset 0 2px 0 var(--atg-pdp-red);
}

.atg-pdp-price-card.is-unavailable {
	background: var(--atg-pdp-unavailable);
	box-shadow: none;
}

.atg-pdp-price-card__label {
	color: var(--atg-pdp-muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
	white-space: nowrap;
}

.atg-pdp-price-card--pickup .atg-pdp-price-card__label {
	color: var(--atg-pdp-green);
}

.atg-pdp-price-card--delivery:not(.is-unavailable) .atg-pdp-price-card__label {
	color: var(--atg-pdp-red);
}

.atg-pdp-price-card__value,
.atg-pdp-customer-price__value {
	align-items: baseline;
	color: var(--atg-pdp-text);
	display: flex;
	flex-wrap: wrap;
	font-size: clamp(24px, 4.7cqw, 29px);
	font-weight: 760;
	gap: 1px 4px;
	letter-spacing: -0.025em;
	line-height: 1.08;
	max-width: 100%;
	min-width: 0;
}

.atg-pdp-price-card--pickup .atg-pdp-price-card__value {
	color: var(--atg-pdp-green-dark);
}

.atg-pdp-price-card__note,
.atg-pdp-customer-price__note {
	color: var(--atg-pdp-muted);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.25;
	white-space: normal;
}

.atg-pdp-price-unavailable {
	color: #6f7880;
	display: inline-block;
	font-size: 1.15em;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
}

.atg-pdp-customer-price {
	background: linear-gradient(135deg, var(--atg-pdp-green-soft), #fff 72%);
	border: 1px solid #b9d8c5;
	border-radius: 10px;
	display: grid;
	gap: 7px;
	padding: 16px 18px;
}

.atg-pdp-customer-price__label {
	color: var(--atg-pdp-green);
	font-size: 10px;
	font-weight: 750;
	line-height: 1.2;
}

.atg-pdp-customer-price__value {
	color: var(--atg-pdp-green-dark);
	font-size: clamp(25px, 5cqw, 30px);
}

/* Variable single-product anchor is the only component repositioned by JS. */
.atg-pdp-single-variable-anchor {
	width: 100%;
}

.atg-pdp-single-variable-anchor > .atg-pdp-pricing {
	margin-top: 14px;
}

@container atg-pdp-pricing (max-width: 390px) {
	.atg-pdp-pricing--single .atg-pdp-price-grid,
	.atg-pdp-pricing--single-variable .atg-pdp-price-grid {
		grid-template-columns: 1fr;
	}

	.atg-pdp-pricing--single .atg-pdp-price-card + .atg-pdp-price-card,
	.atg-pdp-pricing--single-variable .atg-pdp-price-card + .atg-pdp-price-card {
		border-left: 0;
		border-top: 1px solid var(--atg-pdp-border);
	}
}

/* Fallback for browsers without container-query support. */
@supports not (container-type: inline-size) {
	@media (max-width: 480px) {
		.atg-pdp-pricing--single .atg-pdp-price-grid,
		.atg-pdp-pricing--single-variable .atg-pdp-price-grid {
			grid-template-columns: 1fr;
		}

		.atg-pdp-pricing--single .atg-pdp-price-card + .atg-pdp-price-card,
		.atg-pdp-pricing--single-variable .atg-pdp-price-card + .atg-pdp-price-card {
			border-left: 0;
			border-top: 1px solid var(--atg-pdp-border);
		}
	}
}

/* v0.1.7: quiet SelectLine Price-Core tier presentation (single product only). */
.atg-pdp-tier-prices{
  margin-top:12px;
  border:1px solid rgba(17,24,39,.10);
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}
.atg-pdp-tier-prices__title{
  display:block;
  padding:10px 12px 7px;
  font-size:13px;
  font-weight:600;
  color:#374151;
}
.atg-pdp-tier-prices__table{display:block;width:100%;}
.atg-pdp-tier-prices__row{
  display:grid;
  grid-template-columns:minmax(110px,1.2fr) 1fr 1fr;
  gap:12px;
  padding:8px 12px;
  border-top:1px solid rgba(17,24,39,.07);
  font-size:13px;
  align-items:center;
}
.atg-pdp-tier-prices__row--head{
  font-size:11px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.03em;
  color:#6b7280;
  background:#fafafa;
}
@media (max-width:520px){
  .atg-pdp-tier-prices__row{grid-template-columns:1.15fr 1fr 1fr;gap:7px;padding:8px 10px;font-size:12px;}
}

/* v0.2.0: linked SelectLine customers see one neutral price and one neutral tier column. */
.atg-pdp-tier-prices--customer .atg-pdp-tier-prices__row{
  grid-template-columns:minmax(110px,1.2fr) 1fr;
}
.atg-pdp-pricing.has-selectline-customer-price .atg-pdp-customer-price{
  background:#fff;
  border-color:var(--atg-pdp-border);
}
.atg-pdp-pricing.has-selectline-customer-price .atg-pdp-customer-price__label{
  color:var(--atg-pdp-muted);
  font-size:11px;
}
@media (max-width:520px){
  .atg-pdp-tier-prices--customer .atg-pdp-tier-prices__row{
    grid-template-columns:1.15fr 1fr;
  }
}

/* v0.2.1: linked SelectLine customers see amount + price unit only. */
.atg-pdp-pricing.has-selectline-customer-price .atg-pdp-loop-customer-price__row{
  grid-template-columns:1fr;
}
.atg-pdp-pricing.has-selectline-customer-price .atg-pdp-loop-customer-price__value{
  justify-self:start;
  align-items:flex-start;
  text-align:left;
}
.atg-pdp-pricing.has-selectline-customer-price .atg-pdp-customer-price{
  gap:0;
}


/* v0.2.2: compact simple-product cards + guaranteed visual gap after "ab". */
.atg-pdp-pricing--loop.atg-pdp-pricing--simple{
  margin-top:7px;
  margin-bottom:8px;
}
.atg-pdp-pricing--loop.atg-pdp-pricing--simple.has-selectline-customer-price .atg-pdp-loop-customer-price{
  min-height:34px;
  padding:7px 9px;
}
.atg-pdp-pricing.has-selectline-customer-price .atg-pdp-loop-customer-price__value{
  align-items:baseline;
  flex-direction:row;
  flex-wrap:nowrap;
  gap:4px;
}
.atg-pdp-pricing.has-selectline-customer-price .atg-pdp-loop-customer-price__value .atg-pdp-price-line{
  flex:0 0 auto;
}
@container atg-pdp-pricing (max-width:175px){
  .atg-pdp-pricing.has-selectline-customer-price .atg-pdp-loop-customer-price__value{
    flex-wrap:wrap;
    row-gap:1px;
  }
}

/* v0.2.4: variable-weight articles stay visually explicit but quiet. */
.atg-pdp-variable-weight-note{
  margin-top:10px;
  padding:10px 12px;
  border:1px solid rgba(17,24,39,.10);
  border-radius:8px;
  background:#fafafa;
  display:flex;
  flex-direction:column;
  gap:3px;
  font-size:12px;
  line-height:1.4;
  color:#4b5563;
}
.atg-pdp-variable-weight-note strong{
  font-size:13px;
  color:#111827;
}
.atg-pdp-variable-weight-note small{
  margin-top:2px;
  color:#6b7280;
}
.atg-pdp-variable-weight-note--loop{
  margin-top:4px;
  padding:0;
  border:0;
  background:transparent;
  font-size:11px;
  color:#6b7280;
}


/* ==========================================================================
 * v0.4.0 — SINGLE PRODUCT STABILITY
 * ======================================================================= */
/* Main product page: never let amount + unit stretch/break the summary column. */
.atg-pdp-pricing--single,
.atg-pdp-pricing--single-variable{
  max-width:100%;
  min-width:0;
  overflow:visible;
}
.atg-pdp-pricing--single .atg-pdp-customer-price,
.atg-pdp-pricing--single-variable .atg-pdp-customer-price{
  min-width:0;
  max-width:100%;
  overflow:hidden;
  padding:12px 14px;
  border-color:var(--atg-pdp-border);
  background:#fff;
}
.atg-pdp-pricing--single .atg-pdp-customer-price__value,
.atg-pdp-pricing--single-variable .atg-pdp-customer-price__value{
  display:flex;
  flex-wrap:nowrap;
  align-items:baseline;
  gap:6px;
  min-width:0;
  max-width:100%;
  font-size:clamp(21px,4.2cqw,28px);
  line-height:1.1;
}
.atg-pdp-pricing--single .atg-pdp-price-line,
.atg-pdp-pricing--single-variable .atg-pdp-price-line{
  flex:0 1 auto;
  min-width:0;
}
.atg-pdp-pricing--single .atg-pdp-price-unit,
.atg-pdp-pricing--single-variable .atg-pdp-price-unit{
  flex:0 0 auto;
  font-size:.52em;
  line-height:1.2;
}
.atg-pdp-pricing--single.has-variable-weight .atg-pdp-variable-weight-note,
.atg-pdp-pricing--single-variable.has-variable-weight .atg-pdp-variable-weight-note{
  max-width:100%;
  min-width:0;
  margin-top:8px;
  padding:9px 11px;
  overflow-wrap:anywhere;
}

@media (max-width:767px){
  .atg-pdp-card-layout-normalized .wd-entities-title,
  .atg-pdp-card-layout-normalized .woocommerce-loop-product__title,
  .atg-pdp-card-layout-normalized .product-title{
    min-height:0;
  }
  .atg-pdp-pricing--single .atg-pdp-customer-price__value,
  .atg-pdp-pricing--single-variable .atg-pdp-customer-price__value{
    font-size:22px;
  }
}


/* v0.2.6: Woodmart hardening. Keep commercial content in a calm vertical flow. */
.atg-pdp-card-layout-normalized .product-element-bottom{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  min-width:0;
}
.atg-pdp-card-layout-normalized .atg-pdp-card-artnr,
.atg-pdp-card-layout-normalized .atg-pdp-pricing--loop,
.atg-pdp-card-layout-normalized form.variations_form{
  width:100%;
  max-width:100%;
  min-width:0;
}
.atg-pdp-card-layout-normalized .wd-add-btn,
.atg-pdp-card-layout-normalized .wd-add-btn-replace,
.atg-pdp-card-layout-normalized .wd-add-btn-replace-hover,
.atg-pdp-card-layout-normalized .add-to-cart-loop,
.atg-pdp-card-layout-normalized .product-add-to-cart{
  width:100%;
  max-width:100%;
}
.atg-pdp-card-layout-normalized .atg-pdp-archive-form-normalized > table.variations,
.atg-pdp-card-layout-normalized .atg-pdp-archive-form-normalized > .variations{
  margin-top:7px!important;
}

/* Woodmart sticky add-to-cart may clone single-product content. Never let the
 * full ATG price panel expand that compact sticky bar. */
.wd-sticky-btn .atg-pdp-pricing--single,
.wd-sticky-btn .atg-pdp-pricing--single-variable{
  width:auto;
  max-width:100%;
  margin:0;
}
.wd-sticky-btn .atg-pdp-customer-price{
  border:0;
  background:transparent;
  padding:0;
  overflow:visible;
}
.wd-sticky-btn .atg-pdp-customer-price__value{
  font-size:18px;
}
.wd-sticky-btn .atg-pdp-variable-weight-note,
.wd-sticky-btn .atg-pdp-tier-prices,
.wd-sticky-btn .atg-pdp-tier-prices--customer{
  display:none!important;
}

/* ==========================================================================
 * v0.4.0 — SERVER-RENDERED PRODUCT CARD LAYOUT
 * Stable order: title -> ArtNr. -> price -> native/simple action or variable CTA.
 * ======================================================================= */
/* ==========================================================================
 * v0.3.0 — SERVER-RENDERED ARCHIVE CARD SYSTEM
 * No JavaScript reordering. The browser receives the final order immediately:
 * image -> title (2 lines) -> ArtNr. -> price -> action.
 * ======================================================================= */
.atg-pdp-loop-card,
.atg-pdp-loop-card *{
  box-sizing:border-box;
}

/* Keep Woodmart content in natural vertical flow. */
.atg-pdp-loop-card .product-element-bottom,
.atg-pdp-loop-card .product-information{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  min-height:0 !important;
  height:auto !important;
}

/* Product name: always reserve exactly two calm lines. */
.atg-pdp-loop-card .wd-entities-title,
.atg-pdp-loop-card .woocommerce-loop-product__title,
.atg-pdp-loop-card .product-title{
  display:block !important;
  flex:0 0 auto !important;
  min-height:2.64em !important;
  max-height:2.64em !important;
  margin:0 0 7px !important;
  overflow:hidden !important;
  line-height:1.32 !important;
}
.atg-pdp-loop-card .wd-entities-title > a,
.atg-pdp-loop-card .woocommerce-loop-product__title > a,
.atg-pdp-loop-card .product-title > a{
  display:-webkit-box !important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  max-height:2.64em !important;
  overflow:hidden !important;
  line-height:1.32 !important;
}

/* ArtNr. is a fixed, independent row directly below the title. */
.atg-pdp-loop-card .atg-pdp-card-artnr{
  display:block !important;
  position:static !important;
  clear:both !important;
  min-height:16px !important;
  margin:0 0 7px !important;
  padding:0 !important;
  color:#727b84 !important;
  font-size:12px !important;
  font-weight:600 !important;
  line-height:16px !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/* Compact price block. */
.atg-pdp-loop-card .atg-pdp-pricing--loop{
  display:block !important;
  position:static !important;
  clear:both !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
}
.atg-pdp-loop-card .atg-pdp-loop-price-box,
.atg-pdp-loop-card .atg-pdp-loop-customer-price{
  width:100% !important;
  margin:0 !important;
}

/* Variable products: one server-rendered CTA only. Theme variation controls
 * and theme select-options buttons are hidden from first paint. */
.atg-pdp-loop-variable form.variations_form,
.atg-pdp-loop-variable table.variations,
.atg-pdp-loop-variable .variations,
.atg-pdp-loop-variable .single_variation_wrap,
.atg-pdp-loop-variable .woocommerce-variation-add-to-cart,
.atg-pdp-loop-variable .reset_variations,
.atg-pdp-loop-variable .wd-add-btn,
.atg-pdp-loop-variable .wd-add-btn-replace,
.atg-pdp-loop-variable .wd-add-btn-replace-hover,
.atg-pdp-loop-variable .product-add-to-cart,
.atg-pdp-loop-variable .add-to-cart-loop,
.atg-pdp-loop-variable .wrap-add-btn,
.atg-pdp-loop-variable .wd-bottom-actions{
  display:none !important;
}
.atg-pdp-loop-variable .atg-pdp-archive-variable-cta,
.atg-pdp-loop-variable .atg-pdp-archive-variable-cta.button,
.atg-pdp-loop-variable .atg-pdp-archive-variable-cta.button.alt{
  display:flex;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-height:40px !important;
  margin:9px 0 0 !important;
  padding:9px 12px !important;
  border:0 !important;
  border-radius:5px !important;
  background:#35b51b !important;
  color:#fff !important;
  font-size:14px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  text-align:center !important;
  text-decoration:none !important;
  box-shadow:none !important;
}

/* Simple products: keep Woodmart's existing quantity + direct add-to-cart,
 * but remove any auto-push/absolute footer behaviour that caused giant gaps. */
.atg-pdp-loop-simple .wd-add-btn,
.atg-pdp-loop-simple .wd-add-btn-replace,
.atg-pdp-loop-simple .wd-add-btn-replace-hover,
.atg-pdp-loop-simple .product-add-to-cart,
.atg-pdp-loop-simple .add-to-cart-loop,
.atg-pdp-loop-simple .wrap-add-btn,
.atg-pdp-loop-simple .wd-bottom-actions,
.atg-pdp-loop-simple .wd-product-footer{
  position:static !important;
  inset:auto !important;
  transform:none !important;
  float:none !important;
  clear:both !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:9px 0 0 !important;
  padding-top:0 !important;
  align-self:stretch !important;
}
.atg-pdp-loop-simple .wd-add-btn > *,
.atg-pdp-loop-simple .product-add-to-cart > *,
.atg-pdp-loop-simple .add-to-cart-loop > *{
  margin-top:0 !important;
}

/* Old runtime-only normalization classes must not influence the new system. */
.atg-pdp-loop-card .atg-pdp-card-layout-normalized,
.atg-pdp-loop-card .atg-pdp-archive-form-normalized{
  order:initial !important;
}

/* Related-products carousels and category grids use the same spacing. */
.atg-pdp-loop-card .atg-pdp-variable-weight-note--loop{
  margin:4px 0 0 !important;
}

@media (max-width:767px){
  .atg-pdp-loop-card .wd-entities-title,
  .atg-pdp-loop-card .woocommerce-loop-product__title,
  .atg-pdp-loop-card .product-title{
    min-height:2.64em !important;
    max-height:2.64em !important;
  }
}


/* -------------------------------------------------------------------------
 * v0.3.1: repair simple archive action row.
 * The quantity block must stay compact and horizontal next to the cart button.
 * ---------------------------------------------------------------------- */
.atg-pdp-loop-simple .wd-add-btn,
.atg-pdp-loop-simple .wd-add-btn-replace,
.atg-pdp-loop-simple .wd-add-btn-replace-hover,
.atg-pdp-loop-simple .product-add-to-cart,
.atg-pdp-loop-simple .add-to-cart-loop,
.atg-pdp-loop-simple .wrap-add-btn,
.atg-pdp-loop-simple .wd-bottom-actions,
.atg-pdp-loop-simple .wd-product-footer,
.atg-pdp-loop-simple .cart,
.atg-pdp-loop-simple form.cart{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  gap:0 !important;
  width:100% !important;
  max-width:100% !important;
  overflow:visible !important;
}
.atg-pdp-loop-simple .wd-add-btn > form,
.atg-pdp-loop-simple .product-add-to-cart > form,
.atg-pdp-loop-simple .add-to-cart-loop > form,
.atg-pdp-loop-simple .wrap-add-btn > form,
.atg-pdp-loop-simple .wd-bottom-actions > form,
.atg-pdp-loop-simple .wd-product-footer > form{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  gap:0 !important;
  width:100% !important;
  max-width:100% !important;
}
.atg-pdp-loop-simple .quantity,
.atg-pdp-loop-simple .quantity.buttons-added,
.atg-pdp-loop-simple .woocommerce-quantity,
.atg-pdp-loop-simple .qty-wrapper{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:space-between !important;
  flex:0 0 72px !important;
  width:72px !important;
  min-width:72px !important;
  max-width:72px !important;
  height:40px !important;
  min-height:40px !important;
  margin:0 !important;
  padding:0 8px !important;
  border:0 !important;
  border-radius:5px 0 0 5px !important;
  background:#35b51b !important;
  color:#fff !important;
  float:none !important;
  position:static !important;
  overflow:hidden !important;
}
.atg-pdp-loop-simple .quantity .minus,
.atg-pdp-loop-simple .quantity .plus,
.atg-pdp-loop-simple .quantity.buttons-added .minus,
.atg-pdp-loop-simple .quantity.buttons-added .plus{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:14px !important;
  min-width:14px !important;
  height:14px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:#fff !important;
  box-shadow:none !important;
  font-size:22px !important;
  font-weight:700 !important;
  line-height:1 !important;
}
.atg-pdp-loop-simple .quantity .qty,
.atg-pdp-loop-simple .quantity .input-text,
.atg-pdp-loop-simple .quantity input.qty,
.atg-pdp-loop-simple .quantity input[type="number"]{
  display:block !important;
  width:22px !important;
  min-width:22px !important;
  max-width:22px !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:#fff !important;
  box-shadow:none !important;
  font-size:16px !important;
  font-weight:700 !important;
  line-height:1 !important;
  text-align:center !important;
  appearance:textfield !important;
  -moz-appearance:textfield !important;
}
.atg-pdp-loop-simple .quantity input[type="number"]::-webkit-outer-spin-button,
.atg-pdp-loop-simple .quantity input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance:none !important;
  margin:0 !important;
}
.atg-pdp-loop-simple .single_add_to_cart_button,
.atg-pdp-loop-simple button[name="add-to-cart"],
.atg-pdp-loop-simple .ajax_add_to_cart,
.atg-pdp-loop-simple a.add_to_cart_button,
.atg-pdp-loop-simple .product_type_simple,
.atg-pdp-loop-simple .button.product_type_simple{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:1 1 auto !important;
  width:auto !important;
  min-width:0 !important;
  min-height:40px !important;
  height:40px !important;
  margin:0 !important;
  padding:0 14px !important;
  border:0 !important;
  border-radius:0 5px 5px 0 !important;
  box-shadow:none !important;
}
.atg-pdp-loop-simple .quantity + .single_add_to_cart_button,
.atg-pdp-loop-simple .quantity + button[name="add-to-cart"],
.atg-pdp-loop-simple .quantity + .ajax_add_to_cart,
.atg-pdp-loop-simple .quantity + a.add_to_cart_button,
.atg-pdp-loop-simple .quantity + .product_type_simple{
  margin-left:0 !important;
}

/* Variable cards: hide any late theme dropdown remnants even in sliders/widgets. */
.atg-pdp-loop-variable form.variations_form,
.atg-pdp-loop-variable .variations_form,
.atg-pdp-loop-variable table.variations,
.atg-pdp-loop-variable .variations,
.atg-pdp-loop-variable .variations select,
.atg-pdp-loop-variable .single_variation_wrap,
.atg-pdp-loop-variable .woocommerce-variation,
.atg-pdp-loop-variable .woocommerce-variation-add-to-cart,
.atg-pdp-loop-variable .reset_variations{
  display:none !important;
}


/* -------------------------------------------------------------------------
 * v0.3.2: no layout jump + final archive hardening.
 * ---------------------------------------------------------------------- */

/* Variable single product: PHP renders the price before the variation form.
 * Keep it there permanently. JS updates only the contents, never the position. */
.single-product .atg-pdp-single-variable-anchor{
  display:block;
  width:100%;
  margin:18px 0 16px !important;
}
.single-product .atg-pdp-single-variable-anchor > .atg-pdp-pricing{
  margin:0 !important;
}
.single-product .atg-pdp-single-variable-anchor + form.variations_form,
.single-product .atg-pdp-single-variable-anchor ~ form.variations_form{
  margin-top:0 !important;
}

/* A variable archive card is identified by the ATG pricing component itself.
 * This also covers Woodmart sliders/widgets that do not preserve post classes. */
:is(li.product,.wd-product,.product-grid-item,.product-small):has(.atg-pdp-pricing--variable) form.variations_form,
:is(li.product,.wd-product,.product-grid-item,.product-small):has(.atg-pdp-pricing--variable) table.variations,
:is(li.product,.wd-product,.product-grid-item,.product-small):has(.atg-pdp-pricing--variable) .variations,
:is(li.product,.wd-product,.product-grid-item,.product-small):has(.atg-pdp-pricing--variable) .single_variation_wrap,
:is(li.product,.wd-product,.product-grid-item,.product-small):has(.atg-pdp-pricing--variable) .woocommerce-variation-add-to-cart,
:is(li.product,.wd-product,.product-grid-item,.product-small):has(.atg-pdp-pricing--variable) .reset_variations{
  display:none !important;
}

/* Hide Woodmart/legacy SKU output because ATG already renders one ArtNr. in the
 * correct position before the price. */
.atg-pdp-loop-card .sku_wrapper,
.atg-pdp-loop-card .product-sku,
.atg-pdp-loop-card .wd-product-sku,
.atg-pdp-loop-card [class*="product-sku"],
.atg-pdp-loop-card [class*="product_sku"],
.atg-pdp-loop-card [class*="artnr"]:not(.atg-pdp-card-artnr){
  display:none !important;
}

/* v0.3.1 was intentionally broad while repairing Woodmart's stretched quantity
 * layout. Do not force hidden hover/replacement controls to become visible. */
.atg-pdp-loop-simple .wd-add-btn-replace:not(:has(.quantity)),
.atg-pdp-loop-simple .wd-add-btn-replace-hover:not(:has(.quantity)),
.atg-pdp-loop-simple .wd-product-footer:not(:has(.quantity)):has(.wd-add-btn-replace),
.atg-pdp-loop-simple .wd-bottom-actions:not(:has(.quantity)):has(.wd-add-btn-replace){
  display:none !important;
}

/* Only containers that actually own a quantity control become the commercial
 * action row. This prevents orphan cart icons from leaking into the footer. */
.atg-pdp-loop-simple :is(.wd-add-btn,.product-add-to-cart,.add-to-cart-loop,.wrap-add-btn,.wd-bottom-actions,.wd-product-footer,form.cart,.cart):has(.quantity){
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  gap:0 !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  height:40px !important;
  min-height:40px !important;
  margin:9px 0 0 !important;
  padding:0 !important;
  position:static !important;
  inset:auto !important;
  transform:none !important;
}

/* Compact quantity + CTA for narrow slider cards. */
.atg-pdp-loop-simple .quantity,
.atg-pdp-loop-simple .quantity.buttons-added{
  flex:0 0 68px !important;
  width:68px !important;
  min-width:68px !important;
  max-width:68px !important;
  height:40px !important;
  min-height:40px !important;
  padding:0 7px !important;
}
.atg-pdp-loop-simple .single_add_to_cart_button,
.atg-pdp-loop-simple button[name="add-to-cart"],
.atg-pdp-loop-simple .ajax_add_to_cart,
.atg-pdp-loop-simple a.add_to_cart_button,
.atg-pdp-loop-simple .product_type_simple,
.atg-pdp-loop-simple .button.product_type_simple{
  min-width:0 !important;
  padding:0 8px !important;
  font-size:13px !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/* The ATG ArtNr. is the only archive SKU row and always stays before price. */
.atg-pdp-loop-card .atg-pdp-card-artnr{
  display:block !important;
  margin:0 0 7px !important;
}


/* 2) Calm, compact spacing. Keep the intentional two-line title reservation,
 * but remove extra margins between title -> ArtNr. -> price -> action. */
.atg-pdp-loop-card .product-element-bottom,
.atg-pdp-loop-card .product-information{
  gap:0 !important;
  padding-bottom:0 !important;
}
.atg-pdp-loop-card .wd-entities-title,
.atg-pdp-loop-card .woocommerce-loop-product__title,
.atg-pdp-loop-card .product-title{
  margin-bottom:5px !important;
}
.atg-pdp-loop-card .atg-pdp-card-artnr{
  margin:0 0 6px !important;
}
.atg-pdp-loop-card .atg-pdp-pricing--loop{
  margin:0 !important;
}
.atg-pdp-loop-variable .atg-pdp-archive-variable-cta,
.atg-pdp-loop-simple :is(.wd-add-btn,.product-add-to-cart,.add-to-cart-loop,.wrap-add-btn,.wd-bottom-actions,.wd-product-footer,form.cart,.cart):has(.quantity){
  margin-top:7px !important;
}

/* Remove empty theme wrappers that otherwise reserve a blank footer row. */
.atg-pdp-loop-card :is(.wd-product-footer,.wd-bottom-actions,.wd-add-btn,.product-add-to-cart,.wrap-add-btn):empty{
  display:none !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
}

/* If the ATG ArtNr. is accidentally rendered twice by a loop/widget hook,
 * keep only the first server-rendered row. */
.atg-pdp-loop-card .atg-pdp-card-artnr ~ .atg-pdp-card-artnr{
  display:none !important;
}

/* Broaden legacy SKU suppression to WoodMart widgets/carousels that do not
 * preserve woocommerce_post_class() on their outer card. */
:is(li.product,.wd-product,.product-grid-item,.product-small):has(.atg-pdp-pricing--loop) :is(
  .sku_wrapper,
  .product-sku,
  .wd-product-sku,
  [class*="product-sku"],
  [class*="product_sku"],
  [class*="artnr"]:not(.atg-pdp-card-artnr)
){
  display:none !important;
}

/* 3) v0.3.4: preserve WoodMart's native cart/check hover animation.
 * Do NOT remove pseudo-elements or animated spans. Instead, contain the
 * animation inside the product action area so it cannot visually escape into
 * the page footer. */
.atg-pdp-loop-simple{
  position:relative !important;
  isolation:isolate !important;
}
.atg-pdp-loop-simple :is(.wd-add-btn,.wd-add-btn-replace,.wd-add-btn-replace-hover,.product-add-to-cart,.add-to-cart-loop,.wrap-add-btn,.wd-bottom-actions,.wd-product-footer,form.cart,.cart):has(.quantity){
  position:relative !important;
  overflow:hidden !important;
  isolation:isolate !important;
}
.atg-pdp-loop-simple :is(.add-to-cart-loop,.add_to_cart_button,.single_add_to_cart_button,button[name="add-to-cart"]){
  position:relative !important;
  overflow:hidden !important;
}

/* Slightly narrower quantity block leaves enough room for the full CTA text
 * in related-products/top-products sliders without changing the 40px height. */
.atg-pdp-loop-simple .quantity,
.atg-pdp-loop-simple .quantity.buttons-added{
  flex-basis:64px !important;
  width:64px !important;
  min-width:64px !important;
  max-width:64px !important;
  padding-left:6px !important;
  padding-right:6px !important;
}
.atg-pdp-loop-simple .single_add_to_cart_button,
.atg-pdp-loop-simple button[name="add-to-cart"],
.atg-pdp-loop-simple .ajax_add_to_cart,
.atg-pdp-loop-simple a.add_to_cart_button,
.atg-pdp-loop-simple .product_type_simple,
.atg-pdp-loop-simple .button.product_type_simple{
  padding-left:6px !important;
  padding-right:6px !important;
  font-size:12.5px !important;
}



/* v0.3.4: WoodMart hover restoration guard. */
.atg-pdp-loop-simple .add-to-cart-loop::before,
.atg-pdp-loop-simple .add-to-cart-loop::after,
.atg-pdp-loop-simple .add_to_cart_button::before,
.atg-pdp-loop-simple .add_to_cart_button::after{
  /* Intentionally left to WoodMart; containment above prevents footer escape. */
}

/* WoodMart 8.4+ uses child action elements instead of the old pseudo-element
 * button structure. Once PHP has normalized the markup, suppress only the
 * obsolete pseudo fallback and let WoodMart animate its own icon/text/check. */
.atg-pdp-loop-simple .add-to-cart-loop:has(> .wd-action-icon)::before,
.atg-pdp-loop-simple .add-to-cart-loop:has(> .wd-action-icon)::after,
.atg-pdp-loop-simple .add_to_cart_button:has(> .wd-action-icon)::before,
.atg-pdp-loop-simple .add_to_cart_button:has(> .wd-action-icon)::after{
  content:none !important;
  display:none !important;
}

/* Do not reposition WoodMart's new internal action elements. Their transforms
 * are theme-owned and drive cart -> loading -> check. */
.atg-pdp-loop-simple .wd-action-icon,
.atg-pdp-loop-simple .wd-action-text,
.atg-pdp-loop-simple .wd-check-icon{
  margin:0;
}
.atg-pdp-loop-simple .add-to-cart-loop:has(> .wd-action-icon),
.atg-pdp-loop-simple .add_to_cart_button:has(> .wd-action-icon){
  position:relative !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  width:auto !important;
  height:40px !important;
  min-height:40px !important;
  overflow:hidden !important;
}
/* The quantity row stays horizontal, but the actual link/button is its own
 * positioning context. This prevents icon layers from escaping into footer. */
.atg-pdp-loop-simple :is(.wd-add-btn,.product-add-to-cart,.wrap-add-btn,.wd-bottom-actions,.wd-product-footer,form.cart,.cart):has(.quantity){
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  gap:0 !important;
  height:40px !important;
  min-height:40px !important;
  overflow:visible !important;
}

.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button,.single_add_to_cart_button,button[name="add-to-cart"]){
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:1 1 auto !important;
  width:auto !important;
  min-width:0 !important;
  height:40px !important;
  min-height:40px !important;
  margin:0 !important;
  padding:0 8px !important;
  overflow:hidden !important;
  border-radius:0 5px 5px 0 !important;
  color:#fff !important;
  text-decoration:none !important;
}

/* We keep WoodMart's required child structure but own only the visual motion
 * here, avoiding conflicts with old/new theme CSS versions. */
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button) > .wd-action-text{
  position:relative !important;
  inset:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
  opacity:1 !important;
  transform:translateY(0) !important;
  transition:transform .22s ease, opacity .18s ease !important;
  color:#fff !important;
  font-size:12.5px !important;
  font-weight:700 !important;
  line-height:1.1 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button) > .wd-action-icon{
  position:absolute !important;
  inset:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  opacity:0 !important;
  transform:translateY(100%) !important;
  transition:transform .22s ease, opacity .18s ease !important;
  color:#fff !important;
  pointer-events:none !important;
}

/* Disable theme pseudo fallbacks only on links with the normalized child
 * structure, preventing double cart icons. */
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button):has(> .wd-action-icon)::before,
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button):has(> .wd-action-icon)::after{
  content:none !important;
  display:none !important;
}

/* Stable white cart glyph. */
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button) > .wd-action-icon::before{
  content:"" !important;
  display:block !important;
  width:21px !important;
  height:21px !important;
  background:center/21px 21px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='19' cy='20' r='1'/%3E%3Cpath d='M3 4h2l2.4 10.2a2 2 0 0 0 2 1.5h8.9a2 2 0 0 0 2-1.6L22 7H6'/%3E%3C/svg%3E") !important;
}

.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button) > .wd-action-icon > .wd-check-icon{
  position:absolute !important;
  inset:0 !important;
  display:none !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  background:center/20px 20px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E") !important;
}

/* Hover = cart slides into the same centered position WoodMart uses. */
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button):hover > .wd-action-text{
  opacity:0 !important;
  transform:translateY(-100%) !important;
}
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button):hover > .wd-action-icon{
  opacity:1 !important;
  transform:translateY(0) !important;
}

/* During AJAX loading keep the action layer centered and show a spinner. */
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button).loading > .wd-action-text{
  opacity:0 !important;
  transform:translateY(-100%) !important;
}
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button).loading > .wd-action-icon{
  opacity:1 !important;
  transform:translateY(0) !important;
}
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button).loading > .wd-action-icon::before{
  width:18px !important;
  height:18px !important;
  border:2px solid rgba(255,255,255,.45) !important;
  border-top-color:#fff !important;
  border-radius:50% !important;
  background:none !important;
  animation:atg-pdp-loop-spin .7s linear infinite !important;
}

/* WooCommerce adds .added after success; show a clean centered check. */
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button).added > .wd-action-text{
  opacity:0 !important;
  transform:translateY(-100%) !important;
}
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button).added > .wd-action-icon{
  opacity:1 !important;
  transform:translateY(0) !important;
}
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button).added > .wd-action-icon::before{
  display:none !important;
}
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button).added > .wd-action-icon > .wd-check-icon{
  display:flex !important;
}

@keyframes atg-pdp-loop-spin{
  to{transform:rotate(360deg)}
}


/* Keep commercial rows compact and consistent in grids and sliders. */
.atg-pdp-loop-card .atg-pdp-pricing--loop{
  flex:0 0 auto !important;
}
.atg-pdp-loop-card .atg-pdp-loop-customer-price,
.atg-pdp-loop-card .atg-pdp-loop-price-box{
  min-height:31px !important;
}




/* ========================================================================== 
 * v0.4.0 — WOODMART CART LABEL, FINAL EFFECTIVE STATE
 * Keep Woodmart icon / loader / check layers native; only normalize the text layer.
 * ======================================================================= */
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button) > .wd-action-text{
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  box-sizing:border-box !important;
  width:100% !important;
  height:40px !important;
  min-height:40px !important;
  margin:0 !important;
  padding:0 8px !important;
  color:#fff !important;
  font-size:12.5px !important;
  font-weight:700 !important;
  line-height:40px !important;
  text-align:center !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  opacity:1 !important;
  transform:translateY(0) !important;
  transition:transform .22s ease, opacity .18s ease !important;
  pointer-events:none !important;
}
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button):hover > .wd-action-text,
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button).loading > .wd-action-text,
.atg-pdp-loop-simple :is(a.add-to-cart-loop,a.add_to_cart_button).added > .wd-action-text{
  opacity:0 !important;
  transform:translateY(-100%) !important;
}

/* ========================================================================== 
 * v0.4.0 — ONE SEARCH PRESENTATION CONTRACT
 * Search detection is PHP-first. JS only adds data-atg-pdp-search-card="1" as
 * a shortcode-gated fallback for Woodmart's portaled fullscreen search.
 * ======================================================================= */
.atg-search-scope-marker{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  margin:-1px !important;
  padding:0 !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  border:0 !important;
  pointer-events:none !important;
}

.atg-pdp-search-card.atg-pdp-loop-card :is(
  .atg-pdp-archive-variable-cta,
  .wd-add-btn,
  .wd-add-btn-replace,
  .wd-add-btn-replace-hover,
  .product-add-to-cart,
  .add-to-cart-loop,
  .add_to_cart_button,
  .wrap-add-btn,
  .wd-bottom-actions,
  .wd-product-footer,
  form.cart,
  .cart,
  form.variations_form,
  .single_variation_wrap,
  .woocommerce-variation-add-to-cart,
  .quantity,
  .qty-wrapper
),
[data-atg-pdp-search-card="1"].atg-pdp-loop-card :is(
  .atg-pdp-archive-variable-cta,
  .wd-add-btn,
  .wd-add-btn-replace,
  .wd-add-btn-replace-hover,
  .product-add-to-cart,
  .add-to-cart-loop,
  .add_to_cart_button,
  .wrap-add-btn,
  .wd-bottom-actions,
  .wd-product-footer,
  form.cart,
  .cart,
  form.variations_form,
  .single_variation_wrap,
  .woocommerce-variation-add-to-cart,
  .quantity,
  .qty-wrapper
),
.atg-search-products .atg-pdp-loop-card :is(
  .atg-pdp-archive-variable-cta,
  .wd-add-btn,
  .wd-add-btn-replace,
  .wd-add-btn-replace-hover,
  .product-add-to-cart,
  .add-to-cart-loop,
  .add_to_cart_button,
  .wrap-add-btn,
  .wd-bottom-actions,
  .wd-product-footer,
  form.cart,
  .cart,
  form.variations_form,
  .single_variation_wrap,
  .woocommerce-variation-add-to-cart,
  .quantity,
  .qty-wrapper
),
[data-atg-search-products="1"] .atg-pdp-loop-card :is(
  .atg-pdp-archive-variable-cta,
  .wd-add-btn,
  .wd-add-btn-replace,
  .wd-add-btn-replace-hover,
  .product-add-to-cart,
  .add-to-cart-loop,
  .add_to_cart_button,
  .wrap-add-btn,
  .wd-bottom-actions,
  .wd-product-footer,
  form.cart,
  .cart,
  form.variations_form,
  .single_variation_wrap,
  .woocommerce-variation-add-to-cart,
  .quantity,
  .qty-wrapper
){
  display:none !important;
}

.atg-pdp-search-card,
[data-atg-pdp-search-card="1"],
.atg-search-products .atg-pdp-loop-card,
[data-atg-search-products="1"] .atg-pdp-loop-card{
  padding-bottom:0 !important;
}
.atg-pdp-search-card .atg-pdp-pricing--loop,
[data-atg-pdp-search-card="1"] .atg-pdp-pricing--loop,
.atg-search-products .atg-pdp-pricing--loop,
[data-atg-search-products="1"] .atg-pdp-pricing--loop{
  margin-bottom:0 !important;
}

/* ========================================================================== 
 * v0.4.6 — CATEGORY-MATCHED SEARCH / OFFERS LAYOUT
 * The normal search page keeps the ordinary archive purchase contract from
 * v0.4.5.  /angebote/ remains a normal WooCommerce product loop, but its
 * presentation is normalized to the same calm 4-column geometry used by the
 * category archives. No Woo sale-state or price metadata is synthesized.
 * ======================================================================= */
.atg-pdp-offer-card{
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

/* The Woodmart Products element used on /angebote/ can be configured with a
 * different column count/spacing than the category archive.  The products are
 * still normal WooCommerce cards; only this dedicated offer loop is laid out
 * with the category-style geometry. */
:is(.products,.wd-products-holder):has(> .atg-pdp-offer-card){
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  column-gap:30px !important;
  row-gap:36px !important;
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

/* Neutralize the original 5-column Bootstrap/Woodmart sizing only for cards
 * that actually belong to the ATG offers loop. */
:is(.products,.wd-products-holder):has(> .atg-pdp-offer-card) > .atg-pdp-offer-card{
  grid-column:auto !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  flex:0 0 auto !important;
  margin:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

/* Match the visual breathing room of category cards.  Images keep their own
 * aspect ratio; packaging and round produce are never cropped or stretched. */
.atg-pdp-offer-card .product-element-top{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:190px !important;
  min-height:190px !important;
  max-height:190px !important;
  margin-bottom:14px !important;
  overflow:hidden !important;
}
.atg-pdp-offer-card .product-element-top :is(a,picture){
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
}
.atg-pdp-offer-card .product-element-top img{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:180px !important;
  object-fit:contain !important;
  object-position:center !important;
}

/* Remove the table/cell look some Products widgets apply.  Text, ATG price and
 * Woo/Woodmart action controls continue to use the same archive CSS as category
 * and normal search results. */
.products .atg-pdp-offer-card,
.wd-products .atg-pdp-offer-card,
.wd-products-element .atg-pdp-offer-card{
  border-left:0 !important;
  border-right:0 !important;
  border-top:0 !important;
  border-bottom:0 !important;
}

@media (min-width:768px) and (max-width:1024px){
  :is(.products,.wd-products-holder):has(> .atg-pdp-offer-card){
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    column-gap:24px !important;
    row-gap:30px !important;
  }
  .atg-pdp-offer-card .product-element-top{
    height:175px !important;
    min-height:175px !important;
    max-height:175px !important;
  }
  .atg-pdp-offer-card .product-element-top img{
    max-height:165px !important;
  }
}

@media (max-width:767px){
  :is(.products,.wd-products-holder):has(> .atg-pdp-offer-card){
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    column-gap:14px !important;
    row-gap:24px !important;
  }
  .atg-pdp-offer-card .product-element-top{
    height:145px !important;
    min-height:145px !important;
    max-height:145px !important;
    margin-bottom:10px !important;
  }
  .atg-pdp-offer-card .product-element-top img{
    max-height:138px !important;
  }
}


/* ========================================================================== 
 * v0.4.7 — GUEST OFFER IMAGE SCALE
 * Logged-out visitors do not see the ATG pricing/purchase controls. Keep the
 * offer-page media area visually compact like normal category cards without
 * changing product state, query logic or the logged-in customer layout.
 * ======================================================================= */
body:not(.logged-in) .atg-pdp-offer-card .product-element-top{
  height:160px !important;
  min-height:160px !important;
  max-height:160px !important;
  margin-bottom:12px !important;
}
body:not(.logged-in) .atg-pdp-offer-card .product-element-top img{
  width:auto !important;
  height:auto !important;
  max-width:88% !important;
  max-height:150px !important;
  object-fit:contain !important;
  object-position:center !important;
}

@media (min-width:768px) and (max-width:1024px){
  body:not(.logged-in) .atg-pdp-offer-card .product-element-top{
    height:150px !important;
    min-height:150px !important;
    max-height:150px !important;
  }
  body:not(.logged-in) .atg-pdp-offer-card .product-element-top img{
    max-width:88% !important;
    max-height:140px !important;
  }
}

@media (max-width:767px){
  body:not(.logged-in) .atg-pdp-offer-card .product-element-top{
    height:128px !important;
    min-height:128px !important;
    max-height:128px !important;
    margin-bottom:8px !important;
  }
  body:not(.logged-in) .atg-pdp-offer-card .product-element-top img{
    max-width:90% !important;
    max-height:120px !important;
  }
}


/* ========================================================================== 
 * v0.5.0 — PUBLIC DIGITAL OFFER PRICES
 * Logged-out visitors may see only confirmed active Offer-Core prices on the
 * dedicated /angebote/ page. Normal pickup/delivery/customer prices remain
 * private and all purchase actions stay unavailable.
 * ======================================================================= */
.atg-pdp-public-offer{
  margin-top:10px;
}
.atg-pdp-public-offer .atg-pdp-loop-customer-price{
  margin-bottom:0 !important;
}
.atg-pdp-public-offer-tiers{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin-top:7px;
  font-size:11px;
  line-height:1.35;
  color:#5f6872;
}
.atg-pdp-public-offer-tier{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:8px;
  min-width:0;
}
.atg-pdp-public-offer-tier strong{
  color:#138a16;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}
/* Defense in depth for the public offer sheet. PHP removes the normal loop
 * action link as well; these selectors cover theme wrappers that may survive. */
body:not(.logged-in) .atg-pdp-public-offer-card :is(
  .wd-add-btn,
  .add-to-cart-loop,
  .product_type_simple,
  .product_type_variable,
  .add_to_cart_button
){
  display:none !important;
}


/* ==========================================================================
 * v0.5.1 — B2B PORTAL GUEST PRICE-WRAPPER COMPATIBILITY
 * The account portal intentionally hides Woodmart price wrappers globally for
 * logged-out visitors. On the dedicated public /angebote/ cards, the ATG
 * Offer-Core markup is rendered inside that wrapper. Re-open only the wrapper
 * container for confirmed public-offer cards; Woo's native .price remains
 * hidden by the portal and no normal/customer price is exposed.
 * ======================================================================= */
body:not(.logged-in) .atg-pdp-public-offer-card .wrap-price,
body:not(.logged-in) .atg-pdp-public-offer-card .wd-product-price{
  display:block !important;
}

/* ========================================================================== 
 * PUBLIC OFFERS VISUAL POLISH — CSS-ONLY
 * Scope: logged-out public offer cards only.
 * No PHP, query, resolver, cart, checkout or Offer-Core behavior changes.
 * ======================================================================= */
body:not(.logged-in) .atg-pdp-public-offer-card{
  background:#ffffff !important;
  border:1px solid #e9edf1 !important;
  border-radius:18px !important;
  box-shadow:0 10px 26px rgba(15,23,42,.06) !important;
  padding:18px 18px 16px !important;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease !important;
  overflow:hidden !important;
}
body:not(.logged-in) .atg-pdp-public-offer-card:hover{
  transform:translateY(-3px) !important;
  box-shadow:0 16px 34px rgba(15,23,42,.10) !important;
  border-color:#dfe6ec !important;
}
body:not(.logged-in) .atg-pdp-public-offer-card .product-wrapper,
body:not(.logged-in) .atg-pdp-public-offer-card .product-grid-item,
body:not(.logged-in) .atg-pdp-public-offer-card .product-element-bottom,
body:not(.logged-in) .atg-pdp-public-offer-card .product-information{
  background:transparent !important;
}
body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
  margin-bottom:14px !important;
}
body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title,
body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title,
body:not(.logged-in) .atg-pdp-public-offer-card .product-title{
  min-height:2.85em !important;
  max-height:2.85em !important;
  margin-bottom:8px !important;
}
body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title>a,
body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title>a,
body:not(.logged-in) .atg-pdp-public-offer-card .product-title>a{
  color:#1f2933 !important;
  font-size:18px !important;
  font-weight:700 !important;
  line-height:1.42 !important;
  text-decoration:none !important;
}
body:not(.logged-in) .atg-pdp-public-offer-card .atg-pdp-card-artnr{
  margin-bottom:10px !important;
  color:#7a8590 !important;
  font-size:12.5px !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
}
body:not(.logged-in) .atg-pdp-public-offer-card .wrap-price,
body:not(.logged-in) .atg-pdp-public-offer-card .wd-product-price{
  margin-top:auto !important;
}
body:not(.logged-in) .atg-pdp-public-offer{
  margin-top:8px !important;
}
body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price{
  background:linear-gradient(180deg,#fff8f8 0%,#fff1f1 100%) !important;
  border:1px solid #f3c8c8 !important;
  border-radius:14px !important;
  box-shadow:none !important;
  gap:5px !important;
  padding:12px 12px 10px !important;
}
body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__row{
  grid-template-columns:1fr !important;
  gap:4px !important;
}
body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__value{
  align-items:flex-start !important;
  justify-self:start !important;
  text-align:left !important;
  color:#c62828 !important;
  font-size:30px !important;
  font-weight:800 !important;
  line-height:1 !important;
  letter-spacing:-.03em !important;
}
body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-price-prefix,
body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-price-unit,
body:not(.logged-in) .atg-pdp-public-offer .woocommerce-Price-currencySymbol,
body:not(.logged-in) .atg-pdp-public-offer .woocommerce-Price-amount,
body:not(.logged-in) .atg-pdp-public-offer .woocommerce-Price-amount bdi{
  color:inherit !important;
}
body:not(.logged-in) .atg-pdp-public-offer-tiers{
  gap:5px !important;
  margin-top:10px !important;
  padding-top:9px !important;
  border-top:1px dashed #edd3d3 !important;
  color:#6c7680 !important;
  font-size:12.5px !important;
  line-height:1.4 !important;
}
body:not(.logged-in) .atg-pdp-public-offer-tier{
  align-items:center !important;
}
body:not(.logged-in) .atg-pdp-public-offer-tier strong{
  color:#c62828 !important;
  font-size:14px !important;
  font-weight:800 !important;
}
@media (min-width:768px) and (max-width:1024px){
  body:not(.logged-in) .atg-pdp-public-offer-card{
    padding:16px 16px 14px !important;
    border-radius:16px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title>a,
  body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title>a,
  body:not(.logged-in) .atg-pdp-public-offer-card .product-title>a{
    font-size:17px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__value{
    font-size:27px !important;
  }
}
@media (max-width:767px){
  body:not(.logged-in) .atg-pdp-public-offer-card{
    padding:14px 14px 12px !important;
    border-radius:14px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title>a,
  body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title>a,
  body:not(.logged-in) .atg-pdp-public-offer-card .product-title>a{
    font-size:15px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer-card .atg-pdp-card-artnr{
    margin-bottom:8px !important;
    font-size:12px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price{
    padding:10px 10px 9px !important;
    border-radius:12px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__value{
    font-size:23px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer-tier strong{
    font-size:13px !important;
  }
}


/* ==========================================================================
 * PUBLIC OFFERS — PREMIUM CARD REDESIGN (CSS-ONLY)
 * Scope: logged-out public /angebote/ cards only.
 * No PHP, query, pricing, cart, checkout or Offer-Core behavior changes.
 * ======================================================================= */

body:not(.logged-in) .atg-pdp-public-offer-card{
  position:relative !important;
  overflow:hidden !important;
  padding:18px 18px 16px !important;
  background:#fff !important;
  border:1px solid #e6e9ee !important;
  border-radius:18px !important;
  box-shadow:0 6px 20px rgba(17,24,39,.055) !important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

body:not(.logged-in) .atg-pdp-public-offer-card:hover{
  transform:translateY(-3px) !important;
  border-color:#d9dde4 !important;
  box-shadow:0 14px 34px rgba(17,24,39,.10) !important;
}

body:not(.logged-in) .atg-pdp-public-offer-card::before{
  content:"" !important;
  position:absolute !important;
  inset:0 auto 0 0 !important;
  width:4px !important;
  background:#d91f26 !important;
  z-index:2 !important;
}

body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
  height:170px !important;
  min-height:170px !important;
  max-height:170px !important;
  margin:0 0 14px !important;
  padding:8px 4px 4px !important;
  background:#fff !important;
  border-radius:12px !important;
}

body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top img{
  max-width:88% !important;
  max-height:150px !important;
  object-fit:contain !important;
  filter:drop-shadow(0 5px 8px rgba(17,24,39,.08)) !important;
}

body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title,
body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title,
body:not(.logged-in) .atg-pdp-public-offer-card .product-title{
  min-height:2.75em !important;
  max-height:2.75em !important;
  margin:0 0 8px !important;
}

body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title > a,
body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title > a,
body:not(.logged-in) .atg-pdp-public-offer-card .product-title > a{
  color:#161b22 !important;
  font-size:17px !important;
  font-weight:750 !important;
  line-height:1.38 !important;
  text-decoration:none !important;
}

body:not(.logged-in) .atg-pdp-public-offer-card .atg-pdp-card-artnr{
  margin:0 0 12px !important;
  color:#8b949e !important;
  font-size:12px !important;
  font-weight:600 !important;
  line-height:1.35 !important;
}

body:not(.logged-in) .atg-pdp-public-offer{
  margin-top:0 !important;
}

body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price{
  position:relative !important;
  margin:0 !important;
  padding:12px 0 8px !important;
  background:transparent !important;
  border:0 !important;
  border-top:1px solid #eceff3 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__row{
  display:flex !important;
  align-items:baseline !important;
  justify-content:flex-start !important;
  gap:6px !important;
  grid-template-columns:none !important;
}

body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__value{
  display:flex !important;
  flex-direction:row !important;
  align-items:baseline !important;
  justify-content:flex-start !important;
  justify-self:start !important;
  text-align:left !important;
  color:#d91f26 !important;
  font-size:29px !important;
  font-weight:850 !important;
  line-height:1 !important;
  letter-spacing:-.035em !important;
}

body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-price-prefix{
  font-size:.64em !important;
  font-weight:750 !important;
}

body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-price-unit{
  color:#69717b !important;
  font-size:.40em !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
  margin-left:3px !important;
}

body:not(.logged-in) .atg-pdp-public-offer .woocommerce-Price-amount,
body:not(.logged-in) .atg-pdp-public-offer .woocommerce-Price-amount bdi,
body:not(.logged-in) .atg-pdp-public-offer .woocommerce-Price-currencySymbol{
  color:inherit !important;
  font-weight:inherit !important;
}

body:not(.logged-in) .atg-pdp-public-offer-tiers{
  margin:0 !important;
  padding:8px 0 0 !important;
  border-top:1px dashed #e4e7eb !important;
  display:flex !important;
  flex-direction:column !important;
  gap:4px !important;
  color:#68707a !important;
  font-size:12px !important;
  line-height:1.4 !important;
}

body:not(.logged-in) .atg-pdp-public-offer-tier{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
}

body:not(.logged-in) .atg-pdp-public-offer-tier strong{
  color:#d91f26 !important;
  font-size:13px !important;
  font-weight:800 !important;
  white-space:nowrap !important;
}

body:not(.logged-in) .atg-pdp-public-offer-card .onsale,
body:not(.logged-in) .atg-pdp-public-offer-card .product-label,
body:not(.logged-in) .atg-pdp-public-offer-card .wd-product-label{
  border-radius:999px !important;
  padding:6px 10px !important;
  background:#d91f26 !important;
  color:#fff !important;
  font-size:10px !important;
  font-weight:800 !important;
  letter-spacing:.04em !important;
  box-shadow:0 4px 10px rgba(217,31,38,.18) !important;
}

body:not(.logged-in) .atg-pdp-public-offer-card .product-wrapper,
body:not(.logged-in) .atg-pdp-public-offer-card .product-grid-item,
body:not(.logged-in) .atg-pdp-public-offer-card .product-element-bottom,
body:not(.logged-in) .atg-pdp-public-offer-card .product-information{
  background:transparent !important;
}

@media (min-width:768px) and (max-width:1024px){
  body:not(.logged-in) .atg-pdp-public-offer-card{
    padding:16px 16px 14px !important;
    border-radius:16px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
    height:155px !important;
    min-height:155px !important;
    max-height:155px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top img{
    max-height:138px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__value{
    font-size:26px !important;
  }
}

@media (max-width:767px){
  body:not(.logged-in) .atg-pdp-public-offer-card{
    padding:13px 13px 12px !important;
    border-radius:14px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer-card::before{
    width:3px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
    height:125px !important;
    min-height:125px !important;
    max-height:125px !important;
    margin-bottom:10px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top img{
    max-height:112px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title > a,
  body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title > a,
  body:not(.logged-in) .atg-pdp-public-offer-card .product-title > a{
    font-size:14px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__value{
    font-size:22px !important;
  }
  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-price-unit{
    font-size:.45em !important;
  }
}


/* ==========================================================================
 * PUBLIC OFFERS — CLEAN PREMIUM REDESIGN V3 (CSS-ONLY)
 * Scope: logged-out public /angebote/ cards only.
 * No PHP, pricing, query, cart, checkout or Offer-Core behavior changes.
 * ======================================================================= */

body:not(.logged-in) .atg-pdp-public-offer-card{
  position:relative !important;
  overflow:hidden !important;
  padding:16px 16px 15px !important;
  background:#fff !important;
  border:1px solid #e5e8ec !important;
  border-radius:16px !important;
  box-shadow:0 5px 18px rgba(17,24,39,.045) !important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

body:not(.logged-in) .atg-pdp-public-offer-card:hover{
  transform:translateY(-2px) !important;
  border-color:#d7dce2 !important;
  box-shadow:0 11px 28px rgba(17,24,39,.075) !important;
}

/* Remove aggressive red side accent from the previous concept. */
body:not(.logged-in) .atg-pdp-public-offer-card::before{
  content:none !important;
}

/* Image area: clean and centered, with enough whitespace. */
body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
  height:168px !important;
  min-height:168px !important;
  max-height:168px !important;
  margin:0 0 13px !important;
  padding:4px !important;
  overflow:hidden !important;
  background:#fff !important;
  border-radius:10px !important;
}

body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top img{
  max-width:90% !important;
  max-height:148px !important;
  object-fit:contain !important;
  filter:none !important;
}

/* Product title: strong but calm. */
body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title,
body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title,
body:not(.logged-in) .atg-pdp-public-offer-card .product-title{
  min-height:2.72em !important;
  max-height:2.72em !important;
  margin:0 0 7px !important;
  padding:0 !important;
}

body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title > a,
body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title > a,
body:not(.logged-in) .atg-pdp-public-offer-card .product-title > a{
  color:#171a1f !important;
  font-size:16px !important;
  font-weight:700 !important;
  line-height:1.36 !important;
  text-decoration:none !important;
}

/* Article number stays quiet and secondary. */
body:not(.logged-in) .atg-pdp-public-offer-card .atg-pdp-card-artnr{
  margin:7px 0 0 !important;
  padding:0 !important;
  color:#8a9199 !important;
  font-size:11.5px !important;
  font-weight:600 !important;
  line-height:1.35 !important;
}

/* Offer price: premium, plain white background, red amount only. */
body:not(.logged-in) .atg-pdp-public-offer{
  position:relative !important;
  margin:10px 0 0 !important;
  padding:10px 0 0 !important;
  border-top:1px solid #eceff2 !important;
}

body:not(.logged-in) .atg-pdp-public-offer::before{
  content:"ANGEBOTSPREIS" !important;
  display:block !important;
  margin:0 0 5px !important;
  color:#d9272e !important;
  font-size:9.5px !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  letter-spacing:.075em !important;
}

body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price{
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__row{
  display:block !important;
  grid-template-columns:none !important;
}

body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__value{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:baseline !important;
  justify-content:flex-start !important;
  justify-self:start !important;
  gap:4px !important;
  color:#d9272e !important;
  font-size:26px !important;
  font-weight:850 !important;
  line-height:1.02 !important;
  letter-spacing:-.028em !important;
  text-align:left !important;
}

body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-price-prefix{
  font-size:.67em !important;
  font-weight:750 !important;
}

body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-price-unit{
  color:#626a73 !important;
  font-size:.41em !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
  margin-left:2px !important;
}

body:not(.logged-in) .atg-pdp-public-offer .woocommerce-Price-amount,
body:not(.logged-in) .atg-pdp-public-offer .woocommerce-Price-amount bdi,
body:not(.logged-in) .atg-pdp-public-offer .woocommerce-Price-currencySymbol{
  color:inherit !important;
  font-weight:inherit !important;
}

/* Tier line: quiet left label, red right value. */
body:not(.logged-in) .atg-pdp-public-offer-tiers{
  display:flex !important;
  flex-direction:column !important;
  gap:4px !important;
  margin:8px 0 0 !important;
  padding:7px 0 0 !important;
  border-top:1px dashed #e2e5e9 !important;
  color:#737b84 !important;
  font-size:11.5px !important;
  line-height:1.35 !important;
}

body:not(.logged-in) .atg-pdp-public-offer-tier{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
}

body:not(.logged-in) .atg-pdp-public-offer-tier strong{
  color:#d9272e !important;
  font-size:12.5px !important;
  font-weight:800 !important;
  white-space:nowrap !important;
}

/* Existing offer badge: smaller, cleaner, less dominant. */
body:not(.logged-in) .atg-pdp-public-offer-card .onsale,
body:not(.logged-in) .atg-pdp-public-offer-card .product-label,
body:not(.logged-in) .atg-pdp-public-offer-card .wd-product-label{
  border-radius:7px !important;
  padding:5px 8px !important;
  background:#e51f29 !important;
  color:#fff !important;
  font-size:9px !important;
  font-weight:800 !important;
  line-height:1 !important;
  letter-spacing:.035em !important;
  box-shadow:none !important;
}

/* Keep Woodmart internals neutral. */
body:not(.logged-in) .atg-pdp-public-offer-card .product-wrapper,
body:not(.logged-in) .atg-pdp-public-offer-card .product-grid-item,
body:not(.logged-in) .atg-pdp-public-offer-card .product-element-bottom,
body:not(.logged-in) .atg-pdp-public-offer-card .product-information{
  background:transparent !important;
}

/* Tablet */
@media (min-width:768px) and (max-width:1024px){
  body:not(.logged-in) .atg-pdp-public-offer-card{
    padding:15px 15px 14px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
    height:150px !important;
    min-height:150px !important;
    max-height:150px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top img{
    max-height:133px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__value{
    font-size:24px !important;
  }
}

/* Mobile */
@media (max-width:767px){
  body:not(.logged-in) .atg-pdp-public-offer-card{
    padding:12px 12px 12px !important;
    border-radius:13px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
    height:122px !important;
    min-height:122px !important;
    max-height:122px !important;
    margin-bottom:9px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top img{
    max-height:108px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title > a,
  body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title > a,
  body:not(.logged-in) .atg-pdp-public-offer-card .product-title > a{
    font-size:13.5px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer::before{
    font-size:8.5px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__value{
    font-size:21px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-price-unit{
    font-size:.44em !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-tiers{
    font-size:10.5px !important;
  }
}


/* ==========================================================================
 * PUBLIC OFFERS — V3.1 SPACING / WIDTH REFINEMENT (CSS-ONLY)
 * Wider cards, safer inner spacing, title slightly lower.
 * ======================================================================= */

/* Slightly wider cards: reduce horizontal gap only on the public guest offer grid. */
body:not(.logged-in) :is(.products,.wd-products-holder):has(> .atg-pdp-public-offer-card){
  column-gap:20px !important;
  row-gap:32px !important;
}

/* Keep text/pricing safely inset from the card border. */
body:not(.logged-in) .atg-pdp-public-offer-card .product-element-bottom,
body:not(.logged-in) .atg-pdp-public-offer-card .product-information{
  padding-left:4px !important;
  padding-right:4px !important;
}

/* Give image/title a little more separation so the title sits lower. */
body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
  margin-bottom:19px !important;
}

/* Ensure the title itself never visually touches the side border. */
body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title,
body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title,
body:not(.logged-in) .atg-pdp-public-offer-card .product-title{
  padding-left:0 !important;
  padding-right:0 !important;
}

@media (min-width:768px) and (max-width:1024px){
  body:not(.logged-in) :is(.products,.wd-products-holder):has(> .atg-pdp-public-offer-card){
    column-gap:18px !important;
    row-gap:28px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
    margin-bottom:16px !important;
  }
}

@media (max-width:767px){
  body:not(.logged-in) :is(.products,.wd-products-holder):has(> .atg-pdp-public-offer-card){
    column-gap:10px !important;
    row-gap:20px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
    margin-bottom:13px !important;
  }
}


/* ==========================================================================
 * PUBLIC OFFERS — V3.2 CONTENT INSET / TITLE POSITION (CSS-ONLY)
 * Slightly more inner spacing and title placed a little lower.
 * ======================================================================= */

/* Push textual content and price block a little further inward. */
body:not(.logged-in) .atg-pdp-public-offer-card .product-element-bottom,
body:not(.logged-in) .atg-pdp-public-offer-card .product-information{
  padding-left:8px !important;
  padding-right:8px !important;
}

/* Place the product title a little lower below the image. */
body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
  margin-bottom:24px !important;
}

@media (min-width:768px) and (max-width:1024px){
  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-bottom,
  body:not(.logged-in) .atg-pdp-public-offer-card .product-information{
    padding-left:7px !important;
    padding-right:7px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
    margin-bottom:20px !important;
  }
}

@media (max-width:767px){
  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-bottom,
  body:not(.logged-in) .atg-pdp-public-offer-card .product-information{
    padding-left:5px !important;
    padding-right:5px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
    margin-bottom:16px !important;
  }
}


/* ==========================================================================
 * PUBLIC OFFERS — V3.3 MOBILE ALIGNMENT FIX (CSS-ONLY)
 * Mobile now follows the same redesigned card language as desktop.
 * ======================================================================= */

@media (max-width:767px){

  /* Keep the mobile grid clean and give cards enough room. */
  body:not(.logged-in) :is(.products,.wd-products-holder):has(> .atg-pdp-public-offer-card){
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    column-gap:10px !important;
    row-gap:18px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card{
    padding:12px 12px 13px !important;
    background:#fff !important;
    border:1px solid #e5e8ec !important;
    border-radius:13px !important;
    box-shadow:0 4px 14px rgba(17,24,39,.05) !important;
    overflow:hidden !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card::before{
    content:none !important;
  }

  /* Preserve the redesigned image/title spacing on mobile too. */
  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
    height:128px !important;
    min-height:128px !important;
    max-height:128px !important;
    margin:0 0 17px !important;
    padding:3px !important;
    background:#fff !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top img{
    max-width:90% !important;
    max-height:112px !important;
    object-fit:contain !important;
    filter:none !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-bottom,
  body:not(.logged-in) .atg-pdp-public-offer-card .product-information{
    padding-left:7px !important;
    padding-right:7px !important;
    background:transparent !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title,
  body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title,
  body:not(.logged-in) .atg-pdp-public-offer-card .product-title{
    min-height:2.7em !important;
    max-height:2.7em !important;
    margin:0 0 7px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title > a,
  body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title > a,
  body:not(.logged-in) .atg-pdp-public-offer-card .product-title > a{
    color:#171a1f !important;
    font-size:13.5px !important;
    font-weight:700 !important;
    line-height:1.35 !important;
  }

  /* Price block: same clean desktop concept, just scaled down. */
  body:not(.logged-in) .atg-pdp-public-offer{
    margin:9px 0 0 !important;
    padding:9px 0 0 !important;
    border-top:1px solid #eceff2 !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer::before{
    content:"ANGEBOTSPREIS" !important;
    display:block !important;
    margin:0 0 4px !important;
    color:#d9272e !important;
    font-size:8.5px !important;
    font-weight:800 !important;
    line-height:1.2 !important;
    letter-spacing:.06em !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price{
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__row{
    display:block !important;
    grid-template-columns:none !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__value{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:baseline !important;
    justify-content:flex-start !important;
    justify-self:start !important;
    gap:3px !important;
    color:#d9272e !important;
    font-size:21px !important;
    font-weight:850 !important;
    line-height:1.02 !important;
    letter-spacing:-.025em !important;
    text-align:left !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-price-unit{
    color:#626a73 !important;
    font-size:.44em !important;
    font-weight:650 !important;
    margin-left:1px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-tiers{
    margin:7px 0 0 !important;
    padding:6px 0 0 !important;
    border-top:1px dashed #e2e5e9 !important;
    color:#737b84 !important;
    font-size:10.5px !important;
    line-height:1.3 !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-tier strong{
    color:#d9272e !important;
    font-size:11.5px !important;
    font-weight:800 !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .atg-pdp-card-artnr{
    margin-top:7px !important;
    color:#8a9199 !important;
    font-size:10.5px !important;
    font-weight:600 !important;
  }
}


/* ==========================================================================
 * v0.5.2 — FINAL MOBILE PUBLIC-OFFER OVERRIDE
 * Deliberately last in the stylesheet so older mobile rules cannot win.
 * ======================================================================= */
@media screen and (max-width:767px){
  body:not(.logged-in) .atg-pdp-public-offer-card{
    padding:12px 12px 13px !important;
    background:#fff !important;
    border:1px solid #e5e8ec !important;
    border-radius:13px !important;
    box-shadow:0 4px 14px rgba(17,24,39,.05) !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card::before{
    content:none !important;
    display:none !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top{
    height:128px !important;
    min-height:128px !important;
    max-height:128px !important;
    margin:0 0 18px !important;
    padding:3px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-top img{
    max-width:90% !important;
    max-height:112px !important;
    object-fit:contain !important;
    filter:none !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .product-element-bottom,
  body:not(.logged-in) .atg-pdp-public-offer-card .product-information{
    padding-left:8px !important;
    padding-right:8px !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title,
  body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title,
  body:not(.logged-in) .atg-pdp-public-offer-card .product-title{
    margin:0 0 7px !important;
    min-height:2.7em !important;
    max-height:2.7em !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .wd-entities-title > a,
  body:not(.logged-in) .atg-pdp-public-offer-card .woocommerce-loop-product__title > a,
  body:not(.logged-in) .atg-pdp-public-offer-card .product-title > a{
    color:#171a1f !important;
    font-size:13.5px !important;
    font-weight:700 !important;
    line-height:1.35 !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer{
    margin:9px 0 0 !important;
    padding:9px 0 0 !important;
    border-top:1px solid #eceff2 !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer::before{
    content:"ANGEBOTSPREIS" !important;
    display:block !important;
    margin:0 0 4px !important;
    color:#d9272e !important;
    font-size:8.5px !important;
    font-weight:800 !important;
    line-height:1.2 !important;
    letter-spacing:.06em !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price{
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-loop-customer-price__value{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:baseline !important;
    justify-content:flex-start !important;
    justify-self:start !important;
    gap:3px !important;
    color:#d9272e !important;
    font-size:21px !important;
    font-weight:850 !important;
    line-height:1.02 !important;
    letter-spacing:-.025em !important;
    text-align:left !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer .atg-pdp-price-unit{
    color:#626a73 !important;
    font-size:.44em !important;
    font-weight:650 !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-tiers{
    margin:7px 0 0 !important;
    padding:6px 0 0 !important;
    border-top:1px dashed #e2e5e9 !important;
    color:#737b84 !important;
    font-size:10.5px !important;
    line-height:1.3 !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-tier strong{
    color:#d9272e !important;
    font-size:11.5px !important;
    font-weight:800 !important;
  }

  body:not(.logged-in) .atg-pdp-public-offer-card .atg-pdp-card-artnr{
    margin-top:7px !important;
    color:#8a9199 !important;
    font-size:10.5px !important;
    font-weight:600 !important;
  }
}


/* ==========================================================================
 * v0.5.3 — LOGGED-IN OFFER CARD DESIGN
 * Same calm premium visual language as the public offer cards, while preserving
 * ALL logged-in B2B actions: quantity, add-to-cart, wishlist/favorites,
 * shopping-list controls and all existing theme/plugin action hooks.
 *
 * CSS only. No purchase/action element is hidden or removed here.
 * ======================================================================= */

/* ---------- Desktop / general logged-in offer card ---------- */
body.logged-in .atg-pdp-offer-card{
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  padding:16px 16px 15px !important;
  background:#fff !important;
  border:1px solid #e5e8ec !important;
  border-radius:16px !important;
  box-shadow:0 5px 18px rgba(17,24,39,.045) !important;
  overflow:visible !important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

body.logged-in .atg-pdp-offer-card:hover{
  transform:translateY(-2px) !important;
  border-color:#d7dce2 !important;
  box-shadow:0 11px 28px rgba(17,24,39,.075) !important;
}

/* Do not create the guest-only decorative stripe. */
body.logged-in .atg-pdp-offer-card::before{
  content:none !important;
  display:none !important;
}

/* Image zone. overflow visible on the card itself intentionally keeps
 * Woodmart wishlist/list/action buttons available around the media area. */
body.logged-in .atg-pdp-offer-card .product-element-top{
  position:relative !important;
  height:168px !important;
  min-height:168px !important;
  max-height:168px !important;
  margin:0 0 24px !important;
  padding:4px !important;
  overflow:visible !important;
  background:#fff !important;
  border-radius:10px !important;
}

body.logged-in .atg-pdp-offer-card .product-element-top :is(a,picture){
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
}

body.logged-in .atg-pdp-offer-card .product-element-top img{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:90% !important;
  max-height:148px !important;
  object-fit:contain !important;
  object-position:center !important;
  filter:none !important;
}

/* Text content inset from the card edge. */
body.logged-in .atg-pdp-offer-card .product-element-bottom,
body.logged-in .atg-pdp-offer-card .product-information{
  padding-left:8px !important;
  padding-right:8px !important;
  background:transparent !important;
}

/* Product title. */
body.logged-in .atg-pdp-offer-card .wd-entities-title,
body.logged-in .atg-pdp-offer-card .woocommerce-loop-product__title,
body.logged-in .atg-pdp-offer-card .product-title{
  min-height:2.72em !important;
  max-height:2.72em !important;
  margin:0 0 7px !important;
  padding:0 !important;
}

body.logged-in .atg-pdp-offer-card .wd-entities-title > a,
body.logged-in .atg-pdp-offer-card .woocommerce-loop-product__title > a,
body.logged-in .atg-pdp-offer-card .product-title > a{
  color:#171a1f !important;
  font-size:16px !important;
  font-weight:700 !important;
  line-height:1.36 !important;
  text-decoration:none !important;
}

/* Article number remains secondary. */
body.logged-in .atg-pdp-offer-card .atg-pdp-card-artnr{
  margin:0 0 9px !important;
  padding:0 !important;
  color:#8a9199 !important;
  font-size:11.5px !important;
  font-weight:600 !important;
  line-height:1.35 !important;
}

/* Logged-in native offer price: same red offer emphasis as public cards. */
body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer{
  position:relative !important;
  width:100% !important;
  margin:10px 0 0 !important;
  padding:10px 0 0 !important;
  background:transparent !important;
  border:0 !important;
  border-top:1px solid #eceff2 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer::before{
  content:"ANGEBOTSPREIS" !important;
  display:block !important;
  margin:0 0 5px !important;
  color:#d9272e !important;
  font-size:9.5px !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  letter-spacing:.075em !important;
}

body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer .atg-pdp-loop-customer-price__row{
  display:block !important;
  grid-template-columns:none !important;
}

body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer .atg-pdp-loop-customer-price__value{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:baseline !important;
  justify-content:flex-start !important;
  justify-self:start !important;
  gap:4px !important;
  color:#d9272e !important;
  font-size:26px !important;
  font-weight:850 !important;
  line-height:1.02 !important;
  letter-spacing:-.028em !important;
  text-align:left !important;
}

body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer .atg-pdp-price-prefix{
  font-size:.67em !important;
  font-weight:750 !important;
}

body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer .atg-pdp-price-unit{
  color:#626a73 !important;
  font-size:.41em !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
  margin-left:2px !important;
}

body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer .woocommerce-Price-amount,
body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer .woocommerce-Price-amount bdi,
body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer .woocommerce-Price-currencySymbol{
  color:inherit !important;
  font-weight:inherit !important;
}

/* Keep the purchase row in the normal document flow and visually separated.
 * IMPORTANT: no display:none and no action selector is removed. */
body.logged-in .atg-pdp-offer-card.atg-pdp-loop-simple :is(
  .wd-add-btn,
  .wd-add-btn-replace,
  .wd-add-btn-replace-hover,
  .product-add-to-cart,
  .add-to-cart-loop,
  .wrap-add-btn,
  .wd-bottom-actions,
  .wd-product-footer,
  form.cart,
  .cart
):has(.quantity){
  margin-top:10px !important;
}

/* Explicitly protect Woodmart/media action areas from card stacking issues.
 * Their original display mode and behavior remain theme-controlled. */
body.logged-in .atg-pdp-offer-card :is(
  .wd-buttons,
  .wd-product-buttons,
  .wd-wishlist-btn,
  .wd-compare-btn,
  .wd-action-btn
){
  z-index:8 !important;
}

/* ---------- Tablet ---------- */
@media (min-width:768px) and (max-width:1024px){
  body.logged-in .atg-pdp-offer-card{
    padding:15px 15px 14px !important;
    border-radius:15px !important;
  }

  body.logged-in .atg-pdp-offer-card .product-element-top{
    height:150px !important;
    min-height:150px !important;
    max-height:150px !important;
    margin-bottom:20px !important;
  }

  body.logged-in .atg-pdp-offer-card .product-element-top img{
    max-height:133px !important;
  }

  body.logged-in .atg-pdp-offer-card .product-element-bottom,
  body.logged-in .atg-pdp-offer-card .product-information{
    padding-left:7px !important;
    padding-right:7px !important;
  }

  body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer .atg-pdp-loop-customer-price__value{
    font-size:24px !important;
  }
}

/* ---------- Mobile ---------- */
@media screen and (max-width:767px){
  body.logged-in :is(.products,.wd-products-holder):has(> .atg-pdp-offer-card){
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    column-gap:10px !important;
    row-gap:18px !important;
  }

  body.logged-in .atg-pdp-offer-card{
    padding:12px 12px 13px !important;
    background:#fff !important;
    border:1px solid #e5e8ec !important;
    border-radius:13px !important;
    box-shadow:0 4px 14px rgba(17,24,39,.05) !important;
    overflow:visible !important;
  }

  body.logged-in .atg-pdp-offer-card .product-element-top{
    height:128px !important;
    min-height:128px !important;
    max-height:128px !important;
    margin:0 0 18px !important;
    padding:3px !important;
    overflow:visible !important;
  }

  body.logged-in .atg-pdp-offer-card .product-element-top img{
    max-width:90% !important;
    max-height:112px !important;
  }

  body.logged-in .atg-pdp-offer-card .product-element-bottom,
  body.logged-in .atg-pdp-offer-card .product-information{
    padding-left:7px !important;
    padding-right:7px !important;
  }

  body.logged-in .atg-pdp-offer-card .wd-entities-title,
  body.logged-in .atg-pdp-offer-card .woocommerce-loop-product__title,
  body.logged-in .atg-pdp-offer-card .product-title{
    min-height:2.7em !important;
    max-height:2.7em !important;
    margin:0 0 7px !important;
  }

  body.logged-in .atg-pdp-offer-card .wd-entities-title > a,
  body.logged-in .atg-pdp-offer-card .woocommerce-loop-product__title > a,
  body.logged-in .atg-pdp-offer-card .product-title > a{
    font-size:13.5px !important;
    line-height:1.35 !important;
  }

  body.logged-in .atg-pdp-offer-card .atg-pdp-card-artnr{
    margin-bottom:8px !important;
    font-size:10.5px !important;
  }

  body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer{
    margin-top:9px !important;
    padding-top:9px !important;
  }

  body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer::before{
    margin-bottom:4px !important;
    font-size:8.5px !important;
    letter-spacing:.06em !important;
  }

  body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer .atg-pdp-loop-customer-price__value{
    gap:3px !important;
    font-size:21px !important;
  }

  body.logged-in .atg-pdp-offer-card .atg-pdp-loop-native-offer .atg-pdp-price-unit{
    font-size:.44em !important;
  }

  /* Keep the existing quantity/cart controls exactly functional on small cards.
   * Only margin is touched; dimensions/colors continue to come from the proven
   * existing ATG action-row CSS. */
  body.logged-in .atg-pdp-offer-card.atg-pdp-loop-simple :is(
    .wd-add-btn,
    .wd-add-btn-replace,
    .wd-add-btn-replace-hover,
    .product-add-to-cart,
    .add-to-cart-loop,
    .wrap-add-btn,
    .wd-bottom-actions,
    .wd-product-footer,
    form.cart,
    .cart
  ):has(.quantity){
    margin-top:9px !important;
  }
}


/* ==========================================================================
 * v0.5.4 — LOGGED-IN OFFERS PAGE CONTEXT FIX
 *
 * Root cause:
 * Woodmart may render the logged-in products loop in a context where the
 * per-product .atg-pdp-offer-card marker is not reliably added. The BODY marker
 * .atg-pdp-offers-page is created in the real page context and is therefore
 * stable. We style the existing .atg-pdp-loop-card beneath it.
 *
 * Purchase controls are intentionally NOT hidden, removed or re-rendered.
 * ======================================================================= */

/* ---------- Logged-in offer cards: stable page-context selector ---------- */
body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card{
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  padding:16px 16px 15px !important;
  background:#fff !important;
  border:1px solid #e5e8ec !important;
  border-radius:16px !important;
  box-shadow:0 5px 18px rgba(17,24,39,.045) !important;
  overflow:visible !important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card:hover{
  transform:translateY(-2px) !important;
  border-color:#d7dce2 !important;
  box-shadow:0 11px 28px rgba(17,24,39,.075) !important;
}

body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card::before{
  content:none !important;
  display:none !important;
}

/* Make the offers grid use the same 4/3/2 card geometry even when Woodmart
 * omitted the old per-card offers marker. */
body.logged-in.atg-pdp-offers-page :is(.products,.wd-products-holder):has(> .atg-pdp-loop-card){
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  column-gap:20px !important;
  row-gap:32px !important;
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

body.logged-in.atg-pdp-offers-page :is(.products,.wd-products-holder):has(> .atg-pdp-loop-card) > .atg-pdp-loop-card{
  grid-column:auto !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  flex:0 0 auto !important;
  margin:0 !important;
}

/* Media / title spacing. */
body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-element-top{
  position:relative !important;
  height:168px !important;
  min-height:168px !important;
  max-height:168px !important;
  margin:0 0 24px !important;
  padding:4px !important;
  overflow:visible !important;
  background:#fff !important;
  border-radius:10px !important;
}

body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-element-top :is(a,picture){
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
}

body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-element-top img{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:90% !important;
  max-height:148px !important;
  object-fit:contain !important;
  object-position:center !important;
}

body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-element-bottom,
body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-information{
  padding-left:8px !important;
  padding-right:8px !important;
  background:transparent !important;
}

body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .wd-entities-title,
body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .woocommerce-loop-product__title,
body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-title{
  min-height:2.72em !important;
  max-height:2.72em !important;
  margin:0 0 7px !important;
  padding:0 !important;
}

body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .wd-entities-title > a,
body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .woocommerce-loop-product__title > a,
body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-title > a{
  color:#171a1f !important;
  font-size:16px !important;
  font-weight:700 !important;
  line-height:1.36 !important;
  text-decoration:none !important;
}

body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-card-artnr{
  margin:0 0 9px !important;
  color:#8a9199 !important;
  font-size:11.5px !important;
  font-weight:600 !important;
  line-height:1.35 !important;
}

/* Every logged-in visible price on the offers page gets the same offer visual.
 * This intentionally also covers a customer-specific effective price, because
 * business logic may correctly choose that instead of the native offer price. */
body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-pricing--loop{
  margin:10px 0 0 !important;
  padding:10px 0 0 !important;
  border-top:1px solid #eceff2 !important;
}

body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-pricing--loop::before{
  content:"ANGEBOTSPREIS" !important;
  display:block !important;
  margin:0 0 5px !important;
  color:#d9272e !important;
  font-size:9.5px !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  letter-spacing:.075em !important;
}

/* Neutralize old green panel style on this page only. */
body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-loop-customer-price,
body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-loop-price-box{
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-loop-customer-price__row{
  display:block !important;
  grid-template-columns:none !important;
}

body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-loop-customer-price__value{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:baseline !important;
  justify-content:flex-start !important;
  justify-self:start !important;
  gap:4px !important;
  color:#d9272e !important;
  font-size:26px !important;
  font-weight:850 !important;
  line-height:1.02 !important;
  letter-spacing:-.028em !important;
  text-align:left !important;
}

body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-price-unit{
  color:#626a73 !important;
  font-size:.41em !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
  margin-left:2px !important;
}

/* Dual-price fallback: preserve both rows/functionality but use a compact,
 * clean layout instead of the old green panel. */
body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-loop-price-row{
  background:transparent !important;
  border:0 !important;
  padding:4px 0 !important;
}

body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-loop-price-row__value{
  font-weight:800 !important;
}

/* Protect all known interactive action areas.
 * No display property is changed here. */
body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card :is(
  .wd-buttons,
  .wd-product-buttons,
  .wd-wishlist-btn,
  .wd-compare-btn,
  .wd-action-btn,
  .wd-add-btn,
  .wd-add-btn-replace,
  .wd-add-btn-replace-hover,
  .product-add-to-cart,
  .add-to-cart-loop,
  .wrap-add-btn,
  .wd-bottom-actions,
  .wd-product-footer,
  form.cart,
  .cart,
  .quantity,
  .qty-wrapper
){
  position:relative;
  z-index:8;
}

/* ---------- Tablet ---------- */
@media (min-width:768px) and (max-width:1024px){
  body.logged-in.atg-pdp-offers-page :is(.products,.wd-products-holder):has(> .atg-pdp-loop-card){
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    column-gap:18px !important;
    row-gap:28px !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card{
    padding:15px 15px 14px !important;
    border-radius:15px !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-element-top{
    height:150px !important;
    min-height:150px !important;
    max-height:150px !important;
    margin-bottom:20px !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-element-top img{
    max-height:133px !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-loop-customer-price__value{
    font-size:24px !important;
  }
}

/* ---------- Mobile ---------- */
@media screen and (max-width:767px){
  body.logged-in.atg-pdp-offers-page :is(.products,.wd-products-holder):has(> .atg-pdp-loop-card){
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    column-gap:10px !important;
    row-gap:18px !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card{
    padding:12px 12px 13px !important;
    border-radius:13px !important;
    box-shadow:0 4px 14px rgba(17,24,39,.05) !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-element-top{
    height:128px !important;
    min-height:128px !important;
    max-height:128px !important;
    margin:0 0 18px !important;
    padding:3px !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-element-top img{
    max-width:90% !important;
    max-height:112px !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-element-bottom,
  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-information{
    padding-left:7px !important;
    padding-right:7px !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .wd-entities-title > a,
  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .woocommerce-loop-product__title > a,
  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .product-title > a{
    font-size:13.5px !important;
    line-height:1.35 !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-card-artnr{
    font-size:10.5px !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-pricing--loop{
    margin-top:9px !important;
    padding-top:9px !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-pricing--loop::before{
    margin-bottom:4px !important;
    font-size:8.5px !important;
    letter-spacing:.06em !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-loop-customer-price__value{
    gap:3px !important;
    font-size:21px !important;
  }

  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-price-unit{
    font-size:.44em !important;
  }
}


/* ==========================================================================
 * v0.5.5 — LOGGED-IN OFFERS FINAL VISUAL NORMALIZATION
 *
 * Resolves conflicting legacy visual rules on /angebote/:
 * - one "ANGEBOTSPREIS" label only
 * - effective offer price consistently red
 * - unit remains muted
 * - Woodmart wishlist / shopping-list action rail stays visible and clickable
 * - cart / quantity / variable-product CTA untouched functionally
 *
 * Presentation only. No price, cart, query or Offer-Core logic.
 * ======================================================================= */

/* --------------------------------------------------------------------------
 * 1. ONE label only
 * The page-level pricing wrapper owns the single visible label.
 * Older native-offer pseudo labels are explicitly neutralized.
 * ----------------------------------------------------------------------- */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-loop-native-offer::before{
  content:none !important;
  display:none !important;
}

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop::before{
  content:"ANGEBOTSPREIS" !important;
  display:block !important;
  margin:0 0 5px !important;
  padding:0 !important;
  color:#d9272e !important;
  font-size:9.5px !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  letter-spacing:.075em !important;
}

/* --------------------------------------------------------------------------
 * 2. CONSISTENT RED effective offer price
 * Covers both the customer/native single-price renderer and the regular
 * pickup/delivery row renderer that can be selected by the existing engine.
 * ----------------------------------------------------------------------- */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop
.atg-pdp-loop-customer-price__value,

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop
.atg-pdp-loop-price-row__value,

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop
.atg-pdp-price-amount,

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop
.atg-pdp-price-amount .woocommerce-Price-amount,

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop
.atg-pdp-price-amount .woocommerce-Price-amount bdi,

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop
.atg-pdp-price-amount .woocommerce-Price-currencySymbol{
  color:#d9272e !important;
  font-weight:850 !important;
}

/* The primary visible price gets the same larger hierarchy as guest offers. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop
.atg-pdp-loop-customer-price__value,

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop
.atg-pdp-loop-price-row__value{
  font-size:26px !important;
  line-height:1.02 !important;
  letter-spacing:-.028em !important;
}

/* Keep "/ Karton", "/ Packung", etc. intentionally quiet. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop
.atg-pdp-price-unit{
  color:#626a73 !important;
  font-size:.41em !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
}

/* Old pickup/delivery label text must not compete visually with the offer price. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop
.atg-pdp-loop-price-row__label{
  color:#6f7780 !important;
  font-size:10.5px !important;
  font-weight:650 !important;
}

/* --------------------------------------------------------------------------
 * 3. CLEAN PRICE AREA
 * Remove green card/panel presentation without touching rendered values.
 * ----------------------------------------------------------------------- */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop
:is(.atg-pdp-loop-customer-price,.atg-pdp-loop-price-box){
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop
.atg-pdp-loop-price-row{
  min-height:0 !important;
  margin:0 !important;
  padding:2px 0 !important;
  background:transparent !important;
  border:0 !important;
}

/* --------------------------------------------------------------------------
 * 4. KEEP WOODMART FAVORITES / LIST ACTIONS VISIBLE
 * The action rail is presentation-only and remains fully theme/plugin driven.
 * We only ensure the existing controls are not hidden behind the new card.
 * ----------------------------------------------------------------------- */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.product-element-top{
  position:relative !important;
  overflow:visible !important;
}

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
:is(.wd-buttons,.wd-product-buttons){
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
  transform:none !important;
  z-index:20 !important;
}

/* Typical Woodmart vertical action rail on product image. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.product-element-top > :is(.wd-buttons,.wd-product-buttons){
  position:absolute !important;
  top:8px !important;
  right:8px !important;
}

/* Do not change what the individual actions DO. Only guarantee visibility. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
:is(
  .wd-wishlist-btn,
  .wd-compare-btn,
  .wd-action-btn,
  [class*="wishlist"],
  [class*="favorite"],
  [class*="favourite"]
){
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
}

/* --------------------------------------------------------------------------
 * 5. ACTION ROW
 * Existing quantity/cart/variable CTA stays exactly in place and functional.
 * Only give it a clean separation from the offer price.
 * ----------------------------------------------------------------------- */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
:is(
  .wd-add-btn,
  .wd-add-btn-replace,
  .wd-add-btn-replace-hover,
  .product-add-to-cart,
  .add-to-cart-loop,
  .wrap-add-btn,
  .wd-bottom-actions,
  .wd-product-footer,
  form.cart,
  .cart,
  .atg-pdp-archive-variable-cta
){
  position:relative;
  z-index:10;
}

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop
+ :is(
  .wd-add-btn,
  .wd-add-btn-replace,
  .product-add-to-cart,
  .wrap-add-btn,
  .wd-bottom-actions,
  .wd-product-footer,
  form.cart,
  .cart,
  .atg-pdp-archive-variable-cta
){
  margin-top:10px !important;
}

/* --------------------------------------------------------------------------
 * Mobile normalization
 * ----------------------------------------------------------------------- */
@media screen and (max-width:767px){
  body.logged-in.atg-pdp-offers-page
  .atg-pdp-loop-card
  .atg-pdp-pricing--loop
  .atg-pdp-loop-customer-price__value,

  body.logged-in.atg-pdp-offers-page
  .atg-pdp-loop-card
  .atg-pdp-pricing--loop
  .atg-pdp-loop-price-row__value{
    font-size:21px !important;
  }

  body.logged-in.atg-pdp-offers-page
  .atg-pdp-loop-card
  .atg-pdp-pricing--loop::before{
    font-size:8.5px !important;
    margin-bottom:4px !important;
    letter-spacing:.06em !important;
  }

  body.logged-in.atg-pdp-offers-page
  .atg-pdp-loop-card
  .product-element-top > :is(.wd-buttons,.wd-product-buttons){
    top:5px !important;
    right:5px !important;
  }
}


/* ==========================================================================
 * v0.5.6 — LOGGED-IN OFFER TIER PRICES
 * Loop tier markup is emitted by PHP but hidden globally. It is shown only on
 * the logged-in /angebote/ surface, matching the compact public offer layout.
 * ======================================================================= */

/* Never change normal category/search/product-card surfaces. */
.atg-pdp-loop-offer-tiers{
  display:none !important;
}

/* Only the dedicated logged-in offers page exposes loop offer tiers. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-loop-offer-tiers{
  display:block !important;
  margin:8px 0 0 !important;
}

/* Convert the existing full tier table into the same compact offer-card row
 * language used for guests. No tier data is changed. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-loop-offer-tiers
.atg-pdp-tier-prices{
  display:block !important;
  margin:0 !important;
  padding:7px 0 0 !important;
  background:transparent !important;
  border:0 !important;
  border-top:1px dashed #e2e5e9 !important;
  border-radius:0 !important;
  overflow:visible !important;
}

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-loop-offer-tiers
.atg-pdp-tier-prices__title,

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-loop-offer-tiers
.atg-pdp-tier-prices__row--head{
  display:none !important;
}

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-loop-offer-tiers
.atg-pdp-tier-prices__table{
  display:flex !important;
  flex-direction:column !important;
  gap:4px !important;
  width:100% !important;
}

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-loop-offer-tiers
.atg-pdp-tier-prices__row:not(.atg-pdp-tier-prices__row--head){
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:10px !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  color:#737b84 !important;
  font-size:11.5px !important;
  line-height:1.35 !important;
}

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-loop-offer-tiers
.atg-pdp-tier-prices__row:not(.atg-pdp-tier-prices__row--head)
> span:last-child{
  color:#d9272e !important;
  font-size:12.5px !important;
  font-weight:800 !important;
  white-space:nowrap !important;
}

/* The first tier is already represented by the large main price.
 * Hide only the first rendered tier row so the card shows the additional
 * discount threshold, e.g. "ab 5 Karton — 24,99 €", like the guest card. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-loop-offer-tiers
.atg-pdp-tier-prices__row--head
+ .atg-pdp-tier-prices__row{
  display:none !important;
}

@media screen and (max-width:767px){
  body.logged-in.atg-pdp-offers-page
  .atg-pdp-loop-card
  .atg-pdp-loop-offer-tiers{
    margin-top:7px !important;
  }

  body.logged-in.atg-pdp-offers-page
  .atg-pdp-loop-card
  .atg-pdp-loop-offer-tiers
  .atg-pdp-tier-prices{
    padding-top:6px !important;
  }

  body.logged-in.atg-pdp-offers-page
  .atg-pdp-loop-card
  .atg-pdp-loop-offer-tiers
  .atg-pdp-tier-prices__row:not(.atg-pdp-tier-prices__row--head){
    font-size:10.5px !important;
  }

  body.logged-in.atg-pdp-offers-page
  .atg-pdp-loop-card
  .atg-pdp-loop-offer-tiers
  .atg-pdp-tier-prices__row:not(.atg-pdp-tier-prices__row--head)
  > span:last-child{
    font-size:11.5px !important;
  }
}


/* ==========================================================================
 * v0.5.7 — LOGGED-IN OFFERS ARTICLE NUMBER ORDER
 *
 * Guest cards use Woodmart's own article-number output after the public offer
 * block. Logged-in cards use ATG's server-rendered .atg-pdp-card-artnr, which
 * historically sat before pricing. On /angebote/ only, normalize the logged-in
 * order to: title -> price/tiers -> ArtNr. -> purchase action.
 *
 * Presentation only. No SKU, pricing, cart, offer or SelectLine logic changes.
 * ======================================================================= */

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.product-information,

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.product-element-bottom{
  display:flex !important;
  flex-direction:column !important;
}

/* Pricing including the nested tier block comes first. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-pricing--loop{
  order:20 !important;
}

/* Article number follows the complete pricing/tier block. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-pdp-card-artnr{
  order:30 !important;
  margin:7px 0 0 !important;
  min-height:16px !important;
  color:#8a9199 !important;
}

/* Existing purchase controls stay after the article number wherever they are
 * direct flex children. Their markup, behavior and dimensions are untouched. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
:is(
  .wd-add-btn,
  .wd-add-btn-replace,
  .wd-add-btn-replace-hover,
  .product-add-to-cart,
  .add-to-cart-loop,
  .wrap-add-btn,
  .wd-bottom-actions,
  .wd-product-footer,
  form.cart,
  .cart,
  .atg-pdp-archive-variable-cta
){
  order:40 !important;
}

@media screen and (max-width:767px){
  body.logged-in.atg-pdp-offers-page
  .atg-pdp-loop-card
  .atg-pdp-card-artnr{
    margin-top:6px !important;
  }
}


/* ========================================================================== 
 * v0.5.8 — OFFER ARTICLE NUMBER NATURAL DOM ORDER
 * The offer-page ArtNr. is now emitted after price/tiers in PHP. Stop relying
 * on parent-specific flex ordering, which differs between simple/variable
 * Woodmart cards. Other archive surfaces remain unchanged.
 * ======================================================================= */
body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-card-artnr--offer-tail{
  display:block !important;
  position:static !important;
  order:initial !important;
  width:100% !important;
  min-height:16px !important;
  margin:7px 0 0 !important;
  padding:0 !important;
  color:#8a9199 !important;
  font-size:11.5px !important;
  font-weight:600 !important;
  line-height:1.35 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
@media screen and (max-width:767px){
  body.logged-in.atg-pdp-offers-page .atg-pdp-loop-card .atg-pdp-card-artnr--offer-tail{
    margin-top:6px !important;
    font-size:10.5px !important;
  }
}


/* ==========================================================================
 * v0.5.11 — /ANGEBOTE/ ACTION CLEANUP FOR LOGGED-IN CUSTOMERS
 *
 * Only on logged-in /angebote/ cards:
 * - hide the wishlist/favorites heart
 * - move the existing ATG Einkaufsliste button into the former heart position
 *
 * No price, tier, cart, quantity, variation, list logic or JS changes.
 * ======================================================================= */

/* Remove wishlist/favorites only on the logged-in offers page. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
:is(
  .wd-wishlist-btn,
  .wd-wishlist-icon,
  .add-to-wishlist,
  .yith-wcwl-add-to-wishlist
){
  display:none !important;
}

/* The ATG Einkaufsliste button already exists and remains fully functional.
 * Only move its wrapper to the now-free top-right heart position. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-grid-list-trigger-wrap{
  position:absolute !important;
  top:10px !important;
  right:10px !important;
  bottom:auto !important;
  left:auto !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
  z-index:30 !important;
}

/* Keep the existing circular Einkaufsliste control above product images. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-list-image-btn{
  position:relative !important;
  z-index:31 !important;
}

/* Legacy trigger fallback: only relevant if an older card instance is still
 * rendered by Woodmart. It is positioned the same way, without changing logic. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-grid-list-trigger{
  position:absolute !important;
  top:10px !important;
  right:10px !important;
  bottom:auto !important;
  left:auto !important;
  margin:0 !important;
  z-index:30 !important;
}

/* Mobile: slightly tighter inset, same exact behavior. */
@media screen and (max-width:767px){
  body.logged-in.atg-pdp-offers-page
  .atg-pdp-loop-card
  .atg-grid-list-trigger-wrap,

  body.logged-in.atg-pdp-offers-page
  .atg-pdp-loop-card
  .atg-grid-list-trigger{
    top:8px !important;
    right:8px !important;
  }
}


/* ========================================================================== 
 * v0.5.13 — /ANGEBOTE/ EINKAUFSLISTE CLICK-SAFETY
 *
 * v0.5.11 moved the existing ATG shopping-list control into Woodmart's former
 * wishlist position. Some Woodmart Products-element card variants place a
 * full-size product link/overlay in the same image stacking context. In that
 * layout the visible ATG button can be covered by the product-link hit area,
 * so a click opens the product instead of reaching the B2B shopping-list JS.
 *
 * Presentation / hit-testing only. No list AJAX, price, cart or offer logic.
 * ======================================================================= */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.product-element-top{
  isolation:isolate !important;
}

/* Keep Woodmart's product image link below the ATG action controls. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.product-element-top > :is(
  a,
  .product-image-link,
  .woocommerce-LoopProduct-link,
  .woocommerce-loop-product__link
){
  position:relative !important;
  z-index:1 !important;
}

/* The portal stylesheet intentionally gives the wrapper pointer-events:none
 * globally and re-enables them on the button. On /angebote/ make the complete
 * action hit area explicit and keep it above Woodmart image/link overlays. */
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-grid-list-trigger-wrap,
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-grid-list-trigger{
  pointer-events:auto !important;
  z-index:80 !important;
}

body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-grid-list-trigger-wrap .atg-list-image-btn,
body.logged-in.atg-pdp-offers-page
.atg-pdp-loop-card
.atg-grid-list-trigger .atg-list-image-btn{
  pointer-events:auto !important;
  position:relative !important;
  z-index:81 !important;
}
