/* Der Frischmarkt – Ergänzungen zu theme.json */

:root {
	--fm-radius: 6px;
	--fm-label: var(--wp--preset--font-family--label);
}

/* Kopfleiste */
.fm-topbar {
	background: var(--wp--preset--color--tinte);
	color: var(--wp--preset--color--bone);
	font-family: var(--fm-label);
	font-size: 0.875rem;
	line-height: 1.4;
	padding-top: 0.6rem;
	padding-bottom: 0.6rem;
}
.fm-topbar p { margin: 0; }
.fm-topbar a { color: var(--wp--preset--color--bone); text-decoration: none; }
.fm-topbar a:hover { text-decoration: underline; color: #fff; }

/* Kopfbereich */
.fm-header {
	border-bottom: 1px solid var(--wp--preset--color--leinen);
	padding-top: 1.3rem;
	padding-bottom: 1.3rem;
}
.fm-logo {
	margin: 0;
	font-family: var(--wp--preset--font-family--logo);
	font-size: 2.125rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1;
}
.fm-logo a { color: var(--wp--preset--color--tinte); text-decoration: none; }
.fm-logo .fm-gruen { color: var(--wp--preset--color--markengruen); }
.fm-tagline {
	margin: 0.35rem 0 0 !important;
	font-family: var(--wp--preset--font-family--logo);
	font-size: 0.875rem;
	letter-spacing: 0.14em;
	color: var(--wp--preset--color--text-2);
	line-height: 1;
}
.fm-nav a { text-decoration: none; color: var(--wp--preset--color--tinte); }
.fm-nav a:hover { color: var(--wp--preset--color--tannengruen); text-decoration: underline; text-underline-offset: 4px; }

/* Typografische Bausteine */
.fm-eyebrow {
	font-family: var(--fm-label);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--tannengruen);
}
.fm-lead {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
	color: #2E2A24;
	max-width: 34em;
}
.fm-muted { color: var(--wp--preset--color--text-2); }
.fm-more {
	font-family: var(--fm-label);
	font-size: 0.9375rem;
	font-weight: 500;
}
.fm-rating {
	font-family: var(--fm-label);
	font-size: 0.9375rem;
	color: var(--wp--preset--color--text-2);
}
.fm-rating strong {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: 1.875rem;
	color: var(--wp--preset--color--tinte);
	margin-right: 0.4rem;
}
.fm-rating .fm-sterne { color: var(--wp--preset--color--messing); letter-spacing: 2px; margin-right: 0.4rem; }
.fm-rating-gross strong { font-size: 4rem; line-height: 1; display: block; margin-bottom: 0.3rem; }

/* Knöpfe */
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1.5px solid var(--wp--preset--color--tannengruen);
	color: var(--wp--preset--color--tannengruen);
	background: transparent;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--tannengruen);
	color: var(--wp--preset--color--papier);
}
.fm-textlink > .wp-block-button__link {
	background: transparent !important;
	color: var(--wp--preset--color--tinte) !important;
	text-decoration: underline;
	text-underline-offset: 4px;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}

/* Abschnitte */
.fm-section { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--50); }
.fm-band-bone { background: var(--wp--preset--color--bone); }
.fm-band-tinte { background: var(--wp--preset--color--tinte); color: var(--wp--preset--color--bone); }
.fm-band-tinte a { color: #9FC7A9; }
.fm-band-tinte .fm-eyebrow { color: #9FC7A9; }

/* Fotos und Platzhalter */
.fm-photo-slot {
	background: var(--wp--preset--color--leinen);
	border: 1.5px dashed var(--wp--preset--color--messing);
	border-radius: var(--fm-radius);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: 220px;
	aspect-ratio: 4 / 3;
	padding: 1rem;
	font-family: var(--fm-label);
	font-size: 0.875rem;
	color: var(--wp--preset--color--text-2);
}
.fm-photo-slot.fm-hoch { aspect-ratio: auto; min-height: 460px; }
.fm-photo-slot p { margin: 0; }
.fm-foto img,
.fm-karte .wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--fm-radius);
}
.fm-foto.fm-hoch img { aspect-ratio: 5 / 6; }

