@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--bg:#122338;--cream:#f1eddf;--gold:#d6b875;--muted:#b1b5ab;--line:#354457}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--cream);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button,summary{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,video:focus-visible{outline:3px solid var(--gold);outline-offset:5px}.skip{position:absolute;left:20px;top:-100px;z-index:10;background:var(--cream);color:var(--bg);padding:10px}.skip:focus{top:10px}header{height:105px;display:flex;align-items:center;padding:0 5%;gap:36px;border-bottom:1px solid var(--line)}.brand{display:flex;flex-direction:column;line-height:1.2;white-space:nowrap}.brand>span{font-family:Georgia,serif;font-weight:900;font-size:35px;letter-spacing:3px}.brand small{font-size:9px;letter-spacing:2.5px;color:var(--gold)}nav{margin-left:auto;display:flex;align-items:center;gap:30px;font-size:13px}.book{border:1px solid var(--gold);padding:11px 19px;color:var(--gold)}#language{background:none;border:0;color:var(--cream);font-size:12px}#language span{color:var(--muted)}#menu{display:none}.hero{min-height:690px;height:calc(100svh - 105px);max-height:950px;position:relative;display:flex;align-items:center;overflow:hidden}.hero-photo{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.5)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,15,12,.94),rgba(10,15,12,.65) 45%,rgba(10,15,12,.14)),linear-gradient(0deg,#141715,transparent 30%)}.hero-content{position:relative;margin:30px 7% 80px;max-width:660px}.eyebrow{color:var(--gold);font-size:11px;font-weight:600;letter-spacing:2.8px;margin:0 0 22px}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:1.12}h1{font-size:clamp(68px,7.8vw,118px);margin:20px 0 26px;letter-spacing:-4px}h1 em{color:var(--gold);font-weight:500}.intro{max-width:410px;color:#d4d5cc;font-size:16px}.actions{display:flex;align-items:center;gap:30px;margin-top:35px}.button{display:inline-block;background:var(--gold);color:#151914;padding:15px 24px;font-weight:700;font-size:13px}.button:hover{background:#ecd39a}.text-link{font-size:13px;border-bottom:1px solid #8d927d;padding-bottom:6px;display:inline-block}.text-link:hover{color:var(--gold)}.hero-bottom{position:absolute;bottom:25px;left:7%;right:7%;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:2px}.hero-bottom a{font-size:27px}.ticker{padding:20px 6%;display:flex;justify-content:space-between;align-items:center;background:var(--gold);color:#22271e;font-size:11px;letter-spacing:2px;font-weight:700}.ticker i{font-size:20px}.section{padding:95px 7%}.section-top{display:flex;justify-content:space-between;align-items:start;margin-bottom:30px}.section-top>span{font-size:9px;letter-spacing:2px;color:var(--muted)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}h2{font-size:clamp(36px,4vw,57px);letter-spacing:-1.4px;margin:0 0 25px}p{color:var(--muted)}.two-col p{max-width:490px}.two-col .text-link{margin-top:14px}figure{margin:0}video{display:block;width:100%;aspect-ratio:16/10;background:#080b09;object-fit:cover}figcaption{font-size:9px;color:var(--muted);letter-spacing:1px;margin-top:13px}.agenda{background:var(--gold);color:#1d281c}.agenda p{color:#394633}.agenda .eyebrow{color:#586342}.agenda .section-top>span{color:#65715e}.agenda-head{display:flex;align-items:center;justify-content:space-between;gap:30px}.empty{border-top:1px solid #c7ccbb;display:flex;gap:16px;align-items:center;padding:15px 0 25px}.empty p{font-size:14px;max-width:700px}.status{background:#697749;border-radius:50%;width:7px;height:7px;flex:none}.weekly{border-top:1px solid #bfc6b4;border-bottom:1px solid #bfc6b4;display:flex;align-items:center;gap:35px;padding:32px 0}.day{font-family:Georgia,serif;font-size:36px;border-right:1px solid #bfc6b4;padding-right:35px;line-height:1.2}.day span{display:block;font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:3px;margin-top:10px}.weekly .eyebrow{margin-bottom:7px}.weekly h3{font-size:29px;margin:0}.weekly p:last-child{font-size:13px;max-width:650px;margin-bottom:0}.weekly b{margin-left:auto;font-size:24px}details{margin-top:25px}summary{cursor:pointer;font-size:13px}.event{padding:15px 0;border-bottom:1px solid #ccd0c3;display:flex;gap:30px;font-size:13px}.event span{margin-left:auto}.story-visual{position:relative;min-height:400px}.story-visual img{height:400px;object-fit:cover;width:100%;filter:sepia(.4) saturate(.6)}.story-visual>span{position:absolute;bottom:-25px;right:-20px;background:var(--gold);color:#1a2419;padding:20px 30px;text-align:center;font-size:10px;letter-spacing:2px}.story-visual b{display:block;font-family:Georgia,serif;font-size:48px;line-height:1.2;letter-spacing:-2px}.tour{background:#20291f;border-top:1px solid #3a4635;border-bottom:1px solid #3a4635}.tour h2{font-size:clamp(45px,5vw,72px)}.places{display:flex;flex-direction:column;align-items:start;gap:14px}.places>span{font-size:16px;letter-spacing:3px}.press{display:grid;grid-template-columns:1fr 1fr;gap:80px}.press p{max-width:420px}.downloads>a{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:17px 0}.downloads small{color:var(--gold);font-size:10px;letter-spacing:2px}.credit{font-size:10px}.booking{text-align:center;background:var(--gold);color:#1d281c}.booking .eyebrow,.booking p{color:#394633}.booking h2{font-size:clamp(64px,7vw,95px)}.booking .button{background:#1e2a1d;color:var(--cream);margin:15px 0}.email{display:block;font-size:13px;margin-top:12px}footer{padding:50px 7% 25px;display:flex;align-items:center;flex-wrap:wrap;gap:40px;justify-content:space-between}footer p{font-size:10px;letter-spacing:2px}footer div{display:flex;gap:22px;font-size:12px}footer>small{width:100%;font-size:10px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px}@media(max-width:850px){header{height:85px;gap:15px}.brand>span{font-size:27px}.brand small{font-size:7px}#menu{display:block;margin-left:auto;color:var(--cream);background:none;border:0;font-size:12px}nav{display:none;position:absolute;top:85px;left:0;right:0;padding:25px;background:var(--bg);z-index:5;flex-direction:column;align-items:stretch;gap:15px}nav.open{display:flex}.hero{min-height:650px;height:calc(100svh - 85px)}.hero-content{margin-bottom:90px}.hero-photo{object-position:60% center}.hero-shade{background:linear-gradient(90deg,#101610ed,#10161070),linear-gradient(0deg,#141715,transparent)}h1{font-size:76px;letter-spacing:-3px}.hero-bottom span:nth-child(2){display:none}.ticker{gap:15px;font-size:9px}.ticker span:last-child,.ticker i:last-of-type{display:none}.section{padding:65px 6%}.two-col,.press{grid-template-columns:1fr;gap:35px}.section-top>span{max-width:130px;text-align:right}.agenda-head{display:block}.agenda-head .text-link{margin-bottom:20px}.weekly{gap:20px}.day{padding-right:20px;font-size:28px}.weekly h3{font-size:24px}.event{gap:15px;flex-wrap:wrap}.event span{width:100%;margin:0}.story-visual{min-height:320px}.story-visual img{height:320px}.story-visual>span{right:10px}.story .two-col{gap:60px}.actions{gap:20px;flex-wrap:wrap}.actions .text-link{font-size:12px}footer{gap:25px}footer div{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.agenda-context{font-size:14px;max-width:650px}.concert-history{margin-top:45px}.archive-title h3{font-size:32px;margin:0 0 26px}.archive-title .eyebrow{margin-bottom:12px}.concert-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px}.concert-card{border:1px solid #94845e;padding:28px;background:var(--gold)}.concert-card time{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:#526045}.concert-card h4{font:500 28px 'Playfair Display',Georgia,serif;margin:14px 0 8px;line-height:1.2}.concert-venue{font-size:14px;margin:0 0 28px}.recap-status{font-size:12px;border-top:1px solid #c2c8b8;padding-top:17px;margin-bottom:0}.concert-card .text-link{margin-top:8px}@media(max-width:600px){.concert-cards{grid-template-columns:1fr}.concert-card{padding:24px}}

