/* Kaunas Blues homepage campaign 1.2.8 */
#hero .kb-home-video{position:absolute;z-index:4;left:41%;top:43%;width:332.5px;display:block;border:2px solid #17171b;border-radius:5px;overflow:hidden;background:#17171b;color:#fff;text-decoration:none!important;box-sizing:border-box;font-family:inherit;font-size:14px;font-weight:500;line-height:1.3;cursor:pointer;transition:background-color .2s,border-color .2s}
#hero .kb-home-video-thumb{position:relative;display:block;aspect-ratio:16/9;overflow:hidden}
#hero .kb-home-video-thumb img{display:block;width:100%;height:100%;object-fit:cover}
#hero .kb-home-video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding-left:3px;box-sizing:border-box;background:#fff;color:#111;border-radius:50%;font-size:19px;line-height:1}


#hero .kb-home-video:focus-visible{outline:3px solid #ffa600;outline-offset:4px}
.news-item-img:has(.kb-home-discount){position:relative}
.kb-home-discount{position:absolute;top:0;right:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:86px;padding:6px 13px 7px 8px;box-sizing:border-box;background:#ffa600;color:#111;border-radius:0 0 0 5px;line-height:1.1;pointer-events:none;font-family:inherit}
.kb-home-discount::after{content:"";position:absolute;top:0;right:0;width:0;height:0;border-top:11px solid #ffe2a0;border-left:11px solid #d78b00}
.kb-home-discount strong{font-size:22px;font-weight:700}
.kb-home-discount>span{font-size:11px;font-weight:600;margin-top:2px}
.kb-home-video-dialog{position:fixed;inset:0;z-index:2147483000;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;padding:64px 20px 24px;box-sizing:border-box;animation:kb-video-in .18s ease-out}
.kb-home-video-stage{width:100%;max-width:1100px;position:relative}
.kb-home-video-frame{position:relative;width:100%;padding-bottom:56.25%;background:#000}
.kb-home-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.kb-home-video-close{position:absolute;right:0;top:-52px;border:0;border-radius:4px;padding:10px 14px;min-height:44px;background:#fff;color:#111;font-family:inherit;font-size:16px;font-weight:600;line-height:1.4;cursor:pointer}
.kb-home-video-close:focus-visible{outline:3px solid #ffa600;outline-offset:3px}
@media(hover:hover) and (pointer:fine){#hero .kb-home-video:hover{background:#0755a4;border-color:#0755a4}.kb-home-video-close:hover{background:#0755a4;color:#fff}}
@media(max-width:1050px){#hero .kb-home-video{left:29%;width:271.25px}}
@media(max-width:768px) and (orientation:portrait){#hero .kb-home-video{left:50%;top:calc(37.5% - 2px);transform:translateX(-50%);width:108px;display:block}#hero .kb-home-video-thumb{width:100%}#hero .kb-home-video-play{width:28px;height:28px;font-size:13px}.kb-home-discount{min-width:78px;padding:5px 12px 6px 8px}.kb-home-discount strong{font-size:20px}.kb-home-discount>span{font-size:10px}}
@media(max-height:500px) and (orientation:landscape){#hero .kb-home-video{left:29%;top:50%;width:224px}.kb-home-video-stage{max-width:calc((100dvh - 88px)*16/9)}}
@media(prefers-reduced-motion:reduce){#hero .kb-home-video{transition:none}.kb-home-video-dialog{animation:none}}
@keyframes kb-video-in{from{opacity:0}to{opacity:1}}

#hero .kb-home-ticket-panel>h2{padding-right:76px}
#hero .kb-home-ticket-panel>.kb-home-discount{top:0;right:0;min-width:78px;padding:5px 12px 6px 8px;border-radius:0 4px 0 5px}
#hero .kb-home-ticket-panel>.kb-home-discount strong{font-size:20px}
#hero .kb-home-ticket-panel>.kb-home-discount>span{font-size:10px}
@media(max-width:768px) and (orientation:portrait){
/* Preserve the poster proportions within the gap above the printed dates. */
#hero .kb-home-video-thumb{aspect-ratio:16/9}
#hero .kb-home-ticket-panel>h2{padding-right:70px}
#hero .kb-home-ticket-panel>.kb-home-discount{min-width:70px;padding:3px 10px 4px 6px}
#hero .kb-home-ticket-panel>.kb-home-discount strong{font-size:18px}
#hero .kb-home-ticket-panel>.kb-home-discount>span{font-size:9px;margin-top:1px}
}

/* Phone-only icon launcher: fits between the festival logo and printed dates. */
@media(max-width:640px) and (orientation:portrait){
#hero .kb-home-video{top:calc(37.5% - 10px);width:56px;height:44px;border:0;border-radius:6px;background:transparent;overflow:visible}
#hero .kb-home-video-thumb{display:flex;align-items:center;justify-content:center;width:100%;height:100%;aspect-ratio:auto;overflow:visible}
#hero .kb-home-video-thumb img{display:none}
#hero .kb-home-video-play{position:static;transform:none;width:52px;height:34px;border-radius:8px;background:#e62117;color:#fff;font-size:20px;padding-left:3px;box-shadow:0 1px 4px rgba(0,0,0,.25)}
#hero .kb-home-video:hover{background:transparent;border-color:transparent}
}

/* Use the same play-icon treatment on desktop and tablet. */
@media(min-width:641px), (orientation:landscape){
#hero .kb-home-video{width:72px;height:52px;border:0;border-radius:8px;background:transparent;overflow:visible}
#hero .kb-home-video-thumb{display:flex;align-items:center;justify-content:center;width:100%;height:100%;aspect-ratio:auto;overflow:visible}
#hero .kb-home-video-thumb img{display:none}
#hero .kb-home-video-play{position:static;transform:none;width:68px;height:44px;border-radius:10px;background:#e62117;color:#fff;font-size:25px;padding-left:3px;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:background-color .2s}
#hero .kb-home-video:hover{background:transparent;border-color:transparent}
}
@media(min-width:1051px){#hero .kb-home-video{left:calc(41% + 130px);top:calc(43% + 68px)}}
@media(hover:hover) and (pointer:fine){#hero .kb-home-video:hover .kb-home-video-play{background:#0755a4}}
@media(prefers-reduced-motion:reduce){#hero .kb-home-video-play{transition:none}}

/* Keep the video launcher opposite the existing read-more button. */
#hero .kb-home-ticket-panel .kb-home-read{display:flex;align-items:center;justify-content:space-between;gap:12px}
#hero .kb-home-ticket-panel .kb-home-read .kb-home-video{position:static;left:auto;right:auto;top:auto;bottom:auto;transform:none;flex:0 0 56px;width:56px;height:44px;border:0;border-radius:6px;background:transparent;overflow:visible}
#hero .kb-home-ticket-panel .kb-home-read .kb-home-video-thumb{display:flex;align-items:center;justify-content:center;width:100%;height:100%;aspect-ratio:auto;overflow:visible}
#hero .kb-home-ticket-panel .kb-home-read .kb-home-video-thumb img{display:none}
#hero .kb-home-ticket-panel .kb-home-read .kb-home-video-play{position:static;transform:none;width:52px;height:34px;border-radius:8px;color:#fff;font-size:20px;padding-left:3px}

/* Programme switcher 1.3.0. No automatic programme changes. */
#hero .kb-home-tabs{display:flex;gap:4px;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid #ffffff35}
#hero .kb-home-tabs button{appearance:none;border:0;border-radius:3px;background:transparent;color:#fff;font:600 14px/1.3 Poppins,sans-serif;padding:10px;min-height:40px;cursor:pointer;transition:background .18s,color .18s}
#hero .kb-home-tabs button[aria-pressed=true]{background:#ffa600;color:#111}
#hero .kb-home-tabs button:focus-visible,#hero .kb-home-map-open:focus-visible{outline:3px solid #ffa600;outline-offset:3px}
#hero .kb-home-view{position:relative;animation:kb-pane-in .24s ease-out}
#hero .kb-home-view[hidden]{display:none!important}
#hero .kb-home-view h2{font-size:17px;margin-bottom:20px}
#hero .kb-home-view[data-kb-pane=evening] h2{padding-right:76px;min-height:45px}
#hero .kb-home-view>.kb-home-discount{top:-2px;right:-20px;min-width:70px;border-radius:4px 0 0 4px}
#hero .kb-home-view>.kb-home-discount strong{font-size:19px}
#hero .kb-home-view>.kb-home-discount>span{font-size:9px}
#hero .kb-home-map-date{font-size:13px;color:#ddd;margin:-10px 0 12px}
#hero .kb-home-map-open{position:relative;display:block;height:138px;overflow:hidden;border-radius:4px;background:#e8e7e3;cursor:pointer}
#hero .kb-home-map-open img{display:block;width:100%;height:100%;object-fit:cover}
#hero .kb-home-map-open>span{position:absolute;top:7px;right:7px;border-radius:3px;padding:7px;background:white;color:#111;font-size:11px;line-height:1.4}
.kb-home-map-dialog .kb-home-video-stage{max-width:1000px}
.kb-home-map-dialog .kb-home-video-frame{padding:0;background:#eee}
.kb-home-expanded-map{height:min(70vh,650px);height:min(70dvh,650px);min-height:220px;color:#111;font:14px/1.5 Poppins,sans-serif}
.kb-home-marker span{display:grid;place-items:center;width:30px;height:30px;background:#17171b;border:2px solid white;border-radius:50%;color:white;font:600 11px/1 Poppins,sans-serif;box-shadow:0 1px 5px #0006}
.kb-home-map-event{display:block;margin-top:10px;font-size:13px;line-height:1.5;color:#0755a4}
@media(hover:hover) and (pointer:fine){#hero .kb-home-tabs button:hover{background:#0755a4;color:white}#hero .kb-home-map-open:hover>span{background:#0755a4;color:white}}
@media(max-width:640px) and (orientation:portrait){
#hero .kb-home-ticket-panel{bottom:20px;max-width:300px}
#hero .kb-home-tabs{margin-bottom:10px;padding-bottom:7px;gap:3px}
#hero .kb-home-tabs button{font-size:13px;padding:8px 7px;min-height:44px}
#hero .kb-home-view h2{font-size:15px;margin-bottom:12px}
#hero .kb-home-view[data-kb-pane=evening] h2{min-height:35px;padding-right:66px}
#hero .kb-home-view>.kb-home-discount{right:-12px;min-width:62px;padding:4px 10px 5px 6px}
#hero .kb-home-view>.kb-home-discount strong{font-size:17px}
#hero .kb-home-map-open{height:100px}
#hero .kb-home-map-date{margin:0 0 8px;font-size:12px}
}
@keyframes kb-pane-in{from{opacity:0;transform:translateX(7px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){#hero .kb-home-view{animation:none}#hero .kb-home-tabs button{transition:none}}
/* Isolate Leaflet from the theme's large global link/strong typography. */
.kb-home-map-dialog .leaflet-container{font:13px/1.5 Poppins,sans-serif}
.kb-home-map-dialog .leaflet-popup-content{font:13px/1.5 Poppins,sans-serif;margin:13px 19px;max-width:230px;color:#111}
.kb-home-map-dialog .leaflet-popup-content strong{display:block;font:600 15px/1.4 Poppins,sans-serif;color:#111}
.kb-home-map-dialog .leaflet-popup-content a.kb-home-map-event{font:400 13px/1.5 Poppins,sans-serif;color:#0755a4}
.kb-home-map-dialog .leaflet-control-attribution,.kb-home-map-dialog .leaflet-control-attribution a{font:10px/1.4 Arial,sans-serif;margin:0}
.kb-home-map-dialog .leaflet-control-attribution svg{width:12px;height:8px}
.kb-home-map-dialog .leaflet-control-zoom a{font:700 22px/30px Arial,sans-serif;width:30px;height:30px;color:#111}
.kb-home-map-dialog .leaflet-container a.leaflet-popup-close-button{font:16px/24px Arial,sans-serif;width:24px;height:24px;padding:0}

/* Evening title is already provided by the programme selector. */
#hero .kb-home-view[data-kb-pane=evening]>.kb-home-discount{position:relative;top:0;width:max-content;margin:0 0 12px auto}

/* 1.3.2: discount shares the existing footer row; no extra vertical space. */
#hero .kb-home-ticket-panel .kb-home-read{gap:8px}
#hero .kb-home-read>.kb-home-discount{position:static;flex:0 0 auto;min-width:0;margin:0;padding:5px 7px;border-radius:4px;line-height:1.1}
#hero .kb-home-read>.kb-home-discount::after{display:none}
#hero .kb-home-read>.kb-home-discount strong{font-size:18px}
#hero .kb-home-read>.kb-home-discount>span{font-size:9px;margin-top:2px;white-space:nowrap}
@media(max-width:640px) and (orientation:portrait){
#hero .kb-home-read>.kb-home-discount{padding:4px 6px}
#hero .kb-home-read>.kb-home-discount strong{font-size:17px}
}

/* Starting times fit within the existing ticket rows. */
#hero .kb-home-ticket-date{display:flex;flex-direction:column;gap:1px;line-height:1.25;white-space:nowrap}
#hero .kb-home-ticket-date small{display:block;font:400 12px/1.2 Poppins,sans-serif;color:#ddd}
@media(max-width:640px) and (orientation:portrait){#hero .kb-home-ticket-date small{font-size:11px}}

/* 1.3.4: single-line dates/times and a little more horizontal room. */
#hero .kb-home-ticket-panel{width:384px}
#hero .kb-home-ticket-date{display:block;white-space:nowrap;line-height:1.4}
#hero .kb-home-ticket-date small{display:inline;font-size:13px;line-height:inherit}
@media(min-width:1600px){#hero .kb-home-ticket-panel{width:414px}}
@media(max-width:1050px){#hero .kb-home-ticket-panel{width:340px}}
@media(max-width:768px) and (orientation:portrait){#hero .kb-home-ticket-panel{width:calc(100% - 32px)}}
@media(max-width:640px) and (orientation:portrait){
#hero .kb-home-ticket-panel{width:calc(100% - 32px);max-width:332px}
#hero .kb-home-ticket-date small{font-size:12px}
#hero .kb-home-ticket{gap:8px}
}
@media(max-width:350px) and (orientation:portrait){
#hero .kb-home-ticket{padding-left:8px;padding-right:6px;gap:6px;font-size:13px}
#hero .kb-home-ticket-logo{width:84px}
#hero .kb-home-ticket-date small{font-size:11px}
}

/* 1.3.7: desktop corner badge; phone/tablet footer placement unchanged. */
@media(min-width:1051px){
#hero .kb-home-tabs{padding-right:56px}
#hero .kb-home-tabs button{padding-left:8px;padding-right:8px}
#hero .kb-home-view{position:static;animation-name:kb-pane-fade}
#hero .kb-home-ticket-panel .kb-home-read{position:static}
#hero .kb-home-read>.kb-home-discount{position:absolute;top:0;right:0;min-width:64px;padding:6px 8px;border-radius:0 5px 0 5px}
#hero .kb-home-read>.kb-home-discount::after{display:block}
}
@keyframes kb-pane-fade{from{opacity:0}to{opacity:1}}
@media(max-width:640px) and (orientation:portrait){#hero .kb-home-ticket-panel{bottom:35px}}

/* 1.3.10: programme selectors provide the headings; show both daytime schedules. */
#hero .kb-home-map-date{display:flex;flex-direction:column;gap:5px;margin:0 0 12px;color:#fff;font-size:14px;line-height:1.4}
#hero .kb-home-map-date>span{white-space:nowrap}
@media(max-width:640px) and (orientation:portrait){#hero .kb-home-map-date{font-size:13px;margin-bottom:10px;gap:4px}}

/* 1.3.11: day selection in the expanded programme map. */
.kb-home-map-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#19191e;color:#fff;font:13px/1.4 Poppins,sans-serif}
.kb-home-map-days{display:flex;gap:8px}
.kb-home-map-days button{appearance:none;min-height:44px;padding:9px 12px;border:0;border-radius:4px;background:#303037;color:white;font:500 14px/1.3 Poppins,sans-serif;cursor:pointer;transition:background .18s,color .18s}
.kb-home-map-days button[aria-pressed=true]{background:#ffa600;color:#111}
.kb-home-map-days button:disabled{opacity:.5;cursor:wait}
.kb-home-map-days button:focus-visible{outline:3px solid white;outline-offset:2px}
.kb-home-map-count{font:400 12px/1.4 Poppins,sans-serif;white-space:nowrap}
.kb-home-map-dialog .kb-home-expanded-map{height:min(65vh,600px);height:min(65dvh,600px)}
@media(hover:hover) and (pointer:fine){.kb-home-map-days button:not(:disabled):hover{background:#0755a4;color:white}}
@media(max-width:400px){.kb-home-map-tools{padding:8px;gap:6px}.kb-home-map-days{gap:5px}.kb-home-map-days button{padding:8px;font-size:12px}.kb-home-map-count{font-size:11px}}
@media(max-height:500px){.kb-home-map-dialog .kb-home-expanded-map{height:calc(100dvh - 160px);min-height:100px}}
@media(prefers-reduced-motion:reduce){.kb-home-map-days button{transition:none}}

/* Daytime admission badge uses the existing responsive discount placement. */
#hero .kb-home-read>.kb-home-free{background:#CE7AB2;color:#111;min-height:38px}
#hero .kb-home-read>.kb-home-free strong{font-size:11px;line-height:1.2;white-space:nowrap;font-weight:700}
#hero .kb-home-read>.kb-home-free::after{border-top-color:#edc5e0;border-left-color:#a34f88}

/* Slightly larger hero badges on desktop only; anchored to the same corner. */
@media(min-width:1051px){
#hero .kb-home-read>.kb-home-discount{transform:scale(1.1);transform-origin:top right}
#hero .kb-home-tabs{padding-right:64px}
}

/* Live countdown fits inside the existing ticket row; no extra panel space. */
#hero .kb-home-ticket-date{min-width:0}
#hero .kb-home-countdown{display:block;color:#ffc353;font-size:11px;line-height:14px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.1px;white-space:nowrap}
#hero .kb-home-countdown[hidden]{display:none}
#hero .kb-home-ticket.kb-home-starting{outline:1px solid rgba(255,166,0,.5);outline-offset:-1px}
#hero .kb-home-ticket.kb-home-starting .kb-home-ticket-date{line-height:19px}

/* Jam session guests, matching the approved compact layout. */
#hero [data-kb-pane="jam"] .kb-home-ticket{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:5px}
#hero .kb-home-jam-performers{grid-column:1/-1;font-size:11px;font-weight:400;line-height:1.4;color:#e7e7ec;white-space:normal;padding-top:4px;border-top:1px solid rgba(255,255,255,.14)}
#hero [data-kb-pane="jam"] .kb-home-ticket-logo{grid-column:2;grid-row:1}
#hero .kb-home-jam-intro{font-family:inherit;font-size:12px;font-weight:400;line-height:1.5;color:#eee;margin:0 0 10px;text-align:left}
@media(max-width:640px){#hero .kb-home-jam-intro{font-size:11px;margin-bottom:8px}}

/* Evening artists and start-time expiry. */
#hero .kb-home-ticket.kb-home-has-artists{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:5px}
#hero .kb-home-evening-performers{grid-column:1/-1;font-size:11px;font-weight:400;line-height:1.4;color:#e7e7ec;white-space:normal;padding-top:4px;border-top:1px solid rgba(255,255,255,.14)}
#hero .kb-home-has-artists .kb-home-ticket-logo{grid-column:2;grid-row:1}
#hero .kb-home-ticket[hidden],#hero .kb-home-evening-performers[hidden],#hero [data-kb-view][hidden]{display:none!important}

/* Replace the secondary homepage date with a short description, retaining two lines. */
#hero .kb-home-map-date>.kb-home-day-summary{font-size:12px;font-weight:400;line-height:19.6px;color:#eee}
@media(max-width:640px) and (orientation:portrait){#hero .kb-home-map-date>.kb-home-day-summary{font-size:11px;line-height:18.2px}}

/* Homepage expanded map: one date badge and a short description. */
.kb-home-map-tools{flex-wrap:wrap}
.kb-home-map-day-badge{flex:0 0 auto;display:inline-flex;align-items:center;min-height:40px;box-sizing:border-box;padding:8px 10px;border-radius:4px;background:#ffa600;color:#111;font:500 13px/1.3 Poppins,sans-serif;white-space:nowrap}
.kb-home-map-summary{flex:1 1 140px;min-width:0;font:400 12px/1.4 Poppins,sans-serif;color:#eee}
.kb-home-map-tools .kb-home-map-count{margin-left:auto}
@media(max-width:400px){.kb-home-map-day-badge{padding:8px;font-size:12px}.kb-home-map-summary{font-size:11px;flex-basis:130px}}

/* Numbered map legend and schedule status, shared by both map views. */
.gm-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;align-items:stretch;min-width:0;height:380px;background:#fff;color:#111}
.gm-map-layout>.leaflet-container{min-width:0;min-height:0;height:100%!important}
:is(#kb26,.kb-home-map-dialog) .gm-map-guide{min-width:0;min-height:0;overflow:auto;padding:14px;box-sizing:border-box;border-left:1px solid #ddd;background:#fff;color:#111;text-align:left;font:400 12px/1.45 Poppins,sans-serif}
:is(#kb26,.kb-home-map-dialog) .gm-map-guide :is(#kb26,.kb-home-map-dialog) .gm-map-guide-title{display:block;font:600 14px/1.4 Poppins,sans-serif;margin:0 0 9px;color:#111}
.gm-map-key{display:flex;flex-wrap:wrap;gap:5px 10px}
:is(#kb26,.kb-home-map-dialog) .gm-map-guide .gm-map-clock{font:400 11px/1.4 Poppins,sans-serif;color:#555;margin:8px 0 10px}
.gm-map-status{display:inline-flex;align-items:center;gap:5px;font:500 10px/1.4 Poppins,sans-serif;color:#444}
.gm-map-status:before{content:'';width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--gm-status)}
.gm-state-upcoming{--gm-status:#0755a4}.gm-state-live{--gm-status:#218450}.gm-state-finished{--gm-status:#60656b}.gm-state-started{--gm-status:#ffa600}
.gm-map-number{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:30px;height:30px;flex:0 0 30px;border-radius:50%;background:var(--gm-status,#0755a4);color:#fff;font:600 12px/1 Poppins,sans-serif}
.gm-map-number.gm-state-started{color:#111}
.gm-map-marker .gm-map-number{width:34px;height:34px;border:2px solid #fff;box-shadow:0 1px 4px #0006}
.gm-map-marker:focus-visible{outline:3px solid #111;outline-offset:3px;border-radius:50%}
:is(#kb26,.kb-home-map-dialog) .gm-map-guide .gm-map-legend-item{margin:0;padding:10px 0;border-top:1px solid #e2e2e2}
:is(#kb26,.kb-home-map-dialog) .gm-map-guide button.gm-map-venue-button{appearance:none;border:0;border-radius:4px;background:transparent;color:#111;display:flex;align-items:center;gap:8px;width:100%;padding:0;text-align:left;text-decoration:none;font:600 12px/1.35 Poppins,sans-serif;cursor:pointer}
:is(#kb26,.kb-home-map-dialog) .gm-map-guide button.gm-map-venue-button:focus-visible{outline:2px solid #0755a4;outline-offset:3px}
:is(#kb26,.kb-home-map-dialog) .gm-map-guide .gm-map-address{font:400 11px/1.4 Poppins,sans-serif;color:#666;margin:3px 0 6px 38px}
.gm-map-performance{margin:6px 0 0 38px}
:is(#kb26,.kb-home-map-dialog) .gm-map-guide .gm-map-performance p{font:400 11px/1.45 Poppins,sans-serif;color:#222;margin:0 0 2px}
@media(hover:hover) and (pointer:fine){:is(#kb26,.kb-home-map-dialog) .gm-map-guide button.gm-map-venue-button:hover{color:#0755a4;background:#f0f5fb}}
.kb-home-map-dialog .gm-map-layout{height:min(65vh,600px);height:min(65dvh,600px)}
.kb-home-map-dialog .kb-home-video-stage{max-height:none;overflow:visible}
.kb-home-map-dialog .kb-home-video-frame{max-height:calc(100dvh - 110px);overflow:auto}
#kb26 .kb-map-fullscreen .gm-map-layout{flex:1;min-height:0;height:auto}
#kb26 .kb-map-fullscreen .gm-map-layout #kb-map{height:100%!important}
@media(max-width:700px){
 .gm-map-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:300px 190px;height:490px}
 :is(#kb26,.kb-home-map-dialog) .gm-map-guide{border-left:0;border-top:1px solid #ddd;padding:10px}
 .kb-home-map-dialog .gm-map-layout{height:min(70dvh,570px);min-height:280px;grid-template-rows:minmax(140px,1fr) minmax(110px,35%)}
 #kb26 .kb-map-fullscreen .gm-map-layout{grid-template-rows:minmax(120px,1fr) minmax(100px,32%)}
}

/* Status controls replace the old static colour key. */
:is(#kb26,.kb-home-map-dialog) .gm-map-guide .gm-map-guide-tools{position:sticky;top:-14px;z-index:2;background:white;padding:4px 0 1px}
:is(#kb26,.kb-home-map-dialog) .gm-map-filters{display:grid;grid-template-columns:1fr 1fr;gap:6px}
:is(#kb26,.kb-home-map-dialog) .gm-map-guide button.gm-map-filter{appearance:none;display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:36px;margin:0;padding:7px 8px;background:#fff;border:1px solid #ddd;border-radius:5px;color:#222;font:500 11px/1.3 Poppins,sans-serif;cursor:pointer;text-align:left;transition:background-color .15s,color .15s}
:is(#kb26,.kb-home-map-dialog) .gm-map-filter-label{display:flex;align-items:center;gap:5px}
:is(#kb26,.kb-home-map-dialog) .gm-map-filter-label:before{content:'';width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--gm-status,#19191e)}
:is(#kb26,.kb-home-map-dialog) .gm-map-guide button.gm-map-filter[aria-pressed=true]{background:var(--gm-status,#19191e);border-color:var(--gm-status,#19191e);color:#fff}
:is(#kb26,.kb-home-map-dialog) .gm-map-filter[aria-pressed=true] .gm-map-filter-label:before{background:#fff}
:is(#kb26,.kb-home-map-dialog) .gm-map-filter b{font-size:10px;font-weight:600;opacity:.85}
:is(#kb26,.kb-home-map-dialog) .gm-map-guide button.gm-map-filter:focus-visible{outline:2px solid #0755a4;outline-offset:2px}
:is(#kb26,.kb-home-map-dialog) .gm-map-guide [hidden],:is(#kb26,.kb-home-map-dialog) .leaflet-popup-content [hidden]{display:none!important}
:is(#kb26,.kb-home-map-dialog) .gm-map-empty p{font:400 12px/1.5 Poppins,sans-serif;margin:10px 0;color:#444}
:is(#kb26,.kb-home-map-dialog) .gm-map-empty button{font:500 12px/1.4 Poppins,sans-serif;background:#0755a4;color:white;border:0;border-radius:4px;padding:10px;min-height:40px;cursor:pointer}
@media(hover:hover) and (pointer:fine){:is(#kb26,.kb-home-map-dialog) .gm-map-guide button.gm-map-filter:hover{border-color:#0755a4}}
@media(max-width:700px){
 :is(#kb26,.kb-home-map-dialog) .gm-map-guide .gm-map-guide-tools{top:-10px}
 .gm-map-layout{grid-template-rows:300px 240px;height:540px}
 #kb26 .kb-map-fullscreen .gm-map-layout{grid-template-rows:minmax(120px,1fr) minmax(200px,36%)}
 .kb-home-video-dialog.kb-home-map-dialog{padding:calc(8px + env(safe-area-inset-top)) 10px calc(8px + env(safe-area-inset-bottom));align-items:stretch}
 .kb-home-map-dialog .kb-home-video-stage{display:flex;flex-direction:column;min-height:0;max-width:none}
 .kb-home-map-dialog .kb-home-video-close{position:static;align-self:flex-end;flex:0 0 auto;margin:0 0 6px;min-height:44px}
 .kb-home-map-dialog .kb-home-video-frame{display:flex;flex-direction:column;flex:1;min-height:0;max-height:none;overflow:hidden}
 .kb-home-map-dialog .kb-home-map-tools{flex:0 0 auto}
 .kb-home-map-dialog .gm-map-layout{flex:1;min-height:0;height:auto;grid-template-rows:minmax(120px,1fr) minmax(220px,38%)}
}
@media(prefers-reduced-motion:reduce){:is(#kb26,.kb-home-map-dialog) .gm-map-guide button.gm-map-filter{transition:none}}

/* The transparent header area must not cover the programme controls.
   Its actual logo, navigation and language controls remain interactive. */
body.kb-home-programmes-ready > header{pointer-events:none}
body.kb-home-programmes-ready > header > *{pointer-events:auto}

/* Highlight Almare musician credit without changing row spacing. */
#hero .kb-home-evening-performers .kb-home-featured-artist{color:#ffa600;font-weight:600}

/* Opening tab attached to the ticket row's top edge. */
#hero .kb-home-ticket.kb-home-opening{display:grid;grid-template-columns:minmax(0,1fr) auto 104px;gap:8px;align-items:center}
#hero .kb-home-opening .kb-home-ticket-logo{width:104px;grid-column:3;grid-row:1}
#hero .kb-home-opening-badge{align-self:start;transform:translateY(-6px);font:600 10px/1.2 Poppins,sans-serif;background:#0755a4;color:#fff;padding:5px 6px;border-radius:0 0 4px 4px;white-space:nowrap}
@media(max-width:768px) and (orientation:portrait){
 #hero .kb-home-ticket.kb-home-opening{grid-template-columns:minmax(0,1fr) auto 84px;gap:5px}
 #hero .kb-home-opening .kb-home-ticket-logo{width:84px}
 #hero .kb-home-opening-badge{transform:translateY(-5px);font-size:9px;padding:4px}
}
@media(max-width:640px) and (orientation:portrait){
 #hero .kb-home-opening-badge{transform:translateY(-4px)}
}
@media(max-width:350px) and (orientation:portrait){
 #hero .kb-home-ticket.kb-home-opening{grid-template-columns:minmax(0,1fr) auto 72px}
 #hero .kb-home-opening .kb-home-ticket-logo{width:72px}
 #hero .kb-home-opening-badge{padding-left:3px;padding-right:3px}
}

/* Touch/keyboard divider between the mobile map and venue information. */
.gm-map-resizer{display:none}
@media(max-width:700px){
 :is(#kb26,.kb-home-map-dialog) .gm-map-resizer{display:flex;align-items:center;justify-content:center;height:32px;min-height:32px;box-sizing:border-box;background:#f5f5f5;border-top:1px solid #ddd;border-bottom:1px solid #ddd;cursor:row-resize;touch-action:none;user-select:none;-webkit-user-select:none}
 .gm-map-resizer>span{display:block;width:48px;height:5px;border-radius:8px;background:#0755a4;pointer-events:none}
 .gm-map-resizer:focus-visible{outline:2px solid #0755a4;outline-offset:-3px}
 .gm-map-resizing .gm-map-resizer{background:#dceaf8}
}

/* In-map location control, separate from venue markers and filters. */
:is(#kb26,.kb-home-map-dialog) .gm-map-gps{display:flex;flex-direction:column;align-items:flex-end;max-width:230px}
:is(#kb26,.kb-home-map-dialog) button.gm-map-gps-button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;padding:0;margin:0;background:#fff;color:#222;border:2px solid rgba(0,0,0,.25);border-radius:5px;box-shadow:0 1px 5px #0003;cursor:pointer;touch-action:manipulation}
:is(#kb26,.kb-home-map-dialog) button.gm-map-gps-button.gm-gps-found{color:#c47a00}
:is(#kb26,.kb-home-map-dialog) button.gm-map-gps-button:disabled{opacity:.65;cursor:progress}
:is(#kb26,.kb-home-map-dialog) button.gm-map-gps-button:focus-visible{outline:3px solid #0755a4;outline-offset:2px}
:is(#kb26,.kb-home-map-dialog) .gm-map-gps-status{font:400 11px/1.4 Poppins,sans-serif;text-align:left;margin:6px 0 0;padding:8px 10px;background:#fff;color:#222;border-radius:4px;box-shadow:0 1px 5px #0003;max-width:210px}
:is(#kb26,.kb-home-map-dialog) .gm-map-gps-status[hidden]{display:none!important}
@media(hover:hover){:is(#kb26,.kb-home-map-dialog) button.gm-map-gps-button:hover{background:#0755a4;color:#fff}}

/* Short, dismissible location feedback; closing leaves the marker on the map. */
:is(#kb26,.kb-home-map-dialog) .gm-map-gps-status{display:flex;align-items:center;gap:4px;padding:0 0 0 10px;max-width:230px}
:is(#kb26,.kb-home-map-dialog) .gm-map-gps-status>span{flex:1;min-width:0;padding:6px 0}
:is(#kb26,.kb-home-map-dialog) button.gm-map-gps-close{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;margin:0;border:0;border-radius:0 4px 4px 0;background:transparent;color:#222;font:24px/1 Arial,sans-serif;cursor:pointer;touch-action:manipulation}
:is(#kb26,.kb-home-map-dialog) button.gm-map-gps-close:focus-visible{outline:2px solid #0755a4;outline-offset:-3px}
@media(hover:hover){:is(#kb26,.kb-home-map-dialog) button.gm-map-gps-close:hover{color:#fff;background:#0755a4}}
