/* ============================================================
   Kochplan – Landingpage

   Apple-Look, und zwar der, der aus Zurueckhaltung entsteht:
   viel Weissraum, eine grosse Headline mit engem Letter-Spacing,
   ruhige Graustufen — und das Produktbild traegt die Seite. Die
   Markenfarbe (Paprika) ist nur Akzent: Kicker, Icons, ein Wort in
   der Headline. Keine bunten Flaechen.

   Die Seite ist auf SCREENSHOTS gebaut. Jeder der vier Bildschirme
   bekommt einen eigenen Abschnitt, in dem er gross genug steht, dass
   man den Plan darauf wirklich liest — daneben genau ein Satz.

   Hausregeln: keine externen Fonts, keine CDNs, keine Emoji. Der
   Font-Stack nimmt auf Apple-Geraeten SF Pro und faellt sonst sauber
   auf die System-UI zurueck.
   ============================================================ */

:root {
  --ink:        #1d1d1f;   /* Ueberschriften, fast schwarz */
  --body:       #494950;   /* Fliesstext */
  --muted:      #86868b;   /* Sekundaertext */
  --bg:         #ffffff;
  --bg-alt:     #f5f5f7;   /* die ruhige Sektionsflaeche */
  --bg-dark:    #111113;   /* das eine dunkle Band */
  --card:       #ffffff;
  --hairline:   rgba(0,0,0,0.10);
  --hairline-2: rgba(0,0,0,0.16);
  --accent:     #b3402c;   /* Kochplan-Paprika, sparsam eingesetzt */
  --accent-ink: #8f3222;

  --radius:     18px;
  --radius-lg:  28px;
  --container:  1080px;

  --font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text",
          "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;
}

@media (prefers-color-scheme: dark) {
  :root {
    --ink: #f5f5f7;
    --body: #c7c7cc;
    --muted: #8e8e93;
    --bg: #000000;
    --bg-alt: #0d0d0f;
    --bg-dark: #16161a;
    --card: #1c1c1e;
    --hairline: rgba(255,255,255,0.12);
    --hairline-2: rgba(255,255,255,0.20);
    --accent: #e8785f;
    --accent-ink: #f0937d;
  }
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: clip; }

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--body);
  line-height: 1.5;
  letter-spacing: -0.01em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
.accent { color: var(--accent); }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 22px; }
.container--narrow { max-width: 720px; }

/* Der kleine Grossbuchstaben-Vorspann ueber jeder Headline. */
.kicker {
  font-size: 12px; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--accent);
  margin-bottom: 14px;
}

/* ---------- Navigation: durchscheinend wie Apples Header ---------- */
.nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,0.72);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid var(--hairline);
}
@media (prefers-color-scheme: dark) { .nav { background: rgba(0,0,0,0.72); } }

.nav__inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 48px; gap: 18px;
}
.brand {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 17px; font-weight: 600; color: var(--ink); letter-spacing: -0.02em;
}
.brand__icon { width: 22px; height: 22px; border-radius: 6px; }
.nav__links { display: flex; align-items: center; gap: 26px; }
.nav__links a { font-size: 12px; color: var(--body); transition: color .2s ease; }
.nav__links a:hover { color: var(--ink); }

.lang { display: inline-flex; gap: 4px; margin-left: 6px; }
.lang__btn {
  border: 0; background: transparent; padding: 3px; cursor: pointer;
  border-radius: 5px; line-height: 0; opacity: .45; transition: opacity .2s ease;
}
.lang__btn:hover { opacity: .8; }
.lang__btn--active { opacity: 1; }
.lang__btn svg { display: block; border-radius: 2px; }

/* ---------- Hero: eine Aussage, ein Bild ---------- */
.hero { padding: 92px 0 0; text-align: center; overflow: hidden; }
.hero__inner { max-width: 940px; }

.hero h1 {
  font-size: clamp(40px, 6.6vw, 78px);
  line-height: 1.05;
  font-weight: 600;
  letter-spacing: -0.04em;
  color: var(--ink);
}
/* Die zwei Zeilen der Headline stehen als Bloecke untereinander — mit
   <br> waere der Umbruch auch dann erzwungen, wenn kein Platz fehlt. */
.hero h1 span { display: block; }

.lead {
  margin: 22px auto 0;
  font-size: clamp(17px, 1.7vw, 21px);
  line-height: 1.5;
  color: var(--body);
  max-width: 30em;
}
.hero__note { margin-top: 20px; font-size: 13px; color: var(--muted); }

