@font-face{font-family:'Nunito';src:url('/fonts/nunito-v32-latin-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Nunito';src:url('/fonts/nunito-v32-latin-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'Nunito';src:url('/fonts/nunito-v32-latin-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Nunito';src:url('/fonts/nunito-v32-latin-800.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap;}
@font-face{font-family:'Fredoka One';src:url('/fonts/fredoka-v17-latin-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}

:root{
  --yellow:#FFD166;--yellow-dk:#C9920A;
  --green:#06D6A0;--green-dk:#059669;
  --blue:#118AB2;--blue-lt:#E0F4FC;
  --coral:#FF6B6B;--coral-lt:#FFE8E8;
  --purple:#8B5CF6;--purple-lt:#EDE9FE;
  --bg:#FFFDF7;--card:#FFFFFF;
  --text:#1E1B18;--muted:#6B6460;--border:#E8E0D5;
  --radius:20px;--radius-sm:12px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Nunito',sans-serif;background:var(--bg);color:var(--text);line-height:1.7;overflow-x:hidden;}

/* NAV */
nav{background:var(--card);border-bottom:2px solid var(--border);position:sticky;top:0;z-index:100;padding:0 1.5rem;}
.nav-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:68px;gap:1rem;}
.nav-logo{font-family:'Fredoka One',cursive;font-size:1.5rem;color:var(--coral);text-decoration:none;display:flex;align-items:center;gap:.4rem;white-space:nowrap;}
.nav-logo span{color:var(--blue);}
.nav-links{display:flex;gap:.25rem;list-style:none;flex-wrap:wrap;}
.nav-links a{display:block;padding:.4rem .75rem;border-radius:50px;font-weight:700;font-size:.9rem;color:var(--muted);text-decoration:none;transition:background .2s,color .2s;}
.nav-links a:hover,.nav-links a.active{background:var(--green);color:var(--green-dk);}
.hamburger{display:none;background:none;border:none;font-size:1.6rem;cursor:pointer;color:var(--text);padding:.25rem;}
@media(max-width:700px){
  .hamburger{display:block;}
  .nav-links{display:none;position:absolute;top:68px;left:0;right:0;background:var(--card);border-bottom:2px solid var(--border);flex-direction:column;padding:1rem 1.5rem;gap:.25rem;}
  .nav-links.open{display:flex;}
  .nav-links a{font-size:1rem;padding:.6rem 1rem;}
}

/* BANNER */
.ds-banner{background:var(--green);color:var(--green-dk);padding:.6rem 1.5rem;font-weight:700;font-size:.85rem;text-align:center;}

/* HERO */
.hero{background:linear-gradient(135deg,#FFF9ED 0%,#E0F4FC 50%,#F0FDF9 100%);padding:5rem 1.5rem 4rem;text-align:center;position:relative;overflow:hidden;}
.hero-ball{position:absolute;border-radius:50%;pointer-events:none;opacity:0.6;z-index:0;}
.hero-ball:nth-child(1){width:130px;height:130px;background:radial-gradient(circle at 35% 35%,#FFD166,#F9A825);left:4%;bottom:10%;animation:ball1x 4.5s ease-in-out infinite,ball1y 2.1s cubic-bezier(.33,0,.66,1) infinite;}
.hero-ball:nth-child(2){width:95px;height:95px;background:radial-gradient(circle at 35% 35%,#FF6B6B,#e53935);right:5%;top:8%;animation:ball2x 5.2s ease-in-out infinite,ball2y 2.6s cubic-bezier(.33,0,.66,1) infinite;}
.hero-ball:nth-child(3){width:110px;height:110px;background:radial-gradient(circle at 35% 35%,#06D6A0,#00897B);right:12%;bottom:5%;animation:ball3x 3.9s ease-in-out infinite,ball3y 1.9s cubic-bezier(.33,0,.66,1) infinite;}
.hero-ball:nth-child(4){width:85px;height:85px;background:radial-gradient(circle at 35% 35%,#8B5CF6,#6d28d9);left:14%;top:12%;animation:ball4x 4.8s ease-in-out infinite,ball4y 2.3s cubic-bezier(.33,0,.66,1) infinite;}
@keyframes ball1x{0%,100%{left:4%;}50%{left:11%;}}
@keyframes ball2x{0%,100%{right:5%;}50%{right:14%;}}
@keyframes ball3x{0%,100%{right:12%;}50%{right:4%;}}
@keyframes ball4x{0%,100%{left:14%;}50%{left:5%;}}
@keyframes ball1y{0%{transform:translateY(0) scaleX(1) scaleY(1);}10%{transform:translateY(0) scaleX(1.18) scaleY(0.82);}35%{transform:translateY(-120px) scaleX(0.92) scaleY(1.08);}50%{transform:translateY(-130px) scaleX(0.93) scaleY(1.07);}65%{transform:translateY(-20px) scaleX(1.06) scaleY(0.94);}80%{transform:translateY(-55px) scaleX(0.96) scaleY(1.04);}90%{transform:translateY(-8px) scaleX(1.04) scaleY(0.97);}100%{transform:translateY(0) scaleX(1) scaleY(1);}}
@keyframes ball2y{0%{transform:translateY(0) scaleX(1) scaleY(1);}12%{transform:translateY(0) scaleX(1.15) scaleY(0.85);}38%{transform:translateY(-90px) scaleX(0.93) scaleY(1.07);}52%{transform:translateY(-95px) scaleX(0.94) scaleY(1.06);}68%{transform:translateY(-15px) scaleX(1.05) scaleY(0.95);}82%{transform:translateY(-40px) scaleX(0.97) scaleY(1.03);}92%{transform:translateY(-5px) scaleX(1.02) scaleY(0.98);}100%{transform:translateY(0) scaleX(1) scaleY(1);}}
@keyframes ball3y{0%{transform:translateY(0) scaleX(1) scaleY(1);}8%{transform:translateY(0) scaleX(1.2) scaleY(0.8);}30%{transform:translateY(-110px) scaleX(0.91) scaleY(1.09);}48%{transform:translateY(-115px) scaleX(0.92) scaleY(1.08);}62%{transform:translateY(-18px) scaleX(1.07) scaleY(0.93);}76%{transform:translateY(-48px) scaleX(0.95) scaleY(1.05);}88%{transform:translateY(-6px) scaleX(1.03) scaleY(0.98);}100%{transform:translateY(0) scaleX(1) scaleY(1);}}
@keyframes ball4y{0%{transform:translateY(0) scaleX(1) scaleY(1);}14%{transform:translateY(0) scaleX(1.13) scaleY(0.87);}40%{transform:translateY(-80px) scaleX(0.94) scaleY(1.06);}54%{transform:translateY(-85px) scaleX(0.95) scaleY(1.05);}70%{transform:translateY(-12px) scaleX(1.04) scaleY(0.96);}84%{transform:translateY(-35px) scaleX(0.97) scaleY(1.03);}93%{transform:translateY(-4px) scaleX(1.02) scaleY(0.99);}100%{transform:translateY(0) scaleX(1) scaleY(1);}}
.hero-content{position:relative;z-index:1;}
.hero-badge{display:inline-block;background:var(--green);color:var(--green-dk);font-weight:800;font-size:.85rem;padding:.35rem 1rem;border-radius:50px;margin-bottom:1.25rem;letter-spacing:.03em;animation:fadeUp .6s ease both;}
.hero h1{font-family:'Fredoka One',cursive;font-size:clamp(2.2rem,6vw,3.6rem);line-height:1.15;color:var(--text);margin-bottom:1.25rem;animation:fadeUp .6s .12s ease both;}
.hero h1 em{color:var(--coral);font-style:normal;}
.hero p{max-width:560px;margin:0 auto 2rem;font-size:1.1rem;color:var(--muted);animation:fadeUp .6s .24s ease both;}
.hero-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;animation:fadeUp .6s .36s ease both;}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}

/* BUTTONS */
.btn{display:inline-block;padding:.75rem 1.75rem;border-radius:50px;font-family:'Nunito',sans-serif;font-weight:800;font-size:1rem;text-decoration:none;cursor:pointer;border:none;transition:transform .15s,box-shadow .15s;}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.12);}
.btn-primary{background:var(--coral);color:#fff;}
.btn-secondary{background:var(--card);color:var(--text);border:2px solid var(--border);}
@keyframes btnPopCoral{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,107,107,.7);}30%{transform:scale(1.09);box-shadow:0 0 0 8px rgba(255,107,107,.3);}60%{transform:scale(1.04);box-shadow:0 0 0 16px rgba(255,107,107,0);}100%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,107,107,0);}}
@keyframes btnPopSecondary{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(17,138,178,.55);}30%{transform:scale(1.08);box-shadow:0 0 0 8px rgba(17,138,178,.25);}60%{transform:scale(1.03);box-shadow:0 0 0 16px rgba(17,138,178,0);}100%{transform:scale(1);box-shadow:0 0 0 0 rgba(17,138,178,0);}}
.btn-primary.glow{animation:btnPopCoral .7s cubic-bezier(.36,1.4,.64,1);}
.btn-secondary.glow{animation:btnPopSecondary .7s cubic-bezier(.36,1.4,.64,1);}

/* BUBBLES */
.bubbles{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:3rem;}
.bubble{background:white;border-radius:var(--radius);padding:1rem 1.4rem;display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:.95rem;box-shadow:0 4px 16px rgba(0,0,0,.07);opacity:0;transform:translateY(28px) scale(0.8);transition:opacity .5s cubic-bezier(.2,1.6,.4,1),transform .5s cubic-bezier(.2,1.6,.4,1);}
.bubble.visible{opacity:1;transform:translateY(0) scale(1);}
.bubble:hover{transform:translateY(-5px) scale(1.04);box-shadow:0 12px 28px rgba(0,0,0,.11);}
.bubble .icon{font-size:1.4rem;display:inline-block;}

/* REVEAL */
.reveal{opacity:0;transform:translateY(52px) scaleY(0.88) scaleX(1.04);transition:opacity .55s cubic-bezier(.2,1.4,.4,1),transform .55s cubic-bezier(.2,1.4,.4,1);}
.reveal.from-left{transform:translateX(-60px) rotate(-4deg) scale(0.93);}
.reveal.from-right{transform:translateX(60px) rotate(4deg) scale(0.93);}
.reveal.pop{transform:scale(0.75) translateY(30px);opacity:0;}
.reveal.visible{opacity:1;transform:translate(0,0) rotate(0deg) scale(1)!important;}

/* SECTIONS */
.section{padding:4rem 1.5rem;max-width:1100px;margin:0 auto;}
.section-title{font-family:'Fredoka One',cursive;font-size:clamp(1.6rem,4vw,2.4rem);margin-bottom:.5rem;}
.section-sub{color:var(--muted);font-size:1rem;margin-bottom:2.5rem;}
.chip{display:inline-block;background:var(--green);color:var(--green-dk);font-weight:800;font-size:.8rem;padding:.2rem .8rem;border-radius:50px;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em;}

/* CARDS */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;}
.card{background:var(--card);border-radius:var(--radius);padding:1.75rem;border:2px solid var(--border);transition:transform .2s,box-shadow .2s;}
.card:nth-child(odd):hover{transform:translateY(-6px) rotate(-1deg);box-shadow:0 14px 32px rgba(0,0,0,.1);}
.card:nth-child(even):hover{transform:translateY(-6px) rotate(1deg);box-shadow:0 14px 32px rgba(0,0,0,.1);}
.card-icon{font-size:2.4rem;margin-bottom:1rem;}
.card h3{font-family:'Fredoka One',cursive;font-size:1.2rem;margin-bottom:.5rem;}
.card p{color:var(--muted);font-size:.95rem;}
.card.yellow{border-top:4px solid var(--yellow);}
.card.green{border-top:4px solid var(--green);}
.card.coral{border-top:4px solid var(--coral);}
.card.purple{border-top:4px solid var(--purple);}
.card.blue{border-top:4px solid var(--blue);}

/* ABOUT */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;}
@media(max-width:700px){.about-grid{grid-template-columns:1fr;}}
.about-img{border-radius:var(--radius);overflow:hidden;background:linear-gradient(135deg,var(--blue-lt),var(--purple-lt));aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;}
.about-text h2{font-family:'Fredoka One',cursive;font-size:2rem;margin-bottom:1rem;}
.about-text p{color:var(--muted);margin-bottom:1rem;}
.team-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-top:2.5rem;}
.team-card{background:var(--card);border-radius:var(--radius);border:2px solid var(--border);padding:1.75rem 1.5rem;text-align:center;transition:transform .2s,box-shadow .2s;}
.team-card:hover{transform:translateY(-4px);box-shadow:0 10px 30px rgba(0,0,0,.08);}
.team-avatar{width:90px;height:90px;border-radius:50%;background:var(--yellow);margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;font-size:2.5rem;}
.team-card h3{font-family:'Fredoka One',cursive;font-size:1.15rem;margin-bottom:.25rem;}
.team-card p{color:var(--muted);font-size:.9rem;}

/* ANMELDUNG */
.info-box{background:var(--blue-lt);border-radius:var(--radius);border-left:5px solid var(--blue);padding:1.5rem 2rem;margin-bottom:2rem;}
.info-box h3{font-family:'Fredoka One',cursive;font-size:1.2rem;color:var(--blue);margin-bottom:.5rem;}
.info-box p{color:var(--muted);font-size:.95rem;}
.steps{display:flex;flex-direction:column;gap:1.25rem;list-style:none;}
.step{display:flex;gap:1.25rem;align-items:flex-start;background:var(--card);border-radius:var(--radius-sm);border:2px solid var(--border);padding:1.25rem 1.5rem;transition:transform .35s cubic-bezier(.2,1.5,.4,1),box-shadow .2s;}
.step:hover{transform:translateX(8px) rotate(.4deg);box-shadow:0 6px 20px rgba(0,0,0,.08);}
.step-num{width:40px;height:40px;min-width:40px;border-radius:50%;background:var(--coral);color:white;font-family:'Fredoka One',cursive;font-size:1.1rem;display:flex;align-items:center;justify-content:center;}
.step-content h4{font-weight:800;margin-bottom:.25rem;}
.step-content p{color:var(--muted);font-size:.93rem;}
.warteliste-box{background:linear-gradient(135deg,var(--coral-lt),var(--purple-lt));border-radius:var(--radius);padding:2.5rem;text-align:center;margin-top:3rem;}
.warteliste-box h3{font-family:'Fredoka One',cursive;font-size:1.5rem;margin-bottom:.75rem;}
.warteliste-box p{color:var(--muted);margin-bottom:1.5rem;}

/* GALERIE */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;}
.gallery-item{border-radius:var(--radius-sm);overflow:hidden;background:var(--card);border:2px solid var(--border);transition:transform .2s,box-shadow .2s;}
.gallery-item[data-src]{cursor:pointer;}
.gallery-item[data-src]:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.1);}
.gallery-item-img{aspect-ratio:1;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.gallery-item-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s;}
.gallery-item:hover .gallery-item-img img{transform:scale(1.06);}
.gallery-item-label{padding:.6rem .85rem;font-size:.85rem;font-weight:700;color:var(--text);}
.gallery-note{background:var(--blue-lt);border-radius:var(--radius-sm);padding:1rem 1.5rem;margin-top:1.5rem;color:var(--blue);font-weight:700;font-size:.9rem;}

