/* gspart – Website */
:root{
  --bg:#F4F7F2; --ink:#15241B; --ink2:#2E3D33; --muted:#4A5A50; --line:#D5DED7; --line2:#E3EAE4;
  --green:#18794A; --green-d:#0F5232; --green-l:#E3F2E8; --yellow:#FFD23F; --dark:#15241B;
  --display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif; --body:"Figtree",ui-sans-serif,system-ui,sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--green)}a:hover{color:var(--green-d)}
h1,h2,h3{font-family:var(--display);font-weight:800;margin:0;letter-spacing:-.02em}
h2{font-size:clamp(2rem,3.6vw,3rem);letter-spacing:-1px;line-height:1.05}
h3{font-size:22px}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.narrow{max-width:820px}
.skip{position:absolute;left:-9999px;top:8px;background:#fff;padding:8px 12px;border-radius:8px;z-index:10}
.skip:focus{left:8px}

@keyframes up{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes float{0%,100%{transform:translateY(0) rotate(-1.2deg)}50%{transform:translateY(-14px) rotate(.6deg)}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes badge{0%{opacity:0;transform:translateY(8px) scale(.9)}60%{opacity:1;transform:translateY(0) scale(1.05)}100%{transform:scale(1)}}
@keyframes driftA{to{transform:translate(80px,40px) scale(1.15)}}
@keyframes driftB{to{transform:translate(-70px,-30px) scale(.95)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes shine{0%{transform:translateX(-160%) skewX(-20deg)}55%,100%{transform:translateX(620%) skewX(-20deg)}}
@keyframes wiggle{0%,86%,100%{transform:rotate(0)}90%{transform:rotate(-6deg)}95%{transform:rotate(5deg)}}
@keyframes scan{0%{top:6%}100%{top:90%}}

.up{animation:up .7s var(--ease) both;animation-delay:calc(var(--d,0) * 90ms)}
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .reveal.seen{opacity:1;transform:none}
.lift{transition:transform .3s var(--ease),box-shadow .3s}
.lift:hover{transform:translateY(-8px);box-shadow:0 28px 48px -24px rgba(21,36,27,.4)}
.wig{animation:wiggle 3s ease-in-out infinite}
.shine{position:absolute;top:0;bottom:0;left:0;width:22%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.3),rgba(255,255,255,0));animation:shine 4.5s 1.5s ease-in-out infinite;pointer-events:none}

/* Knöpfe */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border-radius:14px;background:var(--dark);color:#fff;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s;border:0;position:relative}
.btn:hover{color:#fff;transform:translateY(-3px);box-shadow:0 14px 24px -12px rgba(21,36,27,.55)}
.btn.big{min-height:56px;padding:16px 24px;font-size:17px}
.btn.small{min-height:44px;padding:10px 18px;background:var(--green)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line)}
.btn.ghost:hover{color:var(--ink);box-shadow:inset 0 0 0 2px var(--green),0 14px 24px -14px rgba(21,36,27,.4)}
.btn.line{background:transparent;color:var(--green);box-shadow:inset 0 0 0 2px var(--green)}
.btn.line:hover{color:var(--green-d)}
.btn.yellow{background:var(--yellow);color:var(--dark)}.btn.yellow:hover{color:var(--dark)}
.btn.dark{background:var(--dark)}
.pill{display:inline-block;align-self:flex-start;background:var(--yellow);border-radius:999px;padding:8px 16px;font-weight:700;font-size:14px}

/* Kopf & Hero */
.hero-wrap{position:relative;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none}
.blob.a{width:520px;height:520px;background:#BFE3CC;opacity:.7;top:-160px;right:-120px;animation:driftA 14s ease-in-out infinite alternate}
.blob.b{width:420px;height:420px;background:#FFE89A;opacity:.6;bottom:-180px;left:-120px;animation:driftB 16s ease-in-out infinite alternate}
.top{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:22px;padding-bottom:22px;animation:up .6s var(--ease) both}
.logo-link{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.logo{width:38px;height:38px;border-radius:12px;background:var(--green);display:flex;align-items:center;justify-content:center}
.word{font-family:var(--display);font-weight:800;font-size:28px;letter-spacing:-.5px;color:var(--ink)}
.word span{color:#E0A800}
.menu{display:flex;flex-wrap:wrap;align-items:center;gap:8px 26px;font-weight:600}
.menu a:not(.btn){color:var(--ink2);text-decoration:none;transition:color .2s}
.menu a:not(.btn):hover{color:var(--green)}
.hero{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:56px;align-items:center;padding-top:40px;padding-bottom:96px}
.hero-text{display:flex;flex-direction:column;gap:24px}
.hero h1{font-size:clamp(2.6rem,5.4vw,4.6rem);line-height:.98;letter-spacing:-2px}
.lead{font-size:1.22rem;color:var(--ink2);max-width:34rem;margin:0}
.lead.light{color:#E3F2E8}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.small-note{font-size:15px;color:var(--muted);margin:0}
.hero-visual{display:flex;justify-content:center}
.phone-card{width:100%;max-width:380px;background:#fff;border-radius:32px;padding:26px;box-shadow:0 30px 60px -20px rgba(21,36,27,.28);display:flex;flex-direction:column;gap:18px;border:1px solid var(--line2);animation:float 6s 1.2s ease-in-out infinite}
.pc-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.pc-head b{font-family:var(--display);font-size:20px}
.pc-head span{font-size:13px;color:var(--muted)}
.pc-win{position:relative;overflow:hidden;background:var(--green);color:#fff;border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:10px}
.pc-win small{font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#CDEBD8}
.pc-row{display:flex;justify-content:space-between;align-items:flex-end}
.pc-row b{font-family:var(--display);font-size:26px}
.pc-row strong{font-family:var(--display);font-size:34px;line-height:1;font-variant-numeric:tabular-nums}
.pc-save{background:var(--yellow);color:var(--dark);border-radius:10px;padding:8px 12px;font-weight:700;font-size:14px;animation:badge .6s 1.6s var(--ease) both}
.pc-bars{display:flex;flex-direction:column;gap:12px}
.pc-bars p{display:flex;justify-content:space-between;margin:0 0 5px;font-size:14px}
.pc-bars i{display:block;height:8px;border-radius:4px;background:var(--line2)}
.pc-bars em{display:block;height:8px;border-radius:4px;background:#9FB3A5;width:var(--w);transform-origin:left;animation:grow 1s var(--dl) var(--ease) both}
.pc-bars em.m{background:#6FA585}

/* Laufband */
.marquee{background:var(--dark);color:#fff;overflow:hidden;padding:20px 0}
.mq{display:flex;width:max-content;animation:marquee 28s linear infinite}
.mq-set{display:flex;align-items:center;gap:36px;padding-right:36px;font-family:var(--display);font-weight:800;font-size:26px;white-space:nowrap}
.mq-set i{color:var(--yellow);font-style:normal}

/* Abschnitte */
.sec{padding:88px 0}
.sec.white{background:#fff}
.sec.green{background:var(--green);color:#fff}
.sec h2{margin-bottom:28px}
.cards3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.cards2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.step{background:var(--bg);border-radius:24px;padding:30px;display:flex;flex-direction:column;gap:12px}
.sec:not(.white) .step{background:#fff;border:1px solid var(--line2)}
.step p{margin:0;color:var(--ink2)}
.step .n{font-family:var(--display);font-weight:800;font-size:48px;color:var(--green);line-height:1}
.step .n.small{font-size:28px}
.step ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:48px;align-items:center}
.split h2{margin-bottom:16px}
.feats{display:flex;flex-direction:column;gap:14px}
.feat{background:rgba(255,255,255,.1);border-radius:20px;padding:22px;display:flex;gap:16px;align-items:flex-start;transition:background .3s,transform .3s}
.feat:hover{background:rgba(255,255,255,.16);transform:translateX(6px)}
.feat svg{flex:0 0 auto}
.feat div{display:flex;flex-direction:column;gap:4px}
.feat strong{font-size:18px}.feat span{color:#E3F2E8}
.ticks{list-style:none;padding:0;margin:18px 0;display:flex;flex-direction:column;gap:10px}
.ticks li{position:relative;padding-left:32px}
.ticks li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;border-radius:50%;background:var(--green-l) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2318794A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-9'/%3E%3C/svg%3E") center/14px no-repeat}
.ticks.y li::before{background-color:rgba(255,210,63,.18);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFD23F' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-9'/%3E%3C/svg%3E")}
.ticks li.dim{color:var(--muted)}
.ticks li.dim::before{background:var(--line2)}

/* Kassenbon-Abschnitt */
.receipt{position:relative;display:flex;justify-content:center;padding:20px}
.rc-paper{position:relative;overflow:hidden;width:100%;max-width:340px;background:#fff;border-radius:8px;padding:26px 24px 34px;box-shadow:0 30px 60px -24px rgba(21,36,27,.35);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;transform:rotate(-2deg);
  -webkit-mask:linear-gradient(#000 0 0) top/100% calc(100% - 10px) no-repeat,radial-gradient(circle at 8px 0,transparent 7px,#000 7.5px) bottom left/16px 10px repeat-x;mask:linear-gradient(#000 0 0) top/100% calc(100% - 10px) no-repeat,radial-gradient(circle at 8px 0,transparent 7px,#000 7.5px) bottom left/16px 10px repeat-x}
.rc-paper p{display:flex;justify-content:space-between;gap:12px;margin:0 0 8px}
.rc-paper .rc-shop{justify-content:center;font-weight:700;font-size:18px;margin-bottom:16px;letter-spacing:.2em}
.rc-paper .rc-sum{border-top:1px dashed #999;padding-top:10px;margin-top:12px;font-weight:700}
.rc-paper .scan{position:absolute;left:0;right:0;height:3px;background:var(--green);box-shadow:0 0 14px 3px rgba(24,121,74,.5);animation:scan 2.4s ease-in-out infinite alternate}
.rc-badge{position:absolute;right:6%;bottom:6%;background:var(--yellow);border-radius:16px;padding:12px 18px;font-weight:800;box-shadow:0 14px 30px -14px rgba(21,36,27,.5);transform:rotate(3deg)}

/* Preise */
.intro{max-width:44rem;margin-bottom:36px}
.intro h2{margin-bottom:14px}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.plan{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:28px;padding:34px;display:flex;flex-direction:column}
.plan.dark{background:var(--dark);color:#fff;border:0}
.plan-n{display:flex;align-items:center;gap:8px;font-weight:700;font-size:18px;color:var(--green);margin:0;position:relative}
.plan.dark .plan-n{color:var(--yellow)}
.plan .tag{margin-left:auto;background:var(--yellow);color:var(--dark);border-radius:999px;padding:6px 12px;font-size:13px}
.price{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:16px 0 0;position:relative}
.price b{font-family:var(--display);font-weight:800;font-size:56px;letter-spacing:-1.5px;line-height:1}
.price span{color:var(--muted)}
.plan.dark .price span{color:#CDD6D0}
.plan .ticks{position:relative}
.plan .btn{margin-top:auto;position:relative}
.blob.c{width:280px;height:280px;background:#3B5A46;opacity:.7;filter:blur(60px);top:-100px;right:-80px;animation:driftB 10s ease-in-out infinite alternate}

/* Fragen */
details{border-bottom:1px solid var(--line);padding:18px 0}
summary{font-weight:700;font-size:19px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;transition:color .2s}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:var(--display);font-size:26px;line-height:1;color:var(--green);transition:transform .3s var(--ease)}
details[open] summary::after{transform:rotate(45deg)}
summary:hover{color:var(--green)}
details p{margin:12px 0 0;color:var(--ink2);animation:up .4s var(--ease) both}

.final{position:relative;overflow:hidden;background:var(--yellow);border-radius:36px;padding:clamp(32px,6vw,72px);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px}
.final h2{margin:0;font-size:clamp(2rem,4vw,3.4rem);position:relative}
.final .shine{width:18%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.45),rgba(255,255,255,0))}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:32px;padding-bottom:48px;font-size:15px;color:var(--muted);border-top:1px solid var(--line)}
.foot .links{display:flex;flex-wrap:wrap;gap:20px}
.foot a{color:var(--muted)}

@media (max-width:700px){
  body{font-size:16px}
  .menu{gap:8px 16px;font-size:15px}
  .menu a:not(.btn){display:none}
  .hero{padding-top:16px;padding-bottom:64px;gap:40px}
  .sec{padding:64px 0}
  .step,.plan{padding:24px}
  .price b{font-size:46px}
  .mq-set{font-size:20px}
  .btn.big{width:100%}
}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}
