/* Anton Hires Funnel · technischer Modus. Tokens aus Runde 4 (Familjen Grotesk, #003933, #059669), ohne Creme/Serif.
   CSP: nur 'self'. Keine Inline-Styles, keine externen Fonts. */
@font-face{font-family:"Familjen Grotesk";font-weight:400 700;font-display:swap;src:url(familjen-grotesk-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122,U+2212}
@font-face{font-family:"Familjen Grotesk";font-weight:400 700;font-display:swap;src:url(familjen-grotesk-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+1E00-1E9F}
:root{
  --green:#003933;      /* Grundfarbe, Hero, Primärbuttons */
  --green-2:#0B5A50;    /* Hover */
  --emerald:#059669;    /* Akzent: Fortschritt, Marker, Fokus */
  --emerald-ink:#047857;/* Akzent als Text auf Weiß (AA) */
  --paper:#FFFFFF;
  --steel:#F1F4F3;      /* hellgraue Flächen */
  --line:#C5D0CC;
  --ink:#16231F;
  --muted:#4A5A55;
  --error:#B42318; --error-bg:#FEF3F2;
  --notice-bg:#FFF6DB; --notice-line:#C99A06;
  --f:"Familjen Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r:10px; --pad:20px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.5 var(--f);hyphens:manual;overflow-wrap:normal}
img{display:block;max-width:100%}
a{color:var(--green)}
:focus-visible{outline:3px solid var(--emerald);outline-offset:2px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
h1,h2,h3{font-family:var(--f);margin:0;letter-spacing:-.02em;text-wrap:balance}
p{margin:0}
[hidden]{display:none!important}

/* Kopf */
.top{background:var(--green);padding:14px var(--pad) 0}
.top img{height:26px;width:auto}

/* Layout */
.layout{display:grid;grid-template-columns:minmax(0,1fr)}
.content{min-width:0}

/* Hero */
.hero{background:var(--green);color:#fff;padding:28px var(--pad) 32px}
.hero h1{font-weight:700;line-height:1.08;color:#fff}
.hero h1 .nw{white-space:nowrap}
.hero .sub{margin-top:16px;font-size:18px;line-height:1.45;color:#DCEBE5;max-width:40ch}
.facts{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,.28);border-left:1px solid rgba(255,255,255,.28)}
.facts li{border-right:1px solid rgba(255,255,255,.28);border-bottom:1px solid rgba(255,255,255,.28);padding:12px 12px 13px;font-weight:600;font-size:16px;line-height:1.3;display:flex;gap:9px;align-items:flex-start}
.facts li::before{content:"";flex:0 0 8px;height:8px;margin-top:6px;background:var(--emerald);border-radius:1px}
.facts li:first-child{grid-column:1/-1;font-size:18px;background:rgba(5,150,105,.22)}
.btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;padding:14px 20px;border:0;border-radius:var(--r);font:700 19px/1.2 var(--f);text-decoration:none;cursor:pointer;text-align:center}
.btn-light{background:#fff;color:var(--green)}
.btn-light:hover{background:#E4F2EC}
.btn-dark{background:var(--green);color:#fff}
.btn-dark:hover{background:var(--green-2)}
.btn-outline{background:#fff;color:var(--green);border:2px solid var(--green)}
.btn-outline:hover{background:var(--steel)}
.btn-wa{background:var(--emerald-ink);color:#fff}
.btn-wa:hover{background:var(--green-2)}
.btn[disabled]{opacity:.6;cursor:progress}
.hero .btn{margin-top:24px}
.hero .note{margin-top:10px;text-align:center;font-size:15px;color:#DCEBE5}

/* Inhaltsabschnitte */
.sec{padding:36px var(--pad) 0;max-width:680px}
.sec h2{font-size:26px;line-height:1.15;color:var(--green);font-weight:700}
.sec h2+*{margin-top:16px}
.why{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.why li{background:var(--steel);border-radius:var(--r);padding:16px 18px}
.why b{display:block;color:var(--green);font-size:18px;margin-bottom:2px}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ticks li{position:relative;padding-left:30px}
.ticks li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;background:url(check.svg) center/20px no-repeat}
.sec .after{margin-top:16px;font-weight:600;color:var(--green)}
.company p+p{margin-top:10px;color:var(--muted)}
.steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:12px}
.steps li{counter-increment:s;display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:start}
.steps li::before{content:counter(s);width:36px;height:36px;border-radius:50%;background:var(--green);color:#fff;font-weight:700;display:grid;place-items:center}
.steps li span{padding-top:6px}
.next .btn{margin-top:24px}
.content-end{height:40px}

/* Quiz */
.quiz{background:var(--paper)}
.quiz-bar{display:flex;align-items:center;gap:12px;min-height:44px}
.quiz.is-result .progress,.quiz.is-result [data-step-label],.quiz.is-result [data-back]{visibility:hidden}
.quiz.is-thanks .progress,.quiz.is-thanks [data-step-label]{visibility:visible}
.quiz.is-thanks [data-step-label]{color:var(--green)}
.quiz-bar .step{font-size:15px;font-weight:600;color:var(--muted);flex:1}
.icon-btn{background:none;border:0;padding:10px 6px;font:600 16px/1 var(--f);color:var(--green);cursor:pointer;min-height:44px}
.icon-btn:hover{text-decoration:underline}
.progress{height:8px;background:var(--steel);border-radius:4px;overflow:hidden;margin-top:6px}
.progress i{display:block;height:100%;width:12.5%;background:var(--emerald);border-radius:4px;transition:width .25s ease}
.q{border:0;margin:0;padding:0;min-width:0}
.q legend,.q-title{display:block;padding:0;font-weight:700;color:var(--green);font-size:24px;line-height:1.2;letter-spacing:-.015em;margin-top:24px;text-wrap:balance}
.opts{display:grid;gap:10px;margin-top:20px}
.opt{display:block;width:100%;min-height:56px;padding:14px 16px;text-align:left;background:#fff;color:var(--ink);border:2px solid var(--line);border-radius:var(--r);font:600 17px/1.3 var(--f);cursor:pointer}
.opt:hover{border-color:var(--green)}
.opt[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:#fff}

/* Formular */
.form{display:grid;gap:14px;margin-top:20px}
.field label{display:block;font-weight:600;font-size:15px;margin-bottom:6px;color:var(--ink)}
.field input{width:100%;min-height:52px;padding:12px 14px;border:2px solid var(--line);border-radius:var(--r);font:400 17px/1.3 var(--f);color:var(--ink);background:#fff}
.field input:focus{outline:none;border-color:var(--emerald);box-shadow:0 0 0 3px rgba(5,150,105,.25)}
.field input[aria-invalid="true"]{border-color:var(--error);background:var(--error-bg)}
.field .err{margin-top:6px;color:var(--error);font-size:15px;font-weight:600}
.check{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start;font-size:15px;line-height:1.4}
.check input{width:22px;height:22px;margin:1px 0 0;accent-color:var(--green)}
.check.invalid{color:var(--error)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.notice{border:2px solid var(--notice-line);background:var(--notice-bg);border-radius:var(--r);padding:12px 14px;font-weight:600;font-size:15px}
.notice.error{border-color:var(--error);background:var(--error-bg);color:var(--error)}

/* Ergebnis-Ansichten */
.result{padding-top:28px}
.result h2{margin-top:18px;font-size:26px;line-height:1.18;color:var(--green);font-weight:700}
.result p{margin-top:14px;font-size:18px}
.result .btn{margin-top:24px}
.ko-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.ko .q-lead{font-size:18px;margin-top:14px}
.check a,.ko-note a{color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.check.invalid a{color:var(--error)}
.ko-note{font-size:15px;line-height:1.45;color:var(--muted)}
.q-help{margin-top:10px;font-size:16px;line-height:1.45;color:var(--muted)}
.form-note{font-size:15px;line-height:1.45;color:var(--ink);background:var(--steel);border-radius:var(--r);padding:12px 14px}
.ko-change{margin-top:12px;font:600 16px/1.4 var(--f);color:var(--green);background:none;border:0;padding:8px 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;min-height:44px}
/* Dankeseite (Heartbeat): Warnung, pulsierender WhatsApp-Button */
.thanks-alert{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start;background:var(--notice-bg);border:2px solid var(--notice-line);border-radius:var(--r);padding:14px 16px}
.warn-icon{width:30px;height:30px;margin-top:1px;background:url(warning.svg) center/30px no-repeat}
.result .thanks-alert h2{margin:0;font-size:22px;line-height:1.22;color:#5C3A00}
.result .thanks-text{font-size:18px;margin-top:18px}
.btn-wa{gap:10px;min-height:62px;font-size:19px}
.wa-icon{flex:0 0 26px;height:26px;background:url(whatsapp.svg) center/26px no-repeat}
.btn-pulse{animation:wa-pulse 2.2s ease-out infinite}
@keyframes wa-pulse{0%{box-shadow:0 0 0 0 rgba(5,150,105,.55)}70%{box-shadow:0 0 0 14px rgba(5,150,105,0)}100%{box-shadow:0 0 0 0 rgba(5,150,105,0)}}
.result .thanks-text strong{font-weight:700;color:var(--ink)}
/* Zweizeiliger WhatsApp-Button (Danke v2) */
.btn-wa-2{min-height:72px;padding:12px 18px;gap:12px;text-align:left}
.btn-lines{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}
.btn-main{font-size:19px;font-weight:700;text-wrap:balance}
.btn-sub{font-size:15px;font-weight:500;opacity:.92;margin-top:3px}
.result .thanks-small{margin-top:12px;font-size:14px;color:var(--muted);text-align:center}
.ko-done{margin-top:22px;padding:16px 18px;background:var(--steel);border-radius:var(--r)}
.ko-done h3{font-size:20px;color:var(--green);font-weight:700}
.ko-done p{margin-top:6px;font-size:17px}

/* Footer */
.foot{margin-top:48px;border-top:1px solid var(--line);padding:24px var(--pad) 32px;font-size:15px;color:var(--muted);display:grid;gap:14px}
.foot img{height:22px;width:auto}
.foot nav{display:flex;flex-wrap:wrap;gap:6px 20px}
.foot a,.foot .linklike{color:var(--green);font:600 15px/1.4 var(--f);background:none;border:0;padding:6px 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* Mobil: Quiz als Vollbild nach Start */
@media (max-width:1023px){
  .quiz{display:none}
  body.quiz-open{overflow:hidden}
  body.quiz-open .quiz{display:block;position:fixed;inset:0;z-index:20;overflow-y:auto;padding:12px var(--pad) 32px}
}
@media (min-width:1024px){
  :root{--pad:40px}
  body{font-size:18px}
  .top{padding:22px 0 0}
  .top>div{max-width:1240px;margin:0 auto;padding:0 40px}
  .top img{height:30px}
  .layout{max-width:1240px;margin:0 auto;padding:0 40px;grid-template-columns:minmax(0,1fr) 400px;column-gap:48px;align-items:start}
  .hero{grid-column:1;grid-row:1;padding:44px 0 56px;box-shadow:0 0 0 100vmax var(--green);clip-path:inset(0 -100vmax)}
  .hero .sub{font-size:20px}
  .facts{grid-template-columns:repeat(2,1fr);max-width:640px}
  .hero .btn,.hero .note{max-width:360px}
  .hero .btn{margin-top:28px}
  .content{grid-column:1;grid-row:1/3;display:contents}
  .rest{grid-column:1;grid-row:2}
  .sec{padding:48px 0 0}
  .sec h2{font-size:30px}
  .next .btn{max-width:360px}
  .quiz{grid-column:2;grid-row:1/3;position:sticky;top:24px;margin-top:40px;z-index:2;border:1px solid var(--line);border-radius:14px;padding:20px 28px 28px;box-shadow:0 18px 40px -24px rgba(0,57,51,.45)}
  .quiz [data-close]{display:none}
  .foot{padding:28px 40px 40px;max-width:1240px;margin:56px auto 0;grid-template-columns:auto 1fr auto;align-items:center}
}
@media (prefers-reduced-motion:reduce){.progress i{transition:none}.btn-pulse{animation:none}}

/* Consent-Banner Variante C (Stephan 19.10.2026): Modal mit Abdunkeln, Akzeptieren gross/gruen,
   Ablehnen auf derselben Ebene als heller Button (Text #16231F auf #F1F4F3 = 14,7:1, Rand #4A5A55 = 7,3:1). */
.consent-backdrop{position:fixed;inset:0;z-index:49;background:rgba(0,30,27,.45)}
.consent-backdrop[hidden],.consent-banner[hidden]{display:none}
.consent-banner{position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;color:var(--ink);font:400 15px/1.45 var(--f);box-sizing:border-box;max-height:100vh;max-height:100dvh;overflow-y:auto}
.consent-inner{display:flex;flex-direction:column;gap:20px}
.consent-banner h2{font-size:24px;line-height:1.2;color:var(--green);margin:0 0 12px}
.consent-body p{font-size:17px;line-height:1.5;margin:0;max-width:60ch}
.consent-banner a{color:var(--green);font-weight:600}
.consent-actions{display:flex;flex-direction:column;gap:12px}
.consent-btn-accept,.consent-btn-decline{width:100%;box-sizing:border-box;cursor:pointer;font-family:var(--f)}
.consent-btn-accept{min-height:64px;padding:14px 18px;border:0;border-radius:14px;background:#007A4D;color:#fff;font-weight:700;font-size:20px;line-height:1.2;box-shadow:0 6px 18px -6px rgba(0,122,77,.6)}
.consent-btn-accept:hover{background:#006640}
.consent-btn-decline{min-height:50px;padding:12px 16px;border:1.5px solid #4A5A55;border-radius:12px;background:#F1F4F3;color:#16231F;font-weight:600;font-size:16px;line-height:1.2}
.consent-btn-decline:hover{background:#E4E9E7}
.consent-btn-accept:focus-visible,.consent-btn-decline:focus-visible{outline:3px solid var(--emerald);outline-offset:2px}
.consent-meta{margin:0;font-size:13px;text-align:center}
.consent-meta a{color:var(--muted);font-weight:500}
.consent-banner--modal{border-radius:20px 20px 0 0;padding:28px 22px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -16px 40px rgba(0,0,0,.25);min-height:min(50vh,100%);display:flex}
.consent-banner--modal .consent-inner{width:100%;justify-content:space-between}
.consent-banner--legal{border-top:3px solid var(--green);box-shadow:0 -12px 32px -16px rgba(0,57,51,.4);padding:18px var(--pad) calc(16px + env(safe-area-inset-bottom))}
.consent-banner--legal h2{font-size:18px;margin-bottom:6px}
.consent-banner--legal .consent-body p{font-size:15px}
.consent-banner--legal .consent-inner{gap:14px}
.consent-banner--legal .consent-actions{flex-direction:row-reverse}
.consent-banner--legal .consent-btn-accept{min-height:52px;font-size:17px;box-shadow:none}
.consent-banner--legal .consent-btn-decline{min-height:52px}
@media (min-width:768px){
  .consent-banner--modal{top:50%;bottom:auto;left:50%;right:auto;transform:translate(-50%,-50%);width:min(600px,calc(100vw - 48px));min-height:0;max-height:calc(100vh - 48px);border-radius:20px;padding:36px 36px 28px}
}
@media (min-width:1024px){.consent-banner--legal{padding:18px max(40px,calc((100vw - 1160px)/2))}.consent-banner--legal .consent-inner{display:grid;grid-template-columns:1fr 420px;gap:12px 32px;align-items:center}.consent-banner--legal .consent-meta{grid-column:1/-1;text-align:left}}
/* Robin: Ergaenzungen fuer KO je Frage (in Dianas Vorlage nicht enthalten) */
.ko-reason{margin-top:14px}
.ko-change{width:auto}
/* Fix Mia 15.10. 23:20: Checkbox-Fehler wie die anderen Feldfehler (klein, rot), Checkbox-Text bleibt normal */
.form .err{margin-top:6px;color:var(--error);font-size:15px;font-weight:600;line-height:1.4}
.check.invalid{color:inherit}
.check.invalid a{color:var(--green)}
.check.invalid input{outline:2px solid var(--error);outline-offset:2px}
/* Fix Mia: KO-Karte ohne leeren Kopfbereich (Fortschritt/Zurueck entfallen dort) */
.quiz.is-result:not(.is-thanks) .progress{display:none}
.result.ko{padding-top:8px}
.result.ko>h2{margin-top:4px}
@media (min-width:1024px){
  .quiz.is-result:not(.is-thanks) .quiz-head{display:none}
  .quiz.is-result:not(.is-thanks){padding-top:28px}
  .result.ko{padding-top:0}
  .result.ko>h2{margin-top:0}
}
/* Diana v2: "schreiben" nie allein in Zeile 2. text-wrap:balance bricht in WebKit/Chromium nicht am Bindestrich,
   darum zusaetzlich max-width: "Jetzt WhatsApp-" / "Nachricht schreiben" (gemessen 135/173 px bei 19 px, ganze Zeile 220 px) */
.btn-main{max-width:10.5em}
/* Mobil-Check: keine einzelnen Woerter in der letzten Zeile von Fliesstexten */
.q-help,.result p,.ko-note,.form-note,.sub{text-wrap:pretty}
/* 16.10. Stephan: immer ein Weg zurueck. "Neu starten" dezent wie "Antwort ändern", nicht auf der Dankeseite */
.restart-row{margin:20px 0 0;text-align:center}
.restart-link{font:500 15px/1.4 var(--f);color:var(--muted);background:none;border:0;padding:10px 8px;min-height:44px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.restart-link:hover{color:var(--green)}
.quiz.is-thanks .restart-row{display:none}
/* 16.10. Freitext-Option ("Etwas anderes"): bestehende .field/.btn-Stile, nur Abstaende */
.freetext{margin-top:16px;display:grid;gap:12px}
.freetext[hidden]{display:none}
.freetext .field{margin:0}
/* 16.10. Stephan: Abstand Fortschrittsbalken -> Ueberschrift. Chromium ignoriert margin-top an der <legend>
   eines <fieldset> (Desktop-Abstand war 0 px), darum sitzt der Abstand jetzt am Schritt selbst. */
.quiz [data-step]{margin-top:var(--q-gap,28px)}
.q legend,.q-title{margin-top:0}
@media (max-width:1023px){
  body.quiz-open .quiz{padding-top:calc(24px + env(safe-area-inset-top,0px))} /* Karte startet tiefer (vorher 12px) */
  .result.ko{padding-top:20px} /* KO: 24px unter der Kopfzeile (Fortschritt ist dort ausgeblendet) */
}

