/* Jump Fun – voorstel van Vego IT. Speels maar verzorgd: kleuren uit het logo (roze + hemelsblauw), zonnegeel als accent. */
:root{
  --roze:#ec1c7c;--roze-donker:#b5105c;--blauw:#2fb0e8;--blauw-donker:#0f7fb5;--geel:#ffd23f;--gras:#45c063;
  --inkt:#1d1238;--grijs:#5d5670;--creme:#fff8f0;--wit:#fff;--rand:#efe3d6;
  --veer:cubic-bezier(.34,1.56,.64,1);--zacht:cubic-bezier(.22,1,.36,1);
  --schaduw:0 18px 40px -18px rgba(29,18,56,.35);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--creme);color:var(--inkt);font:17px/1.6 Nunito,system-ui,sans-serif;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--roze-donker)}
h1,h2,h3{font-family:Fredoka,Nunito,sans-serif;font-weight:600;line-height:1.08;margin:0 0 .45em;letter-spacing:-.01em}
h1{font-size:clamp(2.6rem,6.4vw,5rem)}
h2{font-size:clamp(2rem,4vw,3rem)}
h3{font-size:1.35rem}
p{margin:0 0 1em}
.binnen{width:min(1180px,100% - 32px);margin-inline:auto}
.voorstel{position:relative;z-index:60;background:var(--inkt);color:#efe6ff;text-align:center;font-size:.82rem;padding:6px 12px}
.verborgen{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* voortgangsbalk */
.voortgang{position:fixed;left:0;top:0;height:4px;width:100%;transform-origin:0 50%;transform:scaleX(0);z-index:80;background:linear-gradient(90deg,var(--roze),var(--geel),var(--blauw))}

/* kop: glas, verbergt bij naar beneden scrollen */
.kop{position:sticky;top:0;z-index:50;transition:transform .45s var(--zacht),background .3s,box-shadow .3s}
.kop.glas{background:rgba(255,248,240,.82);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:0 6px 24px -14px rgba(29,18,56,.35)}
.kop.weg{transform:translateY(-110%)}
.kop-rij{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:78px}
.logo img{height:58px;width:auto;transition:transform .5s var(--veer)}
.logo:hover img{transform:rotate(-6deg) scale(1.06)}
.menu{display:flex;align-items:center;gap:6px}
.menu a{font-family:Fredoka,sans-serif;font-weight:500;font-size:1.05rem;color:var(--inkt);text-decoration:none;padding:8px 14px;border-radius:999px;transition:background .25s,color .25s}
.menu a:hover{background:#fff}
.menu a[aria-current=page]{background:var(--inkt);color:#fff}
.menu-knop{display:none;font:600 1rem Fredoka,sans-serif;background:#fff;border:2px solid var(--inkt);border-radius:999px;padding:8px 16px;color:var(--inkt)}

/* knoppen */
.knop{display:inline-flex;align-items:center;gap:.5em;font:600 1.05rem Fredoka,sans-serif;text-decoration:none;color:#fff;background:var(--roze);border:3px solid var(--inkt);border-radius:999px;padding:13px 24px;box-shadow:0 5px 0 var(--inkt);transition:transform .25s var(--veer),box-shadow .25s var(--veer),background .2s;cursor:pointer}
.knop:hover{background:var(--roze-donker);transform:translateY(-3px);box-shadow:0 8px 0 var(--inkt)}
.knop:active{transform:translateY(3px);box-shadow:0 2px 0 var(--inkt)}
.knop-wit{background:#fff;color:var(--inkt)}
.knop-wit:hover{background:var(--geel)}
.knop-blauw{background:var(--blauw)}
.knop-blauw:hover{background:var(--blauw-donker)}
.knop-klein{padding:9px 18px;font-size:.98rem;box-shadow:0 4px 0 var(--inkt)}
.knoppen{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}

/* HERO */
.held{position:relative;padding:40px 0 120px;overflow:hidden}
.held-rij{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;position:relative;z-index:2}
.held .boven{display:inline-flex;align-items:center;gap:8px;font:600 .95rem Fredoka,sans-serif;background:#fff;border:2px solid var(--inkt);border-radius:999px;padding:6px 14px;margin-bottom:18px}
.held .boven i{width:10px;height:10px;border-radius:50%;background:var(--gras);box-shadow:0 0 0 4px rgba(69,192,99,.25);animation:puls 1.8s infinite}
@keyframes puls{50%{box-shadow:0 0 0 9px rgba(69,192,99,0)}}
.held h1{font-size:clamp(2.2rem,5vw,3.9rem)}
.held h1 .regel{white-space:nowrap}
.held h1 .w{display:inline-block;white-space:nowrap}
.held h1 .l{display:inline-block;transform-origin:50% 100%}
.held h1 .roze{color:var(--roze)}
.wissel{display:inline-block;position:relative;color:var(--blauw-donker);min-width:4ch}
.wissel span{display:inline-block}
.wissel::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.16em;border-radius:9px;background:var(--geel);z-index:-1;transform-origin:0 50%;animation:onderlijn 2.6s var(--zacht) infinite}
@keyframes onderlijn{0%{transform:scaleX(0)}25%,80%{transform:scaleX(1)}100%{transform:scaleX(0);transform-origin:100% 50%}}
.held .intro{font-size:1.18rem;color:var(--grijs);max-width:34em}
.held-beeld{position:relative;height:540px}
.sticker{position:absolute;will-change:transform;filter:drop-shadow(3px 0 0 #fff) drop-shadow(-3px 0 0 #fff) drop-shadow(0 3px 0 #fff) drop-shadow(0 -3px 0 #fff) drop-shadow(0 18px 16px rgba(29,18,56,.22))}
.sticker img{width:100%;height:auto;animation:stuiter 2.8s var(--zacht) infinite}
.sticker.s1{width:62%;left:14%;top:14%;z-index:3}
.sticker.s2{width:44%;left:-4%;top:52%;z-index:2}
.sticker.s3{width:44%;right:-6%;top:56%;z-index:2}
.sticker.s2 img{animation-delay:-.9s}.sticker.s3 img{animation-delay:-1.7s}
@keyframes stuiter{0%,100%{transform:translateY(0) scale(1,1)}38%{transform:translateY(-16px) scale(.98,1.03)}55%{transform:translateY(0) scale(1.04,.96)}64%{transform:translateY(-4px) scale(1,1)}}
.zon{position:absolute;right:6%;top:-2%;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff3b0,var(--geel) 60%);box-shadow:0 0 0 14px rgba(255,210,63,.25),0 0 0 30px rgba(255,210,63,.12);animation:draai 30s linear infinite}
@keyframes draai{to{rotate:360deg}}
.ballon{position:absolute;width:54px;height:66px;border-radius:50% 50% 48% 52%/58% 58% 42% 42%;z-index:1;animation:zweef 7s ease-in-out infinite}
.ballon::after{content:"";position:absolute;left:50%;top:100%;width:1.5px;height:70px;background:rgba(29,18,56,.35);transform:translateX(-50%)}
.ballon::before{content:"";position:absolute;left:22%;top:16%;width:12px;height:18px;border-radius:50%;background:rgba(255,255,255,.55);transform:rotate(25deg)}
.ballon.b1{background:var(--roze);left:4%;top:18%}
.ballon.b2{background:var(--blauw);left:47%;top:6%;animation-delay:-2.3s;width:44px;height:54px}
.ballon.b3{background:var(--geel);right:2%;top:40%;animation-delay:-4.1s}
@keyframes zweef{0%,100%{transform:translate(0,0) rotate(-4deg)}50%{transform:translate(8px,-24px) rotate(5deg)}}
.confetti{position:absolute;inset:0;pointer-events:none;z-index:1}
.confetti i{position:absolute;width:12px;height:12px;border-radius:3px;opacity:.85;animation:dwarrel 9s linear infinite}
@keyframes dwarrel{0%{transform:translateY(-30px) rotate(0)}100%{transform:translateY(110vh) rotate(540deg)}}
.golf{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:90px;z-index:3}

/* blauwe band met troeven */
.troeven{background:var(--blauw);color:#fff;padding:64px 0 90px;position:relative}
.troeven h2{color:#fff}
.troef-rij{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:26px}
.troef{background:rgba(255,255,255,.14);border:2px solid rgba(255,255,255,.35);border-radius:24px;padding:24px;transition:transform .4s var(--veer),background .3s}
.troef:hover{transform:translateY(-6px) rotate(-1deg);background:rgba(255,255,255,.22)}
.troef .getal{display:block;font:700 2.6rem/1 Fredoka,sans-serif;color:var(--geel);margin-bottom:6px}
.troef h3{color:#fff;margin-bottom:6px}
.troef p{margin:0;opacity:.92}
.golf-onder{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:70px}

/* secties */
.sectie{padding:96px 0;position:relative}
.sectie-wit{background:#fff}
.boven-label{display:inline-block;font:600 .9rem Fredoka,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--roze);margin-bottom:10px}
.kop-rij2{display:flex;align-items:end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:30px}
.kop-rij2 h2{margin:0;max-width:16em}

/* kasteelkaarten */
.kastelen{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.kasteel{position:relative;background:#fff;border:3px solid var(--inkt);border-radius:28px;overflow:hidden;cursor:pointer;box-shadow:0 8px 0 var(--inkt);transition:box-shadow .3s var(--veer),translate .3s var(--veer);transform-style:preserve-3d}
.kasteel:hover{box-shadow:0 14px 0 var(--inkt);translate:0 -6px}
.kasteel .foto{position:relative;aspect-ratio:4/3;overflow:hidden;background:#fdf1e4}
.kasteel .foto img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--zacht)}
.kasteel:hover .foto img{animation:spring .7s var(--veer)}
@keyframes spring{0%{transform:scale(1)}30%{transform:scale(1.08,.94) translateY(4px)}60%{transform:scale(.97,1.06) translateY(-8px)}100%{transform:scale(1.04)}}
.kasteel .prijs{position:absolute;right:14px;top:14px;background:var(--geel);border:3px solid var(--inkt);border-radius:999px;padding:6px 14px;font:700 1rem Fredoka,sans-serif;transform:rotate(4deg);transition:transform .4s var(--veer)}
.kasteel:hover .prijs{transform:rotate(-6deg) scale(1.1)}
.kasteel .info{padding:20px 22px 22px}
.kasteel h3{margin-bottom:4px}
.kasteel .kort{color:var(--grijs);font-size:.98rem;margin-bottom:12px}
.labels{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.labels li{font:600 .82rem Fredoka,sans-serif;background:var(--creme);border:2px solid var(--rand);border-radius:999px;padding:3px 10px}
.labels li.overdekt{background:#e3f5fd;border-color:#bfe6f8}
.labels li.kleuter{background:#fde6f1;border-color:#f8c4dc}
.kasteel .meer{position:absolute;right:16px;bottom:18px;width:42px;height:42px;border-radius:50%;background:var(--roze);color:#fff;display:grid;place-items:center;font:700 1.5rem/1 Fredoka,sans-serif;border:3px solid var(--inkt);transition:transform .4s var(--veer)}
.kasteel:hover .meer{transform:rotate(90deg) scale(1.1)}

/* filter */
.filter{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 30px}
.filter button{font:600 1rem Fredoka,sans-serif;background:#fff;color:var(--inkt);border:3px solid var(--inkt);border-radius:999px;padding:8px 18px;cursor:pointer;transition:transform .3s var(--veer),background .2s}
.filter button:hover{transform:translateY(-3px) rotate(-2deg)}
.filter button.actief{background:var(--inkt);color:#fff}
.kasteel.uit{display:none}

/* stappen met stuiterbal */
.stappen{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:40px;padding-top:58px}
.spoor{position:absolute;left:4%;right:4%;top:22px;height:4px;border-radius:4px;background:repeating-linear-gradient(90deg,var(--rand) 0 14px,transparent 14px 24px)}
.spoor-vol{position:absolute;left:0;top:0;height:100%;width:100%;border-radius:4px;background:linear-gradient(90deg,var(--roze),var(--blauw));transform-origin:0 50%;transform:scaleX(0)}
.bal{position:absolute;top:-17px;left:0;width:38px;height:38px;margin-left:-19px;border-radius:50%;background:radial-gradient(circle at 32% 30%,#fff 0 12%,var(--geel) 13% 100%);border:3px solid var(--inkt)}
.bal-i{animation:hup .55s ease-in-out infinite alternate}
@keyframes hup{from{transform:translateY(0) scale(1.08,.9)}to{transform:translateY(-14px) scale(.96,1.04)}}
.stap{background:#fff;border:3px solid var(--inkt);border-radius:24px;padding:24px;box-shadow:0 6px 0 var(--inkt)}
.stap .nr{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--blauw);color:#fff;font:700 1.3rem Fredoka,sans-serif;border:3px solid var(--inkt);margin-bottom:12px}
.stap:nth-child(3) .nr{background:var(--roze)}.stap:nth-child(4) .nr{background:var(--gras)}.stap:nth-child(5) .nr{background:var(--geel);color:var(--inkt)}
.stap p{margin:0;color:var(--grijs)}

/* review */
.review{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center;background:var(--roze);color:#fff;border:3px solid var(--inkt);border-radius:36px;padding:44px;box-shadow:0 10px 0 var(--inkt)}
.review .aanhaling{font:700 7rem/0.7 Fredoka,sans-serif;color:var(--geel)}
.review blockquote{margin:0;font:500 clamp(1.25rem,2.4vw,1.7rem)/1.4 Fredoka,sans-serif}
.review cite{display:block;margin-top:14px;font-style:normal;font-weight:700;opacity:.9}
.sterren{color:var(--geel);letter-spacing:4px;font-size:1.3rem}

/* plaatsen */
.plaatsen{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;padding:0;list-style:none}
.plaatsen li{background:#fff;border:3px solid var(--inkt);border-radius:999px;padding:9px 18px;font:600 1rem Fredoka,sans-serif;transition:transform .35s var(--veer)}
.plaatsen li:nth-child(odd):hover{transform:rotate(-3deg) translateY(-4px)}
.plaatsen li:nth-child(even):hover{transform:rotate(3deg) translateY(-4px)}

/* over ons */
.over{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.over-foto{position:relative}
.over-foto img{border-radius:32px;border:3px solid var(--inkt);box-shadow:var(--schaduw);aspect-ratio:4/5;object-fit:cover;width:100%}
.over-foto .badge{position:absolute;left:-18px;bottom:26px;background:var(--geel);border:3px solid var(--inkt);border-radius:22px;padding:14px 18px;font:700 1.1rem/1.2 Fredoka,sans-serif;transform:rotate(-6deg)}
.over-foto .badge b{display:block;font-size:2rem}

/* checklist */
.checklist{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 28px;padding:0;margin:24px 0 0;list-style:none}
.checklist li{position:relative;padding:14px 16px 14px 58px;background:#fff;border:2px solid var(--rand);border-radius:18px}
.checklist li::before{content:"";position:absolute;left:16px;top:50%;width:28px;height:28px;margin-top:-14px;border-radius:50%;background:var(--gras);transform:scale(0);transition:transform .45s var(--veer)}
.checklist li::after{content:"";position:absolute;left:25px;top:50%;width:10px;height:6px;margin-top:-5px;border-left:3px solid #fff;border-bottom:3px solid #fff;transform:rotate(-45deg) scale(0);transition:transform .35s var(--veer) .15s}
.checklist li.zichtbaar::before{transform:scale(1)}
.checklist li.zichtbaar::after{transform:rotate(-45deg) scale(1)}

/* cadeaubon + oproep */
.bon{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;background:var(--geel);border:3px solid var(--inkt);border-radius:32px;padding:34px 40px;box-shadow:0 8px 0 var(--inkt);position:relative;overflow:hidden}
.bon h2{margin:0 0 6px;font-size:clamp(1.6rem,3vw,2.3rem)}
.bon p{margin:0}
.bon .strik{position:absolute;right:-20px;top:-20px;width:120px;height:120px;border-radius:50%;background:rgba(236,28,124,.15)}
.oproep{background:var(--inkt);color:#fff;padding:90px 0;position:relative;overflow:hidden;text-align:center}
.oproep h2{color:#fff;max-width:14em;margin-inline:auto}
.oproep p{color:#d9d0ee;max-width:32em;margin-inline:auto}
.oproep .knoppen{justify-content:center}
.gloed{position:absolute;width:520px;height:520px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(236,28,124,.45),rgba(47,176,232,.25) 45%,transparent 70%);left:var(--mx,50%);top:var(--my,50%);transform:translate(-50%,-50%);transition:left .25s,top .25s}

/* band (subpagina's) */
.band{position:relative;padding:70px 0 110px;background:var(--blauw);color:#fff;overflow:hidden}
.band h1{color:#fff;font-size:clamp(2.4rem,5vw,4rem)}
.band p{max-width:36em;font-size:1.15rem;margin:0}
.band .ballon.b1{left:auto;right:10%;top:20%}
.band .ballon.b3{right:24%;top:52%}

/* voorwaarden */
.akkordeon details{background:#fff;border:3px solid var(--inkt);border-radius:22px;margin-bottom:14px;overflow:hidden}
.akkordeon summary{list-style:none;cursor:pointer;padding:18px 22px;font:600 1.15rem Fredoka,sans-serif;display:flex;justify-content:space-between;align-items:center}
.akkordeon summary::-webkit-details-marker{display:none}
.akkordeon summary::after{content:"+";font-size:1.6rem;transition:transform .35s var(--veer)}
.akkordeon details[open] summary::after{transform:rotate(45deg)}
.akkordeon ul{margin:0;padding:0 22px 18px 42px;color:var(--grijs)}
.akkordeon li{margin-bottom:8px}

/* contact */
.contact-rij{display:grid;grid-template-columns:.9fr 1.1fr;gap:34px;align-items:start}
.kaartje{background:#fff;border:3px solid var(--inkt);border-radius:28px;padding:30px;box-shadow:0 8px 0 var(--inkt)}
.kaartje h2{font-size:1.8rem}
.kaartje a{font-weight:700}
.formulier{background:#fff;border:3px solid var(--inkt);border-radius:28px;padding:30px;box-shadow:0 8px 0 var(--inkt)}
.formulier .rij2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.formulier label{display:block;font:600 .98rem Fredoka,sans-serif;margin-bottom:14px}
.formulier input,.formulier select,.formulier textarea{display:block;width:100%;margin-top:6px;font:inherit;font-family:Nunito,sans-serif;font-weight:400;padding:12px 14px;border:2px solid var(--rand);border-radius:14px;background:var(--creme);color:var(--inkt);transition:border-color .2s,box-shadow .2s}
.formulier input:focus,.formulier select:focus,.formulier textarea:focus{outline:none;border-color:var(--blauw);box-shadow:0 0 0 4px rgba(47,176,232,.2)}
.melding{background:#e3f5fd;border:2px solid #bfe6f8;border-radius:14px;padding:12px 14px;margin-top:14px}

/* venster met kasteel */
.venster{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:rgba(29,18,56,.6);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .3s}
.venster.open{opacity:1;pointer-events:auto}
.venster-doos{position:relative;width:min(980px,100%);max-height:92vh;overflow:auto;background:#fff;border:3px solid var(--inkt);border-radius:30px;display:grid;grid-template-columns:1.1fr 1fr;transform:scale(.85) translateY(30px);transition:transform .5s var(--veer)}
.venster.open .venster-doos{transform:none}
.venster-fotos{position:relative;background:#fdf1e4;min-height:420px}
.venster-fotos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s}
.venster-fotos img.aan{opacity:1}
.venster-fotos .pijl{position:absolute;top:50%;margin-top:-22px;width:44px;height:44px;border-radius:50%;border:3px solid var(--inkt);background:#fff;font:700 1.3rem/1 Fredoka,sans-serif;cursor:pointer;z-index:2}
.venster-fotos .vorige{left:12px}.venster-fotos .volgende{right:12px}
.stipjes{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:6px;z-index:2}
.stipjes i{width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--inkt);opacity:.6}
.stipjes i.aan{opacity:1;background:var(--geel)}
.venster-tekst{padding:30px}
.venster-tekst h2{font-size:2.2rem;margin-bottom:6px}
.sluit{position:absolute;right:14px;top:14px;z-index:3;width:44px;height:44px;border-radius:50%;border:3px solid var(--inkt);background:var(--geel);font:700 1.4rem/1 Fredoka,sans-serif;cursor:pointer}
.specs{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:18px 0;padding:16px;background:var(--creme);border-radius:18px}
.specs dt{font:600 .95rem Fredoka,sans-serif;color:var(--grijs)}
.specs dd{margin:0;font-weight:700}
.venster .grote-prijs{font:700 2rem Fredoka,sans-serif;color:var(--roze)}
.venster .grote-prijs small{font-size:1rem;color:var(--grijs);font-weight:600}

/* footer */
.voet{background:#140b2a;color:#cfc5e6;padding:70px 0 26px;overflow:hidden}
.voet-rij{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:30px}
.voet h3{color:#fff;font-size:1.1rem;letter-spacing:.06em;text-transform:uppercase}
.voet a{color:#fff}
.voet .logo img{height:76px;filter:drop-shadow(0 4px 0 rgba(0,0,0,.25))}
.reuzewoord{display:flex;justify-content:center;gap:.02em;margin:46px 0 10px;font:700 clamp(4rem,15vw,12rem)/.9 Fredoka,sans-serif;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.2);user-select:none}
.reuzewoord span{display:inline-block;transition:transform .5s var(--veer),color .3s}
.reuzewoord span:hover{transform:translateY(-.18em) rotate(-8deg);color:var(--roze);-webkit-text-stroke-color:var(--roze)}
.reuzewoord span:nth-child(even):hover{transform:translateY(-.14em) rotate(8deg);color:var(--blauw);-webkit-text-stroke-color:var(--blauw)}
.voet-onder{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;font-size:.88rem}

/* terug naar boven: stuiterbal */
.naar-boven{position:fixed;right:20px;bottom:20px;z-index:70;width:56px;height:56px;border-radius:50%;border:3px solid var(--inkt);background:radial-gradient(circle at 32% 30%,#fff 0 10%,var(--blauw) 11% 100%);color:#fff;font:700 1.4rem Fredoka,sans-serif;cursor:pointer;opacity:0;transform:translateY(30px) scale(.6);transition:opacity .3s,transform .5s var(--veer)}
.naar-boven.zie{opacity:1;transform:none}
.naar-boven:hover{animation:hup .45s ease-in-out infinite alternate}

/* gsm-balk */
.gsm-balk{display:none}

/* inschuiven */
.js .op{opacity:0;transform:translateY(46px) scale(.96);transition:opacity .7s var(--zacht),transform .9s var(--veer)}
.js .op.zichtbaar{opacity:1;transform:none}
.js .stagger>*{opacity:0;transform:translateY(40px) rotate(-1.5deg);transition:opacity .6s var(--zacht),transform .8s var(--veer)}
.js .stagger>.zichtbaar{opacity:1;transform:none}

/* letters springen binnen, koppen woord voor woord */
@keyframes insprong{0%{opacity:0;transform:translateY(.7em) scale(.4,1.4)}55%{opacity:1;transform:translateY(-.12em) scale(1.12,.86)}75%{transform:translateY(.04em) scale(.96,1.04)}100%{opacity:1;transform:none}}
.ww{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em}
.wi{display:inline-block;transform:translateY(110%);transition:transform .8s var(--veer)}
.op-woord.zichtbaar .wi{transform:none}

/* vonkjes bij klik */
.vonk{position:fixed;width:10px;height:10px;border-radius:3px;pointer-events:none;z-index:100}

@media (max-width:960px){
  .held-rij,.over,.contact-rij,.venster-doos{grid-template-columns:1fr}
  .held-beeld{height:380px}
  .troef-rij{grid-template-columns:1fr 1fr}
  .kastelen{grid-template-columns:1fr 1fr}
  .stappen{grid-template-columns:1fr 1fr;padding-top:0}
  .spoor{display:none}
  .review{grid-template-columns:1fr;padding:30px}
  .menu{display:none;position:absolute;left:-16px;right:-16px;top:100%;flex-direction:column;align-items:stretch;padding:14px;background:var(--creme);border-bottom:3px solid var(--inkt)}
  .menu.open{display:flex}
  .menu-knop{display:block}
  .kop-rij{position:relative}
  .voet-rij{grid-template-columns:1fr}
  .venster-fotos{min-height:300px}
}
@media (max-width:620px){
  body{font-size:16px}
  .kastelen,.troef-rij,.stappen,.checklist,.formulier .rij2{grid-template-columns:1fr}
  .held{padding-bottom:90px}
  .held-beeld{height:300px}
  .bon{grid-template-columns:1fr;padding:26px}
  .held .ballon{display:none}
  .zon{width:72px;height:72px;right:2%;top:0}
  .logo img{height:48px}
  .gsm-balk{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:75;background:var(--inkt)}
  .gsm-balk a{color:#fff;text-align:center;padding:15px 0;font:600 1rem Fredoka,sans-serif;text-decoration:none;border-right:1px solid rgba(255,255,255,.15)}
  .gsm-balk a:first-child{background:var(--roze)}
  body{padding-bottom:54px}
  .naar-boven{bottom:70px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .op,.js .stagger>*{opacity:1!important;transform:none!important}
}
