@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--ink:#163b43;--muted:#667e82;--paper:#faf9f5;--white:#fff;--line:#e5e7e3;--sea:#176a79;--sky:#e7f0ee;--ochre:#d99b50;--gallery:#2c84ab;--collective:#db6570;--alternative:#719953;--outdoor:#d9af36;--museum:#d67e42}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}.shell{max-width:1680px;margin:auto}.site-header{height:88px;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(20px,4.6vw,80px);border-bottom:1px solid #edf0ec}.brand{display:flex;align-items:center;gap:13px;text-decoration:none}.brand-mark{width:47px;height:47px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:50%;font-size:35px;font-family:Georgia}.brand-mark span{transform:translateY(-1px)}.brand-text{display:flex;flex-direction:column;font-weight:800;letter-spacing:.04em;font-size:17px;line-height:1.06}.brand-text small{font-size:11px}.brand-place{font-size:9px;letter-spacing:.22em;margin-top:6px;color:var(--muted)}.header-actions{display:flex;gap:22px;align-items:center}.lang-switch{background:#f0f3f1;padding:4px;border-radius:100px;display:flex}.lang-switch button{border:0;border-radius:100px;padding:8px 13px;background:transparent;color:#637a7a;font-size:12px;font-weight:800}.lang-switch button.active{background:var(--ink);color:white}.about-btn{border:0;background:transparent;color:var(--ink);font-size:13px;font-weight:700}.intro{background:var(--ink);color:#fff;min-height:225px;padding:38px clamp(20px,4.6vw,80px);display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;overflow:hidden}.intro:after{content:'✳';position:absolute;right:200px;top:-155px;font-size:420px;opacity:.045;pointer-events:none}.eyebrow,.section-kicker{font-size:10px;font-weight:800;letter-spacing:.18em;color:#b2d1ce}.intro h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(30px,3.6vw,51px);font-weight:600;line-height:1.17;margin:12px 0 8px}.lede{font-size:15px;color:#d1dedb;margin:0 0 17px}.meta{font-size:12px;font-weight:700;display:flex;gap:16px;align-items:center;color:#f1ede0}.clock-icon{font-size:20px;vertical-align:-2px}.meta-divider{opacity:.4}.intro-side{position:relative;z-index:1;min-width:162px;display:flex;align-items:flex-end;flex-direction:column;gap:11px}.edition{font-size:13px;letter-spacing:.17em;color:#d6e0dd}.edition span{color:var(--ochre)}.venue-count{border-top:1px solid #66868a;padding-top:11px;display:flex;align-items:center;gap:9px;font-size:12px;max-width:178px}.venue-count strong{font-family:'Playfair Display',Georgia,serif;font-size:46px;line-height:1}.workspace{display:grid;grid-template-columns:minmax(325px,405px) minmax(0,1fr);height:min(720px,76vh);min-height:555px;border-bottom:1px solid var(--line)}.sidebar{min-height:0;background:#fff;overflow:auto;box-shadow:6px 0 20px rgba(12,33,38,.04);z-index:3}.sidebar-inner{padding:27px 22px 15px 32px}.section-head{display:flex;justify-content:space-between;align-items:end}.section-kicker{color:#739596}.section-head h2{font-family:'Playfair Display',Georgia,serif;font-size:23px;font-weight:600;margin:8px 0 19px}.result-count{font-weight:800;color:#6b8588;font-size:13px;margin-bottom:20px}.search-wrap{position:relative;display:block}.search-wrap svg{position:absolute;top:13px;left:13px;width:18px;height:18px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round}.search-wrap input{width:100%;height:44px;background:#f6f7f4;border:1px solid #e5e9e4;border-radius:6px;padding:0 13px 0 41px;outline-color:var(--sea);font-size:12px}.filters{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.filter{border:1px solid #e1e7e3;border-radius:16px;padding:7px 10px;background:white;font-size:10px;font-weight:700;color:#688082;display:flex;align-items:center;gap:5px}.filter.active{background:var(--ink);color:white;border-color:var(--ink)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dot.gallery{background:var(--gallery)}.dot.collective{background:var(--collective)}.dot.alternative{background:var(--alternative)}.dot.outdoor{background:var(--outdoor)}.dot.museum{background:var(--museum)}.session-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 0 17px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.session-toggle select{border:1px solid #e4e9e5;color:var(--ink);font-size:11px;max-width:185px;border-radius:5px;background:#fff;padding:7px}.list-top{display:flex;justify-content:space-between;gap:12px;margin:15px 0 8px;font-weight:800;font-size:10px;letter-spacing:.1em}.list-top span:last-child{font-weight:500;letter-spacing:0;color:var(--muted);font-size:10px}.venue-list{padding-bottom:24px}.venue-item{border:0;border-bottom:1px solid #ecefeb;background:transparent;padding:12px 2px 12px 0;text-align:left;width:100%;display:flex;align-items:center;gap:13px}.venue-item:hover,.venue-item.active{background:#f2f7f5}.venue-badge{width:34px;height:34px;min-width:34px;display:grid;place-items:center;border-radius:50%;font-weight:800;color:#fff;font-size:12px}.venue-item-content{flex:1;min-width:0}.venue-name{font-size:12px;font-weight:800;display:block;overflow-wrap:anywhere}.venue-address{font-size:11px;color:#74888a;margin-top:3px;display:block}.venue-participation{font-size:10px;color:#a65b31;margin-top:5px;display:block;font-weight:700}.venue-arrow{font-size:19px;color:#92a6a5}.no-results{padding:25px 5px;font-size:13px;color:var(--muted)}.map-panel{position:relative;min-width:0;min-height:0;background:#dfe9e3;overflow:hidden}#map{position:absolute;inset:0;background:#d4e0df}.leaflet-container{font-family:'DM Sans',Arial,sans-serif!important}.leaflet-image-layer{image-rendering:auto}.leaflet-control-attribution{font-size:9px!important}.leaflet-control-zoom{border:none!important;box-shadow:0 5px 22px rgba(16,37,42,.14)!important}.map-marker{border:3px solid #fff;width:33px;height:33px;color:white;box-shadow:0 2px 11px #17383d66;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:800;font-size:12px;transition:transform .15s}.map-marker.is-selected{transform:scale(1.32);box-shadow:0 4px 18px #17383d88;border-color:#ffefc4}.map-marker.is-faded{opacity:.2}.map-hint{position:absolute;left:18px;top:17px;background:rgba(255,255,255,.95);border-radius:5px;padding:10px 13px;font-size:11px;font-weight:700;color:#526e71;box-shadow:0 2px 15px #26464e22;z-index:500}.map-toolbar{position:absolute;right:18px;top:17px;display:flex;flex-direction:column;gap:8px;z-index:500}.map-toolbar button{width:40px;height:40px;border:1px solid #dce5e2;background:#fff;box-shadow:0 3px 15px #26464e29;border-radius:7px;font-size:24px;color:var(--ink)}.selected-card{position:absolute;z-index:600;left:20px;bottom:22px;width:min(380px,calc(100% - 40px));background:white;padding:19px;border-radius:11px;box-shadow:0 6px 38px #102e3680}.selected-card-top{display:flex;justify-content:space-between;gap:15px;align-items:start}.selected-card .small-category{text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:800;color:var(--sea)}.selected-card h3{font-family:'Playfair Display',Georgia,serif;font-size:23px;line-height:1.22;margin:6px 0 8px}.selected-card p{color:#708387;font-size:12px;margin:0 0 12px}.selected-card .participation-note{color:#a26037;font-weight:800}.selected-card .close-card{border:0;background:#f2f4f2;color:var(--ink);border-radius:50%;width:28px;height:28px;font-size:20px;flex-shrink:0}.card-actions{display:flex;gap:9px}.card-actions a{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:800;font-size:12px;text-decoration:none;background:var(--ink);color:white;border-radius:6px;padding:12px 13px;flex:1}.card-actions a.secondary{background:#edf3f0;color:var(--ink);flex:0 0 auto}.mobile-list-button{display:none}.dates-section{padding:57px clamp(20px,4.6vw,80px) 65px;background:#fbfaf7}.dates-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:26px}.dates-heading h2{font-family:'Playfair Display',Georgia,serif;font-size:35px;font-weight:600;margin:8px 0 0}.dates-heading p{font-size:12px;color:var(--muted)}.date-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.date-month{border:1px solid var(--line);border-radius:8px;background:#fff;padding:19px 14px;min-height:109px}.date-month h3{font-size:12px;text-transform:uppercase;letter-spacing:.07em;margin:0 0 14px;color:var(--ink)}.date-pills{display:flex;gap:8px;flex-wrap:wrap}.date-pills span{border-radius:30px;padding:7px 10px;background:#eef3f0;color:#2c585b;font-size:12px;font-weight:800}.date-pills span.next{background:var(--ink);color:white}.date-pills span.past{opacity:.45}footer{background:#f1f3ee;border-top:1px solid var(--line);padding:24px clamp(20px,4.6vw,80px);display:flex;justify-content:space-between;align-items:center;gap:14px;color:#687e7e;font-size:11px}footer>div:first-child{display:flex;flex-direction:column;gap:4px}footer strong{letter-spacing:.1em;color:var(--ink)}.footer-right{display:flex;gap:12px}.footer-right a{text-decoration:none}.divider-dot{color:#b3c3bc}dialog{border:0;border-radius:13px;max-width:500px;width:calc(100% - 30px);box-shadow:0 15px 70px #102e3660;color:var(--ink)}dialog::backdrop{background:#102b31a8}.modal-inner{position:relative;padding:30px}.modal-inner h2{font-family:'Playfair Display',Georgia,serif;font-size:30px}.modal-inner p{line-height:1.65;color:#536d71;font-size:14px}.close-modal{position:absolute;right:7px;top:1px;border:0;background:transparent;font-size:30px;color:var(--muted)}.modal-credit{border-top:1px solid var(--line);padding-top:17px!important;font-size:12px!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1060px){.date-grid{grid-template-columns:repeat(3,1fr)}.workspace{grid-template-columns:345px minmax(0,1fr)}}
@media(max-width:720px){.site-header{height:70px;padding:0 17px}.brand-mark{width:35px;height:35px;font-size:25px}.brand-text{font-size:14px}.brand-place{font-size:8px}.header-actions{gap:8px}.about-btn{font-size:0}.about-btn::first-letter{font-size:18px}.lang-switch button{padding:8px 10px}.intro{padding:25px 20px 28px;min-height:205px;display:block}.intro h1{font-size:35px;margin-top:12px}.eyebrow{font-size:9px}.lede{font-size:13px;max-width:320px}.meta{font-size:11px;gap:8px}.intro-side{position:absolute;right:20px;bottom:22px;min-width:0}.edition{display:none}.venue-count{border:0;padding:0;flex-direction:column;align-items:center;max-width:55px;gap:0;font-size:9px;text-align:center}.venue-count strong{font-size:33px}.workspace{display:flex;flex-direction:column;height:auto;min-height:0}.map-panel{order:0;height:490px;flex:none}.sidebar{order:1;height:450px;overflow:auto}.sidebar-inner{padding:20px 18px}.map-hint{left:12px;top:12px;max-width:210px;line-height:1.3}.map-toolbar{right:12px;top:12px}.selected-card{bottom:57px;left:12px;width:calc(100% - 24px);padding:14px}.selected-card h3{font-size:21px}.mobile-list-button{display:block;position:absolute;z-index:510;bottom:12px;right:12px;padding:11px 16px;border:0;border-radius:30px;background:var(--ink);color:white;font-size:12px;font-weight:800;box-shadow:0 4px 20px #102e3670}.date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dates-section{padding:40px 19px}.dates-heading{display:block}.dates-heading h2{font-size:30px}.dates-heading p{font-size:11px}.date-month{min-height:95px;padding:15px 12px}footer{padding:25px 20px;align-items:start;flex-direction:column}.footer-right{flex-wrap:wrap}}
@media(max-width:380px){.intro-side{display:none}.map-panel{height:425px}.date-grid{gap:8px}}

/* Street-map interaction enhancements */
.venue-pin-wrap{background:transparent;border:0}.leaflet-popup-content-wrapper{border-radius:12px;box-shadow:0 8px 26px #102e3652}.leaflet-popup-content{margin:14px 16px}.venue-popup .small-category{text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:800;color:var(--sea)}.venue-popup h3{font-family:'Playfair Display',Georgia,serif;font-size:20px;line-height:1.22;margin:6px 0 9px}.venue-popup p{color:#566f74;font-size:12px;margin:0 0 10px}.venue-popup .participation-note{color:#a26037;font-weight:800}.venue-popup .card-actions{margin-top:12px;flex-wrap:wrap}.venue-popup .card-actions a{font-size:11px;padding:10px 11px}.leaflet-control-attribution{background:#fffffff0!important}.map-hint{pointer-events:none}@media(max-width:720px){.map-panel{height:510px}.leaflet-popup-content{margin:12px}.leaflet-popup-content-wrapper{max-width:285px}.selected-card{display:none!important}}

/* Version 3: MapLibre vector map and official ArtWalk mark */
.official-logo{height:57px;width:57px;object-fit:contain;flex-shrink:0}.brand{gap:12px}.brand-text{font-size:15px}
#map .maplibregl-canvas{outline:none}.maplibregl-map{position:absolute;inset:0}.maplibregl-control-container .maplibregl-ctrl-top-right{top:54px;right:12px}.maplibregl-ctrl-attrib{font-size:10px!important}
.venue-pin-wrap{height:36px;width:36px;display:grid;place-items:center;cursor:pointer;outline-offset:3px}.venue-pin-wrap .map-marker{pointer-events:none}
.maplibregl-popup-content{padding:14px 16px;border-radius:12px;box-shadow:0 8px 26px #102e3652;max-width:300px}
.maplibregl-popup-close-button{font-size:20px;padding:4px 9px;color:var(--ink)}
.maplibregl-popup-content .small-category{text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:800;color:var(--sea)}
.maplibregl-popup-content h3{font-family:Georgia,serif;font-size:20px;line-height:1.22;margin:6px 0 9px}
.maplibregl-popup-content p{color:#566f74;font-size:12px;margin:0 0 10px}
.maplibregl-popup-content .participation-note{color:#a26037;font-weight:800}
.maplibregl-popup-content .card-actions{margin-top:12px;flex-wrap:wrap}
.maplibregl-popup-content .card-actions a{font-size:11px;padding:10px 11px}
.user-position{width:18px;height:18px;border:3px solid white;border-radius:50%;background:#155b78;box-shadow:0 1px 10px #123a4566}
.map-error{margin:20px;background:white;padding:20px;border-radius:8px}
@media(max-width:720px){.official-logo{width:45px;height:45px}.brand-text{font-size:12px}.maplibregl-control-container .maplibregl-ctrl-top-right{top:65px;right:6px}.maplibregl-popup{max-width:calc(100vw - 24px)!important}.maplibregl-popup-content{max-width:250px}}

/* v4: Keep native map controls out of the top-right custom toolbar. */
#map .maplibregl-ctrl-bottom-right{right:12px;bottom:27px;z-index:2}
#map .maplibregl-ctrl-group{box-shadow:0 3px 15px #26464e29;border-radius:7px;overflow:hidden}
#map .maplibregl-ctrl-group button{width:40px;height:40px}
#map .maplibregl-ctrl-top-right{top:0;right:0}
.edit-panel[hidden]{display:none!important}
.edit-panel{position:absolute;left:14px;top:65px;z-index:700;background:rgba(255,255,255,.98);box-shadow:0 6px 30px #17383d44;border-radius:12px;padding:15px;max-width:min(380px,calc(100% - 28px));color:#163b43;font-size:12px}
.edit-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px}
.edit-head button{border:0;background:transparent;font-size:23px}
.edit-panel p{line-height:1.45;color:#536d71}
.edit-panel label{display:block;margin:9px 0 5px;font-weight:700}
.edit-panel select{width:100%;padding:9px;border:1px solid #cedbd7;border-radius:5px;background:#fff}
.edit-buttons{display:flex;flex-wrap:wrap;gap:7px;margin:13px 0}
.edit-buttons button{border:0;background:#163b43;color:#fff;border-radius:5px;padding:10px;font-size:11px;font-weight:700}
.edit-buttons button:last-child{background:#e9efed;color:#163b43}
.edit-panel small{color:#536d71}
@media(max-width:720px){.edit-panel{top:56px;max-height:55%;overflow:auto}#map .maplibregl-ctrl-bottom-right{bottom:65px;right:9px}}

/* v6 — mobile venue details always visible after a pin is selected. */
.selected-card[hidden]{display:none!important}
@media(max-width:720px){
  .map-panel .selected-card:not([hidden]){
    display:block!important;
    position:absolute;
    z-index:650;
    left:10px;
    right:10px;
    bottom:56px;
    width:auto;
    max-height:min(55%,330px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    background:#fff;
    border-radius:12px;
    padding:15px;
    box-shadow:0 8px 35px rgba(16,46,54,.35);
  }
  .map-panel .selected-card .close-card{width:38px;height:38px;min-width:38px}
  .map-panel .selected-card .card-actions a{min-height:44px;font-size:13px}
  .map-panel .selected-card h3{font-size:22px}
  .venue-pin-wrap{touch-action:manipulation}
}


/* v7 — mobile-first visual polish */
.mobile-sidebar-close{display:none}.sheet-handle{display:none}
@media(max-width:720px){
  body{background:#fff}
  .shell{max-width:none}
  .site-header{height:auto;min-height:78px;padding:12px 16px;gap:12px;position:sticky;top:0;z-index:950;background:#fff}
  .brand{gap:10px;min-width:0;flex:1}
  .official-logo{width:42px;height:42px}
  .brand-text{font-size:12px;min-width:0}
  .brand-place{font-size:8px;letter-spacing:.18em;white-space:nowrap}
  .header-actions{gap:10px}
  .about-btn{width:34px;height:34px;display:grid;place-items:center;border:1px solid #dce5e2;border-radius:999px;padding:0;font-size:0}
  .about-btn::before{content:'ⓘ';font-size:18px;line-height:1;color:var(--ink)}
  .lang-switch button{padding:10px 12px;font-size:11px}
  .intro{min-height:auto;padding:16px 16px 14px;display:block}
  .intro:after{display:none}
  .eyebrow{font-size:9px;letter-spacing:.16em}
  .intro h1{font-size:31px;line-height:1.02;margin:10px 0 0}
  .lede{display:none}
  .meta{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;align-items:start}
  .meta-divider{display:none}
  .meta>span{display:block}
  .intro-side{display:none}
  .workspace{display:block;height:auto;min-height:0;border-bottom:0}
  .map-panel{height:72svh;min-height:540px;max-height:760px;border-top:1px solid var(--line)}
  .map-hint{left:10px;top:10px;max-width:220px;padding:9px 12px;border-radius:12px;font-size:11px;transition:opacity .25s ease,transform .25s ease}
  .map-hint.is-hidden{opacity:0;transform:translateY(-8px)}
  .map-toolbar{top:auto;right:10px;bottom:calc(env(safe-area-inset-bottom) + 170px);gap:10px}
  .map-toolbar button{width:46px;height:46px;border-radius:12px;font-size:24px}
  .map-toolbar #fit-map{display:none}
  #map .maplibregl-ctrl-bottom-right{right:10px;bottom:calc(env(safe-area-inset-bottom) + 114px)}
  #map .maplibregl-ctrl-group button{width:42px;height:42px}
  .map-panel .selected-card:not([hidden]){display:block!important;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 12px);width:auto;max-height:min(42svh,360px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 14px calc(16px + env(safe-area-inset-bottom));border-radius:18px;box-shadow:0 10px 36px rgba(16,46,54,.28)}
  .sheet-handle{display:block;width:42px;height:4px;border-radius:999px;background:#d8e1dd;margin:0 auto 12px}
  .selected-card h3{font-size:19px;line-height:1.12}
  .selected-card p{font-size:13px;margin-bottom:10px}
  .selected-card .close-card{background:#eef3f0}
  .selected-card .card-actions{flex-direction:column;gap:10px}
  .selected-card .card-actions a,.selected-card .card-actions a.secondary{width:100%;flex:1;min-height:48px;border-radius:10px}
  .mobile-list-button{display:block;position:absolute;z-index:540;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 12px);padding:13px 16px;border:0;border-radius:999px;background:var(--ink);color:#fff;font-size:13px;font-weight:800;box-shadow:0 8px 28px rgba(16,46,54,.28)}
  body.has-selection .mobile-list-button{display:none}
  .sidebar{position:fixed;left:0;right:0;bottom:0;top:88px;height:auto;transform:translateY(100%);transition:transform .28s ease,box-shadow .28s ease;z-index:980;border-radius:18px 18px 0 0;box-shadow:0 -14px 50px rgba(16,46,54,.20);overflow:auto}
  body.show-mobile-list .sidebar{transform:translateY(0)}
  .sidebar-inner{padding:18px 16px 28px;position:relative}
  .mobile-sidebar-close{display:grid;place-items:center;position:absolute;top:12px;right:12px;width:38px;height:38px;border:0;border-radius:999px;background:#eef3f0;color:var(--ink);font-size:26px;line-height:1}
  .section-head{padding-right:42px}
  .section-head h2{margin-bottom:14px}
  .venue-list{padding-bottom:40px}
  .venue-item{padding:13px 2px}
  .sidebar::before{content:'';display:block;position:sticky;top:0;margin:10px auto 0;width:42px;height:4px;background:#d7dfdb;border-radius:999px;z-index:2}
  .dates-section{padding:40px 18px 54px}
  .dates-heading h2{font-size:29px}
  footer{padding:24px 18px calc(24px + env(safe-area-inset-bottom))}
}
@media(max-width:420px){
  .intro h1{font-size:28px}
  .meta{grid-template-columns:1fr}
  .map-panel{height:70svh;min-height:520px}
}


/* v8 — map-first mobile screen, restrained event strip, Safari-safe bottom details */
.mobile-event-strip{display:none}
@media(max-width:720px){
  html{scroll-padding-top:74px}
  .site-header{height:72px;min-height:72px;padding:8px 12px;z-index:1000;position:sticky;top:0}
  .official-logo{width:44px;height:44px}
  .brand-text{font-size:12px}
  .brand-place{font-size:8px;letter-spacing:.11em}
  .lang-switch{padding:3px}
  .lang-switch button{padding:9px 11px}
  .header-actions{gap:6px}
  .about-btn{border:0;width:32px;height:38px}
  .intro{display:none!important}
  .mobile-event-strip{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 12px;padding:11px 16px;background:#153c44;color:#fff;align-items:center;min-height:70px}
  .event-strip-title{font-size:10px;letter-spacing:.16em;font-weight:800;color:#b8d4d0}
  .event-strip-date{font-size:14px;font-weight:800;grid-column:1}
  .event-strip-hours{font-size:10px;line-height:1.4;color:#d5e3de;grid-column:2;grid-row:1/3;text-align:right;max-width:140px}
  .workspace{height:calc(100svh - 142px);min-height:400px;display:block;position:relative}
  .map-panel{height:100%!important;min-height:0!important;max-height:none!important;overflow:hidden;border:0}
  .map-hint{display:none!important}
  .map-toolbar{top:14px;right:12px;bottom:auto!important;z-index:510}
  .map-toolbar #fit-map{display:block}
  .map-toolbar button{height:44px;width:44px;font-size:23px;border-radius:12px}
  #map .maplibregl-ctrl-bottom-right{right:12px;bottom:calc(98px + env(safe-area-inset-bottom));z-index:2}
  #map .maplibregl-ctrl-bottom-left{bottom:calc(72px + env(safe-area-inset-bottom));left:5px;z-index:2}
  #map .maplibregl-ctrl-attrib{font-size:8px!important;max-width:min(88vw,300px);line-height:1.2}
  #map .maplibregl-ctrl-attrib.maplibregl-compact{min-height:22px}
  .mobile-list-button{bottom:calc(20px + env(safe-area-inset-bottom));left:50%;right:auto;transform:translateX(-50%);width:auto;white-space:nowrap;min-width:220px;max-width:calc(100% - 28px);padding:14px 20px}
  .map-panel .selected-card:not([hidden]){
    display:block!important;position:absolute;left:12px;right:12px;
    bottom:calc(80px + env(safe-area-inset-bottom));width:auto;
    max-height:min(44svh,300px);overflow:auto;-webkit-overflow-scrolling:touch;
    padding:10px 16px 14px;border-radius:20px;box-shadow:0 12px 36px rgba(16,46,54,.24);
  }
  .sheet-handle{margin:0 auto 9px}
  .map-panel .selected-card .selected-card-top{gap:8px}
  .map-panel .selected-card h3{font-size:21px;line-height:1.15;margin:4px 0 6px}
  .map-panel .selected-card .small-category{font-size:10px}
  .map-panel .selected-card p{margin:0 0 10px;font-size:12px}
  .map-panel .selected-card .close-card{width:36px;height:36px;min-width:36px}
  .map-panel .selected-card .card-actions{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:6px}
  .map-panel .selected-card .card-actions a{min-height:46px;padding:10px 12px;font-size:12px}
  .map-panel .selected-card .card-actions a.secondary{width:auto;min-width:96px;padding:10px}
  .sidebar{top:72px;z-index:1100;max-height:calc(100dvh - 72px)}
  .dates-section{padding:26px 16px 34px}
  .dates-heading{margin-bottom:16px}
  .dates-heading h2{font-size:25px;margin-top:5px}
  .dates-heading p{font-size:11px}
  .date-grid{gap:8px}
  .date-month{min-height:84px;padding:13px 12px}
  .date-month h3{margin-bottom:8px;font-size:11px}
  .date-pills span{padding:6px 9px;font-size:12px}
  footer{padding:20px 16px 24px}
}
@media(max-width:380px){
  .brand-text{font-size:11px}.brand-place{font-size:7px}
  .event-strip-hours{max-width:120px;font-size:9px}
  .workspace{height:calc(100svh - 142px);min-height:350px}
  .map-panel .selected-card:not([hidden]){max-height:44svh}
  .map-panel .selected-card .card-actions{grid-template-columns:1fr}
}
@media(max-width:720px) and (max-height:650px){
  .workspace{min-height:340px}
  .map-panel .selected-card:not([hidden]){bottom:calc(44px + env(safe-area-inset-bottom));max-height:50svh}
  #map .maplibregl-ctrl-bottom-right{bottom:80px}
}

/* v10 — Option 3: compact next-date strip + optional season modal */
.inline-dates-link{border:1px solid #76999b;background:transparent;color:#fff;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:700;white-space:nowrap}
.inline-dates-link:hover,.inline-dates-link:focus-visible{background:#ffffff21}
.event-dates-button{display:none}
.dates-dialog{padding:0;max-width:480px;width:calc(100% - 36px);border:0;border-radius:17px;box-shadow:0 15px 65px #102e3655;max-height:min(82dvh,680px);color:var(--ink)}
.dates-dialog::backdrop{background:#0d2935a3}
.dates-dialog-inner{padding:25px;overflow-y:auto;max-height:min(82dvh,680px)}
.dates-dialog-head{display:flex;align-items:start;justify-content:space-between;gap:15px}
.dates-dialog-head h2{font-family:'Playfair Display',Georgia,serif;font-size:27px;margin:8px 0 0;line-height:1.2}
.dates-dialog-close{border:0;border-radius:50%;width:38px;height:38px;flex-shrink:0;background:#edf2ef;color:var(--ink);font-size:25px}
.dates-dialog-hours{color:var(--muted);font-size:12px;margin:10px 0 20px}
.modal-month{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding:13px 0}
.modal-month-label{font-size:13px;font-weight:700;text-transform:capitalize}
.modal-month-days{display:flex;gap:8px}
.date-chip{display:grid;place-items:center;background:#e9f0ec;color:var(--ink);border-radius:50%;width:37px;height:37px;font-size:13px;font-weight:800}
.date-chip.next{background:var(--ink);color:#fff}.date-chip.past{opacity:.55}
@media(max-width:720px){
 .inline-dates-link{display:none}
 .mobile-event-strip{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto auto;align-items:center;gap:2px 12px;padding-bottom:14px}
 .mobile-event-strip .event-strip-title{grid-column:1/-1}
 .mobile-event-strip .event-strip-date{grid-column:1;grid-row:2/4}
 .mobile-event-strip .event-strip-hours{grid-column:2;grid-row:2}
 .event-dates-button{display:block;grid-column:2;grid-row:3;justify-self:end;align-self:center;background:transparent;border:0;border-bottom:1px solid #b9d4d3;color:#f4f8f5;padding:4px 0;font-size:12px;font-weight:700}
 .dates-dialog{width:calc(100% - 28px);max-height:78dvh}
 .dates-dialog-inner{padding:20px;max-height:78dvh}
}

/* v11: combined header and schedule, compact map with scrollable footer */
.header-schedule{display:none}
@media(max-width:720px){
  html{scroll-padding-top:106px}
  .site-header{height:auto!important;min-height:0!important;padding:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0;top:0}
  .brand{padding:9px 0 9px 13px;min-height:63px}
  .official-logo{width:39px;height:39px}
  .brand-text{font-size:12px}
  .header-actions{padding-right:12px}
  .lang-switch button{padding:8px 10px}
  .header-schedule{display:flex;grid-column:1/-1;min-width:0;min-height:39px;padding:8px 14px;background:#153c44;color:white;align-items:center;justify-content:space-between;gap:12px}
  .header-next-date{font-size:13px;font-weight:800;white-space:nowrap}
  .header-dates-link{border:0;background:none;color:#f4f8f5;font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:4px;padding:4px 0;white-space:nowrap;cursor:pointer}
  .mobile-event-strip{display:none!important}
  .workspace{height:55svh!important;min-height:360px!important;max-height:570px!important}
  .map-panel{height:100%!important;min-height:0!important}
  .map-panel .selected-card:not([hidden]){bottom:calc(64px + env(safe-area-inset-bottom));max-height:min(42svh,270px)}
  .mobile-list-button{bottom:calc(13px + env(safe-area-inset-bottom))}
  #map .maplibregl-ctrl-bottom-right{bottom:calc(82px + env(safe-area-inset-bottom))}
  #map .maplibregl-ctrl-bottom-left{bottom:calc(65px + env(safe-area-inset-bottom))}
  .sidebar{top:102px;max-height:calc(100dvh - 102px)}
  footer{min-height:155px;padding:23px 18px calc(35px + env(safe-area-inset-bottom));}
}
@media(max-width:375px){
 .header-next-date{font-size:12px}
 .header-dates-link{font-size:11px}
 .brand-text{font-size:11px}
 .brand-place{font-size:7px}
}

/* v12: more map space, no oversized footer, useful top-level social link */
.header-instagram{
  display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;
  color:var(--ink);text-decoration:none;border-radius:50%;
}
.header-instagram:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.minimal-footer{
  display:flex;justify-content:center;align-items:center;min-height:48px;
  padding:12px 16px;background:#f5f6f3;border-top:1px solid #e5e8e4;
  color:#667f81;font-size:11px;letter-spacing:.01em;
}
@media(max-width:720px){
  .site-header .header-actions{gap:5px;padding-right:9px}
  .header-instagram{width:31px;height:34px;flex-basis:31px}
  .site-header .about-btn{width:31px;height:34px;flex-shrink:0}
  .workspace{
    height:calc(100svh - 225px)!important;
    min-height:485px!important;max-height:760px!important;
  }
  .map-panel{height:100%!important}
  .minimal-footer{
    min-height:74px!important;
    padding:10px 15px calc(14px + env(safe-area-inset-bottom))!important;
    display:flex!important;flex-direction:row!important;
    justify-content:center;align-items:center;
    font-size:11px;
  }
  .sidebar{top:102px}
}
@media(max-width:390px){
  .site-header .header-actions{gap:2px;padding-right:6px}
  .brand{padding-left:8px;gap:7px}
  .brand-text{font-size:11px}
  .brand-place{font-size:7px;letter-spacing:.1em}
  .official-logo{width:35px;height:35px}
  .lang-switch button{padding:8px 8px}
  .header-instagram{width:28px;flex-basis:28px}
  .site-header .about-btn{width:28px}
}

/* v13 — map attribution in the quiet footer */
.minimal-footer{flex-wrap:wrap;gap:4px 12px;text-align:center}
.minimal-footer .map-credits{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:center;font-size:10px;color:#778c8e}
.minimal-footer .map-credits a{text-decoration:underline;text-decoration-color:#bdc9c9;text-underline-offset:2px}
.minimal-footer .map-credits a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.minimal-footer .footer-separator{color:#b6c3c1}
@media(max-width:720px){.minimal-footer{gap:3px 8px;flex-direction:column!important;min-height:74px!important;padding-top:9px!important;padding-bottom:calc(12px + env(safe-area-inset-bottom))!important}.minimal-footer .footer-separator{display:none}.minimal-footer .map-credits{font-size:9px;line-height:1.3}}

/* v14: meaningful expand-map control, including iOS Safari. */
body.map-expanded{overflow:hidden!important;touch-action:auto}
body.map-expanded .map-panel{
  position:fixed!important;inset:0!important;left:0!important;top:0!important;
  width:100vw!important;height:100dvh!important;min-height:0!important;
  max-height:none!important;z-index:3000!important;
}
body.map-expanded .map-toolbar{top:calc(12px + env(safe-area-inset-top));right:12px;bottom:auto!important}
body.map-expanded #fit-map{font-size:29px!important;font-weight:400}
body.map-expanded .sidebar{z-index:3100!important}
body.map-expanded .map-panel .selected-card:not([hidden]){
  bottom:calc(80px + env(safe-area-inset-bottom))!important;
}
@media(min-width:721px){
  body.map-expanded .selected-card:not([hidden]){bottom:26px!important}
}
