.gallery-page{background:var(--cloud)}
.gallery-hero{position:relative;min-height:420px;display:grid;align-items:center;color:var(--white);background:linear-gradient(110deg,#07112fe8 10%,#2340b6bd),url('/fotos/groep-2026-2027.jpg') center 42%/cover;overflow:hidden;padding-block:86px}
.gallery-hero:after{content:"";position:absolute;width:420px;height:420px;border:2px solid #c8ef2252;border-radius:50%;right:-105px;bottom:-285px}
.gallery-hero .section-shell{position:relative;z-index:1}
.gallery-hero h1{font-family:var(--display);font-size:clamp(3.5rem,7.5vw,7rem);font-weight:900;letter-spacing:-.055em;line-height:.9;text-transform:uppercase;max-width:900px}
.gallery-hero h1 em{color:var(--lime);font-style:normal}
.gallery-hero p:not(.eyebrow){max-width:680px;margin-top:26px;color:#ffffffc2;font-size:18px;line-height:1.7}
.gallery-overview{padding-block:100px}
.gallery-lead{display:grid;grid-template-columns:.8fr 1fr;gap:70px;align-items:end;margin-bottom:54px}
.gallery-lead h2,.report-intro h1{font-family:var(--display);font-size:clamp(2.8rem,5.5vw,5.2rem);font-weight:900;letter-spacing:-.05em;line-height:.95;text-transform:uppercase}
.gallery-lead>p{color:var(--muted);line-height:1.75}
.season-card{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);background:var(--navy);color:var(--white);box-shadow:22px 24px 0 var(--lime);overflow:hidden}
.season-photo{position:relative;min-height:520px;overflow:hidden}
.season-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.season-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#07112f7a)}
.season-copy{min-width:0;padding:clamp(34px,5vw,62px);display:flex;flex-direction:column;justify-content:center;container-type:inline-size}
.season-copy small,.report-date{color:var(--lime);font-size:11px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.season-copy h2{max-width:100%;font-family:var(--display);font-size:clamp(2.25rem,3.2vw,3.35rem);font-weight:900;letter-spacing:-.04em;line-height:.95;text-transform:uppercase;white-space:nowrap;margin:14px 0 22px}
@supports (width:1cqi){.season-copy h2{font-size:clamp(2.25rem,17.5cqi,3.35rem)}}
.season-copy p{color:#ffffffa8;line-height:1.7;margin-bottom:28px}
.gallery-button{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 22px;background:var(--lime);color:var(--ink);font-size:12px;font-weight:900;transition:background .18s,transform .18s}
.gallery-button:hover{background:#d7ff2c;transform:translateY(-2px)}
.report-header{padding-block:86px 66px;background:var(--navy);color:var(--white)}
.report-intro{display:grid;grid-template-columns:1fr .68fr;gap:70px;align-items:end}
.report-intro h1 em{font-style:normal;color:var(--lime)}
.report-intro>div>p:last-child{color:#ffffffb8;margin-top:24px;max-width:720px;line-height:1.75}
.report-note{border-left:5px solid var(--lime);padding:20px 0 20px 24px;color:#ffffffb5;line-height:1.7}
.photo-report{padding-block:78px 104px}
.photo-report-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:38px}
.photo-report-heading h2{font-family:var(--display);font-size:clamp(2.5rem,4.5vw,4.3rem);font-weight:900;letter-spacing:-.04em;line-height:.96;text-transform:uppercase}
.photo-report-heading p{color:var(--muted);max-width:480px;line-height:1.7}
.photo-grid{columns:3 280px;column-gap:18px}
.photo-tile{position:relative;margin:0 0 18px;break-inside:avoid;background:var(--navy);overflow:hidden}
.photo-tile img{width:100%;height:auto;transition:transform .35s,filter .35s}
.photo-tile:hover img{transform:scale(1.025);filter:contrast(1.03)}
.photo-tile figcaption{position:absolute;left:0;right:0;bottom:0;padding:42px 18px 16px;color:var(--white);font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;background:linear-gradient(transparent,#07112fc7);opacity:0;transition:opacity .2s}
.photo-tile:hover figcaption{opacity:1}
.report-close{background:var(--blue);color:var(--white);text-align:center;padding-block:76px}
.report-close h2{font-family:var(--display);font-size:clamp(2.7rem,5vw,4.8rem);font-weight:900;letter-spacing:-.05em;line-height:.96;text-transform:uppercase}
.report-close p{max-width:620px;color:#ffffffb0;line-height:1.7;margin:20px auto 28px}
.gallery-page .desktop-nav a[aria-current="page"]:after{transform:scaleX(1)}
.dynamic-album-list{display:grid;gap:64px}
.dynamic-album-card+.dynamic-album-card{margin-top:6px}
.gallery-empty{padding:40px;border:1px dashed #bfc7d9;color:var(--muted);text-align:center}
.dynamic-album-list{display:grid;gap:64px}
.dynamic-album-card+.dynamic-album-card{margin-top:6px}
.gallery-empty{padding:40px;border:1px dashed #bfc7d9;color:var(--muted);text-align:center}
.dynamic-album-list{display:grid;gap:64px}
.dynamic-album-card+.dynamic-album-card{margin-top:6px}
.gallery-empty{padding:40px;border:1px dashed #bfc7d9;color:var(--muted);text-align:center}
@media (width<=1100px){.season-card{grid-template-columns:1fr}.season-photo{min-height:500px}}
@media (width<=850px){.gallery-hero{min-height:350px;padding-block:68px}.gallery-overview{padding-block:76px}.gallery-lead,.report-intro{grid-template-columns:1fr;gap:25px}.report-header{padding-block:70px 54px}.photo-report-heading{display:grid}.photo-grid{columns:2 240px}}
@media (width<=600px){.gallery-hero{min-height:315px;padding-block:58px}.gallery-hero h1{font-size:clamp(3.2rem,16vw,4.9rem)}.gallery-hero p:not(.eyebrow){font-size:16px}.gallery-overview{padding-block:60px}.gallery-lead{margin-bottom:34px}.season-card{box-shadow:11px 13px 0 var(--lime)}.season-photo{min-height:330px}.season-copy{padding:30px 22px 34px}.report-header{padding-block:56px 46px}.photo-report{padding-block:54px 74px}.photo-grid{columns:1}.photo-tile{margin-bottom:14px}.photo-tile figcaption{opacity:1}.report-close{padding-block:60px}}

/* Albumtitels komen uit het beheer en mogen nooit buiten het tekstvlak vallen. */
.season-copy h2{inline-size:100%;min-inline-size:0;white-space:normal;overflow-wrap:anywhere;text-wrap:balance;padding-inline-end:.08em}
@supports (width:1cqi){.season-copy h2{font-size:clamp(2.15rem,13cqi,3.35rem)}}
@media (width<=600px){.season-copy h2{font-size:clamp(2.25rem,12vw,3.35rem);text-wrap:pretty}}
