/* Bonloo-Website — Farben aus dem Logo: Petrol (Schriftzug), Pink
   (Schleife und Fell), Pappe/Creme (Kiste), dazu die Pastellwolken des
   Logo-Hintergrunds. Nur Rollen unten benutzen, keine Einzelwerte. */

@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;
  src:url("fonts/manrope-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;
  src:url("fonts/manrope-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  color-scheme:light dark;
  --grund:#FFF8F1;
  --flaeche:rgba(255,255,255,.72);
  --flaeche-rand:rgba(16,59,62,.08);
  --text:#0F3436;
  --text-2:#4A6164;
  --petrol:#103B3E;
  --petrol-2:#1D5A5D;
  --pink:#E6388C;
  --pink-2:#FF7AB6;
  --pfirsich:#FFC99E;
  --lavendel:#D9C6FF;
  --minze:#BFEBD6;
  --haken:#BFEBD6;
  --schatten:0 1px 2px rgba(16,59,62,.06),0 12px 32px -12px rgba(16,59,62,.22);
  --schatten-gross:0 30px 80px -24px rgba(118,34,82,.38),0 12px 30px -16px rgba(16,59,62,.28);
  --knopf-text:#FFFFFF;
  --schluss-grund:#103B3E;
  --schluss-text:#FFF6EC;
  --schluss-text-2:rgba(255,246,236,.74);
  --radius:26px;
  --feder:cubic-bezier(.2,.9,.25,1.15);
  --sanft:cubic-bezier(.22,1,.36,1);
}
@media (prefers-color-scheme:dark){
  :root{
    --grund:#0B1A1B;
    --flaeche:rgba(255,255,255,.055);
    --flaeche-rand:rgba(255,255,255,.08);
    --text:#F6EFE6;
    --text-2:#A8BCB9;
    --petrol:#F6EFE6;
    --petrol-2:#CFE3DE;
    --pink:#FF5FA8;
    --pink-2:#FF9ACB;
    --pfirsich:#6B3B2A;
    --lavendel:#3B2B62;
    --minze:#123F37;
    --haken:#7FD6AE;
    --schatten:0 1px 2px rgba(0,0,0,.3),0 16px 36px -14px rgba(0,0,0,.6);
    --schatten-gross:0 30px 90px -20px rgba(255,95,168,.28),0 14px 34px -16px rgba(0,0,0,.7);
    --knopf-text:#FFFFFF;
    --schluss-grund:#132C2E;
  }
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--grund);color:var(--text);
  font:400 17px/1.55 "Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{margin:0;letter-spacing:-.03em;line-height:1.05;color:var(--petrol)}
p{margin:0}
:focus-visible{outline:3px solid var(--pink);outline-offset:3px;border-radius:10px}

.warten #seite{opacity:0}
#seite{transition:opacity .35s ease}
.rahmen{width:min(1120px,100% - 32px);margin-inline:auto}
/* Die schwebenden Karten ragen am Rand über — nie seitlich scrollen lassen. */
main{overflow-x:clip}

/* ---------- Hintergrund: Wolken wie im Logo ---------- */
.wolken{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.wolken i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.75;will-change:transform}
.wolken i:nth-child(1){width:46vmax;height:46vmax;left:-12vmax;top:-14vmax;background:var(--pfirsich);animation:treiben 26s ease-in-out infinite alternate}
.wolken i:nth-child(2){width:40vmax;height:40vmax;right:-14vmax;top:-6vmax;background:var(--lavendel);animation:treiben 30s ease-in-out -8s infinite alternate-reverse}
.wolken i:nth-child(3){width:34vmax;height:34vmax;left:30vw;top:48vh;background:var(--pink-2);opacity:.28;animation:treiben 34s ease-in-out -4s infinite alternate}
.wolken i:nth-child(4){width:30vmax;height:30vmax;right:-8vmax;bottom:-12vmax;background:var(--minze);animation:treiben 28s ease-in-out -12s infinite alternate-reverse}
@keyframes treiben{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(6vmax,4vmax,0) scale(1.12)}
  100%{transform:translate3d(-4vmax,8vmax,0) scale(.94)}
}

