/* =====================================================================
   0.1.61 · Design-Konsistenz Unterseiten
   Quelle: designer/konsistenz-2026-10-30/umsetzung.md (§1, P1–P11), BRAND 1.1, startseite spec.md.
   Geladen auf allen Seiten außer der Startseite (Referenz), nach theme.css.
   theme.css bleibt unverändert (Startseite lädt eine md5-gebundene Minifassung davon).
   ===================================================================== */

/* ---------- §1 Design-Tokens ---------- */
:root {
	--kv-green: #43A047; --kv-forest: #2E7D32; --kv-pale: #A5D6A7;
	--kv-blue: #0063B6;  --kv-ice: #D6E9F8;
	--kv-ink: #1A2E1F;   --kv-meta: #4A5A4E;  /* Metatext, nie Sage Grey für Text */
	--kv-mist: #EDF7EE;  --kv-hair: #D4D9D4;  --kv-amber: #F59E0B; --kv-amber-t: #FEF3E2;
	--kv-h1: 44px; --kv-h2: 28px; --kv-h3: 20px; --kv-lead: 18px; --kv-meta-fs: 13px;
	--kv-r-s: 8px; --kv-r-m: 16px; --kv-r-l: 24px; --kv-r-pill: 999px;
	--kv-container: 1120px; --kv-gutter: 32px; --kv-sec: 64px;
	/* §1 Farbersatz: #66756A → Meta (alle Verwendungen über --color-text-muted) */
	--color-text-muted: var(--kv-meta);
	/* Kurz-Tokens der Startseiten-Komponenten (kv-bedarf, kv-rank) auch auf Unterseiten */
	--ink: #1A2E1F; --mist: #EDF7EE; --meta: #4A5A4E; --hair: #D4D9D4;
}
@media (max-width: 700px) { :root { --kv-h1: 32px; --kv-h2: 24px; --kv-h3: 18px; --kv-gutter: 24px; --kv-sec: 48px; } }

/* §1 Farbersatz (fest codierte Werte aus theme.css / Plugins) */
.kv-bildcredit { font-size: var(--kv-meta-fs); color: var(--kv-meta); }                 /* #5F6E61 */
.kv-evidenz, .kv-quellen { background: var(--kv-mist); }                                 /* #F4F8F4 */
.kvf .chip.on-ok { background: var(--kv-mist); }                                         /* #EAF4EA */
.kv-portionen__btn, .kv-portionen__out { color: var(--kv-ink); border-color: var(--kv-ink); } /* #000 */
input[type="checkbox"] { accent-color: var(--kv-forest); }                               /* #000 Browser-Standard */
input[type="text"], input[type="email"], input[type="url"], input[type="search"], textarea, select { border-color: var(--kv-hair); } /* #8A968C */

/* ---------- Gemeinsame Seiten-Container (P3.3) ---------- */
.kv-archiv__inhalt.container,
.kv-seite.container,
.recipe-detail.container {
	max-width: calc(var(--kv-container) + 2 * var(--kv-gutter));
	padding-inline: var(--kv-gutter);
}
.kv-seite { padding-bottom: var(--kv-sec); }
.kv-archiv { padding-bottom: var(--kv-sec); }
.kv-archiv > .kv-archiv__inhalt + .kv-archiv__hilfe { margin-top: var(--kv-sec) !important; }

/* ---------- P2 Seitenkopf ---------- */
.kv-page-head-part { margin: 0 !important; }
.kv-page-head { max-width: var(--kv-container); margin: 0 auto; padding: 24px 0 32px; }
.kv-crumb { font-size: 13px; color: var(--kv-meta); margin: 0; }
.kv-crumb ol { margin: 0; }
.kv-page-head__eyebrow,
.kv-page-head .kv-eyebrow { display: block; font-size: 13px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--kv-forest); margin: 24px 0 8px; }
.kv-page-head__title,
.wp-block-query-title,
main h1.wp-block-post-title,
.kv-seite-mit-header .site-main > h1.wp-block-post-title { font-size: var(--kv-h1); line-height: 1.1; font-weight: 700; color: var(--kv-ink); margin: 0 0 16px; }
.kv-page-head__lead { font-size: var(--kv-lead); line-height: 1.6; max-width: 720px; margin: 0; }
.kv-page-head__lead a { color: var(--color-link); }
/* /rezepte/: Header-Bild bleibt (Inhaber-Entscheidung 1 offen), Kopf darunter ohne weiße Overlap-Box */
.kv-archiv > .kv-band + .kv-archiv__inhalt .kv-page-head { padding-top: 16px; }

