/*
Theme Name: sprossen
Theme URI: https://www.sprossen.at
Description: Theme für sprossen.at nach dem Gestaltungsentwurf (prototyp/index.html). Kindthema von Twenty Twenty-Five.
Author: maxiFIT Sebersdorf e.U.
Author URI: https://www.maxifit.at
Template: twentytwentyfive
Version: 0.12.0
Requires at least: 6.7
Requires PHP: 8.1
Text Domain: sprossen
*/

/* Ergänzungen, die theme.json nicht abdeckt. Werte aus dem Prototyp. */

body {
	-webkit-font-smoothing: antialiased;
}

::selection {
	background: var(--wp--preset--color--keim-hell);
	color: #12200F;
}

/* ---------- Kopfzeile ---------- */

header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
}
body.admin-bar header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }

.kopf {
	background: rgba(241, 243, 236, .92);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--wp--preset--color--linie);
}
.kopf-inner {
	gap: 14px;
	padding: 12px 0;
}
.kopf .marke {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	font-size: 21px;
	letter-spacing: -.03em;
	line-height: 1.2;
}
.kopf .marke a { text-decoration: none; color: inherit; }

.kopf-nav {
	display: none;
	margin-left: 18px;
	gap: 20px;
	font-size: 14.5px;
	font-weight: 500;
}
.kopf-nav .wp-block-navigation-item__content {
	padding: 4px 0;
	border-bottom: 2px solid transparent;
}
.kopf-nav .wp-block-navigation-item__content:hover {
	border-bottom-color: var(--wp--preset--color--keim);
	color: inherit;
}
@media (min-width: 900px) {
	.kopf-nav { display: flex; }
}

/* Warenkorb-Knopf: dunkle Pille „Warenkorb" mit hellgrünem Zähler */
.kopf .korb { margin-left: auto; }
.kopf .korb .wc-block-mini-cart__button {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--wp--preset--color--ink);
	color: #EDF3E9;
	padding: 9px 15px;
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
}
.kopf .korb .wc-block-mini-cart__button:hover { opacity: 1; background: var(--wp--preset--color--ink-soft); }
.kopf .korb .wc-block-mini-cart__button::before { content: "Warenkorb"; }
.kopf .korb .wc-block-mini-cart__quantity-badge { position: static; display: flex; }
.kopf .korb .wc-block-mini-cart__icon { display: none; }
.kopf .korb .wc-block-mini-cart__badge {
	position: static;
	transform: none;
	margin: 0;
	visibility: visible;
	/* WooCommerce setzt die Farben per JavaScript als Inline-Stil */
	background-color: var(--wp--preset--color--keim-hell) !important;
	color: #12200F !important;
	opacity: 1 !important;
	border: 0;
	border-radius: 999px;
	min-width: 21px;
	height: 21px;
	padding: 0 5px;
	display: grid;
	place-items: center;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	font-weight: 500;
}

/* ---------- Fußzeile ---------- */

.fuss {
	background: var(--wp--preset--color--paper-2);
	color: var(--wp--preset--color--ink-soft);
	border-top: 1px solid var(--wp--preset--color--linie);
	padding-top: 38px;
	padding-bottom: 26px;
	margin-top: 20px;
	font-size: 14.5px;
}
.fuss a { text-decoration: none; }
.fuss a:hover { color: var(--wp--preset--color--keim); }
.fuss-spalten { gap: 26px; }
@media (min-width: 782px) {
	.fuss-spalten .fuss-adresse { flex-basis: 40% !important; flex-grow: 0 !important; }
}
.fuss .fuss-titel {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--stein);
	margin: 0 0 10px;
	line-height: 1.4;
}
.fuss p { margin: 0; }
.fuss-liste {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 6px;
}
.zahlhinweis {
	background: var(--wp--preset--color--mint);
	border-radius: 10px;
	padding: 13px 15px;
	color: var(--wp--preset--color--ink);
	font-size: 14px;
	margin-top: 16px !important;
}
.fuss .rechte {
	border-top: 1px solid var(--wp--preset--color--linie);
	margin-top: 26px;
	padding-top: 16px;
	font-size: 12.5px;
	color: var(--wp--preset--color--stein);
}