/* ---------- Banner und Kopf ---------- */
.banner{background:var(--petrol);color:var(--grund);text-align:center;font-size:.9rem;font-weight:600;padding:9px 16px}
.banner a{color:inherit;font-weight:800;text-underline-offset:3px}
@media (prefers-color-scheme:dark){.banner{background:var(--pink);color:#fff}}

.kopf{position:sticky;top:0;z-index:20;transition:background .3s ease,box-shadow .3s ease,-webkit-backdrop-filter .3s ease,backdrop-filter .3s ease}
.gescrollt .kopf{background:color-mix(in srgb,var(--grund) 72%,transparent);
  -webkit-backdrop-filter:saturate(170%) blur(18px);backdrop-filter:saturate(170%) blur(18px);
  box-shadow:0 1px 0 var(--flaeche-rand)}
.kopf-innen{display:flex;align-items:center;gap:20px;height:68px}
.marke{display:block;margin-right:auto;border-radius:12px}
.marke-bild img{height:34px;width:auto}
.kopf-nav{display:flex;gap:4px}
.kopf-nav a{text-decoration:none;font-weight:650;font-size:.95rem;color:var(--text-2);padding:8px 12px;border-radius:99px;transition:color .2s,background .2s}
.kopf-nav a:hover{color:var(--text);background:var(--flaeche)}
@media (max-width:720px){.kopf-nav{display:none}.marke-bild img{height:28px}}

/* ---------- Knöpfe ---------- */
.knoepfe{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.knopf{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:52px;padding:0 24px;border-radius:99px;
  font-family:inherit;font-weight:750;font-size:1rem;line-height:1;text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:transform .25s var(--feder),box-shadow .25s ease,background-position .6s ease,filter .2s}
.knopf svg{width:18px;height:18px;flex:0 0 auto;transition:transform .25s var(--feder)}
.knopf:hover svg{transform:translateX(3px)}
.knopf:active{transform:scale(.97)}
.knopf.haupt{color:var(--knopf-text);background:linear-gradient(110deg,#E6388C 0%,#C2317F 35%,#103B3E 70%,#1D5A5D 100%);background-size:220% 100%;background-position:0 0;
  box-shadow:0 10px 28px -10px rgba(230,56,140,.65),inset 0 1px 0 rgba(255,255,255,.25)}
.knopf.haupt:hover{background-position:100% 0;transform:translateY(-2px);box-shadow:0 16px 34px -12px rgba(16,59,62,.55),inset 0 1px 0 rgba(255,255,255,.25)}
.knopf.klein{min-height:42px;padding:0 18px;font-size:.92rem}
.knopf.zweit{color:var(--text);background:var(--flaeche);box-shadow:inset 0 0 0 1.5px var(--flaeche-rand),var(--schatten);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.knopf.zweit:hover{transform:translateY(-2px)}
.knopf.zweit svg{width:19px;height:19px}
.knopf.zweit:hover svg{transform:none}
.knopf.hell{color:#103B3E;background:#FFF6EC;box-shadow:0 12px 30px -12px rgba(0,0,0,.45)}
.knopf.hell:hover{transform:translateY(-2px);filter:brightness(1.04)}
.knopf.zu{cursor:default;opacity:.62;background:var(--flaeche);color:var(--text-2);box-shadow:inset 0 0 0 1.5px var(--flaeche-rand)}
.knopf.zu:hover,.knopf.zu:active{transform:none}

.chip{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:99px;font-size:.8rem;font-weight:750;letter-spacing:.02em;
  color:var(--pink);background:color-mix(in srgb,var(--pink) 10%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pink) 22%,transparent)}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;animation:puls 2.4s ease-in-out infinite}
@keyframes puls{50%{transform:scale(.55);opacity:.5}}

/* ---------- Held ---------- */
.held{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;min-height:min(760px,calc(100svh - 68px));padding:40px 0 72px}
.held-text{display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.held h1{font-size:clamp(2.6rem,6.2vw,4.6rem);font-weight:800}
.verlauf{display:block;background:linear-gradient(100deg,var(--pink) 0%,#B8458F 40%,var(--petrol-2) 80%,var(--pink) 100%);background-size:250% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:schimmer 9s ease-in-out infinite alternate;padding-bottom:.08em}
@keyframes schimmer{to{background-position:100% 0}}
.lead{font-size:clamp(1.08rem,1.6vw,1.25rem);color:var(--text-2);max-width:34ch}
.notiz{font-size:.88rem;color:var(--text-2);display:flex;gap:8px;align-items:center}
.notiz::before{content:"";width:18px;height:18px;flex:0 0 auto;border-radius:50%;
  background:var(--haken) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23103B3E' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat}

.held-bild{position:relative;justify-self:center;width:min(440px,86vw);aspect-ratio:1}
.app-symbol{position:relative;width:100%;border-radius:22.4%;box-shadow:var(--schatten-gross);
  animation:auftauchen 1s var(--sanft) .25s both,schweben 7s ease-in-out 1.3s infinite}
.schein{position:absolute;inset:-12%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--pink-2) 55%,transparent),transparent 62%);
  filter:blur(20px);animation:atmen 7s ease-in-out infinite}
@keyframes auftauchen{from{opacity:0;transform:translateY(30px) scale(.9) rotate(-4deg)}}
@keyframes schweben{50%{transform:translateY(-14px) rotate(1.2deg)}}
@keyframes atmen{50%{transform:scale(1.08);opacity:.75}}

.schwebe{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 16px 10px 10px;border-radius:18px;
  background:var(--flaeche);box-shadow:var(--schatten),inset 0 0 0 1px var(--flaeche-rand);
  -webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);
  font-size:.8rem;color:var(--text-2);line-height:1.25;white-space:nowrap}
@media (prefers-color-scheme:dark){.schwebe{background:rgba(20,40,42,.72)}}
.schwebe img{width:38px;height:38px}
.schwebe b{display:block;color:var(--text);font-size:.92rem;font-weight:800}
.schwebe.s1{left:-14%;top:14%;animation:ploppen .7s var(--feder) 1s both,wippen 6s ease-in-out 1.7s infinite}
.schwebe.s2{right:-6%;top:46%;animation:ploppen .7s var(--feder) 1.3s both,wippen 6.5s ease-in-out 2s infinite reverse}
.schwebe.s3{left:-4%;bottom:-2%;animation:ploppen .7s var(--feder) 1.6s both,wippen 7s ease-in-out 2.3s infinite}
@keyframes ploppen{from{opacity:0;transform:scale(.6) translateY(12px)}}
@keyframes wippen{50%{transform:translateY(-8px)}}

.auftritt{animation:hoch .8s var(--sanft) both;animation-delay:calc(var(--d,0) * 90ms + 80ms)}
@keyframes hoch{from{opacity:0;transform:translateY(22px)}}

@media (max-width:900px){
  .held{grid-template-columns:1fr;text-align:center;gap:28px;padding:20px 0 64px;min-height:0}
  .held-text{align-items:center;order:2}
  .held-bild{order:1;width:min(300px,70vw);margin-top:12px}
  .lead{margin-inline:auto}
  .knoepfe{justify-content:center}
  .schwebe{font-size:.72rem;padding:8px 12px 8px 8px}
  .schwebe img{width:30px;height:30px}
  .schwebe b{font-size:.82rem}
  .schwebe.s1{left:-22%}
  .schwebe.s2{right:-22%}
  .schwebe.s3{left:-10%}
}
@media (max-width:420px){.schwebe.s2{display:none}}

/* ---------- Abschnitte ---------- */
.abschnitt{padding:72px 0}
.abschnitt-kopf{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;margin-bottom:44px}
.abschnitt h2{font-size:clamp(2rem,4.2vw,3rem);font-weight:800;max-width:18ch}

.karten{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:900px){.karten{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.karten{grid-template-columns:1fr}}
.karte{position:relative;padding:26px 24px 28px;border-radius:var(--radius);background:var(--flaeche);
  box-shadow:var(--schatten),inset 0 0 0 1px var(--flaeche-rand);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  transition:transform .35s var(--feder),box-shadow .35s ease}
.karte:hover{transform:translateY(-6px)}
.karte-symbol{width:64px;height:64px;margin:-6px 0 14px -6px;transition:transform .45s var(--feder)}
.karte:hover .karte-symbol{transform:rotate(-8deg) scale(1.1)}
.karte h3{font-size:1.22rem;font-weight:800;margin-bottom:8px}
.karte p{color:var(--text-2);font-size:.98rem}

.schritte{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n,3),1fr);gap:18px}
.schritte::before{content:"";position:absolute;left:calc(100% / var(--n,3) / 2);right:calc(100% / var(--n,3) / 2);top:31px;height:3px;border-radius:3px;
  background:linear-gradient(90deg,var(--pink),var(--petrol-2));transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--sanft) .2s}
.schritte.sichtbar::before{transform:scaleX(1)}
.schritt{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:0 8px}
.nummer{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;font-weight:800;font-size:1.4rem;color:var(--knopf-text);
  background:linear-gradient(140deg,var(--pink),#B8458F 55%,#103B3E);box-shadow:0 0 0 7px var(--grund),0 12px 26px -10px rgba(230,56,140,.7);margin-bottom:8px}
.schritt h3{font-size:1.2rem;font-weight:800}
.schritt p{color:var(--text-2);max-width:26ch}
.zeig .schritt{opacity:0;transform:translateY(18px);transition:opacity .6s var(--sanft),transform .6s var(--sanft);transition-delay:calc(var(--d,0) * 180ms + 250ms)}
.zeig.sichtbar .schritt{opacity:1;transform:none}
@media (max-width:720px){
  .schritte{grid-template-columns:1fr;gap:26px}
  .schritte::before{left:31px;right:auto;top:32px;bottom:32px;width:3px;height:auto;transform:scaleY(0);transform-origin:top;background:linear-gradient(180deg,var(--pink),var(--petrol-2))}
  .schritte.sichtbar::before{transform:scaleY(1)}
  .schritt{display:grid;grid-template-columns:64px 1fr;column-gap:18px;text-align:left;align-items:center;padding:0}
  .nummer{grid-row:span 2;margin:0}
  .schritt p{max-width:none}
}

/* ---------- Schluss ---------- */
.schluss{position:relative;overflow:hidden;margin:40px 0 24px;padding:64px 32px;border-radius:36px;text-align:center;
  background:var(--schluss-grund);color:var(--schluss-text);display:flex;flex-direction:column;align-items:center;gap:18px;isolation:isolate}
.schluss h2{color:var(--schluss-text);font-size:clamp(1.9rem,4vw,2.8rem);font-weight:800;max-width:20ch}
.schluss p{color:var(--schluss-text-2);max-width:44ch}
.schluss .knoepfe{justify-content:center;margin-top:8px}
.schluss .knopf.zweit{color:var(--schluss-text);background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.18)}
.schluss-glanz{position:absolute;inset:0;z-index:-1;
  background:radial-gradient(600px 300px at 15% 0%,rgba(230,56,140,.45),transparent 60%),radial-gradient(500px 300px at 90% 110%,rgba(255,201,158,.28),transparent 60%);
  animation:glanz 12s ease-in-out infinite alternate}
@keyframes glanz{to{transform:translate3d(4%,6%,0) scale(1.1)}}

/* ---------- Fuß ---------- */
.fuss{display:flex;flex-wrap:wrap;gap:20px 32px;justify-content:space-between;align-items:center;padding:32px 0 48px;color:var(--text-2);font-size:.9rem}
.fuss-marke{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.fuss-bild img{height:24px;width:auto}
.fuss-links{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center}
.fuss-links a{text-decoration:none;font-weight:650}
.fuss-links a:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}

/* ---------- Einblenden beim Scrollen (nur mit JavaScript) ---------- */
.js .zeig{opacity:0;transform:translateY(28px);transition:opacity .8s var(--sanft),transform .8s var(--sanft);transition-delay:calc(var(--d,0) * 110ms)}
.js .zeig.sichtbar{opacity:1;transform:none}

/* In der Dashboard-Vorschau alles sofort zeigen. */
.vorschau .zeig,.vorschau .zeig .schritt{opacity:1;transform:none;transition:none}
.vorschau .schritte::before{transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .zeig,.zeig .schritt{opacity:1;transform:none}
  .schritte::before{transform:none}
}
