/* =========================================================
   findfunding — shared stylesheet
   BRAND COLORS: passt hier --brand und --ink an eure exakten
   Markenfarben an; alles andere zieht automatisch nach.
   ========================================================= */
/* Inter selbst gehostet (OFL-1.1, assets/fonts/OFL.txt); kein Abruf von Google-Servern. */
@font-face{
  font-family:"Inter"; font-style:normal; font-weight:100 900; font-display:swap;
  src:url("/assets/fonts/inter-latin-ext-wght-normal.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:"Inter"; font-style:normal; font-weight:100 900; font-display:swap;
  src:url("/assets/fonts/inter-latin-wght-normal.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;
}
:root{
  --brand:      #1c4e86;
  --brand-600:  #163f6d;
  --brand-050:  #eef3fa;
  --ink:        #0d1b2c;
  --ink-700:    #16283d;
  --match:      #12a150;
  --match-050:  #e9f6ee;

  --bg:         #ffffff;
  --bg-soft:    #f5f7fb;
  --text:       #1d2a3a;
  --muted:      #5c6b7e;
  --line:       #e3e9f1;
  --line-soft:  #eef2f7;
  --white:      #ffffff;

  --radius:     14px;
  --radius-sm:  10px;
  --shadow:     0 18px 40px -22px rgba(13,27,44,.28);
  --shadow-sm:  0 8px 24px -16px rgba(13,27,44,.30);
  --maxw:       1120px;

  box-sizing: border-box;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top: calc(72px + env(safe-area-inset-top, 0px)); -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:var(--brand); text-decoration:none; }
a:hover{ text-decoration:underline; }
:focus-visible{ outline:3px solid var(--brand); outline-offset:2px; border-radius:4px; }
h1,h2,h3{ color:var(--ink); line-height:1.15; letter-spacing:-.02em; margin:0; }
h1{ font-weight:800; }
h2{ font-size:clamp(1.55rem,3.4vw,2.25rem); font-weight:800; }
h3{ font-size:1.12rem; font-weight:700; letter-spacing:-.01em; }
p{ margin:0; }

.skip-link{ position:absolute; left:-9999px; top:0; background:var(--brand); color:#fff; padding:10px 16px; border-radius:0 0 8px 0; z-index:200; }
.skip-link:focus{ left:0; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }
.section{ padding:88px 0; }
.section--soft{ background:var(--bg-soft); }
.section--ink{ background:var(--ink); }
.lead{ color:var(--muted); font-size:1.08rem; max-width:60ch; }
.eyebrow{
  display:inline-block; font-size:.82rem; font-weight:700; letter-spacing:.01em;
  color:var(--brand); background:var(--brand-050);
  padding:5px 12px; border-radius:999px; margin-bottom:18px;
}
.section--ink .eyebrow{ color:#8fb6e6; background:rgba(143,182,230,.12); }
.section--ink h2, .section--ink h3{ color:#fff; }
.section--ink .lead{ color:#aebccf; }
.head{ max-width:70ch; margin-bottom:44px; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.86); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  padding-top: env(safe-area-inset-top, 0px);
}
.nav{ display:flex; align-items:center; gap:20px; height:72px; }
.nav__logo{ display:flex; align-items:center; gap:8px; flex:none; }
.nav__logo img{ height:34px; width:auto; }
.nav__links{ display:flex; gap:26px; margin-left:14px; }
.nav__links a{ color:var(--text); font-weight:500; font-size:.95rem; }
.nav__links a:hover{ color:var(--brand); text-decoration:none; }
.nav__spacer{ flex:1; }
.lang-toggle{
  display:inline-flex; align-items:center; gap:6px;
  border:1px solid var(--line); background:#fff; color:var(--text);
  font-weight:600; font-size:.86rem; padding:8px 12px; border-radius:999px; cursor:pointer;
}
.lang-toggle:hover{ border-color:var(--brand); color:var(--brand); text-decoration:none; }
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-weight:600; font-size:.95rem; border-radius:999px; cursor:pointer;
  padding:11px 20px; border:1px solid transparent; transition:transform .12s ease, background .15s ease;
  text-decoration:none;
}
.btn:hover{ text-decoration:none; }
.btn--primary{ background:var(--brand); color:#fff; }
.btn--primary:hover{ background:var(--brand-600); }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn--ghost:hover{ border-color:var(--brand); color:var(--brand); }
.btn--lg{ padding:14px 26px; font-size:1rem; }
.nav__cta{ display:flex; gap:10px; }
.nav__links .nav__login-m{ display:none; }
.nav__burger{ display:none; background:none; border:1px solid var(--line); border-radius:10px; width:42px; height:42px; cursor:pointer; }
.nav__burger span{ display:block; width:18px; height:2px; background:var(--ink); margin:3px auto; }

/* ---------- Hero ---------- */
.hero{ padding:70px 0 40px; }
.hero__grid{ display:grid; grid-template-columns:1.02fr 1.1fr; gap:56px; align-items:center; }
.hero h1{ font-size:clamp(2.2rem,5vw,3.35rem); margin:16px 0 18px; }
.hero__sub{ color:var(--muted); font-size:1.12rem; max-width:52ch; margin-bottom:28px; }
.hero__actions{ display:flex; gap:14px; flex-wrap:wrap; }

/* Product-Mockup */
.app-wrap{ perspective:1200px; }
.app{
  background:#fff; border:1px solid var(--line); border-radius:16px;
  box-shadow:var(--shadow); overflow:hidden;
}
.app__bar{
  display:flex; align-items:center; gap:8px;
  padding:11px 14px; border-bottom:1px solid var(--line-soft); background:#fbfcfe;
}
.app__dots{ display:flex; gap:6px; }
.app__dots i{ width:10px; height:10px; border-radius:50%; display:block; background:#dfe5ee; }
.app__url{
  margin-left:8px; flex:1; font-size:.76rem; color:var(--muted);
  background:#fff; border:1px solid var(--line-soft); border-radius:7px; padding:5px 10px; text-align:center;
}
.app__body{ display:grid; grid-template-columns:132px 1fr; min-height:340px; }
.app__side{ border-right:1px solid var(--line-soft); padding:16px 12px; background:#fbfcfe; }
.app__side .brandmark{ height:22px; width:auto; margin-bottom:16px; }
.app__navitem{ display:flex; align-items:center; gap:8px; font-size:.8rem; color:var(--muted); padding:8px 9px; border-radius:8px; margin-bottom:2px; }
.app__navitem.is-active{ background:var(--brand-050); color:var(--brand); font-weight:600; }
.app__navitem svg{ width:14px; height:14px; flex:none; }
.app__main{ padding:18px 20px; }
.app__proj-label{ font-size:.72rem; color:var(--muted); font-weight:600; }
.app__proj{ font-size:1.02rem; font-weight:700; color:var(--ink); margin:2px 0 12px; }
.app__tags{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.app__tag{ font-size:.72rem; font-weight:600; color:var(--brand-600); background:var(--brand-050); border-radius:7px; padding:5px 10px; }
.app__tag--eur{ color:var(--text); background:#f1f4f8; }
.app__match{
  display:flex; align-items:center; gap:8px; font-size:.74rem; font-weight:700;
  color:var(--match); background:var(--match-050); border-radius:8px; padding:6px 12px; margin-bottom:14px;
}
.row{ display:flex; align-items:center; gap:12px; padding:11px 0; border-top:1px solid var(--line-soft); }
.row__rank{ font-size:.78rem; color:var(--muted); width:22px; }
.row__info{ flex:1; min-width:0; }
.row__name{ font-size:.9rem; font-weight:700; color:var(--ink); }
.row__desc{ font-size:.76rem; color:var(--muted); }
.row__score{ text-align:right; min-width:118px; }
.row__pct{ font-size:.85rem; font-weight:700; color:var(--match); }
.bar{ height:6px; background:#eef1f6; border-radius:99px; margin-top:5px; overflow:hidden; }
.bar > i{ display:block; height:100%; background:var(--match); border-radius:99px; width:100%; transform:scaleX(0); transform-origin:left; transition:transform 1.1s cubic-bezier(.2,.7,.2,1); }

/* ---------- Stats ---------- */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:56px; padding-top:40px; border-top:1px solid var(--line); }
.stat{ min-height:132px; padding:22px 20px 20px; border:0; border-radius:var(--radius); background:#fff; box-shadow:0 10px 30px -12px rgba(13,27,44,.18), 0 2px 8px -2px rgba(13,27,44,.08); }
.stat__num{ font-size:2.15rem; font-weight:800; color:var(--ink); letter-spacing:-.02em; line-height:1; white-space:nowrap; }
.stat__sign{ color:inherit; font:inherit; letter-spacing:inherit; }
.stat__num small{ font-size:1.1rem; font-weight:800; color:inherit; }
.stat__num[data-i18n="stat_4_num"]{ font-size:1.5rem; line-height:1.4; letter-spacing:-.01em; }
.stat__label{ color:var(--ink); font-weight:700; font-size:.92rem; line-height:1.35; margin-top:12px; }

/* ---------- Cards ---------- */
.grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px; }
.card__icon{
  width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center;
  background:var(--brand-050); color:var(--brand); font-size:1.15rem; margin-bottom:14px;
}
.card h3{ margin-bottom:8px; }
.card p{ color:var(--muted); font-size:.95rem; }

/* Solution */
.sol{ display:grid; grid-template-columns:.7fr 1.5fr; gap:40px; align-items:center; }
.steps{ display:flex; flex-direction:column; gap:18px; }
.step{ display:flex; gap:16px; align-items:flex-start; }
.step__no{
  flex:none; width:38px; height:38px; border-radius:10px; background:var(--ink); color:#fff;
  font-weight:700; font-size:.9rem; display:flex; align-items:center; justify-content:center; 
}
.step h3{ margin-bottom:4px; }
.step p{ color:var(--muted); font-size:.95rem; }
.sol__img{ border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm); overflow:hidden; background:#fff; }

/* Workflow */
.flow{ display:grid; grid-template-columns:repeat(6,1fr); gap:12px; margin-bottom:44px; }
.flow__item{ border:1px solid rgba(255,255,255,.14); border-radius:12px; padding:16px 14px; background:rgba(255,255,255,.03); }
.flow__item.is-focus{ border-color:var(--brand); background:var(--brand); }
.flow__no{ font-size:.78rem; color:#8fb6e6; }
.flow__item.is-focus .flow__no{ color:#cfe0f5; }
.flow__name{ color:#fff; font-weight:600; font-size:.9rem; margin-top:6px; }
.flow__badge{ display:inline-block; margin-top:8px; font-size:.68rem; font-weight:700; color:#0d1b2c; background:#cfe0f5; padding:2px 8px; border-radius:99px; }
.mv{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.mv__card{ border:1px solid rgba(255,255,255,.14); border-radius:var(--radius); padding:26px; }
.mv__k{ font-size:.82rem; font-weight:700; color:#8fb6e6; margin-bottom:10px; }
.mv__card p{ color:#c4d1e2; font-size:1.02rem; }

/* Customers */
.cust{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-bottom:28px; }
.cust__card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:30px; }
.cust__no{ color:var(--brand); font-weight:500; font-size:.85rem; }
.cust__card h3{ margin:8px 0 10px; font-size:1.2rem; }
.cust__card p{ color:var(--muted); }
.validated{
  display:flex; gap:16px; align-items:flex-start;
  background:var(--brand-050); border:1px solid #d6e2f1; border-radius:var(--radius); padding:22px 26px;
}
.validated__mark{ flex:none; width:40px; height:40px; border-radius:10px; background:var(--brand); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.2rem; }
.validated h3{ font-size:1rem; margin-bottom:4px; }
.validated p{ color:var(--muted); font-size:.95rem; }

/* Team */
.team{ display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
.member__photo{ aspect-ratio:1/1; width:100%; object-fit:cover; border-radius:var(--radius); border:1px solid var(--line); background:var(--bg-soft); }
.member h3{ font-size:1.02rem; margin:14px 0 2px; }
.member__role{ color:var(--brand); font-weight:600; font-size:.9rem; }
.member__resp{ color:var(--muted); font-size:.85rem; margin-top:6px; }
.member__bio{ color:var(--muted); font-size:.8rem; margin-top:8px; padding-top:8px; border-top:1px solid var(--line-soft); }

/* CTA */
.cta{ text-align:center; }
.cta h2{ max-width:20ch; margin:0 auto 16px; }
.cta .lead{ margin:0 auto 28px; }

/* Footer */
.footer{ background:var(--ink); color:#aebccf; padding:44px 0; }
.footer__row{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.footer__logo{ display:flex; align-items:center; gap:8px; }
.footer__logo img{ height:40px; width:auto; filter:brightness(0) invert(1); }
.footer__tagline{ color:#8ea0b6; font-size:.92rem; margin-top:10px; }
.footer__spacer{ flex:1; }
.footer a{ color:#cfd9e6; }
.footer__links{ display:flex; gap:22px; flex-wrap:wrap; }
.footer__copy{ width:100%; margin-top:20px; padding-top:20px; border-top:1px solid rgba(255,255,255,.1); font-size:.85rem; color:#7d8da3; }

/* ---------- Modal ---------- */
.modal{ position:fixed; inset:0; z-index:100; display:none; align-items:flex-start; justify-content:center; padding:28px 16px; overflow-y:auto; }
.modal.is-open{ display:flex; }
.modal__backdrop{ position:fixed; inset:0; background:rgba(13,27,44,.55); backdrop-filter:blur(2px); }
.modal__panel{ position:relative; background:#fff; border-radius:16px; box-shadow:var(--shadow); width:100%; max-width:560px; padding:34px; margin:auto; }
.modal__close{ position:absolute; top:16px; right:16px; width:38px; height:38px; border-radius:10px; border:1px solid var(--line); background:#fff; cursor:pointer; font-size:1.1rem; color:var(--muted); }
.modal__close:hover{ color:var(--ink); border-color:var(--brand); }
.modal h2{ font-size:1.5rem; }
.modal .lead{ margin:10px 0 22px; }
.field{ margin-bottom:14px; }
.field label{ display:block; font-size:.85rem; font-weight:600; color:var(--ink); margin-bottom:6px; }
.field input, .field textarea{ width:100%; border:1px solid var(--line); border-radius:var(--radius-sm); padding:11px 13px; font:inherit; color:var(--text); background:#fff; }
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--brand); box-shadow:0 0 0 3px var(--brand-050); }
.field textarea{ min-height:110px; resize:vertical; }
.hp{ position:absolute; left:-9999px; opacity:0; height:0; width:0; }
.consent{ font-size:.8rem; color:var(--muted); margin:6px 0 18px; }
.form-msg{ font-size:.92rem; border-radius:var(--radius-sm); padding:12px 14px; margin-bottom:14px; display:none; }
.form-msg.is-ok{ display:block; background:var(--match-050); color:#0c6b34; border:1px solid #bfe6cd; }
.form-msg.is-err{ display:block; background:#fdecec; color:#a4262c; border:1px solid #f3c6c6; }

/* ---------- Legal pages ---------- */
.legal{ padding:56px 0 80px; }
.legal .wrap{ max-width:820px; }
.crumb{ font-size:.88rem; color:var(--muted); margin-bottom:22px; }
.crumb a{ color:var(--muted); }
.crumb a:hover{ color:var(--brand); }
.legal h1{ font-size:clamp(2rem,4.5vw,2.6rem); margin-bottom:10px; }
.legal__intro{ color:var(--muted); font-size:1.05rem; margin-bottom:14px; }
.legal__updated{ color:var(--muted); font-size:.9rem; margin-bottom:32px; }
.toc{ background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--radius); padding:22px 26px; margin:0 0 40px; }
.toc h2{ font-size:.95rem; color:var(--ink); margin-bottom:12px; }
.toc ol{ margin:0; padding-left:20px; color:var(--text); }
.toc li{ margin:6px 0; }
.legal section{ margin-bottom:34px; scroll-margin-top:96px; }
.legal section h2{ font-size:1.28rem; margin-bottom:12px; }
.legal p{ color:var(--text); margin-bottom:12px; }
.legal address{ font-style:normal; color:var(--text); line-height:1.8; margin-bottom:12px; }
.legal__back{ display:inline-flex; margin-top:12px; }

/* ---------- Language visibility ---------- */
html[lang="en"] [data-lang-de]{ display:none; }
html[lang="de"] [data-lang-en]{ display:none; }

/* ---------- Reveal animations (bewegende Bilder) ---------- */
.reveal-on .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal-on .reveal.is-visible{ opacity:1; transform:none; }
.reveal-on .reveal-img{ opacity:0; transform:scale(.975); transition:opacity .85s ease, transform .85s cubic-bezier(.2,.7,.2,1); }
.reveal-on .reveal-img.is-visible{ opacity:1; transform:none; }
.reveal-on .reveal.d1{ transition-delay:.07s; } .reveal-on .reveal.d2{ transition-delay:.14s; }
.reveal-on .reveal.d3{ transition-delay:.21s; } .reveal-on .reveal.d4{ transition-delay:.28s; }
.reveal-on .reveal.d5{ transition-delay:.35s; }

@keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-9px); } }

/* ---------- Hover & Interaktion (dynamischer) ---------- */
.card,
.cust__card,
.mv__card,
.validated,
.flow__item{
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
.card:hover,
.cust__card:hover{ transform:translateY(-5px); box-shadow:0 24px 46px -26px rgba(13,27,44,.4); border-color:#c4d5ea; }
.card:hover .card__icon{ background:var(--brand); color:#fff; }
.card__icon{ transition:background .2s ease, color .2s ease; }
.validated:hover{ transform:translateY(-3px); box-shadow:0 20px 40px -26px rgba(13,27,44,.35); }
.mv__card:hover{ transform:translateY(-4px); border-color:rgba(143,182,230,.5); background:rgba(255,255,255,.05); }
.flow__item:hover{ transform:translateY(-4px); border-color:var(--brand); background:rgba(28,78,134,.14); }
.flow__item.is-focus:hover{ background:var(--brand-600); }

.member__photo{ transition:transform .25s ease, box-shadow .25s ease; }
.member h3{ transition:color .18s ease; }
.member:hover .member__photo{ transform:translateY(-5px) scale(1.015); box-shadow:0 22px 40px -24px rgba(13,27,44,.4); }
.member:hover h3{ color:var(--ink); }

.step__no{ transition:transform .2s ease, background .2s ease; }
.step:hover .step__no{ transform:scale(1.08); background:var(--brand); }

.sol__img{ transition:transform .3s ease, box-shadow .3s ease; }
.sol__img:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }

.row{ border-radius:9px; padding-left:8px; padding-right:8px; transition:background .16s ease; }
.row:hover{ background:var(--brand-050); }

.nav__links a{ position:relative; }
.nav__links a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-5px; height:2px;
  background:var(--brand); border-radius:2px; transition:right .24s cubic-bezier(.2,.7,.2,1);
}
.nav__links a:hover::after{ right:0; }

.btn{ transition:transform .14s ease, background .15s ease, box-shadow .18s ease, border-color .15s ease; }
.btn--primary:hover{ transform:translateY(-2px); box-shadow:0 14px 26px -12px rgba(28,78,134,.6); }
.btn--ghost:hover{ transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.footer__links a{ transition:color .15s ease; }
.footer__links a:hover{ color:#fff; }
.toc a{ transition:color .15s ease; }
.crumb a, .legal a{ transition:color .15s ease; }

/* ---------- Dezente Hero-Bewegung ---------- */
.hero{ position:relative; overflow:hidden; }
.hero::before{
  content:""; position:absolute; z-index:0; top:-160px; right:-120px;
  width:520px; height:520px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle at center, rgba(28,78,134,.12), rgba(28,78,134,0) 70%);
  animation:drift 18s ease-in-out infinite;
}
.hero::after{
  content:""; position:absolute; z-index:0; bottom:-180px; left:-140px;
  width:460px; height:460px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle at center, rgba(70,120,185,.12), rgba(70,120,185,0) 70%);
  animation:drift 22s ease-in-out infinite reverse;
}
.hero .wrap{ position:relative; z-index:1; }
@keyframes drift{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-34px,26px) scale(1.06); } }

/* Dunkler Workflow-Bereich: driftender Lichtschein */
.section--ink{ position:relative; overflow:hidden; }
.section--ink::before{
  content:""; position:absolute; z-index:0; top:-160px; left:50%; margin-left:-330px;
  width:660px; height:660px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle at center, rgba(28,78,134,.4), rgba(28,78,134,0) 66%);
  animation:drift 20s ease-in-out infinite;
}
.section--ink .wrap{ position:relative; z-index:1; }

/* Workflow-Pipeline: der Startpunkt „atmet" */
.flow__item.is-focus{ animation:pulseGlow 3.4s ease-in-out infinite; }
@keyframes pulseGlow{
  0%,100%{ box-shadow:0 0 0 0 rgba(143,182,230,0); }
  50%{ box-shadow:0 0 0 7px rgba(143,182,230,.16); }
}

/* hCaptcha-Box */
.h-captcha{ margin:2px 0 4px; min-height:78px; }

/* ---------------- Responsive ---------------- */
@media (max-width: 960px){
  .hero__grid{ grid-template-columns:1fr; gap:36px; }
  .sol{ grid-template-columns:1fr; gap:32px; }
  .grid-4{ grid-template-columns:repeat(2,1fr); }
  .flow{ grid-template-columns:repeat(3,1fr); }
  .team{ grid-template-columns:repeat(3,1fr); }
  .nav__links{ display:none; }
  .nav__burger{ display:block; }
  .nav.is-open .nav__links{
    display:flex; flex-direction:column; position:absolute; left:0; right:0; top:100%;
    background:#fff; border-bottom:1px solid var(--line); padding:14px 24px; gap:14px; margin:0;
  }
}
@media (max-width: 640px){
  .section{ padding:60px 0; }
  .stats{ grid-template-columns:repeat(2,1fr); gap:24px; }
  .grid-4,.grid-3,.cust,.mv{ grid-template-columns:1fr; }
  .flow{ grid-template-columns:repeat(2,1fr); }
  .team{ grid-template-columns:repeat(2,1fr); }
  .app__body{ grid-template-columns:1fr; }
  .app__side{ display:none; }
  .modal__panel{ padding:26px 20px; }
  .nav{ gap:10px; }
  .nav__logo img{ height:28px; }
  .nav__cta .btn{ padding:9px 14px; white-space:nowrap; }
  .nav__burger{ flex:none; }
  .nav__cta .nav__login{ display:none; }
  .nav__links .nav__login-m{ display:block; }
}
/* Logo, EN, Demo and menu don't fit side by side; the hero repeats the Demo button. */
@media (max-width: 420px){
  .nav__cta{ display:none; }
}
@media (prefers-reduced-motion: reduce){
  *{ scroll-behavior:auto !important; }
  .bar > i{ transition:none; }
  .hero::before, .hero::after,
  .section--ink::before,
  .flow__item.is-focus{ animation:none !important; }
  .reveal-on .reveal,
  .reveal-on .reveal-img{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ---------- Mehr Bewegung ---------- */
.progress{ position:fixed; top:0; left:0; height:3px; width:100%; z-index:100; transform-origin:0 50%; transform:scaleX(0); background:linear-gradient(90deg,var(--brand),#8fb6e6); pointer-events:none; }

.app-wrap{ transition:transform .25s ease-out; will-change:transform; }

.stat{ position:relative; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease; }
.stat::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .3s ease;
  background:radial-gradient(150px circle at var(--mx,50%) var(--my,50%), rgba(70,120,185,.34), rgba(70,120,185,.12) 55%, transparent 100%);
}
.stat:hover{ transform:translateY(-5px); box-shadow:0 26px 44px -14px rgba(13,27,44,.26), 0 4px 12px -2px rgba(13,27,44,.1); }
.stat:hover::before{ opacity:1; }
.stat > *{ position:relative; }

/* Hero-Bild: großer Hover */
.app-wrap{ transition:transform .35s cubic-bezier(.2,.7,.2,1); }
.app-wrap .app{ transition:box-shadow .35s ease, border-color .35s ease; position:relative; }
.app-wrap:hover .app{ box-shadow:0 50px 90px -30px rgba(13,27,44,.55), 0 0 0 1px rgba(28,78,134,.25); border-color:rgba(28,78,134,.35); }
.app-wrap .app::after{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .3s ease;
  background:radial-gradient(360px circle at var(--gx,50%) var(--gy,50%), rgba(255,255,255,.55), transparent 65%);
}
.app-wrap:hover .app::after{ opacity:1; }

.hero::before, .hero::after, .section--ink::before{ will-change:transform; translate:0 var(--py,0px); }

@media (prefers-reduced-motion:reduce){
  .progress{ display:none; }
  .app-wrap{ transform:none !important; }
  .stat:hover{ transform:none; }
}
.reveal-on .app-wrap.is-visible{ transition:transform .3s cubic-bezier(.2,.7,.2,1), opacity .7s ease; }

/* ---------- Förderprogramm-Ticker ---------- */
.ticker{ overflow:hidden; margin-top:44px; padding:6px 0; -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); }
.ticker__track{ display:flex; gap:12px; width:max-content; animation:tick 46s linear infinite; }
.ticker:hover .ticker__track{ animation-play-state:paused; }
.ticker__track span{ flex:none; padding:9px 18px; border-radius:999px; background:#fff; color:var(--ink); font-weight:700; font-size:.88rem; box-shadow:0 6px 18px -8px rgba(13,27,44,.25), 0 1px 4px rgba(13,27,44,.08); transition:transform .2s ease, background .2s ease, color .2s ease; }
.ticker__track span:hover{ transform:translateY(-3px); background:var(--brand); color:#fff; }
@keyframes tick{ to{ transform:translateX(calc(-50% - 6px)); } }

/* ---------- Live-Matching im Mockup ---------- */
.app__proj, .app__tags, .app__match, .row{ transition:opacity .35s ease, transform .35s ease, background .2s ease; }
.app__match span.live{ display:inline-block; }
.app__match::first-letter{ animation:blink 1.6s ease-in-out infinite; }
@keyframes blink{ 50%{ opacity:.25; } }

@media (prefers-reduced-motion:reduce){ .ticker__track{ animation:none; } .app__match::first-letter{ animation:none; } }

/* ---------- Problem: Netzwerk-Hintergrund & Karten ---------- */
#problem{ position:relative; overflow:hidden;
  background:
    radial-gradient(600px 380px at 8% 0%, rgba(28,78,134,.09), transparent 70%),
    radial-gradient(520px 340px at 100% 100%, rgba(143,182,230,.22), transparent 70%),
    radial-gradient(rgba(28,78,134,.10) 1px, transparent 1.2px) 0 0/26px 26px,
    var(--bg-soft); }
#problem .wrap{ position:relative; z-index:1; }

.head__line{ display:block; height:4px; width:0; margin-top:16px; border-radius:99px; background:linear-gradient(90deg,var(--brand),#8fb6e6); transition:width 1.1s cubic-bezier(.2,.7,.2,1) .35s; }
.head.is-visible .head__line{ width:96px; }

#problem .card{ position:relative; overflow:hidden; transform-style:preserve-3d; border:0; box-shadow:0 10px 30px -12px rgba(13,27,44,.18), 0 2px 8px -2px rgba(13,27,44,.08); }
#problem .card::after{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .3s ease;
  background:radial-gradient(200px circle at var(--mx,50%) var(--my,50%), rgba(70,120,185,.22), transparent 70%);
}
#problem .card:hover::after{ opacity:1; }
#problem .card:hover{ border-color:transparent; box-shadow:0 30px 50px -16px rgba(13,27,44,.3), 0 4px 12px -2px rgba(13,27,44,.1); }
#problem .card__icon{ animation:floaty 5s ease-in-out infinite; }
#problem .card:nth-child(2) .card__icon{ animation-delay:-1.2s; }
#problem .card:nth-child(3) .card__icon{ animation-delay:-2.4s; }
#problem .card:nth-child(4) .card__icon{ animation-delay:-3.6s; }
@media (prefers-reduced-motion:reduce){ #problem .card__icon{ animation:none; } .head__line{ width:96px; transition:none; } }
.reveal-on #problem .card.is-live{ transition:transform .25s ease-out, box-shadow .25s ease; transition-delay:0s; }

/* ---------- Lösung: passend zum Rest ---------- */
.section--sol{ position:relative; overflow:hidden;
  background:
    radial-gradient(560px 360px at 100% 20%, rgba(143,182,230,.22), transparent 70%),
    radial-gradient(520px 340px at 0% 65%, rgba(28,78,134,.07), transparent 70%),
    #fff; }
.section--sol .wrap{ position:relative; z-index:1; }
.section--sol .head__line{ display:block; }

.step{ padding:20px 22px; border-radius:var(--radius); background:#fff; box-shadow:0 10px 30px -12px rgba(13,27,44,.18), 0 2px 8px -2px rgba(13,27,44,.08); transition:transform .25s ease, box-shadow .25s ease; }
.step:hover{ transform:translateY(-4px); box-shadow:0 26px 44px -14px rgba(13,27,44,.26), 0 4px 12px -2px rgba(13,27,44,.1); }
.step__no{ border-radius:12px; }
.sol__img{ border:0; box-shadow:0 20px 50px -20px rgba(13,27,44,.35), 0 2px 8px -2px rgba(13,27,44,.1); }
.sol__img:hover{ transform:translateY(-6px) scale(1.01); box-shadow:0 44px 80px -28px rgba(13,27,44,.5); }

.sol__img video{ display:block; width:100%; height:auto; }

.section--sol .steps{ gap:14px; }
.section--sol .step{ padding:16px 18px; gap:14px; }
.section--sol .step h3{ font-size:1.02rem; }
.section--sol .step p{ font-size:.9rem; }
.section--sol .step__no{ width:34px; height:34px; font-size:.85rem; }

/* ---------- Workflow Vision: Roadmap ---------- */
.section--wf{ background:
    radial-gradient(620px 380px at 50% -10%, rgba(28,78,134,.55), transparent 70%),
    radial-gradient(rgba(143,182,230,.10) 1px, transparent 1.2px) 0 0/26px 26px,
    var(--ink); }
.section--wf::before{ display:none; }
.section--wf .lead{ color:#c4d1e2; }
.section--wf h2{ color:#fff; }
.section--wf .head__line{ display:block; }

.section--wf .flow{ position:relative; gap:0; margin:20px 0 56px; padding-top:34px; }
.section--wf .flow::before{ content:""; position:absolute; top:11px; left:calc(100%/12); right:calc(100%/12); height:2px; border-radius:2px;
  background:repeating-linear-gradient(90deg, rgba(143,182,230,.4) 0 6px, transparent 6px 12px); }
.section--wf .flow::after{ content:""; position:absolute; top:11px; left:calc(100%/12); height:2px; width:0; border-radius:2px; background:linear-gradient(90deg,#8fb6e6,var(--brand)); transition:width 1.4s cubic-bezier(.2,.7,.2,1) .3s; }
.section--wf .flow:has(.is-visible)::after{ width:calc(100%/6); }

.section--wf .flow__item{ position:relative; text-align:center; border:0; background:none; padding:0 8px; animation:none; box-shadow:none; }
.section--wf .flow__item:hover{ transform:translateY(-4px); background:none; border:0; }
.section--wf .flow__item::before{ content:""; position:absolute; top:-29px; left:50%; width:12px; height:12px; margin-left:-6px; border-radius:50%; background:var(--ink); border:2px solid #8fb6e6; transition:transform .25s ease, background .25s ease; z-index:1; }
.section--wf .flow__item:hover::before{ transform:scale(1.35); background:#8fb6e6; }
.section--wf .flow__item.is-later::before{ border-color:rgba(143,182,230,.45); }
.section--wf .flow__item.is-focus::before{ width:18px; height:18px; margin-left:-9px; top:-32px; background:var(--brand); border-color:#fff; animation:pulseGlow 3.4s ease-in-out infinite; }
.section--wf .flow__no{ display:none; }
.section--wf .flow__name{ margin:0; font-size:.95rem; font-weight:700; }
.section--wf .flow__item.is-later .flow__name{ color:rgba(255,255,255,.55); font-weight:600; }
.section--wf .flow__item.is-focus .flow__name{ font-size:1.05rem; }
.section--wf .flow__badge{ margin-top:10px; padding:4px 12px; font-size:.72rem; background:var(--brand); color:#fff; }

.section--wf .mv{ gap:20px; }
.section--wf .mv__card{ border:0; border-radius:var(--radius); padding:28px; background:rgba(255,255,255,.06); box-shadow:0 20px 40px -20px rgba(0,0,0,.5); position:relative; overflow:hidden; }
.section--wf .mv__card::after{ content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .3s ease; background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%), rgba(143,182,230,.2), transparent 70%); }
.section--wf .mv__card:hover::after{ opacity:1; }
.section--wf .mv__card p{ font-size:1.08rem; color:#fff; line-height:1.45; }
.section--wf .mv__k{ font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; }

@media (max-width:960px){
  .section--wf .flow::before, .section--wf .flow::after{ display:none; }
  .section--wf .flow{ gap:28px 8px; padding-top:0; }
  .section--wf .flow__item::before{ position:static; display:block; margin:0 auto 10px; }
}

/* ---------- Weiche Übergänge zwischen den Bereichen ---------- */
.section--soft, .section--sol{ position:relative; }
.section--soft > .wrap, .section--sol > .wrap, #team > .wrap{ position:relative; z-index:1; }
#team{ position:relative; }
.section--soft::before, .section--soft::after, .section--sol::before, .section--sol::after, #team::before, #team::after{
  content:""; position:absolute; left:0; right:0; height:170px; z-index:0; pointer-events:none;
}
.section--soft::before, .section--sol::before, #team::before{ top:0; background:linear-gradient(#fff, rgba(255,255,255,0)); }
.section--soft::after, .section--sol::after, #team::after{ bottom:0; background:linear-gradient(rgba(255,255,255,0), #fff); }
.hero__fade{ position:absolute; left:0; right:0; bottom:0; height:170px; z-index:1; pointer-events:none; background:linear-gradient(rgba(255,255,255,0), #fff); }
/* letzter Bereich vor dem dunklen Footer: unten nicht ausblenden */
.cta::after{ display:none; }

/* ---------- Zielkunden ---------- */
.cust{ gap:20px; margin-bottom:20px; }
.cust__card{ position:relative; overflow:hidden; border:0; border-radius:var(--radius); padding:30px 28px 26px; min-height:0; display:flex; flex-direction:column; align-items:flex-start;
  background:#fff; box-shadow:0 10px 30px -12px rgba(13,27,44,.18), 0 2px 8px -2px rgba(13,27,44,.08); }
.cust__card::before{ display:none; }
.cust__card::after{ content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .3s ease;
  background:radial-gradient(200px circle at var(--mx,50%) var(--my,50%), rgba(70,120,185,.22), transparent 70%); }
.cust__card:hover{ transform:translateY(-5px); border-color:transparent; box-shadow:0 30px 50px -16px rgba(13,27,44,.3), 0 4px 12px -2px rgba(13,27,44,.1); }
.cust__card:hover::after{ opacity:1; }
.cust__card > *{ position:relative; z-index:1; }
.cust__no{ display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:10px; background:var(--brand-050); color:var(--brand); font-size:.9rem; font-weight:800; margin-bottom:18px; transition:background .2s ease, color .2s ease; }
.cust__card:hover .cust__no{ background:var(--brand); color:#fff; }
.cust__who{ font-size:.85rem; font-weight:700; color:var(--muted); margin-bottom:8px; }
.cust__big{ font-size:clamp(1.7rem,3vw,2.2rem); font-weight:800; letter-spacing:-.025em; line-height:1.1; color:var(--ink); margin-bottom:12px; }
.cust__card p{ font-size:1rem; color:var(--muted); max-width:36ch; }
.cust__tags{ display:flex; gap:8px; flex-wrap:wrap; margin-top:20px; }
.cust__tags span{ font-size:.8rem; font-weight:700; color:var(--brand-600); background:var(--brand-050); border-radius:7px; padding:5px 10px; }

.validated{ border:0; border-radius:var(--radius); padding:22px 26px; align-items:center; gap:16px; background:#fff; box-shadow:0 10px 30px -12px rgba(13,27,44,.18), 0 2px 8px -2px rgba(13,27,44,.08); }
.validated__mark{ width:40px; height:40px; border-radius:10px; background:var(--brand); font-size:1.2rem; }
.validated h3{ color:var(--ink); font-size:1.05rem; margin-bottom:2px; }
.validated p{ color:var(--muted); font-size:.95rem; }

/* ---------- Leichte Farbverläufe in den Hintergründen ---------- */
.section--soft{ background:
    radial-gradient(640px 400px at 0% 0%, rgba(143,182,230,.22), transparent 70%),
    radial-gradient(560px 380px at 100% 100%, rgba(28,78,134,.07), transparent 70%),
    var(--bg-soft); }
#customers{ background:
    radial-gradient(640px 400px at 100% 10%, rgba(143,182,230,.26), transparent 70%),
    radial-gradient(560px 380px at 0% 90%, rgba(70,120,185,.10), transparent 70%),
    var(--bg-soft); }
#team{ background:
    radial-gradient(600px 380px at 0% 30%, rgba(143,182,230,.16), transparent 70%),
    radial-gradient(520px 360px at 100% 80%, rgba(28,78,134,.06), transparent 70%),
    #fff; }
.cta{ background:
    radial-gradient(640px 400px at 50% 100%, rgba(143,182,230,.3), transparent 70%),
    radial-gradient(520px 340px at 0% 0%, rgba(28,78,134,.08), transparent 70%),
    var(--bg-soft); }
.hero{ background:
    radial-gradient(700px 420px at 100% 0%, rgba(143,182,230,.18), transparent 70%),
    radial-gradient(520px 340px at 0% 100%, rgba(70,120,185,.08), transparent 70%),
    #fff; }

/* Team: Stichpunkte */
.member__tags{ display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.member__tag{ font-size:.74rem; font-weight:700; color:var(--brand-600); background:var(--brand-050); border-radius:7px; padding:5px 9px; line-height:1.2; }
.member__tag.is-star{ color:#fff; background:var(--brand); }

/* Team: runde Fotos, zentrierte Bezeichnung */
.member{ text-align:center; }
.member__photo{ width:100%; max-width:176px; aspect-ratio:1/1; margin:0 auto; display:block; border-radius:50%; border:4px solid #fff; object-fit:cover; object-position:center center;
  box-shadow:0 14px 30px -12px rgba(13,27,44,.35), 0 0 0 1px rgba(28,78,134,.12); }
.member:hover .member__photo{ transform:translateY(-6px) scale(1.04); box-shadow:0 26px 44px -16px rgba(13,27,44,.45), 0 0 0 1px rgba(28,78,134,.12); }
.member h3{ margin:18px 0 6px; font-size:1.1rem; }
.member__role{ display:inline-block; position:relative; margin-top:0; padding-top:10px; color:var(--brand); font-weight:700; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; }
.member__role::before{ content:""; position:absolute; top:0; left:50%; width:22px; height:2px; margin-left:-11px; border-radius:2px; background:linear-gradient(90deg,var(--brand),#8fb6e6); transition:width .3s ease, margin-left .3s ease; }
.member:hover .member__role::before{ width:44px; margin-left:-22px; }

/* Team: Foto sauber mittig im Kreis (Quellbild-Rand wird abgeschnitten) */
.member__ph{ display:block; width:100%; max-width:176px; aspect-ratio:1/1; margin:0 auto; border-radius:50%; overflow:hidden; background:#eef1f6;
  border:4px solid #fff; box-shadow:0 14px 30px -12px rgba(13,27,44,.35), 0 0 0 1px rgba(28,78,134,.12);
  transition:transform .25s ease, box-shadow .25s ease; }
.member:hover .member__ph{ transform:translateY(-6px) scale(1.04); box-shadow:0 26px 44px -16px rgba(13,27,44,.45), 0 0 0 1px rgba(28,78,134,.12); }
.member .member__photo{ width:100%; height:100%; max-width:none; margin:0; border:0; border-radius:0; box-shadow:none; transform:scale(1.16); object-fit:cover; object-position:center; }
/* Kein Rechtsklick-Speichern, Drag & Drop oder Long-Press auf Teamfotos */
.member__photo{ pointer-events:none; -webkit-user-select:none; user-select:none; -webkit-user-drag:none; -webkit-touch-callout:none; }
.member:hover .member__photo{ transform:scale(1.16); box-shadow:none; }
.member__in{ display:block; width:22px; height:22px; margin:12px auto 0; color:#0a66c2; transition:transform .15s ease, opacity .15s ease; }
.member__in svg{ display:block; width:100%; height:100%; }
.member__in:hover{ transform:translateY(-2px); opacity:.85; }

/* Kein Farbfleck beim Hover – nur leichte Bewegung */
.stat::before, .stat::after,
#problem .card::after,
.cust__card::after, .mv__card::after{ display:none !important; }
.stat:hover, .cust__card:hover, #problem .card:hover{ transform:translateY(-4px); }

/* Hero-Grafik: beim Hover nur größer, keine Drehung */
.reveal-on .app-wrap.is-visible:hover, .app-wrap:hover{ transform:scale(1.06); }
.app-wrap .app::after{ display:none; }

/* ---------- FAQ ---------- */
.faq{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.7fr); gap:56px; align-items:start; }
.faq__aside{ position:sticky; top:calc(104px + env(safe-area-inset-top, 0px)); margin-bottom:0; }
.faq__more{ margin:32px 0 12px; font-weight:600; color:var(--ink); }
.faq__list{ display:grid; gap:12px; }
.faq__item{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); transition:border-color .2s ease, box-shadow .2s ease; }
.faq__item:hover{ border-color:#c9d8ec; }
.faq__item[open]{ border-color:#c9d8ec; box-shadow:var(--shadow-sm); }
.faq__item summary{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:20px 22px 20px 24px; cursor:pointer; list-style:none;
  font-weight:600; font-size:1.02rem; line-height:1.4; color:var(--ink);
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary:focus-visible{ outline:2px solid var(--brand); outline-offset:3px; border-radius:var(--radius); }
.faq__icon{ flex:none; position:relative; width:32px; height:32px; border-radius:10px; background:var(--brand-050); transition:background .2s ease; }
.faq__icon::before, .faq__icon::after{
  content:""; position:absolute; left:50%; top:50%; width:12px; height:2px; border-radius:2px;
  background:var(--brand); transform:translate(-50%,-50%); transition:transform .25s ease, background .2s ease;
}
.faq__icon::after{ transform:translate(-50%,-50%) rotate(90deg); }
.faq__item[open] .faq__icon{ background:var(--brand); }
.faq__item[open] .faq__icon::before, .faq__item[open] .faq__icon::after{ background:#fff; }
.faq__item[open] .faq__icon::after{ transform:translate(-50%,-50%) rotate(0deg); }
.faq__a{ padding:0 24px 22px; color:var(--muted); font-size:.97rem; }
.faq__a p + p{ margin-top:10px; }
.faq__item[open] .faq__a{ animation:faq-in .25s ease; }
@keyframes faq-in{ from{ opacity:0; transform:translateY(-4px); } }
@media (max-width:960px){
  .faq{ grid-template-columns:1fr; gap:28px; }
  .faq__aside{ position:static; }
  .faq__more{ margin-top:20px; }
}
@media (prefers-reduced-motion:reduce){
  .faq__item[open] .faq__a{ animation:none; }
  .faq__icon, .faq__icon::before, .faq__icon::after{ transition:none; }
}