/* ---------- Sortiment ---------- */

main.sortiment { padding-top: 44px; padding-bottom: 44px; }

.kopfzeile { gap: 16px; margin-bottom: 20px; align-items: flex-end; }
.kopfzeile h1 {
	font-size: var(--wp--preset--font-size--xx-large);
	letter-spacing: -.03em;
	line-height: 1.05;
	margin: 0;
}
.kopfzeile p { margin: 0; color: var(--wp--preset--color--stein); font-size: 15px; max-width: 40ch; }

.filter {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding-bottom: 6px;
	margin-bottom: 22px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.filter::-webkit-scrollbar { display: none; }
.chip {
	white-space: nowrap;
	padding: 9px 16px;
	border-radius: 999px;
	background: var(--wp--preset--color--paper-2);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--linie);
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--ink-soft);
	text-decoration: none;
}
.chip:hover { color: var(--wp--preset--color--keim); }
.chip[aria-current="page"] { background: var(--wp--preset--color--ink); color: #EDF3E9; box-shadow: none; }

/* Raster: 2 / 3 / 4 Spalten */
.raster .wc-block-product-template {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 700px) { .raster .wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }
@media (min-width: 1000px) { .raster .wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.raster .wc-block-product-template > li { margin: 0 !important; width: auto !important; max-width: none !important; display: flex; }

/* ---------- Produktkarte ---------- */

.karte {
	background: var(--wp--preset--color--paper-2);
	border-radius: var(--wp--custom--radius);
	overflow: hidden;
	box-shadow: var(--wp--custom--shadow);
	display: flex;
	flex-direction: column;
	width: 100%;
	transition: transform .18s ease, box-shadow .18s ease;
	animation: sprossen-auf .45s ease both;
}
@keyframes sprossen-auf { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .karte { animation: none; } }
.karte:hover { transform: translateY(-3px); box-shadow: var(--wp--custom--shadow-hover); }

.karte .bild { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #DDE5D6; }
.karte .bild img,
.karte .bild svg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

.badge {
	position: absolute;
	top: 9px;
	left: 9px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10.5px;
	letter-spacing: .05em;
	text-transform: uppercase;
	padding: 4px 9px;
	border-radius: 6px;
	background: var(--wp--preset--color--saat);
	color: var(--wp--preset--color--saat-dunkel);
	font-weight: 500;
}
.badge.leer { background: var(--wp--preset--color--warn); color: #fff; }

.karte .txt { padding: 13px 13px 15px; display: flex; flex-direction: column; flex: 1; gap: 9px; }
.kat {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10.5px;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--wp--preset--color--stein);
}
.karte h3 {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	font-size: 17.5px;
	margin: 0;
	letter-spacing: -.015em;
	line-height: 1.15;
}
.karte h3 a { text-decoration: none; color: inherit; }
.karte .geschmack { font-size: 13.5px; color: var(--wp--preset--color--stein); margin: -3px 0 0; }

/* Keimstreifen */
.keim {
	border-top: 1px dashed var(--wp--preset--color--linie);
	border-bottom: 1px dashed var(--wp--preset--color--linie);
	padding: 8px 0;
	display: flex;
	gap: 10px;
}
.keim > div { flex: 1; }
.keim .k {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10.5px;
	line-height: 1.3;
	letter-spacing: 0;
	/* Keine Großbuchstaben: der Browser macht aus „ß“ sonst „SS“ (Sprießdauer) */
	text-transform: none;
	color: var(--wp--preset--color--stein);
}
.keim .v { font-family: var(--wp--preset--font-family--mono); font-size: 13px; font-weight: 700; }
.keim .v.klein { font-size: 12px; }
.keim .balken { height: 3px; border-radius: 2px; background: var(--wp--preset--color--linie); margin-top: 5px; overflow: hidden; }
.keim .balken i { display: block; height: 100%; background: var(--wp--preset--color--keim); }

.karte .zeile { display: flex; align-items: center; gap: 10px; margin-top: auto; }
.preis { font-family: var(--wp--preset--font-family--mono); font-weight: 500; font-size: 18px; line-height: 1.3; }
.preis s { color: var(--wp--preset--color--stein); font-size: 13px; margin-right: 5px; font-weight: 400; }
.kilo { font-family: var(--wp--preset--font-family--mono); font-size: 11px; color: var(--wp--preset--color--stein); display: block; margin-top: -2px; }

/* „+“-Knopf: WooCommerce-Knopf als grünes Quadrat, Text nur für Screenreader */
.karte .zeile .wp-block-button,
.karte .zeile .wc-block-components-product-button { margin: 0 0 0 auto !important; flex: none; }
.karte .zeile .wc-block-components-product-button__button,
.karte .add {
	margin-left: auto;
	background: var(--wp--preset--color--keim);
	color: #fff;
	width: 38px;
	height: 38px;
	min-height: 0;
	padding: 0 !important;
	border: 0;
	border-radius: 10px;
	display: grid;
	place-items: center;
	flex: none;
	font-size: 0 !important;
	line-height: 1;
	transition: background .15s;
	position: relative;
	overflow: hidden;
}
.karte .zeile .wc-block-components-product-button__button::before { content: "+"; font-size: 21px; font-weight: 400; }
.karte .zeile .wc-block-components-product-button__button:hover { background: var(--wp--preset--color--ink); }
.karte .zeile .wc-block-components-product-button__button.loading::before { content: "…"; }
.karte .zeile .wc-block-components-product-button__button.added::before { content: "✓"; font-size: 17px; }
.karte .zeile .wc-block-components-product-button .added_to_cart { display: none; }
.karte .add { font-size: 21px !important; }
.karte .add:disabled { background: var(--wp--preset--color--linie); color: var(--wp--preset--color--stein); cursor: not-allowed; }
.karte .zeile .wc-block-components-product-button__button:focus-visible,
.chip:focus-visible { outline: 3px solid var(--wp--preset--color--saat); outline-offset: 2px; }

/* ---------- Produktdetail ---------- */

main.produktseite { padding-top: 26px; padding-bottom: 44px; }
.produktseite .woocommerce-breadcrumb,
.produktseite .wc-block-breadcrumbs { font-size: 13px; color: var(--wp--preset--color--stein); margin-bottom: 18px; }
.produktseite .wc-block-breadcrumbs a { color: inherit; }

.detail { display: grid; gap: 26px; }
@media (min-width: 900px) {
	.detail { grid-template-columns: 1.1fr .9fr; gap: 44px; align-items: start; }
	.detail-beschreibung { grid-column: 1 / -1; }
}

.detail-bild {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--wp--custom--radius);
	background: #DDE5D6;
	box-shadow: var(--wp--custom--shadow);
}
@media (min-width: 900px) { .detail-bild { aspect-ratio: 4 / 3; } }
.detail-bild img,
.detail-bild svg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

.detail-titel {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	font-size: clamp(28px, 5vw, 42px);
	letter-spacing: -.03em;
	line-height: 1.05;
	margin: 6px 0 0;
}
.detail-satz { margin: 10px 0 0; font-size: 16px; }

.detail-preis { margin-top: 16px; }
.detail-preis .preis { font-size: 26px; }
.detail-preis .kilo { font-size: 12.5px; margin-top: 0; }
.preishinweis { margin: 6px 0 0; font-size: 13px; color: var(--wp--preset--color--stein); line-height: 1.45; }
.preishinweis a { color: inherit; }

.dtabelle { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 14.5px; }
.dtabelle td { padding: 9px 0; border-bottom: 1px solid var(--wp--preset--color--linie); vertical-align: top; }
.dtabelle td:first-child { color: var(--wp--preset--color--stein); width: 42%; }
.dtabelle td:last-child { font-family: var(--wp--preset--font-family--mono); }

/* Kaufleiste: Mengenfeld + großer grüner Knopf */
.kaufleiste { margin-top: 18px; }
.kaufleiste form.cart { display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap; margin: 0; }
.kaufleiste .quantity { display: flex; }
.kaufleiste .quantity input.qty {
	width: 76px;
	height: 48px;
	border-radius: 11px;
	border: 1.5px solid var(--wp--preset--color--linie);
	background: #fff;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 16px;
	text-align: center;
}
.kaufleiste .quantity input.qty:focus { outline: 0; border-color: var(--wp--preset--color--keim); }
.kaufleiste .single_add_to_cart_button,
.kaufleiste .gross {
	flex: 1;
	min-width: 180px;
	background: var(--wp--preset--color--keim);
	color: #fff;
	padding: 14px;
	border: 0;
	border-radius: 11px;
	font-family: var(--wp--preset--font-family--body);
	font-weight: 700;
	font-size: 16px;
	text-align: center;
	cursor: pointer;
}
.kaufleiste .single_add_to_cart_button:hover { background: var(--wp--preset--color--ink); }
.kaufleiste .gross:disabled { background: var(--wp--preset--color--linie); color: var(--wp--preset--color--stein); cursor: not-allowed; }

.pflicht {
	background: var(--wp--preset--color--paper-2);
	border-radius: 11px;
	padding: 14px 16px;
	margin-top: 18px;
	font-size: 14px;
	line-height: 1.5;
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--linie);
}
.pflicht b { display: block; margin-bottom: 5px; }
.pflicht .dtabelle { margin: 4px 0 10px; }
.pflicht .mark {
	display: inline-block;
	background: var(--wp--preset--color--saat);
	color: var(--wp--preset--color--saat-dunkel);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 3px 7px;
	border-radius: 5px;
	margin-top: 9px;
}

.detail-beschreibung { max-width: 720px; }
.detail-beschreibung h2 { font-size: 24px; margin: 10px 0 12px; }
.detail-beschreibung h3 { font-size: 18px; margin: 26px 0 8px; }
.detail-beschreibung .sorteninfo td:first-child { width: 42%; }

/* Hinweise von WooCommerce (z. B. „liegt im Warenkorb“) */
.wc-block-store-notices .wc-block-components-notice-banner,
.woocommerce-message {
	border-radius: 11px;
	border: 0;
	background: var(--wp--preset--color--mint);
	color: var(--wp--preset--color--ink);
	font-size: 14.5px;
}
.kaufleiste form.cart,
.kaufleiste .quantity { margin: 0 !important; padding: 0; }

/* ---------- Warenkorb und Kassa ---------- */

main.kassa { padding-top: 34px; padding-bottom: 44px; }
.kassa .kassa-titel { font-size: var(--wp--preset--font-size--xx-large); margin: 0 0 8px; }

.wc-block-components-title,
.wc-block-components-checkout-step__title {
	font-family: var(--wp--preset--font-family--display) !important;
	font-weight: 600 !important;
	letter-spacing: -.015em;
}

/* Eingabefelder wie .formfeld im Prototyp */
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-combobox .wc-block-components-combobox-control input {
	border: 1.5px solid var(--wp--preset--color--linie) !important;
	border-radius: 10px !important;
	background: #fff !important;
	font-family: var(--wp--preset--font-family--body) !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus {
	border-color: var(--wp--preset--color--keim) !important;
	box-shadow: none !important;
	outline: 0 !important;
}
.wc-blocks-components-select .wc-blocks-components-select__container { border-radius: 10px; }

/* Versand- und Zahlungsauswahl, Vorkassa-Box */
.wc-block-components-radio-control--highlight-checked,
.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option {
	border-radius: 11px !important;
}
.wc-block-components-radio-control--highlight-checked::after,
.wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control__option--checked-option-highlighted {
	box-shadow: inset 0 0 0 1.5px var(--wp--preset--color--keim) !important;
	border-radius: 11px !important;
}
.wc-block-components-radio-control-accordion-content {
	background: var(--wp--preset--color--mint);
	border-radius: 10px;
	margin: 0 12px 12px;
	padding: 12px 14px !important;
	font-size: 14.5px;
}

/* Summen in Mono wie .summe im Prototyp */
.wc-block-components-totals-item__value,
.wc-block-components-product-price,
.wc-block-components-formatted-money-amount {
	font-family: var(--wp--preset--font-family--mono);
}

/* Großer grüner Knopf wie .gross */
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
.wc-block-components-button.contained {
	background: var(--wp--preset--color--keim) !important;
	color: #fff !important;
	border-radius: 11px !important;
	font-family: var(--wp--preset--font-family--body) !important;
	font-weight: 700 !important;
	font-size: 16px !important;
	min-height: 52px;
}
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover { background: var(--wp--preset--color--ink) !important; }

.wc-block-checkout__terms { font-size: 13.5px; color: var(--wp--preset--color--stein); }
.wc-block-checkout__terms a { color: inherit; }

/* Auf Warenkorb und Kassa zeigt WooCommerce den Mini-Warenkorb nur als Punkt */
.woocommerce-cart .kopf .korb,
.woocommerce-checkout .kopf .korb { display: none; }

/* ---------- Startseite ---------- */

.startseite { margin-top: 0 !important; }
.eyebrow {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--keim);
	margin: 0;
}

.hero { background: linear-gradient(180deg, #FFFFFF 0%, var(--wp--preset--color--paper) 100%); padding-top: 44px; overflow: hidden; }
.hero-raster { display: grid; gap: 26px; }
@media (min-width: 900px) {
	.hero { padding-top: 60px; }
	.hero-raster { grid-template-columns: 1.05fr .95fr; align-items: end; gap: 44px; }
}
.hero h1 { font-size: var(--wp--preset--font-size--hero); letter-spacing: -.035em; line-height: .98; margin: 14px 0 0; }
.hero h1 em { font-style: normal; color: var(--wp--preset--color--keim); }
.hero .lead { font-size: 17px; color: var(--wp--preset--color--stein); max-width: 44ch; margin: 16px 0 0; }
.hero-cta { gap: 10px; margin-top: 24px; }
.hero-cta .geist .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--ink);
	border: 0;
	box-shadow: inset 0 0 0 1.5px rgba(22, 35, 28, .22);
}
.hero-cta .geist .wp-block-button__link:hover { background: var(--wp--preset--color--ink); color: #fff; }

.hero-bild { position: relative; border-radius: var(--wp--custom--radius) var(--wp--custom--radius) 0 0; overflow: hidden; background: var(--wp--preset--color--mint); margin-top: 8px; min-height: 280px; }
@media (min-width: 900px) { .hero-bild { min-height: 400px; } }
.hero-bild img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.herkunft {
	position: absolute;
	left: 14px;
	bottom: 14px;
	background: rgba(18, 32, 15, .82);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	color: #E9F0E4;
	padding: 9px 14px;
	border-radius: 999px;
	font-size: 12.5px;
	font-family: var(--wp--preset--font-family--mono);
}

/* Keimuhr */
.keimuhr { margin: 30px 0 0; border-top: 1px solid var(--wp--preset--color--linie); padding: 18px 0 26px; }
.keimuhr .titel { font-family: var(--wp--preset--font-family--mono); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--stein); margin-bottom: 12px; }
.uhr { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--wp--preset--color--linie); border-radius: 8px; overflow: hidden; }
.uhr .phase { padding: 11px 12px; background: #fff; position: relative; overflow: hidden; }
.uhr .phase .k { font-family: var(--wp--preset--font-family--mono); font-size: 11px; color: var(--wp--preset--color--stein); letter-spacing: .06em; }
.uhr .phase .v { font-weight: 700; font-size: 14.5px; margin-top: 2px; }
.uhr .phase::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; background: var(--wp--preset--color--keim); width: 0; animation: sprossen-fuellen 2.6s ease-out forwards; }
.uhr .phase:nth-child(2)::after { animation-delay: .5s; }
.uhr .phase:nth-child(3)::after { animation-delay: 1s; }
@keyframes sprossen-fuellen { to { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .uhr .phase::after { animation: none; width: 100%; } }

/* Ablauf / Vorkassa */
.ablauf { background: var(--wp--preset--color--saat); color: var(--wp--preset--color--saat-dunkel); }
.ablauf-raster { padding: 22px 0; display: grid; gap: 16px; }
@media (min-width: 760px) { .ablauf-raster { grid-template-columns: repeat(3, 1fr); gap: 26px; } }
.schritt { display: flex; gap: 12px; align-items: flex-start; }
.schritt .nr { font-family: var(--wp--preset--font-family--mono); font-size: 12px; background: var(--wp--preset--color--saat-dunkel); color: var(--wp--preset--color--saat); width: 24px; height: 24px; border-radius: 6px; display: grid; place-items: center; flex: none; margin-top: 2px; }
.schritt b { display: block; font-size: 15px; }
.schritt span { font-size: 14px; opacity: .78; line-height: 1.4; }

/* Abschnitte */
.blk { padding-top: 44px; padding-bottom: 44px; margin-top: 0 !important; }
.blk .kopfzeile h2 { font-size: var(--wp--preset--font-size--xx-large); margin: 0; }

/* Stammkunden */
.stamm { background: var(--wp--preset--color--mint); border-radius: 18px; padding: 26px 20px; display: grid; gap: 20px; }
.stamm h2 { font-size: clamp(24px, 5vw, 34px); margin: 8px 0 0; }
.stamm p { color: var(--wp--preset--color--stein); font-size: 15px; margin: 10px 0 0; max-width: 42ch; }
.stamm .eyebrow { color: var(--wp--preset--color--keim); margin: 0; font-size: 11.5px; max-width: none; }
.letzte { background: #fff; border-radius: 12px; padding: 18px; box-sizing: border-box; width: 100%; }
.letzte p { color: var(--wp--preset--color--ink); margin: 0 0 14px; }
@media (min-width: 820px) { .stamm { grid-template-columns: 1fr 1fr; gap: 36px; align-items: center; padding: 38px 34px; } }

/* Stimmen */
.stimmen { display: grid; gap: 14px; }
@media (min-width: 820px) { .stimmen { grid-template-columns: repeat(3, 1fr); } }
.stimme { background: var(--wp--preset--color--paper-2); border-radius: var(--wp--custom--radius); padding: 20px; box-shadow: var(--wp--custom--shadow); }
.stimme p { margin: 0 0 12px; font-size: 15.5px; line-height: 1.5; }
.stimme b { display: block; font-size: 14px; }
.stimme span { font-size: 13px; color: var(--wp--preset--color--stein); }

/* ---------- Größenauswahl (Staffelpreise) ---------- */

.karte-form { display: flex; flex-direction: column; gap: 9px; margin: 0; flex: 1; }
.groessen { display: flex; gap: 5px; }
.groessen label { flex: 1; position: relative; }
.groessen input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.groessen span {
	display: block;
	padding: 6px 4px;
	border-radius: 8px;
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--linie);
	font-size: 12px;
	font-family: var(--wp--preset--font-family--mono);
	color: var(--wp--preset--color--ink-soft);
	text-align: center;
	cursor: pointer;
}
.groessen input:checked + span { background: var(--wp--preset--color--ink); color: #EDF3E9; box-shadow: none; }
.groessen input:focus-visible + span { outline: 3px solid var(--wp--preset--color--saat); outline-offset: 2px; }
.detail .groessen { width: 100%; margin-bottom: 14px; flex-wrap: wrap; }
.detail .groessen span { padding: 9px 6px; font-size: 13px; }
.karte .add[type=submit] { cursor: pointer; }
.karte .add[type=submit]:hover { background: var(--wp--preset--color--ink); }

/* Letzte Bestellung */
.letzte .zl { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--wp--preset--color--linie); font-size: 14.5px; }
.letzte .zl:last-of-type { border-bottom: 0; }
.letzte .zl span { font-family: var(--wp--preset--font-family--mono); color: var(--wp--preset--color--stein); white-space: nowrap; }
.btn {
	background: var(--wp--preset--color--keim);
	color: #fff;
	padding: 13px 22px;
	border-radius: 999px;
	font-weight: 700;
	font-size: 15px;
	text-decoration: none;
	display: inline-block;
}
.btn:hover { background: var(--wp--preset--color--ink); color: #fff; }
.btn.geist { background: transparent; color: var(--wp--preset--color--ink); box-shadow: inset 0 0 0 1.5px rgba(22, 35, 28, .22); }
.btn.geist:hover { background: var(--wp--preset--color--ink); color: #fff; }
.letzte .letzte-btn {
	display: block;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	margin: 14px 0 0;
	text-align: center;
	white-space: normal;
}
.letzte > :last-child { margin-bottom: 0; }
.sprossen-nachbestellen small { color: var(--wp--preset--color--stein); }

/* ---------- Keim-Post ---------- */
.nlbox {
	background: var(--wp--preset--color--paper-2);
	border-radius: 18px;
	box-shadow: var(--wp--custom--shadow);
	padding: 26px 20px;
	display: grid;
	gap: 20px;
	border-top: 4px solid var(--wp--preset--color--saat);
	box-sizing: border-box;
	scroll-margin-top: 90px;
}
.nlbox h2 { font-size: clamp(24px, 5vw, 33px); margin: 8px 0 0; }
.nlbox p { color: var(--wp--preset--color--stein); font-size: 15px; margin: 10px 0 0; max-width: 44ch; }
.nlbox .eyebrow-saat { color: #8A6F12; font-size: 11.5px; margin: 0; }
.nlliste { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; font-size: 14.5px; }
.nlliste li { display: flex; gap: 9px; align-items: flex-start; }
.nlliste li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--wp--preset--color--keim); flex: none; margin-top: 8px; }
.nlform { display: grid; gap: 9px; margin: 0; }
.nlform input[type=email] { padding: 14px 15px; border-radius: 11px; border: 1.5px solid var(--wp--preset--color--linie); font: 400 16px var(--wp--preset--font-family--body); background: #fff; box-sizing: border-box; width: 100%; }
.nlform input[type=email]:focus { outline: 0; border-color: var(--wp--preset--color--keim); }
.nlform button { background: var(--wp--preset--color--ink); color: #EDF3E9; padding: 14px; border: 0; border-radius: 11px; font-weight: 700; font-size: 15px; font-family: var(--wp--preset--font-family--body); cursor: pointer; }
.nlform button:hover { background: var(--wp--preset--color--keim); }
.nlform .klein { font-size: 12.5px; line-height: 1.45; margin: 0; max-width: none; }
.nlform .klein a { color: inherit; }
.nl-falle { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.nl-meldung { margin: 0 !important; padding: 11px 13px; border-radius: 10px; font-size: 14px !important; max-width: none !important; }
.nl-meldung.ok { background: var(--wp--preset--color--mint); color: var(--wp--preset--color--ink) !important; }
.nl-meldung.fehler { background: #FBEFEE; color: var(--wp--preset--color--warn) !important; }
@media (min-width: 820px) { .nlbox { grid-template-columns: 1.1fr .9fr; gap: 38px; align-items: center; padding: 34px; } }

/* ---------- Porträt (Über uns) ---------- */
/* Querformatige Fotos werden im Hochformat gezeigt; der Ausschnitt sitzt etwas
   rechts der Mitte und oben, wo bei Gottfrieds Foto das Gesicht ist. */
.wp-block-image.is-style-portraet { margin: 0; }
.wp-block-image.is-style-portraet img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 60% 20%;
	border-radius: var(--wp--custom--radius);
	box-shadow: var(--wp--custom--shadow);
}
.wp-block-image.is-style-portraet figcaption,
.wp-block-image.is-style-portraet .wp-element-caption {
	margin: 10px 0 0;
	font-size: 13.5px;
	line-height: 1.4;
	color: var(--wp--preset--color--stein);
	text-align: left;
}
/* Spalten mit Porträt: am Handy Bild über dem Text (Spalten stapeln sich, Bild zuerst),
   am Computer nebeneinander; mit „Porträt rechts“ wandert das Bild nach rechts. */
.wp-block-columns:has(.is-style-portraet) { gap: 26px 44px; align-items: flex-start; }
@media (max-width: 781px) {
	.wp-block-columns:has(.is-style-portraet) .is-style-portraet { max-width: 360px; }
}
@media (min-width: 782px) {
	.wp-block-columns:has(.is-style-portraet) > .wp-block-column:has(.is-style-portraet) { flex: 0 0 34% !important; }
	.wp-block-columns.is-style-portraet-rechts > .wp-block-column:has(.is-style-portraet) { order: 2; }
}

/* ---------- Seite „Über uns“ ---------- */
/* Porträt im Fließtext: am Computer rechts neben dem Text, am Handy darüber */
.entry-content figure.portraet,
.wp-block-post-content figure.portraet { margin: 6px 0 24px; }
.wp-block-post-content figure.portraet img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 60% 20%;
	border-radius: var(--wp--custom--radius);
	box-shadow: var(--wp--custom--shadow);
}
.wp-block-post-content figure.portraet figcaption {
	margin-top: 10px;
	font-size: 13.5px;
	line-height: 1.4;
	color: var(--wp--preset--color--stein);
}
@media (max-width: 599px) {
	.wp-block-post-content figure.portraet { max-width: 420px; }
}
@media (min-width: 600px) {
	/* Breite und rechter Rand beziehen sich auf die Textspalte (contentSize), nicht auf die Seite */
	.wp-block-post-content figure.portraet {
		float: right;
		width: calc(min(100%, var(--wp--style--global--content-size)) * .38);
		max-width: none;
		margin: 6px max(0px, calc((100% - var(--wp--style--global--content-size)) / 2)) 20px 32px !important;
	}
	.wp-block-post-content::after { content: ""; display: block; clear: both; }
}
.wp-block-post-content .vorspann { font-size: 17px; color: var(--wp--preset--color--stein); }
.wp-block-post-content .vorspann em { font-style: normal; }
.wp-block-post-content .motto { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--x-large); color: var(--wp--preset--color--keim); margin-top: 28px; }
.wp-block-post-content .signatur { font-size: 14.5px; }
.sprossen-steuerhinweis { font-size: 13px; color: var(--wp--preset--color--stein); }

/* Besonderer Hinweis (Produktfeld), z. B. abweichende Spülregel */
.besonderer-hinweis {
	background: var(--wp--preset--color--mint);
	border-left: 4px solid var(--wp--preset--color--keim);
	border-radius: 0 11px 11px 0;
	padding: 12px 16px;
	margin: 6px 0 4px;
	font-size: 14.5px;
	line-height: 1.5;
}
.besonderer-hinweis b { display: block; margin-bottom: 4px; }
.besonderer-hinweis p { margin: 0; }

.pflicht .pflicht-anfrage { margin: 6px 0 0; }
.pflicht .pflicht-anfrage a { color: inherit; }

/* ---------- Bewertungen ---------- */
.detail-bewertungen { max-width: 720px; margin-top: 34px; }
.detail-bewertungen h2 { font-size: 24px; margin: 0 0 12px; }
.detail-bewertungen .commentlist { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 12px; }
.detail-bewertungen .comment_container { background: var(--wp--preset--color--paper-2); border-radius: 12px; padding: 14px 16px; box-shadow: var(--wp--custom--shadow); }
.detail-bewertungen .avatar { display: none; }
.detail-bewertungen .woocommerce-review__verified { color: var(--wp--preset--color--keim); font-style: normal; font-size: 13px; }
.detail-bewertungen .woocommerce-noreviews { color: var(--wp--preset--color--stein); }
.detail-bewertungen #review_form_wrapper { background: var(--wp--preset--color--paper-2); border-radius: 14px; padding: 18px 20px; box-shadow: var(--wp--custom--shadow); }
.detail-bewertungen input[type=text], .detail-bewertungen input[type=email], .detail-bewertungen textarea, .detail-bewertungen select {
	width: 100%; box-sizing: border-box; padding: 11px 13px; border-radius: 10px; border: 1.5px solid var(--wp--preset--color--linie); font: inherit; background: #fff;
}
.detail-bewertungen .form-submit input[type=submit] { background: var(--wp--preset--color--keim); color: #fff; border: 0; border-radius: 11px; padding: 13px 22px; font-weight: 700; cursor: pointer; }
.detail-bewertungen .stars a { color: var(--wp--preset--color--saat); }
.bewertung-hinweis { background: var(--wp--preset--color--mint); border-radius: 10px; padding: 10px 14px; font-size: 13.5px; margin: 12px 0; }
.bewertung-hinweis p { margin: 4px 0; }