/* Karten */
.fm-karte h3 { margin-top: 0.6rem; }
.fm-karte p { color: #2E2A24; }
.fm-service-karte {
	background: var(--wp--preset--color--papier);
	border-radius: var(--fm-radius);
	padding: 1.75rem;
	height: 100%;
	box-sizing: border-box;
}
.fm-service-karte h3 { font-size: 1.35rem; margin: 0; overflow-wrap: anywhere; }
.fm-service-karte p { color: #2E2A24; }

/* Möhrenanker-Hinweis */
.fm-anker {
	background: var(--wp--preset--color--bone);
	border-radius: var(--fm-radius);
	padding: 1.5rem 1.75rem;
}
.fm-anker figure { margin: 0; }
.fm-anker img { width: 64px; height: 64px; object-fit: contain; }

/* Werte */
.fm-werte { border-top: 1px solid var(--wp--preset--color--leinen); padding-top: 3rem; }
.fm-werte h3 { font-size: 1.625rem; }

/* Öffnungszeiten */
.fm-zeiten table { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums; }
.fm-zeiten td { border: 0; border-bottom: 1px solid var(--wp--preset--color--leinen); padding: 0.4rem 0; }
.fm-zeiten td:last-child { text-align: right; }
.fm-zeiten tr:last-child td { border-bottom: 0; color: var(--wp--preset--color--text-2); }
.fm-zeiten h3 { font-size: 1.5rem; }
.fm-kontakt { font-family: var(--fm-label); font-size: 1rem; }
.fm-kontakt p { margin: 0.2rem 0; }

/* Fußbereich */
.fm-footer {
	background: var(--wp--preset--color--tinte);
	color: var(--wp--preset--color--leinen);
	font-family: var(--fm-label);
	font-size: 0.875rem;
	padding-top: 3rem;
	padding-bottom: 3rem;
}
.fm-footer a { color: var(--wp--preset--color--leinen); }
.fm-footer a:hover { color: #fff; }
.fm-footer p { margin: 0; }
.fm-footer .fm-logo { font-size: 1.625rem; color: var(--wp--preset--color--papier); }
.fm-footer .fm-logo .fm-gruen { color: #9FC7A9; }

/* Seiten mit Titel */
.fm-seitentitel { margin-top: var(--wp--preset--spacing--50); }

/* Mobil */
@media (max-width: 781px) {
	.fm-topbar .wp-block-group { justify-content: flex-start !important; }
	.fm-photo-slot.fm-hoch { min-height: 280px; }
	.fm-logo { font-size: 1.75rem; }
}

/* Platzhalter mit eingesetztem Foto: Rahmen weg, Bild füllt die Fläche */
.fm-photo-slot:has(img) {
	background: none;
	border: 0;
	padding: 0;
	display: block;
	aspect-ratio: auto;
	min-height: 0;
}
.fm-photo-slot:has(img) > p { display: none; }
.fm-photo-slot figure { margin: 0; }
.fm-photo-slot img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--fm-radius);
}
.fm-photo-slot.fm-hoch img { aspect-ratio: 5 / 6; }

/* Bohnenmeisterei */
:root { --fm-petrol: #3F5C5E; }
.fm-idx { margin: 0; }
.fm-idx a {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	height: 100%;
	box-sizing: border-box;
	padding: 1rem 1.1rem;
	background: var(--wp--preset--color--papier);
	border-radius: var(--fm-radius);
	text-decoration: none;
	color: var(--wp--preset--color--tinte);
	border: 1px solid transparent;
}
.fm-idx a:hover { border-color: var(--fm-petrol); }
.fm-idx-nr { font-family: var(--fm-label); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.1em; color: var(--fm-petrol); }
.fm-idx-name { font-family: var(--wp--preset--font-family--display); font-size: 1.375rem; line-height: 1.2; }
.fm-idx-int { font-family: var(--fm-label); font-size: 0.875rem; color: var(--wp--preset--color--text-2); }

.fm-kaffee {
	background: #fff;
	border-top: 4px solid var(--fm-petrol);
	border-radius: var(--fm-radius);
	padding: 2rem;
	scroll-margin-top: 2rem;
}
.fm-kaffee h3 { font-size: var(--wp--preset--font-size--xx-large); margin: 0; }
.fm-kaffee p { color: #2E2A24; }
.fm-bm-nr {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	color: var(--fm-petrol);
}
.fm-bm-claim { font-style: italic; font-size: var(--wp--preset--font-size--large); margin-top: 0.5rem !important; }
.fm-bm-tag {
	display: inline-block;
	font-family: var(--fm-label);
	font-size: 0.8125rem;
	font-weight: 500;
	padding: 0.25rem 0.75rem;
	border-radius: 999px;
	background: #E3ECEC;
	color: var(--fm-petrol);
}
.fm-spec table { border-collapse: collapse; width: 100%; font-family: var(--fm-label); font-size: 0.9375rem; }
.fm-spec td { border: 0; border-top: 1px solid var(--wp--preset--color--leinen); padding: 0.55rem 0; vertical-align: top; }
.fm-spec td:first-child { width: 8.5rem; color: var(--wp--preset--color--text-2); }

/* Aromarad */
.fm-aromarad {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.75rem;
	margin: 1.5rem 0;
}
.fm-aromarad-svg { width: 220px; height: 220px; flex: 0 0 220px; }
.fm-aromarad-svg path { transition: opacity .15s; }
.fm-aromarad-svg:hover path { opacity: .55; }
.fm-aromarad-svg path:hover { opacity: 1; }
.fm-aromarad-legende {
	list-style: none;
	margin: 0;
	padding: 0;
	flex: 1 1 200px;
	font-family: var(--fm-label);
	font-size: 0.875rem;
	line-height: 1.35;
	display: grid;
	gap: 0.45rem;
}
.fm-aromarad-legende li { display: grid; grid-template-columns: 0.8rem auto; column-gap: 0.55rem; }
.fm-ar-punkt { width: 0.8rem; height: 0.8rem; border-radius: 50%; margin-top: 0.2rem; grid-row: span 2; }
.fm-ar-name { font-weight: 600; color: var(--wp--preset--color--tinte); }
.fm-ar-text { grid-column: 2; color: var(--wp--preset--color--text-2); }

/* Kundenkarte */
.fm-schritt-nr {
	margin: 0;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--wp--preset--color--tannengruen);
	color: var(--wp--preset--color--papier);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.375rem;
}
.fm-schritt h3 { margin-top: 1rem; font-size: 1.625rem; }
.fm-app-rahmen {
	background: #fff;
	border-radius: var(--fm-radius);
	padding: 1rem;
	box-shadow: 0 1px 0 var(--wp--preset--color--leinen);
}
.fm-app-rahmen iframe { width: 100%; border: 0; display: block; }
.fm-faq .wp-block-details {
	border-top: 1px solid var(--wp--preset--color--leinen);
	padding: 1rem 0;
}
.fm-faq .wp-block-details:last-child { border-bottom: 1px solid var(--wp--preset--color--leinen); }
.fm-faq summary {
	cursor: pointer;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.375rem;
	line-height: 1.3;
	list-style-position: outside;
}
.fm-faq .wp-block-details p { margin: 0.75rem 0 0; color: #2E2A24; }

/* ---- 1.0.7: Feinschliff ---- */

/* Raster: leere Spalten zusammenschieben (z. B. 3 Schritte auf 3 Spalten) */
.wp-block-group.is-layout-grid:has(> .fm-schritt) {
	grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr)) !important;
}

/* Fragen: eigenes Plus/Minus rechts statt Dreieck links */
.fm-faq summary {
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
}
.fm-faq summary::-webkit-details-marker { display: none; }
.fm-faq summary::after {
	content: "+";
	font-family: var(--fm-label);
	font-size: 1.5rem;
	line-height: 1;
	color: var(--wp--preset--color--tannengruen);
	flex: 0 0 auto;
}
.fm-faq details[open] summary::after { content: "–"; }

/* Rahmen um eingebettete Anwendungen: kein doppelter Kasten */
.fm-app-rahmen { background: transparent; padding: 0; box-shadow: none; }

/* Mobil: Kopfleiste und Kopfbereich kompakt */
@media (max-width: 781px) {
	.fm-topbar { font-size: 0.8125rem; padding-top: 0.45rem; padding-bottom: 0.45rem; }
	.fm-topbar .wp-block-group > .wp-block-group > p:first-child { display: none; }
	.fm-topbar .wp-block-group.alignwide { gap: 0.3rem 1rem; }
	.fm-header { padding-top: 0.75rem; padding-bottom: 0.75rem; }
	.fm-header .wp-block-group.alignwide { flex-wrap: nowrap; gap: 1rem; }
	.fm-header .wp-block-navigation { flex: 0 0 auto; margin-left: auto; }
	.fm-header .wp-block-site-logo img { max-width: 200px; height: auto; }
}

/* 1.1.0: schmaler Seitenkopf für Text-Seiten, rechtliche Karten, Menü mit 7 Punkten */
.fm-kopf { padding-bottom: var(--wp--preset--spacing--40); }
.fm-legal-karte h3 { font-size: 1.25rem; }
@media (min-width: 782px) and (max-width: 1280px) {
	.fm-nav { font-size: 0.875rem; }
}