[hidden]{display:none!important}.concert-action{display:table;margin-bottom:12px}#upcoming-concerts:not(:empty){margin:25px 0 35px}
/* Meertalig menu en ruimte voor langere vertalingen. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.language-control{flex:none}#language{max-width:125px;background:#141715;color:var(--cream);border:1px solid var(--line);padding:9px 6px;border-radius:0;font:inherit;font-size:12px}#language option{background:#141715;color:var(--cream)}#language option:disabled{color:#777}.day .day-name{font:inherit;letter-spacing:normal;margin:0}h1{font-size:clamp(58px,6.7vw,102px)}h1 em{overflow-wrap:anywhere}html[lang="th"] h1,html[lang="th"] h2,html[lang="th"] h3{line-height:1.4;letter-spacing:0}html[lang="th"] .eyebrow{letter-spacing:.4px}header nav{gap:20px}@media(max-width:850px){#language{max-width:102px;font-size:11px}h1{font-size:65px}}@media(max-width:420px){h1{font-size:54px}header{gap:9px}.brand>span{font-size:25px}}
@media(min-width:851px) and (max-width:1100px){#menu{display:block;margin-left:auto;color:var(--cream);background:none;border:0;font-size:12px}nav{display:none;position:absolute;top:105px;left:0;right:0;padding:25px;background:var(--bg);z-index:5;flex-direction:column;align-items:stretch;gap:15px}nav.open{display:flex}}
.agenda-source{font-size:12px;border-left:2px solid #7a8565;padding:8px 14px;margin:0 0 22px;max-width:750px}.archive-more{grid-column:1/-1}.archive-more summary{padding:15px 0;border-bottom:1px solid #c2c8b8}.archive-more>.concert-cards{margin-top:22px}

.facebook-preview{margin:18px 0 12px;min-width:0}.facebook-notice{font-size:12px;line-height:1.6;color:#526045}.facebook-load{font:inherit;font-size:13px;padding:11px 16px;border:1px solid #526045;background:transparent;color:#263924;cursor:pointer}.facebook-load:hover{background:#d8ddce}.facebook-load:focus-visible{outline:3px solid #526045;outline-offset:3px}.facebook-frame{display:block;width:100%;max-width:500px;height:auto;aspect-ratio:4/5;border:0;margin-top:16px;background:transparent}.concert-card{min-width:0}.concert-action{display:block}

.agenda .weekly,.agenda .day,.agenda .empty,.agenda .recap-status{border-color:#94845e}.agenda .eyebrow,.agenda .section-top>span,.agenda .concert-card time{color:#394633}.agenda .text-link:hover{color:#1d281c}

.facebook-static{display:block;max-width:500px;position:relative}.facebook-static img{display:block;width:100%;height:auto}.facebook-static-caption{display:block;background:#1d281c;color:#f1eddf;padding:12px 16px;font-size:13px}.facebook-static:hover .facebook-static-caption{text-decoration:underline}

.band-portrait{display:block;width:100%;height:420px;object-fit:cover;object-position:center 30%}.hero{min-height:620px}.hero-photo{object-position:center 30%}.hero-shade{background:linear-gradient(90deg,rgba(10,22,37,.94),rgba(10,22,37,.62) 48%,rgba(10,22,37,.12)),linear-gradient(0deg,#122338,transparent 35%)}h1{font-size:clamp(54px,6.8vw,100px)}.tour{background:#192e45}.story-visual img{object-position:center 25%}@media(max-width:500px){header{gap:8px}.brand>span{font-size:20px;letter-spacing:1px}.brand small{letter-spacing:1.5px}h1{font-size:54px;letter-spacing:-2px}.hero{min-height:600px}.band-portrait{height:330px}.hero-content{margin-left:6%;margin-right:6%}.hero-photo{object-position:65% center}}

.facebook-frame-video{aspect-ratio:16/9}

/* Blend the introduction into the lower edge of the photo, below the faces. */
.hero{display:block;height:auto;min-height:0;max-height:none;overflow:hidden;background:var(--bg)}
.hero-photo{position:static;display:block;width:100%;height:auto;object-fit:contain;filter:brightness(1.06);object-position:center}
.hero-shade{display:none}
.hero-content{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr 1fr;column-gap:7%;row-gap:16px;max-width:none;margin:clamp(-240px,-17vw,-140px) 0 0;padding:54px 7% 34px;background:linear-gradient(180deg,rgba(18,35,56,0) 0%,rgba(18,35,56,.8) 17%,rgba(18,35,56,.96) 52%,#122338 91%);text-shadow:0 2px 12px rgba(0,0,0,.6)}
.hero-content>.eyebrow{grid-column:1/-1;margin:0;color:#efd59c}
.hero-content>h1{grid-column:1;grid-row:2/4;align-self:center;margin:0;font-size:clamp(38px,4.5vw,66px);letter-spacing:-2px}
.hero-content>h1 em{color:#efd59c}
.hero-content>.intro{grid-column:2;grid-row:2;align-self:end;max-width:540px;margin:0;color:#fff;line-height:1.65}
.hero-content>.actions{grid-column:2;grid-row:3;align-self:start;margin:0;gap:22px}
.hero-content .button{text-shadow:none}
.hero-content .text-link{color:#fff;border-color:#c5c7c7}
.hero-bottom{position:static;padding:15px 7%;border-top:1px solid var(--line);background:var(--bg)}
@media(max-width:700px){
 .hero-content{grid-template-columns:1fr;margin-top:-96px;padding:48px 6% 28px;gap:20px;background:linear-gradient(180deg,rgba(18,35,56,0),rgba(18,35,56,.97) 44px,#122338 100px)}
 .hero-content>.eyebrow,.hero-content>h1,.hero-content>.intro,.hero-content>.actions{grid-column:1;grid-row:auto}
 .hero-content>h1{font-size:clamp(40px,9vw,60px);letter-spacing:-1.5px}
 .hero-content>.intro{font-size:15px}
 .hero-content>.actions{gap:18px}
 .hero-bottom{padding:12px 6%;font-size:8px;letter-spacing:1px}
}

/* Only the enlarged photograph scrolls on narrow screens. */
.hero-photo-scroll{width:100%}
@media(max-width:700px){
 .hero-photo-scroll{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--gold) var(--bg)}
 .hero-photo-scroll:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
 .hero-photo-scroll .hero-photo{width:175%;max-width:none;user-select:none;-webkit-user-drag:none}
 .hero-content{pointer-events:none}
 .hero-content a{pointer-events:auto}
}

/* Keep the header wordmark on one line; the footer retains its own layout. */
header .brand{flex-direction:row;align-items:baseline;gap:14px}
header .brand small{font-size:16px;letter-spacing:2px}
@media(max-width:850px){header .brand{gap:9px}header .brand small{font-size:12px;letter-spacing:1px}}
@media(max-width:500px){header .brand{gap:7px}header .brand small{font-size:11px;letter-spacing:.7px}}
@media(max-width:360px){header .brand>span{font-size:18px}header .brand small{font-size:10px}header #language{max-width:76px}}

header #menu{white-space:nowrap;flex-shrink:0}
@media(max-width:500px){header #language{max-width:76px}}
@media(max-width:360px){header{gap:5px;padding-left:3%;padding-right:3%}header .brand{gap:5px}header .brand>span{font-size:16px}header .brand small{font-size:9px}header #language{max-width:65px;font-size:10px}header #menu{font-size:11px;padding:0}}

/* Modern logo in the masthead. */
header .brand{display:block;flex-shrink:0;line-height:0}
header .brand-logo{display:block;width:300px;height:auto;max-height:82px;object-fit:contain}
@media(max-width:850px){header .brand-logo{width:220px;max-height:70px}}
@media(max-width:500px){header .brand-logo{width:190px;max-height:64px}}
@media(max-width:360px){header .brand-logo{width:165px;max-height:60px}}

/* Concert history starts collapsed and opens with mouse, touch or keyboard. */
.concert-history>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;padding:20px 0;border-top:1px solid #94845e;border-bottom:1px solid #94845e;font-size:12px;font-weight:600;letter-spacing:2px}
.concert-history>summary::-webkit-details-marker{display:none}
.archive-chevron{font-size:25px;line-height:1;letter-spacing:0}
.concert-history[open]>summary .archive-chevron{transform:rotate(180deg)}
.concert-history>h3{font-size:32px;margin:28px 0}

/* Instrument selection follows the rows of a big band, viewed from the audience. */
.musicians{margin-top:45px;scroll-margin-top:24px}
.stage-toolbar{display:flex;justify-content:flex-end;margin:0 0 10px}
.stage-close{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--cream);font-size:28px;line-height:1}
.stage-close:hover{background:var(--gold);color:var(--bg)}
.stage-short{display:none}
.stage-plan{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;padding:28px;background:#192e45;border:1px solid var(--line);border-radius:12px 12px 35px 35px}
.stage-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);margin:0 0 10px}
.stage-rhythm{display:flex;flex-direction:column;gap:10px;border-right:1px solid var(--line);padding-right:20px}
.stage-rhythm .stage-label{margin-bottom:0}
.stage-winds{display:grid;gap:20px}
.stage-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.stage-saxes{grid-template-columns:repeat(5,minmax(0,1fr))}
.stage-seat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:72px;padding:10px 6px;border:1px solid #647185;border-radius:5px;background:#122338;color:var(--cream);text-align:center;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
button.stage-seat:hover{background:#263e58;border-color:var(--gold)}
button.stage-seat[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#122338}
.stage-seat small{font-size:10px;color:inherit;opacity:.75}
.stage-vacancy{border-style:dashed;opacity:.55}
.stage-front{grid-column:1/-1;text-align:center;padding:16px 0 0;border-top:0;border-radius:50% 50% 0 0;color:var(--gold);font-size:10px;letter-spacing:2px;text-transform:uppercase}
.musician-profile{display:grid;grid-template-columns:minmax(180px,30%) minmax(0,1fr);gap:30px;align-items:start;margin-top:28px;padding:28px;border:1px solid var(--line);background:#192e45}
.musician-profile>img,.musician-placeholder{display:block;width:100%;height:300px;object-fit:contain;background:#101e30}
.musician-placeholder{display:grid;place-items:center;color:var(--gold);font:48px Georgia,serif}
.musician-info .musician-role{color:var(--gold);font-size:11px;letter-spacing:1.2px;margin:0 0 10px}
.musician-info h3{font-size:30px;margin:0 0 20px}
.musician-description,.leader-bio>p{font-size:14px;line-height:1.85;overflow-wrap:anywhere}
.leader-bio{margin-top:18px}.leader-bio>summary{color:var(--cream);font-size:13px}
@media(max-width:700px){.stage-plan{grid-template-columns:88px minmax(0,1fr);gap:12px;padding:18px}.stage-rhythm{padding-right:12px}.stage-row{gap:5px}.stage-seat{font-size:11px;min-height:62px}.stage-seat small{display:none}.stage-winds{gap:15px}.stage-label{font-size:9px;letter-spacing:1px}.musician-profile{grid-template-columns:1fr;padding:22px;gap:24px}.musician-profile>img,.musician-placeholder{height:260px}}
@media(max-width:420px){.stage-plan{grid-template-columns:64px minmax(0,1fr);gap:9px;padding:12px}.stage-rhythm{padding-right:8px}.stage-seat{font-size:9px;padding:8px 3px;min-height:58px}.stage-label{font-size:8px;letter-spacing:.4px}.stage-row{gap:4px}}

@media(max-width:700px){.stage-full{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.stage-short{display:inline}.musician-profile{scroll-margin-top:0}}

/* Trim the lighting rig and softly blend the remaining upper edge. */
.hero-photo-scroll{overflow:hidden}
.hero-photo-scroll .hero-photo{margin-top:-9.4vw}
.hero-shade{display:block;position:absolute;inset:0 0 auto;height:5vw;z-index:1;pointer-events:none;background:linear-gradient(180deg,#122338 0%,rgba(18,35,56,.9) 15%,rgba(18,35,56,.65) 35%,rgba(18,35,56,.2) 65%,rgba(18,35,56,0) 100%)}
@media(max-width:700px){.hero-photo-scroll{overflow-x:auto;overflow-y:hidden}.hero-photo-scroll .hero-photo{margin-top:-16.45vw}.hero-shade{height:8.75vw}}


/* Preserve the full portrait at every width and orientation. */
.leader-portrait .band-portrait{width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;object-position:center}

/* Read the biography in the text column while the portrait remains alongside. */
.band-overview{align-items:start}
.band-copy{min-width:0}
.band-copy .leader-bio{margin:26px 0 18px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band-copy .leader-bio>summary{font-size:14px;color:var(--gold);font-weight:600}
.leader-biography{margin-top:22px}
.band-overview .leader-biography>p{max-width:60ch;margin:0 0 1.35em;font-size:16px;line-height:1.9;color:#d6d9dc;overflow-wrap:anywhere}
.band-overview .leader-biography>p:last-child{margin-bottom:0}
@media(min-width:851px){.band-overview .leader-portrait{position:sticky;top:28px;align-self:start}}
@media(max-width:850px){.band-copy .leader-bio{margin-top:22px}.band-overview .leader-biography>p{font-size:15px;line-height:1.85}}

/* The control stays under the portrait; the biography precedes the band heading. */
.leader-bio-toggle{display:inline-block;margin-top:18px;padding:0 0 6px;background:transparent;border:0;border-bottom:1px solid #8d927d;color:var(--cream);font:inherit;font-size:13px}
.band-copy>.leader-biopanel{margin:0 0 36px;padding:0 0 28px;border-bottom:1px solid var(--line);scroll-margin-top:24px}

@media(max-width:850px){.leader-portrait>.leader-biopanel{margin:24px 0 0;padding-top:22px;border-top:1px solid var(--line);scroll-margin-top:20px}}

.stage-front{display:flex;justify-content:center;text-transform:none;letter-spacing:normal}
.stage-conductor{width:190px;min-height:66px}
@media(max-width:700px){.stage-conductor{width:130px;min-height:52px;font-size:12px}}

.conductor-biophoto{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;margin:0 0 24px}
.leader-biopanel>.leader-biography{margin-top:0}

/* The conductor uses the same profile area and layout as every instrument. */
.musician-profile .leader-biography{margin:0}
.musician-profile .leader-biography>p{font-size:14px;line-height:1.85;color:var(--muted);margin:0 0 1.25em;overflow-wrap:anywhere}
.musician-profile .leader-biography>p:last-child{margin-bottom:0}

/* Align the musician link with the bottom of Loet's photo. */
@media(min-width:851px){.band-overview{align-items:stretch}.band-overview .band-copy{display:flex;flex-direction:column}.band-copy>a[href="#muzikanten"]{align-self:flex-start;margin-top:auto}.band-overview .leader-portrait{position:relative;top:auto;align-self:end}.band-overview .leader-portrait figcaption{position:absolute;top:100%;left:0;right:0}}

/* No separator lines around the first band photo. */
header{border-bottom:0}.hero-bottom{border-top:0}

/* Keep the complete story photograph visible at every screen size. */
.story-visual{min-height:0}.story-visual img{display:block;width:100%;height:auto;object-fit:contain;object-position:center}

/* Dark background only inside individual concert cards. */
.agenda .concert-card{background:#192e45;color:var(--cream);border-color:var(--line)}
.agenda .concert-card p,.agenda .concert-card .facebook-notice{color:var(--muted)}
.agenda .concert-card .eyebrow,.agenda .concert-card time,.agenda .concert-card .text-link:hover{color:var(--gold)}
.agenda .concert-card .recap-status{border-color:var(--line)}
.agenda .concert-card .facebook-load{color:var(--cream);border-color:var(--muted)}
.agenda .concert-card .facebook-load:hover{background:var(--line)}

.jan-biography{margin-top:28px}.jan-biography>summary{list-style:none;width:fit-content}.jan-biography>summary::-webkit-details-marker{display:none}.jan-biography[open]>summary{color:var(--gold)}.jan-biography-content{margin-top:28px;border-top:1px solid var(--line);padding-top:24px}.jan-biography-content h3{font-size:30px}.jan-biography-content h3 small{display:block;font:14px "DM Sans",sans-serif;color:var(--gold);margin-top:12px}.jan-biography-content p{max-width:65ch;line-height:1.9;margin:0 0 1.4em}

#verhaal>.two-col{align-items:start}

.jan-photo-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:28px 0 36px}.jan-photo-gallery figure{min-width:0}.jan-photo-gallery img{display:block;width:100%;height:auto;max-height:340px;object-fit:contain}.jan-photo-gallery figcaption{line-height:1.6;letter-spacing:.5px}@media(max-width:420px){.jan-photo-gallery{gap:14px}}

/* Expand Jan Molenaar across the complete story section. */
#verhaal>.jan-biography{margin-top:32px}.jan-biography-content{max-width:none}.jan-biography-content p{max-width:none}.jan-biography-content .jan-photo-gallery{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.jan-biography-content .jan-photo-gallery img{max-height:300px}

/* Compact biography with readable text and smaller photographs. */
.jan-biography-content{margin-top:20px;padding-top:16px}
.jan-biography-content h3{margin:0 0 16px;font-size:28px}
.jan-biography-content h3 small{margin-top:6px}
.jan-biography-content p{font-size:15px;line-height:1.65;margin:0 0 .8em}
.jan-biography-content .jan-photo-gallery{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin:18px 0 22px}
.jan-biography-content .jan-photo-gallery img{max-height:180px}
.jan-biography-content .jan-photo-gallery figcaption{margin-top:6px}
@media(max-width:500px){.jan-biography-content p{line-height:1.7}.jan-biography-content .jan-photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.jan-biography-content .jan-photo-gallery img{max-height:140px}}

/* Preserve line breaks entered in concert titles. */
.concert-card h4{white-space:pre-line}

.concert-source-link{overflow-wrap:anywhere}

/* Upcoming concerts as framed concert posters. */
#upcoming-concerts{grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:32px}
#upcoming-concerts .concert-card{position:relative;padding:48px 42px;text-align:center;border:1px solid var(--gold);box-shadow:inset 0 0 0 7px #192e45,inset 0 0 0 8px #7e785f,0 14px 30px #12233830;background:radial-gradient(ellipse at top,#29435c 0%,#192e45 60%);overflow:hidden}
#upcoming-concerts .concert-card time{display:block;width:fit-content;margin:0 auto 28px;padding:10px 20px;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);font-size:14px;font-weight:700;letter-spacing:3px;color:var(--gold)}
#upcoming-concerts .concert-card h4{font-size:clamp(29px,3.6vw,48px);line-height:1.14;letter-spacing:-.7px;margin:0 auto 26px;max-width:22ch;text-wrap:balance;color:var(--cream)}
#upcoming-concerts .concert-venue{font-size:16px;line-height:1.7;max-width:42ch;margin:0 auto 28px;color:var(--gold)}
#upcoming-concerts .facebook-preview{margin:24px auto;max-width:500px}
#upcoming-concerts .facebook-frame{margin:0 auto}
#upcoming-concerts .facebook-static{display:block}
#upcoming-concerts .concert-source-link{width:fit-content;max-width:100%;margin:18px auto 0;padding:10px 18px;border:1px solid #8d927d;font-size:13px;line-height:1.6}
#upcoming-concerts .concert-source-link:hover{background:#29435c}
@media(max-width:600px){#upcoming-concerts .concert-card{padding:34px 22px}#upcoming-concerts .concert-card time{font-size:12px;letter-spacing:2px;padding:9px 10px;margin-bottom:24px}#upcoming-concerts .concert-card h4{font-size:30px}#upcoming-concerts .concert-venue{font-size:14px}}

/* Stage-light background for concert posters. */
.agenda .concert-card{background-color:#102338;background-image:radial-gradient(ellipse at 50% 0,rgba(214,184,117,.13),transparent 65%),linear-gradient(145deg,#223e55,#102338 65%)}
#upcoming-concerts .concert-card{background-color:#102338;background-image:linear-gradient(115deg,transparent 0 22%,rgba(214,184,117,.035) 22% 31%,transparent 31% 100%),linear-gradient(245deg,transparent 0 22%,rgba(214,184,117,.035) 22% 31%,transparent 31% 100%),radial-gradient(ellipse at 50% -10%,rgba(214,184,117,.24),transparent 58%),linear-gradient(180deg,#254159 0%,#142b40 42%,#0d1d2e 100%);border-color:#d6b875;box-shadow:inset 0 0 0 7px #12283d,inset 0 0 0 8px #8b7954,0 16px 32px #12233840}

.concert-start{display:block;margin-top:6px}

.concert-photo{display:block;width:100%;height:auto;max-height:650px;object-fit:contain;margin:26px auto}.concert-card .concert-photo{border-radius:2px}

button.media-construction{display:block;background:none;border:0;border-bottom:1px solid #8d927d;color:inherit;padding:0 0 6px;font:inherit;font-size:13px;text-align:left}.media-construction:hover{color:var(--gold)}

.archive-filters{display:grid;grid-template-columns:minmax(180px,2fr) minmax(110px,1fr) minmax(160px,1fr);gap:18px;margin:24px 0 12px}.archive-filters label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600}.archive-filters input,.archive-filters select{width:100%;min-width:0;padding:12px;border:1px solid #8a7a53;background:#f1eddf;color:#122338;border-radius:3px;font:inherit;font-size:14px}#archive-results{font-size:12px;margin-bottom:22px}@media(max-width:600px){.archive-filters{grid-template-columns:1fr 1fr;gap:12px}.archive-filters label:first-child{grid-column:1/-1}}

footer .footer-logo{display:block;width:230px;max-width:65vw;height:auto}

/* Keep logo, navigation and language selector visible while scrolling. */
body>header{position:sticky;top:0;z-index:1000;background:var(--bg)}html{scroll-padding-top:125px}@media(max-width:850px){html{scroll-padding-top:105px}}

.special-section{background:#192e45;border-top:1px solid #354457;border-bottom:1px solid #354457}.special-content{max-width:1000px;margin:auto}.special-content h2{color:var(--gold)}#special-body{color:var(--cream);font-size:18px;line-height:1.8;overflow-wrap:anywhere}@media(max-width:600px){#special-body{font-size:16px}}


/* Special-section photo layout, with the full photo visible. */
.special-content{display:grid;grid-template-areas:"title" "body";gap:28px;align-items:start;max-width:1100px}.special-content>h2{grid-area:title;margin:0}#special-body{grid-area:body}.special-photo{grid-area:photo;display:block;width:100%;height:auto;max-height:650px;object-fit:contain}.special-photo[hidden]{display:none}
.special-content[data-has-photo="true"][data-photo-position="above"]{grid-template-areas:"photo" "title" "body"}
.special-content[data-has-photo="true"][data-photo-position="under-title"]{grid-template-areas:"title" "photo" "body"}
.special-content[data-has-photo="true"][data-photo-position="below"]{grid-template-areas:"title" "body" "photo"}
.special-content[data-has-photo="true"][data-photo-position="left"]{grid-template-areas:"photo title" "photo body";grid-template-columns:minmax(0,42%) minmax(0,1fr)}
.special-content[data-has-photo="true"][data-photo-position="right"]{grid-template-areas:"title photo" "body photo";grid-template-columns:minmax(0,1fr) minmax(0,42%)}
.special-content[data-has-photo="true"][data-photo-position^="wrap-"]{display:flow-root}
.special-content[data-has-photo="true"][data-photo-position^="wrap-"]>h2{margin-bottom:28px}
.special-content[data-has-photo="true"][data-photo-position="wrap-left"]>.special-photo{float:left;width:40%;margin:0 30px 18px 0}
.special-content[data-has-photo="true"][data-photo-position="wrap-right"]>.special-photo{float:right;width:40%;margin:0 0 18px 30px}
@media(max-width:700px){.special-content{gap:24px}.special-content[data-has-photo="true"][data-photo-position="left"],.special-content[data-has-photo="true"][data-photo-position="right"]{grid-template-areas:"photo" "title" "body";grid-template-columns:minmax(0,1fr)}.special-content[data-has-photo="true"][data-photo-position^="wrap-"]>.special-photo{float:none;width:100%;margin:0 0 24px}}

/* Feather media edges into the surrounding section background. */
.concert-card .concert-photo,.concert-card .facebook-frame,.concert-card .facebook-static img,.special-photo{
 border-radius:10px;
 -webkit-mask-image:linear-gradient(90deg,transparent,#000 12px,#000 calc(100% - 12px),transparent),linear-gradient(transparent,#000 18px,#000 calc(100% - 18px),transparent);
 -webkit-mask-composite:source-in;
 mask-image:linear-gradient(90deg,transparent,#000 12px,#000 calc(100% - 12px),transparent),linear-gradient(transparent,#000 18px,#000 calc(100% - 18px),transparent);
 mask-composite:intersect;
}
.concert-card .facebook-static-caption{background:transparent;color:var(--cream);padding:10px 12px}
@media(max-width:600px){.concert-card .concert-photo,.concert-card .facebook-frame,.concert-card .facebook-static img,.special-photo{
 -webkit-mask-image:linear-gradient(90deg,transparent,#000 8px,#000 calc(100% - 8px),transparent),linear-gradient(transparent,#000 12px,#000 calc(100% - 12px),transparent);
 mask-image:linear-gradient(90deg,transparent,#000 8px,#000 calc(100% - 8px),transparent),linear-gradient(transparent,#000 12px,#000 calc(100% - 12px),transparent);
}}

/* Calm navy surroundings let the feathered media edges blend naturally. */
.agenda .concert-card{background-color:#101f32;background-image:radial-gradient(ellipse at 50% 0,rgba(214,184,117,.08),transparent 55%),linear-gradient(180deg,#1b334b 0%,#101f32 42%)}
#upcoming-concerts .concert-card{background-color:#101f32;background-image:linear-gradient(115deg,transparent 0 22%,rgba(214,184,117,.025) 22% 31%,transparent 31% 100%),linear-gradient(245deg,transparent 0 22%,rgba(214,184,117,.025) 22% 31%,transparent 31% 100%),radial-gradient(ellipse 80% 420px at 50% 0,rgba(214,184,117,.16),transparent 85%),linear-gradient(180deg,#223d53 0%,#152b40 24%,#101f32 45%);box-shadow:inset 0 0 0 7px #101f32,inset 0 0 0 8px #8b7954,0 16px 32px #12233840}
.concert-card .facebook-preview{background:radial-gradient(ellipse at center,rgba(6,14,24,.24),transparent 75%);border-radius:16px}
.special-section{background:linear-gradient(145deg,#192e45,#101f32)}

/* Three full-frame concert photographs, crossfading every ten seconds. */
.story-slideshow{display:grid;position:relative;isolation:isolate;overflow:hidden;border-radius:8px;aspect-ratio:3/2;min-height:0}
#verhaal .story-slideshow .story-slide{grid-area:1/1;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;object-position:center;filter:none;opacity:0;transition:opacity 1s ease;pointer-events:none}
#verhaal .story-slideshow .story-slide.is-active{opacity:1}
.story-slideshow-toggle{position:absolute;right:12px;bottom:12px;z-index:2;width:36px;height:36px;display:grid;place-items:center;padding:0;border:1px solid #f1eddf80;border-radius:50%;background:#122338c9;color:#f1eddf;font-size:16px;line-height:1}
.story-slideshow-toggle[hidden]{display:none}.story-slideshow-toggle:hover{background:#122338}
@media(prefers-reduced-motion:reduce){#verhaal .story-slideshow .story-slide{transition:none}}

/* Give concert media more room on larger screens while retaining the complete image. */
@media(min-width:851px){
 .concert-card .concert-photo{max-height:850px}
 .concert-card .facebook-frame,.concert-card .facebook-static{max-width:700px}
 #upcoming-concerts .facebook-preview{width:100%;max-width:700px}
}

/* Scale the embedded content itself, including its text, within a correctly sized viewport. */
.facebook-embed{position:relative;width:100%;max-width:500px;aspect-ratio:4/5;overflow:hidden}
.facebook-embed-video{aspect-ratio:16/9}
.facebook-embed>.facebook-frame{
 position:absolute;top:0;left:0;margin:0;
 width:calc(100% / var(--facebook-media-scale,1));height:calc(100% / var(--facebook-media-scale,1));
 max-width:none;aspect-ratio:auto;transform:scale(var(--facebook-media-scale,1));transform-origin:top left;
}
@media(min-width:851px){
 .concert-card .concert-photo{max-height:1050px}
 .concert-card .facebook-preview{container-type:inline-size}
 .facebook-embed{max-width:700px}
 @container(min-width:500px){
  .facebook-embed>.facebook-frame{--facebook-media-scale:1.4}
 }
}

/* Warm masonry backdrop: concert cards read as posters mounted on the wall. */
.agenda{
  background-color:#d6b875;
  background-image:linear-gradient(rgba(245,231,198,.3),rgba(245,231,198,.3)),url("images/agenda-brick-wall-v2.png");
  background-repeat:repeat;
  background-size:auto,680px auto;
}
#upcoming-concerts .concert-card{filter:drop-shadow(0 8px 12px rgba(44,29,13,.22))}
