/* ============================================================
   Goldfink Landingpage — v3
   Tokens übernommen aus dem Goldfink iOS Design System
   (goldfinch_landingpage_design/_ds/…/tokens/*.css).
   ============================================================ */

:root {
  /* Brand */
  --brand-petrol:      #0E3B3A;
  --brand-petrol-2:    #15514E;
  --brand-gold:        #E8A100;
  --brand-gold-bright: #F2B705;
  --brand-teal:        #14716B;

  /* iOS system greys (light) */
  --sys-grouped-bg:    #F2F2F7;
  --sys-card-bg:       #FFFFFF;
  --sys-fill:          rgba(120,120,128,0.12);

  /* Labels & separators */
  --label:             rgba(0,0,0,1);
  --label-secondary:   rgba(60,60,67,0.60);
  --label-tertiary:    rgba(60,60,67,0.30);
  --separator:         rgba(60,60,67,0.29);

  /* Status */
  --status-on-track:        #34C759;
  --status-needs-attention: #FF9500;
  --status-critical:        #FF3B30;

  /* Semantic aliases */
  --tint:             var(--brand-teal);
  --surface-card:     var(--sys-card-bg);
  --text-primary:     var(--label);
  --text-secondary:   var(--label-secondary);
  --text-tertiary:    var(--label-tertiary);
  --text-on-petrol:   #FFFFFF;
  --text-on-petrol-2: rgba(255,255,255,0.72);
  --text-on-petrol-3: rgba(255,255,255,0.48);
  --surface-petrol:   linear-gradient(150deg, #0E3B3A 0%, #15514E 100%);
  --wash-gold-15:     rgba(232,161,0,0.15);

  /* Typografie */
  --font-text: -apple-system, BlinkMacSystemFont, system-ui,
               "Helvetica Neue", Arial, sans-serif;
  --font-rounded: ui-rounded, -apple-system, BlinkMacSystemFont,
                  system-ui, sans-serif;

  /* Elevation (petrol-getönt) */
  --shadow-card: 0 1px 2px rgba(14,59,58,0.05), 0 8px 22px rgba(14,59,58,0.07);
  --shadow-hero: 0 10px 28px rgba(14,59,58,0.26), 0 2px 6px rgba(14,59,58,0.18);
}

/* ---- Reset ------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html, body { margin: 0; padding: 0; }
body {
  background: #fff;
  color: var(--text-primary);
  font-family: var(--font-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-synthesis-weight: none;
}
a { color: inherit; }
button { font: inherit; }
input[type=range] { accent-color: var(--tint); }

:focus-visible { outline: 2px solid var(--tint); outline-offset: 2px; }

/* ---- Material Symbols Rounded (FILL 1) --------------------- */
/* Selbst gehostet, auf die im Markup verwendeten Icons subgesetzt
   (aus Datenschutz- und Performance-Gründen statt Google-Fonts-CDN).
   Neues Icon hinzugefügt? Volle Schrift erneut von Google laden und
   mit den Namen aller verwendeten .ms-Icons neu subsetten (Tool:
   npm-Paket "subset-font", text = Icon-Namen mit Leerzeichen). */
@font-face {
  font-family: 'Material Symbols Rounded';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url('assets/fonts/material-symbols-rounded.woff2') format('woff2');
}
.ms {
  font-family: 'Material Symbols Rounded';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  direction: ltr;
  font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;
  -webkit-font-feature-settings: 'liga';
  user-select: none;
}

/* ---- Seite ------------------------------------------------- */
.gf-page { font-family: var(--font-text); line-height: 1.5; overflow-x: hidden; }

.gf-kicker {
  margin: 0 0 12px;
  font-size: 14px; font-weight: 600;
  letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--tint);
}

.gf-c-critical { color: var(--status-critical); }
.gf-c-tint     { color: var(--tint); }
.gf-c-ontrack  { color: var(--status-on-track); }