/* ---------- P3 Filter & Archiv-Grid ---------- */
/* Filter-Variablen an .kvf selbst (vorher nur unter .kv-archiv__inhalt → Nieren-/Keto-Score-Archive ohne CSS) */
.kvf {
	--kvf-green:#43A047; --kvf-forest:#2E7D32; --kvf-pale:#A5D6A7; --kvf-mist:#EDF7EE; --kvf-mist2:#DBEFDC;
	--kvf-blue:#0063B6; --kvf-ice:#D6E9F8; --kvf-ink:#1A2E1F; --kvf-sage:#4A5A4E; --kvf-hair:#D4D9D4;
	--kvf-ok:#388E3C; --kvf-amber:#F59E0B; --kvf-red:#D32F2F; --kvf-off:#55635A;
	background: var(--kv-mist); border: 0; border-radius: var(--kv-r-m); padding: 16px 24px; margin: 32px 0;
}
.kvf .kvf__label { font-size: 13px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--kv-ink); }
.kvf .kvf__row { grid-template-columns: 120px 1fr; gap: 12px 16px; }
.kvf .chip {
	display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 4px 14px;
	border: 1px solid var(--kv-forest); border-radius: var(--kv-r-pill); background: #fff; color: var(--kv-forest);
	font-size: 14px; font-weight: 600; text-decoration: none;
}
.kvf .chip small { color: inherit; }
.kvf .chip:hover { background: var(--kv-mist); }
.kvf .chip[aria-pressed="true"], .kvf .chip.is-active { background: var(--kv-forest); border-color: var(--kv-forest); color: #fff; } /* 5,1:1 */
.kvf .chip:focus-visible, .kvf .badge:focus-visible, .kvf summary:focus-visible { outline: 3px solid var(--kv-forest); outline-offset: 2px; }
.kvf .badge { border: 1px solid var(--kv-forest); }
@media (max-width: 700px) {
	.kvf { padding: 16px; }
	.kvf .kvf__row { grid-template-columns: 1fr; }
}

/* P7.4 Kategorie-Kacheln: 7 in einer Reihe */
.kv-kacheln--filter .kv-kacheln__liste { display: grid; grid-template-columns: repeat(7, 1fr); gap: 16px; }
@media (max-width: 1023px) { .kv-kacheln--filter .kv-kacheln__liste { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 700px) {
	.kv-kacheln--filter .kv-kacheln__liste { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 40%; overflow-x: auto; scroll-snap-type: x mandatory; }
	.kv-kacheln--filter .kv-kacheln__liste > li { scroll-snap-align: start; }
}
.kv-kacheln--filter .kv-kachel img { border-radius: var(--kv-r-m); }
.kv-kacheln--filter .kv-kachel__label { font-size: 14px; font-weight: 600; }
.kv-kacheln--filter .kv-kachel__anzahl { font-size: 13px; color: var(--kv-meta); }
.kv-kachel.is-active img, .kv-kachel[aria-current="page"] img { outline: 3px solid var(--kv-forest); outline-offset: 2px; }
.kv-kachel:focus-visible { outline: 3px solid var(--kv-forest); outline-offset: 2px; }

/* P5.1 Pagination global */
.wp-block-query-pagination { gap: 8px; margin-top: 32px; }
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	display: inline-block; border: 1px solid var(--kv-forest); border-radius: var(--kv-r-pill);
	padding: 6px 16px; color: var(--kv-forest); text-decoration: none; font-weight: 600; line-height: 1.4;
}
.wp-block-query-pagination .page-numbers.current { background: var(--kv-forest); color: #fff; }
.wp-block-query-pagination .page-numbers.dots { border-color: transparent; }
.wp-block-query-pagination a:hover { background: var(--kv-mist); }
.wp-block-query-pagination a:focus-visible { outline: 3px solid var(--kv-forest); outline-offset: 2px; }

/* ---------- P7 Karten ---------- */
.recipe-card { display: flex; flex-direction: column; }
.recipe-card__body { display: flex; flex-direction: column; flex: 1 1 auto; }
.recipe-card__title { font-size: var(--kv-h3); line-height: 1.3; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.recipe-card__footer, .recipe-card .wp-block-buttons, .recipe-card__cta { margin-top: auto !important; }
.recipe-card__meta, .recipe-card__sub, .kv-post-card time, .chip--time-note { font-size: var(--kv-meta-fs); color: var(--kv-meta); }
.kv-karte__eyebrow { font-size: 13px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--kv-forest); margin: 0 0 4px; }
/* P7.5 Blog-Karten: „Weiterlesen“ als Textlink */
.kv-post-card .recipe-card__cta {
	align-self: flex-start; min-width: 0; min-height: 0; padding: 0; border: 0; background: none; border-radius: 0;
	color: var(--kv-forest); font-size: 16px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px;
}
.kv-post-card .recipe-card__cta:hover { color: var(--kv-ink); background: none; }

/* P7.6 Artikel */
.kv-beitrag-header img { border-radius: var(--kv-r-l); }
.kv-toc__titel { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .02em; }
.kv-beitrag__inhalt sup a, .kv-quellen sup a { font-size: 13px; }
/* P7.7 Meta-Pillen: Mist statt Pale, Ink 13/600 (P11: auch Zutaten-Chips) */
.kv-chip, .chip--wissen { background: var(--kv-mist); color: var(--kv-ink); font-size: 13px; font-weight: 600; }

/* ---------- P4 Einzelrezept ---------- */
.recipe-detail.section { padding-top: 24px; }
.recipe__head {
	display: grid; grid-template-columns: 6fr 5fr; gap: 32px; align-items: center;
	max-width: var(--kv-container); margin: 0 auto; padding: 24px 0 48px;
}
.recipe__head-text > * { margin-top: 0; }
.recipe__head .recipe__hero { max-width: none; margin: 0 !important; }
.recipe__head .wp-post-image { width: 100%; height: auto !important; aspect-ratio: 4/3 !important; object-fit: cover; border-radius: var(--kv-r-l); }
.recipe__title { font-size: var(--kv-h1) !important; line-height: 1.1; }
.recipe__head .kv-beschreibung { margin: 0 0 24px; }
.recipe__head .kv-beschreibung p { font-size: var(--kv-lead); line-height: 1.6; }
.recipe__head .kv-cv--gross { display: none; } /* ersetzt durch Pille in den Eckdaten (P4.7) */
@media (max-width: 1023px) {
	.recipe__head { grid-template-columns: 1fr; gap: 24px; padding-bottom: 32px; }
	.recipe__head .recipe__hero { order: -1; }
}
/* P4.7 Nachgekocht-Pille */
.kv-meta .kv-ng-pille-li { list-style: none; display: inline-flex; }
.kv-ng-pille {
	display: inline-flex; align-items: center; background: var(--kv-forest); color: #fff; font-size: 13px; font-weight: 600;
	border-radius: var(--kv-r-pill); padding: 4px 12px; text-decoration: none;
}
.kv-ng-pille:hover { background: var(--kv-ink); color: #fff; }
.kv-ng-pille:focus-visible { outline: 3px solid var(--kv-forest); outline-offset: 2px; }

/* P4.2 Abschnittstitel */
.recipe .kv-section-title {
	font-size: 24px; line-height: 1.2; font-weight: 700; text-transform: none; letter-spacing: 0; color: var(--kv-ink);
	display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0 0 16px;
}
.recipe .kv-section-title::before { content: ""; flex: none; width: 12px; height: 12px; background: var(--kv-green); transform: rotate(45deg); border-radius: 2px; }
.recipe .kv-section-title > .kv-ico { display: none; }
.recipe .kv-section-title__zusatz { font-size: 18px; font-weight: 400; }
@media (max-width: 700px) { .recipe .kv-section-title { font-size: 22px; } }
.kv-verwandte h2, .kv-gallery__title, .kv-kommentare h2 { font-size: var(--kv-h2); }

/* P4.3 Partnerlink-Kasten (steht im Plugin 0.6.x bereits unter der Zutatenliste) */
.kv-partner-hinweis {
	background: #fff; border: 1px solid var(--kv-hair); border-left: 6px solid var(--kv-green); border-radius: var(--kv-r-m);
	padding: 16px 24px; font-size: 14px; line-height: 1.6; color: var(--kv-ink); margin-top: 16px;
}
.kv-partner-hinweis > p:first-child { margin: 0 0 4px; }
.kv-partner-hinweis > p:first-child strong,
.kv-partner-hinweis__title { display: block; font-size: 13px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--kv-meta); }

/* P4.4 Plus-/Knuspr-Hinweis = Info-Kasten K2, Button als Textlink (Funktion bleibt) */
.kv-shop-intro { background: var(--kv-ice); border-left: 6px solid var(--kv-blue); border-radius: var(--kv-r-m); padding: 16px 24px; color: var(--kv-ink); }
.kv-shop-intro .kv-shop-intro__zu {
	min-height: 44px; padding: 0; border: 0; background: none; color: var(--kv-ink); font-weight: 600;
	text-decoration: underline; text-underline-offset: 3px;
}
.kv-shop-intro .kv-shop-intro__zu:hover { background: none; color: var(--kv-blue); }

/* P4.5 Verwandte: 3 Karten */
.kv-verwandte.kv-verwandte--3 .kv-verwandte__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; list-style: none; padding: 0; }
.kv-verwandte--3 .kv-verwandte__grid > li { display: flex; }
.kv-verwandte--3 .kv-verwandte__grid > li > .recipe-card { width: 100%; }
.kv-verwandte.kv-verwandte--3 .recipe-card__title, .kv-verwandte.kv-verwandte--3 .recipe-card__title a { font-size: var(--kv-h3) !important; -webkit-line-clamp: 3; }
/* 0.1.62: im Artikel aus der Textspalte heraus über beide Spalten (Textspalte + Inhaltsverzeichnis). */
.kv-beitrag__body > .kv-verwandte--3 { grid-column: 1 / -1; max-width: var(--kv-container); width: 100%; }
@media (min-width: 701px) and (max-width: 1023px) { .kv-beitrag__body > .kv-verwandte--3 { width: min(var(--kv-container), calc(100vw - 2 * var(--kv-gutter))); } }
.kv-verwandte__blog { font-size: 16px; margin: 24px 0 0; }
.kv-verwandte__blog a { color: var(--color-link); font-weight: 600; }
@media (max-width: 700px) {
	.kv-verwandte.kv-verwandte--3 .kv-verwandte__grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 78%; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; padding-bottom: 8px; }
	.kv-verwandte--3 .kv-verwandte__grid > li { scroll-snap-align: start; }
}

