/*
Theme Name: Schuimfuif Heist Final v15 Sponsor
Theme URI: https://schuimfuif.be
Author: VZW De Jeugdvrienden
Description: Professioneel, responsive en volledig bewerkbaar block theme gebaseerd op de officiële Schuimfuif 2026 visual identity.
Version: 15.1.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: schuimfuif-heist
License: GPL-2.0-or-later
*/

:root{--sf-blue:#349ff6;--sf-blue-deep:#2d6cf5;--sf-yellow:#ffd21f;--sf-pink:#ef6fc0;--sf-lilac:#9d82e9;--sf-cyan:#63d7ee;--sf-peach:#ffb98c;--sf-ink:#101114;--sf-paper:#fffdf9;--sf-white:#fff}
html{scroll-behavior:smooth}body{overflow-x:hidden;text-rendering:optimizeLegibility}*{box-sizing:border-box}img,svg{max-width:100%;height:auto}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:4px solid var(--sf-yellow);outline-offset:4px}
.sf-header{position:fixed;inset:0 0 auto;z-index:1000;transition:background .25s,border-color .25s,backdrop-filter .25s,box-shadow .25s}
.sf-header.is-scrolled{background:rgba(52,159,246,.94);backdrop-filter:blur(16px);border:0!important;box-shadow:0 10px 30px rgba(0,0,0,.08)}
.admin-bar .sf-header{top:32px}
.sf-brandmark{display:flex;align-items:flex-end;gap:7px;color:#fff;text-decoration:none}
.sf-brand-main{font-family:Arial Black,Arial,sans-serif;font-weight:900;font-size:clamp(1.35rem,2.3vw,2.05rem);line-height:.78;letter-spacing:-.065em;text-transform:uppercase;text-shadow:0 5px 12px rgba(0,0,0,.24)}
.sf-brand-year{font-weight:900;font-size:.72rem;margin-bottom:1px}
.sf-nav .wp-block-navigation-item__content{color:#fff!important;text-decoration:none;font-weight:900}
.sf-nav .wp-block-navigation-item__content:hover{text-decoration:underline;text-decoration-thickness:3px}
.sf-nav .wp-block-navigation__responsive-container-open,.sf-nav .wp-block-navigation__responsive-container-close{border:2px solid #fff;border-radius:999px;padding:8px;color:#fff;background:rgba(0,0,0,.16)}
.sf-nav .wp-block-navigation__responsive-container.is-menu-open{background:var(--sf-blue)!important;color:#fff!important;padding:30px!important}
.sf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{font-size:clamp(1.7rem,8vw,3rem);font-family:Arial Black,Arial,sans-serif}
.sf-btn .wp-block-button__link{border:2px solid var(--sf-ink)!important;border-radius:999px!important;box-shadow:5px 5px 0 rgba(16,17,20,.95);transition:transform .18s,box-shadow .18s,background .25s}
.sf-btn .wp-block-button__link:hover{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--sf-ink)}
.sf-ticket-cycle .wp-block-button__link{min-width:184px;position:relative}
.sf-ticket-cycle.is-pulsing .wp-block-button__link{animation:sf-ticket-pulse 3.3s ease-in-out infinite}
@keyframes sf-ticket-pulse{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.025)}}
.sf-hero{position:relative;isolation:isolate;overflow:hidden;min-height:100svh;background:var(--sf-blue)!important}
.sf-hero:before{content:"";position:absolute;inset:0;z-index:-3;background:radial-gradient(circle at 80% 9%,rgba(87,94,231,.52) 0 12%,transparent 12.4%),radial-gradient(circle at 8% 96%,rgba(239,111,192,.45) 0 10%,transparent 10.5%),linear-gradient(140deg,transparent 0 80%,rgba(255,185,140,.36) 80.4% 100%)}
.sf-hero:after{content:"";position:absolute;z-index:-2;left:-110px;top:-40px;width:330px;height:310px;border-radius:44% 56% 40% 60%/46% 39% 61% 54%;background:linear-gradient(155deg,var(--sf-pink),var(--sf-peach) 52%,var(--sf-cyan));animation:sf-blob 12s ease-in-out infinite}
@keyframes sf-blob{0%,100%{border-radius:44% 56% 40% 60%/46% 39% 61% 54%;transform:rotate(-5deg)}50%{border-radius:61% 39% 57% 43%/39% 58% 42% 61%;transform:rotate(4deg)}}
.sf-stripes{position:absolute;z-index:-1;width:210px;height:210px;left:12px;top:20px;background:repeating-linear-gradient(15deg,transparent 0 11px,rgba(210,71,51,.8) 11px 18px);mask-image:radial-gradient(circle at 45% 50%,#000 0 62%,transparent 63%);opacity:.9;animation:sf-sway 10s ease-in-out infinite}
.sf-stripes-bottom{position:absolute;right:-30px;bottom:18px;width:180px;height:180px;background:repeating-linear-gradient(-45deg,transparent 0 10px,var(--sf-blue-deep) 10px 17px);mask-image:radial-gradient(circle,#000 0 65%,transparent 66%);opacity:.95;animation:sf-sway 11s ease-in-out infinite reverse}
@keyframes sf-sway{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(5deg)}}
.sf-display{font-size:clamp(4.4rem,11vw,10rem)!important;line-height:.76!important;letter-spacing:-.07em!important;text-shadow:0 10px 18px rgba(0,0,0,.24);word-break:normal;overflow-wrap:normal;hyphens:none;color:#fff}
.sf-place{display:block;margin-top:.38em;font-size:.18em;line-height:1.1;letter-spacing:.085em;text-shadow:none;white-space:nowrap;color:#fff}
.sf-eyebrow{display:inline-block;width:auto!important;max-width:100%;border:2px solid rgba(255,255,255,.85);border-radius:999px;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.sf-meta{border:2px solid rgba(255,255,255,.9);border-radius:999px;box-shadow:0 8px 18px rgba(0,0,0,.10)}
.sf-poster-card{border:2px solid rgba(255,255,255,.9);border-radius:24px;box-shadow:0 22px 60px rgba(0,0,0,.3);overflow:hidden;background:#000;transform:rotate(1.2deg);animation:sf-poster-float 8s ease-in-out infinite}
@keyframes sf-poster-float{0%,100%{transform:translateY(0) rotate(1.2deg)}50%{transform:translateY(-9px) rotate(.2deg)}}
.sf-poster-card img{display:block;width:100%;height:auto}
.sf-bubble{position:absolute;z-index:1;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 28% 23%,rgba(255,255,255,.92) 0 5%,rgba(255,255,255,.15) 17%,rgba(131,216,255,.22) 48%,rgba(255,255,255,.06) 70%);border:1px solid rgba(255,255,255,.52);box-shadow:inset 0 0 14px rgba(255,255,255,.55),0 8px 18px rgba(0,84,160,.12);animation:sf-float var(--d,9s) ease-in-out infinite}
.sf-b1{width:55px;height:55px;left:7%;top:33%;--d:8s}.sf-b2{width:92px;height:92px;right:6%;top:20%;--d:12s}.sf-b3{width:30px;height:30px;left:53%;top:15%;--d:7s}.sf-b4{width:38px;height:38px;right:18%;bottom:13%;--d:10s}
@keyframes sf-float{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(18px,-36px) scale(1.08)}}
.sf-title{max-width:990px;font-size:clamp(2.6rem,5.8vw,5.8rem)!important;line-height:.9!important;letter-spacing:-.045em!important;word-break:normal;overflow-wrap:normal;hyphens:none}
.sf-reveal{opacity:0;transform:translateY(30px);transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1)}.sf-reveal.is-visible{opacity:1;transform:none}
.sf-card{border:2px solid var(--sf-ink);border-radius:28px;box-shadow:8px 8px 0 rgba(16,17,20,.96);transition:transform .22s,box-shadow .22s}.sf-card:hover{transform:translateY(-5px);box-shadow:5px 13px 0 rgba(16,17,20,.96)}
.sf-card-subtle{border:2px solid var(--sf-ink);border-radius:24px}.sf-organic{position:relative;overflow:hidden}.sf-organic:after{content:"";position:absolute;width:120px;height:120px;right:-35px;bottom:-45px;border-radius:48% 52% 58% 42%;background:rgba(255,255,255,.36);pointer-events:none}
.sf-marquee{overflow:hidden;border-block:2px solid var(--sf-ink);transform:rotate(-.2deg)}.sf-marquee-track{display:flex;width:max-content;animation:sf-marquee 30s linear infinite}.sf-marquee-track p{flex:none;white-space:nowrap}@keyframes sf-marquee{to{transform:translateX(-50%)}}
.sf-countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:20px}.sf-countdown div{padding:10px 3px;border:2px solid rgba(255,255,255,.95);border-radius:13px;background:rgba(255,255,255,.14);text-align:center;color:#fff;backdrop-filter:blur(5px)}.sf-countdown strong{display:block;font-size:clamp(1.05rem,2vw,1.5rem)}.sf-countdown small{display:block;font-size:.58rem;font-weight:900;text-transform:uppercase}
.sf-proof{position:relative;background:#000!important;overflow:hidden}.sf-proof:before,.sf-proof:after{content:"";position:absolute;border-radius:50%;background:radial-gradient(circle at 28% 23%,rgba(255,255,255,.95) 0 5%,rgba(255,255,255,.12) 18%,rgba(110,170,220,.18) 50%,transparent 72%);border:1px solid rgba(255,255,255,.36)}.sf-proof:before{width:150px;height:150px;right:8%;top:14%}.sf-proof:after{width:75px;height:75px;left:5%;bottom:12%}
.sf-stat{min-height:330px;border:2px solid #fff;border-radius:45%;display:grid;place-items:center;background:var(--sf-pink);animation:sf-stat-float 8s ease-in-out infinite}@keyframes sf-stat-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)}}
.sf-lineup-wrap{position:relative;overflow:hidden}.sf-lineup-wrap:before{content:"";position:absolute;right:-70px;top:20px;width:230px;height:230px;border-radius:50%;background:var(--sf-lilac);opacity:.55}.sf-lineup-row{position:relative;border-top:3px solid var(--sf-ink);padding-block:18px}.sf-lineup-row:last-child{border-bottom:3px solid var(--sf-ink)}
.sf-details{border-top:2px solid currentColor;padding-block:18px}.sf-details:last-child{border-bottom:2px solid currentColor}.sf-details summary{cursor:pointer;font-weight:900;text-transform:uppercase;font-size:clamp(1rem,1.7vw,1.25rem)}.sf-details p{max-width:820px}
.sf-contact-form label{display:block;font-weight:800;margin-bottom:6px}.sf-contact-form input,.sf-contact-form textarea{width:100%;border:2px solid var(--sf-ink);border-radius:13px;padding:13px 14px;font:inherit;background:#fff}.sf-contact-form textarea{min-height:145px;resize:vertical}.sf-contact-form button{border:2px solid var(--sf-ink);border-radius:999px;padding:14px 23px;background:var(--sf-yellow);box-shadow:5px 5px 0 var(--sf-ink);font-weight:900;text-transform:uppercase;cursor:pointer}.sf-form-status{padding:12px 14px;border:2px solid var(--sf-ink);border-radius:13px;margin-bottom:18px}.sf-form-status.success{background:var(--sf-cyan)}.sf-form-status.error{background:var(--sf-pink)}
.sf-partner{min-height:130px;border:2px solid var(--sf-ink);border-radius:22px;display:grid;place-items:center;padding:20px}.sf-sticky-ticket{position:fixed;z-index:990;right:17px;bottom:17px}
@media(max-width:1050px){.sf-display{font-size:clamp(4rem,10vw,7.8rem)!important}}
@media(max-width:900px){.admin-bar .sf-header{top:46px}.sf-header-ticket{display:none!important}.sf-hero{min-height:auto}.sf-poster-card{max-width:520px;margin-inline:auto;transform:none}.sf-title{font-size:clamp(2.4rem,8vw,4.8rem)!important}.sf-stat{min-height:285px}}
@media(max-width:700px){.sf-brand-main{font-size:1.45rem}.sf-display{font-size:clamp(3.5rem,17vw,5.5rem)!important;line-height:.8!important}.sf-place{font-size:.18em;letter-spacing:.045em;white-space:normal}.sf-eyebrow{font-size:11px!important;line-height:1.25}.sf-card{box-shadow:5px 5px 0 var(--sf-ink)}.sf-ticket-cycle .wp-block-button__link{min-width:0}.sf-sticky-ticket{right:10px;bottom:10px}.sf-sticky-ticket .wp-block-button__link{padding:11px 15px!important;font-size:13px!important}.sf-marquee-track p{font-size:1.05rem!important}.sf-hero:after{width:270px;height:260px;right:-110px;bottom:-80px}.sf-stripes{width:145px;height:145px;left:-10px}}
@media(max-width:390px){.sf-brand-main{font-size:1.2rem}.sf-display{font-size:clamp(3rem,16.8vw,4rem)!important}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.sf-reveal{opacity:1;transform:none}}

body,p,li,input,textarea,button,.sf-details p{
  font-family:"Trebuchet MS","Arial Narrow",Arial,sans-serif;
  letter-spacing:.012em;
}
.sf-eyebrow,.sf-meta,.sf-countdown small,.sf-details summary,.sf-nav{
  font-family:"Arial Narrow","Trebuchet MS",Arial,sans-serif;
  letter-spacing:.075em;
}
.sf-soldout{
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  letter-spacing:-.055em!important;
}
.sf-footer{
  position:relative;overflow:hidden;border-top:2px solid rgba(255,255,255,.15)
}
.sf-footer:before{
  content:"";position:absolute;width:330px;height:220px;right:-90px;top:-100px;
  border-radius:50%;background:radial-gradient(circle,rgba(52,159,246,.45),transparent 68%);
}
.sf-footer-brand{font-family:Arial Black,Arial,sans-serif;font-size:clamp(2rem,5vw,4rem);line-height:.82;letter-spacing:-.06em}
.sf-footer-kicker{font-size:.78rem;text-transform:uppercase;font-weight:900;letter-spacing:.12em}
.sf-footer a{color:#fff}
@media(max-width:782px){
  .sf-nav .wp-block-navigation__responsive-container.is-menu-open{
    padding:90px 24px 32px!important;
  }
  .sf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{
    gap:0!important;width:100%;
  }
  .sf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{
    width:100%;border-bottom:1px solid rgba(255,255,255,.35);
  }
  .sf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
    display:block;width:100%;padding:16px 0!important;font-size:clamp(1.65rem,9vw,2.7rem)!important;
    line-height:.95!important;letter-spacing:-.035em!important;
  }
  .sf-nav .wp-block-navigation__responsive-container-close{
    top:22px!important;right:22px!important;padding:10px!important;
  }
}

/* ===== Header / mobile menu fixes v8 ===== */

/* Remove any block-theme/browser gap above the site */
html, body {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
body {
  position: relative;
}
.wp-site-blocks,
body > .wp-site-blocks {
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: 0 !important;
}
.wp-site-blocks > :first-child {
  margin-block-start: 0 !important;
}
.sf-header,
.sf-header.wp-block-group {
  top: 0 !important;
  margin: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  padding-top: 13px;
  border-top: 0 !important;
  outline: 0 !important;
}
.sf-header::before,
.sf-header::after {
  border-top: 0 !important;
}
body:not(.admin-bar) .sf-header {
  top: 0 !important;
}
.sf-header.is-scrolled {
  border-top: 0 !important;
}

/* Sold-out callout */
.sf-soldout-message {
  max-width: 560px;
  margin-inline: auto !important;
  line-height: .92 !important;
  letter-spacing: -.045em !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

/* Desktop/laptop: always keep normal inline navigation.
   Do not turn an opened responsive container into a fullscreen overlay. */
@media (min-width: 1025px) {
  .sf-nav .wp-block-navigation__responsive-container {
    position: static !important;
    inset: auto !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    background: transparent !important;
  }
  .sf-nav .wp-block-navigation__responsive-container-content {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    display: block !important;
  }
  .sf-nav .wp-block-navigation__responsive-container-open,
  .sf-nav .wp-block-navigation__responsive-container-close {
    display: none !important;
  }
  .sf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    width: auto !important;
    display: flex !important;
    flex-direction: row !important;
    gap: 21px !important;
  }
  .sf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: auto !important;
    border: 0 !important;
  }
  .sf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    display: inline-block !important;
    width: auto !important;
    padding: 0 !important;
    font-size: 13px !important;
    line-height: inherit !important;
    letter-spacing: normal !important;
    font-family: inherit !important;
    text-transform: none !important;
  }
  .sf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after {
    content: none !important;
    display: none !important;
  }
}

/* Mobile + tablet only */
@media (max-width: 1024px) {
  .sf-nav .wp-block-navigation__responsive-container {
    z-index: 99999 !important;
  }
  .sf-nav .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding: 92px 26px 34px !important;
    overflow-y: auto !important;
    background:
      radial-gradient(circle at 88% 12%, rgba(157,130,233,.85) 0 13%, transparent 13.5%),
      radial-gradient(circle at 8% 92%, rgba(239,111,192,.75) 0 15%, transparent 15.5%),
      linear-gradient(145deg, var(--sf-blue) 0%, var(--sf-blue-deep) 100%) !important;
    color: #fff !important;
    box-sizing: border-box !important;
  }
  .sf-nav .wp-block-navigation__responsive-container-content {
    width: 100% !important;
    height: 100% !important;
    min-height: calc(100dvh - 126px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: stretch !important;
  }
  .sf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    width: 100% !important;
    gap: 0 !important;
    align-items: stretch !important;
  }
  .sf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: 100% !important;
    margin: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.28);
  }
  .sf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    padding: 17px 4px !important;
    color: #fff !important;
    font-size: clamp(1.9rem, 7vw, 3rem) !important;
    line-height: .95 !important;
    font-family: Arial Black, Arial, sans-serif !important;
    font-weight: 900 !important;
    letter-spacing: -.045em !important;
    text-transform: uppercase !important;
  }

  /* Pure CSS arrow, no emoji/text glyph */
  .sf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after {
    content: "" !important;
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    margin-right: 7px;
    border-top: 3px solid currentColor;
    border-right: 3px solid currentColor;
    transform: rotate(45deg);
    opacity: .85;
  }

  .sf-nav .wp-block-navigation__responsive-container-close {
    position: absolute !important;
    top: 22px !important;
    right: 22px !important;
    width: 50px !important;
    height: 50px !important;
    display: grid !important;
    place-items: center !important;
    border: 2px solid #fff !important;
    background: rgba(0,0,0,.16) !important;
    color: #fff !important;
    border-radius: 50% !important;
  }
  .sf-nav .wp-block-navigation__responsive-container-close svg {
    width: 24px !important;
    height: 24px !important;
  }
  body.has-modal-open {
    overflow: hidden !important;
  }
}

@media (max-width: 600px) {
  .sf-soldout-message {
    font-size: clamp(1.8rem, 9vw, 3rem) !important;
  }
}

/* ===== Gallery + definitive header line fix v9 ===== */
.sf-header,
.sf-header.is-scrolled,
.sf-header > *,
.sf-header .alignwide,
.sf-header .wp-block-group{
  border-top:0!important;
  border-bottom:0!important;
  outline:0!important;
}
.sf-header{
  box-shadow:none!important;
}
.sf-header.is-scrolled{
  box-shadow:0 10px 30px rgba(0,0,0,.08)!important;
}
.sf-header::before,
.sf-header::after,
.sf-header .alignwide::before,
.sf-header .alignwide::after{
  content:none!important;
  display:none!important;
}
.wp-site-blocks{
  border-top:0!important;
}
body::before{
  content:none!important;
}

/* Gallery */
.sf-gallery-section{
  position:relative;
  overflow:hidden;
  background:var(--sf-blue);
  color:#fff;
}
.sf-gallery-section::before{
  content:"";
  position:absolute;
  width:330px;height:330px;
  left:-150px;top:80px;
  border-radius:45% 55% 62% 38%;
  background:linear-gradient(145deg,var(--sf-pink),var(--sf-peach),var(--sf-cyan));
  opacity:.75;
  animation:sf-blob 13s ease-in-out infinite;
}
.sf-gallery-shell{position:relative;z-index:2}
.sf-gallery-head{
  display:flex;
  gap:24px;
  align-items:flex-end;
  justify-content:space-between;
  margin-bottom:32px;
}
.sf-gallery-copy{max-width:720px}
.sf-gallery-controls{
  display:flex;
  gap:10px;
  flex:0 0 auto;
}
.sf-gallery-control{
  width:50px;height:50px;
  border:2px solid #fff;
  border-radius:50%;
  background:rgba(0,0,0,.16);
  color:#fff;
  display:grid;place-items:center;
  cursor:pointer;
  transition:transform .18s,background .18s;
}
.sf-gallery-control:hover{
  transform:scale(1.06);
  background:rgba(0,0,0,.28);
}
.sf-gallery-control::before{
  content:"";
  width:11px;height:11px;
  border-top:3px solid currentColor;
  border-right:3px solid currentColor;
}
.sf-gallery-prev::before{transform:rotate(-135deg);margin-left:4px}
.sf-gallery-next::before{transform:rotate(45deg);margin-right:4px}
.sf-gallery-window{
  overflow:hidden;
  margin-inline:calc((100vw - min(1240px,100vw - 36px))/ -2);
  padding-inline:max(18px,calc((100vw - 1240px)/2));
}
.sf-gallery-track{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding:8px 0 24px;
  scroll-behavior:smooth;
}
.sf-gallery-track::-webkit-scrollbar{display:none}
.sf-gallery-item{
  flex:0 0 clamp(285px,34vw,475px);
  aspect-ratio:3/2;
  scroll-snap-align:center;
  border-radius:22px;
  overflow:hidden;
  border:2px solid rgba(255,255,255,.85);
  box-shadow:0 16px 34px rgba(0,0,0,.25);
  position:relative;
  background:#111;
}
.sf-gallery-item img{
  width:100%;height:100%;object-fit:cover;
  display:block;
  transition:transform .5s ease;
}
.sf-gallery-item:hover img{transform:scale(1.035)}
.sf-gallery-item::after{
  content:"";
  position:absolute;inset:0;
  box-shadow:inset 0 -90px 90px -90px rgba(0,0,0,.65);
  pointer-events:none;
}
.sf-photo-strip{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:20px;
  margin-top:42px;
}
.sf-photo-card{
  overflow:hidden;
  border-radius:26px;
  border:2px solid var(--sf-ink);
  min-height:300px;
  background:#111;
  box-shadow:7px 7px 0 var(--sf-ink);
}
.sf-photo-card img{
  width:100%;height:100%;
  object-fit:cover;display:block;
}
@media(max-width:800px){
  .sf-gallery-head{align-items:flex-start;flex-direction:column}
  .sf-gallery-controls{align-self:flex-end}
  .sf-gallery-item{flex-basis:min(82vw,420px)}
  .sf-photo-strip{grid-template-columns:1fr}
  .sf-photo-card{min-height:240px}
}

/* ===== Full-width motion gallery + extra photo composition v10 ===== */
.sf-gallery-section{
  padding-left:0!important;
  padding-right:0!important;
}
.sf-gallery-shell{
  max-width:none!important;
  width:100%!important;
}
.sf-gallery-head{
  width:min(1240px,calc(100% - 36px));
  margin-left:auto;
  margin-right:auto;
}
.sf-gallery-window{
  width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding-left:0!important;
  padding-right:0!important;
  overflow:hidden!important;
}
.sf-gallery-track{
  gap:16px;
  padding:8px 0 24px 0;
  overflow-x:hidden!important;
  scroll-snap-type:none!important;
  will-change:scroll-position;
}
.sf-gallery-item{
  flex:0 0 clamp(300px,31vw,510px);
  border-radius:18px;
  scroll-snap-align:none!important;
}
.sf-gallery-item:first-child{margin-left:16px}
.sf-gallery-item:last-child{margin-right:16px}

.sf-photo-feature{
  position:relative;
  overflow:hidden;
  background:var(--sf-paper);
}
.sf-photo-feature-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:24px;
  align-items:stretch;
}
.sf-photo-feature-main,
.sf-photo-feature-side{
  border:2px solid var(--sf-ink);
  border-radius:28px;
  overflow:hidden;
  box-shadow:8px 8px 0 var(--sf-ink);
  background:#111;
}
.sf-photo-feature-main{min-height:500px}
.sf-photo-feature-side{
  display:grid;
  grid-template-rows:1fr 1fr;
  min-height:500px;
}
.sf-photo-feature-side figure{
  margin:0;
  min-height:0;
  overflow:hidden;
}
.sf-photo-feature-side figure+figure{
  border-top:2px solid var(--sf-ink);
}
.sf-photo-feature-main img,
.sf-photo-feature-side img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .6s ease;
}
.sf-photo-feature-main:hover img,
.sf-photo-feature-side figure:hover img{
  transform:scale(1.035);
}
.sf-photo-feature-badge{
  display:inline-block;
  margin-bottom:18px;
  padding:8px 14px;
  border-radius:999px;
  border:2px solid var(--sf-ink);
  background:var(--sf-pink);
  color:#fff;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
@media(max-width:850px){
  .sf-photo-feature-grid{grid-template-columns:1fr}
  .sf-photo-feature-main{min-height:330px}
  .sf-photo-feature-side{
    grid-template-columns:1fr 1fr;
    grid-template-rows:none;
    min-height:230px;
  }
  .sf-photo-feature-side figure+figure{
    border-top:0;
    border-left:2px solid var(--sf-ink);
  }
}
@media(max-width:560px){
  .sf-gallery-item{flex-basis:82vw}
  .sf-photo-feature-side{
    grid-template-columns:1fr;
    grid-template-rows:1fr 1fr;
    min-height:420px;
  }
  .sf-photo-feature-side figure+figure{
    border-left:0;
    border-top:2px solid var(--sf-ink);
  }
}

/* Hero photo v11 */
.sf-poster-card{
  aspect-ratio:4/5;
  transform:rotate(.6deg);
  background:#111;
}
.sf-poster-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
@media(max-width:900px){
  .sf-poster-card{aspect-ratio:4/3;transform:none}
}

/* ===== Gallery centering + lower photo section v12 ===== */
.sf-gallery-section{
  padding-left:0!important;
  padding-right:0!important;
}
.sf-gallery-inner,
.sf-gallery-cta{
  width:min(1240px,calc(100% - 36px));
  margin-left:auto;
  margin-right:auto;
}
.sf-gallery-head{
  width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
}
.sf-gallery-window{
  width:100vw!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  position:relative;
  left:50%;
  right:50%;
  transform:translateX(-50%);
  padding:0!important;
  overflow:hidden!important;
}
.sf-gallery-track{
  width:max-content;
  min-width:100%;
  padding-left:16px!important;
  padding-right:16px!important;
}
.sf-gallery-item:first-child{margin-left:0!important}
.sf-gallery-item:last-child{margin-right:0!important}
.sf-gallery-cta{
  margin-top:26px;
  display:flex;
  justify-content:flex-start;
}
.sf-gallery-ticket{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:12px 22px;
  border:2px solid var(--sf-ink);
  border-radius:999px;
  background:var(--sf-yellow);
  color:var(--sf-ink);
  font-family:Arial Black,Arial,sans-serif;
  font-weight:900;
  text-transform:uppercase;
  text-decoration:none;
  box-shadow:5px 5px 0 var(--sf-ink);
  transition:transform .18s,box-shadow .18s;
}
.sf-gallery-ticket:hover{
  transform:translate(3px,3px);
  box-shadow:2px 2px 0 var(--sf-ink);
}
.sf-photo-feature{
  margin-top:0!important;
}
@media(max-width:800px){
  .sf-gallery-cta{justify-content:center}
  .sf-gallery-ticket{width:100%;max-width:420px;text-align:center}
}

/* ===== Carousel definitive motion fix v13 ===== */
.sf-gallery-section{
  width:100%!important;
  max-width:none!important;
  overflow:hidden!important;
}
.sf-gallery-window{
  position:relative!important;
  left:50%!important;
  right:auto!important;
  width:100vw!important;
  max-width:100vw!important;
  margin:0!important;
  padding:0!important;
  transform:translateX(-50%)!important;
  overflow:hidden!important;
}
.sf-gallery-track{
  display:flex!important;
  flex-wrap:nowrap!important;
  width:max-content!important;
  min-width:max-content!important;
  max-width:none!important;
  gap:16px!important;
  margin:0!important;
  padding:8px 0 24px!important;
  overflow:visible!important;
  scroll-behavior:auto!important;
  will-change:transform;
}
.sf-gallery-item{
  flex:0 0 clamp(290px,31vw,510px)!important;
  width:clamp(290px,31vw,510px)!important;
  margin:0!important;
}
@media(max-width:700px){
  .sf-gallery-item{
    flex-basis:82vw!important;
    width:82vw!important;
  }
}

/* ===== Scroll motion + decoration layering v14 ===== */

/* Guarantee gallery decor stays behind all content */
.sf-gallery-section{
  isolation:isolate;
}
.sf-gallery-section::before{
  z-index:0!important;
  pointer-events:none!important;
}
.sf-gallery-inner,
.sf-gallery-window,
.sf-gallery-cta,
.sf-gallery-shell{
  position:relative!important;
  z-index:2!important;
}
.sf-gallery-head,
.sf-gallery-copy,
.sf-gallery-controls{
  position:relative!important;
  z-index:3!important;
}

/* Scroll motion utility classes */
.sf-scroll-photo,
.sf-scroll-card,
.sf-scroll-float{
  --sf-scroll-y:0px;
  --sf-scroll-r:0deg;
  --sf-scroll-scale:1;
  transform:
    translate3d(0,var(--sf-scroll-y),0)
    rotate(var(--sf-scroll-r))
    scale(var(--sf-scroll-scale));
  will-change:transform;
  transition:transform .12s linear;
}
.sf-scroll-photo{
  transform-origin:center center;
}
.sf-scroll-card{
  transform-origin:center center;
}
.sf-scroll-float{
  transform-origin:center center;
}

/* Slight depth */
.sf-photo-feature-main,
.sf-photo-feature-side figure,
.sf-photo-card,
.sf-poster-card{
  overflow:hidden;
}
.sf-photo-feature-main img,
.sf-photo-feature-side img,
.sf-photo-card img,
.sf-poster-card img{
  will-change:transform;
  transition:transform .12s linear;
}

/* Decorative pieces can subtly float with scroll too */
.sf-bubble,
.sf-stripes,
.sf-stripes-bottom{
  will-change:transform;
}

/* Keep hover effects compatible with scroll transforms */
.sf-scroll-photo:hover{
  --sf-scroll-scale:1.015;
}

@media(prefers-reduced-motion:reduce){
  .sf-scroll-photo,
  .sf-scroll-card,
  .sf-scroll-float{
    transform:none!important;
  }
}

/* ===== Stronger scroll choreography v15 ===== */
.sf-motion-title{
  --sf-title-x:0px;
  transform:translate3d(var(--sf-title-x),0,0);
  will-change:transform;
}
.sf-motion-panel{
  --sf-panel-x:0px;
  --sf-panel-y:0px;
  --sf-panel-r:0deg;
  transform:
    translate3d(var(--sf-panel-x),var(--sf-panel-y),0)
    rotate(var(--sf-panel-r));
  will-change:transform;
}
.sf-motion-image{
  --sf-img-x:0px;
  --sf-img-y:0px;
  --sf-img-scale:1;
  transform:
    translate3d(var(--sf-img-x),var(--sf-img-y),0)
    scale(var(--sf-img-scale));
  will-change:transform;
  transition:transform .08s linear;
}
.sf-motion-decor{
  --sf-decor-x:0px;
  --sf-decor-y:0px;
  --sf-decor-r:0deg;
  transform:
    translate3d(var(--sf-decor-x),var(--sf-decor-y),0)
    rotate(var(--sf-decor-r));
  will-change:transform;
}

/* Let photos move inside their masks without exposing empty edges */
.sf-photo-feature-main img,
.sf-photo-feature-side img,
.sf-photo-card img,
.sf-poster-card img{
  width:108%!important;
  height:108%!important;
  max-width:none!important;
  margin-left:-4%;
  margin-top:-4%;
}

/* Alternate card depth, visibly stronger than v14 */
.sf-card.sf-scroll-card:nth-child(odd){
  transform-origin:48% 50%;
}
.sf-card.sf-scroll-card:nth-child(even){
  transform-origin:52% 50%;
}

/* Give section titles enough room to drift without clipping */
.sf-title.sf-motion-title{
  padding-inline:2px;
}

/* Hero decor should react strongly but remain behind content */
.sf-hero .sf-bubble,
.sf-hero .sf-stripes,
.sf-hero .sf-stripes-bottom{
  z-index:0!important;
}
.sf-hero .wp-block-columns{
  position:relative;
  z-index:2;
}

/* Photo feature gains a subtle layered entrance feeling */
.sf-photo-feature-grid{
  perspective:1000px;
}

/* Visual polish on motion-heavy items */
.sf-motion-panel,
.sf-motion-title,
.sf-motion-decor{
  transition:transform .08s linear;
}

@media(max-width:700px){
  /* Keep it lively but slightly reduced on phones */
  .sf-motion-title,
  .sf-motion-panel,
  .sf-motion-image,
  .sf-motion-decor{
    transition:transform .06s linear;
  }
}

@media(prefers-reduced-motion:reduce){
  .sf-motion-title,
  .sf-motion-panel,
  .sf-motion-image,
  .sf-motion-decor{
    transform:none!important;
  }
}


/* Single sponsor – MijnTicket */
.sf-sponsor-single-wrap{
  margin-top:30px!important;
}
.sf-sponsor-single{
  display:block;
  width:min(290px,72vw);
  aspect-ratio:1/1;
  border:2px solid var(--sf-ink);
  border-radius:24px;
  overflow:hidden;
  background:#fff;
  box-shadow:7px 7px 0 var(--sf-ink);
  text-decoration:none;
  transition:transform .2s ease,box-shadow .2s ease;
}
.sf-sponsor-single:hover{
  transform:translateY(-4px);
  box-shadow:7px 11px 0 var(--sf-ink);
}
.sf-sponsor-image{
  display:block;
  width:100%;
  height:100%;
  background-image:url("assets/images/mijnticket-sponsor.png");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}
