/* BF Shop-Design – Look der neuen Startseite (Schwarz / Gold / Creme) für Produkt, Warenkorb, Kasse, Geschenk-Popup */

body.bfsd {
	--bf-black: #111110;
	--bf-ink: #272626;
	--bf-muted: #6b6660;
	--bf-gold: #fcaf3b;
	--bf-gold-l: #ffbe55;
	--bf-gold-d: #e39a23;
	--bf-bronze: #8a5a00;
	--bf-cream: #f8f3ea;
	--bf-cream-2: #fffaf1;
	--bf-line: #e8e0d2;
	--bf-ok: #1f7a3f;
	--bf-err: #c8412a;
	--bf-r: 14px;
}

/* ================= Hinweise (Warenkorb, Kasse, Produkt) ================= */
.bfsd .woocommerce-message,
.bfsd .woocommerce-info,
.bfsd .woocommerce-error {
	border: 0 !important;
	border-left: 4px solid var(--bf-gold) !important;
	border-radius: 10px !important;
	background: var(--bf-cream) !important;
	color: var(--bf-ink) !important;
	font-size: 15px;
}
.bfsd .woocommerce-message::before, .bfsd .woocommerce-info::before { color: var(--bf-gold-d) !important; }
.bfsd .woocommerce-error { border-left-color: var(--bf-err) !important; background: #fdf1ee !important; }
.bfsd .woocommerce-error::before { color: var(--bf-err) !important; }
.bfsd .woocommerce-message .button, .bfsd .woocommerce-info .button {
	border-radius: 8px !important;
	background: var(--bf-black) !important;
	color: #fff !important;
	font-weight: 700 !important;
	text-transform: none !important;
}

/* ================= Produktseite ================= */
.bfsd-product .summary .product_title {
	font-size: clamp(26px, 2.8vw, 38px) !important;
	font-weight: 800 !important;
	line-height: 1.12 !important;
	letter-spacing: -.01em;
	color: var(--bf-ink);
	margin-bottom: 8px !important;
}
.bfsd-product .summary .woocommerce-product-rating { display: flex; align-items: center; gap: 8px; margin-bottom: 10px !important; font-size: 14px; }
.bfsd-product .summary .woocommerce-product-rating .star-rating { color: var(--bf-gold); margin: 0 !important; }
.bfsd-product .summary .woocommerce-review-link { color: var(--bf-muted) !important; text-decoration: underline; text-underline-offset: 3px; }

.bfsd-product .summary > p.price:not(.price-unit) {
	margin: 6px 0 4px !important;
	font-size: 32px !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	color: var(--bf-ink) !important;
}
.bfsd-product .summary > p.price:not(.price-unit) del { margin-right: 6px; font-size: 19px; font-weight: 500; color: var(--bf-muted) !important; opacity: 1 !important; }
.bfsd-product .summary > p.price:not(.price-unit) ins { background: none !important; text-decoration: none !important; color: inherit !important; font-weight: 800 !important; }
.bfsd-product .summary > p.price .subscription-details { font-size: 17px; font-weight: 500; color: var(--bf-muted); }
.bfsd-product .summary .legal-price-info,
.bfsd-product .summary .wc-gzd-additional-info,
.bfsd-product .summary .first-payment-date { font-size: 13px !important; color: var(--bf-muted) !important; }
.bfsd-product .summary .legal-price-info a, .bfsd-product .summary .wc-gzd-additional-info a { color: inherit !important; text-decoration: underline; }

/* Ersparnis unter dem Preis */
.bfsd-save {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	width: fit-content;
	margin-top: 8px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--bf-bronze);
	letter-spacing: 0;
}
.bfsd-save b { padding: 3px 9px; border-radius: 7px; background: var(--bf-black); color: var(--bf-gold); font-weight: 800; white-space: nowrap; }

/* Kauf-Button */
.bfsd-product .summary .woocommerce-variation-add-to-cart,
.bfsd-product .summary form.cart:not(.variations_form) { display: flex !important; flex-wrap: nowrap !important; align-items: stretch; align-content: flex-start; gap: 10px; }
.bfsd-product .summary .single_add_to_cart_button {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 56px;
	height: auto !important;
	margin: 0 !important;
	padding: 14px 28px !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: var(--bf-gold) !important;
	color: #1a1a1a !important;
	font-family: inherit;
	font-size: 17px !important;
	font-weight: 800 !important;
	letter-spacing: .01em !important;
	text-transform: none !important;
	box-shadow: 0 8px 22px rgba(252, 175, 59, .32);
	transition: background-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.bfsd-product .summary .single_add_to_cart_button:hover,
.bfsd-product .summary .single_add_to_cart_button:focus-visible { background: var(--bf-gold-l) !important; transform: translateY(-1px); box-shadow: 0 12px 26px rgba(252, 175, 59, .42); }
.bfsd-product .summary .single_add_to_cart_button.disabled,
.bfsd-product .summary .single_add_to_cart_button:disabled { opacity: .55 !important; transform: none; box-shadow: none; }
.bfsd-product .summary .sp-wl-wrap { margin: 0 !important; display: flex; }
.bfsd-product .summary .sp-wl-wrap .add-to-wl {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin: 0 !important;
	border: 2px solid var(--bf-line) !important;
	border-radius: 12px !important;
	background: #fff !important;
	color: var(--bf-ink) !important;
}
.bfsd-product .summary .sp-wl-wrap .add-to-wl:hover { border-color: var(--bf-gold) !important; color: var(--bf-gold-d) !important; }

/* Variantenbeschreibung als Häkchenliste */
.bfsd-product .woocommerce-variation-description ul,
.bfsd-product .woocommerce-product-details__short-description ul { list-style: none !important; margin: 14px 0 !important; padding: 0 !important; display: grid; gap: 6px; }
.bfsd-product .woocommerce-variation-description li,
.bfsd-product .woocommerce-product-details__short-description li { position: relative; margin: 0 !important; padding-left: 26px !important; font-size: 15px; line-height: 1.5; list-style: none !important; }
.bfsd-product .woocommerce-variation-description li::before,
.bfsd-product .woocommerce-product-details__short-description li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--bf-gold-d); font-weight: 800; }
.bfsd-product .woocommerce-variation-description li > ul,
.bfsd-product .woocommerce-variation-description li > ol,
.bfsd-product .woocommerce-product-details__short-description li > ul,
.bfsd-product .woocommerce-product-details__short-description li > ol { margin: 0 !important; }
/* verschachtelte Listen aus dem Editor: Hüll-Punkte ohne eigenen Text bekommen kein Häkchen und keinen Einzug */
.bfsd-product .woocommerce-product-details__short-description li:has(> ul:only-child, > ol:only-child),
.bfsd-product .woocommerce-variation-description li:has(> ul:only-child, > ol:only-child) { padding-left: 0 !important; }
.bfsd-product .woocommerce-product-details__short-description li:has(> ul:only-child, > ol:only-child)::before,
.bfsd-product .woocommerce-variation-description li:has(> ul:only-child, > ol:only-child)::before { content: none !important; }
.bfsd-product .woocommerce-product-details__short-description li:empty,
.bfsd-product .woocommerce-variation-description li:empty { display: none !important; }
.bfsd-product .summary .stock { font-size: 14px !important; font-weight: 600; }
.bfsd-product .summary .stock.in-stock { color: var(--bf-ok) !important; }
.bfsd-product .summary .stock.out-of-stock { color: var(--bf-err) !important; }
.bfsd-product .summary .reset_variations { font-size: 13px; color: var(--bf-muted) !important; text-decoration: underline; }

/* Galerie + Rabatt-Plakette */
.bfsd-product .woocommerce-product-gallery img { border-radius: var(--bf-r); }
.bfsd-product .woocommerce-product-gallery .flex-control-thumbs img { border-radius: 8px; }
.bfsd-product span.onsale,
.bfsd-product .products span.onsale {
	min-height: 0 !important;
	min-width: 0 !important;
	padding: 5px 11px !important;
	border-radius: 999px !important;
	background: var(--bf-black) !important;
	color: var(--bf-gold) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
}

