/* BFP Shop – Produktseite, Übersicht, Warenkorb und Kasse im Design der Website.
   Wird nur auf WooCommerce-Seiten geladen. Kein Child-Theme vorhanden, deshalb
   als Datei im mu-Plugin. */

body.bfp-shop {
	--bfp-dunkel: #0F4001;
	--bfp-tief:   #062601;
	--bfp-lime:   #D2F25E;
	--bfp-creme:  #FFFFE1;
	--bfp-gruen:  #3A6626;
	--bfp-linie:  #DCE2D4;
	--bfp-grund:  #F7F8F4;
	--bfp-display: "Lexend Giga", LexendGiga_local, sans-serif;
	--bfp-text:    "Manrope", Manrope_local, sans-serif;
}

/* ---------- 1 Kopfzeile ----------
   Divi erzeugt für WooCommerce-Archive kein vollständiges Theme-Builder-CSS:
   Die mobile Kopfzeile bleibt am Desktop stehen und verliert ihre Fläche.
   Hier stehen dieselben Regeln, die Divi auf allen anderen Seiten ausliefert. */
body.bfp-shop .et-l--header .et_pb_section_0_tb_header,
body.bfp-shop .et-l--header .et_pb_section_1_tb_header {
	background-color: var(--bfp-dunkel) !important;
}
@media only screen and (min-width: 768px) {
	body.bfp-shop .et-l--header .et_pb_section_1_tb_header { display: none !important; }
}
@media only screen and (max-width: 767px) {
	body.bfp-shop .et-l--header .et_pb_section_0_tb_header { display: none !important; }
}

/* ---------- 2 Layout ---------- */
body.bfp-shop #sidebar { display: none; }
body.bfp-shop #left-area {
	width: 100%;
	padding-right: 0;
	padding-bottom: 4rem;
}
body.bfp-shop #main-content .container::before { display: none; }
body.bfp-shop .woocommerce-breadcrumb {
	font-family: var(--bfp-text);
	font-size: .82rem;
	color: var(--bfp-gruen);
	margin-bottom: 1.6rem;
}
body.bfp-shop .woocommerce-breadcrumb a { color: var(--bfp-gruen); }
body.bfp-shop .woocommerce-breadcrumb a:hover { color: var(--bfp-dunkel); }

/* ---------- 3 Typografie ---------- */
body.bfp-shop h1, body.bfp-shop h2, body.bfp-shop h3,
body.bfp-shop .wc-block-components-title,
body.bfp-shop .woocommerce-loop-product__title,
body.bfp-shop .product_title {
	font-family: var(--bfp-display);
	font-weight: 700;
	text-transform: uppercase;
	color: var(--bfp-dunkel);
	letter-spacing: .01em;
	line-height: 1.12;
}
body.bfp-shop .woocommerce-products-header__title,
body.bfp-shop .entry-title {
	font-size: clamp(1.9rem, 4vw, 2.9rem);
	margin-bottom: 1.4rem;
}
body.bfp-shop .product_title { font-size: clamp(1.6rem, 3vw, 2.3rem); }
body.bfp-shop .woocommerce-result-count {
	font-family: var(--bfp-text);
	font-size: .86rem;
	color: var(--bfp-gruen);
}

/* ---------- 4 Knöpfe ---------- */
body.bfp-shop a.button,
body.bfp-shop button.button,
body.bfp-shop input.button,
body.bfp-shop a.button.alt,
body.bfp-shop button.button.alt,
body.bfp-shop .single_add_to_cart_button,
body.bfp-shop .wc-block-components-button,
body.bfp-shop .wc-block-cart__submit-button,
body.bfp-shop .wc-block-components-checkout-place-order-button {
	font-family: var(--bfp-display) !important;
	font-weight: 700 !important;
	font-size: .74rem !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	background: var(--bfp-lime) !important;
	background-color: var(--bfp-lime) !important;
	color: var(--bfp-dunkel) !important;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 1.05rem 2rem !important;
	line-height: 1.2 !important;
	transition: background-color .15s, transform .15s;
}
body.bfp-shop a.button:hover,
body.bfp-shop button.button:hover,
body.bfp-shop input.button:hover,
body.bfp-shop .wc-block-components-button:hover,
body.bfp-shop .wc-block-cart__submit-button:hover,
body.bfp-shop .wc-block-components-checkout-place-order-button:hover {
	background-color: #C2E84C !important;
	color: var(--bfp-dunkel) !important;
}
body.bfp-shop .button:focus-visible,
body.bfp-shop .wc-block-components-button:focus-visible {
	outline: 3px solid var(--bfp-gruen) !important;
	outline-offset: 3px;
}
/* Solange keine Variante gewählt ist, bleibt der Knopf sichtbar, aber ruhig */
body.bfp-shop button.button.disabled,
body.bfp-shop button.button:disabled,
body.bfp-shop .single_add_to_cart_button.disabled {
	background-color: #E4EDD6 !important;
	color: #2F4F1E !important;
	box-shadow: inset 0 0 0 1.5px #B9C4AC;
	cursor: not-allowed;
	opacity: 1 !important;
}
/* Kein Zusatztext im Knopf: WooCommerce meldet beim Klick von selbst, dass
   noch eine Auswahl fehlt. */

