/* ============================================================
   Startseite v2 (Relaunch 2026-09) — nur in index.html geladen.
   Quelle: Claude-Design-Projekt, Datei „Family Cockpit Landing v2.html".
   Liegt bewusst nicht in site.css: Hub, Ratgeber und Vorlagen teilen
   site.css und sollen vom Relaunch unberührt bleiben. Deshalb wirken
   auch die globalen Overrides hier (Hintergründe, Mobil-Abstände) nur
   auf der Startseite.
   Nicht übernommen aus dem Design: das alte Aufklapp-Menü (lokal ist das
   Vollflächen-Overlay aktiv), .reveal-Einblendungen (seit 2026-08-20
   entfernt), Google-Fonts-Import (Icons laufen self-hosted), die hellere
   Primärbutton-Farbe (Kontrast, siehe site.css).
   ============================================================ */

/* ---- Flächen: alles auf einem warmen Papierton, Karten weiß ---- */
:root { --page-bg: #FAF9F6; --page-alt: #FAF9F6; --page-tint: #FAF9F6; --card-tint: #FFFFFF; }
body { background: var(--page-bg); }
.section--soft  { background: var(--page-bg); }
.section--white { background: var(--page-alt); }
.nav.scrolled { background: color-mix(in srgb, var(--page-bg) 88%, transparent); }
.nav__links { gap: 22px; }

/* ---- Hero ---- */
.hero { z-index: 1; overflow: visible; overflow-x: clip; }
/* Nur Desktop: unter 920px gilt die Mobil-Position aus site.css. Ohne die
   Grenze gewinnt diese Regel dort, weil landing.css später lädt, und die
   Karte ragt aus dem Bildschirm. */
@media (min-width: 921px) {
  .float-card--c { bottom: 24%; left: calc(50% - 330px); }
}
@media (min-width: 921px) and (max-width: 1100px) {
  .float-card--c { left: calc(50% - 280px); }
}

/* ---- Telefon: Dynamic-Island-Notch statt Kerbe ---- */
.phone__notch {
  top: 18px; width: 86px; height: 25px;
  background: #1C1B1A; border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.04);
}

/* ---- Kleinkram ---- */
.testi__author .meta { font-variant-numeric: tabular-nums; }
.pricing-toggle button { cursor: pointer; }
.store-badge { background: transparent; }

/* ---- Aus dem Design übernommen ---- */
.section--tint{background: var(--page-tint);}
.phone__notch::after{content: ""; position: absolute; right: 11px; top: 50%; width: 7px; height: 7px; margin-top: -3.5px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #3A4A5C 0%, #1E2530 55%, #141414 100%);}
.proof-sec{padding:72px 0 16px}
.proof3{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);background:#fff;border:1px solid var(--fc-divider);border-radius:24px;box-shadow:0 1px 2px rgba(26,26,26,.05),0 8px 24px -12px rgba(26,26,26,.10)}
.proof3>*{padding:26px 32px}
.proof3>*+*{border-left:1px solid var(--fc-divider)}
.proof3__big{font-family:var(--fc-font-display);font-weight:700;font-size:clamp(32px,3.2vw,40px);line-height:1;letter-spacing:-.03em;color:var(--fc-text-strong)}
.proof3__stars{display:flex;gap:1px;margin-top:8px;color:#E0A100}
.proof3__stars .material-symbols-rounded{font-size:17px;font-variation-settings:'FILL' 1}
.proof3__lbl{margin-top:8px;font-size:14px;line-height:1.45;color:var(--fc-text);text-wrap:pretty}
.proof3__meta{margin-top:10px;font-size:13.5px;color:var(--fc-text-muted)}
.proof3__quote{margin:0;display:flex;flex-direction:column;justify-content:center;gap:14px}
.proof3__quote blockquote{margin:0;font-family:var(--fc-font-display);font-size:clamp(17px,1.5vw,20px);line-height:1.35;font-weight:600;letter-spacing:-.01em;color:var(--fc-text-strong);text-wrap:balance}
.proof3__quote figcaption{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--fc-text-muted)}
.proof3__quote figcaption b{color:var(--fc-text-strong);font-weight:600}
.proof3__quote .av{width:28px;height:28px;font-size:12px}
@media (max-width:900px){
.proof3{grid-template-columns:1fr 1fr}
.proof3__quote{grid-column:1/-1;grid-row:1;border-bottom:1px solid var(--fc-divider)}
.proof3>*+*{border-left:0}
.proof3>:last-child{border-left:1px solid var(--fc-divider)}
.proof3>*{padding:28px}
}
@media (max-width:520px){
.proof3{grid-template-columns:1fr}
.proof3>:last-child{border-left:0;border-top:1px solid var(--fc-divider)}
.proof3>*{padding:24px}
}
.pa{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto;column-gap:24px;margin-top:56px}
.pa__side{display:grid;grid-template-rows:subgrid;grid-row:span 2}
.pa__stage{border-radius:24px;min-height:380px;padding:28px 36px 36px;display:flex;flex-direction:column;justify-content:flex-start;gap:18px}
.pa__stage>.pa__label{align-self:stretch;display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fc-text-muted);margin-bottom:6px}
.pa__label .material-symbols-rounded{font-size:18px}
.pa__side--after .pa__label{color:var(--fc-primary-pressed)}
.pa__side--after .pa__stage{gap:12px}
.pa__side--after .pa__stage>:nth-child(2){margin-top:12px}
.pa__side--after .pa__stage>:last-child{margin-bottom:0}
.pa__side--after .pa-card{flex:1}
.pa__stage>:nth-child(2){margin-top:auto}
.pa__stage>:last-child{margin-bottom:auto}
.pa__side--before .pa__stage{background:#EDEFF2;align-items:flex-start}
.pa__side--after .pa__stage{background:#fff;border:1px solid var(--fc-divider);align-items:stretch;box-shadow:0 1px 2px rgba(26,26,26,.05),0 8px 24px -12px rgba(26,26,26,.10)}
.pa-wa{background:#fff;border-radius:18px 18px 18px 4px;padding:12px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 6px rgba(0,0,0,.06);transform:rotate(-2deg)}
.pa-wa .material-symbols-rounded{font-size:28px;color:var(--fc-text-muted)}
.pa-wa__bars{display:flex;align-items:center;gap:3px}
.pa-wa__bars i{display:block;width:3px;border-radius:2px;background:#9AA1AB}
.pa-wa__meta{font-size:13px;color:var(--fc-text-muted);white-space:nowrap}
.pa-row{display:flex;align-items:flex-start;width:100%;gap:0}
.pa-letter{flex:1;min-width:0;max-width:230px;margin-top:18px;background:#fff;border-radius:14px;padding:12px 14px 14px;font-size:13px;line-height:1.45;color:var(--fc-text);transform:rotate(-3deg);box-shadow:0 6px 14px -8px rgba(0,0,0,.25)}
.pa-letter__from{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.pa-letter__av{width:22px;height:22px;border-radius:50%;background:#D9DCE1;color:var(--fc-text-muted);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pa-letter__from b{font-size:13px;color:var(--fc-text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pa-letter__from time{margin-left:auto;font-size:11.5px;color:var(--fc-text-muted);white-space:nowrap}
.pa-letter__subj{font-weight:600;color:var(--fc-text-strong)}
.pa-letter__prev{color:var(--fc-text-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pa-note{background:#F6E27A;padding:18px 22px 20px;width:220px;flex-shrink:0;margin-left:auto;position:relative;transform:rotate(3deg);box-shadow:0 8px 18px -8px rgba(0,0,0,.25);font-size:15px;line-height:1.7;color:#3A3200}
.pa-note b{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}
.pa-note s{opacity:.75}
.pa-row--end{align-items:flex-end;justify-content:space-between;gap:16px}
.pa-cals{position:relative;width:210px;height:176px;flex-shrink:0;margin-left:6px}
.pa-cal{position:absolute;left:0;top:0;width:190px;background:#fff;border:1px solid var(--fc-border-strong);border-radius:12px;padding:10px 12px;box-shadow:0 4px 10px -6px rgba(0,0,0,.25)}
.pa-cal:nth-child(1){transform:translate(0,4px) rotate(-3deg)}
.pa-cal:nth-child(2){transform:translate(14px,58px) rotate(2deg)}
.pa-cal:nth-child(3){transform:translate(4px,114px) rotate(-2deg)}
.pa-cal__h{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--fc-text-muted)}
.pa-cal__h .material-symbols-rounded{font-size:15px}
.pa-cal__e{margin-top:3px;font-size:13.5px;font-weight:600;color:var(--fc-text-strong)}
.pa-msg{align-self:flex-end;flex-shrink:1;min-width:0;background:#fff;border-radius:18px 18px 4px 18px;padding:10px 14px;font-size:15px;color:var(--fc-text-strong);box-shadow:0 2px 6px rgba(0,0,0,.06);transform:rotate(1.5deg)}
.pa-msg small{margin-left:10px;font-size:12px;color:var(--fc-text-muted)}
.pa-card{background:#F4F4F1;border:0;border-radius:18px;padding:16px 18px;display:grid;grid-template-columns:44px minmax(0,1fr) 80px;gap:14px;align-items:center;box-shadow:none}
.pa-card__ic{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}
.pa-card__ic .material-symbols-rounded{font-size:22px}
.pa-card__t{font-weight:600;font-size:16px;color:var(--fc-text-strong)}
.pa-card__m{font-size:13.5px;color:var(--fc-text-muted);margin-top:2px}
.pa-card__who{display:flex;align-items:center;justify-content:flex-start;gap:8px;font-size:13px;font-weight:600;color:var(--fc-text-muted);white-space:nowrap}
.pa-card__who .av{width:28px;height:28px;font-size:12px;margin:0;border:0;flex-shrink:0}
.plan__features li > span:not(.material-symbols-rounded){flex: 1; min-width: 0; height: auto; display: block;}
@media (max-width: 600px){
.pricing-toggle{margin: 22px auto 36px;}
.plan{padding: 28px 22px; gap: 15px;}
.plan__price .num{font-size: 40px;}
.plan__badge{left: 22px;}
.plan__save{white-space: normal; overflow: visible; align-items: flex-start; line-height: 1.35;}
.plan__save .material-symbols-rounded{margin-top: 1px;}
}
.pricing-toggle button .save{transition: background 140ms, color 140ms;}
.plan__pricewrap{display: flex; flex-direction: column; gap: 6px;}
.plan__pricewrap .plan__price{margin: 0;}
.plan__sub{font-size: 13.5px; font-weight: 500; color: var(--fc-text-muted); margin: 0; letter-spacing: -0.005em;}
.plan--featured .plan__sub{color: rgba(255,255,255,0.74);}
.plan__save--warn{background: rgba(255,255,255,0.12); color: rgba(255,255,255,0.92);}
.plan__save--warn .material-symbols-rounded{color: rgba(255,255,255,0.92);}
.store-badge svg{height: 100%; width: auto; display: block;}
.testis-more{display:flex;justify-content:center;margin-top:40px}
.plan__fine{margin:-6px 0 0;font-size:12.5px;text-align:center;color:rgba(255,255,255,.62)}
.faq__body a{color:var(--fc-primary);font-weight:600}
.faq__body a:hover{color:var(--fc-primary-pressed)}
.stores{display:flex;gap:14px;flex-wrap:wrap}
.center .stores,.final-cta .stores{justify-content:center}
.store-badge img{height:100%;width:auto;display:block}
.pillar,.testi,.plan:not(.plan--featured){background:var(--card-tint);border:0;box-shadow:none}
.pa__side--before .pa__stage{background:rgba(60,50,40,.06)}
.mock-routine .shop-body{padding-top:14px}
.rt-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:rgba(17,149,137,.10);color:var(--fc-primary-pressed);font-size:11.5px;font-weight:600}
.rt-chip .material-symbols-rounded{font-size:15px}
.rt-name{flex:1;min-width:0}
.rt-av{width:22px;height:22px;border-radius:50%;color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rt-snack{position:absolute;left:12px;right:12px;bottom:16px;display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:14px;background:#1F2A2A;color:#fff;font-size:12px;font-weight:600;line-height:1.35;box-shadow:0 10px 24px -12px rgba(0,0,0,.4)}
.rt-snack span:not(.material-symbols-rounded){font-weight:500;color:rgba(255,255,255,.72)}
.rt-snack .material-symbols-rounded{font-size:20px;color:#7FD6CC}
.ftabs{margin-top:48px}
.ftabs__bar{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;padding:6px;margin:0 auto 56px;width:fit-content;max-width:100%;background:rgba(40,35,25,.05);border-radius:999px}
.ftabs__btn{display:flex;align-items:center;gap:10px;padding:8px 18px 8px 8px;border:0;border-radius:999px;background:transparent;font:600 15px/1 var(--fc-font-sans);color:var(--fc-text);cursor:pointer;transition:background 160ms,box-shadow 160ms,color 160ms}
.ftabs__btn:hover{color:var(--fc-text-strong);background:rgba(255,255,255,.6)}
.ftabs__btn.is-active{background:#fff;color:var(--fc-text-strong);box-shadow:0 1px 2px rgba(26,26,26,.06),0 4px 12px -6px rgba(26,26,26,.14)}
.ftabs__btn:focus-visible{outline:2px solid var(--fc-primary);outline-offset:2px}
.ftabs__ic{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff}
.ftabs__ic .material-symbols-rounded{font-size:18px}
.ftab[hidden]{display:none}
.ftab{animation:ftabIn 280ms var(--fc-ease-out)}
@keyframes ftabIn{
from{opacity:0;transform:translateY(8px)}
to{opacity:1;transform:none}
}
.ftab__h{font-size:clamp(28px,3.4vw,42px)}
.ftab .phone{margin:0 auto}
@media (max-width:720px){
.ftabs__bar{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;border-radius:18px;width:auto;scrollbar-width:none;margin-bottom:36px}
.ftabs__bar::-webkit-scrollbar{display:none}
.ftabs__btn{flex-shrink:0;font-size:14px;padding:6px 14px 6px 6px}
.ftabs__ic{width:26px;height:26px;border-radius:8px}
}
.ftab__tag{display:none}
.ftab__list{margin-top:28px;gap:14px}
.ftab__list li{align-items:center}
.ftab__list li .text strong{margin:0}
@media (max-width:560px){
.h-display{font-size:clamp(34px,10.4vw,46px);hyphens:manual;-webkit-hyphens:manual;letter-spacing:-0.03em}
.hero{padding:96px 0 24px}
.hero__stage{height:520px}
.testis-more{padding:0 20px}
.testis-more .btn{max-width:100%;white-space:normal;text-align:center}
.final-cta .stores{flex-wrap:nowrap;gap:10px}
.final-cta .store-badge{height:46px}
.ftabs__bar{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent);padding-right:28px}
.section{padding:80px 0}
.final-cta{padding-bottom:72px}
.h-display{word-break:normal;overflow-wrap:break-word}
.h-section br{display:none}
}
@media (max-width:760px){
.pa,.plans{display:flex!important;grid-template-columns:none!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px!important;margin-left:-20px!important;margin-right:-20px!important;padding:0 20px 12px;scroll-padding:0 20px;scrollbar-width:none;max-width:none!important}
.pa::-webkit-scrollbar,.plans::-webkit-scrollbar{display:none}
.pa__side,.plan{flex:0 0 86%;min-width:0;scroll-snap-align:start}
.pa__side{display:flex!important;flex-direction:column}
.pa__stage{flex:1;min-height:0;padding:22px 18px;overflow:hidden}
.pa-row{flex-wrap:wrap;gap:12px}
.pa-letter{flex:1 1 150px;max-width:none;margin-right:0}
.pa-note{width:132px;padding:14px 16px 16px;font-size:13px;line-height:1.6}
.pa-row--end{flex-wrap:wrap;justify-content:flex-start}
.pa-cals{width:196px;height:168px;margin-left:0}
.pa-cal{width:180px}
.pa-msg{font-size:13.5px;max-width:100%}
.pa-card{grid-template-columns:40px minmax(0,1fr) auto;gap:12px;padding:14px;flex:none}
.pa__side--after .pa__stage{justify-content:flex-start;gap:10px}
.pa-card__ic{width:40px;height:40px}
.pa-card__who{display:flex;font-size:0;gap:0}
.pa-card__who .av{font-size:12px;width:28px;height:28px;flex-shrink:0;margin:0}
.plans{padding-top:18px;align-items:stretch}
.plan--featured{transform:none!important}
.plan__save{white-space:normal;overflow:visible;line-height:1.35}
.pa__side--after .pa-card{flex:0 0 auto!important}
.pa__side--after .pa__stage>*{margin-top:0!important;margin-bottom:0!important}
.pa__side--after .pa__stage>:first-child{margin-bottom:8px!important}
.pa-wa{max-width:100%;min-width:0;box-sizing:border-box}
.pa-wa__bars{flex:1 1 auto;min-width:0;overflow:hidden}
.pa-wa__meta{white-space:normal;min-width:0}
}
.swipe-dots{display:none}
@media (max-width:760px){
.swipe-dots{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:14px}
.swipe-dots button{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:var(--fc-border-strong);cursor:pointer;transition:width 200ms var(--fc-ease-out),background 200ms}
.swipe-dots button.on{width:22px;background:var(--fc-primary)}
.swipe-dots__lbl{display:inline-flex;align-items:center;gap:4px;margin-left:6px;font-size:12.5px;font-weight:600;color:var(--fc-text-muted)}
.swipe-dots__lbl .material-symbols-rounded{font-size:18px}
.swipe-dots.is-seen .swipe-dots__lbl{opacity:0;transition:opacity 300ms}
}

/* ---- Abschluss-CTA: QR-Code fürs Handy, nur am Desktop ----
   Am Rechner lässt sich keine App installieren: Store-Klicks auf / liegen
   am Desktop bei 7,9 %, mobil bei 29,4 % (PostHog, 08.08.–29.09.2026).
   Der Code führt auf /?ref=qr#cta, siehe tools/make-qr.mjs.
   aria-hidden, weil ein Screenreader mit einem QR-Code nichts anfangen
   kann; die Store-Links darüber sind der zugängliche Weg. */
.cta-qr { display: none; }
@media (min-width: 900px) and (hover: hover) and (pointer: fine) {
  .cta-qr {
    display: inline-flex;
    align-items: center;
    gap: 18px;
    margin-top: 32px;
    padding: 14px 22px 14px 14px;
    border-radius: 18px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    text-align: left;
  }
  .cta-qr img {
    width: 104px;
    height: 104px;
    padding: 8px;
    border-radius: 12px;
    background: #fff;
    flex-shrink: 0;
  }
  .cta-qr__text {
    max-width: 240px;
    font-size: 14px;
    line-height: 1.45;
    color: rgba(255,255,255,0.72);
  }
  .cta-qr__text strong {
    display: block;
    margin-bottom: 2px;
    font-size: 15px;
    color: #fff;
  }
}

/* ---- Kontrast (Lighthouse 29.09.2026) ----
   #119589 mit Weiß erreicht nur 3,7:1, für kleinen Text zu wenig. Das
   dunklere Teal der Buttons (--fc-primary-pressed) kommt auf rund 5:1. */
.plan__badge { background: var(--fc-primary-pressed); }
.plan--featured .btn--white.plan__cta { color: var(--fc-primary-pressed); }

/* ---- Vorlagen-Teaser (Startseite → /vorlagen) ----
   Die Kacheln sind dieselben wie im Katalog (.card aus vorlagen.css, das
   index.html dafür mitlädt). Hier nur das Raster: vier Kacheln in einer
   Reihe statt auto-fill, sonst bricht die vierte am Desktop allein um.
   Unter 640px übernimmt die Listenansicht aus vorlagen.css. */
.vt .gallery { margin-top: 48px; }
@media (min-width: 1000px) {
  .vt .gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
  .vt .card__body { padding: 18px 20px 18px; }
  .vt .card__head h3 { font-size: 18px; }
}
@media (min-width: 641px) and (max-width: 999px) {
  .vt .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.vt__more { display: flex; justify-content: center; margin-top: 40px; }
/* Im Teaser ist die Kachel breiter als im Katalog, das Blatt (Höhe 82 % der
   Matte) wird entsprechend breiter und reicht unten rechts unter die
   Format-Marke. Etwas kleiner und höher gesetzt, damit beides frei steht. */
@media (min-width: 641px) { .vt .card__mat img { top: 7%; height: 76%; } }