/* ---- Header ------------------------------------------------ */
.gf-header {
  position: sticky; top: 0; z-index: 40;
  background: rgba(255,255,255,0.82);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 0.5px solid var(--separator);
  transition: box-shadow .35s ease;
}
.gf-header-inner {
  max-width: 1120px; margin: 0 auto;
  padding: 11px 24px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.gf-brand { display: flex; align-items: center; gap: 10px; }
.gf-brand img { width: 32px; height: 32px; border-radius: 8px; display: block; }
.gf-brand span { font-size: 19px; font-weight: 600; letter-spacing: -0.01em; }
.gf-brand-link { display: contents; color: inherit; text-decoration: none; }

/* ---- App-Store-Buttons ------------------------------------- */
.gf-store-btn {
  display: inline-flex; align-items: center;
  text-decoration: none;
  position: relative;
}
/* Vor Release: Badge statt Link („Bald im App Store") */
.gf-store-badge { cursor: default; user-select: none; }
.gf-store-btn svg { flex: none; }
.gf-store-txt { display: flex; flex-direction: column; line-height: 1.05; text-align: left; }
.gf-store-txt-main { font-weight: 600; letter-spacing: -0.01em; }

.gf-store-btn--sm { gap: 9px; background: #000; color: #fff; padding: 8px 14px; border-radius: 11px; }
.gf-store-btn--sm .gf-store-txt-pre  { font-size: 9px; font-weight: 500; opacity: .85; }
.gf-store-btn--sm .gf-store-txt-main { font-size: 15px; }
/* 44px-Mindest-Trefferfläche ohne visuelle Änderung */
.gf-store-btn--sm::after { content: ""; position: absolute; inset: -4px 0; }

.gf-store-btn--md { gap: 11px; background: #fff; color: #000; padding: 13px 22px; border-radius: 14px; }
.gf-store-btn--md .gf-store-txt-pre  { font-size: 11px; font-weight: 500; opacity: .7; }
.gf-store-btn--md .gf-store-txt-main { font-size: 18px; }

.gf-store-btn--lg { gap: 11px; background: #fff; color: #000; padding: 15px 26px; border-radius: 14px; }
.gf-store-btn--lg .gf-store-txt-pre  { font-size: 12px; font-weight: 500; opacity: .7; }
.gf-store-btn--lg .gf-store-txt-main { font-size: 19px; }

/* ============================================================
   1 · Frage-Einstieg
   ============================================================ */
.gf-sec-fragen { background: var(--sys-grouped-bg); padding: clamp(56px, 8vw, 96px) 24px; }
.gf-fragen-inner { max-width: 1000px; margin: 0 auto; }
.gf-fragen-h1 {
  margin: 0 0 36px;
  font-size: clamp(30px, 5.2vw, 50px);
  line-height: 1.08; font-weight: 700; letter-spacing: -0.02em;
  max-width: 16ch; text-wrap: balance;
}

/* Desktop-Karten / mobile Gruppenliste umschalten (< 680px) */
.gf-q-desktop { display: block; }
.gf-q-mobile  { display: none; }
@media (max-width: 679px) {
  .gf-q-desktop { display: none; }
  .gf-q-mobile  { display: block; }
}

/* Desktop: große auswählbare Karten */
.gf-qgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; }
.gf-qcard {
  display: flex; flex-direction: column; gap: 22px;
  text-align: left; padding: 22px; border-radius: 20px;
  cursor: pointer; background: #fff; color: var(--text-primary);
  border: 2px solid var(--separator); box-shadow: none; transform: none;
  transition: border-color .2s, box-shadow .2s, transform .2s;
  min-height: 150px;
}
.gf-qcard.is-selected { border-color: var(--tint); box-shadow: var(--shadow-card); transform: translateY(-2px); }
.gf-qcard-top { display: flex; align-items: center; justify-content: space-between; }
.gf-qcard-icon {
  width: 46px; height: 46px; border-radius: 14px;
  display: grid; place-items: center;
  background: rgba(20,113,107,0.12);
  transition: background .2s;
}
.gf-qcard-icon .ms { font-size: 26px; color: var(--tint); transition: color .2s; }
.gf-qcard.is-selected .gf-qcard-icon { background: var(--tint); }
.gf-qcard.is-selected .gf-qcard-icon .ms { color: #fff; }
.gf-qcard-check { font-size: 24px; color: var(--tint); opacity: 0; transition: opacity .2s; }
.gf-qcard.is-selected .gf-qcard-check { opacity: 1; }
.gf-qcard-label { font-size: 19px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.25; }

/* Mobile: kompakte iOS-Gruppenliste */
.gf-qlist { background: #fff; border-radius: 16px; overflow: hidden; box-shadow: var(--shadow-card); }
.gf-qrow {
  display: flex; align-items: center; gap: 13px; width: 100%;
  padding: 14px 16px; min-height: 44px;
  text-align: left; cursor: pointer;
  border: none; background: transparent; color: var(--text-primary);
  transition: background .15s;
}
.gf-qrow + .gf-qrow { border-top: 0.5px solid var(--separator); }
.gf-qrow.is-selected { background: rgba(20,113,107,0.08); }
.gf-qrow-icon {
  width: 38px; height: 38px; border-radius: 11px;
  display: grid; place-items: center; flex: none;
  background: rgba(20,113,107,0.12);
}
.gf-qrow-icon .ms { font-size: 21px; color: var(--tint); }
.gf-qrow.is-selected .gf-qrow-icon { background: var(--tint); }
.gf-qrow.is-selected .gf-qrow-icon .ms { color: #fff; }
.gf-qrow-label { flex: 1; font-size: 16px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.3; }
.gf-qrow-trailing { font-size: 22px; color: var(--text-tertiary); }
.gf-qrow.is-selected .gf-qrow-trailing { color: var(--tint); }

/* Antwort-Karte (Petrol) */
@keyframes gfrise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.gf-response {
  margin: 20px 0 0;
  background: var(--surface-petrol); color: var(--text-on-petrol);
  border-radius: 20px; padding: clamp(20px, 3vw, 28px);
  display: flex; flex-wrap: wrap; align-items: center; gap: 24px;
  box-shadow: var(--shadow-hero);
  animation: gfrise .3s ease;
}
.gf-response[hidden] { display: none; }
.gf-response-icon {
  width: 56px; height: 56px; border-radius: 16px;
  background: rgba(255,255,255,0.1);
  display: grid; place-items: center; flex: none;
}
.gf-response-icon .ms { font-size: 30px; color: var(--brand-gold-bright); }
.gf-response-main { flex: 1 1 240px; min-width: 220px; }
.gf-response-kicker {
  margin: 0 0 5px; font-size: 12px; font-weight: 600;
  letter-spacing: 0.05em; text-transform: uppercase;
  color: var(--text-on-petrol-3);
}
.gf-response-headline { margin: 0 0 4px; font-size: clamp(20px, 2.6vw, 25px); font-weight: 700; letter-spacing: -0.01em; line-height: 1.2; }
.gf-response-note { margin: 0; font-size: 15px; line-height: 1.45; color: var(--text-on-petrol-2); }
.gf-response-statwrap { flex: none; text-align: right; min-width: 120px; }
.gf-response-stat {
  font-family: var(--font-rounded);
  font-size: clamp(30px, 4vw, 40px); font-weight: 700;
  letter-spacing: -0.02em; line-height: 1;
  font-variant-numeric: tabular-nums;
}
.gf-response-statlabel { margin-top: 5px; font-size: 12px; color: var(--text-on-petrol-2); }

/* ============================================================
   2 · Hero
   ============================================================ */
.gf-hero {
  background: var(--surface-petrol); color: var(--text-on-petrol);
  padding: clamp(56px, 8vw, 104px) 24px;
  position: relative; overflow: hidden;
}
.gf-hero-bird {
  --wm-op: 0.11;
  position: absolute; right: -60px; top: -30px; width: 440px;
  opacity: 0.11; pointer-events: none;
}
.gf-hero-inner {
  max-width: 1120px; margin: 0 auto;
  display: flex; flex-wrap: wrap; gap: 56px; align-items: center;
  position: relative;
}
.gf-hero-copy { flex: 1 1 380px; min-width: 300px; }
.gf-hero-chip {
  margin: 0 0 14px;
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 13px; font-weight: 600; letter-spacing: 0.02em;
  color: var(--text-on-petrol);
  background: rgba(255,255,255,0.12);
  padding: 6px 12px; border-radius: 999px;
}
.gf-hero-chip[hidden] { display: none; }
.gf-hero-chip .ms { font-size: 16px; color: var(--brand-gold-bright); }
.gf-hero-h2 {
  margin: 0 0 20px;
  font-size: clamp(32px, 5.4vw, 56px);
  line-height: 1.05; font-weight: 700; letter-spacing: -0.025em;
  text-wrap: balance;
}
.gf-hero-sub { margin: 0 0 32px; font-size: clamp(17px, 2vw, 21px); line-height: 1.5; color: var(--text-on-petrol-2); max-width: 46ch; }
.gf-hero-ctarow { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.gf-hero-ctanote { font-size: 14px; color: var(--text-on-petrol-3); }
.gf-phone-col { flex: 0 0 auto; margin: 0 auto; }

/* ---- iPhone-Mock ------------------------------------------- */
.gf-phone { width: 300px; border-radius: 46px; background: #0a0a0a; padding: 9px; }
.gf-phone--hero     { box-shadow: 0 30px 70px rgba(0,0,0,0.4); }
.gf-phone--haushalt { box-shadow: var(--shadow-hero); }
.gf-phone-screen {
  position: relative; border-radius: 38px; overflow: hidden;
  background: var(--sys-grouped-bg); height: 600px;
  color: var(--text-primary);
  line-height: 1.5;
}
.gf-phone-notch {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 118px; height: 26px; background: #0a0a0a;
  border-radius: 0 0 16px 16px; z-index: 6;
}
.gf-phone-content { position: absolute; inset: 0; overflow: hidden; padding: 44px 12px 16px; }
.gf-phone-content--stack { display: flex; flex-direction: column; gap: 12px; }
.gf-apptitle-row { display: flex; align-items: center; justify-content: space-between; margin: 0 4px 12px; }
.gf-apptitle { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; color: var(--text-primary); }
.gf-apptitle--haushalt { margin: 0 4px 2px; }
.gf-apptitle-logo { width: 26px; height: 26px; border-radius: 7px; }
.gf-appstack { display: flex; flex-direction: column; gap: 12px; }
.gf-appgrid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* StatusHeroCard (Petrol-Variante) */
.gf-shc {
  padding: 18px;
  display: flex; flex-direction: column; gap: 14px;
  background: var(--surface-petrol);
  box-shadow: var(--shadow-hero);
  border-radius: 20px;
  color: var(--text-on-petrol);
}
.gf-shc-top { display: flex; align-items: center; justify-content: space-between; }
.gf-shc-chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 10px; border-radius: 999px;
  font-size: 12px; font-weight: 600;
}
.gf-shc-chip .ms { font-size: 14px; }
.gf-shc-chip--attention { background: color-mix(in srgb, var(--status-needs-attention) 18%, transparent); color: var(--status-needs-attention); }
.gf-shc-chip--ontrack   { background: color-mix(in srgb, var(--status-on-track) 18%, transparent); color: var(--status-on-track); }
.gf-shc-sub { font-size: 12px; color: var(--text-on-petrol-2); }
.gf-shc-block { display: flex; flex-direction: column; gap: 3px; }
.gf-shc-num {
  font-family: var(--font-rounded);
  font-weight: 700; font-size: 40px;
  line-height: 1.1; letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.gf-shc-per { font-size: 17px; font-weight: 600; color: var(--text-on-petrol-2); letter-spacing: normal; }
.gf-shc-line { font-size: 15px; color: var(--text-on-petrol-2); }
.gf-shc-note { font-size: 12px; color: var(--text-on-petrol-3); }
.gf-shc-divider { height: 0.5px; background: rgba(255,255,255,0.16); }
.gf-shc-cols { display: flex; }
.gf-shc-col { flex: 1; display: flex; flex-direction: column; gap: 2px; align-items: flex-start; }
.gf-shc-col--right { align-items: flex-end; }
.gf-shc-col-title {
  font-size: 11px; font-weight: 600; letter-spacing: 0.03em;
  text-transform: uppercase; color: var(--text-on-petrol-2);
}
.gf-shc-col-value { font-size: 16px; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--text-on-petrol-2); }
.gf-shc-col-value--strong { color: var(--text-on-petrol); }

/* GoalProgressBar */
.gf-gpb {
  background: var(--surface-card); border-radius: 16px; padding: 16px;
  display: flex; flex-direction: column; gap: 8px;
}
.gf-gpb-top { display: flex; align-items: center; justify-content: space-between; }
.gf-gpb-title { font-size: 15px; font-weight: 600; color: var(--text-primary); }
.gf-gpb-pct { font-size: 15px; font-weight: 700; color: var(--status-needs-attention); font-variant-numeric: tabular-nums; }
.gf-gpb-track { position: relative; height: 10px; border-radius: 999px; background: rgba(120,120,128,0.18); overflow: hidden; }
.gf-gpb-fill { position: absolute; inset: 0; width: var(--w, 0%); background: var(--status-needs-attention); border-radius: 999px; }
.gf-gpb-cap { font-size: 12px; color: var(--text-secondary); }

/* MetricTile */
.gf-mt {
  display: flex; flex-direction: column; gap: 8px;
  min-height: 120px; padding: 14px;
  background: var(--surface-card); border-radius: 16px;
}
.gf-mt-icon {
  width: 32px; height: 32px; border-radius: 999px;
  background: rgba(20,113,107,0.15);
  display: grid; place-items: center;
}
.gf-mt-icon .ms { font-size: 18px; color: var(--brand-teal); }
.gf-mt-txt { display: flex; flex-direction: column; gap: 2px; }
.gf-mt-val { font-family: var(--font-rounded); font-size: 20px; font-weight: 600; color: var(--text-primary); font-variant-numeric: tabular-nums; }
.gf-mt-title { font-size: 12px; color: var(--text-secondary); line-height: 1.3; }
.gf-mt-cap { font-size: 11px; color: var(--text-tertiary); }

/* ============================================================
   3 · Mini-Demo
   ============================================================ */
.gf-sec-demo { background: #fff; padding: clamp(56px, 8vw, 100px) 24px; }
.gf-demo-inner { max-width: 760px; margin: 0 auto; text-align: center; }
.gf-demo-h2 { margin: 0 0 12px; font-size: clamp(28px, 4.4vw, 44px); line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; }
.gf-demo-sub { margin: 0 0 40px; font-size: 17px; color: var(--text-secondary); }
.gf-demo-box { background: var(--sys-grouped-bg); border-radius: 24px; padding: clamp(24px, 4vw, 36px); }
.gf-demo-agewrap { display: flex; align-items: baseline; justify-content: center; gap: 8px; margin-bottom: 6px; }
.gf-demo-agepre { font-size: 15px; color: var(--text-secondary); }
.gf-demo-age {
  font-family: var(--font-rounded);
  font-size: 52px; font-weight: 700; letter-spacing: -0.02em;
  color: var(--brand-petrol);
  font-variant-numeric: tabular-nums;
}
.gf-demo-agepost { font-size: 17px; color: var(--text-secondary); font-weight: 600; }
/* iOS-artiger Slider: 4px-Spur mit Teal-Füllung, weißer Knopf mit Schatten */
.gf-demo-slider {
  -webkit-appearance: none; appearance: none;
  width: 100%; max-width: 460px; height: 28px; margin: 6px 0 4px;
  cursor: pointer; background: transparent;
  --fill: 66.667%;
}
.gf-demo-slider::-webkit-slider-runnable-track {
  height: 4px; border-radius: 999px;
  background: linear-gradient(to right, var(--tint) var(--fill), rgba(120,120,128,0.2) var(--fill));
}
.gf-demo-slider::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none;
  width: 26px; height: 26px; border-radius: 50%; margin-top: -11px;
  background: #fff; border: none;
  box-shadow: 0 2px 6px rgba(0,0,0,0.22), 0 0 0 0.5px rgba(0,0,0,0.06);
}
.gf-demo-slider::-moz-range-track { height: 4px; border-radius: 999px; background: rgba(120,120,128,0.2); }
.gf-demo-slider::-moz-range-progress { height: 4px; border-radius: 999px; background: var(--tint); }
.gf-demo-slider::-moz-range-thumb {
  width: 26px; height: 26px; border-radius: 50%;
  background: #fff; border: none;
  box-shadow: 0 2px 6px rgba(0,0,0,0.22), 0 0 0 0.5px rgba(0,0,0,0.06);
}
.gf-demo-scale {
  display: flex; justify-content: space-between;
  max-width: 460px; margin: 0 auto 28px;
  font-size: 12px; color: var(--text-tertiary); font-weight: 600;
}
.gf-demo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; text-align: left; }
.gf-demo-tile { background: #fff; border-radius: 16px; padding: 16px; }
.gf-demo-tile-h {
  display: flex; align-items: center; gap: 7px;
  font-size: 12px; color: var(--text-secondary); font-weight: 600;
  margin-bottom: 8px;
}
.gf-demo-tile-h .ms { font-size: 17px; }
.gf-demo-tile-v {
  font-family: var(--font-rounded);
  font-size: 26px; font-weight: 700; letter-spacing: -0.01em;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}
.gf-demo-tile-c { font-size: 12px; color: var(--text-tertiary); margin-top: 2px; }
.gf-demo-note { margin: 22px 0 0; font-size: 13px; color: var(--text-tertiary); }
.gf-demo-pro {
  margin: 12px 0 0; font-size: 13px; color: var(--text-tertiary);
  display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: center;
}
.gf-soon {
  display: inline-flex; margin: 28px 0 0; align-items: center; gap: 8px;
  background: rgba(20,113,107,0.10); color: var(--tint);
  padding: 12px 20px; border-radius: 999px;
  font-size: 15px; font-weight: 600;
}
.gf-soon .ms { font-size: 18px; }

/* ============================================================
   4 · USP Haushalt
   ============================================================ */
.gf-sec-haushalt { background: var(--sys-grouped-bg); padding: clamp(56px, 8vw, 104px) 24px; }
.gf-haushalt-inner { max-width: 1120px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 56px; align-items: center; }
.gf-haushalt-copy { flex: 1 1 360px; min-width: 300px; order: 2; }
.gf-haushalt-phone { order: 1; }
.gf-haushalt-h2 { margin: 0 0 20px; font-size: clamp(30px, 4.8vw, 50px); line-height: 1.08; font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; }
.gf-haushalt-lead { margin: 0 0 16px; font-size: 18px; line-height: 1.55; color: var(--text-secondary); }
.gf-haushalt-lead strong { color: var(--text-primary); font-weight: 600; }
.gf-checklist { display: flex; flex-direction: column; gap: 14px; margin-top: 24px; }
.gf-checkrow { display: flex; gap: 12px; align-items: flex-start; }
.gf-checkrow .ms { font-size: 22px; color: var(--status-on-track); margin-top: 1px; }
.gf-checkrow > span:last-child { font-size: 16px; line-height: 1.45; }
.gf-checkrow strong { font-weight: 600; }
.gf-haushalt-pro {
  margin: 22px 0 0; font-size: 14px; color: var(--text-secondary);
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}

/* Haushalts-Screen: Beitrag je Person */
.gf-persons { background: #fff; border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 14px; }
.gf-persons-title { font-size: 15px; font-weight: 600; color: var(--text-primary); }
.gf-person { display: flex; align-items: center; gap: 12px; }
.gf-person-avatar {
  width: 36px; height: 36px; border-radius: 999px;
  background: rgba(20,113,107,0.15); color: var(--tint);
  display: grid; place-items: center;
  font-weight: 700; font-size: 14px; flex: none;
}
.gf-person-main { flex: 1; }
.gf-person-toprow { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 5px; }
.gf-person-name { font-weight: 600; }
.gf-person-pct { color: var(--text-secondary); }
.gf-person-track { height: 8px; border-radius: 999px; background: rgba(120,120,128,0.18); }
.gf-person-fill { height: 100%; width: var(--w, 0%); border-radius: 999px; }
.gf-person-fill--ontrack   { background: var(--status-on-track); }
.gf-person-fill--attention { background: var(--status-needs-attention); }
.gf-insight { background: #fff; border-radius: 16px; padding: 16px; display: flex; align-items: center; gap: 12px; }
.gf-insight .ms { font-size: 24px; color: var(--tint); }
.gf-insight > span:last-child { font-size: 14px; line-height: 1.35; color: var(--text-secondary); }

/* ============================================================
   5 · Entscheidungen
   ============================================================ */
.gf-sec-entscheidungen { background: #fff; padding: clamp(56px, 8vw, 104px) 24px; }
.gf-entscheidungen-inner { max-width: 1120px; margin: 0 auto; }
.gf-entscheidungen-h2 { margin: 0 0 40px; font-size: clamp(28px, 4.4vw, 44px); line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; max-width: 20ch; }
.gf-dgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.gf-dcard {
  background: var(--sys-grouped-bg); border-radius: 20px; padding: 24px;
  display: flex; flex-direction: column; gap: 16px;
  min-height: 230px;
}
.gf-dcard-icon { width: 44px; height: 44px; border-radius: 13px; background: #fff; display: grid; place-items: center; }
.gf-dcard-icon .ms { font-size: 24px; color: var(--tint); }
.gf-dcard-title { margin: 0; font-size: 20px; font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; }
.gf-dcard-outcome {
  margin-top: auto; display: flex; gap: 9px; align-items: flex-start;
  padding-top: 8px; border-top: 0.5px solid var(--separator);
}
.gf-dcard-outcome .ms { font-size: 19px; color: var(--tint); margin-top: 1px; }
.gf-dcard-outcome > span:last-child { font-size: 15px; color: var(--text-secondary); line-height: 1.4; }

/* ============================================================
   6 · Fünf Bausteine. Ein Plan.
   ============================================================ */
.gf-sec-plan { background: var(--surface-petrol); color: var(--text-on-petrol); padding: clamp(56px, 8vw, 104px) 24px; }
.gf-plan-inner { max-width: 640px; margin: 0 auto; text-align: center; }
.gf-plan-h2 { margin: 0 0 12px; font-size: clamp(28px, 4.4vw, 44px); line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; }
.gf-plan-sub { margin: 0 0 40px; font-size: 18px; color: var(--text-on-petrol-2); }
.gf-plan-stack { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.gf-block {
  width: 100%; max-width: 360px;
  background: rgba(255,255,255,0.08);
  border: 0.5px solid rgba(255,255,255,0.14);
  border-radius: 14px; padding: 14px 18px;
  display: flex; align-items: center; gap: 14px;
}
.gf-block .ms { font-size: 24px; color: var(--brand-gold-bright); }
.gf-block > span:last-child { font-size: 16px; font-weight: 600; }
.gf-plan-arrow { font-size: 26px; color: var(--text-on-petrol-3); }
.gf-plan-result {
  width: 100%; max-width: 360px;
  background: #fff; color: var(--brand-petrol);
  border-radius: 16px; padding: 18px 20px;
  display: flex; align-items: center; gap: 14px;
  box-shadow: var(--shadow-hero);
}
.gf-plan-result .ms { font-size: 26px; color: var(--brand-petrol); }
.gf-plan-result > span:last-child { font-size: 18px; font-weight: 700; letter-spacing: -0.01em; }
.gf-plan-note { margin: 22px 0 0; font-size: 14px; color: var(--text-on-petrol-3); }

/* ============================================================
   7 · Warum Goldfink
   ============================================================ */
.gf-sec-warum { background: #fff; padding: clamp(56px, 8vw, 104px) 24px; }
.gf-warum-inner { max-width: 1120px; margin: 0 auto; }
.gf-warum-h2 { margin: 0 0 40px; font-size: clamp(28px, 4.4vw, 44px); line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; }
.gf-pgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.gf-pcard { border: 0.5px solid var(--separator); border-radius: 20px; padding: 24px; }
.gf-pcard-icon {
  width: 44px; height: 44px; border-radius: 13px;
  background: rgba(20,113,107,0.12);
  display: grid; place-items: center;
  margin-bottom: 16px;
}
.gf-pcard-icon .ms { font-size: 24px; color: var(--tint); }
.gf-pcard-title { margin: 0 0 6px; font-size: 19px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.25; }
.gf-pcard-body { margin: 0; font-size: 15px; color: var(--text-secondary); line-height: 1.45; }

/* ============================================================
   8 · Vertrauen
   ============================================================ */
.gf-sec-vertrauen { background: var(--sys-grouped-bg); padding: clamp(56px, 8vw, 100px) 24px; }
.gf-vertrauen-inner { max-width: 900px; margin: 0 auto; text-align: center; }
.gf-vertrauen-h2 { margin: 0 0 12px; font-size: clamp(26px, 4vw, 40px); line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; }
.gf-vertrauen-sub { margin: 0 0 40px; font-size: 17px; color: var(--text-secondary); }
.gf-tgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; }
.gf-tcard {
  background: #fff; border-radius: 16px; padding: 22px 18px;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.gf-tcard .ms { font-size: 28px; color: var(--tint); }
.gf-tcard > span:last-child { font-size: 15px; font-weight: 600; line-height: 1.3; }

/* ============================================================
   8b · Goldfink Pro — Gold ist die Pro-Ebene (Marken-Regel)
   ============================================================ */
.gf-pro-chip {
  font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--brand-gold); background: var(--wash-gold-15);
  padding: 3px 8px; border-radius: 999px; flex: none;
}
.gf-sec-pro { background: #fff; padding: clamp(56px, 8vw, 100px) 24px; }
.gf-pro-inner { max-width: 760px; margin: 0 auto; text-align: center; }
.gf-pro-badge {
  margin: 0 0 16px;
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 13px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--brand-gold); background: var(--wash-gold-15);
  padding: 6px 14px; border-radius: 999px;
}
.gf-pro-badge .ms { font-size: 17px; }
.gf-pro-h2 { margin: 0 0 12px; font-size: clamp(26px, 4vw, 40px); line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; }
.gf-pro-sub { margin: 0 0 36px; font-size: 17px; color: var(--text-secondary); max-width: 56ch; margin-left: auto; margin-right: auto; }
.gf-pro-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; text-align: left; }
.gf-pro-card { background: var(--sys-grouped-bg); border-radius: 20px; padding: 24px; }
.gf-pro-icon {
  width: 44px; height: 44px; border-radius: 13px;
  background: var(--wash-gold-15);
  display: grid; place-items: center; margin-bottom: 16px;
}
.gf-pro-icon .ms { font-size: 24px; color: var(--brand-gold); }
.gf-pro-card-title { margin: 0 0 6px; font-size: 19px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.25; }
.gf-pro-card-body { margin: 0; font-size: 15px; color: var(--text-secondary); line-height: 1.45; }
.gf-pro-note { margin: 28px 0 0; font-size: 14px; color: var(--text-tertiary); }

/* ============================================================
   9 · Abschluss-CTA
   ============================================================ */
.gf-sec-abschluss {
  background: var(--surface-petrol); color: var(--text-on-petrol);
  padding: clamp(64px, 9vw, 120px) 24px;
  text-align: center; position: relative; overflow: hidden;
}
.gf-abschluss-bird {
  --wm-op: 0.12;
  position: absolute; left: 50%; top: -50px; transform: translateX(-50%);
  width: 400px; opacity: 0.12; pointer-events: none;
}
.gf-abschluss-inner { max-width: 640px; margin: 0 auto; position: relative; }
.gf-abschluss-h2 {
  margin: 0 0 28px;
  font-size: clamp(30px, 5vw, 52px);
  line-height: 1.08; font-weight: 700; letter-spacing: -0.025em;
  text-wrap: balance;
}
.gf-abschluss-note { margin: 20px 0 0; font-size: 14px; color: var(--text-on-petrol-3); }

/* ============================================================
   10 · Positionierung
   ============================================================ */
.gf-sec-position { background: #fff; padding: clamp(56px, 8vw, 96px) 24px; }
.gf-position-inner { max-width: 720px; margin: 0 auto; }
.gf-position-lead { margin: 0 0 20px; font-size: clamp(20px, 2.6vw, 26px); line-height: 1.4; font-weight: 500; letter-spacing: -0.01em; }
.gf-position-quote {
  margin: 0; padding: 20px 24px;
  border-left: 3px solid var(--tint);
  background: var(--sys-grouped-bg);
  border-radius: 0 14px 14px 0;
  font-size: clamp(19px, 2.4vw, 24px);
  font-weight: 600; line-height: 1.35; letter-spacing: -0.01em;
}

/* ============================================================
   11 · Knowledge Layer
   ============================================================ */
.gf-sec-knowledge { background: var(--sys-grouped-bg); padding: clamp(56px, 8vw, 96px) 24px; }
.gf-knowledge-inner { max-width: 820px; margin: 0 auto; }
.gf-knowledge-h2 { margin: 0 0 8px; font-size: clamp(26px, 4vw, 40px); line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; }
.gf-knowledge-sub { margin: 0 0 36px; font-size: 17px; color: var(--text-secondary); }
.gf-knowledge-list { display: flex; flex-direction: column; gap: 12px; }
.gf-topic { background: #fff; border-radius: 16px; padding: 2px 20px; border: 0.5px solid var(--separator); }
.gf-topic summary {
  list-style: none; cursor: pointer;
  padding: 18px 0; min-height: 44px;
  display: flex; align-items: center; gap: 12px;
  font-size: 18px; font-weight: 600; letter-spacing: -0.01em;
}
.gf-topic summary::-webkit-details-marker { display: none; }
.gf-topic summary > .ms:first-child { font-size: 22px; color: var(--tint); }
.gf-topic-title { flex: 1; }
.gf-topic-badge {
  font-size: 11px; font-weight: 700;
  color: var(--brand-gold);
  background: var(--wash-gold-15);
  padding: 3px 8px; border-radius: 999px;
}
.gf-topic-chevron { font-size: 22px; color: var(--text-tertiary); transition: transform .3s cubic-bezier(.22,.9,.34,1); }
.gf-topic[open] .gf-topic-chevron { transform: rotate(180deg); }
.gf-topic > p { margin: 0 0 20px; font-size: 16px; line-height: 1.55; color: var(--text-secondary); }

/* ============================================================
   Footer
   ============================================================ */
.gf-footer { background: var(--brand-petrol); color: var(--text-on-petrol-2); padding: 44px 24px; }
.gf-footer-inner {
  max-width: 1120px; margin: 0 auto;
  display: flex; flex-wrap: wrap; gap: 24px;
  align-items: center; justify-content: space-between;
}
.gf-footer-brand { display: flex; align-items: center; gap: 10px; }
.gf-footer-brand img { width: 30px; height: 30px; border-radius: 8px; }
.gf-footer-brand span { font-size: 17px; font-weight: 600; color: var(--text-on-petrol); }
.gf-footer-links { display: flex; gap: 22px; flex-wrap: wrap; font-size: 14px; }
.gf-footer-links a { text-decoration: none; color: var(--text-on-petrol-2); }
.gf-footer-disclaimer { font-size: 13px; color: var(--text-on-petrol-3); }

/* ============================================================
   Scroll-Reveals — Fade + leichtes Aufsteigen, gestaffelt.
   Nur bei prefers-reduced-motion: no-preference.
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  [data-reveal-root="1"] section > div > * {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .6s cubic-bezier(.16,.84,.4,1), transform .7s cubic-bezier(.16,.84,.4,1);
    will-change: opacity, transform;
  }
  [data-reveal-root="1"] section > div[data-in="1"] > * { opacity: 1; transform: none; }
  [data-reveal-root="1"] section > div[data-in="1"] > *:nth-child(2) { transition-delay: .08s; }
  [data-reveal-root="1"] section > div[data-in="1"] > *:nth-child(3) { transition-delay: .16s; }
  [data-reveal-root="1"] section > div[data-in="1"] > *:nth-child(4) { transition-delay: .24s; }
  [data-reveal-root="1"] section > div[data-in="1"] > *:nth-child(5) { transition-delay: .32s; }
  [data-reveal-root="1"] section > div[data-in="1"] > *:nth-child(n+6) { transition-delay: .4s; }

  [data-float] { transition: transform .9s cubic-bezier(.16,.84,.4,1), opacity .9s ease; }
  [data-float="1"] { opacity: 0; transform: translateY(24px) scale(.94); }
  [data-float="1"][data-in="1"] { opacity: var(--wm-op, .1); transform: none; }
  [data-fade="1"] { opacity: 0; transition: opacity 1s ease; }
  [data-fade="1"][data-in="1"] { opacity: var(--wm-op, .1); }
}
/* ============================================================
   Mikro-Interaktionen — bewusst dezent & „settling"
   ============================================================ */

/* Hover nur auf Geräten mit echtem Hover (kein Sticky-Hover auf Touch) */
@media (hover: hover) {
  .gf-qcard:hover:not(.is-selected) { border-color: rgba(20,113,107,0.45); transform: translateY(-1px); }
  .gf-qrow:hover:not(.is-selected) { background: rgba(120,120,128,0.06); }
  .gf-dcard, .gf-pcard, .gf-tcard, .gf-pro-card { transition: transform .25s cubic-bezier(.22,.9,.34,1), box-shadow .25s cubic-bezier(.22,.9,.34,1); }
  .gf-dcard:hover, .gf-pcard:hover, .gf-tcard:hover, .gf-pro-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-card); }
  .gf-topic { transition: border-color .2s; }
  .gf-topic:hover { border-color: rgba(20,113,107,0.35); }
}
.gf-qcard:active { transform: scale(0.985); }
.gf-qcard.is-selected:active { transform: translateY(-2px) scale(0.985); }
.gf-qrow:active { background: rgba(20,113,107,0.10); }
.gf-qcard, .gf-qrow, .gf-topic summary { -webkit-tap-highlight-color: transparent; }

/* Kennzahlen „ticken" beim Loslassen des Sliders (numericText-Anmutung) */
@keyframes gftick { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.gf-tick { animation: gftick .3s cubic-bezier(.22,.9,.34,1); }

@media (prefers-reduced-motion: no-preference) {
  /* Accordion-Antwort blendet weich ein */
  .gf-topic[open] > p { animation: gfrise .3s ease; }

  /* Fortschrittsbalken in den iPhone-Mocks wachsen beim Einscrollen */
  [data-reveal-root="1"] .gf-growbar { transition: width .9s cubic-bezier(.22,.9,.34,1) .5s; }
  [data-reveal-root="1"] section > div:not([data-in="1"]) .gf-growbar { width: 0; }

  /* iPhone-Mocks setzen mit leichtem Scale auf */
  [data-reveal-root="1"] section > div > .gf-phone-col { transform: translateY(32px) scale(0.96); transition-duration: .8s, .9s; }
  [data-reveal-root="1"] section > div[data-in="1"] > .gf-phone-col { transform: none; }

  /* Bausteine-Pills erscheinen gestaffelt, dann Pfeil, dann der Plan */
  [data-reveal-root="1"] section > div > .gf-plan-stack { opacity: 1; transform: none; }
  [data-reveal-root="1"] .gf-plan-stack > * {
    opacity: 0; transform: translateY(18px);
    transition: opacity .55s cubic-bezier(.16,.84,.4,1), transform .6s cubic-bezier(.16,.84,.4,1);
  }
  [data-reveal-root="1"] [data-in="1"] .gf-plan-stack > * { opacity: 1; transform: none; }
  [data-reveal-root="1"] [data-in="1"] .gf-plan-stack > *:nth-child(1) { transition-delay: .15s; }
  [data-reveal-root="1"] [data-in="1"] .gf-plan-stack > *:nth-child(2) { transition-delay: .22s; }
  [data-reveal-root="1"] [data-in="1"] .gf-plan-stack > *:nth-child(3) { transition-delay: .29s; }
  [data-reveal-root="1"] [data-in="1"] .gf-plan-stack > *:nth-child(4) { transition-delay: .36s; }
  [data-reveal-root="1"] [data-in="1"] .gf-plan-stack > *:nth-child(5) { transition-delay: .43s; }
  [data-reveal-root="1"] [data-in="1"] .gf-plan-stack > *:nth-child(6) { transition-delay: .5s; }
  [data-reveal-root="1"] [data-in="1"] .gf-plan-stack > *:nth-child(7) { transition-delay: .57s; }
  [data-reveal-root="1"] [data-in="1"] .gf-plan-stack > *:nth-child(8) { transition-delay: .64s; }
  [data-reveal-root="1"] section > div[data-in="1"] > .gf-plan-note { transition-delay: .8s; }
}

@media (prefers-reduced-motion: reduce) {
  .gf-response { animation: none; }
  .gf-tick { animation: none; }
  .gf-topic-chevron { transition: none; }
}

/* ============================================================
   Rechtstexte (Impressum etc.)
   ============================================================ */
.gf-legal-hero { background: var(--sys-grouped-bg); padding: clamp(48px, 8vw, 72px) 24px 32px; }
.gf-legal-hero-inner { max-width: 720px; margin: 0 auto; }
.gf-legal-h1 { margin: 0 0 8px; font-size: clamp(32px, 5vw, 48px); font-weight: 700; letter-spacing: -0.02em; color: var(--text-primary); }
.gf-legal-sub { margin: 0; font-size: 17px; color: var(--text-secondary); }

.gf-legal-content { background: #fff; padding: clamp(40px, 6vw, 64px) 24px; }
.gf-legal-inner { max-width: 720px; margin: 0 auto; }
.gf-legal-block { margin: 0 0 32px; }
.gf-legal-block h2 { margin: 0 0 12px; font-size: 20px; font-weight: 600; letter-spacing: -0.01em; scroll-margin-top: 80px; }
.gf-legal-block p, .gf-legal-block address { margin: 0 0 6px; font-size: 16px; line-height: 1.6; color: var(--text-primary); font-style: normal; }
.gf-legal-block a { color: var(--tint); }
.gf-legal-block h3 { margin: 20px 0 8px; font-size: 16px; font-weight: 600; letter-spacing: -0.01em; color: var(--text-primary); }
.gf-legal-block ul { margin: 0 0 6px; padding-left: 20px; }
.gf-legal-block li { margin: 0 0 6px; font-size: 16px; line-height: 1.6; color: var(--text-primary); }
.gf-legal-stand { margin-top: 12px; font-size: 14px; color: var(--text-secondary); }
.gf-legal-index { list-style: none; padding-left: 0; margin: 0; }
.gf-legal-index li { margin: 0 0 8px; }
.gf-legal-index a { color: var(--tint); text-decoration: none; }
.gf-legal-index a:hover { text-decoration: underline; }
.gf-legal-note { margin-top: 40px; font-size: 14px; line-height: 1.6; color: var(--text-secondary); }