/* Reiter */
.bfsd-product .woocommerce-tabs ul.tabs { display: flex !important; flex-wrap: wrap; gap: 8px; margin: 0 0 20px !important; padding: 0 !important; border: 0 !important; }
.bfsd-product .woocommerce-tabs ul.tabs::before, .bfsd-product .woocommerce-tabs ul.tabs::after { display: none !important; }
.bfsd-product .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 999px !important; background: transparent !important; }
.bfsd-product .woocommerce-tabs ul.tabs li::before, .bfsd-product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.bfsd-product .woocommerce-tabs ul.tabs li a { display: block; padding: 10px 18px !important; border-radius: 999px; background: var(--bf-cream); color: var(--bf-ink) !important; font-size: 15px; font-weight: 600; }
.bfsd-product .woocommerce-tabs ul.tabs li.active a { background: var(--bf-black); color: var(--bf-gold) !important; }
.bfsd-product .woocommerce-tabs .panel { padding: clamp(18px, 3vw, 32px) !important; border: 1px solid var(--bf-line); border-radius: var(--bf-r); background: #fff; }

/* Ähnliche Produkte */
.bfsd-product section.related > h2,
.bfsd-product section.upsells > h2 { margin-bottom: 24px !important; font-size: clamp(24px, 2.6vw, 32px) !important; font-weight: 800 !important; text-align: center; }
.bfsd-product .related ul.products li.product,
.bfsd-product .upsells ul.products li.product {
	overflow: hidden;
	padding-bottom: 14px !important;
	border: 1px solid var(--bf-line);
	border-radius: var(--bf-r);
	background: #fff;
	transition: transform .18s ease, box-shadow .18s ease;
}
.bfsd-product .related ul.products li.product:hover,
.bfsd-product .upsells ul.products li.product:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(60, 45, 20, .12); }
.bfsd-product .related .woocommerce-loop-product__title { padding: 0 14px; font-weight: 700 !important; }
.bfsd-product .related ul.products .price { padding: 0 14px; font-weight: 800; color: var(--bf-ink) !important; }

/* ================= Varianten-Kacheln ================= */
.bfsd-swatches table.variations,
.bfsd-swatches table.variations tbody,
.bfsd-swatches table.variations tr,
.bfsd-swatches table.variations th,
.bfsd-swatches table.variations td { display: block !important; width: 100% !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.bfsd-swatches table.variations { margin-bottom: 6px !important; }
.bfsd-swatches table.variations tr { margin-bottom: 16px !important; }
.bfsd-swatches table.variations .label { padding: 0 0 8px !important; }
.bfsd-swatches table.variations .label label { margin: 0 !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: .08em; text-transform: uppercase; color: var(--bf-ink) !important; }
.bfsd-swatches .bfsd-hidden-select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	opacity: 0 !important;
	pointer-events: none !important;
}
.bfsd-swatches table.variations .value { position: relative; }