/* Zweitrangige Knöpfe bleiben ruhig */
body.bfp-shop .wc-block-components-button.wc-block-components-button--outlined,
body.bfp-shop a.button.wc-backward {
	background: transparent !important;
	color: var(--bfp-dunkel) !important;
	box-shadow: inset 0 0 0 1.5px var(--bfp-dunkel) !important;
}

/* ---------- 5 Produktseite ---------- */
body.bfp-shop div.product div.images img,
body.bfp-shop div.product div.images .woocommerce-product-gallery__image {
	border-radius: 16px;
}
body.bfp-shop div.product p.price,
body.bfp-shop div.product span.price {
	font-family: var(--bfp-display);
	font-weight: 700;
	font-size: clamp(1.3rem, 2.4vw, 1.75rem);
	color: var(--bfp-dunkel);
	letter-spacing: .01em;
}
body.bfp-shop div.product .woocommerce-product-details__short-description {
	font-family: var(--bfp-text);
	font-size: 1.02rem;
	line-height: 1.65;
	color: var(--bfp-dunkel);
	max-width: 46em;
}
body.bfp-shop .variations th.label label,
body.bfp-shop .variations_form label {
	font-family: var(--bfp-text);
	font-weight: 700;
	color: var(--bfp-dunkel);
}
body.bfp-shop .variations select,
body.bfp-shop .woocommerce-ordering select,
body.bfp-shop .quantity input.qty {
	font-family: var(--bfp-text);
	font-size: 1rem;
	color: var(--bfp-dunkel);
	background: #fff;
	border: 1.5px solid var(--bfp-linie);
	border-radius: 10px;
	padding: .75rem .9rem;
	min-height: 3rem;
}
body.bfp-shop .variations select:focus,
body.bfp-shop .quantity input.qty:focus,
body.bfp-shop .woocommerce-ordering select:focus {
	border-color: var(--bfp-gruen);
	outline: 3px solid rgba(82,140,55,.3);
	outline-offset: 1px;
}
body.bfp-shop .quantity input.qty { width: 5rem; text-align: center; }
body.bfp-shop div.product form.cart { align-items: center; gap: .9rem; }
body.bfp-shop .product_meta {
	font-family: var(--bfp-text);
	font-size: .84rem;
	color: var(--bfp-gruen);
	border-top: 1px solid var(--bfp-linie);
	padding-top: 1.1rem;
	margin-top: 1.6rem;
}
body.bfp-shop .product_meta a { color: var(--bfp-gruen); }

/* Reiter unter dem Produkt */
body.bfp-shop .woocommerce-tabs ul.tabs { padding: 0; border-bottom: 1px solid var(--bfp-linie); }
body.bfp-shop .woocommerce-tabs ul.tabs::before { display: none; }
body.bfp-shop .woocommerce-tabs ul.tabs li {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	margin: 0 1.8rem 0 0 !important;
	padding: 0 !important;
}
body.bfp-shop .woocommerce-tabs ul.tabs li::before,
body.bfp-shop .woocommerce-tabs ul.tabs li::after { display: none !important; }
body.bfp-shop .woocommerce-tabs ul.tabs li a {
	font-family: var(--bfp-display);
	font-weight: 700;
	font-size: .72rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--bfp-gruen) !important;
	padding: 1rem 0 !important;
	display: inline-block;
	border-bottom: 3px solid transparent;
}
body.bfp-shop .woocommerce-tabs ul.tabs li.active a,
body.bfp-shop .woocommerce-tabs ul.tabs li a:hover {
	color: var(--bfp-dunkel) !important;
	border-bottom-color: var(--bfp-lime);
}
body.bfp-shop .woocommerce-tabs .panel { padding-top: 1.8rem; }
body.bfp-shop .woocommerce-tabs .panel h2 { font-size: 1.1rem; letter-spacing: .1em; }
body.bfp-shop .woocommerce-tabs .panel ul,
body.bfp-shop .woocommerce-tabs .panel ol { padding-left: 1.2rem; }
body.bfp-shop .woocommerce-tabs .panel li { margin-bottom: .45rem; }

