/* /festiwale-2027 — Mapa festiwali (Sternik 2026-10-01). Paleta i mapa jak /mapa i mapa artysty. */
.page-festivals main{overflow-x:clip;background:#0b0d16;color:#e6eaf2}
.fst-hero{position:relative;padding:40px 0 30px;background:radial-gradient(120% 140% at 85% 0%,#3a2380 0%,#171030 45%,#0b0d16 100%);border-bottom:1px solid #2a2f40;overflow:hidden}
.fst-hero:after{content:"";position:absolute;right:-90px;top:-90px;width:300px;height:300px;border-radius:50%;border:1px solid #9068f670;box-shadow:0 0 0 3.5rem #9068f61a,0 0 0 7rem #9068f60d;pointer-events:none}
.fst-hero-inner{position:relative;z-index:1;min-width:0}
.fst-crumb{margin:0 0 14px;font-size:13px;color:#b7c0cf}
.fst-crumb a{color:#c9b6ff}
.fst-crumb .sep{margin:0 6px;opacity:.6}
.fst-kicker{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#c2aaff}
.fst-title{margin:0;max-width:880px;font-family:"Barlow Condensed KK","Barlow Condensed",var(--font-sans,sans-serif);font-weight:600;font-size:clamp(34px,5.2vw,58px);line-height:1.02;color:#fff;letter-spacing:-.01em;overflow-wrap:anywhere}
.fst-lead{margin:16px 0 0;max-width:700px;font-size:16px;line-height:1.6;color:#d4dae5}
.fst-proof{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0;padding:0;list-style:none}
.fst-proof li{padding:8px 14px;border:1px solid #4a3e78;border-radius:999px;background:#ffffff0d;color:#d4dae5;font-size:14px}
.fst-proof strong{color:#fff;font-size:16px;margin-right:2px}

.fst-content{display:grid;grid-template-columns:minmax(0,1fr);gap:40px;padding-top:32px;padding-bottom:56px;min-width:0}
.fst-h2{margin:0 0 16px;font-family:"Barlow Condensed KK","Barlow Condensed",var(--font-sans,sans-serif);font-weight:600;font-size:clamp(26px,3.4vw,36px);line-height:1.1;color:#f8fafc}

.fst-map-section{min-width:0}
.fst-map-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,330px);border:1px solid #343a4b;border-radius:14px;overflow:hidden;background:#10141f}
.fst-map-layout>.fst-map-shell:only-child{grid-column:1/-1}
.fst-map-shell{position:relative;isolation:isolate;min-width:0;overflow:hidden;background:#060811}
.fst-map-side{min-width:0;max-height:560px;display:flex;flex-direction:column;padding:20px 16px 8px;border-left:1px solid #2a3040}
.fst-side-title{margin:0 0 8px;font-size:16px;font-weight:700;color:#f8fafc}
.fst-side-list{list-style:none;margin:0;padding:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#685585 #10141f}
.fst-side-list li+li{border-top:1px solid #2a3040}
.fst-side-list a{display:flex;flex-direction:column;gap:3px;padding:11px 6px;min-height:44px;color:#e6eaf2;text-decoration:none}
.fst-side-list a:hover{background:#1c2232}
.fst-side-list a:focus-visible{outline:2px solid #bfa9ff;outline-offset:-2px}
.fst-side-list time{color:#c2aaff;font-size:12px;font-weight:650}
.fst-side-list strong{font-size:15px;color:#fff;line-height:1.3}
.fst-side-list span{font-size:13px;color:#b7c0cf}
.fst-map{height:560px;width:100%;z-index:0;background:#060811}
.fst-map .leaflet-tile{filter:invert(1) hue-rotate(180deg) brightness(.46) saturate(.42) contrast(.92)}
.fst-map-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:85%;margin:0;padding:14px 18px;border-radius:8px;background:#10141f;color:#f8fafc;text-align:center;pointer-events:none;font-size:14px}
.fst-map-message[hidden]{display:none}
.fst-footnote{margin:10px 0 0;font-size:12px;line-height:1.6;color:#aeb7c7}
.fst-pin{border:0;background:none}
.fst-pin span{display:block;width:16px;height:16px;margin:3px;border-radius:50%;background:#7140d4;border:2px solid #fff;box-shadow:0 0 0 4px #7140d440,0 2px 8px #241b4280;transition:transform .15s}
.fst-pin.is-many span{display:flex;width:30px;height:30px;margin:2px;align-items:center;justify-content:center;color:#fff;font:700 13px/1 system-ui,sans-serif}
.fst-pin:hover span,.fst-pin:focus-visible span{transform:scale(1.15);background:#8b5cf6}
.fst-pin:focus-visible{outline:3px solid #39176c;outline-offset:3px;border-radius:50%}
.fst-map .leaflet-control-zoom a{width:44px;height:44px;line-height:44px;background:#fff;color:#292238}
.fst-map .leaflet-control-attribution{font:10px/1.4 system-ui,sans-serif;background:#fffffff0;color:#333}
.fst-map .leaflet-control-attribution a{color:#44366b}
.fst-map .leaflet-popup-content-wrapper{background:#10141f;color:#eef2fa;border-radius:12px;border:1px solid #3b4050}
.fst-map .leaflet-popup-tip{background:#10141f}
.fst-map .leaflet-popup-content{margin:16px 18px;max-height:280px;overflow:auto}
.fst-map .leaflet-popup-close-button{color:#ddd!important;width:32px!important;height:32px!important;font-size:24px!important}
.fst-popup-head{margin:0 0 6px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#c2aaff}
.fst-popup-item{display:flex;flex-direction:column;gap:3px;padding:10px 0;text-decoration:none;border-top:1px solid #2a3040;min-height:44px}
.fst-popup-item:first-of-type{border-top:0;padding-top:2px}
.fst-popup-item strong{color:#fff;font-size:16px;line-height:1.3}
.fst-popup-when{color:#c2aaff;font-size:13px;font-weight:650}
.fst-popup-city{color:#b7c0cf;font-size:13px}
.fst-popup-go{color:#d3bbff;font-size:13px;margin-top:2px}
.fst-popup-item:hover strong{text-decoration:underline}

.fst-months-nav{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 24px}
.fst-months-nav a{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border:1px solid #3b4050;border-radius:999px;background:#10141f;color:#e6eaf2;font-size:14px;font-weight:600;text-decoration:none}
.fst-months-nav a span{color:#c2aaff;font-size:12px}
.fst-months-nav a:hover{border-color:#bfa9ff}
.fst-month{margin:0 0 28px;scroll-margin-top:90px}
.fst-month-title{display:flex;align-items:baseline;gap:10px;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #2a3040;font-size:20px;font-weight:700;color:#f8fafc}
.fst-month-title span{font-size:13px;font-weight:600;color:#9aa3b5}
.fst-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:12px;margin:0;padding:0;list-style:none}
.fst-card{min-width:0}
.fst-card-link{display:flex;align-items:center;gap:14px;height:100%;padding:14px 16px;border:1px solid #2f3546;border-radius:12px;background:linear-gradient(180deg,#141a28,#10141f);color:#e6eaf2;text-decoration:none;transition:border-color .15s,transform .15s}
.fst-card-link:hover{border-color:#8f6df0;transform:translateY(-1px)}
.fst-card-link:focus-visible{outline:2px solid #bfa9ff;outline-offset:3px}
.fst-date{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:60px;border-radius:10px;background:#7140d4;color:#fff;line-height:1}
.fst-date b{font-size:24px;font-weight:700}
.fst-date span{margin-top:4px;font-size:11px;font-weight:700;letter-spacing:.08em}
.fst-body{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 auto}
.fst-name{font-size:16px;line-height:1.3;color:#fff;overflow-wrap:anywhere}
.fst-when{font-size:14px;font-weight:650;color:#c9b6ff}
.fst-range-tag{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:999px;background:#7140d433;color:#e0d4ff;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:1px}
.fst-where{display:flex;align-items:center;gap:5px;font-size:13px;color:#b7c0cf;min-width:0;overflow-wrap:anywhere}
.fst-where svg{flex:0 0 auto}
.fst-go{flex:0 0 auto;color:#8f6df0;font-size:18px}
.fst-card.is-compact .fst-card-link{padding:10px 12px;gap:12px}
.fst-card.is-compact .fst-date{width:46px;height:48px;background:#2a2150}
.fst-card.is-compact .fst-date b{font-size:19px}
.fst-card.is-compact .fst-name{font-size:15px}
.fst-card.is-cancelled .fst-name{text-decoration:line-through;color:#9aa3b5}
.fst-empty,.fst-note{color:#c1c9d6;font-size:14px;line-height:1.6}
.fst-note a{color:#d3bbff}

.fst-details{border:1px solid #2f3546;border-radius:14px;background:#0e121c;padding:4px 18px}
.fst-details summary{display:flex;flex-direction:column;gap:4px;padding:16px 28px 16px 0;cursor:pointer;list-style:none;position:relative}
.fst-details summary::-webkit-details-marker{display:none}
.fst-details summary:after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:26px;color:#c2aaff}
.fst-details[open] summary:after{content:"−"}
.fst-details summary .fst-h2{margin:0}
.fst-details-hint{font-size:14px;color:#aeb7c7}
.fst-details[open]{padding-bottom:12px}

.fst-aside{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}
.fst-aside-card{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid #2f3546;border-radius:14px;background:#10141f;color:#d4dae5;text-decoration:none;font-size:14px;line-height:1.5}
.fst-aside-card strong{color:#fff;font-size:17px}
.fst-aside-card:hover{border-color:#8f6df0}
.fst-aside-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#c2aaff}

@media(max-width:760px){
 .fst-hero{padding:24px 0 22px}
 .fst-lead{font-size:15px}
 .fst-content{gap:32px;padding-top:24px}
 .fst-map{height:440px}
 .fst-map-layout{grid-template-columns:minmax(0,1fr)}
 .fst-map-side{max-height:300px;border-left:0;border-top:1px solid #2a3040}
 .fst-card-link{padding:12px;gap:12px}
 .fst-date{width:50px;height:54px}
 .fst-go{display:none}
 .fst-months-nav{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
 .fst-months-nav a{flex:0 0 auto}
}
@media(prefers-reduced-motion:reduce){.fst-card-link,.fst-pin span{transition:none}}