/* Die Buehne: das Geraet steht gross und mittig, dahinter ein sehr
   leiser Farbschimmer — kein Verlauf, der die Aufmerksamkeit zieht. */
.hero__stage {
  position: relative; margin-top: 56px;
  display: flex; justify-content: center; align-items: flex-end;
}
/* Die beiden aeusseren Geraete stehen HINTER dem mittleren und tauchen ein
   Stueck in es hinein; der negative Rand ist genau die Ueberlappung. */
.phone--side { width: 232px; z-index: 0; opacity: .92; }
.phone--side .phone__shot { border-radius: 31px; }
.phone--left  { margin-right: -58px; transform: translateY(-18px) rotate(-4deg); }
.phone--right { margin-left:  -58px; transform: translateY(-18px) rotate(4deg); }
.hero__stage .phone--xl { z-index: 1; }
.hero__halo {
  position: absolute; left: 50%; bottom: 8%; transform: translateX(-50%);
  width: min(760px, 92vw); height: 66%;
  background: radial-gradient(46% 56% at 50% 50%, rgba(179,64,44,0.18), transparent 70%);
  pointer-events: none; z-index: 0;
}
/* Der Screenshot laeuft unten sanft aus, statt hart abzuschneiden. */
.hero__stage .phone { -webkit-mask-image: none; mask-image: none; }