/* ---------- 6 Shop-Übersicht ---------- */
body.bfp-shop ul.products li.product {
	background: #fff;
	border: 1px solid var(--bfp-linie);
	border-radius: 18px;
	padding: 1rem 1rem 1.4rem;
	text-align: left;
}
body.bfp-shop ul.products li.product img {
	border-radius: 12px;
	margin-bottom: 1rem;
}
body.bfp-shop ul.products li.product .woocommerce-loop-product__title {
	font-size: 1rem !important;
	letter-spacing: .06em;
	padding: 0 !important;
	margin-bottom: .4rem;
}
body.bfp-shop ul.products li.product .price {
	font-family: var(--bfp-display);
	font-weight: 700;
	color: var(--bfp-dunkel) !important;
	font-size: 1rem !important;
}
body.bfp-shop ul.products li.product a.button { margin-top: 1rem; }
body.bfp-shop .woocommerce-ordering { margin-bottom: 2rem; }

/* ---------- 7 Warenkorb und Kasse ---------- */
body.bfp-shop .wc-block-components-title,
body.bfp-shop .wp-block-woocommerce-cart h2,
body.bfp-shop .wc-block-cart__totals-title,
body.bfp-shop .wc-block-components-checkout-step__title {
	font-family: var(--bfp-display) !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--bfp-dunkel) !important;
}
body.bfp-shop .wc-block-components-checkout-step__title { font-size: .92rem !important; }
body.bfp-shop .wc-block-components-sidebar,
body.bfp-shop .wp-block-woocommerce-cart-order-summary-block {
	background: var(--bfp-grund);
	border: 1px solid var(--bfp-linie);
	border-radius: 18px;
	padding: 1.6rem 1.4rem;
}
body.bfp-shop .wc-block-components-product-name {
	font-family: var(--bfp-text);
	font-weight: 700;
	color: var(--bfp-dunkel) !important;
}
body.bfp-shop .wc-block-components-totals-item__value,
body.bfp-shop .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var(--bfp-display);
	font-weight: 700;
	color: var(--bfp-dunkel);
}
body.bfp-shop .wc-block-components-text-input input,
body.bfp-shop .wc-block-components-select__container,
body.bfp-shop .wc-block-components-textarea {
	border-radius: 10px !important;
	border-color: var(--bfp-linie) !important;
	font-family: var(--bfp-text) !important;
}
body.bfp-shop .wc-block-components-text-input input:focus,
body.bfp-shop .wc-block-components-select__container:focus-within {
	border-color: var(--bfp-gruen) !important;
	outline: 3px solid rgba(82,140,55,.28);
	outline-offset: 1px;
}
body.bfp-shop .wc-block-components-checkbox__input:checked { accent-color: var(--bfp-dunkel); }
body.bfp-shop .wc-block-components-radio-control__option--checked-option-highlighted,
body.bfp-shop .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	border-color: var(--bfp-gruen) !important;
	box-shadow: 0 0 0 1px var(--bfp-gruen);
	border-radius: 12px;
}
body.bfp-shop .wc-block-cart-items__row img,
body.bfp-shop .wc-block-components-order-summary-item__image img { border-radius: 10px; }
body.bfp-shop .wc-block-components-notice-banner {
	border-radius: 12px;
	font-family: var(--bfp-text);
}

/* ---------- 8 Hinweise und Kleinschrift ---------- */
body.bfp-shop .wc-gzd-additional-info,
body.bfp-shop .wc-gzd-additional-info-loop,
body.bfp-shop .woocommerce-price-suffix,
body.bfp-shop small.includes_tax {
	font-family: var(--bfp-text);
	font-size: .8rem;
	line-height: 1.5;
	color: var(--bfp-gruen);
}
body.bfp-shop .wc-gzd-additional-info a,
body.bfp-shop .woocommerce-price-suffix a { color: var(--bfp-gruen); text-decoration: underline; }
body.bfp-shop .woocommerce-info,
body.bfp-shop .woocommerce-message {
	background: rgba(210,242,94,.28) !important;
	border-top: 0 !important;
	border-left: 4px solid var(--bfp-gruen) !important;
	border-radius: 0 10px 10px 0;
	color: var(--bfp-dunkel) !important;
	font-family: var(--bfp-text);
}
body.bfp-shop .woocommerce-info::before,
body.bfp-shop .woocommerce-message::before { color: var(--bfp-gruen) !important; }
body.bfp-shop .woocommerce-error {
	background: rgba(163,46,18,.09) !important;
	border-left: 4px solid #A32E12 !important;
	border-top: 0 !important;
	border-radius: 0 10px 10px 0;
	color: #7A2510 !important;
}