/* P4.6 Kommentarformular (Rezepte + Artikel) */
.comments-area, #respond {
	box-sizing: border-box; max-width: var(--kv-container); margin: 0 auto var(--kv-sec);
	background: var(--kv-mist); border-radius: var(--kv-r-l); padding: 32px;
}
.kv-kommentare { max-width: var(--kv-container); margin-inline: auto; }
#reply-title { font-size: var(--kv-h2); font-weight: 700; line-height: 1.2; margin: 0 0 8px; }
#respond label { font-size: 14px; font-weight: 600; }
#respond input[type="text"], #respond input[type="email"], #respond input[type="url"], #respond textarea {
	box-sizing: border-box; width: 100%; max-width: 720px; border: 1px solid var(--kv-hair); border-radius: var(--kv-r-s);
	background: #fff; padding: 12px; font: inherit; color: var(--kv-ink);
}
#respond :is(input, textarea):focus-visible { outline: 3px solid var(--kv-forest); outline-offset: 2px; }
#respond input[type="checkbox"] { accent-color: var(--kv-forest); width: 18px; height: 18px; }
#respond .submit, #respond input[type="submit"] { font-size: 16px; padding: 12px 24px; border-radius: var(--kv-r-pill); background: var(--kv-forest); color: #fff; border: 0; }
#respond input[type="submit"]:hover { background: var(--kv-ink); }
#respond .kv-hp { position: absolute !important; left: -9999px !important; }
.comment-list .comment, .kv-kommentar { border-bottom: 1px solid var(--kv-hair); padding: 16px 0; }
.comment-meta, .wp-block-comment-date { font-size: 13px; color: var(--kv-meta); }
@media (max-width: 700px) { #respond { padding: 24px 16px; } }

/* ---------- P5 Suche & 404 ---------- */
.kv-suchfeld { max-width: 720px; margin: 0 0 32px; }
.kv-suchfeld .wp-block-search__label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 8px; }
.kv-suchfeld .wp-block-search__inside-wrapper { display: flex; gap: 8px; border: 0; padding: 0; }
.kv-suchfeld .wp-block-search__input { flex: 1; min-width: 0; border: 1px solid var(--kv-hair); border-radius: var(--kv-r-s); background: #fff; padding: 12px; font: inherit; color: var(--kv-ink); }
.kv-suchfeld .wp-block-search__input:focus-visible { outline: 3px solid var(--kv-forest); outline-offset: 2px; }
.kv-suchfeld .wp-block-search__button { margin: 0; border: 0; border-radius: var(--kv-r-pill); background: var(--kv-forest); color: #fff; font: inherit; font-weight: 600; padding: 12px 24px; cursor: pointer; }
.kv-suchfeld .wp-block-search__button:hover { background: var(--kv-ink); }
.kv-suchfeld .wp-block-search__button:focus-visible { outline: 3px solid var(--kv-forest); outline-offset: 2px; }
.kv-suche__grid { gap: 24px; }
.kv-suche__leer p { font-size: var(--kv-lead); }
.kv-404 .kv-bedarf { padding: 0 !important; max-width: none; margin: 32px 0; }
.kv-404 .kv-bedarf .kv-sh h2 { font-size: var(--kv-h2); margin: 0 0 16px; }
.kv-404__weiter { margin: 32px 0 0; }

/* ---------- P6 /nachgekocht/ ---------- */
.kv-nachgekocht-seite__inhalt > p:first-child { font-size: var(--kv-lead); line-height: 1.6; max-width: 720px; margin-top: 0; }
.kv-nachgekocht-seite .kv-rank--seite { margin: 0 0 32px; background: var(--kv-mist); border-radius: var(--kv-r-m); padding: 16px; }
@media (min-width: 701px) { .kv-nachgekocht-seite .kv-rank--seite { grid-template-rows: none; grid-auto-flow: row; padding: 24px; } }
.kv-nachgekocht-seite .kv-rank--seite .kv-rank__item { display: flex; } /* Top 10 auch mobil */
.kv-nachgekocht-seite .kv-ng__liste { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; list-style: none; padding: 0; }
@media (max-width: 1023px) { .kv-nachgekocht-seite .kv-ng__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .kv-nachgekocht-seite .kv-ng__liste { grid-template-columns: 1fr; } }
.kv-nachgekocht-seite .kv-ng__eintrag { display: flex; flex-direction: column; }
.kv-nachgekocht-seite .kv-ng__eintrag > .recipe-card { flex: 1; }
.kv-ng__tab:focus-visible { outline: 3px solid var(--kv-forest); outline-offset: 2px; }

/* ---------- P8 Inhaltsseiten ---------- */
.page .entry-content h2 { font-size: 24px; line-height: 1.2; font-weight: 700; margin: 48px 0 16px; }
/* 0.1.62: Kartentitel schlagen die Inhaltsseiten-H2-Regel (/nachgekocht/). */
.page .entry-content .recipe-card__title, .kv-nachgekocht-seite .recipe-card__title { font-size: var(--kv-h3); font-weight: 600; line-height: 1.3; margin: 0; }
.page .entry-content h3 { font-size: var(--kv-h3); margin: 32px 0 8px; }
.kv-leitfaden .kv-beitrag__inhalt h2 { font-size: var(--kv-h2); } /* Leitfaden bleibt 28 */
.kv-seite-header img { border-radius: var(--kv-r-l); }
/* P8.3 Autorenkasten Über uns */
.kv-autor { background: var(--kv-mist); border-radius: var(--kv-r-m); padding: 24px; margin: 0 0 32px; }
.kv-autor__name { font-size: 20px; font-weight: 700; line-height: 1.3; margin: 0; color: var(--kv-ink); }
.kv-autor__rolle { font-size: 13px; color: var(--kv-meta); margin: 4px 0 0; }
.kv-autor-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
/* P8.4 Tabellen im Leitfaden-/Artikel-Template */
.kv-beitrag .wp-block-table table { border-collapse: collapse; }
.kv-beitrag .wp-block-table :is(th, td) { border: 1px solid var(--kv-hair); }
.kv-beitrag .wp-block-table thead th { background: var(--kv-forest); color: #fff; border-color: var(--kv-forest); }
.kv-beitrag .wp-block-table tbody tr:nth-child(even) { background: var(--kv-mist); }
.kv-beitrag .wp-block-table thead { border-bottom: 0; }
/* P8.7 Kontaktformular wie P4.6 */
.page .entry-content form :is(input[type="text"], input[type="email"], textarea) { border: 1px solid var(--kv-hair); border-radius: var(--kv-r-s); padding: 12px; font: inherit; }
.page .entry-content form :is(input, textarea):focus-visible { outline: 3px solid var(--kv-forest); outline-offset: 2px; }

/* ---------- P10 Hinweisleisten ---------- */
footer.site-footer-part { background: transparent; }

/* ---------- P11 Sonstiges ---------- */
.kv-filterhilfe { background: var(--kv-ice); border-left: 6px solid var(--kv-blue); border-radius: var(--kv-r-m); padding: 32px; color: var(--kv-ink); }
.kv-filterhilfe > h2 { font-size: var(--kv-h2); margin-top: 0; }
@media (max-width: 700px) { .kv-filterhilfe { padding: 24px 16px; } }
/* §1 Farbersatz im Plugin-CSS (kochhilfe.css 0.6.x): leere Bewertungssterne #66756A → Meta */
.kv-bew__sterne .kv-bew__stern { color: var(--kv-meta); }
.kv-bewertung .kv-bew__sterne:hover .kv-bew__stern:hover ~ .kv-bew__stern { color: var(--kv-meta); }

/* 0.1.67 „Was ist neu?“ rechtsbündig in fester Zeile über dem Rezeptbild (kein Overlay, kein CLS) */
.recipe__hero-col { min-width: 0; }
.kv-tour-slot { height: 28px; margin: 0 0 8px; display: flex; justify-content: flex-end; align-items: center; }
.kv-tour-slot .kv-tour-neu { margin: 0 !important; height: 28px; display: flex; align-items: center; }
.kv-tour-slot .kv-tour-neu button { min-height: 28px !important; height: 28px; padding: 0 !important; font-size: 14px !important; line-height: 20px; white-space: nowrap; }
.kv-tour-slot .kv-tour-neu button:focus-visible { outline: 3px solid var(--kv-forest, #2E7D32); outline-offset: 2px; border-radius: 4px; }
@media (max-width: 1023px) { .recipe__head .recipe__hero-col { order: -1; } }