/* ---------- Geraet ---------- */
.phone {
  position: relative;
  width: 268px;
  padding: 9px;
  background: linear-gradient(160deg, #d8d8dc, #9a9aa0);
  border-radius: 44px;
  box-shadow: 0 30px 70px -30px rgba(0,0,0,0.45);
}
@media (prefers-color-scheme: dark) {
  .phone { background: linear-gradient(160deg, #3a3a3e, #1a1a1c); }
}
.phone--xl { width: 358px; border-radius: 56px; padding: 11px; }
.phone--xl .phone__shot { border-radius: 46px; }

/* height:auto ist Pflicht: die <img> tragen width/height-Attribute (gut gegen
   Layout-Spruenge). Ohne height:auto bliebe das Hoehen-Attribut wirksam und
   wuerde den Screenshot in die Laenge ziehen. */
.phone__shot {
  width: 100%; height: auto; display: block;
  border-radius: 36px; background: var(--bg-alt);
}

/* ---------- Store-Reihe ---------- */
.store-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-top: 26px; }
.store-row--center { justify-content: center; }
.store-badge { display: inline-block; transition: opacity .2s ease; }
.store-badge:hover { opacity: .75; }
.store-badge[hidden] { display: none !important; }
.store-soon { margin-top: 28px; font-size: 15px; font-weight: 500; color: var(--ink); }
.store-soon[hidden] { display: none !important; }

/* ---------- Zahlen ---------- */
.stats { padding: 86px 0 24px; }
.stats__inner {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 34px; text-align: center;
}
.stat { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.stat__num {
  font-size: clamp(38px, 5vw, 58px); font-weight: 600;
  letter-spacing: -0.04em; color: var(--accent); line-height: 1;
}
.stat__label { font-size: 14px; color: var(--muted); max-width: 20em; }

/* ---------- Der Screenshot-Abschnitt ---------- */
.story { padding: 104px 0; overflow: hidden; }
.story--alt { background: var(--bg-alt); }
.story--dark { background: var(--bg-dark); }

.story__inner {
  display: grid; grid-template-columns: 1fr minmax(0, 300px);
  gap: 72px; align-items: center;
}
/* Umgedreht: das Geraet links, der Text rechts. Nur die Reihenfolge
   aendert sich, nicht die Quelltext-Reihenfolge — der Screenreader
   liest weiter Ueberschrift vor Bild. */
.story--flip .story__inner { grid-template-columns: minmax(0, 300px) 1fr; }
.story--flip .story__copy { order: 2; }
.story--flip .story__shot { order: 1; }

.story h2 {
  font-size: clamp(28px, 3.6vw, 44px);
  line-height: 1.13;
  font-weight: 600;
  letter-spacing: -0.03em;
  color: var(--ink);
  max-width: 14em;
  text-wrap: balance;
}
.story__copy > p {
  margin-top: 18px; font-size: 17px; color: var(--body); max-width: 34em;
}
.story__shot { display: flex; justify-content: center; }

/* Die Haken-Liste. Bewusst ohne echtes <svg> je Zeile: ein CSS-Haken
   bleibt scharf, faerbt sich mit und kostet kein Markup. */
.ticks { list-style: none; margin-top: 26px; display: grid; gap: 13px; }
.ticks li {
  position: relative; padding-left: 32px;
  font-size: 15px; color: var(--body);
}
.ticks li::before {
  content: ""; position: absolute; left: 0; top: 2px;
  width: 20px; height: 20px; border-radius: 50%;
  background: rgba(179,64,44,0.12);
}
.ticks li::after {
  content: ""; position: absolute; left: 6.5px; top: 8px;
  width: 7px; height: 3.5px;
  border-left: 2px solid var(--accent); border-bottom: 2px solid var(--accent);
  transform: rotate(-45deg);
}

/* Das dunkle Band. Diese Regeln stehen bewusst NACH den hellen: sie haben
   dieselbe Spezifitaet, also entscheidet die Reihenfolge — und eine dunkle
   Ueberschrift auf dunklem Grund faellt niemandem auf, der die Seite
   geschrieben hat, aber jedem, der sie liest. */
.story--dark h2 { color: #f5f5f7; }
.story--dark .story__copy > p { color: #c7c7cc; }
.story--dark .kicker { color: #e8785f; }
.story--dark .ticks li { color: #c7c7cc; }
.story--dark .ticks li::before { background: rgba(232,120,95,0.20); }
.story--dark .ticks li::after {
  border-left-color: #e8785f; border-bottom-color: #e8785f;
}

/* ---------- Sektionen ---------- */
.section { padding: 104px 0; }
.section--alt { background: var(--bg-alt); }
.section__title {
  font-size: clamp(30px, 3.6vw, 44px);
  line-height: 1.12;
  font-weight: 600;
  letter-spacing: -0.03em;
  color: var(--ink);
  text-align: center;
  max-width: 18em; margin: 0 auto;
}
.section__sub {
  margin: 16px auto 0; text-align: center; max-width: 40em;
  font-size: 17px; color: var(--muted);
}

/* ---------- Galerie: vier Bildschirme nebeneinander ---------- */
.gallery {
  display: flex; gap: 28px; justify-content: center;
  margin-top: 56px; padding: 0 22px 8px;
  overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.gallery::-webkit-scrollbar { display: none; }
.gallery__item {
  flex: 0 0 auto; text-align: center; scroll-snap-align: center;
  max-width: 230px;
}
.gallery__item .phone { width: 230px; }
.gallery__item figcaption { margin-top: 18px; font-size: 14px; color: var(--muted); }

/* ---------- Schritte ---------- */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 56px; }
.step {
  padding: 28px 24px; border-radius: var(--radius-lg);
  background: var(--card); border: 1px solid var(--hairline);
}
.section--alt .step { border-color: transparent; }
.step__num {
  width: 28px; height: 28px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 600;
  background: var(--accent); color: #fff; margin-bottom: 14px;
}
.step h3 { font-size: 17px; font-weight: 600; color: var(--ink); margin-bottom: 6px; letter-spacing: -0.015em; }
.step p { font-size: 15px; color: var(--muted); }

/* ---------- Vertrauensleiste ---------- */
.trust { border-top: 1px solid var(--hairline); }
.trust__inner {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 40px;
  padding: 24px 0;
}
.trust__item { font-size: 13px; color: var(--muted); display: inline-flex; align-items: center; gap: 8px; }
.trust__item svg { width: 16px; height: 16px; color: var(--accent); flex: none; }

/* ---------- Pro-Chips ---------- */
.chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 44px; }
.chip {
  font-size: 14px; color: var(--body);
  border: 1px solid var(--hairline-2); border-radius: 999px;
  padding: 8px 16px; background: var(--card);
  display: inline-flex; align-items: center; gap: 8px;
}
.chip svg { width: 16px; height: 16px; color: var(--accent); flex: none; }
.chip--gold { border-color: var(--accent); color: var(--accent-ink); }

/* ---------- FAQ ---------- */
.faq { max-width: 720px; margin: 52px auto 0; }
.faq__item { border-top: 1px solid var(--hairline); }
.faq__item:last-child { border-bottom: 1px solid var(--hairline); }
.faq__item summary {
  list-style: none; cursor: pointer;
  padding: 24px 34px 24px 0; position: relative;
  font-size: 17px; font-weight: 600; color: var(--ink); letter-spacing: -0.015em;
}
.faq__item summary::-webkit-details-marker { display: none; }
/* Das Plus wird beim Aufklappen zum Minus — dieselbe Geste wie in
   Apples Support-Seiten. */
.faq__item summary::before,
.faq__item summary::after {
  content: ""; position: absolute; right: 4px; top: 50%;
  background: var(--muted); transition: transform .25s ease, opacity .25s ease;
}
.faq__item summary::before { width: 14px; height: 1.5px; margin-top: -0.75px; }
.faq__item summary::after { width: 1.5px; height: 14px; margin-top: -7px; right: 10.2px; }
.faq__item[open] summary::after { transform: rotate(90deg); opacity: 0; }
.faq__a { padding: 0 34px 26px 0; margin-top: -6px; font-size: 15px; color: var(--muted); }

/* ---------- Abschluss-Band ---------- */
.cta-band { padding: 110px 0; text-align: center; background: var(--bg-alt); }
.cta-band__icon { margin-bottom: 24px; line-height: 0; display: flex; justify-content: center; }
.cta-band__icon img { width: 46px; height: 46px; border-radius: 12px; }

/* ---------- Footer ---------- */
.footer { border-top: 1px solid var(--hairline); padding: 40px 0; background: var(--bg); }
.footer__inner { display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: center; justify-content: space-between; }
.footer__brand { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; color: var(--ink); }
.footer__brand img { width: 20px; height: 20px; border-radius: 5px; }
.footer__links { display: flex; flex-wrap: wrap; gap: 22px; }
.footer__links a { font-size: 12px; color: var(--muted); }
.footer__links a:hover { color: var(--ink); }
.footer__legal { font-size: 12px; color: var(--muted); margin-top: 18px; }

/* ---------- Rechtstexte (privacy.html / terms.html) ---------- */
.legal { padding: 64px 0 96px; }
.legal h1 { font-size: clamp(30px, 4vw, 42px); font-weight: 600; letter-spacing: -0.03em; color: var(--ink); }
.legal h2 { font-size: 21px; font-weight: 600; color: var(--ink); margin-top: 36px; margin-bottom: 10px; letter-spacing: -0.02em; }
.legal p, .legal li { font-size: 16px; color: var(--body); margin-bottom: 10px; }
.legal ul { padding-left: 20px; }
.legal__date { font-size: 13px; color: var(--muted); margin-top: 10px; }

/* ---------- Einblenden beim Scrollen ----------
   Sichtbar per Default: ohne JavaScript (oder wenn der Beobachter nie
   feuert) darf nichts unsichtbar bleiben. Erst script.js setzt die
   Startposition — und nur, wenn der Nutzer Bewegung zulaesst. */
.reveal--armed {
  opacity: 0; transform: translateY(22px);
  transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
  will-change: opacity, transform;
}
.reveal--in { opacity: 1; transform: none; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .phone--side { width: 190px; }
  .phone--left  { margin-right: -46px; }
  .phone--right { margin-left:  -46px; }
  .story { padding: 80px 0; }
  .story__inner,
  .story--flip .story__inner { grid-template-columns: 1fr; gap: 44px; justify-items: center; text-align: center; }
  .story--flip .story__copy, .story--flip .story__shot { order: 0; }
  .story h2 { max-width: 16em; }
  .story__copy > p { margin-left: auto; margin-right: auto; }
  .ticks { justify-items: start; text-align: left; max-width: 30em; margin-left: auto; margin-right: auto; }
  .steps { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
  .hero { padding-top: 56px; }
  .hero__stage { margin-top: 44px; }
  .nav__links a { display: none; }
  .nav__links { gap: 10px; }
  .section { padding: 76px 0; }
  .stats { padding-top: 64px; }
  .stats__inner { grid-template-columns: 1fr; gap: 30px; }
  /* Am Handy wird die Galerie gewischt, nicht gestapelt: vier Geraete
     untereinander waeren vier Bildschirme Scrollweg. */
  .gallery { justify-content: flex-start; }
  .phone--side { display: none; }
}

@media (max-width: 480px) {
  .steps { grid-template-columns: 1fr; }
  .phone--xl { width: 272px; }
  .cta-band { padding: 76px 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
  .reveal--armed { opacity: 1; transform: none; }
}