.bfsd-sw { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 12px 10px; margin: 0 0 6px; }
.bfsd-sw[data-count="2"], .bfsd-sw[data-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bfsd-sw[data-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.bfsd-sw .bfsd-sw__opt {
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: center !important;
	gap: 2px;
	width: 100%;
	min-width: 0;
	min-height: 64px;
	height: auto !important;
	margin: 0 !important;
	padding: 12px 14px !important;
	border: 2px solid var(--bf-line) !important;
	border-radius: 12px !important;
	background: #fff !important;
	color: var(--bf-ink) !important;
	font-family: inherit;
	font-size: 15px !important;
	font-weight: 500 !important;
	line-height: 1.25 !important;
	letter-spacing: 0 !important;
	text-align: left !important;
	text-transform: none !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.bfsd-sw .bfsd-sw__opt:hover { border-color: #f1cd92 !important; }
.bfsd-sw .bfsd-sw__opt:focus-visible { outline: 3px solid rgba(252, 175, 59, .55); outline-offset: 2px; }
.bfsd-sw .bfsd-sw__opt.is-active { border-color: var(--bf-gold) !important; background: var(--bf-cream-2) !important; box-shadow: 0 0 0 3px rgba(252, 175, 59, .22) !important; }
.bfsd-sw .bfsd-sw__opt.is-out { cursor: not-allowed; padding-bottom: 32px !important; background: #f6f3ee !important; border-style: dashed !important; }
.bfsd-sw .bfsd-sw__opt.is-out:hover { border-color: var(--bf-line) !important; }
.bfsd-sw .bfsd-sw__opt.is-out > :not(.bfsd-sw__sold) { opacity: .45; }
.bfsd-sw__sold { position: absolute; left: 12px; bottom: 9px; padding: 2px 8px; border-radius: 999px; background: #8d867d; color: #fff; font-size: 11px; font-weight: 800; line-height: 1.5; white-space: nowrap; }
.bfsd-sw__name { font-size: 16px; font-weight: 800; }
.bfsd-sw__sub { font-size: 12.5px; color: var(--bf-muted); }
.bfsd-sw__price { margin-top: 4px; font-size: 15px; }
.bfsd-sw__price strong { font-weight: 800; white-space: nowrap; }
.bfsd-sw__price del { margin-right: 2px; font-size: 12px; color: var(--bf-muted); white-space: nowrap; }
.bfsd-sw__price small { font-size: 12px; color: var(--bf-muted); white-space: nowrap; }
.bfsd-sw__flag { position: absolute; top: -10px; right: 10px; padding: 2px 8px; border-radius: 999px; background: var(--bf-black); color: var(--bf-gold); font-size: 11.5px; font-weight: 800; line-height: 1.5; }
.bfsd-sw__check {
	position: absolute;
	right: 10px;
	bottom: 10px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--bf-gold);
	opacity: 0;
	transform: scale(.6);
	transition: opacity .15s ease, transform .15s ease;
}
.bfsd-sw__check::after { content: ""; position: absolute; left: 7px; top: 4px; width: 5px; height: 9px; border: solid #1a1a1a; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.bfsd-sw__opt.is-active .bfsd-sw__check { opacity: 1; transform: none; }
.bfsd-sw [hidden] { display: none !important; }

/* ================= Warenkorb ================= */
.bfsd-cart .woocommerce-cart-form { padding: 6px 22px 18px; border: 1px solid var(--bf-line); border-radius: var(--bf-r); background: #fff; }
.bfsd-cart table.shop_table.cart { margin: 0 !important; border: 0 !important; border-collapse: collapse !important; background: none !important; }
.bfsd-cart table.shop_table.cart th { padding: 14px 10px !important; border: 0 !important; background: none !important; font-size: 12px !important; font-weight: 700 !important; letter-spacing: .08em; text-transform: uppercase; color: var(--bf-muted) !important; }
.bfsd-cart table.shop_table.cart tr { border: 0 !important; background: none !important; }
.bfsd-cart table.shop_table.cart td { padding: 18px 10px !important; border: 0 !important; border-top: 1px solid var(--bf-line) !important; background: none !important; vertical-align: middle; }
.bfsd-cart table.cart .product-thumbnail img { width: 84px !important; height: 84px !important; padding: 6px; border-radius: 12px; background: var(--bf-cream); object-fit: contain; }
.bfsd-cart table.cart .product-name a { font-size: 16px; font-weight: 700; color: var(--bf-ink) !important; text-decoration: none !important; }
.bfsd-cart table.cart .product-name a:hover { color: var(--bf-gold-d) !important; }
.bfsd-cart table.cart .product-name dl.variation { margin: 6px 0 0 !important; font-size: 13px; color: var(--bf-muted); }
.bfsd-cart table.cart .product-name dl.variation dt, .bfsd-cart table.cart .product-name dl.variation dd { display: inline; margin: 0 !important; padding: 0 !important; float: none !important; width: auto !important; }
.bfsd-cart table.cart .product-name dl.variation dd { margin-left: 3px !important; color: var(--bf-ink); }
.bfsd-cart table.cart .product-name dl.variation dd::after { content: "\A"; white-space: pre; }
.bfsd-cart table.cart .product-name dl.variation dd p { display: inline; }
.bfsd-cart table.cart td.product-name .delivery-time-info { margin: 3px 0 0 !important; font-size: 13px; line-height: 1.4; color: var(--bf-muted); }
/* Germanized-Kurzbeschreibung im Warenkorb kompakt (an der Kasse bleibt sie vollständig) */
.bfsd-cart table.cart td.product-name .item-desc { margin: 4px 0 0 !important; font-size: 13px; line-height: 1.45; color: var(--bf-muted); }
.bfsd-cart table.cart td.product-name .item-desc p { display: inline; margin: 0 !important; padding: 0 !important; }
.bfsd-cart table.cart td.product-name .item-desc p + p::before { content: " "; }
.bfsd-cart table.cart .product-subtotal { font-weight: 800; }
.bfsd-cart table.cart .product-price, .bfsd-cart table.cart .product-subtotal { font-size: 15px; }
.bfsd-cart table.cart .subscription-details { font-weight: 500; color: var(--bf-muted); font-size: 13px; }
.bfsd-cart a.remove {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 30px !important;
	height: 30px !important;
	border-radius: 50% !important;
	background: var(--bf-cream) !important;
	color: var(--bf-muted) !important;
	font-size: 20px !important;
	line-height: 1 !important;
}
.bfsd-cart a.remove:hover { background: var(--bf-black) !important; color: var(--bf-gold) !important; }
.bfsd-cart .quantity .qty { width: 66px; height: 44px; border: 1.5px solid var(--bf-line) !important; border-radius: 10px !important; font-weight: 700; text-align: center; }
.bfsd-cart td.actions { padding-top: 18px !important; }
.bfsd-cart .coupon { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 !important; padding: 0 !important; }
.bfsd-cart .coupon label { display: none; }
.bfsd-cart .coupon #coupon_code {
	width: auto !important;
	min-width: 200px;
	height: 46px;
	padding: 0 14px !important;
	border: 1.5px solid var(--bf-line) !important;
	border-radius: 10px !important;
	font-size: 15px;
}
.bfsd-cart .coupon #coupon_code:focus { border-color: var(--bf-gold) !important; box-shadow: 0 0 0 3px rgba(252, 175, 59, .2); outline: 0; }
.bfsd-cart .coupon .button,
.bfsd-cart button[name="update_cart"] {
	height: 46px;
	padding: 0 18px !important;
	border-radius: 10px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
.bfsd-cart .coupon .button { border: 0 !important; background: var(--bf-black) !important; color: #fff !important; }
.bfsd-cart button[name="update_cart"] { border: 1.5px solid var(--bf-line) !important; background: #fff !important; color: var(--bf-ink) !important; }
.bfsd-cart button[name="update_cart"]:disabled { opacity: .45 !important; }

.bfsd-cart .cart-collaterals .cart_totals { padding: 22px 22px 18px; border-radius: var(--bf-r); background: var(--bf-cream); }
.bfsd-cart .cart_totals > h2 { margin: 0 0 10px !important; font-size: 22px !important; font-weight: 800 !important; }
.bfsd-cart .cart_totals table.shop_table { margin: 0 0 16px !important; border: 0 !important; background: none !important; }
.bfsd-cart .cart_totals table.shop_table th,
.bfsd-cart .cart_totals table.shop_table td { padding: 12px 0 !important; border: 0 !important; border-top: 1px solid rgba(0, 0, 0, .08) !important; background: none !important; font-size: 15px; }
.bfsd-cart .cart_totals table.shop_table tr:first-child th, .bfsd-cart .cart_totals table.shop_table tr:first-child td { border-top: 0 !important; }
.bfsd-cart .cart_totals .order-total th, .bfsd-cart .cart_totals .order-total td { font-size: 19px !important; font-weight: 800 !important; }
.bfsd-cart .cart_totals .recurring-totals th { padding-top: 18px !important; font-size: 12px !important; letter-spacing: .08em; text-transform: uppercase; color: var(--bf-muted); }
.bfsd-cart .cart_totals table.shop_table tr { border: 0 !important; }
.bfsd-cart .cart_totals table.shop_table tr.recurring-total th, .bfsd-cart .cart_totals table.shop_table tr.recurring-total td,
.bfsd-checkout table.woocommerce-checkout-review-order-table tr.recurring-total th, .bfsd-checkout table.woocommerce-checkout-review-order-table tr.recurring-total td { font-size: 14px !important; font-weight: 600 !important; }
.bfsd-cart .cart_totals table.shop_table tr.recurring-totals th, .bfsd-checkout table.woocommerce-checkout-review-order-table tr.recurring-totals th { text-align: left !important; }
.bfsd-cart .cart_totals .first-payment-date, .bfsd-checkout .first-payment-date { font-size: 12.5px; font-weight: 500; color: var(--bf-muted); }
.bfsd-cart .wc-proceed-to-checkout { padding: 0 !important; }
.bfsd-cart .wc-proceed-to-checkout .checkout-button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 58px;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: var(--bf-gold) !important;
	color: #1a1a1a !important;
	font-size: 18px !important;
	font-weight: 800 !important;
	text-transform: none !important;
	box-shadow: 0 8px 22px rgba(252, 175, 59, .32);
	transition: background-color .15s ease, transform .15s ease;
}
.bfsd-cart .wc-proceed-to-checkout .checkout-button:hover { background: var(--bf-gold-l) !important; transform: translateY(-1px); }
.bfsd-trust { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 12px 0 0 !important; font-size: 12.5px; line-height: 1.4; color: var(--bf-muted); text-align: center; }
.bfsd-trust svg { flex: none; color: var(--bf-ok); }
.bfsd-cart .cross-sells > h2 { font-size: 22px !important; font-weight: 800 !important; }

/* ================= Kasse ================= */
.bfsd-checkout form.checkout h3,
.bfsd-checkout #order_review_heading { margin: 0 0 14px !important; font-size: 21px !important; font-weight: 800 !important; color: var(--bf-ink); }
.bfsd-checkout .form-row label { margin-bottom: 5px !important; font-size: 13.5px !important; font-weight: 600 !important; color: var(--bf-ink); }
.bfsd-checkout .form-row .required { color: var(--bf-err) !important; text-decoration: none; }
.bfsd-checkout .form-row .input-text,
.bfsd-checkout .form-row select,
.bfsd-checkout .form-row textarea,
.bfsd-checkout .select2-container .select2-selection--single,
.bfsd-checkout form.checkout_coupon .input-text {
	min-height: 48px;
	padding: 10px 14px !important;
	border: 1.5px solid var(--bf-line) !important;
	border-radius: 10px !important;
	background: #fff !important;
	font-size: 15px !important;
	box-shadow: none !important;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.bfsd-checkout .form-row textarea { min-height: 96px; }
.bfsd-checkout .form-row .input-text:focus,
.bfsd-checkout .form-row select:focus,
.bfsd-checkout .form-row textarea:focus,
.bfsd-checkout .select2-container--open .select2-selection--single,
.bfsd-checkout .select2-container--focus .select2-selection--single { border-color: var(--bf-gold) !important; box-shadow: 0 0 0 3px rgba(252, 175, 59, .2) !important; outline: 0 !important; }
.bfsd-checkout .select2-container .select2-selection--single { display: flex; align-items: center; height: 48px !important; padding: 0 14px !important; }
.bfsd-checkout .select2-container .select2-selection--single .select2-selection__rendered { padding: 0 !important; line-height: normal !important; color: var(--bf-ink); }
.bfsd-checkout .select2-container .select2-selection--single .select2-selection__arrow { top: 0 !important; right: 8px !important; height: 46px !important; }
.bfsd-checkout .form-row.woocommerce-invalid .input-text,
.bfsd-checkout .form-row.woocommerce-invalid .select2-selection { border-color: var(--bf-err) !important; }
.bfsd-checkout .form-row.woocommerce-validated .input-text { border-color: #cfe6d6 !important; }

.bfsd-checkout .woocommerce-form-coupon-toggle .woocommerce-info { font-size: 15px; }
.bfsd-checkout .woocommerce-form-coupon-toggle .showcoupon { padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; font-weight: 700; color: var(--bf-ink) !important; text-decoration: underline; }
.bfsd-checkout form.checkout_coupon { padding: 16px !important; border: 1.5px dashed var(--bf-line) !important; border-radius: 12px !important; }
.bfsd-checkout form.checkout_coupon .button { min-height: 48px; border-radius: 10px !important; background: var(--bf-black) !important; color: #fff !important; font-weight: 700 !important; text-transform: none !important; }
/* Gutschein-Fehlermeldung (WooCommerce hängt sie direkt ans Feld) immer unter das Feld, nie daneben */
.bfsd-checkout form.checkout_coupon .form-row-first { flex-wrap: wrap; }
.bfsd-checkout form.checkout_coupon .coupon-error-notice,
.bfsd-cart .coupon .coupon-error-notice { display: block; flex: 1 1 100%; order: 3; width: 100%; margin: 6px 0 0 !important; font-size: 13px; line-height: 1.4; color: #b32d2e; }
.bfsd-cart .coupon { flex-wrap: wrap !important; }

/* Bestellübersicht als Karte */
.bfsd-checkout #order_review { padding: 20px !important; border-radius: var(--bf-r); background: var(--bf-cream); }
.bfsd-checkout table.woocommerce-checkout-review-order-table { margin: 0 0 16px !important; border: 0 !important; background: none !important; }
.bfsd-checkout table.woocommerce-checkout-review-order-table tr,
.bfsd-checkout table.woocommerce-checkout-review-order-table thead,
.bfsd-checkout table.woocommerce-checkout-review-order-table tbody,
.bfsd-checkout table.woocommerce-checkout-review-order-table tfoot { border: 0 !important; }
.bfsd-checkout table.woocommerce-checkout-review-order-table th,
.bfsd-checkout table.woocommerce-checkout-review-order-table td { padding: 11px 0 !important; border: 0 !important; border-top: 1px solid rgba(0, 0, 0, .08) !important; background: none !important; font-size: 15px; vertical-align: top; }
.bfsd-checkout table.woocommerce-checkout-review-order-table thead th { border-top: 0 !important; font-size: 12px !important; letter-spacing: .08em; text-transform: uppercase; color: var(--bf-muted); }
.bfsd-checkout table.woocommerce-checkout-review-order-table td:last-child,
.bfsd-checkout table.woocommerce-checkout-review-order-table th:last-child { text-align: right; }
.bfsd-checkout table.woocommerce-checkout-review-order-table .product-name { font-weight: 600; }
.bfsd-checkout table.woocommerce-checkout-review-order-table .order-total th,
.bfsd-checkout table.woocommerce-checkout-review-order-table .order-total td { font-size: 19px !important; font-weight: 800 !important; }
.bfsd-checkout table.woocommerce-checkout-review-order-table .recurring-totals th { padding-top: 18px !important; font-size: 12px !important; letter-spacing: .08em; text-transform: uppercase; color: var(--bf-muted); }

/* Zahlarten als Auswahl-Karten */
.bfsd-checkout #payment { border-radius: 0 !important; background: transparent !important; }
.bfsd-checkout #payment ul.payment_methods { display: grid; gap: 10px; margin: 0 0 16px !important; padding: 0 !important; border: 0 !important; }
.bfsd-checkout #payment ul.payment_methods > li {
	margin: 0 !important;
	padding: 14px 16px !important;
	border: 2px solid var(--bf-line);
	border-radius: 12px;
	background: #fff;
	list-style: none !important;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.bfsd-checkout #payment ul.payment_methods > li:has(> input:checked) { border-color: var(--bf-gold); box-shadow: 0 0 0 3px rgba(252, 175, 59, .18); }
.bfsd-checkout #payment ul.payment_methods > li > input[type="radio"] { width: 18px; height: 18px; margin: 0 8px 0 0 !important; vertical-align: middle; accent-color: var(--bf-black); }
.bfsd-checkout #payment ul.payment_methods > li > label { display: inline !important; font-size: 15px; font-weight: 700; cursor: pointer; }
.bfsd-checkout #payment ul.payment_methods > li img { max-height: 24px; margin-left: 6px !important; vertical-align: middle; }
.bfsd-checkout #payment .payment_box { margin: 12px 0 0 !important; padding: 12px 14px !important; border-radius: 10px !important; background: var(--bf-cream) !important; color: var(--bf-ink) !important; font-size: 14px; }
.bfsd-checkout #payment .payment_box::before { display: none !important; }
.bfsd-checkout #payment div.form-row, .bfsd-checkout #payment .place-order { padding: 0 !important; margin: 0 !important; }

/* Rechtstexte / Germanized-Häkchen */
.bfsd-checkout .woocommerce-terms-and-conditions-wrapper,
.bfsd-checkout .wc-gzd-checkbox-placeholder > .form-row,
.bfsd-checkout p.form-row.checkbox-legal,
.bfsd-checkout p.form-row.wc-gzd-checkbox,
.bfsd-checkout p.form-row.terms { margin: 0 0 10px !important; padding: 12px 14px !important; border-radius: 10px; background: #fff; font-size: 13.5px; line-height: 1.5; }
.bfsd-checkout .checkbox-legal label, .bfsd-checkout .wc-gzd-checkbox label, .bfsd-checkout .form-row.terms label, .bfsd-checkout #ship-to-different-address label { font-size: 13.5px !important; font-weight: 400 !important; line-height: 1.5; }
.bfsd-checkout .checkbox-legal a, .bfsd-checkout .wc-gzd-checkbox a, .bfsd-checkout .form-row.terms a { color: var(--bf-ink) !important; font-weight: 600; text-decoration: underline; }
.bfsd-checkout #ship-to-different-address label { font-size: 15px !important; font-weight: 600 !important; }
.bfsd-checkout input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--bf-black); vertical-align: middle; }
.bfsd-checkout #place_order {
	float: none !important;
	width: 100% !important;
	min-height: 60px;
	margin: 6px 0 0 !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: var(--bf-gold) !important;
	color: #1a1a1a !important;
	font-size: 18px !important;
	font-weight: 800 !important;
	letter-spacing: .01em !important;
	text-transform: none !important;
	box-shadow: 0 8px 22px rgba(252, 175, 59, .32);
	transition: background-color .15s ease, transform .15s ease;
}
.bfsd-checkout #place_order:hover { background: var(--bf-gold-l) !important; transform: translateY(-1px); }

/* ================= Geschenk (Free Gifts) ================= */
.bfsd-gifts .bfsd-gifts-src { display: none !important; }
.bfsd-gt {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 18px 0;
	padding: 16px 18px;
	border-radius: 14px;
	background: linear-gradient(135deg, #171614 0%, #2a2520 100%);
	color: #fff;
	box-shadow: 0 10px 26px rgba(17, 17, 16, .18);
}
.bfsd-gt__icon { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 12px; background: var(--bf-gold); color: #1a1a1a; }
.bfsd-gt__text { min-width: 0; }
.bfsd-gt__text strong { display: block; font-size: 16px; font-weight: 800; color: #fff; }
.bfsd-gt__text span { display: block; font-size: 13.5px; color: rgba(255, 255, 255, .75); }
.bfsd-gt .bfsd-gt__btn {
	flex: none;
	min-height: 44px;
	margin: 0 0 0 auto !important;
	padding: 0 18px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: var(--bf-gold) !important;
	color: #1a1a1a !important;
	font-size: 15px !important;
	font-weight: 800 !important;
	text-transform: none !important;
	white-space: nowrap;
	cursor: pointer;
}
.bfsd-gt .bfsd-gt__btn:hover { background: var(--bf-gold-l) !important; }

html.bfsd-gm-open, html.bfsd-gm-open body { overflow: hidden !important; }
.bfsd-gm {
	--bf-black: #111110; --bf-ink: #272626; --bf-muted: #6b6660; --bf-gold: #fcaf3b; --bf-gold-l: #ffbe55; --bf-cream: #f8f3ea; --bf-line: #e8e0d2;
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	font-family: Poppins, Arial, Helvetica, sans-serif;
	color: var(--bf-ink);
}
.bfsd-gm[hidden] { display: none !important; }
.bfsd-gm *, .bfsd-gm *::before, .bfsd-gm *::after { box-sizing: border-box; }
.bfsd-gm__backdrop { position: absolute; inset: 0; background: rgba(12, 11, 10, .72); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); animation: bfsd-fade .2s ease; }
.bfsd-gm__dialog:focus { outline: none; }
.bfsd-gm__dialog {
	position: relative;
	width: min(920px, 100%);
	max-height: calc(100vh - 40px);
	overflow: auto;
	border-radius: 20px;
	background: var(--bf-cream);
	box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
	animation: bfsd-pop .28s cubic-bezier(.2, .9, .3, 1.2);
}
.bfsd-gm__head { padding: 30px 56px 26px; text-align: center; color: #fff; background: radial-gradient(80% 140% at 10% 0%, #2d2720 0%, #121110 65%); }
.bfsd-gm__icon { display: inline-grid; place-items: center; width: 52px; height: 52px; margin-bottom: 10px; border-radius: 14px; background: var(--bf-gold); color: #1a1a1a; box-shadow: 0 0 0 6px rgba(252, 175, 59, .18); }
.bfsd-gm__eyebrow { margin: 0 0 4px !important; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--bf-gold); }
.bfsd-gm__head h2 { margin: 0 !important; font-size: clamp(22px, 3vw, 32px) !important; font-weight: 800 !important; line-height: 1.15 !important; color: #fff !important; }
.bfsd-gm__text { margin: 8px auto 0 !important; max-width: 560px; font-size: 15px; color: rgba(255, 255, 255, .78); }
.bfsd-gm .bfsd-gm__x {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	min-height: 0;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, .14) !important;
	color: #fff !important;
	cursor: pointer;
}
.bfsd-gm .bfsd-gm__x:hover { background: rgba(255, 255, 255, .26) !important; }
.bfsd-gm__body { position: relative; padding: 24px 24px 6px; }
.bfsd-gm__track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	padding: 4px 4px 14px;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	outline: 0;
}
.bfsd-gm__track::-webkit-scrollbar { display: none; }
.bfsd-gm__slide {
	display: flex;
	flex: 0 0 calc((100% - 32px) / 3);
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--bf-line);
	border-radius: 16px;
	background: #fff;
	scroll-snap-align: start;
	transition: transform .18s ease, box-shadow .18s ease;
}
.bfsd-gm__slide:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(60, 45, 20, .14); }
.bfsd-gm__img { position: relative; display: grid; place-items: center; aspect-ratio: 1 / 1; padding: 16px; border-bottom: 1px solid var(--bf-line); background: #fff; }
.bfsd-gm__img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.bfsd-gm__free { position: absolute; top: 10px; left: 10px; padding: 4px 10px; border-radius: 999px; background: var(--bf-gold); color: #1a1a1a; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.bfsd-gm__info { display: flex; flex: 1; flex-direction: column; gap: 6px; padding: 14px 16px 16px; }
.bfsd-gm__name { margin: 0 !important; font-size: 15.5px !important; font-weight: 700 !important; line-height: 1.3 !important; color: var(--bf-ink) !important; }
.bfsd-gm__val { margin: 0 !important; font-size: 13px; color: var(--bf-muted); }
.bfsd-gm .bfsd-gm__pick {
	margin-top: auto !important;
	min-height: 46px;
	width: 100%;
	padding: 0 14px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: var(--bf-black) !important;
	color: #fff !important;
	font-family: inherit;
	font-size: 15px !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}
.bfsd-gm .bfsd-gm__pick:hover, .bfsd-gm .bfsd-gm__pick:focus-visible { background: var(--bf-gold) !important; color: #1a1a1a !important; }
.bfsd-gm .bfsd-gm__pick:disabled { opacity: .5; cursor: default; }
.bfsd-gm .bfsd-gm__pick.is-loading { opacity: 1; background: var(--bf-gold) !important; color: #1a1a1a !important; }
.bfsd-gm .bfsd-gm__nav {
	position: absolute;
	top: calc(24px + 30%);
	z-index: 2;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	min-height: 0;
	padding: 0 0 3px !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: #fff !important;
	color: var(--bf-ink) !important;
	font-size: 28px !important;
	line-height: 1 !important;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .16);
	cursor: pointer;
	transition: opacity .15s ease;
}
.bfsd-gm__nav--prev { left: 8px; }
.bfsd-gm__nav--next { right: 8px; }
.bfsd-gm .bfsd-gm__nav:disabled { opacity: 0; pointer-events: none; }
.bfsd-gm__dots { display: flex; justify-content: center; gap: 6px; padding: 2px 0 6px; }
.bfsd-gm__dot { width: 8px; height: 8px; border-radius: 999px; background: #e3dccd; transition: width .25s ease, background-color .25s ease; }
.bfsd-gm__dot.is-on { width: 22px; background: var(--bf-gold); }
.bfsd-gm__dot[hidden] { display: none; }
.bfsd-gm__body.is-static .bfsd-gm__nav, .bfsd-gm__body.is-static .bfsd-gm__dots { display: none; }
.bfsd-gm__foot { margin: 0 !important; padding: 4px 20px 20px; text-align: center; }
.bfsd-gm .bfsd-gm__later { min-height: 0; padding: 6px 10px !important; border: 0 !important; background: none !important; color: var(--bf-muted) !important; font-size: 14px !important; font-weight: 500 !important; text-decoration: underline; text-transform: none !important; cursor: pointer; }
@keyframes bfsd-fade { from { opacity: 0; } }
@keyframes bfsd-pop { from { opacity: 0; transform: translateY(14px) scale(.98); } }

/* ================= Tablet / Handy ================= */
@media (max-width: 820px) {
	.bfsd-gm__slide { flex-basis: calc((100% - 16px) / 2); }
}
@media (max-width: 768px) {
	.bfsd-product .summary > p.price:not(.price-unit) { font-size: 28px !important; }

	/* Warenkorb: jede Position als kompakte Zeile mit Bild */
	.bfsd-cart .woocommerce-cart-form { padding: 4px 14px 14px; }
	.bfsd-cart table.shop_table.cart thead { display: none !important; }
	.bfsd-cart table.shop_table.cart tr.cart_item {
		display: grid !important;
		grid-template-columns: 72px minmax(0, 1fr) minmax(0, auto) 32px;
		grid-template-areas: "thumb name name remove" "thumb price price price" "thumb qty sub sub";
		gap: 4px 12px;
		padding: 16px 0 !important;
		border-top: 1px solid var(--bf-line) !important;
	}
	.bfsd-cart table.shop_table.cart tr.cart_item:first-child { border-top: 0 !important; }
	/* Tabelle als Block: sonst macht die Mindestbreite von Gutscheinfeld + Button die Tabelle breiter als die Karte */
	.bfsd-cart table.shop_table.cart, .bfsd-cart table.shop_table.cart tbody { display: block !important; width: 100% !important; min-width: 0 !important; }
	.bfsd-cart table.shop_table.cart tr:not(.cart_item) { display: block !important; }
	.bfsd-cart table.shop_table.cart td.actions { display: block !important; width: auto !important; }
	.bfsd-cart table.cart td.product-name .item-desc { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
	.bfsd-cart .quantity .qty { height: 42px !important; padding: 0 6px !important; }
	.bfsd-cart table.shop_table.cart tr.cart_item td { display: block !important; padding: 0 !important; border: 0 !important; text-align: left !important; }
	.bfsd-cart table.shop_table.cart tr.cart_item td::before { display: none !important; }
	.bfsd-cart table.cart td.product-thumbnail { display: block !important; grid-area: thumb; }
	.bfsd-cart table.cart td.product-thumbnail img { width: 72px !important; height: 72px !important; }
	.bfsd-cart table.cart td.product-name { grid-area: name; }
	.bfsd-cart table.cart td.product-remove { grid-area: remove; }
	.bfsd-cart table.cart td.product-price { grid-area: price; font-size: 13px; color: var(--bf-muted); }
	.bfsd-cart table.cart td.product-quantity { grid-area: qty; align-self: center; }
	.bfsd-cart table.cart td.product-subtotal { grid-area: sub; align-self: center; text-align: right !important; }
	.bfsd-cart table.shop_table.cart td.actions { padding: 14px 0 0 !important; border-top: 1px solid var(--bf-line) !important; }
	.bfsd-cart .coupon { display: flex !important; flex-wrap: wrap !important; width: 100%; float: none !important; }
	.bfsd-cart .coupon #coupon_code { flex: 1 1 0 !important; width: 0 !important; min-width: 0 !important; padding: 0 12px !important; font-size: 14px !important; }
	.bfsd-cart .coupon .button { flex: 0 0 auto !important; padding: 0 14px !important; font-size: 13px !important; white-space: nowrap; }
	.bfsd-cart button[name="update_cart"] { width: 100%; margin-top: 8px !important; }
	.bfsd-cart .cart-collaterals .cart_totals { padding: 18px 16px 14px; }
	.bfsd-cart .cart-collaterals { margin-top: 16px !important; }

	.bfsd-checkout #order_review { padding: 16px !important; }

	.bfsd-gt { flex-wrap: wrap; }
	.bfsd-gt .bfsd-gt__btn { width: 100%; margin: 4px 0 0 !important; }

	/* Popup als Blatt von unten */
	.bfsd-gm { align-items: flex-end; padding: 0; }
	.bfsd-gm__dialog { width: 100%; max-height: 92vh; border-radius: 20px 20px 0 0; animation-name: bfsd-sheet; }
	.bfsd-gm__head { padding: 22px 52px 18px; }
	.bfsd-gm__head h2 { font-size: 22px !important; }
	.bfsd-gm__text { font-size: 14px; }
	.bfsd-gm__icon { width: 44px; height: 44px; }
	.bfsd-gm__body { padding: 18px 0 4px; }
	.bfsd-gm__track { gap: 12px; padding: 4px 20px 14px; scroll-padding: 0 20px; }
	.bfsd-gm__slide { flex-basis: 72%; }
	.bfsd-gm .bfsd-gm__nav { display: none; }
	.bfsd-gm__foot { padding-bottom: calc(18px + env(safe-area-inset-bottom)); }
}
@keyframes bfsd-sheet { from { transform: translateY(40px); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
	.bfsd-gm__backdrop, .bfsd-gm__dialog { animation: none; }
	.bfsd-gm__track { scroll-behavior: auto; }
	.bfsd-gm__slide, .bfsd-sw .bfsd-sw__opt, .bfsd-product .summary .single_add_to_cart_button { transition: none; }
}

/* ================= 1.1: Box „Passt dazu“ (Produktseite) ================= */
.bfsd-linked {
	margin: 28px 0 0;
	padding: 18px 18px 8px;
	border: 1px solid var(--bf-line);
	border-radius: var(--bf-r);
	background: var(--bf-cream);
	font-family: inherit;
}
.bfsd-linked:not(.is-placed) { display: none; }
.bfsd-linked.is-mobile { margin: 20px 0 12px; }
.bfsd-linked__eyebrow { margin: 0 0 2px !important; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--bf-gold-d); }
.bfsd-linked .bfsd-linked__title { margin: 0 0 8px !important; font-size: 17px !important; font-weight: 800 !important; line-height: 1.3 !important; color: var(--bf-ink) !important; }
.bfsd-linked__list { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.bfsd-linked__list li { margin: 0 !important; padding: 0 !important; list-style: none !important; border-top: 1px solid rgba(0, 0, 0, .07); }
.bfsd-linked__list li:first-child { border-top: 0; }
.bfsd-linked__list li::before { content: none !important; }
.bfsd-linked__item { display: flex; align-items: center; gap: 12px; padding: 10px 0; color: var(--bf-ink) !important; text-decoration: none !important; }
.bfsd-linked__img { flex: none; width: 58px; height: 58px; padding: 4px; border-radius: 10px; background: #fff; }
.bfsd-linked__img img { display: block; width: 100% !important; height: 100% !important; object-fit: contain; margin: 0 !important; border-radius: 6px; }
.bfsd-linked__txt { display: flex; flex: 1; flex-direction: column; min-width: 0; line-height: 1.3; }
.bfsd-linked__name { font-size: 14.5px; font-weight: 700; }
.bfsd-linked__price { margin-top: 2px; font-size: 13px; color: var(--bf-muted); }
.bfsd-linked__price del { opacity: .8; }
.bfsd-linked__price ins { background: none; text-decoration: none; font-weight: 700; color: var(--bf-ink); }
.bfsd-linked__price .woocommerce-price-suffix, .bfsd-linked__price .screen-reader-text { display: none; }
.bfsd-linked__pct { flex: none; padding: 2px 7px; border-radius: 6px; background: var(--bf-black); color: var(--bf-gold); font-size: 11.5px; font-weight: 800; }
.bfsd-linked__go { flex: none; font-size: 22px; line-height: 1; color: var(--bf-muted); transition: transform .15s ease, color .15s ease; }
.bfsd-linked__item:hover .bfsd-linked__name { color: var(--bf-gold-d); }
.bfsd-linked__item:hover .bfsd-linked__go { color: var(--bf-gold-d); transform: translateX(2px); }

/* ================= 1.2: Weihnachts-Bundle in der Box ================= */
.bfsd-linked.has-bundle { padding-bottom: 14px; }
.bfsd-bundle { margin: 0 0 4px; }
.bfsd-bundle__pics { position: relative; display: inline-flex; align-items: center; gap: 8px; max-width: 100%; margin: 4px 0 12px; }
.bfsd-bundle__pics > b { flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--bf-black); color: var(--bf-gold); font-size: 19px; font-weight: 800; line-height: 30px; text-align: center; }
.bfsd-bundle__pic { display: block; flex: 0 1 136px; min-width: 0; aspect-ratio: 1 / 1; padding: 8px; border-radius: 12px; background: #fff; }
.bfsd-bundle__pic img { display: block; width: 100% !important; height: 100% !important; margin: 0 !important; object-fit: contain; }
a.bfsd-bundle__pic { transition: box-shadow .15s ease; }
a.bfsd-bundle__pic:hover { box-shadow: 0 0 0 2px var(--bf-gold); }
.bfsd-bundle__tag { position: absolute; top: -8px; right: -6px; padding: 5px 10px; border-radius: 999px; background: var(--bf-gold); color: #1a1a1a; font-size: 14px; font-weight: 800; line-height: 1.1; box-shadow: 0 3px 10px rgba(0, 0, 0, .15); transform: rotate(4deg); }
.bfsd-bundle__hype { margin: 0 0 10px !important; font-size: 14px; line-height: 1.5; color: var(--bf-ink); }
.bfsd-bundle__price { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; margin: 0 0 12px !important; padding: 10px 12px; border-radius: 10px; background: #fff; }
.bfsd-bundle__price > span { font-size: 13.5px; color: var(--bf-muted); }
.bfsd-bundle__price strong .amount, .bfsd-bundle__price strong bdi { font-size: inherit; color: inherit; }
.bfsd-bundle__price del { margin-left: 4px; color: var(--bf-muted); }
.bfsd-bundle__price strong { font-size: 18px; font-weight: 800; color: var(--bf-ink); }
.bfsd-bundle__price .woocommerce-price-suffix, .bfsd-bundle__price .screen-reader-text { display: none; }
.bfsd-bundle__form { margin: 0 !important; }
.bfsd-linked .bfsd-bundle__btn {
	display: flex !important; align-items: center; justify-content: center;
	width: 100%; min-height: 52px; height: auto !important; margin: 0 !important; padding: 12px 16px !important;
	border: 0 !important; border-radius: 12px !important;
	background: var(--bf-gold) !important; color: #1a1a1a !important;
	font-family: inherit; font-size: 15.5px !important; font-weight: 800 !important; line-height: 1.25 !important;
	letter-spacing: 0 !important; text-align: center; text-transform: none !important; text-decoration: none !important;
	box-shadow: 0 4px 14px rgba(252, 175, 59, .35) !important;
	cursor: pointer;
	transition: background-color .15s ease, transform .15s ease;
}
.bfsd-linked .bfsd-bundle__btn:hover { background: var(--bf-gold-l) !important; transform: translateY(-1px); }
.bfsd-linked .bfsd-bundle__btn:focus-visible { outline: 3px solid var(--bf-black); outline-offset: 2px; }
.bfsd-linked .bfsd-bundle__btn.is-busy { opacity: .7; cursor: progress; }
.bfsd-bundle__note { margin: 8px 0 0 !important; font-size: 12.5px; line-height: 1.45; color: var(--bf-muted); }
.bfsd-linked__more { margin: 16px 0 0 !important; padding-top: 14px; border-top: 1px solid var(--bf-line); font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--bf-gold-d); }
@media (max-width: 480px) {
	.bfsd-bundle__pics { gap: 6px; }
	.bfsd-bundle__price strong { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
	.bfsd-linked .bfsd-bundle__btn { transition: none; }
	.bfsd-linked .bfsd-bundle__btn:hover { transform: none; }
}

/* ================= 1.1: Newsletter-Hinweis in der Kasse ================= */
.bfsd-checkout #kl_newsletter_checkbox_field { display: none !important; } /* ersetzt durch den Hinweis unten */
.bfsd-nl { clear: both; margin: 8px 0 18px; padding: 14px 16px; border: 1px solid var(--bf-line); border-radius: 12px; background: var(--bf-cream); }
.bfsd-nl__info { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 10px !important; font-size: 13.5px; line-height: 1.5; color: var(--bf-ink); }
.bfsd-nl__info svg { flex: none; margin-top: 1px; color: var(--bf-gold-d); }
.bfsd-checkout .bfsd-nl .bfsd-nl__row { margin: 0 !important; padding: 0 !important; background: none !important; }
.bfsd-checkout .bfsd-nl label { display: flex !important; gap: 10px; align-items: flex-start; margin: 0 !important; font-size: 13px !important; font-weight: 400 !important; line-height: 1.45; color: var(--bf-muted) !important; cursor: pointer; }
.bfsd-checkout .bfsd-nl input[type="checkbox"] { flex: none; margin: 1px 0 0 !important; }

/* ================= 1.1: Preise im Geschenk-Popup ================= */
.bfsd-gm .bfsd-gm__val { display: flex; align-items: baseline; gap: 8px; margin: 0 !important; }
.bfsd-gm .bfsd-gm__val del { font-size: 15px; font-weight: 500; color: var(--bf-muted); }
.bfsd-gm .bfsd-gm__val strong { font-size: 19px; font-weight: 800; color: var(--bf-ink); }

/* ================= 1.1: Terminal Tackle Box im Warenkorb ================= */
.bfsd-cart .cart-collaterals .bfsd-xs { float: left; width: 48%; }
.bfsd-xs:empty { display: none; }
.bfsd-xs .bfsd-tt { margin-bottom: 24px; }
.bfsd-tt {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr);
	gap: 18px;
	margin: 0 0 24px;
	padding: 18px;
	border: 1px solid var(--bf-line);
	border-radius: var(--bf-r);
	background: #fff;
}
.bfsd-tt[hidden] { display: none !important; }
.bfsd-tt__media { position: relative; align-self: start; padding: 8px; border-radius: 12px; background: var(--bf-cream); }
.bfsd-tt__media img { display: block; width: 100% !important; height: auto !important; margin: 0 !important; }
.bfsd-tt__badge {
	position: absolute;
	top: -10px;
	left: -10px;
	display: grid;
	place-items: center;
	width: 66px;
	height: 66px;
	border-radius: 50%;
	background: var(--bf-gold);
	color: #1a1a1a;
	font-size: 10.5px;
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: .06em;
	text-align: center;
	text-transform: uppercase;
	box-shadow: 0 6px 16px rgba(252, 175, 59, .45);
	transform: rotate(-8deg);
}
.bfsd-tt__badge b { font-size: 18px; letter-spacing: 0; }
.bfsd-tt__eyebrow { margin: 0 0 2px !important; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--bf-gold-d); }
.bfsd-tt .bfsd-tt__title { margin: 0 0 6px !important; font-size: 20px !important; font-weight: 800 !important; line-height: 1.2 !important; }
.bfsd-tt__text { margin: 0 0 12px !important; font-size: 14px; line-height: 1.5; color: var(--bf-muted); }
.bfsd-tt__opts { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 8px; }
.bfsd-tt__deal { display: inline-block; margin: -4px 0 12px !important; padding: 4px 10px; border-radius: 8px; background: var(--bf-black); color: var(--bf-gold); font-size: 13px; font-weight: 800; }
.bfsd-tt .bfsd-tt__opt {
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 2px;
	width: 100%;
	min-height: 0;
	height: auto !important;
	margin: 0 !important;
	padding: 10px 12px !important;
	border: 2px solid var(--bf-line) !important;
	border-radius: 12px !important;
	background: #fff !important;
	color: var(--bf-ink) !important;
	font-family: inherit;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.25 !important;
	letter-spacing: 0 !important;
	text-align: left !important;
	text-transform: none !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.bfsd-tt .bfsd-tt__opt:hover { border-color: #f1cd92 !important; }
.bfsd-tt .bfsd-tt__opt:focus-visible { outline: 3px solid rgba(252, 175, 59, .55); outline-offset: 2px; }
.bfsd-tt .bfsd-tt__opt.is-on { border-color: var(--bf-gold) !important; background: var(--bf-cream-2) !important; box-shadow: 0 0 0 3px rgba(252, 175, 59, .22) !important; }
.bfsd-tt .bfsd-tt__opt.is-busy { opacity: .6; cursor: progress; }
.bfsd-tt__match { position: absolute; top: -9px; right: 8px; padding: 1px 7px; border-radius: 999px; background: var(--bf-black); color: var(--bf-gold); font-size: 10.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.bfsd-tt__name { font-size: 15px; font-weight: 800; }
.bfsd-tt__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 6px; }
.bfsd-tt__price del { font-size: 12.5px; color: var(--bf-muted); }
.bfsd-tt__price strong { font-size: 15px; font-weight: 800; }
.bfsd-tt__state { margin-top: 4px; font-size: 12.5px; font-weight: 700; color: var(--bf-gold-d); }
.bfsd-tt__in { display: none; color: var(--bf-ok); }
.bfsd-tt__opt.is-on .bfsd-tt__add { display: none; }
.bfsd-tt__opt.is-on .bfsd-tt__in { display: inline; }
.bfsd-tt__hint { margin: 10px 0 0 !important; font-size: 12px; color: var(--bf-muted); }
.bfsd-tt__err { margin: 6px 0 0 !important; font-size: 13px; font-weight: 600; color: var(--bf-err); }
.bfsd-tt__err:empty { display: none; }
.bfsd-tt-note { display: inline-block; margin-left: 4px; padding: 1px 6px; border-radius: 5px; background: var(--bf-black); color: var(--bf-gold); font-size: 10.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; vertical-align: middle; }
@media (max-width: 768px) {
	.bfsd-cart .cart-collaterals .bfsd-xs { float: none; width: 100%; }
	.bfsd-tt { grid-template-columns: 96px minmax(0, 1fr); gap: 14px; padding: 14px; }
	.bfsd-tt__badge { width: 54px; height: 54px; font-size: 9px; }
	.bfsd-tt__badge b { font-size: 15px; }
	.bfsd-tt__opts { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.bfsd-tt__hint { grid-column: 1 / -1; }
	.bfsd-tt__body { display: contents; }
	.bfsd-tt__media { grid-row: 1 / span 3; }
	.bfsd-tt__err { grid-column: 1 / -1; }
	.bfsd-tt__body > .bfsd-tt__eyebrow, .bfsd-tt__body > .bfsd-tt__title, .bfsd-tt__body > .bfsd-tt__text { grid-column: 2; }
	.bfsd-tt__deal { grid-column: 1 / -1; justify-self: start; }
	.bfsd-tt .bfsd-tt__opt { padding: 9px 10px !important; }
	.bfsd-tt__name { font-size: 14px; }
}

/* Weihnachts-Angebot (XMAS Box ↔ Kalender) */
.bfsd-xp .bfsd-tt__title a { color: var(--bf-ink) !important; text-decoration: none !important; }
.bfsd-xp .bfsd-tt__title a:hover { color: var(--bf-gold-d) !important; }
.bfsd-xp__points { display: grid; gap: 4px; margin: 0 0 12px !important; padding: 0 !important; list-style: none !important; }
.bfsd-xp__points li { position: relative; margin: 0 !important; padding-left: 22px !important; font-size: 13.5px; line-height: 1.45; list-style: none !important; }
.bfsd-xp__points li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--bf-gold-d); font-weight: 800; }
.bfsd-xp__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; margin: 0 0 12px !important; }
.bfsd-xp__price del { font-size: 15px; color: var(--bf-muted); }
.bfsd-xp__price strong { font-size: 22px; font-weight: 800; color: var(--bf-ink); }
.bfsd-xp__save { flex-basis: 100%; font-size: 13.5px; font-weight: 700; color: var(--bf-bronze); }
.bfsd-xp .bfsd-xp__btn { align-items: center !important; justify-content: center; min-height: 48px; font-size: 15px !important; font-weight: 800 !important; background: var(--bf-gold) !important; border-color: var(--bf-gold) !important; color: #1a1a1a !important; }
.bfsd-xp .bfsd-xp__btn:hover { background: var(--bf-gold-l) !important; }
.bfsd-xp .bfsd-xp__btn.is-on { background: var(--bf-cream-2) !important; color: var(--bf-ok) !important; font-weight: 700 !important; }
.bfsd-xp .bfsd-xp__btn .bfsd-tt__in { color: inherit; }
@media (max-width: 768px) {
	.bfsd-xp__points, .bfsd-xp__price, .bfsd-xp .bfsd-xp__btn { grid-column: 1 / -1; }
}

/* ================= 1.2: Apple Pay / Google Pay unter dem Kauf-Button ================= */
#wc-stripe-express-checkout-element.bfsd-exp-off { display: none !important; }
.bfsd-product .summary #wc-stripe-express-checkout-element.bfsd-exp-on { margin-top: 6px !important; }
.bfsd-exp-or { display: flex; align-items: center; gap: 12px; margin: 14px 0 4px !important; font-size: 12.5px; font-weight: 600; letter-spacing: .04em; color: var(--bf-muted); }
.bfsd-exp-or::before, .bfsd-exp-or::after { content: ""; flex: 1; height: 1px; background: var(--bf-line); }
.bfsd-exp-or[hidden], .bfsd-exp-note[hidden] { display: none !important; }
.bfsd-exp-note { margin: 8px 0 0 !important; font-size: 11.5px; line-height: 1.45; color: var(--bf-muted); }
.bfsd-exp-note a { color: inherit !important; text-decoration: underline; text-underline-offset: 2px; }

/* ================= 1.2: Kasse – Geschenk-Hinweis und Angebot über den Zahlarten ================= */
.bfsd-gift-slot:empty { display: none; }
.bfsd-gift-slot .bfsd-gt { animation: bfsd-gt-in .28s ease-out both; }
@keyframes bfsd-gt-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .bfsd-gift-slot .bfsd-gt { animation: none; } }
.bfsd-checkout .bfsd-gift-slot .bfsd-gt { margin: 0 0 14px !important; }
.bfsd-gift-slot .bfsd-gt { flex-wrap: wrap; padding: 14px 16px; }
.bfsd-gift-slot .bfsd-gt__text { flex: 1 1 180px; }
.bfsd-gift-slot .bfsd-gt .bfsd-gt__btn { width: 100%; margin: 4px 0 0 !important; }
.bfsd-gt.is-done .bfsd-gt__btn { background: #fff !important; color: var(--bf-ink) !important; box-shadow: inset 0 0 0 1.5px var(--bf-line) !important; }
.bfsd-xs--checkout { margin: 0 0 16px; }
.bfsd-xs--checkout .bfsd-tt { grid-template-columns: 84px minmax(0, 1fr); gap: 12px; margin: 0; padding: 14px; }
.bfsd-xs--checkout .bfsd-tt__body { display: contents; }
.bfsd-xs--checkout .bfsd-tt__media { grid-row: 1 / span 3; padding: 6px; }
.bfsd-xs--checkout .bfsd-tt__body > .bfsd-tt__eyebrow,
.bfsd-xs--checkout .bfsd-tt__body > .bfsd-tt__title,
.bfsd-xs--checkout .bfsd-tt__body > .bfsd-tt__text { grid-column: 2; }
.bfsd-xs--checkout .bfsd-tt .bfsd-tt__title { font-size: 16.5px !important; }
.bfsd-xs--checkout .bfsd-tt__text { margin-bottom: 4px !important; font-size: 13px; }
.bfsd-xs--checkout .bfsd-tt__badge { top: -8px; left: -8px; width: 50px; height: 50px; font-size: 8.5px; }
.bfsd-xs--checkout .bfsd-tt__badge b { font-size: 14px; }
.bfsd-xs--checkout .bfsd-tt__deal { grid-column: 1 / -1; justify-self: start; margin: 0 !important; font-size: 12.5px; }
.bfsd-xs--checkout .bfsd-tt__opts { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bfsd-xs--checkout .bfsd-tt .bfsd-tt__opt { padding: 8px 9px !important; }
.bfsd-xs--checkout .bfsd-tt__name { font-size: 13.5px; }
.bfsd-xs--checkout .bfsd-tt__hint, .bfsd-xs--checkout .bfsd-tt__err { grid-column: 1 / -1; margin-top: 0 !important; }
.bfsd-xs--checkout .bfsd-xp__points, .bfsd-xs--checkout .bfsd-xp__price, .bfsd-xs--checkout .bfsd-xp .bfsd-xp__btn { grid-column: 1 / -1; }
.bfsd-xs--checkout .bfsd-xp__points { margin-bottom: 4px !important; }
.bfsd-xs--checkout .bfsd-xp__points li { font-size: 13px; }
.bfsd-xs--checkout .bfsd-xp__price { margin-bottom: 0 !important; }
.bfsd-xs--checkout .bfsd-xp__price strong { font-size: 19px; }
.bfsd-xs--checkout .bfsd-xp .bfsd-xp__btn { min-height: 46px; }
@media (max-width: 380px) {
	.bfsd-xs--checkout .bfsd-tt__opts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.bfsd-gt .bfsd-gt__btn[hidden] { display: none !important; }

/* ================= 1.3: Box + Terminal Tackle Box (Produktseite) ================= */
.bfsd-ttb__head { display: flex; gap: 12px; align-items: flex-start; margin: 2px 0 12px; }
.bfsd-ttb__img { flex: none; width: 64px; height: 64px; padding: 4px; border-radius: 10px; background: #fff; }
.bfsd-ttb__img img { display: block; width: 100% !important; height: 100% !important; margin: 0 !important; object-fit: contain; }
.bfsd-ttb__txt { margin: 0 !important; font-size: 13.5px; line-height: 1.45; color: var(--bf-ink); }
.bfsd-ttb__txt strong { display: block; margin-bottom: 2px; font-size: 14.5px; font-weight: 800; }
.bfsd-ttb__txt em { font-style: normal; font-weight: 700; color: var(--bf-bronze); }
.bfsd-ttb__opts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 0 12px; }
.bfsd-linked .bfsd-ttb__opt {
	position: relative;
	display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 1px;
	width: 100%; min-width: 0; height: auto !important; margin: 0 !important; padding: 10px !important;
	border: 2px solid var(--bf-line) !important; border-radius: 12px !important;
	background: #fff !important; color: var(--bf-ink) !important;
	font-family: inherit; font-size: 13.5px !important; font-weight: 500 !important; line-height: 1.25 !important;
	letter-spacing: 0 !important; text-align: left !important; text-transform: none !important; box-shadow: none !important;
	cursor: pointer; transition: border-color .15s ease, background-color .15s ease;
}
.bfsd-linked .bfsd-ttb__opt::after { content: ""; position: absolute; top: 9px; right: 9px; width: 16px; height: 16px; box-sizing: border-box; border: 2px solid #d6ccbb; border-radius: 5px; background: #fff; }
.bfsd-linked .bfsd-ttb__opt:hover { border-color: #f1cd92 !important; }
.bfsd-linked .bfsd-ttb__opt:focus-visible { outline: 3px solid rgba(252, 175, 59, .55); outline-offset: 2px; }
.bfsd-linked .bfsd-ttb__opt.is-on { border-color: var(--bf-gold) !important; background: var(--bf-cream-2) !important; }
.bfsd-linked .bfsd-ttb__opt.is-on::after { border-color: var(--bf-gold); background: var(--bf-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%231a1a1a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; }
.bfsd-ttb__name { padding-right: 20px; font-size: 14px; font-weight: 800; }
.bfsd-ttb__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 5px; }
.bfsd-ttb__price del { font-size: 11.5px; color: var(--bf-muted); }
.bfsd-ttb__price strong { font-size: 14.5px; font-weight: 800; }
.bfsd-ttb__match { position: absolute; top: -9px; left: 8px; padding: 1px 7px; border-radius: 999px; background: var(--bf-black); color: var(--bf-gold); font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.bfsd-ttb__note.is-err { color: var(--bf-err) !important; font-weight: 700; }
.bfsd-ttb:not(.has-pick) .bfsd-ttb__btn { box-shadow: none !important; }
@media (max-width: 380px) {
	.bfsd-ttb__opts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Bezahl-Buttons (PayPal, Apple/Google Pay) nie über dem aufgeklappten Menü: PayPal setzt eigene hohe z-index-Werte,
   die bleiben so innerhalb ihres Kastens. */
:is(div, fieldset, section, p, li):has(> [id^="zoid-paypal-buttons"], > [id^="zoid-paypal-message"], > .paypal-buttons),
[id^="zoid-paypal-buttons"], [id^="zoid-paypal-message"], .ppc-button-wrapper, [id^="ppc-button"], .ppcp-messages,
[id*="express-checkout-element"], [id*="express-checkout-wrapper"], [id*="express-payment"] {
	isolation: isolate;
}