/* ---------- 9 Schmale Bildschirme ---------- */
@media (max-width: 767px) {
	body.bfp-shop #left-area { padding-bottom: 2.5rem; }
	body.bfp-shop div.product form.cart { flex-wrap: wrap; }
	body.bfp-shop .woocommerce-tabs ul.tabs li { margin-right: 1.1rem !important; }
	body.bfp-shop .woocommerce a.button,
	body.bfp-shop .woocommerce button.button,
	body.bfp-shop .wc-block-components-button { width: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
	body.bfp-shop * { transition: none !important; }
}

/* ---------- 10 Nachträge ----------
   Divi setzt die globale Linkfarbe auf Lime. Auf weißem Grund ist das nicht
   lesbar (Kontrast 1,4:1) – betrifft vor allem die Pflichtlinks in der Kasse. */
body.bfp-shop #left-area a:not(.button):not(.wc-block-components-button):not(.wc-block-components-product-name),
body.bfp-shop .wc-block-checkout__terms a,
body.bfp-shop .wc-block-components-checkout-step a,
body.bfp-shop .wc-block-components-sidebar a,
body.bfp-shop .wc-gzd-checkbox-placeholder a {
	color: var(--bfp-dunkel);
	text-decoration: underline;
	text-underline-offset: 2px;
}
body.bfp-shop #left-area a:hover:not(.button),
body.bfp-shop .wc-block-checkout__terms a:hover { color: var(--bfp-tief); }
/* Die kleinen Hinweise bleiben zurückhaltend, sind aber lesbar */
body.bfp-shop .woocommerce-breadcrumb a,
body.bfp-shop .product_meta a,
body.bfp-shop .wc-gzd-additional-info a,
body.bfp-shop .woocommerce-price-suffix a { color: var(--bfp-gruen); }

body.bfp-shop .wc-block-components-checkout-order-summary__title,
body.bfp-shop .wc-block-components-checkout-order-summary__title-text {
	font-family: var(--bfp-display) !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: .1em;
	font-size: .92rem !important;
	color: var(--bfp-dunkel) !important;
}
body.bfp-shop .wc-block-components-product-name {
	text-decoration: none;
	text-transform: uppercase;
	font-family: var(--bfp-display) !important;
	font-size: .78rem !important;
	letter-spacing: .06em;
}

/* ---------- 11 Passwortformular ----------
   Solange das Produkt vor dem Start geschützt ist, ist dieses Formular das
   Erste, was jemand sieht. Divi nutzt hier eine eigene Hülle, nicht die
   WordPress-Klasse .post-password-form. */
body.bfp-shop .et_password_protected_form { max-width: 34rem; font-family: var(--bfp-text); }
body.bfp-shop .et_password_protected_form h1 { font-size: clamp(1.5rem, 3vw, 2.2rem); margin-bottom: .8rem; }
body.bfp-shop .et_password_protected_form p { margin-bottom: 1.2rem; }
body.bfp-shop .et_password_protected_form label {
	display: block;
	font-weight: 700;
	font-size: .92rem;
	margin-bottom: .4rem;
	color: var(--bfp-dunkel);
}
body.bfp-shop .et_password_protected_form input[type="password"] {
	width: 100%;
	font: inherit;
	font-size: 1rem;
	color: var(--bfp-dunkel);
	background: #fff;
	/* Divi setzt hier border:none - ohne !important bleibt das Feld unsichtbar */
	border: 1.5px solid #B9C4AC !important;
	border-radius: 10px !important;
	padding: .85rem .95rem !important;
}
body.bfp-shop .et_password_protected_form input[type="password"]:focus {
	border-color: var(--bfp-gruen);
	outline: 3px solid rgba(82,140,55,.3);
	outline-offset: 1px;
}
body.bfp-shop .et_password_protected_form .et_submit_button,
body.bfp-shop .et_password_protected_form button[type="submit"] {
	font-family: var(--bfp-display) !important;
	font-weight: 700 !important;
	font-size: .74rem !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	background: var(--bfp-lime) !important;
	color: var(--bfp-dunkel) !important;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 1rem 2rem !important;
	margin-top: 1.2rem;
	cursor: pointer;
}
body.bfp-shop .et_password_protected_form .et_submit_button::after { display: none !important; }
body.bfp-shop .et_password_protected_form .et_submit_button:hover { background: #C2E84C !important; }
