/* ============================================================
   katzen-ernaehrung.com — Sonnenplatz auf Beitraegen, Seiten
   und Kategorien. Ergaenzt ke-hookfree.css, ersetzt sie nicht.
   Stand 20.08.2026. Richtung: katzen-ernaehrung/DESIGN.md
   ============================================================ */

/* ---------- Schrift: Apfel Grotezk, Collletttivo, OFL-1.1 ----------
   Dateien lokal unter uploads/ks-2026/fonts/, Lizenztext daneben.
   Kein Google, kein Schrift-CDN. */
@font-face{font-family:"Platz";src:url("/wp-content/uploads/ks-2026/fonts/ApfelGrotezk-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Platz";src:url("/wp-content/uploads/ks-2026/fonts/ApfelGrotezk-Mittel.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Platz";src:url("/wp-content/uploads/ks-2026/fonts/ApfelGrotezk-Fett.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Platz";src:url("/wp-content/uploads/ks-2026/fonts/ApfelGrotezk-Satt.woff2") format("woff2");font-weight:800;font-display:swap}

/* ---------- Die Tokens umdefinieren ----------
   Fast alle Farbwerte im Bestand stehen als var(--ke-token, #fallback).
   Ein neues :root faerbt deshalb die ganze Site um, ohne dass eine der
   rund 90 Einzelregeln angefasst werden muss. */
:root{
  --ke-primary:       #ad4415;   /* Zinnober, war Teal   — 5,7:1 auf Weiss */
  --ke-primary-dark:  #8f3810;
  --ke-primary-light: #f7e6da;   /* war im Bestand GAR NICHT definiert */
  --ke-accent:        #3e6b4a;   /* Laub, war Koralle */
  --ke-gold:          #e0a127;   /* Honig, war Gold */
  --ke-navy:          #241c14;   /* Umbra, war Navy */
  --ke-cream:         #fbf4ea;   /* Papier, war Creme */
  --ke-purple:        #8a5a2b;   /* Nussbraun, war Violett */
  --ke-font: "Platz", ui-sans-serif, system-ui, -apple-system, sans-serif;

  --ks-tinte:        #241c14;
  --ks-tinte-leise:  #5c4b3a;
  --ks-linie:        #e3d5c0;
  --ks-mass:         34rem;      /* Lesespalte, in Apfel Grotezk rund 70 Zeichen */
}

body{ font-family: var(--ke-font) }

/* Browser-Flaechen gehoeren zum Entwurf, nicht dem Browser */
::selection{ background:#e9a227; color:#241c14 }
:focus-visible{ outline:3px solid #ad4415; outline-offset:3px }
html{ scrollbar-color:#c8b49a #fbf4ea }

/* ============================================================
   BEITRAG
   ============================================================ */
.single-post .site-content,
.archive.category .site-content,
body:not(.home) .site-content{ background:var(--ke-cream) }

/* ⛔⛔ NIE `.page:not(.home)` schreiben. GeneratePress setzt die Klasse `page`
   NICHT nur auf den <body>, sondern auch auf das <article>. Das <article>
   traegt kein `home`, also greift die Regel auf der Startseite mit — und mit
   Spezifitaet (0,3,1) schlaegt sie dort jede eigene Knopfregel (0,2,0).
   Am 20.08.2026 hat genau das den Text im Hero-Knopf unsichtbar gemacht:
   Zinnober auf Zinnober. Richtig ist `body:not(.home)`. */

/* Der Kopf war ein Navy-Verlauf mit zwei farbigen Lichthoefen.
   Beides sind Muster, die impeccable als Verraeter fuehrt. Jetzt eine
   ruhige Umbra-Flaeche mit einer Honiglinie als Abschluss. */
.single-post .entry-header{
  background:var(--ks-tinte);
  border-radius:20px 20px 0 0;
  padding:3rem 3rem 2.5rem;
  border-bottom:5px solid #e9a227;
}
.single-post .entry-header::before{ display:none }
.single-post .entry-title{
  font-weight:800; letter-spacing:-.03em; line-height:1.1;
  font-size:clamp(1.9rem,4vw,2.75rem);
}
/* ⛔⛔ .entry-meta STEHT ZWEIMAL im Beitrag, auf entgegengesetztem Grund:
   <div class="entry-meta">    = Zeile unter der Ueberschrift, auf dunklem Umbra
   <footer class="entry-meta"> = Kategorie/Navigation am Fuss, auf hellem Papier
   Ohne das Tag davor faerbt man beide gleich. Genau das war hier der Fall:
   blasser Honig auf Papier = 1,3:1, am 20.08.2026 an den Pixeln gemessen.
   Der Fehler war unsichtbar, weil der Kopf richtig aussah. */
.single-post div.entry-meta{ color:#c9b8a4; font-size:1rem; margin-top:1rem }
.single-post div.entry-meta a{ color:#f0d9a8; text-decoration-thickness:.08em; text-underline-offset:.18em }

.single-post .inside-article{ max-width:880px }
.single-post .entry-content{
  background:#fff;
  padding:3rem 3.25rem 3.5rem;
  border-radius:0 0 20px 20px;
  box-shadow:0 18px 44px -28px rgba(36,20,8,.45);
}

/* Die Lesespalte lag bei rund 116 Zeichen. Der Fliesstext bekommt sein Mass
   und wird im Kasten ZENTRIERT, sonst steht rechts ein leeres Drittel.
   Bilder und Tabellen duerfen weiter die volle Breite nutzen. */
.single-post .entry-content > p,
.single-post .entry-content > ul,
.single-post .entry-content > ol,
.single-post .entry-content > h2,
.single-post .entry-content > h3,
.single-post .entry-content > h4,
.single-post .entry-content > blockquote{ max-width:var(--ks-mass); margin-inline:auto }

.single-post .entry-content h2{
  font-weight:800; letter-spacing:-.028em; line-height:1.15;
  color:var(--ks-tinte);
  border-bottom:3px solid #e9a227;
  padding-bottom:.65rem;
  margin:3rem auto 1.1rem;
  max-width:var(--ks-mass);
}
.single-post .entry-content h3{
  font-weight:700; letter-spacing:-.02em; color:var(--ks-tinte);
  font-size:1.375rem; margin:2.25rem 0 .75rem;
}
.single-post .entry-content p,
.single-post .entry-content li{ color:#2a231b; font-size:1.125rem; line-height:1.72 }
.single-post .entry-content a{
  color:#ad4415; text-decoration-thickness:.08em; text-underline-offset:.2em;
}
.single-post .entry-content a:hover{ color:#8f3810 }
.single-post .entry-content strong{ color:var(--ks-tinte); font-weight:700 }

/* Aufzaehlungen: der blaue Rautenpunkt war eine Fremdfarbe */
.single-post .entry-content ul{ list-style:none; padding-left:0 }
.single-post .entry-content ul > li{ position:relative; padding-left:1.5rem; margin-bottom:.5rem }
.single-post .entry-content ul > li::before{
  content:""; position:absolute; left:0; top:.72em;
  width:8px; height:8px; border-radius:50%; background:#ad4415;
}
.single-post .entry-content ol{ padding-left:1.35rem }
.single-post .entry-content ol > li{ margin-bottom:.5rem }
.single-post .entry-content ol > li::marker{ color:#ad4415; font-weight:700 }

/* Tabellen */
.single-post .entry-content table{ border-collapse:collapse; width:100%; margin:2rem 0 }
.single-post .entry-content th{
  background:var(--ks-tinte); color:#fffdfa; text-align:left;
  font-weight:700; letter-spacing:.01em;
}
.single-post .entry-content th,
.single-post .entry-content td{ padding:.85rem 1rem; border-bottom:1px solid var(--ks-linie) }
.single-post .entry-content tbody tr:nth-child(even){ background:#fdf8f1 }

/* Autorenkasten, Hinweis, verwandte Beitraege */
.ke-native-author,
.ke-native-disclaimer,
.ke-native-related{
  max-width:1000px; margin-inline:auto;
  background:#fff; border-radius:18px;
  box-shadow:0 14px 36px -26px rgba(36,20,8,.45);
}
.ke-native-disclaimer{
  background:#fdf1dd; border-left:0; border-top:4px solid #e9a227;
  color:#4a3407;
}
.ke-native-author h2,
.ke-native-related h2{ font-weight:800; letter-spacing:-.025em; color:var(--ks-tinte) }
.ke-native-author__avatar{ background:#ad4415 }

/* ============================================================
   KATEGORIE-ARCHIV
   ============================================================ */
.archive.category .page-header,
.archive.category .ke-cat-hero{
  background:var(--ks-tinte); color:#fffdfa;
  border-radius:20px; padding:2.75rem 3rem;
  border-bottom:5px solid #e9a227;
}
.archive.category .page-title,
.archive.category .ke-cat-hero h1{
  font-weight:800; letter-spacing:-.03em; line-height:1.1; color:#fffdfa;
}
.archive.category .taxonomy-description,
.archive.category .ke-cat-hero p{ color:#d6c5b0; max-width:var(--ks-mass) }

.archive.category .site-main article,
.archive.category .ke-cat-card{
  background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:0 16px 40px -28px rgba(36,20,8,.5);
  transition:transform .2s cubic-bezier(.2,.75,.3,1), box-shadow .2s ease;
}
.archive.category .site-main article:hover,
.archive.category .ke-cat-card:hover{
  transform:translateY(-4px);
  box-shadow:0 26px 52px -26px rgba(36,20,8,.6);
}
.archive.category .entry-title a{ color:var(--ks-tinte); font-weight:700; letter-spacing:-.02em }
.archive.category .entry-title a:hover{ color:#ad4415 }
.archive.category .entry-summary p{ color:var(--ks-tinte-leise) }

/* ============================================================
   SEITEN (Impressum, Datenschutz, Ueber Nina)
   ============================================================ */
body.page:not(.home) .entry-content{ }
body.page:not(.home) .entry-content > p,
body.page:not(.home) .entry-content > ul,
body.page:not(.home) .entry-content > ol,
body.page:not(.home) .entry-content > h2,
body.page:not(.home) .entry-content > h3{ max-width:var(--ks-mass); margin-inline:auto }
body.page:not(.home) .entry-title,
body.page:not(.home) .entry-content h2{
  font-weight:800; letter-spacing:-.028em; color:var(--ks-tinte);
}
body.page:not(.home) .entry-content a{ color:#ad4415 }

/* ============================================================
   Schmale Fenster
   ============================================================ */
@media (max-width:768px){
  .single-post .entry-header{ padding:2rem 1.35rem 1.75rem; border-radius:16px 16px 0 0 }
  .single-post .entry-content{ padding:1.75rem 1.35rem 2.25rem; border-radius:0 0 16px 16px }
  .single-post .entry-content h2{ margin-top:2.25rem }
  .archive.category .page-header,
  .archive.category .ke-cat-hero{ padding:1.75rem 1.35rem; border-radius:16px }
}

/* Absaetze, die im Text mit einem Bullet-Glyph begannen (siehe ks-site-2026.php).
   Statt eines blauen Fremdzeichens ein gezeichneter Punkt in Zinnober. */
.single-post .entry-content p.ks-punkt,
body.page:not(.home) .entry-content p.ks-punkt{
  position:relative; padding-left:1.6rem; margin:0 auto .55rem; max-width:var(--ks-mass);
}
.single-post .entry-content p.ks-punkt::before,
body.page:not(.home) .entry-content p.ks-punkt::before{
  content:""; position:absolute; left:.25rem; top:.7em;
  width:8px; height:8px; border-radius:50%; background:#ad4415;
}

/* Aus <br>-Absaetzen gewandelte Listen (siehe ks-site-2026.php) */
.single-post .entry-content ul.ks-liste,
body.page:not(.home) .entry-content ul.ks-liste{
  list-style:none; padding-left:0; margin:0 auto 1.4rem; max-width:var(--ks-mass);
}
.single-post .entry-content ul.ks-liste > li,
body.page:not(.home) .entry-content ul.ks-liste > li{
  position:relative; padding-left:1.6rem; margin-bottom:.55rem;
}
.single-post .entry-content ul.ks-liste > li::before,
body.page:not(.home) .entry-content ul.ks-liste > li::before{
  content:""; position:absolute; left:.25rem; top:.72em;
  width:8px; height:8px; border-radius:50%; background:#ad4415;
}

/* ============================================================
   Fuss und Kategorie-Kopf: die alten Navy-Verlaeufe stehen
   hartkodiert im Bestand, nicht als Token. Sie bleiben deshalb
   beim Umfaerben stehen — und Zinnober auf Navy ergibt 1,7:1.
   Gemessen am 20.08.2026 an der Live-Seite.
   ============================================================ */
.ke-footer{
  background:linear-gradient(180deg,#241c14 0%,#1a140e 100%);
  color:#c9bcab;                                   /* 9,0:1 */
}
.ke-footer a{ color:#f0c265 }                      /* 10,1:1 */
.ke-footer a:hover{ color:#ffffff }
.ke-footer-col h4{ color:#fffdfa }
.ke-footer-col h4::after{ background:#e9a227 }
.ke-footer-col a{ color:#e6d8c6 }
.ke-footer-col a:hover{ color:#f0c265 }
.ke-footer-tip-text{ color:#c9bcab }               /* war 3,9:1 */
.ke-footer-tip-text strong{ color:#f0c265 }
.ke-footer-tip{ background:rgba(233,162,39,.10) }
.ke-footer-stat-label{ color:#c9bcab }             /* war 2,2:1 */
.ke-footer-copy,
.ke-footer-legal a{ color:#c9bcab }
.ke-footer-legal a:hover{ color:#f0c265 }
.ke-footer-cta{ background:linear-gradient(135deg,#ad4415,#8f3810) }
.ke-footer-cta-btn{ background:#fffdfa; color:#8f3810 }
.ke-footer-logo-icon{ background:linear-gradient(135deg,#ad4415,#8f3810) }
.ke-scroll-top{ background:linear-gradient(135deg,#ad4415,#8f3810) }

/* Der Kategorie-Kopf trug zwei farbige Lichthoefe in Teal und Koralle.
   Beides sind Muster, die als Verraeter gelten, und beide passen nicht
   mehr zur Palette. Jetzt eine ruhige Umbra-Flaeche. */
.archive.category .page-header{
  background:#241c14;
  border-bottom:5px solid #e9a227;
  box-shadow:0 18px 44px -28px rgba(36,20,8,.5);
  color:#fffdfa;
}
.archive.category .page-header p,
.archive.category .page-header .taxonomy-description{ color:#d6c5b0 }

/* Restliche Graustufen, die gegen Weiss zu blass waren (2,3:1).
   ⛔ NICHT .single-post .entry-meta aufnehmen — die steht auf dem dunklen
   Beitragskopf und wurde dadurch auf 2,8:1 gedrueckt. Am 20.08. passiert. */
.archive.category .entry-meta,
.ke-native-related time,
.entry-content time,
.entry-content .wp-caption-text{ color:#6b6257 }   /* 6,0:1 auf Weiss */

/* Die restlichen Fusstexte standen auf #8fa5af und #5a7a84, beide fuer den
   alten Navy-Grund gedacht. Auf Umbra ergaben sie 1,2 bis 2,8:1.
   Werte unten an echten Pixeln nachgerechnet. */
.ke-footer-desc{ color:#c9bcab }                   /* 9,0:1 */
.ke-footer-stat-num{ color:#f0c265 }               /* 10,1:1 */
.ke-footer-stat-label{ color:#c9bcab }
.ke-footer-logo-text{ color:#fffdfa }
.ke-footer-logo-text span{ color:#f0c265 }
.ke-footer-tip{ background:rgba(233,162,39,.12) }
.ke-footer-tip-text{ color:#d6c8b6 }               /* 10,2:1 */
.ke-footer-tip-text strong{ color:#f0c265 }
.ke-footer-bottom{ color:#c9bcab; border-top-color:rgba(255,253,250,.12) }
.ke-footer-legal a{ color:#c9bcab }
.ke-footer-legal a:hover{ color:#f0c265 }

/* ============================================================
   Bezugsquellen-Baustein unter Markentests (ks-bezug-2026.php)

   ⛔⛔ SPEZIFITAET: Der Baustein sitzt INNERHALB von .entry-content. Dort gelten
   bereits `.single-post .entry-content a` (0,2,1) und `... h2` (0,2,1). Eine
   Regel wie `.ks-bezug-haendler` (0,1,0) verliert dagegen — am 20.08.2026 war
   der Haendler-Knopf deshalb zinnober auf zinnober, also leer.
   Jede Regel hier traegt deshalb den vollen Pfad.
   ============================================================ */
.single-post .entry-content .ks-bezug{
  max-width:none; margin:2.5rem 0 0;
  background:#fff; border-radius:20px; padding:2rem 2.25rem 1.75rem;
  border-top:5px solid #e9a227;
  box-shadow:0 18px 44px -30px rgba(36,20,8,.45);
}
.single-post .entry-content .ks-bezug .ks-bezug-kennung{
  margin:0 0 .35rem; max-width:none; font-size:.875rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:#8a6a2b;
}
.single-post .entry-content .ks-bezug h2{
  margin:0 0 1.25rem; max-width:none; font-weight:800; letter-spacing:-.028em;
  line-height:1.15; font-size:1.625rem; color:var(--ks-tinte);
  border-bottom:0; padding-bottom:0;
}
.single-post .entry-content .ks-bezug-wege{ display:grid; grid-template-columns:1fr 1fr; gap:1rem }
.single-post .entry-content a.ks-bezug-weg{
  display:flex; flex-direction:column; gap:.15rem;
  padding:1.15rem 1.35rem; border-radius:14px; text-decoration:none;
  transition:transform .18s cubic-bezier(.2,.75,.3,1), box-shadow .18s ease;
}
.single-post .entry-content a.ks-bezug-weg:hover{ transform:translateY(-3px) }
.single-post .entry-content a.ks-bezug-hersteller{ background:#f4ece1; color:#241c14 }
.single-post .entry-content a.ks-bezug-hersteller:hover{ color:#241c14; box-shadow:0 14px 30px -18px rgba(36,20,8,.55) }
.single-post .entry-content a.ks-bezug-haendler{ background:#ad4415; color:#fffdfa }
.single-post .entry-content a.ks-bezug-haendler:hover{ background:#8f3810; color:#fffdfa; box-shadow:0 14px 30px -16px rgba(173,68,21,.8) }
.single-post .entry-content .ks-bezug-rolle{ font-size:.875rem; letter-spacing:.08em; text-transform:uppercase; opacity:.82 }
.single-post .entry-content .ks-bezug-ziel{ font-weight:700; font-size:1.1875rem; line-height:1.3 }
.single-post .entry-content .ks-bezug-note{ font-size:.875rem; line-height:1.45; opacity:.88 }
.single-post .entry-content .ks-bezug .ks-bezug-zusatz{
  margin:1.1rem 0 0; max-width:none; font-size:.9375rem; line-height:1.55; color:var(--ks-tinte-leise);
}
.single-post .entry-content .ks-bezug .ks-bezug-fuss{
  margin:1.25rem 0 0; max-width:none; padding-top:1rem; border-top:1px solid var(--ks-linie);
  font-size:.875rem; line-height:1.55; color:var(--ks-tinte-leise);
}
@media (max-width:768px){
  .single-post .entry-content .ks-bezug{ padding:1.5rem 1.35rem 1.35rem; border-radius:16px; margin-top:1.75rem }
  .single-post .entry-content .ks-bezug-wege{ grid-template-columns:1fr }
}

/* ⛔ Die Icon-Grundregeln standen hier als KOPIE und sind am 20.08.2026
   entfernt worden: sie liefen von der Quelle weg (feste Farbe statt --ks-f),
   der gruene Haken wurde dadurch rot. Sie stehen jetzt ausschliesslich in
   ks-icons-2026.php, erzeugt von icons-bauen.py. */

/* Aufzaehlungspunkt im Fluss — nach einem <br> oder in einer Tabellenzelle,
   wo es keinen Listenmarker gibt, den man ersetzen koennte. */
.entry-content .ks-punkt-i{
  display:inline-block; width:.42em; height:.42em; border-radius:50%;
  background:#ad4415; vertical-align:.16em; margin-right:.55em;
}

/* Navi-Icon-Kacheln: Petrol, Koralle und Violett stammen aus dem alten Design
   und stehen seit 20.08.2026 unter Tabler-Icons. Auf die Palette gezogen.
   ⚠ Nur Farbe — Groesse und Layout bleiben beim Bestand. */
.ke-dd-icon.teal  { background:rgba( 62,107, 74,.10); color:#33593d }
.ke-dd-icon.coral { background:rgba(173, 68, 21,.10); color:#8f3610 }
.ke-dd-icon.gold  { background:rgba(233,162, 39,.18); color:#8a5a0c }
.ke-dd-icon.purple{ background:rgba( 36, 28, 20,.08); color:#5a4a38 }
.ke-dd-icon svg   { width:18px; height:18px }

/* ============================================================
   Antwort-Kapsel (`ks-kapsel`) — die 40–80 Wörter, die eine KI
   zitiert. Steht als erster Absatz im Beitrag, vor dem ersten H2.

   ⛔ BEWUSST KEIN KASTEN. Ein getönter Kasten mit Rundung und
      Schatten ist genau das Muster, das Frank als „KI-gebaut"
      erkennt. Hier trägt nur eine Kante und der Schriftgrad.
   ⛔ Und bewusst KEIN Link darin — ein zitierter Absatz muss
      allein stehen können (SEO-Leitfaden, Rangfolge Punkt 2).
   ============================================================ */
.single-post .entry-content > p.ks-kapsel:first-child,
.single-post .entry-content p.ks-kapsel{
  font-size:1.24rem; line-height:1.62; color:#241c14;
  border-left:3px solid #ad4415;
  padding:.1rem 0 .1rem 1.15rem;
  /* ⚠ `margin:0 0 …` liess die Kapsel links aus der Lesespalte ausbrechen:
     die uebrigen Absaetze sind ueber `margin:auto` zentriert. Am 20.08.2026
     im Bild gesehen, nicht im Code. */
  margin:0 auto 1.9rem;
  max-width:var(--ks-mass);
}
.single-post .entry-content p.ks-kapsel strong{ font-weight:700 }
@media (max-width:600px){
  .single-post .entry-content p.ks-kapsel{ font-size:1.12rem; padding-left:.9rem }
}

/* ============================================================
   Aktualisierungsdatum sichtbar machen.

   ⚠ GeneratePress liefert BEIDE Daten im HTML — `time.updated` und
   `time.entry-date published` — versteckt das erste aber per CSS.
   Ergebnis: Im JSON-LD steht `dateModified: 2026-08-20`, sichtbar
   war „23. März 2025". Der SEO-Leitfaden verlangt beides sichtbar.
   ★ GP gibt `time.updated` nur aus, wenn es spaeter als das
     Erscheinungsdatum ist — die Regel braucht also keine Bedingung.
   ============================================================ */
.single-post div.entry-meta .posted-on time.updated{ display:inline }
.single-post div.entry-meta .posted-on time.updated::before{ content:"Aktualisiert " }
.single-post div.entry-meta .posted-on time.updated::after{ content:" · online seit " }

/* ============================================================
   Kategorie-Beschreibung als Antwort-Kapsel.

   ★ Pflichtblatt §5: Sammelformate schlagen Einzelseiten bei
     KI-Zitaten um Faktor 42 je Seite. Die Kategorieseite ist
     das Sammelformat dieses Projekts — sie verdient dieselbe
     zitierfähige Antwort oben wie ein Beitrag.
   ⛔ Wieder kein Kasten, nur Kante und Schriftgrad.
   ============================================================ */
.archive .taxonomy-description{
  max-width:var(--ks-mass); margin:0 auto 1.6rem;
}
.archive .taxonomy-description p{
  font-size:1.16rem; line-height:1.62; color:#241c14;
  border-left:3px solid #ad4415; padding:.1rem 0 .1rem 1.15rem; margin:0;
}
@media (max-width:600px){
  .archive .taxonomy-description p{ font-size:1.06rem; padding-left:.9rem }
}