/* LIGHTBOX */
.lightbox-overlay{display:none;position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.85);align-items:center;justify-content:center;padding:2rem;cursor:pointer;}
.lightbox-overlay.open{display:flex;}
.lightbox-box{max-width:800px;width:100%;background:var(--card);border-radius:var(--radius);overflow:hidden;position:relative;cursor:default;}
.lightbox-box img{width:100%;height:auto;display:block;}
.lightbox-caption{padding:1rem 1.5rem;font-weight:700;font-size:.95rem;color:var(--text);}
.lightbox-close{position:absolute;top:.75rem;right:.75rem;background:rgba(0,0,0,.5);color:white;border:none;border-radius:50%;width:36px;height:36px;font-size:1.2rem;cursor:pointer;line-height:36px;text-align:center;}
.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.5);color:white;border:none;border-radius:50%;width:42px;height:42px;font-size:1.4rem;cursor:pointer;line-height:42px;text-align:center;z-index:10;}
.lightbox-prev{left:.75rem;}.lightbox-next{right:.75rem;}
.lightbox-prev:hover,.lightbox-next:hover{background:rgba(0,0,0,.75);}

/* KONTAKT */
.kontakt-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;}
@media(max-width:700px){.kontakt-grid{grid-template-columns:1fr;}}
.kontakt-info{display:flex;flex-direction:column;gap:1rem;}
.kontakt-row{display:flex;align-items:flex-start;gap:1rem;background:var(--card);border:2px solid var(--border);border-radius:var(--radius-sm);padding:1.25rem;transition:transform .35s cubic-bezier(.2,1.5,.4,1),box-shadow .2s;}
.kontakt-row:hover{transform:translateX(8px) rotate(.3deg);box-shadow:0 6px 20px rgba(0,0,0,.07);}
.kontakt-icon{font-size:1.6rem;min-width:2.2rem;}
.kontakt-row h4{font-weight:800;font-size:.9rem;color:var(--muted);margin-bottom:.2rem;}
.kontakt-row a{color:var(--blue);text-decoration:none;font-weight:700;}
.kontakt-row a:hover{text-decoration:underline;}
.kontakt-row p{font-size:.95rem;}
.map-placeholder{background:linear-gradient(135deg,var(--blue-lt),#EFF6FF);border-radius:var(--radius);border:2px solid var(--border);min-height:300px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.5rem;color:var(--muted);font-size:.95rem;text-align:center;padding:1.5rem;}
.map-placeholder span{font-size:2.5rem;}
.hours-table{width:100%;border-collapse:collapse;margin-top:.5rem;}
.hours-table td{padding:.25rem 0;font-size:.9rem;}
.hours-table td:last-child{text-align:right;font-weight:700;}

/* LEGAL */
.legal{max-width:800px;margin:0 auto;padding:4rem 1.5rem;}
.legal h1{font-family:'Fredoka One',cursive;font-size:2rem;margin-bottom:2rem;}
.legal h2{font-size:1.1rem;font-weight:800;margin:2rem 0 .5rem;}
.legal p,.legal li{color:var(--muted);font-size:.95rem;margin-bottom:.5rem;}
.legal ul{padding-left:1.5rem;}
.legal a{color:var(--blue);}

/* FOOTER */
footer{background:var(--text);color:rgba(255,255,255,.7);padding:2.5rem 1.5rem;margin-top:4rem;}
.footer-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;}
.footer-logo{font-family:'Fredoka One',cursive;font-size:1.25rem;color:white;text-decoration:none;}
.footer-links{display:flex;gap:1.5rem;flex-wrap:wrap;list-style:none;}
.footer-links a{color:rgba(255,255,255,.6);text-decoration:none;font-size:.9rem;transition:color .2s;}
.footer-links a:hover{color:white;}
.footer-bottom{max-width:1100px;margin:1.5rem auto 0;border-top:1px solid rgba(255,255,255,.1);padding-top:1.25rem;font-size:.85rem;color:rgba(255,255,255,.4);}
