/* =============================================================
   MietzCuisine – Designsystem v3 (klar & minimalistisch)
   Weiß-dominant · Hairline-Borders · Gold als einziger Akzent
   Archivo (600/700) · Fraunces nur als feiner Markenakzent
   ============================================================= */

@font-face { font-family: 'Fraunces'; src: url('/assets/fonts/fraunces-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Archivo'; src: url('/assets/fonts/archivo-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Archivo'; src: url('/assets/fonts/archivo-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Archivo'; src: url('/assets/fonts/archivo-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Archivo'; src: url('/assets/fonts/archivo-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }

:root {
  --charcoal: #111111;
  --text: #1D1D1F;
  --text-2: #55524B;         /* Sekundärtext, warmgrau */
  --text-3: #8A867C;
  --gold: #DAA017;
  --gold-text: #A87D0C;      /* Gold mit Textkontrast */
  --bg: #FFFFFF;
  --bg-warm: #F8F6F1;        /* warme Alternative zu Apples #f5f5f7 */
  --linie: #E9E5DB;
  --linie-stark: #DCD7C9;
  --radius: 20px;
  --radius-s: 12px;
  --ui: 'Archivo', -apple-system, 'Segoe UI', Roboto, sans-serif;
  --serif: 'Fraunces', Georgia, serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

body {
  margin: 0;
  font-family: var(--ui);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3 { font-family: var(--ui); color: var(--charcoal); line-height: 1.08; letter-spacing: -.028em; margin: 0 0 .5em; }
h1 { font-size: clamp(2.4rem, 6.2vw, 4.2rem); font-weight: 700; }
h2 { font-size: clamp(1.7rem, 3.8vw, 2.5rem); font-weight: 700; }
h3 { font-size: 1.14rem; font-weight: 600; letter-spacing: -.012em; }

.akzent { font-family: var(--serif); font-weight: 600; color: var(--gold); letter-spacing: 0; }

a { color: var(--gold-text); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 6px; }

img { max-width: 100%; height: auto; display: block; }
.ico { flex-shrink: 0; vertical-align: -3px; }

.wrap { max-width: 1100px; margin: 0 auto; padding: 0 1.5rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: -9999px; top: 0; background: var(--charcoal); color: #fff; padding: .6rem 1rem; z-index: 200; }
.skip-link:focus { left: 0; }
.hp { position: absolute; left: -9999px; }
.herz { color: var(--gold); }
.eyebrow { text-transform: uppercase; letter-spacing: .14em; font-size: .76rem; font-weight: 600; color: var(--gold-text); margin: 0 0 .7rem; }
.abschnitt-sub { color: var(--text-2); margin: -.3rem 0 2rem; font-size: 1.1rem; max-width: 40rem; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  font-family: var(--ui); font-weight: 600; font-size: 1rem;
  padding: .74rem 1.5rem; border-radius: 999px; border: 1px solid transparent;
  text-decoration: none; cursor: pointer;
  transition: opacity .15s ease, background .15s ease, border-color .15s ease;
}
.btn:hover { text-decoration: none; opacity: .88; }
.btn-gold { background: linear-gradient(135deg, #EDBE3C 0%, var(--gold) 45%, #B8860B 100%); color: var(--charcoal); box-shadow: inset 0 1px 0 rgba(255,255,255,.35); }
.btn-charcoal { background: var(--charcoal); color: #fff; }
.btn-hell { background: transparent; color: var(--text); border-color: var(--linie-stark); }
.btn-hell:hover { opacity: 1; border-color: var(--text-3); }

.textlink { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; color: var(--gold-text); }

/* ---------- Kopf: schwebende Glas-Pille ---------- */
.kopf { position: sticky; top: .8rem; z-index: 100; padding: 0 1rem; }
.kopf-innen {
  max-width: 1120px; margin: 0 auto; position: relative;
  display: flex; align-items: center; gap: 1.3rem;
  padding: .5rem .55rem .5rem 1.1rem;
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(18px) saturate(1.7);
  -webkit-backdrop-filter: blur(18px) saturate(1.7);
  border: 1px solid rgba(233,229,219,.9);
  border-radius: 999px;
  box-shadow: 0 10px 34px -18px rgba(17,17,17,.28);
}
.kopf-logo { display: flex; }
.kopf-logo img { width: auto; height: 36px; }
.kopf-nav { display: flex; gap: .15rem; margin-left: auto; align-items: center; }
.kopf-nav a { color: var(--text); font-weight: 500; font-size: .93rem; padding: .42rem .85rem; border-radius: 999px; transition: background .14s ease; }
.kopf-nav a:hover { background: rgba(17,17,17,.055); text-decoration: none; color: var(--text); }
.nav-suche { display: inline-flex; align-items: center; color: var(--text); }
.kopf-cta { white-space: nowrap; padding: .52rem 1.2rem; font-size: .92rem; background: linear-gradient(135deg, #EDBE3C 0%, var(--gold) 45%, #B8860B 100%); box-shadow: inset 0 1px 0 rgba(255,255,255,.35); }
.nav-burger { display: none; background: none; border: 0; cursor: pointer; padding: .5rem; }
.nav-burger span { display: block; width: 22px; height: 2px; background: var(--charcoal); margin: 5px 0; border-radius: 2px; transition: transform .18s ease, opacity .18s ease; }
.nav-offen .nav-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-offen .nav-burger span:nth-child(2) { opacity: 0; }
.nav-offen .nav-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 960px) {
  .kopf-nav { display: none; position: absolute; top: calc(100% + .6rem); left: 0; right: 0; background: rgba(255,255,255,.94); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); border: 1px solid var(--linie); border-radius: 22px; box-shadow: 0 18px 44px -20px rgba(17,17,17,.3); flex-direction: column; align-items: stretch; padding: .6rem .9rem; gap: .05rem; }
  .kopf-nav a { padding: .68rem .6rem; border-bottom: 1px solid var(--linie); font-size: 1rem; border-radius: 0; }
  .kopf-nav a:last-child { border-bottom: 0; }
  .kopf-nav a:hover { background: transparent; color: var(--gold-text); }
  .nav-offen .kopf-nav { display: flex; }
  .nav-burger { display: block; margin-left: auto; }
  .kopf-cta { display: none; }
  .kopf-logo img { height: 33px; }
}

/* ---------- Hero: hell, groß, ruhig ---------- */
.hero { background:
  radial-gradient(52rem 26rem at 50% -8rem, rgba(218,160,23,.13), transparent 68%),
  radial-gradient(30rem 18rem at 82% 4rem, rgba(123,160,93,.07), transparent 70%),
  var(--bg); }
.hero-innen { padding: 5rem 1.5rem 4rem; text-align: center; max-width: 860px; margin: 0 auto; }
.hero h1 { margin-bottom: .35em; }
.hero-sub { font-size: clamp(1.1rem, 2vw, 1.3rem); color: var(--text-2); max-width: 36rem; margin: 0 auto 2.2rem; line-height: 1.5; }
.hero-suche { display: flex; align-items: center; gap: .6rem; max-width: 33rem; margin: 0 auto 1.4rem; background: #fff; border: 1px solid var(--linie-stark); border-radius: 999px; padding: .3rem .3rem .3rem 1.15rem; transition: border-color .15s ease; }
.hero-suche:focus-within { border-color: var(--charcoal); }
.hero-suche .ico { color: var(--text-3); }
.hero-suche input { flex: 1; min-width: 0; padding: .62rem 0; border: 0; font-size: 1.02rem; font-family: var(--ui); background: transparent; }
.hero-suche input:focus { outline: none; }
.hero-ctas { display: flex; gap: .8rem; justify-content: center; flex-wrap: wrap; margin-bottom: 2rem; }
.quicklinks { display: flex; gap: .5rem; justify-content: center; flex-wrap: wrap; }
.quicklinks a { color: var(--text-2); border: 1px solid var(--linie); border-radius: 999px; padding: .32rem 1rem; font-size: .88rem; font-weight: 500; transition: border-color .14s ease, color .14s ease; }
.quicklinks a:hover { border-color: var(--text-3); color: var(--text); text-decoration: none; }

/* ---------- Abschnitte ---------- */
.abschnitt { padding: 4.5rem 0; }
.abschnitt-hell { background: var(--bg-warm); }
.mehr-link { margin-top: 2rem; }

/* ---------- Rezeptkarten ---------- */
.karten-raster { display: grid; gap: 1.8rem 1.4rem; grid-template-columns: repeat(auto-fill, minmax(245px, 1fr)); }
.karte-link { display: block; color: inherit; }
.karte-link:hover { text-decoration: none; }
.karte-bild { position: relative; aspect-ratio: 4 / 3; background: var(--bg-warm); border-radius: var(--radius); overflow: hidden; border: 1px solid var(--linie); }
.abschnitt-hell .karte-bild { background: #fff; }
.karte-bild img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.6,.2,1); }
.karte-link:hover .karte-bild img { transform: scale(1.035); }
.karte-platzhalter { width: 100%; height: 100%; display: grid; place-items: center; color: var(--linie-stark); }
.karte-platzhalter svg { width: 44px; height: 44px; }
.badge-tipp { position: absolute; top: .8rem; left: .8rem; background: rgba(17,17,17,.78); backdrop-filter: blur(6px); color: #fff; font-size: .74rem; font-weight: 600; padding: .28rem .75rem; border-radius: 999px; letter-spacing: .02em; }
.karte-titel { font-size: 1.06rem; font-weight: 600; letter-spacing: -.012em; margin: .85rem .1rem .2rem; line-height: 1.3; color: var(--charcoal); }
.karte-meta { display: flex; gap: .55rem; align-items: center; flex-wrap: wrap; margin: 0 .1rem; color: var(--text-3); font-size: .87rem; }
.karte-meta .ico { width: 14px; height: 14px; }

/* ---------- Kacheln ---------- */
.kachel-reihe { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.kachel { position: relative; background: #fff; border: 1px solid var(--linie); border-radius: var(--radius-s); padding: 1.2rem 1.25rem; color: inherit; display: flex; flex-direction: column; gap: .15rem; transition: border-color .15s ease; }
.abschnitt-hell .kachel { background: #fff; }
.kachel:hover { border-color: var(--text-3); text-decoration: none; }
.kachel::after { content: ''; position: absolute; right: 1.1rem; top: 50%; width: 7px; height: 7px; border-right: 1.8px solid var(--text-3); border-top: 1.8px solid var(--text-3); transform: translateY(-50%) rotate(45deg); transition: border-color .15s ease; }
.kachel:hover::after { border-color: var(--gold-text); }
.kachel strong { font-weight: 600; font-size: 1.04rem; color: var(--charcoal); letter-spacing: -.01em; }
.kachel span { font-size: .87rem; color: var(--text-3); }

/* ---------- Gerätebereich: ruhige dunkle Kacheln ---------- */
.geraete-raster { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.geraet-karte { background: var(--charcoal); color: #fff; border-radius: var(--radius); padding: 1.9rem 1.6rem; display: flex; flex-direction: column; gap: .3rem; transition: opacity .15s ease; }
.geraet-karte:hover { text-decoration: none; opacity: .92; color: #fff; }
.geraet-icon { display: none; }
.geraet-karte strong { font-weight: 600; font-size: 1.35rem; letter-spacing: -.018em; color: var(--gold); }
.geraet-karte span:last-child { color: #A6A199; font-size: .93rem; }
.geraet-karte .textlink { margin-top: .8rem; color: #fff; font-size: .9rem; }

/* ---------- Kleine Mietzen ---------- */
.kleine-mietzen { background: var(--bg-warm); }
.kleine-mietzen-innen { display: grid; grid-template-columns: 1fr auto; gap: 3rem; align-items: center; }
.kleine-mietzen-icon img { width: 170px; }
@media (max-width: 700px) { .kleine-mietzen-innen { grid-template-columns: 1fr; } .kleine-mietzen-icon { display: none; } }

/* ---------- Breadcrumb / Kategorie ---------- */
.breadcrumb { padding-top: 1.4rem; font-size: .85rem; color: var(--text-3); display: flex; gap: .5rem; flex-wrap: wrap; }
.breadcrumb a { color: var(--text-3); }
.breadcrumb a:hover { color: var(--text); text-decoration: none; }
.kat-kopf { padding: 1.8rem 1.5rem 0; }
.kat-intro { max-width: 44rem; color: var(--text-2); font-size: 1.12rem; }
.unterkat-leiste { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 1.4rem; }
.unterkat-leiste a { color: var(--text); border: 1px solid var(--linie-stark); border-radius: 999px; padding: .4rem 1.05rem; font-weight: 500; font-size: .9rem; transition: border-color .14s ease; }
.unterkat-leiste a:hover { border-color: var(--charcoal); text-decoration: none; }
.leer-zustand { background: var(--bg-warm); border-radius: var(--radius); padding: 2rem; max-width: 34rem; color: var(--text-2); }

.hinweis-box { background: var(--bg-warm); border-radius: var(--radius-s); padding: 1rem 1.25rem; font-size: .93rem; color: var(--text-2); max-width: 46rem; }
.hinweis-gruen { background: #EFF4EA; }

/* GLP-1: sachlich = keine Bildzooms, neutraler Akzent */
.stil-sachlich .karte-link:hover .karte-bild img { transform: none; }
.stil-sachlich .eyebrow, .stil-sachlich .herz { color: var(--text-2); }

/* ---------- Rezeptseite ---------- */
.seite-rezept { padding-bottom: 4.5rem; }
.rezept { padding-top: .8rem; padding-bottom: 3rem; max-width: 780px; }
.rezept-kopf { margin-bottom: 1.4rem; }
.rezept-intro { font-size: 1.16rem; color: var(--text-2); max-width: 44rem; line-height: 1.55; }
.rezept-infobox { display: flex; gap: .5rem; flex-wrap: wrap; padding: 0; }
.rezept-infobox span { display: inline-flex; align-items: center; gap: .45rem; background: var(--bg-warm); border-radius: 999px; padding: .42rem 1rem; font-weight: 500; font-size: .9rem; color: var(--text-2); }
.rezept-infobox .ico { color: var(--text-3); }
.rezept-hero { margin: 1.6rem 0; }
.rezept-hero img { border-radius: var(--radius); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.zum-rezept { margin: 1.4rem 0 2rem; }

.rezeptkarte { background: #fff; border: 1px solid var(--linie); border-radius: var(--radius); padding: 2rem 1.8rem; margin: 1.8rem 0; }
.rk-kopfzeile { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: .4rem; }
.rk-kopfzeile h2 { margin: 0; }
.portionen-schalter { display: flex; gap: .2rem; align-items: center; background: var(--bg-warm); border-radius: 999px; padding: .25rem; }
.portionen-schalter::before { content: 'Portionen'; font-size: .82rem; font-weight: 500; color: var(--text-3); margin: 0 .5rem 0 .8rem; }
.portion-btn { min-width: 2.2rem; height: 2.2rem; border-radius: 999px; border: 0; background: transparent; font-weight: 600; font-size: .95rem; cursor: pointer; font-family: var(--ui); color: var(--text-2); transition: background .12s ease, color .12s ease; }
.portion-btn.aktiv { background: var(--charcoal); color: #fff; }

.zutaten-liste { list-style: none; padding: 0; margin: 1rem 0 2.4rem; }
.zutaten-gruppe { font-weight: 600; margin: 1.1rem 0 .3rem; color: var(--charcoal); letter-spacing: -.01em; }
.zutat { border-bottom: 1px solid var(--linie); }
.zutat:last-child { border-bottom: 0; }
.zutat label { display: flex; gap: .7rem; align-items: baseline; padding: .6rem .1rem; cursor: pointer; }
.zutat input[type=checkbox] { accent-color: var(--charcoal); width: 1.05rem; height: 1.05rem; flex-shrink: 0; transform: translateY(2px); }
.zutat input[type=checkbox]:checked ~ .zutat-name { text-decoration: line-through; color: var(--text-3); }
.zutat-menge { font-weight: 600; min-width: 2.5rem; text-align: right; font-variant-numeric: tabular-nums; }
.zutat-einheit { color: var(--text-3); min-width: 2.2rem; }
.zutat-name em { color: var(--text-3); font-style: normal; font-size: .9rem; }

.schritte { list-style: none; counter-reset: schritt; padding: 0; margin: 1rem 0 1.8rem; }
.schritt { counter-increment: schritt; position: relative; padding: 0 0 1.6rem 3rem; }
.schritt::before { content: counter(schritt); position: absolute; left: 0; top: .1rem; width: 1.9rem; height: 1.9rem; border-radius: 50%; border: 1.5px solid var(--charcoal); color: var(--charcoal); font-weight: 600; display: grid; place-items: center; font-size: .92rem; }
.schritt:not(:last-child)::after { content: ''; position: absolute; left: .93rem; top: 2.4rem; bottom: .2rem; width: 1px; background: var(--linie); }
.schritt h3 { margin-bottom: .15rem; }
.schritt p { margin: .25rem 0; color: var(--text-2); }
.schritt-einstellung { display: inline-flex; gap: .5rem; background: var(--bg-warm); color: var(--text); border-radius: 999px; padding: .2rem .85rem; font-weight: 600; font-size: .86rem; font-variant-numeric: tabular-nums; }
.schritt img { border-radius: var(--radius-s); margin-top: .6rem; }

.mietz-tipp { background: #FBF6E8; border-radius: var(--radius); padding: 1.4rem 1.6rem; margin: 2rem 0; }
.mietz-tipp-label { font-family: var(--serif); font-weight: 600; color: var(--gold-text); margin: 0 0 .3rem; font-size: 1.15rem; }
.mietz-tipp p { margin: 0; color: var(--text-2); }

.rezept-block { margin: 2.4rem 0; }
.rezept-block h2, .rezept-themen h2 { font-size: 1.3rem; letter-spacing: -.015em; margin-bottom: .45em; }
.rezeptkarte h2 { font-size: clamp(1.5rem, 3vw, 1.9rem); }
.rezept-block p { color: var(--text-2); }
.naehrwerte { font-variant-numeric: tabular-nums; }
.faq-item { border-bottom: 1px solid var(--linie); }
.faq-item summary { font-weight: 600; cursor: pointer; padding: .85rem 0; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: var(--charcoal); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; font-weight: 500; font-size: 1.3rem; color: var(--text-3); transition: transform .18s ease; line-height: 1; }
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item p { margin: 0 0 .9rem; color: var(--text-2); }

.rezept-eeat { margin: 2.6rem 0 1.8rem; padding: 1.1rem 1.3rem; background: var(--bg-warm); border-radius: var(--radius-s); font-size: .9rem; color: var(--text-2); }
.rezept-eeat p { margin: .2rem 0; }

.rezept-themen h2 { font-size: 1.15rem; }
.themen-chip { display: inline-block; color: var(--text); border: 1px solid var(--linie-stark); border-radius: 999px; padding: .34rem .95rem; margin: 0 .4rem .55rem 0; font-size: .88rem; font-weight: 500; transition: border-color .14s ease; }
.themen-chip:hover { border-color: var(--charcoal); text-decoration: none; }

/* ---------- Sticky-Leiste mobil ---------- */
.sticky-leiste { display: none; }
@media (max-width: 760px) {
  .seite-rezept .sticky-leiste { display: flex; position: fixed; bottom: .8rem; left: .8rem; right: .8rem; background: rgba(17,17,17,.9); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-radius: 999px; z-index: 90; padding: .45rem .8rem; gap: .3rem; justify-content: space-around; }
  .sticky-btn { color: #fff; background: none; border: 0; font-family: var(--ui); font-size: .84rem; font-weight: 500; text-decoration: none; display: flex; align-items: center; gap: .4rem; cursor: pointer; padding: .4rem .5rem; }
  .sticky-btn:hover { color: #fff; text-decoration: none; }
  .wakelock-schalter input { accent-color: var(--gold); }
}

/* ---------- Kochmodus ---------- */
.kochmodus { position: fixed; inset: 0; background: #fff; z-index: 300; display: flex; flex-direction: column; padding: 1.1rem 1.5rem calc(1.1rem + env(safe-area-inset-bottom)); }
.kochmodus[hidden] { display: none; }
.km-kopf { display: flex; justify-content: space-between; align-items: center; }
.km-fortschritt { font-weight: 600; color: var(--text-3); font-size: .85rem; letter-spacing: .05em; text-transform: uppercase; }
.km-schliessen { background: var(--bg-warm); border: 0; border-radius: 50%; width: 2.5rem; height: 2.5rem; font-size: 1.1rem; cursor: pointer; color: var(--text); }
.km-inhalt { flex: 1; display: flex; flex-direction: column; justify-content: center; text-align: center; gap: 1rem; overflow-y: auto; }
.km-inhalt h2 { font-size: clamp(1.9rem, 6.5vw, 3rem); }
.km-inhalt .km-text { font-size: clamp(1.1rem, 3.4vw, 1.4rem); max-width: 34rem; margin: 0 auto; color: var(--text-2); }
.km-inhalt .schritt-einstellung { font-size: 1.05rem; margin: 0 auto; }
.km-timer { text-align: center; padding: .8rem 0; }
.km-timer-anzeige { font-weight: 700; font-size: 3rem; display: block; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.km-timer-anzeige.abgelaufen { color: var(--gold-text); animation: blink 1s steps(2) infinite; }
@keyframes blink { 50% { opacity: .25; } }
.km-nav { display: flex; justify-content: space-between; gap: 1rem; padding-top: .7rem; }

/* ---------- Rezeptfinder ---------- */
.finder-schritt { border: 1px solid var(--linie); border-radius: var(--radius); background: #fff; padding: 1.4rem 1.5rem 1.5rem; margin-bottom: 1.1rem; }
.finder-schritt legend { font-weight: 600; font-size: 1.12rem; padding: 0 .5rem; display: flex; gap: .65rem; align-items: center; letter-spacing: -.012em; }
.finder-nr { width: 1.7rem; height: 1.7rem; border-radius: 50%; border: 1.5px solid var(--charcoal); color: var(--charcoal); display: inline-grid; place-items: center; font-weight: 600; font-size: .85rem; }
.finder-optionen { display: flex; gap: .5rem; flex-wrap: wrap; }
.chip { border: 1px solid var(--linie-stark); border-radius: 999px; padding: .44rem 1.05rem; cursor: pointer; user-select: none; background: #fff; font-weight: 500; font-size: .93rem; display: inline-flex; align-items: center; gap: .45rem; transition: background .13s ease, border-color .13s ease, color .13s ease; }
.chip input { accent-color: var(--charcoal); }
.chip:has(input:checked) { background: var(--charcoal); border-color: var(--charcoal); color: #fff; }
.finder-hinweis { color: var(--text-3); font-size: .87rem; margin: .7rem 0 0; }
.finder-ergebnis { margin-top: 2rem; }
.finder-ergebnis h2 { margin-bottom: 1.2rem; }

/* ---------- Newsletter ---------- */
.newsletter { background: var(--charcoal); color: #fff; padding: 3.5rem 0; }
.newsletter h2 { color: #fff; margin-bottom: .35rem; }
.newsletter h2 .herz { color: var(--gold); }
.newsletter p { color: #A6A199; margin: 0; max-width: 34rem; }
.newsletter-innen { display: grid; grid-template-columns: 1fr auto; gap: 2.5rem; align-items: center; }
.newsletter-anmeldung { display: flex; flex-direction: column; }
.newsletter-pille { display: flex; gap: .4rem; background: #fff; border-radius: 999px; padding: .3rem .3rem .3rem 1.1rem; }
.newsletter-pille input[type=email] { flex: 1; min-width: 200px; padding: .6rem 0; border: 0; font-size: 1rem; font-family: var(--ui); background: transparent; }
.newsletter-pille input[type=email]:focus { outline: none; }
.newsletter-pille .btn { white-space: nowrap; }
.nl-interesse-label { margin: .9rem .2rem .35rem; font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #A6A199; }
.nl-interesse-huelle { position: relative; }
.nl-interesse-huelle::after { content: ''; position: absolute; right: 1.1rem; top: 50%; width: 8px; height: 8px; border-right: 1.6px solid #A6A199; border-bottom: 1.6px solid #A6A199; transform: translateY(-70%) rotate(45deg); pointer-events: none; transition: border-color .15s ease; }
.nl-interesse-huelle:hover::after { border-color: var(--gold); }
.nl-interesse { width: 100%; appearance: none; -webkit-appearance: none; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); border-radius: 999px; padding: .68rem 2.6rem .68rem 1.1rem; font-family: var(--ui); font-size: .94rem; color: #EDEBE6; cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.nl-interesse:hover, .nl-interesse:focus { border-color: rgba(218,160,23,.6); background: rgba(255,255,255,.1); outline: none; }
.nl-interesse option { color: var(--text); background: #fff; }
@media (max-width: 820px) {
  .newsletter-innen { grid-template-columns: 1fr; gap: 1.4rem; }
  .newsletter-pille { flex-direction: column; border-radius: var(--radius-s); padding: .5rem; }
  .newsletter-pille input[type=email] { padding: .6rem .8rem; }
}

/* ---------- Footer: hell & ruhig ---------- */
.fuss { background: var(--bg-warm); color: var(--text-2); border-top: 1px solid var(--linie); }
.fuss-innen { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 2.5rem; padding-top: 3.2rem; padding-bottom: 2.6rem; }
.fuss h3 { color: var(--text); font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; margin: 0 0 .9rem; }
.fuss nav { display: flex; flex-direction: column; }
.fuss a { color: var(--text-2); padding: .22rem 0; font-size: .93rem; }
.fuss a:hover { color: var(--text); text-decoration: none; }
.fuss-marke img { width: 180px; margin-bottom: .6rem; }
.fuss-marke p { margin: .3rem 0; font-size: .93rem; }
.fuss-klein { font-size: .84rem; color: var(--text-3); }
.fuss-zeile { border-top: 1px solid var(--linie); padding: 1.2rem 0; font-size: .84rem; color: var(--text-3); }
@media (max-width: 820px) { .fuss-innen { grid-template-columns: 1fr 1fr; gap: 2rem; } }

/* ---------- Textseiten & Formulare ---------- */
.text-seite { max-width: 44rem; }
.text-seite p { color: var(--text-2); }
.kontakt-form { display: flex; flex-direction: column; gap: .3rem; max-width: 34rem; }
.kontakt-form label { font-weight: 600; margin-top: .8rem; }
.kontakt-form input, .kontakt-form textarea { padding: .72rem 1rem; border: 1px solid var(--linie-stark); border-radius: var(--radius-s); font-family: var(--ui); font-size: 1rem; background: #fff; transition: border-color .14s ease; }
.kontakt-form input:focus, .kontakt-form textarea:focus { border-color: var(--charcoal); outline: none; }
.kontakt-form button { margin-top: 1.1rem; align-self: flex-start; }

.kat-kopf .hero-suche { margin: 1.4rem 0 0; }

/* ---------- Dynamik (respektiert prefers-reduced-motion) ---------- */
@media (prefers-reduced-motion: no-preference) {
  /* Abschnitte blenden beim Scrollen ein */
  .anim { opacity: 0; transform: translateY(16px); transition: opacity .6s cubic-bezier(.2,.6,.2,1), transform .6s cubic-bezier(.2,.6,.2,1); transition-delay: var(--anim-delay, 0s); }
  .anim.sichtbar { opacity: 1; transform: none; }

  /* Karten & Kacheln erscheinen gestaffelt (Delay setzt JS pro Element) */
  .stagger { opacity: 0; transform: translateY(18px); transition: opacity .55s cubic-bezier(.2,.6,.2,1), transform .55s cubic-bezier(.2,.6,.2,1); transition-delay: var(--anim-delay, 0s); }
  .stagger.sichtbar { opacity: 1; transform: none; }

  /* Hero baut sich beim Laden sanft auf */
  .hero-innen > * { opacity: 0; transform: translateY(14px); animation: heroAuf .7s cubic-bezier(.2,.6,.2,1) forwards; }
  .hero-innen > *:nth-child(1) { animation-delay: .05s; }
  .hero-innen > *:nth-child(2) { animation-delay: .16s; }
  .hero-innen > *:nth-child(3) { animation-delay: .27s; }
  .hero-innen > *:nth-child(4) { animation-delay: .38s; }
  .hero-innen > *:nth-child(5) { animation-delay: .48s; }
  @keyframes heroAuf { to { opacity: 1; transform: none; } }

  /* Rezeptkarten heben sich beim Hover leicht */
  .karte-link { transition: transform .3s cubic-bezier(.2,.6,.2,1); }
  .karte-link:hover { transform: translateY(-4px); }
  .karte-bild { transition: box-shadow .3s ease; }
  .karte-link:hover .karte-bild { box-shadow: 0 18px 38px -22px rgba(17,17,17,.35); }

  /* Kachel-Pfeil gleitet beim Hover */
  .kachel::after { transition: transform .22s cubic-bezier(.2,.6,.2,1), border-color .15s ease; }
  .kachel:hover::after { transform: translateY(-50%) rotate(45deg) translate(2px, -2px); }
  .kachel { transition: border-color .15s ease, transform .25s cubic-bezier(.2,.6,.2,1); }
  .kachel:hover { transform: translateY(-2px); }

  /* Gerätekacheln: sanfter Lift statt Ausblenden */
  .geraet-karte { transition: transform .3s cubic-bezier(.2,.6,.2,1), box-shadow .3s ease; }
  .geraet-karte:hover { opacity: 1; transform: translateY(-4px); box-shadow: 0 20px 44px -24px rgba(17,17,17,.5); }
  .geraet-karte .textlink .ico { transition: transform .22s ease; }
  .geraet-karte:hover .textlink .ico { transform: translateX(4px); }

  /* Textlink-Pfeile schieben mit */
  .textlink .ico { transition: transform .22s ease; }
  .textlink:hover .ico { transform: translateX(4px); }

  /* Buttons: taktiles Feedback */
  .btn { transition: opacity .15s ease, transform .18s cubic-bezier(.2,.6,.2,1), box-shadow .2s ease, border-color .15s ease, background .15s ease; }
  .btn:hover { transform: translateY(-1px); }
  .btn:active { transform: translateY(0) scale(.98); }
  .btn-gold:hover { box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 10px 26px -14px rgba(184,134,11,.7); opacity: 1; }

  /* Header-Pille schrumpft beim Scrollen minimal */
  .kopf-innen { transition: padding .25s ease, box-shadow .25s ease, background .25s ease; }
  .kopf-geschrumpft .kopf-innen { padding-top: .32rem; padding-bottom: .32rem; background: rgba(255,255,255,.85); box-shadow: 0 12px 30px -16px rgba(17,17,17,.35); }
  .kopf-logo img { transition: height .25s ease; }
  .kopf-geschrumpft .kopf-logo img { height: 30px; }

  /* Quicklink-Chips reagieren */
  .quicklinks a, .unterkat-leiste a, .themen-chip { transition: border-color .14s ease, color .14s ease, transform .2s ease; }
  .quicklinks a:hover, .unterkat-leiste a:hover, .themen-chip:hover { transform: translateY(-1px); }
}

/* ---------- Alters-Filter (Baby & Familie) ---------- */
.alter-filter { background: var(--bg-warm); border-radius: var(--radius); padding: 1.3rem 1.5rem 1rem; margin: 1.6rem 0 0; max-width: 44rem; }
.alter-filter label { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; font-size: .98rem; }
.alter-filter output { font-weight: 600; color: var(--gold-text); font-variant-numeric: tabular-nums; }
.alter-regler-zeile { display: flex; gap: .8rem; align-items: center; margin-top: .6rem; }
.alter-filter input[type=range] { flex: 1; appearance: none; -webkit-appearance: none; height: 4px; border-radius: 999px; background: linear-gradient(to right, var(--gold) 0%, var(--gold) var(--fortschritt, 0%), var(--linie-stark) var(--fortschritt, 0%)); outline-offset: 6px; }
.alter-filter input[type=range]::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 1.5px solid var(--linie-stark); box-shadow: 0 3px 10px -3px rgba(17,17,17,.35); cursor: grab; transition: transform .15s ease; }
.alter-filter input[type=range]::-webkit-slider-thumb:hover { transform: scale(1.08); }
.alter-filter input[type=range]:active::-webkit-slider-thumb { cursor: grabbing; }
.alter-filter input[type=range]::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 1.5px solid var(--linie-stark); box-shadow: 0 3px 10px -3px rgba(17,17,17,.35); cursor: grab; }
.alter-skala { display: flex; justify-content: space-between; font-size: .74rem; color: var(--text-3); margin-top: .35rem; }
.leise-hinweis { font-size: .82rem; color: var(--text-3); margin: .8rem 0 0; }
.stil-sachlich .alter-filter output { color: var(--text-2); }

/* ---------- Wochenplaner ---------- */
.nav-plan { position: relative; display: inline-flex; align-items: center; color: var(--text); padding: .42rem .5rem; }
.plan-badge { position: absolute; top: 0; right: -2px; background: var(--gold); color: var(--charcoal); font-size: .66rem; font-weight: 700; min-width: 1.05rem; height: 1.05rem; border-radius: 999px; display: grid; place-items: center; padding: 0 .2rem; }
.merken-btn { position: absolute; top: .7rem; right: .7rem; z-index: 2; width: 2.1rem; height: 2.1rem; border-radius: 50%; border: 1px solid var(--linie-stark); background: rgba(255,255,255,.92); backdrop-filter: blur(6px); color: var(--text); display: grid; place-items: center; cursor: pointer; transition: transform .18s ease, background .15s ease, color .15s ease, border-color .15s ease; }
.merken-btn:hover { transform: scale(1.08); border-color: var(--charcoal); }
.merken-btn.gemerkt { background: var(--charcoal); color: var(--gold); border-color: var(--charcoal); }
.merken-btn.gemerkt .ico { transform: rotate(45deg); }
.merken-btn .ico { transition: transform .2s ease; }
.merken-btn-text { position: static; width: auto; height: auto; border-radius: 999px; display: inline-flex; gap: .5rem; padding: .74rem 1.5rem; backdrop-filter: none; }
.merken-btn-text.gemerkt { color: #fff; }
.merken-btn-text.gemerkt .ico { transform: rotate(45deg); }

.plan-bereich { padding-bottom: 4rem; }
.plan-abschnitt-titel { font-size: 1.35rem; margin: 2.2rem 0 .4rem; }
.plan-zaehler { color: var(--text-3); font-weight: 500; }
.plan-pool { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); min-height: 4rem; border: 1.5px dashed var(--linie-stark); border-radius: var(--radius); padding: .8rem; margin-top: .8rem; }
.plan-karte { display: flex; align-items: center; gap: .7rem; background: #fff; border: 1px solid var(--linie); border-radius: var(--radius-s); padding: .5rem .6rem; cursor: grab; position: relative; }
.plan-karte:active { cursor: grabbing; }
.plan-karte.wird-gezogen { opacity: .45; }
.plan-karte img { width: 56px; height: 42px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.plan-karte-platzhalter { width: 56px; height: 42px; background: var(--bg-warm); border-radius: 8px; flex-shrink: 0; }
.plan-karte-text { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: .1rem; }
.plan-karte-text a { color: var(--charcoal); font-weight: 600; font-size: .92rem; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.plan-karte-text small { color: var(--text-3); font-size: .78rem; }
.plan-tag-wahl { margin-top: .25rem; font-family: var(--ui); font-size: .8rem; padding: .2rem .4rem; border: 1px solid var(--linie); border-radius: 7px; background: var(--bg-warm); color: var(--text-2); max-width: 10rem; }
.plan-entfernen { background: none; border: 0; color: var(--text-3); cursor: pointer; font-size: .95rem; padding: .3rem; align-self: flex-start; }
.plan-entfernen:hover { color: var(--charcoal); }

.plan-woche { display: grid; gap: .7rem; grid-template-columns: repeat(7, 1fr); margin-top: .8rem; }
@media (max-width: 1000px) { .plan-woche { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .plan-woche { grid-template-columns: 1fr; } }
.plan-tag { background: var(--bg-warm); border-radius: var(--radius-s); padding: .6rem .6rem .8rem; min-height: 7rem; transition: box-shadow .15s ease, background .15s ease; }
.plan-tag h3 { font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: var(--text-3); margin: 0 0 .5rem; }
.plan-tag-liste { display: flex; flex-direction: column; gap: .5rem; min-height: 3rem; }
.plan-tag .plan-karte { cursor: grab; }
.drop-aktiv { background: #FBF6E8; box-shadow: inset 0 0 0 2px var(--gold); }
.plan-pool.drop-aktiv { background: #FBF6E8; }

.plan-aktionen { display: flex; gap: .8rem; flex-wrap: wrap; margin: 1.6rem 0; }
.einkaufsliste { list-style: none; padding: 0; margin: .8rem 0 1rem; columns: 2; column-gap: 2.5rem; max-width: 44rem; }
@media (max-width: 640px) { .einkaufsliste { columns: 1; } }
.einkaufsliste li { break-inside: avoid; border-bottom: 1px solid var(--linie); }
.einkaufsliste label { display: flex; gap: .6rem; align-items: baseline; padding: .45rem .1rem; cursor: pointer; }
.einkaufsliste input[type=checkbox] { accent-color: var(--charcoal); transform: translateY(2px); }
.einkaufsliste input:checked ~ span { text-decoration: line-through; color: var(--text-3); }
.plan-mail { background: var(--bg-warm); border-radius: var(--radius); padding: 1.5rem 1.6rem 1.6rem; margin-top: 2.2rem; max-width: 44rem; }
.plan-mail .plan-abschnitt-titel { margin-top: 0; }
.plan-mail-form { display: flex; gap: .4rem; background: #fff; border-radius: 999px; padding: .3rem .3rem .3rem 1.1rem; margin-top: .8rem; border: 1px solid var(--linie-stark); }
.plan-mail-form input[type=email] { flex: 1; min-width: 200px; padding: .6rem 0; border: 0; font-size: 1rem; font-family: var(--ui); background: transparent; }
.plan-mail-form input[type=email]:focus { outline: none; }
@media (max-width: 700px) { .plan-mail-form { flex-direction: column; border-radius: var(--radius-s); padding: .5rem; } }

/* ============================================================
   Mobil-Optimierung
   ============================================================ */
.nav-suche, .nav-plan { padding: .5rem .45rem; }

@media (max-width: 960px) {
  /* Suche + Wochenplan bleiben neben dem Burger sichtbar */
  .kopf-innen { gap: .4rem; padding-left: .9rem; }
  .kopf-logo { margin-right: auto; }
  .nav-burger { margin-left: .1rem; }
}

@media (max-width: 700px) {
  /* Ruhigere Abstände */
  .hero-innen { padding: 3rem 1.2rem 2.4rem; }
  .abschnitt { padding: 3rem 0; }
  .wrap { padding: 0 1.1rem; }
  .abschnitt-sub { margin-bottom: 1.4rem; }

  /* Suchpille: Button kompakt */
  .hero-suche .btn { padding: .62rem 1.1rem; font-size: .92rem; }

  /* Kacheln zweispaltig statt endloser Liste */
  .kachel-reihe { grid-template-columns: repeat(2, 1fr); gap: .6rem; }
  .kachel { padding: .95rem .9rem; }
  .kachel::after { right: .8rem; }

  /* Größere Touchflächen */
  .portion-btn { min-width: 2.6rem; height: 2.6rem; }
  .karte-bild .merken-btn { width: 2.4rem; height: 2.4rem; }
  .faq-item summary { padding: 1rem 0; }

  /* Rezeptkarte/Blocks kompakter */
  .rezeptkarte { padding: 1.4rem 1.1rem; }
  .rk-kopfzeile { gap: .6rem; }
  .alter-filter { padding: 1.1rem 1rem .9rem; }

  /* Newsletter-/Mail-Formulare atmen */
  .plan-mail { padding: 1.2rem 1.1rem 1.3rem; }
}

@media (max-width: 760px) {
  /* Unterkategorie-Chips: eine wischbare Zeile statt Chip-Wand */
  .unterkat-leiste { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; margin-left: -1.1rem; margin-right: -1.1rem; padding: .2rem 1.1rem .5rem; }
  .unterkat-leiste::-webkit-scrollbar { display: none; }
  .unterkat-leiste a { flex-shrink: 0; }

  /* Wochenplaner: kompakte Tage, volle Buttons */
  .plan-woche { gap: .5rem; }
  .plan-tag { min-height: 0; padding: .5rem .6rem .6rem; }
  .plan-tag h3 { margin-bottom: .3rem; }
  .plan-tag-liste { min-height: 1.6rem; }
  .plan-tag-liste:empty::after { content: 'Hierher ziehen oder Tag am Gericht wählen'; color: var(--text-3); font-size: .76rem; }
  .plan-pool { grid-template-columns: 1fr; padding: .6rem; }
  .plan-aktionen .btn { flex: 1 1 100%; justify-content: center; }
  .plan-abschnitt-titel { margin-top: 1.8rem; }
}

@media (max-width: 560px) {
  /* Footer: eine ruhige Spalte, Marke zuerst */
  .fuss-innen { grid-template-columns: 1fr; gap: 1.6rem; padding-top: 2.4rem; padding-bottom: 1.8rem; }
  .fuss-marke img { width: 150px; }
  .fuss nav { flex-direction: row; flex-wrap: wrap; gap: 0 1.2rem; }
  .fuss h3 { margin-bottom: .4rem; }

  /* Hero-CTAs untereinander in voller Breite */
  .hero-ctas { flex-direction: column; align-items: stretch; }
  .hero-ctas .btn { justify-content: center; }
}

/* ---------- Rezeptfinder v2 & Suchfilter ---------- */
.zutaten-eingabe { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; border: 1px solid var(--linie-stark); border-radius: var(--radius-s); padding: .45rem .6rem; background: #fff; transition: border-color .15s ease; }
.zutaten-eingabe:focus-within { border-color: var(--charcoal); }
.zutaten-chips { display: contents; }
.zutat-chip { display: inline-flex; align-items: center; gap: .4rem; background: var(--charcoal); color: #fff; border-radius: 999px; padding: .3rem .5rem .3rem .85rem; font-size: .88rem; font-weight: 500; }
.zutat-chip button { background: rgba(255,255,255,.18); border: 0; color: #fff; border-radius: 50%; width: 1.25rem; height: 1.25rem; font-size: .7rem; cursor: pointer; display: grid; place-items: center; }
.zutat-chip button:hover { background: rgba(255,255,255,.35); }
.zutaten-eingabe input { flex: 1; min-width: 12rem; border: 0; padding: .35rem .2rem; font-family: var(--ui); font-size: 1rem; background: transparent; }
.zutaten-eingabe input:focus { outline: none; }
.zutat-vorschlag { border: 1px solid var(--linie-stark); background: #fff; border-radius: 999px; padding: .28rem .8rem; font-family: var(--ui); font-size: .84rem; font-weight: 500; color: var(--text-2); cursor: pointer; margin: .15rem .15rem 0 0; transition: border-color .13s ease, color .13s ease; }
.zutat-vorschlag:hover { border-color: var(--charcoal); color: var(--text); }
.fehlt-hinweis { margin: .3rem .1rem 0; font-size: .82rem; color: #9A6B00; }
.fehlt-hinweis.alles-da { color: #4A7040; }
.fast-titel { margin-top: 2.4rem; }
.such-filter { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; margin-top: .9rem; }
.such-filter-label { font-size: .88rem; color: var(--text-3); font-weight: 500; }

/* ---------- Spracheingabe & Hero-Suchfilter ---------- */
.mikro-btn { flex-shrink: 0; width: 2.4rem; height: 2.4rem; border-radius: 50%; border: 1px solid var(--linie-stark); background: #fff; color: var(--text-2); display: grid; place-items: center; cursor: pointer; transition: border-color .15s ease, color .15s ease, transform .15s ease; }
.mikro-btn:hover { border-color: var(--charcoal); color: var(--text); transform: scale(1.06); }
.mikro-btn.hoert { background: var(--charcoal); border-color: var(--charcoal); color: var(--gold); animation: mikroPuls 1.4s ease infinite; }
@keyframes mikroPuls { 0%,100% { box-shadow: 0 0 0 0 rgba(218,160,23,.45); } 50% { box-shadow: 0 0 0 9px rgba(218,160,23,0); } }
.such-filter-hero { justify-content: center; margin: .9rem 0 1.3rem; }
.such-filter .chip { font-size: .85rem; padding: .34rem .9rem; }
@media (max-width: 700px) { .such-filter-hero { gap: .35rem; } .such-filter-hero .such-filter-label { width: 100%; text-align: center; } }




/* ---------- Schwebender Newsletter-Button ---------- */
.nl-schwebe {
  position: fixed; right: 0; top: 58%; transform: translateY(-50%);
  z-index: 80;
  display: flex; align-items: center; gap: 0;
  background: rgba(17,17,17,.5);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  color: #fff;
  border-radius: 999px 0 0 999px;
  padding: .72rem .8rem .72rem .85rem;
  opacity: .45;
  transition: opacity .3s ease, background .3s ease, color .3s ease, padding .3s cubic-bezier(.2,.6,.2,1);
}
.nl-schwebe:hover, .nl-schwebe:focus-visible {
  opacity: 1;
  background: linear-gradient(135deg, #EDBE3C 0%, var(--gold) 45%, #B8860B 100%);
  color: var(--charcoal);
  text-decoration: none;
  padding-right: 1.15rem;
}
.nl-schwebe-text {
  max-width: 0; overflow: hidden; white-space: nowrap;
  font-weight: 600; font-size: .92rem; opacity: 0;
  transition: max-width .35s cubic-bezier(.2,.6,.2,1), opacity .25s ease .08s, margin-left .35s cubic-bezier(.2,.6,.2,1);
}
.nl-schwebe:hover .nl-schwebe-text, .nl-schwebe:focus-visible .nl-schwebe-text {
  max-width: 8rem; opacity: 1; margin-left: .5rem;
}
.nl-schwebe.versteckt { opacity: 0; pointer-events: none; }
@media (max-width: 760px) {
  .nl-schwebe { top: 46%; padding: .6rem .65rem .6rem .7rem; opacity: .4; }
}
@media (prefers-reduced-motion: reduce) {
  .nl-schwebe, .nl-schwebe-text { transition: none; }
}

/* ---------- Teilen-Zeile & App-Hinweis ---------- */
.teilen-zeile { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; margin-top: 1.1rem; }
.teilen-label { font-size: .85rem; color: var(--text-3); font-weight: 500; margin-right: .15rem; }
.teilen-btn { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid var(--linie-stark); background: #fff; border-radius: 999px; padding: .42rem .95rem; font-family: var(--ui); font-size: .86rem; font-weight: 500; color: var(--text-2); cursor: pointer; text-decoration: none; transition: border-color .14s ease, color .14s ease, transform .18s ease; }
.teilen-btn:hover { border-color: var(--charcoal); color: var(--text); transform: translateY(-1px); text-decoration: none; }
.app-hinweis { position: fixed; left: 50%; bottom: 1rem; transform: translate(-50%, 130%); z-index: 90; display: flex; align-items: center; gap: .75rem; background: rgba(17,17,17,.94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); color: #F2F0EB; border: 1px solid rgba(255,255,255,.08); border-radius: 20px; padding: .55rem .55rem .55rem .6rem; max-width: min(94vw, 26rem); white-space: nowrap; box-shadow: 0 22px 50px -20px rgba(0,0,0,.6); opacity: 0; transition: transform .45s cubic-bezier(.2,.6,.2,1), opacity .4s ease; }
.app-hinweis.sichtbar { transform: translate(-50%, 0); opacity: 1; }
.app-hinweis-icon { width: 40px; height: 40px; border-radius: 11px; flex-shrink: 0; box-shadow: 0 2px 8px rgba(0,0,0,.35); }
.app-hinweis-text { display: flex; flex-direction: column; gap: .05rem; min-width: 0; margin-right: .3rem; }
.app-hinweis-text strong { font-size: .88rem; letter-spacing: -.01em; }
.app-hinweis-text small { font-size: .74rem; color: #A6A199; overflow: hidden; text-overflow: ellipsis; }
.app-installieren { flex-shrink: 0; border: 0; cursor: pointer; font-family: var(--ui); font-weight: 700; font-size: .82rem; color: var(--charcoal); background: linear-gradient(135deg, #EDBE3C 0%, var(--gold) 45%, #B8860B 100%); border-radius: 999px; padding: .5rem 1.05rem; transition: transform .18s cubic-bezier(.2,.6,.2,1); }
.app-installieren:hover { transform: translateY(-1px); }
.app-installieren:active { transform: scale(.96); }
.app-hinweis-zu { flex-shrink: 0; background: rgba(255,255,255,.08); border: 0; color: #A6A199; cursor: pointer; font-size: .8rem; width: 1.9rem; height: 1.9rem; border-radius: 50%; display: grid; place-items: center; transition: background .15s ease, color .15s ease; }
.app-hinweis-zu:hover { color: #fff; background: rgba(255,255,255,.16); }
@media (max-width: 420px) { .app-hinweis-text small { max-width: 11rem; } }


/* ---------- Rezept-Aktionsreihe (Zum Rezept + Merken) ---------- */
.rezept-ctas { display: flex; gap: .7rem; flex-wrap: wrap; align-items: center; margin: 1.5rem 0 0; }
@media (max-width: 700px) {
  .rezept-ctas { flex-direction: column; align-items: stretch; }
  .rezept-ctas .btn { justify-content: center; width: 100%; }
  .merken-btn-text { width: 100%; }
}

/* ---------- Abhak-Einkaufsliste (App-Look) ---------- */
.liste-fortschritt { position: sticky; top: 4.6rem; z-index: 20; display: flex; align-items: center; gap: 1.1rem; max-width: 44rem; margin-top: .4rem; padding: .85rem 1.2rem; background: rgba(255,255,255,.86); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid var(--linie); border-radius: 999px; box-shadow: 0 16px 38px -22px rgba(17,17,17,.35); }
.ring-huelle { position: relative; width: 64px; height: 64px; flex-shrink: 0; }
.ring-huelle svg { width: 64px; height: 64px; transform: rotate(-90deg); }
.ring-spur { fill: none; stroke: var(--bg-warm); stroke-width: 7; }
.ring-wert { fill: none; stroke: url(#goldverlauf); stroke: var(--gold); stroke-width: 7; stroke-linecap: round; transition: stroke-dashoffset .45s cubic-bezier(.2,.6,.2,1); }
.ring-zahl { position: absolute; inset: 0; display: grid; place-items: center; font-weight: 700; font-size: 1.25rem; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.fortschritt-text { display: flex; flex-direction: column; gap: .15rem; }
.fortschritt-gross { margin: 0; font-weight: 600; font-size: 1.02rem; }
.liste-reset { background: none; border: 0; color: var(--text-3); text-decoration: underline; cursor: pointer; font-size: .8rem; padding: 0; text-align: left; }
.liste-reset:hover { color: var(--text); }

.liste-fertig { max-width: 44rem; margin-top: 1rem; padding: .95rem 1.3rem; border-radius: var(--radius-s); background: linear-gradient(135deg, #FBF3DC 0%, #F7E8BD 100%); border: 1px solid var(--gold); color: var(--gold-text); font-weight: 600; animation: fertigAuf .5s cubic-bezier(.2,.6,.2,1); }
@keyframes fertigAuf { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.liste-karte { max-width: 44rem; margin-top: 1.1rem; background: #fff; border: 1px solid var(--linie); border-radius: var(--radius); padding: .5rem 1.2rem; box-shadow: 0 24px 60px -40px rgba(17,17,17,.35); }
.einkaufsliste-gross { columns: 1; margin: 0; }
.einkaufsliste-gross li { border-bottom: 1px solid var(--linie); transition: opacity .25s ease; }
.einkaufsliste-gross li:last-child { border-bottom: 0; }
.einkaufsliste-gross li.erledigt { opacity: .45; }
.einkaufsliste-gross label { display: flex; align-items: center; gap: .9rem; padding: .85rem .1rem; font-size: 1.05rem; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.einkaufsliste-gross input[type=checkbox] { appearance: none; -webkit-appearance: none; width: 1.65rem; height: 1.65rem; flex-shrink: 0; border: 1.6px solid var(--linie-stark); border-radius: 50%; display: grid; place-items: center; background: #fff; cursor: pointer; transition: border-color .15s ease, background .2s cubic-bezier(.2,.6,.2,1), transform .18s cubic-bezier(.2,.6,.2,1); }
.einkaufsliste-gross input[type=checkbox]:active { transform: scale(.9); }
.einkaufsliste-gross input[type=checkbox]::after { content: ''; width: .55rem; height: .95rem; border-right: 2.4px solid var(--gold); border-bottom: 2.4px solid var(--gold); transform: rotate(45deg) scale(0) translate(-8%, -14%); transition: transform .22s cubic-bezier(.34,1.56,.64,1); }
.einkaufsliste-gross input[type=checkbox]:checked { background: var(--charcoal); border-color: var(--charcoal); }
.einkaufsliste-gross input[type=checkbox]:checked::after { transform: rotate(45deg) scale(1) translate(-8%, -14%); }
.abhak-text { transition: color .2s ease; }
li.erledigt .abhak-text { text-decoration: line-through; text-decoration-color: var(--text-3); color: var(--text-3); }
.liste-gerichte { display: flex; flex-wrap: wrap; gap: .5rem; max-width: 44rem; margin-top: .7rem; }
@media (max-width: 700px) {
  .liste-fortschritt { top: 4.2rem; padding: .65rem .9rem; gap: .9rem; }
  .ring-huelle, .ring-huelle svg { width: 56px; height: 56px; }
  .liste-karte { padding: .3rem .9rem; margin-left: -.2rem; margin-right: -.2rem; }
}

/* ---------- Wochen-Tabs im Planer ---------- */
.wochen-tabs { display: flex; gap: .45rem; flex-wrap: wrap; margin: .2rem 0 .9rem; }
.wochen-tab { border: 1px solid var(--linie-stark); background: #fff; border-radius: 999px; padding: .45rem 1.05rem; font-family: var(--ui); font-size: .9rem; font-weight: 600; color: var(--text-2); cursor: pointer; transition: border-color .14s ease, color .14s ease, background .14s ease; }
.wochen-tab small { font-weight: 500; color: var(--text-3); }
.wochen-tab:hover { border-color: var(--charcoal); color: var(--text); }
.wochen-tab.aktiv { background: var(--charcoal); border-color: var(--charcoal); color: #fff; }
.wochen-tab.aktiv small { color: var(--gold); }
.wochen-plus { width: 2.5rem; text-align: center; padding: .45rem 0; font-size: 1.05rem; color: var(--gold-text); border-color: var(--gold); }
.wochen-plus:hover { background: #FBF6E8; }
.wochen-minus { font-size: .8rem; font-weight: 500; border-style: dashed; }

/* Dezentes App-Eck-Icon (holt den Install-Hinweis zurück) */
.app-mini { position: fixed; right: .65rem; top: calc(58% + 3.9rem); z-index: 79; width: 46px; height: 46px; padding: 0; border: 1px solid var(--linie); border-radius: 14px; background: rgba(255,255,255,.82); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); display: grid; place-items: center; cursor: pointer; opacity: 0; transform: translateX(120%); box-shadow: 0 10px 26px -14px rgba(17,17,17,.4); transition: opacity .35s ease, transform .4s cubic-bezier(.2,.6,.2,1); }
.app-mini.sichtbar { opacity: .55; transform: none; }
.app-mini:hover { opacity: 1; }
.app-mini img { border-radius: 9px; }
@media (max-width: 760px) { .app-mini { top: calc(46% + 3.6rem); } }
