/* ============================================================
   YourSlots — Beta-Design „D" (poppig + verfeinert)
   Ein System: Fraunces (Display) + Inter (Body/UI),
   eine Typo-Skala, ein Radius-Satz, 8px-Rhythmus, mobile-first.
   ============================================================ */

/* ---- Fonts (self-hosted, DSGVO) ---- */
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/InterVariable.woff2) format('woff2');}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 600;font-display:swap;font-optical-sizing:auto;src:url(fonts/Fraunces-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 600;font-display:swap;font-optical-sizing:auto;src:url(fonts/Fraunces-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 600;font-display:swap;font-optical-sizing:auto;src:url(fonts/Fraunces-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 600;font-display:swap;font-optical-sizing:auto;src:url(fonts/Fraunces-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* ---- Tokens ---- */
:root{
  --bg:#fffaf5; --card:#ffffff; --ink:#122522; --muted:#5f6b66; --line:#ece0d3;
  --teal:#0b4a44; --teal-2:#dff0eb; --teal-ink:#0a3f3a;
  --pink:#e94c82; --orange:#f47a22; --coral:#f16d57; --yellow:#f4b536;
  --soft:#fbe9f0; --sand:#f6ecdc;
  --r:18px; --r-lg:24px; --r-pill:999px;
  --shadow-sm:0 8px 24px rgba(45,31,23,.06);
  --shadow:0 18px 50px rgba(45,31,23,.10);
  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --maxw:1140px; --gut:24px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--body);color:var(--ink);line-height:1.6;font-size:16px;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  background:
    radial-gradient(circle at 7% 6%,rgba(233,76,130,.09),transparent 28%),
    radial-gradient(circle at 93% 9%,rgba(244,122,34,.10),transparent 28%),
    linear-gradient(180deg,#fffaf5 0%,#fff7ef 50%,#fffaf5 100%);
  background-repeat:no-repeat;
}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
.wrap{width:min(var(--maxw),calc(100% - (var(--gut)*2)));margin-inline:auto}

/* ---- Type scale ---- */
h1,h2,h3,h4{font-family:var(--display);font-weight:500;color:var(--ink);line-height:1.05;letter-spacing:-.02em}
h1{font-size:clamp(42px,5.6vw,72px);line-height:1.02}
h1 em,h2 em{font-style:italic;font-weight:500;color:var(--pink)}
h2{font-size:clamp(30px,3.6vw,46px);letter-spacing:-.018em}
h3{font-size:21px;font-weight:600;letter-spacing:-.01em}
h4{font-size:18px;font-weight:600}
p{color:var(--muted)}
.lead{font-size:19px;color:var(--muted);line-height:1.55}
strong{color:var(--ink);font-weight:600}

/* ---- Eyebrow (clean, kein Hintergrund-Pill) ---- */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:600 13px/1 var(--body);
  letter-spacing:.13em;text-transform:uppercase;color:var(--teal);margin-bottom:18px}
.eyebrow .dots3{display:inline-flex;gap:4px}
.eyebrow .dots3 i{width:7px;height:7px;border-radius:50%}
.eyebrow .pro{display:inline-flex;align-items:center;padding:3px 8px;border-radius:var(--r-pill);
  background:var(--soft);color:var(--pink);font-size:10px;letter-spacing:.06em}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font:600 15px var(--body);padding:13px 22px;border-radius:var(--r-pill);
  border:1px solid var(--line);background:var(--card);color:var(--ink);white-space:nowrap;
  box-shadow:var(--shadow-sm);transition:transform .12s ease,box-shadow .12s ease;cursor:pointer}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--teal);color:#fff;border-color:var(--teal)}
.btn.pink{background:var(--pink);color:#fff;border-color:var(--pink);box-shadow:0 12px 28px rgba(233,76,130,.30)}
.btn.ghost{background:transparent;box-shadow:none}
/* Ghost-Knopf im teal .cta-Kasten: .btn erbt sonst color:var(--ink) und steht dunkel
   auf dunkel (gemessen 1,58:1 — unlesbar). index.html trug diese Werte bisher als
   Inline-Style an genau einem Link; hier verallgemeinert. (13.08.2026) */
.cta .btn.ghost{color:#fff;border-color:rgba(255,255,255,.4)}
.btn:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
a:focus-visible,button:focus-visible,summary:focus-visible,details:focus-visible{outline:3px solid var(--teal);outline-offset:2px;border-radius:5px}

/* ---- Header / Nav ---- */
header{position:sticky;top:0;z-index:50;background:rgba(255,250,245,.86);
  backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px}
/* Das Logo darf NIE schrumpfen. 05.09.2026, Andre: „auf mobil ist das Logo
   verzerrt". Ursache gemessen: `.nav-right` (Knopf + Burger) ist 197px breit und
   gibt nicht nach, also nahm der Flex-Umbruch die Breite allein vom Logo — bei
   360px Geraetebreite war es 19 % zu schmal, bei 320px 47 %. Die Hoehe stand fest,
   die Breite wurde gestaucht, `object-fit:fill` hat es verzerrt statt beschnitten.
   `flex:none` verhindert das Stauchen, `object-fit:contain` ist das Netz darunter. */
.logo{flex:none}
/* Test 05.09.2026 (Andre): Desktop zeigt die Fassung MIT Zusatz, aber auf der
   BISHERIGEN BREITE — nicht auf der bisherigen Hoehe. Sonst schrumpft die
   Wortmarke, weil die Fassung mit Zusatz hoeher ist. 173px war die Breite,
   die das Logo ohne Zusatz bei 34px Hoehe hatte. */
.logo img{width:173px;height:auto;object-fit:contain}
/* Die kurze Knopfbeschriftung greift nur auf schmalen Geraeten (Regel unten). */
.btn-kurz{display:none}
.navlinks{display:flex;gap:28px;align-items:center;color:var(--muted);font-weight:500;font-size:15px}
.navlinks a:hover{color:var(--ink)}
.nav-right{display:flex;align-items:center;gap:12px}
.nav-toggle{display:none;background:none;border:0;font-size:24px;line-height:1;color:var(--ink);cursor:pointer}

/* ---- Icon system (line icons, monochrom) ---- */
.ic{width:24px;height:24px;stroke:currentColor;stroke-width:1.6;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
.ic-tile{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;
  background:var(--teal-2);color:var(--teal);flex:none}
.ic-tile .ic{width:24px;height:24px}

/* ---- Section rhythm ---- */
section{padding:72px 0;scroll-margin-top:90px}
.section-soft{background:linear-gradient(180deg,rgba(248,230,238,.45),rgba(248,230,238,.15))}
.section-head{max-width:720px;margin:0 auto 44px;text-align:center}
.section-head .eyebrow{justify-content:center}
.section-head h2{margin-bottom:14px}
.section-head p{font-size:18px}

/* ---- HERO ---- */
.hero{display:grid;grid-template-columns:1.02fr .98fr;gap:52px;align-items:center;padding:80px 0 68px}
.hero>div{min-width:0} /* Grid-Item-Fallstrick: ohne das sprengt die waagerecht scrollende .hero-chips-Zeile die Spalte (Grid-Items sind sonst min-width:auto = Inhaltsbreite). */
.hero h1{margin-bottom:16px}
.hero .lead{max-width:36ch;margin-bottom:28px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}
.trustline{display:flex;flex-direction:column;gap:9px;color:var(--muted);font-size:14.5px}
.trustline span{display:flex;align-items:center;gap:9px}
.trustline span::before{content:"";width:20px;height:20px;border-radius:50%;flex:none;
  background:var(--teal-2);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b4a44' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-size:12px;background-position:center;background-repeat:no-repeat}

/* Hero-Chips „Gebaut für“ (04.09.2026, Fix-Runde 1: direkt unter der H1 statt unter den
   Knöpfen — sonst lag die Zeile unter Falz UND Cookie-Banner, siehe task-5-report.md):
   die Zielgruppen-Wahl above the fold. Pillen statt Kacheln — in zwei Sekunden gescannt,
   niemand muss wählen. Mobil eine waagerecht scrollbare Zeile, keine Umbruch-Wand. */
.hero-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 24px}
.hero-chips-label{font:600 12.5px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.hero-chips a{display:inline-flex;align-items:center;padding:7px 13px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}
.hero-chips a:hover{border-color:var(--teal);color:var(--teal)}
.hero-chips a.more{background:var(--teal-2);border-color:transparent;color:var(--teal)}
/* Die kurze Beschriftung greift nur auf dem Handy (siehe Media-Query).
   Grundregel zuerst, sonst ueberschreibt sie die Media-Query wieder. */
.chip-kurz{display:none}
@media(max-width:720px){
  /* 05.09.2026, Andre: „mobil sind 80 % der Besucher, und die waagerechte
     Scroll-Leiste versteht man nicht". Gemessen: von 1.276 px Chip-Breite lagen
     886 px hinter dem rechten Rand — sichtbar waren nur „Keramik bemalen" und
     „Töpferkurse". Eine Kochschule sah nichts von Kochkursen. Deshalb bricht die
     Zeile jetzt um, mit kuerzeren Beschriftungen, damit acht Chips in drei Reihen
     passen: 148 px statt 44 px, dafuer ist alles ohne Wischen zu sehen. */
  .hero-chips{flex-wrap:wrap;overflow:visible;margin-right:0;padding-right:0;gap:7px}
  .hero-chips a{font-size:13.5px;padding:6px 11px}
  .hero-chips-label{width:100%;margin:0 0 2px}
  .chip-lang{display:none}
  .chip-kurz{display:inline}
}



/* ---- Booking mockup (inhaltstreu) ---- */
.mock{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:12px;box-shadow:var(--shadow)}
.mtop{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;
  border-bottom:1px solid var(--line);margin-bottom:10px}
.mtop .dd{display:flex;gap:6px}.mtop .dd i{width:9px;height:9px;border-radius:50%;background:#e7d7c7;display:block}
.mtop .ml{display:flex;align-items:center;gap:8px;font-family:var(--display);font-weight:600;font-size:14px}
.mtop .ml img{height:20px;width:auto}
.bhead{border-radius:var(--r);padding:22px;background:linear-gradient(135deg,var(--pink),var(--orange));color:#fff}
.bhead .tag{font:600 10px var(--body);letter-spacing:.12em;text-transform:uppercase;opacity:.92;margin-bottom:10px}
.bhead h3{font-family:var(--display);color:#fff;font-size:26px;margin-bottom:6px;letter-spacing:-.01em}
.bhead p{font-size:13px;color:rgba(255,255,255,.94)}
.bgrid{display:grid;grid-template-columns:1.35fr .8fr;gap:10px;margin-top:10px}
.calc-card{border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:14px}
.chead{display:flex;justify-content:space-between;align-items:center;color:var(--teal);font-weight:600;font-size:13px;margin-bottom:12px}
.cgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.day{aspect-ratio:1;display:grid;place-items:center;border-radius:50%;color:#9aa19d;font-size:11px;font-weight:600}
.day.active{background:var(--pink);color:#fff;font-weight:700;box-shadow:0 6px 12px rgba(233,76,130,.30)}
.day.dual{color:#fff;font-weight:700;background:linear-gradient(135deg,var(--teal) 0 55%,var(--orange) 56% 100%);box-shadow:0 6px 12px rgba(11,74,68,.20)}


/* Mehrtaegiger Kurs im Mockup-Kalender: verbundenes Band ueber mehrere Tage.
   Wie in der echten App (resources/css/app.css) als Hintergrund AM TAG gezeichnet,
   damit es am Zeilenende von selbst umbricht. Das Raster hat 6px Abstand — das
   Band malt nach RECHTS darueber, sonst ueberlappen sich zwei halbdurchsichtige
   Flaechen und die Naht wird sichtbar. */
/* Eigener Stapelkontext, damit das Band (z-index:-1) hinter dem Tag, aber VOR
   der Karte liegt. Ohne den rutscht es unter die weisse Kartenflaeche und ist weg. */
.cgrid{--cal-gap:6px;position:relative;z-index:0}
/* Mehrtaegiger Kurs: verbundenes Band ueber mehrere Tage, Anfang und Ende kraeftig —
   wie in der echten App. Gezeichnet AM TAG (bricht am Zeilenende von selbst um) und
   nur nach RECHTS ueber die Luecke, sonst ueberlappen sich zwei halbdurchsichtige
   Flaechen und die Naht wird sichtbar. */
.day.ws{position:relative;color:var(--teal);font-weight:700}
.day.ws::before{content:"";position:absolute;top:18%;bottom:18%;left:calc(var(--cal-gap) * -1);right:calc(var(--cal-gap) * -1);
  background:color-mix(in srgb, var(--teal) 16%, #fff);z-index:-1}
.day.ws.ws-start::before{left:50%}
.day.ws.ws-end::before{right:50%}
.day.ws.ws-start,.day.ws.ws-end{background:var(--teal);color:#fff;box-shadow:0 6px 12px rgba(11,74,68,.20)}
.hero-phone .cgrid{--cal-gap:4px}
.scard{border:1px solid var(--line);border-radius:var(--r);background:var(--soft);padding:14px}
.scard h4{font-family:var(--display);font-weight:600;color:var(--teal);font-size:17px;margin-bottom:10px}
.smini{background:#fff;border-radius:13px;padding:10px 11px;margin-bottom:8px;font-size:12.5px;
  box-shadow:var(--shadow-sm);border-left:3px solid var(--pink)}
.smini:nth-child(3){border-left-color:var(--orange)}.smini:nth-child(4){border-left-color:var(--teal)}
.smini:last-child{margin-bottom:0}
.smini b{display:block;color:var(--ink)}.smini span{color:var(--muted);font-size:11px}
.nrow{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:10px;padding:12px;background:var(--sand);border-radius:var(--r)}
.ncard{background:#fff;border-radius:12px;padding:11px;font-size:12px}
.ncard b{display:block;font-size:13px;color:var(--ink)}.ncard small{color:var(--muted)}
.npill{display:inline-flex;margin-top:7px;padding:4px 9px;border-radius:var(--r-pill);
  background:var(--teal-2);color:var(--teal);font-size:10.5px;font-weight:600}

/* ---- Herkunft / Trust band ---- */
.origin{max-width:760px;margin-inline:auto;text-align:center}
.origin .eyebrow{justify-content:center}
.origin h2{margin-bottom:14px}
.origin p{font-size:18px}
.origin a{color:var(--teal);font-weight:600;white-space:nowrap}
.origin-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px}
.origin-meta span{font-size:13px;font-weight:600;color:var(--teal);background:var(--card);
  border:1px solid var(--line);padding:8px 14px;border-radius:var(--r-pill)}

/* ---- Warum / Problem ---- */
.problem{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.problem-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);padding:30px;box-shadow:var(--shadow-sm)}
.problem-card.dark{background:var(--teal);color:#fff;border-color:var(--teal)}
.problem-card h3{font-size:26px;margin-bottom:12px}
.problem-card.dark h3{color:#fff}
.problem-card>p{margin-bottom:18px;font-size:16px}
.problem-card.dark>p{color:#d7eae7}
.checks{display:flex;flex-direction:column;gap:10px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--muted)}
.problem-card.dark .check{color:#eafbf8}
.check::before{content:"";width:18px;height:18px;flex:none;margin-top:2px;background-repeat:no-repeat;background-position:center;background-size:contain}
.problem-card:not(.dark) .check::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e94c82' stroke-width='2.4' stroke-linecap='round'%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3C/svg%3E")}
.problem-card.dark .check::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")}

/* ---- Module (3 cleane Karten, KEIN bunter Strich) ---- */
.modules{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.module{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;box-shadow:var(--shadow-sm)}
.module .ic-tile{margin-bottom:18px}
.module h3{margin-bottom:8px}
.module p{font-size:14.5px}

/* „Für dein Studio“-Band (04.09.2026): acht Zielgruppen-Kacheln unterhalb des Heros. */
.studio-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.studio-tile{display:flex;flex-direction:column;gap:6px;padding:20px 20px 18px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-sm);color:var(--ink);text-decoration:none}
.studio-tile:hover{border-color:var(--teal);transform:translateY(-2px);transition:transform .15s ease}
.studio-tile .st-ic{font-size:26px;line-height:1;margin-bottom:4px}
.studio-tile b{font-family:var(--display);font-weight:600;font-size:18px;letter-spacing:-.01em}
.studio-tile>span:not(.st-ic){color:var(--muted);font-size:14px;line-height:1.45}
.studio-tiles-foot{text-align:center;color:var(--muted);margin-top:22px;font-size:15px}
@media(max-width:1000px){.studio-tiles{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.studio-tiles{grid-template-columns:1fr}}

/* ---- appshow (Mobil / Integration / Statistik) ---- */
.appshow{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
/* Dieselbe Falle wie bei .screen-card: Raster-Kinder duerfen ohne min-width:0
   nicht unter ihre Inhaltsbreite schrumpfen. Auf einspaltigen Handy-Ansichten
   schob der Einbettungs-Abschnitt die Seite dadurch um 2px nach rechts.
   Gilt fuer alle vier Abschnitte, die bei 1040px auf eine Spalte gehen. */
.hero>*,.appshow>*,.voucher>*,.roi>*{min-width:0}
.feature-points{display:flex;flex-direction:column;gap:18px;margin-top:26px}
.fp{display:flex;gap:14px;align-items:flex-start}
.fp .ic-tile{width:42px;height:42px;border-radius:12px}
.fp .ic-tile .ic{width:21px;height:21px}
.fp b{display:block;color:var(--ink);font-weight:600;margin-bottom:2px;display:flex;align-items:center;gap:8px}
.fp span{font-size:14px;color:var(--muted)}

/* phone mock */
.phone-wrap{display:flex;justify-content:center}
.phone{width:300px;max-width:100%;background:#fff;border:1px solid var(--line);border-radius:34px;
  padding:16px;box-shadow:var(--shadow);position:relative}
.phone-screen{background:linear-gradient(160deg,var(--soft),#fff);border-radius:24px;padding:20px;border:1px solid var(--line)}
.ps-tag{font:600 10px var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--pink)}
.phone-screen h4{font-family:var(--display);font-size:22px;margin:8px 0 16px;color:var(--ink)}
.ps-card{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);
  border-radius:14px;padding:12px;margin-bottom:10px;box-shadow:var(--shadow-sm)}
.ps-card b{font-size:13px;color:var(--ink)}.ps-card small{display:block;color:var(--muted);font-size:11px}
.ps-card .chip{font-size:11px;font-weight:600;color:var(--teal);background:var(--teal-2);padding:4px 9px;border-radius:var(--r-pill)}
.ps-card .toggle{width:34px;height:20px;border-radius:var(--r-pill);background:var(--teal);position:relative;flex:none}
.ps-card .toggle::after{content:"";position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;background:#fff}
.install-chip{position:absolute;top:-12px;left:50%;transform:translateX(-50%);white-space:nowrap;
  background:var(--ink);color:#fff;font-size:11px;font-weight:600;padding:6px 12px;border-radius:var(--r-pill);box-shadow:var(--shadow-sm)}
.push-toast{position:absolute;bottom:24px;left:-18px;display:flex;gap:10px;align-items:center;background:#fff;
  border:1px solid var(--line);border-radius:14px;padding:10px 12px;box-shadow:var(--shadow);max-width:210px}
.push-toast img{height:24px;width:auto}
.push-toast b{font-size:12px;color:var(--ink)}.push-toast small{display:block;color:var(--muted);font-size:10.5px}

/* figure cards (integration code / stats) */
.fig{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow-sm)}
.fig-title{font-weight:600;color:var(--ink);margin-bottom:14px;font-size:14px}
.codeblock{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.8;
  background:var(--teal-ink);color:#cfeae4;border-radius:var(--r);padding:16px;overflow:auto}
.codeblock .k{color:var(--yellow)}
.mock-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;
  border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin-top:12px}
.mock-row b{font-size:14px;color:var(--ink)}.mock-row small{display:block;color:var(--muted);font-size:12px}
.tag-green{font-size:12px;font-weight:600;color:var(--teal);background:var(--teal-2);padding:5px 10px;border-radius:var(--r-pill)}
.bars{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:end;height:150px;margin-bottom:10px}
.bar{background:var(--teal-2);border-radius:8px 8px 4px 4px}
.bar.t{background:linear-gradient(180deg,var(--pink),var(--orange))}
.barlabels{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;text-align:center;font-size:12px;color:var(--muted);font-weight:600}

/* ---- Screens ---- */
.screens{display:grid;grid-template-columns:1fr 1fr;gap:24px}
/* min-width:0 — sonst darf das Raster-Kind nicht unter seine Inhaltsbreite
   schrumpfen (Vorgabe min-width:auto) und schiebt die Seite bei 320px um 8px
   nach rechts. Gefunden 05.09.2026, Andre: „das stoert mich schon lange". */
.screen-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px;box-shadow:var(--shadow-sm);min-width:0}
.screen-frame{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;min-height:230px}
.caption{font-size:13px;color:var(--muted);padding:14px 6px 4px}
/* admin skeleton */
.admin{display:grid;grid-template-columns:60px 1fr;min-height:230px}
.admin-side{background:var(--teal);padding:16px 12px;display:flex;flex-direction:column;gap:10px}
.admin-side .ln{height:8px;border-radius:4px;background:rgba(255,255,255,.25)}
.admin-side .ln.on{background:var(--pink)}
.admin-main{padding:16px}
.admin-main .ln{height:9px;border-radius:5px;background:var(--line);margin-bottom:8px}
.table{margin-top:6px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.tr{display:grid;grid-template-columns:1fr 1.3fr .8fr;gap:8px;padding:9px 12px;font-size:12px;border-bottom:1px solid var(--line)}
.tr:last-child{border-bottom:0}
.tr.head{background:var(--sand)}.tr.head span{font-weight:600;color:var(--ink)}
.tr span{color:var(--muted)}

/* ---- Gutscheine (neu) ---- */
.voucher{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.voucher-card{position:relative;border-radius:var(--r-lg);padding:28px;color:#fff;
  background:linear-gradient(135deg,var(--pink),var(--coral) 60%,var(--orange));box-shadow:var(--shadow)}
.voucher-card .vc-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}
.voucher-card .vc-brand{display:flex;align-items:center;gap:8px;font-family:var(--display);font-weight:600;font-size:15px}
.voucher-card .vc-amt{font-family:var(--display);font-size:46px;line-height:1}
.voucher-card .vc-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.9}
.voucher-card .vc-code{margin-top:22px;font-family:ui-monospace,monospace;font-size:14px;letter-spacing:.18em;
  background:rgba(255,255,255,.16);border:1px dashed rgba(255,255,255,.5);border-radius:12px;padding:10px 14px;text-align:center}
.voucher-card .vc-foot{display:flex;justify-content:space-between;font-size:11px;opacity:.9;margin-top:14px}

/* ---- No-Show ROI ---- */
.roi{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.roi h2{margin-bottom:14px}
.roi p{font-size:17px}
.roi-calc{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow-sm)}
.roi-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}
.roi-row span{color:var(--muted);font-size:15px}.roi-row strong{font-size:18px}
.roi-total{margin-top:16px;background:var(--teal);color:#fff;border-radius:var(--r);padding:16px 18px;font-size:15px;font-weight:500}

/* ---- Steps ---- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;box-shadow:var(--shadow-sm);position:relative}
.step .num{font-family:var(--display);font-size:40px;color:var(--pink);line-height:1;margin-bottom:14px}
.step:nth-child(2) .num{color:var(--orange)}.step:nth-child(3) .num{color:var(--teal)}
.step h3{margin-bottom:8px}.step p{font-size:14.5px}

/* ---- Pricing ---- */
.billing-wrap{display:flex;justify-content:center;margin-bottom:34px}
.billing-toggle{display:inline-flex;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-pill);padding:5px}
.bt-opt{border:0;background:none;font:600 14px var(--body);color:var(--muted);padding:9px 16px;border-radius:var(--r-pill);cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.bt-opt.active{background:var(--teal);color:#fff}
.bt-save{font-size:11px;font-weight:600;padding:2px 7px;border-radius:var(--r-pill);background:var(--yellow);color:#4a3204}
.bt-opt.active .bt-save{background:rgba(255,255,255,.22);color:#fff}
.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start}
.price{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;box-shadow:var(--shadow-sm)}
.price.popular{border-color:var(--teal);box-shadow:var(--shadow);position:relative}
.price .label{position:absolute;top:-13px;left:28px;background:var(--teal);color:#fff;font-size:12px;font-weight:600;padding:5px 12px;border-radius:var(--r-pill)}
.price h3{font-size:24px;margin-bottom:6px}
.price>p{font-size:14px;min-height:42px;margin-bottom:14px}
.amount{margin-bottom:18px}
.amt-num{font-family:var(--display);font-size:42px;color:var(--ink)}
.amt-sub{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.price ul{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.price li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--muted)}
.price li::before{content:"";width:18px;height:18px;flex:none;margin-top:2px;background-repeat:no-repeat;background-position:center;background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b4a44' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")}
.price .btn{width:100%}
.note{max-width:760px;margin:30px auto 0;text-align:center;font-size:13.5px;color:var(--muted)}

/* ---- Vergleichstabelle ---- */
.feature-table{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.ft-row{display:grid;grid-template-columns:2.2fr .9fr .9fr .9fr;gap:8px;padding:13px 18px;border-bottom:1px solid var(--line);align-items:center;font-size:14px}
.ft-row:last-child{border-bottom:0}
.ft-row>span:first-child{color:var(--ink)}
.ft-row>span:not(:first-child){text-align:center;color:var(--muted)}
.feature-table .ft-row.head{background:var(--teal);font-weight:600}
.feature-table .ft-row.head>span{color:#fff}
.feature-table .ft-row.group{background:var(--sand)}
.feature-table .ft-row.group>span:first-child{font-weight:600;color:var(--ink)}
.ft-yes{color:var(--teal)!important;font-weight:700}
.ft-no{color:#cbb9a8!important}

/* ---- Testimonial ---- */
.testi{max-width:840px;margin-inline:auto;text-align:center}
.testi .quote{font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(24px,3.4vw,34px);
  line-height:1.35;color:var(--ink);margin-bottom:24px}
.testi .stars{color:var(--yellow);letter-spacing:4px;font-size:20px;margin-bottom:18px}
.testi .who{display:flex;align-items:center;justify-content:center;gap:12px}
.testi .av{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--orange));
  display:grid;place-items:center;color:#fff;font-family:var(--display);font-weight:600;font-size:18px}
.testi .who b{color:var(--ink);font-weight:600;display:block}
.testi .who span{font-size:13px;color:var(--muted)}

/* ---- FAQ ---- */
.faq-list{max-width:780px;margin-inline:auto;display:flex;flex-direction:column;gap:12px}
.faq-item{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);overflow:hidden}
.faq-item summary{list-style:none;cursor:pointer;padding:18px 22px;font-weight:600;color:var(--ink);
  display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-family:var(--display);font-size:24px;color:var(--teal);transition:transform .2s}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-body{padding:0 22px 20px;color:var(--muted);font-size:15px}

/* ---- CTA ---- */
.cta{background:var(--teal);color:#fff;border-radius:var(--r-lg);padding:48px;display:grid;
  grid-template-columns:1.4fr .9fr;gap:32px;align-items:center;box-shadow:var(--shadow)}
.cta h2{color:#fff;margin-bottom:12px}
.cta p{color:#d7eae7;font-size:16px}
.cta-actions{display:flex;flex-direction:column;gap:12px}
.cta .btn{width:100%}

/* ---- Footer ---- */
footer{border-top:1px solid var(--line);padding:48px 0;margin-top:24px}
.foot{display:flex;flex-direction:column;gap:22px;align-items:center;text-align:center}
.foot img{height:30px}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;color:var(--muted);font-size:14px}
.footer-links a:hover{color:var(--ink)}

/* ============ RESPONSIVE ============ */
@media(max-width:960px){
  .hero,.appshow,.voucher,.roi{grid-template-columns:1fr;gap:40px}
  .modules,.steps,.pricing{grid-template-columns:1fr}
  .screens{grid-template-columns:1fr}
  .problem{grid-template-columns:1fr}
  .cta{grid-template-columns:1fr;padding:36px;text-align:center}
  .cta-actions{max-width:320px;margin-inline:auto;width:100%}
  .hero{padding:48px 0 36px}
  .price.popular{order:-1}
}
@media(max-width:760px){
  :root{--gut:18px}
  section{padding:52px 0}
  .navlinks{display:none}
  .nav.open .navlinks{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;
    gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:8px 18px 18px}
  .nav.open .navlinks a{padding:12px 0;border-bottom:1px solid var(--line)}
  .nav-toggle{display:block}
  .nav{gap:12px}
  .logo img{width:143px;height:auto}
  .nav .btn.primary{padding:9px 15px;font-size:13.5px}
  /* Booking-Mockup innen sauber stapeln */
  .bgrid{grid-template-columns:1fr}
  .nrow{grid-template-columns:1fr}
  .cta{padding:28px}
  /* Vergleichstabelle: kompakter */
  .ft-row{grid-template-columns:1.6fr .7fr .7fr .7fr;padding:11px 12px;font-size:12.5px;gap:4px}
  .section-head{margin-bottom:32px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* ============================================================
   Unterseiten + Funktionsseiten-Komponenten
   ============================================================ */
.feature-hero,.lp-hero,.page-hero{padding:56px 0 6px}
.feature-hero h1,.lp-hero h1{font-size:clamp(40px,5vw,66px);margin-bottom:14px}
.feature-hero .lead,.lp-hero .lead{max-width:64ch}
.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:14px}
.breadcrumb a{color:var(--teal);font-weight:600}
.lead-sm{font-size:16px;color:var(--muted);margin-bottom:14px}

/* „Kurz gesagt“ — leise Fassung (04.09.2026, André: der dunkle Kasten war zu
   dominant, ein zweiter dunkler Block direkt unter dem Hero). Kein Hintergrund,
   kein Schatten: ein schmaler Balken links, das Label als Kapitälchen, der Text
   etwas größer als Fließtext. Liest sich wie ein Vorspann, nicht wie Werbung.
   Fix-Runde 1 (04.09.2026): margin:0 auto zentrierte den Kasten INNERHALB von
   .wrap, während H1/Lead direkt in .wrap linksbündig stehen — drei verschiedene
   Kanten auf einer Seite. margin:0 hält den Balken auf derselben Kante wie H1;
   max-width:64ch spiegelt exakt die Breite von .lp-hero .lead (beta.css:397).
   `ch` bemisst sich an der Schriftgröße des Elements selbst — .lead ist 19px
   (Zeile 50), deshalb hier ebenfalls font-size:19px setzen (Kind-Elemente
   .tldr>strong/.tldr p überschreiben ihre eigene Größe ohnehin explizit),
   sonst ergäbe 64ch bei geerbten 16px eine spürbar schmalere Spalte. */
.tldr{max-width:64ch;font-size:19px;margin:0;padding:6px 0 6px 22px;border-left:4px solid var(--teal);border-radius:0;background:transparent;box-shadow:none;color:var(--ink)}
.tldr>strong{display:block;font:600 12.5px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:10px}
.tldr p{color:var(--ink);font-size:17.5px;line-height:1.55;margin:0}

/* Prose */
.prose{max-width:760px}
.prose h2{font-size:clamp(24px,3vw,32px);margin:34px 0 12px}
.prose h2:first-child{margin-top:0}
.prose p{margin-bottom:14px;font-size:16.5px;color:var(--muted)}
.prose strong{color:var(--ink)}
.prose a{color:var(--teal);font-weight:600}
.prose ul{list-style:none;display:flex;flex-direction:column;gap:10px;margin:0 0 18px}
.prose li{position:relative;padding-left:28px;color:var(--muted)}
.prose li::before,.feature-copy li::before,.about-list li::before{content:"";position:absolute;left:0;top:4px;width:18px;height:18px;background-repeat:no-repeat;background-position:center;background-size:contain;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b4a44' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")}

/* Linkcards */
.linkcards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.linkcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:6px;transition:transform .12s ease}
.linkcard:hover{transform:translateY(-2px)}
.linkcard b{font-family:var(--display);font-weight:600;font-size:18px;color:var(--ink)}
.linkcard span{font-size:14px;color:var(--muted)}
.linkcard .arrow{color:var(--teal);font-weight:600;margin-top:auto}

/* Über uns */
.about{display:grid;grid-template-columns:1.4fr .9fr;gap:40px;align-items:start}
.about-text h2{margin-bottom:14px}
.about-text p{margin-bottom:14px;font-size:16.5px;color:var(--muted)}
.about-text strong{color:var(--ink)}
.about-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--shadow-sm)}
.about-badge{display:inline-flex;background:var(--teal-2);color:var(--teal);font-weight:600;font-size:14px;padding:8px 14px;border-radius:var(--r-pill);margin-bottom:16px}
.about-list{list-style:none;display:flex;flex-direction:column;gap:10px}
.about-list li{position:relative;padding-left:26px;color:var(--muted);font-size:15px}

/* Funktionen — Feature-Reihen */
.feature-rows{display:flex;flex-direction:column;gap:40px}
.feature-row{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;padding:38px 40px;border-radius:28px}
/* Dezent alternierende Soft-Flächen (wie die Startseiten-Sektionen): jede 2. Karte zart getönt. */
.feature-row:nth-child(odd){background:linear-gradient(180deg,rgba(248,230,238,.5),rgba(248,230,238,.16))}
/* Einheitlich: Grafik immer rechts, Text links (keine Alternierung). */
.feature-row .feature-fig{order:2}
/* An die Startseiten-Sektionen (appshow) angeglichen. */
.feature-copy h3{font-size:clamp(26px,2.4vw,32px);letter-spacing:-.012em;margin-bottom:10px}
.feature-copy .lead-sm{font-size:18px;line-height:1.55;margin-bottom:16px}
.feature-copy li{font-size:15px}
/* Funktionsgruppen */
.feature-group{padding:64px 0;scroll-margin-top:132px}
.feature-group-head{text-align:center;margin-bottom:44px}
.feature-group-head h2{font-size:clamp(26px,3vw,38px);letter-spacing:-.018em}
/* Sticky Gruppen-Navigation (unter dem Header). */
.feature-jump{position:sticky;top:76px;z-index:40;background:rgba(255,250,245,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
/* „safe center": mittig, solange alles hineinpasst — sobald es zu breit wird,
   faellt der Browser auf linksbuendig zurueck. Ohne das schneidet
   justify-content:center den ANFANG ab, und dorthin kann man nicht scrollen
   (scrollLeft kennt kein Minus). Gebraucht seit der siebte Knopf dazukam
   (14.08.2026, „Bezahlen & Rechnungen"): Ab da passt die Leiste auch auf
   1400 px nicht mehr in eine Zeile. Aeltere Browser kennen `safe` nicht,
   verwerfen die Zeile und stehen damit ebenfalls linksbuendig. */
.feature-jump .wrap{display:flex;justify-content:safe center;gap:8px;overflow-x:auto;padding:12px 0;scrollbar-width:none}
.feature-jump .wrap::-webkit-scrollbar{display:none}
/* Abstand und Innenrand sind knapp bemessen (10→8 px, 14→12 px, 14.08.2026):
   Damit passen die sieben Knoepfe auf einem 1200-px-Fenster in EINE Zeile.
   Mit den alten Werten ragte der letzte um 35 px hinaus und sah abgeschnitten
   aus — nachgemessen mit pruef-t11-jump.js. */
.feature-jump a{flex:0 0 auto;font-size:13.5px;font-weight:600;color:var(--muted);background:#fff;border:1px solid var(--line);padding:7px 12px;border-radius:var(--r-pill);white-space:nowrap;text-decoration:none}
.feature-jump a:hover{color:var(--teal);border-color:var(--teal)}
.feature-copy ul{list-style:none;display:flex;flex-direction:column;gap:10px;margin-top:10px}
.feature-copy li{position:relative;padding-left:26px;color:var(--muted);font-size:15px}
.tag-row{margin-bottom:10px;display:flex;gap:8px;flex-wrap:wrap}
.fig.tint{background:var(--soft)}

/* Mock-Bausteine */
.mr-main{display:flex;align-items:center;gap:10px}
.chip{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:5px 10px;border-radius:var(--r-pill);background:var(--teal-2);color:var(--teal)}
.chip.pink{background:var(--soft);color:var(--pink)}
.chip.sand{background:var(--sand);color:#8a6a32}
.chip.line{background:#fff;border:1px solid var(--line);color:var(--muted)}
.swatches{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.swatch{width:22px;height:22px;border-radius:7px;border:1px solid var(--line)}
.btnmock{display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;padding:7px 12px;border-radius:var(--r-pill);background:var(--teal);color:#fff;border:1px solid var(--teal)}
.btnmock.ghost{background:#fff;color:var(--muted);border-color:var(--line)}
.btnmock.pink{background:var(--pink);border-color:var(--pink);color:#fff}
.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;flex:none}
.mailcard{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.mc-head{display:flex;align-items:center;gap:10px;padding:14px;background:linear-gradient(135deg,var(--pink),var(--orange));color:#fff;font-size:14px;font-weight:600}
.mc-body{padding:14px;display:flex;flex-direction:column;gap:8px}
.line{height:9px;border-radius:5px;background:var(--line)}
.pro-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:4px 9px;border-radius:var(--r-pill);background:var(--pink);color:#fff;letter-spacing:.03em}
.pro-badge.soft{background:var(--soft);color:var(--pink)}
.stars{color:var(--yellow);letter-spacing:2px}
.stars.sm{font-size:12px;letter-spacing:1px}
.mini-spots{width:22px;height:22px;border-radius:7px;flex:none;border:1px solid rgba(255,255,255,.4);background:
  radial-gradient(circle at 33% 30%,var(--pink) 0 24%,transparent 25%),
  radial-gradient(circle at 70% 36%,var(--orange) 0 22%,transparent 23%),
  radial-gradient(circle at 66% 70%,var(--teal) 0 26%,transparent 27%),
  radial-gradient(circle at 30% 68%,var(--yellow) 0 22%,transparent 23%),#fff}
.booking-hero{border-radius:var(--r);padding:22px;background:linear-gradient(135deg,var(--pink),var(--orange));color:#fff}
.booking-hero .tag{font:600 10px var(--body);letter-spacing:.1em;text-transform:uppercase;opacity:.92;margin-bottom:10px;display:inline-block}
.booking-hero h3{font-family:var(--display);color:#fff;letter-spacing:-.01em}
.session-mini{border:1px solid var(--line);border-top:4px solid var(--pink);border-radius:14px;padding:12px;background:#fff;box-shadow:var(--shadow-sm);font-size:13px}
.session-mini strong{display:block;color:var(--ink)}
.table .tr strong{font-weight:600;color:var(--ink)}

@media(max-width:960px){
  .feature-row{grid-template-columns:1fr;gap:26px;scroll-margin-top:120px;padding:24px}
  .feature-row .feature-fig{order:0}
  .linkcards{grid-template-columns:1fr}
  .about{grid-template-columns:1fr}
}

/* ============================================================
   Zielgruppen-Überarbeitung 07/2026 (Beta): Module-4er, Hero-Handy, Kontakt
   ============================================================ */
/* Module: jetzt 4 Kacheln statt 3 */
#module .modules{grid-template-columns:repeat(4,1fr)}
@media(max-width:1024px){#module .modules{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){#module .modules{grid-template-columns:1fr}}

/* Hero als Handy-Mockup (vereinfachter Kalender, reines HTML/CSS im Flat-Stil) */
.hero-phone{display:flex;justify-content:center;align-items:center}
.hero-phone .phone{width:330px}
.hero-phone .phone-screen{padding:18px}
.hero-phone .calc-card{padding:12px;margin-bottom:12px}
.hero-phone .chead{margin-bottom:10px}
.hero-phone .cgrid{gap:5px}
.hero-phone .day{font-size:12px}
.hero-phone h4{margin:4px 0 14px;font-size:20px;font-family:var(--display);color:var(--ink)}
.hero-phone .ps-tag{color:var(--pink)}
.hero-phone .ps-card{margin-bottom:8px}
.hero-phone .ps-card:last-child{margin-bottom:0}

/* Kontaktseite */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
/* FAQ-Unterseite: 2-spaltig über die volle Breite (nicht schmal mittig) */
.faq-list.faq-2col{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
@media(max-width:760px){.faq-list.faq-2col{grid-template-columns:1fr}}
.contact-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:32px;box-shadow:var(--shadow-sm)}
.contact-card .ic-tile{margin-bottom:16px}
.contact-card h3{font-size:22px;margin-bottom:10px}
.contact-card p{font-size:15px;margin-bottom:18px}
.contact-lines{display:flex;flex-direction:column;gap:12px}
.contact-lines a{display:inline-flex;align-items:center;gap:10px;font-weight:600;color:var(--teal);font-size:16px}
.contact-lines a:hover{color:var(--ink)}
.contact-lines .cl-note{color:var(--muted);font-weight:400;font-size:13.5px}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr}}

/* ===== Cookie-Consent-Banner ===== */
#ps-consent{position:fixed;left:0;right:0;bottom:0;z-index:200;padding:16px;display:flex;justify-content:center;pointer-events:none}
.ps-consent-card{pointer-events:auto;width:min(720px,100%);background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--shadow);padding:18px 20px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
/* Dasselbe beim Cookie-Banner: flex-basis 320px trifft auf ein Geraet mit 320px
   Gesamtbreite. Ohne min-width:0 wird der Kasten breiter als der Bildschirm. */
.ps-consent-text{flex:1 1 320px;min-width:0;font-size:14px;color:var(--muted);line-height:1.5}
.ps-consent-text strong{color:var(--ink)}
.ps-consent-text a{color:var(--teal);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.ps-consent-actions{display:flex;gap:10px;flex:0 0 auto}
.ps-btn-ghost,.ps-btn-primary{font:600 14px var(--body);padding:11px 18px;border-radius:var(--r-pill);cursor:pointer;border:1px solid var(--line);white-space:nowrap}
.ps-btn-ghost{background:var(--card);color:var(--ink)}
.ps-btn-primary{background:var(--teal);color:#fff;border-color:var(--teal)}
.ps-btn-primary:hover,.ps-btn-ghost:hover{transform:translateY(-1px)}
@media(max-width:560px){.ps-consent-actions{flex:1 1 100%}.ps-btn-ghost,.ps-btn-primary{flex:1}}

/* ============================================================
   Funktionsseite Kachel-Umbau 07/2026
   Übersichtliche Feature-Kacheln mit aufklappbaren Details
   (Vorbild Übersichtlichkeit: reservino, aber Flat-Stil + eigene Grafiken).
   Die alte .feature-row-CSS oben bleibt unverändert erhalten.
   ============================================================ */
.feat-grid{display:grid;grid-template-columns:repeat(2,1fr);align-items:stretch;gap:16px}
@media(min-width:961px){ .feat-card[open]{grid-column:1 / -1} }
.feat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}
.feat-card[open]{box-shadow:0 14px 34px rgba(45,31,23,.10)}
/* Kachel geschlossen: Icon + Titel + 1 Nutzenzeile + Aufklapp-Indikator */
.feat-summary{display:flex;align-items:center;gap:16px;padding:20px;cursor:pointer;list-style:none;transition:background .15s ease}
.feat-summary::-webkit-details-marker{display:none}
.feat-summary:hover{background:rgba(11,74,68,.03)}
.feat-summary .ic-tile{width:44px;height:44px}
.feat-txt{flex:1 1 auto;min-width:0}
.feat-t{display:block;font-family:var(--display);font-weight:600;font-size:19px;line-height:1.25;color:var(--ink);letter-spacing:-.01em}
.feat-t .chip,.feat-t .pro-badge{vertical-align:middle;margin-left:8px}
.feat-sub{display:block;margin-top:5px;font-size:14px;line-height:1.45;color:var(--muted)}
/* Aufklapp-Indikator „+" → „–" mit sanfter Rotation bei [open] */
.feat-summary::after{content:"+";flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);
  display:grid;place-items:center;font-size:20px;font-weight:400;line-height:1;color:var(--teal);background:#fff;
  transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease}
.feat-summary:hover::after{border-color:var(--teal)}
.feat-card[open] .feat-summary::after{content:"–";background:var(--teal);color:#fff;border-color:var(--teal);transform:rotate(180deg)}
/* Aufgeklappter Inhalt: Grafik + volle Beschreibung + Stichpunkte */
.feat-detail{padding:0 20px 22px;border-top:1px solid var(--line)}
.feat-detail .feature-fig{margin-top:18px}
.feat-detail .lead-sm{font-size:16px;line-height:1.55;margin:16px 0 4px}
.feat-detail ul{list-style:none;display:flex;flex-direction:column;gap:10px;margin-top:12px}
.feat-detail li{position:relative;padding-left:26px;color:var(--muted);font-size:15px}
.feat-detail li::before{content:"";position:absolute;left:0;top:4px;width:18px;height:18px;background-repeat:no-repeat;background-position:center;background-size:contain;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b4a44' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")}
@media(max-width:960px){.feat-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.feat-summary::after,.feat-summary{transition:none}.feat-card[open] .feat-summary::after{transform:none}}

/* Hero-Grafik: Desktop = Browser-Fenster, Mobil = Handy */
.hero-mock-d{display:block}
.hero-phone{display:none}
@media(max-width:960px){
  .hero-mock-d{display:none}
  .hero-phone{display:flex}
}

/* Mobile: kein horizontales Scrollen (langes Wort umbrechen, Grafik begrenzen) */
.hero h1{overflow-wrap:break-word;-webkit-hyphens:manual;hyphens:manual}
.hero-phone,.hero-phone .phone{max-width:100%}

/* Mobile-Feinschliff: H1 minimal kleiner (sauberer Umbruch), ruhigerer Handy-Kalender */
.hero h1{-webkit-hyphens:manual;hyphens:manual}
@media(max-width:760px){ .hero h1{font-size:clamp(34px,10.5vw,46px)} }
.hero-phone .day.active,.hero-phone .day.dual{box-shadow:none}
.hero-phone .cgrid{gap:4px}

/* H1 mobil: volle Breite mit gezielten <br class=mbr>-Umbrüchen; Handy schmaler; kleinere Kreise */
@media(min-width:761px){ .hero h1 br.mbr{display:none} }
@media(max-width:760px){
  .hero-phone .phone{width:min(300px,88vw)}
  .hero-phone .day{font-size:12px}
}


/* Social-Icons im Footer */
.footer-social{display:flex;gap:18px;align-items:center}
.footer-social a{color:var(--muted);display:inline-flex;transition:color .15s}
.footer-social a:hover{color:var(--ink)}
.footer-social svg{width:22px;height:22px;display:block}


/* ============================================================
   Nav-Dropdowns 2026-08
   Zwei Aufklapp-Menues („Funktionen", „Fuer dein Studio") in der
   Kopfnavigation. Technik: natives <details class="nav-dd"> —
   damit ist die Tastaturbedienung (Tab → Enter/Leertaste) ohne
   eigenes JS gegeben; das Skript im Nav-Block schliesst nur
   Nachbarmenues, den Klick nach draussen und Escape.
   Reihenfolge im Quelltext: dieser Block steht am ENDE der Datei
   und schlaegt deshalb die aelteren Nav-Regeln (Z. 73-81, 367-385)
   bei gleicher Spezifitaet.
   ============================================================ */

/* ---- Antippflaechen: die alten Navi-Links waren 24 px hoch ---- */
.navlinks > a{display:inline-flex;align-items:center;min-height:44px}
.nav-toggle{min-width:44px;min-height:44px;display:none;align-items:center;justify-content:center;padding:0}
/* Der Knopf war auf dem Handy nur 36 px hoch (Zeile 377 kuerzt das Polster). */
.nav-right .btn{min-height:44px}

/* ---- Aufklapp-Menue (Desktop) ---- */
.nav-dd{position:relative}
.nav-dd > summary{display:inline-flex;align-items:center;gap:7px;min-height:44px;
  cursor:pointer;list-style:none;font-weight:500;color:var(--muted);
  -webkit-tap-highlight-color:transparent}
.nav-dd > summary::-webkit-details-marker{display:none}
.nav-dd > summary::after{content:"";width:6px;height:6px;flex:none;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg);transition:transform .15s ease}
.nav-dd > summary:hover,.nav-dd[open] > summary,.nav-dd.aktiv > summary{color:var(--ink)}
.nav-dd[open] > summary::after{transform:translateY(1px) rotate(-135deg)}
/* Aktive Seite: der Elternpunkt bekommt einen Unterstrich. */
.navlinks .aktiv > summary,.navlinks a[aria-current="page"]{color:var(--ink);
  box-shadow:inset 0 -2px 0 0 var(--teal)}

.nav-dd-menu{position:absolute;top:calc(100% + 12px);left:-14px;z-index:60;
  min-width:280px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--shadow);padding:8px;
  display:flex;flex-direction:column;gap:2px}
.nav-dd-menu a{display:flex;align-items:center;min-height:44px;padding:9px 14px;
  border-radius:12px;font-size:14.5px;font-weight:500;color:var(--muted);
  line-height:1.35;transition:background .12s ease,color .12s ease}
.nav-dd-menu a:hover,.nav-dd-menu a:focus-visible{background:var(--teal-2);color:var(--teal)}
/* „Alle Funktionen im Ueberblick" fuehrt die Liste an. */
.nav-dd-menu a.nav-dd-top{color:var(--ink);font-weight:600;
  border-bottom:1px solid var(--line);border-radius:12px 12px 0 0;margin-bottom:4px}
/* Gruppen im „Fuer dein Studio"-Menue (Keramik / Werkstatt & Genuss /
   Anlaesse), je als <div role="group"> fuer Screenreader — die sichtbare
   Ueberschrift (.nav-dd-group-h) bleibt darin. Kein eigener Fall im
   Burger-Breakpoint noetig — Flex-Spalte bleibt dort erhalten. */
.nav-dd-group{display:flex;flex-direction:column;gap:2px}
.nav-dd-group-h{display:block;padding:10px 14px 4px;font:600 11px/1 var(--body);
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.nav-dd-menu>.nav-dd-group:first-child .nav-dd-group-h{padding-top:4px}
/* „Umstieg von anderen Systemen" ist kein Anlass — steht bewusst ausserhalb
   der Gruppen, abgesetzt durch eine Trennlinie statt einer Ein-Link-Gruppe. */
.nav-dd-menu a.nav-dd-sep{margin-top:10px;padding-top:14px;border-top:1px solid var(--line)}

/* ---- Burger frueher: die Kopfzeile brach ab ~1060 px dreizeilig um ----
   (gemessen 13.08.: bei 768 px war „Was ist neu" 72 px hoch = 3 Zeilen;
   mit zwei zusaetzlichen Menuepunkten wuerde das schlimmer.)
   Korrigiert 13.08.: Umbruchzone lag bei 1061–1159 px (Burger endete bei
   1060, Vollnav passte erst ab 1160 — „Fuer dein Studio"/„Was ist neu"
   brachen zweizeilig, betrifft z. B. 1152er-Notebooks). Breakpoint auf
   1160 angehoben; gekoppelte Stelle: update-nav.py matchMedia.
   Neu gemessen 14.08. (nach Entfernen von „Was ist neu" aus der Nav, per
   Playwright-Feinsweep in 1px-Schritten gegen public-next, Kriterium:
   distinkte top-Werte gerenderter .navlinks-Kinder mit width>0&&height>0 —
   Kopfhoehe allein zeigt den Umbruch nicht): 2-zeilig bis 1105px, ab 1106px
   einzeilig. Breakpoint auf 1120 gesenkt (1106 + kleine Reserve, auf 20er
   gerundet); gekoppelte Stelle: update-nav.py matchMedia.
   Erneut gemessen 14.08. (nach Entfernen von „Vorteile" aus der Nav, gleiche
   Feinsweep-Methode gegen public-next): 2-zeilig bis 1022px, ab 1023px
   einzeilig. Breakpoint auf 1040 gesenkt (1023 + kleine Reserve, auf 20er
   gerundet); gekoppelte Stelle: update-nav.py matchMedia. */
@media(max-width:1040px){
  .navlinks{display:none}
  .nav-toggle{display:inline-flex}
  .nav.open .navlinks{display:flex;position:absolute;top:76px;left:0;right:0;
    flex-direction:column;gap:0;background:var(--bg);
    border-bottom:1px solid var(--line);padding:8px 18px 18px;
    max-height:calc(100dvh - 76px);overflow-y:auto;overscroll-behavior:contain}
  .nav.open .navlinks > a{padding:12px 0;border-bottom:1px solid var(--line);width:100%}
  /* Gruppen werden zu Ueberschriften mit eingerueckten Links — kein Hover. */
  .nav.open .nav-dd{position:static;width:100%}
  .nav.open .nav-dd > summary{width:100%;padding:16px 0 6px;cursor:default;
    font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
    color:var(--muted);opacity:.75}
  .nav.open .nav-dd > summary::after{display:none}
  .nav.open .nav-dd.aktiv > summary,.nav.open .navlinks .aktiv > summary{box-shadow:none;color:var(--teal)}
  .nav.open .nav-dd-menu{position:static;min-width:0;background:none;border:0;
    box-shadow:none;padding:0;gap:0}
  .nav.open .nav-dd-menu a{padding:11px 0 11px 14px;border-radius:0;
    border-bottom:1px solid var(--line);font-size:15px}
  .nav.open .nav-dd-menu a:hover{background:none;color:var(--muted)}
  .nav.open .nav-dd-menu a.nav-dd-top{color:var(--ink);margin-bottom:0;border-radius:0}
  /* Der vorherige Link hat schon eine Trennlinie (border-bottom) — hier reicht
     der zusaetzliche Abstand, keine zweite Linie direkt daneben. */
  .nav.open .nav-dd-menu a.nav-dd-sep{border-top:0;padding-top:11px;margin-top:10px}
}
@media(hover:none){
  .nav-dd-menu a:hover{background:none;color:var(--muted)}
  .nav-dd-menu a.nav-dd-top:hover{color:var(--ink)}
}

/* ---- Sprungleiste: bei schmalen Fenstern lief der linke Rand ins Aus ----
   justify-content:center + overflow-x:auto schneidet den Anfang ab, wenn die
   Leiste breiter ist als das Fenster (gemessen 390 px: erster Knopf bei
   -282 px, 768 px: -93 px — beide unerreichbar). Unterhalb 1200 px linksbuendig. */
@media(max-width:1200px){
  .feature-jump .wrap{justify-content:flex-start;scroll-padding-inline:var(--gut)}
}

/* Ganz ans Dateiende, mit Absicht: der Burger-Block bei 1040px setzt weiter
   oben `.logo img{height:28px}`. Bei gleicher Spezifitaet gewinnt die spaetere
   Regel — stuende dieser Block frueher, waere er wirkungslos (05.09.2026 genau
   so passiert).
   Unter 400px wird es eng: Logo (143px) + Knopf + Burger passen sonst nicht
   nebeneinander. Statt das Logo zu stauchen, wird der Knopf kuerzer und die
   Abstaende enger — das Logo behaelt sein Verhaeltnis. */
@media(max-width:380px){
  .nav{gap:12px}
  .nav-right{gap:8px}
  .btn-lang{display:none}
  .btn-kurz{display:inline}
  .logo img{width:132px;height:auto}
}
