/* 101 Reykjavík V2.0 — "Light up 101" live map + promoted slots */
.map101{--lit:#27e3f2;position:relative;overflow:hidden;overflow:clip;padding:76px 0 70px;background:radial-gradient(1200px 500px at 70% -10%,#12305299,transparent 70%),radial-gradient(900px 500px at 0% 100%,#2a0f3f80,transparent 70%),#060c18;border-top:1px solid #1d2e45;border-bottom:1px solid #1d2e45;color:#eef5ff}
.map101 .wrap{position:relative;z-index:1}
.map101-aurora{position:absolute;inset:-40px -10% auto;height:260px;pointer-events:none;opacity:.5;filter:blur(40px);background:linear-gradient(100deg,transparent 5%,#19e6c955 25%,#5d7bff44 45%,#ff3d9a33 62%,transparent 85%);background-size:200% 100%;animation:aurora 18s ease-in-out infinite alternate}
@keyframes aurora{from{background-position:0% 0;transform:skewY(-2deg)}to{background-position:100% 0;transform:skewY(2deg)}}
.map101-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:22px}
.map101-head h2{font-family:'Archivo Black',Impact,sans-serif;font-size:clamp(38px,6vw,76px);letter-spacing:-2px;line-height:.95;margin:12px 0 14px}
.map101-head h2 em{font-style:normal;color:var(--lit);text-shadow:0 0 28px var(--lit);transition:color .6s,text-shadow .6s}
.map101-head p{max-width:560px;color:#a9b9cc;line-height:1.6;margin:0}
.map-sun{display:flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid #29405c;border-radius:999px;background:#0c1729cc;font-size:13px;color:#b9c9dc;white-space:nowrap}
.map-sun b{color:#fff;font-size:15px;letter-spacing:.04em}
.sun-dot{width:10px;height:10px;border-radius:50%;background:#ffb547;box-shadow:0 0 12px #ffb547}
.sun-dot.is-night{background:#cfe3ff;box-shadow:0 0 12px #8fc4ff}

/* Top slot: featured ticker */
.promo-ticker{display:flex;align-items:stretch;border:1px solid #273c57;border-radius:12px;background:#0b1526;overflow:hidden;margin-bottom:18px}
.tk-label{flex:none;display:flex;align-items:center;gap:6px;padding:0 16px;font-size:11px;font-weight:900;letter-spacing:.14em;color:#06101d;background:linear-gradient(90deg,#ff3d9a,#27e3f2)}
.tk-label em{font-style:normal;font-size:9px;padding:2px 5px;border-radius:4px;background:#06101d;color:#ffd166;letter-spacing:.1em}
.tk-track{flex:1;display:flex;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.tk-run{display:flex;flex:none;animation:ticker 42s linear infinite}
.promo-ticker:hover .tk-run,.promo-ticker:focus-within .tk-run{animation-play-state:paused}
@keyframes ticker{to{transform:translateX(-100%)}}
.tk-item{display:flex;align-items:center;gap:9px;padding:12px 26px 12px 18px;border:0;background:none;color:#dce8f6;font:inherit;font-size:13px;white-space:nowrap;cursor:pointer;border-right:1px solid #1d2d43}
.tk-item i{font-style:normal;color:var(--c);text-shadow:0 0 10px var(--c)}
.tk-item b{color:#fff;letter-spacing:.02em}.tk-item span{color:#90a3ba}
.tk-item:hover b,.tk-item:focus-visible b{color:var(--c)}

/* Layer chips */
.map101 .map-controls{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 18px}
.map101 .map-filter{display:inline-flex;align-items:center;gap:8px;padding:11px 15px;border-radius:999px;border:1px solid #2c4160;background:#0d1828;color:#d7e3f2;font-size:12px;font-weight:800;letter-spacing:.06em;cursor:pointer;transition:border-color .3s,background .3s,box-shadow .3s,color .3s}
.map101 .map-filter .mf-dot{width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}
.map101 .map-filter .mf-n{font-size:10px;padding:1px 6px;border-radius:999px;background:#1b2a40;color:#9fb3cb}
.map101 .map-filter:hover{border-color:var(--c);color:#fff}
.map101 .map-filter.active{background:color-mix(in srgb,var(--c) 18%,#0d1828);border-color:var(--c);color:#fff;box-shadow:0 0 0 1px var(--c) inset,0 0 22px color-mix(in srgb,var(--c) 45%,transparent)}
.map101 .map-filter.active .mf-n{background:var(--c);color:#07101c}

/* Stage */
.map101-stage{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
.map101-main{min-width:0}
.map101-frame{position:relative;border-radius:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--lit) 45%,#1f3049);box-shadow:0 0 0 1px #0007,0 20px 60px #0009,0 0 60px color-mix(in srgb,var(--lit) 22%,transparent);transition:border-color .6s,box-shadow .6s}
#map #city-map{height:620px;min-height:0;border:0;border-radius:0;box-shadow:none;background:#0a0f17!important}
/* OSM tiles → night map: invert, cool navy tint, soft contrast */
#city-map.map-osm .leaflet-tile-pane{filter:grayscale(1) invert(1) brightness(.62) contrast(1.35) sepia(.45) hue-rotate(178deg) saturate(2.2)}
#city-map.map-custom .leaflet-tile-pane{filter:none}
#city-map.map-unavailable{display:flex;align-items:center;justify-content:center;color:#a9b9cc}
#city-map .leaflet-control-attribution{background:#060c18cc;color:#8ea2b9;font-size:10px}
#city-map .leaflet-control-attribution a{color:#9fd8ff}
#city-map .leaflet-control-zoom{border:0;box-shadow:0 6px 20px #0008}
#city-map .leaflet-control-zoom a{background:#0e1b2d;color:#e9faff;border:1px solid #2b4360}

/* Light layers */
#city-map .leaflet-area-pane{mix-blend-mode:screen}
#city-map .leaflet-area-pane>svg{filter:blur(26px)}
#city-map .leaflet-halo-pane{mix-blend-mode:screen}
#city-map .leaflet-halo-pane>svg{filter:blur(6px)}
#city-map .leaflet-lake-pane>svg{filter:drop-shadow(0 0 6px #49d2ff88)}
#city-map .leaflet-labels-pane{opacity:.9}
#city-map .leaflet-comet-pane>svg{filter:blur(1.5px)}
.district{fill:var(--lit);fill-opacity:.07;transition:fill-opacity .8s}
#city-map.cat-all .district{fill-opacity:.13}
.lake{stroke-opacity:.25;fill-opacity:.05;transition:stroke-opacity .8s,fill-opacity .8s}
#city-map.cat-all .lake{stroke-opacity:.45;fill-opacity:.08}
#city-map.cat-culture .lake,#city-map.cat-activities .lake{stroke:var(--lit);stroke-opacity:.95;fill:var(--lit);fill-opacity:.16;animation:lake 4s ease-in-out infinite}
@keyframes lake{50%{fill-opacity:.28}}
.spot{fill-opacity:0;transition:fill-opacity .9s ease}
.spot.is-lit{fill-opacity:.6;animation:breathe 5.5s ease-in-out infinite}
#city-map.cat-all .spot.is-lit{fill-opacity:.3}
@keyframes breathe{0%,100%{opacity:.7}50%{opacity:1}}
.st-core{stroke:#3d5a7d;stroke-opacity:.32;stroke-width:3px;transition:stroke .6s,stroke-opacity .6s,stroke-width .3s;cursor:pointer}
.st-core.is-lit{stroke:var(--lit);stroke-opacity:1;stroke-width:4px}
.st-core.is-hover{stroke:#fff;stroke-width:6px}
.st-halo{stroke:var(--lit);stroke-opacity:0;transition:stroke-opacity .8s,stroke-width .3s}
.st-halo.is-lit{stroke-opacity:.8}
#city-map.cat-all .st-halo.is-lit{stroke-opacity:.45}
.st-halo.is-hover{stroke-opacity:1;stroke-width:28px}
.st-flow{stroke:#fff;stroke-opacity:0;transition:stroke-opacity .6s}
.st-flow.is-lit{stroke-opacity:.95;animation:stflow 1.5s linear infinite}
#city-map.cat-all .st-flow.is-lit{stroke-opacity:.55;animation-duration:2.6s}
@keyframes stflow{to{stroke-dashoffset:-46}}

/* Landmarks */
.lm{pointer-events:none}
.lm i{position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:#e9f6ff;box-shadow:0 0 8px #bfe6ff}
.lm span{position:absolute;left:8px;top:-8px;white-space:nowrap;font:800 10px/1 'DM Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#d8ecff;text-shadow:0 0 6px #000,0 0 14px #000}

/* Promoted pins */
.pp-wrap{background:none;border:0}
.pp{position:absolute;left:0;top:0;--c:#27e3f2;transition:opacity .5s,filter .5s}
.pp-dot{position:absolute;left:-8px;top:-8px;width:16px;height:16px;border-radius:50%;background:var(--c);border:2px solid #fff;box-shadow:0 0 0 3px #0008,0 0 18px var(--c);display:grid;place-items:center;font-size:12px;color:#06101d;font-weight:900;transition:transform .25s}
.pp-big .pp-dot{left:-15px;top:-15px;width:30px;height:30px;font-size:15px}
.pp-ring{position:absolute;left:-8px;top:-8px;width:16px;height:16px;border-radius:50%;border:2px solid var(--c);animation:ring 2.4s ease-out infinite}
.pp-big .pp-ring{left:-15px;top:-15px;width:30px;height:30px}
@keyframes ring{from{transform:scale(1);opacity:.9}to{transform:scale(3.2);opacity:0}}
.pp-name{position:absolute;left:14px;top:-12px;white-space:nowrap;padding:5px 9px;border-radius:7px;background:#07101ce8;border:1px solid var(--c);color:#fff;font:800 11px/1.1 'DM Sans',sans-serif;letter-spacing:.03em;opacity:0;transform:translateX(-4px);transition:opacity .25s,transform .25s;pointer-events:none;box-shadow:0 6px 16px #0009}
.pp-big .pp-name{left:22px;top:-13px;opacity:1;transform:none}
.leaflet-marker-icon:hover .pp-name,.is-hot .pp-name,.is-active .pp-name{opacity:1;transform:none}
.is-hot .pp-dot,.is-active .pp-dot,.leaflet-marker-icon:hover .pp-dot{transform:scale(1.35)}
.is-dim .pp{opacity:.16;filter:grayscale(1)}
.is-dim .pp-ring{animation:none;opacity:0}
.pp-venue .pp-dot{border-radius:4px}
.pp-event .pp-dot{background:#fff;color:var(--c)}

/* Popup + tooltip */
#city-map .pp-popup .leaflet-popup-content-wrapper{padding:0;border-radius:14px;overflow:hidden;background:#0b1526;color:#eef5ff;border:1px solid #2c4463;box-shadow:0 18px 50px #000b}
#city-map .pp-popup .leaflet-popup-content{margin:0;width:250px!important}
#city-map .pp-popup .leaflet-popup-tip{background:#0b1526;border:1px solid #2c4463}
#city-map .pp-popup a.leaflet-popup-close-button{color:#fff;z-index:2;text-shadow:0 0 6px #000;top:6px;right:6px}
.ppc-img{position:relative;height:120px;background:#14243a center/cover}
.ppc-body{padding:13px 15px 15px}
.ppc-tag,.slot-cat{display:inline-block;font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--c)}
.ppc h4{margin:6px 0 5px;font-family:'Archivo Black',Impact,sans-serif;font-size:18px;letter-spacing:-.3px;color:#fff}
.ppc p{margin:0 0 8px;font-size:13px;line-height:1.45;color:#b7c6d8}
.ppc-meta{font-size:12px;color:#8ea2b9}
.ppc-offer{margin-top:9px;display:inline-block;font-size:11px;font-weight:800;padding:4px 8px;border-radius:6px;background:#ffd16622;color:#ffd166}
.ppc-cta{display:inline-block;margin-top:10px;font-size:12px;font-weight:900;color:#27e3f2}
.mock-badge{position:absolute;left:8px;top:8px;z-index:1;font:900 9px/1 'DM Sans',sans-serif;letter-spacing:.14em;padding:4px 6px;border-radius:4px;background:#ffd166;color:#1a1300}
.mock-badge.is-sponsor{background:#07101cd0;color:#cfe0f3;border:1px solid #ffffff33}
.bn-kicker .mock-badge{position:static;display:inline-block;margin-left:8px;vertical-align:middle}
#city-map .leaflet-tooltip.st-tip{background:#07101cf0;border:1px solid var(--lit);color:#dbe7f5;border-radius:9px;padding:8px 11px;box-shadow:0 8px 24px #000a;max-width:240px;white-space:normal}
.st-tip strong{display:block;color:#fff;font-size:13px;margin-bottom:2px}.st-tip span{font-size:12px;color:#a9bbd0}
#city-map .leaflet-tooltip.st-tip:before{display:none}

/* Comet */
.comet i{position:absolute;left:-7px;top:-7px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--lit) 60%,transparent),0 0 26px 8px var(--lit)}
.comet-trail{stroke:var(--lit);stroke-opacity:.85}

/* HUD over the map */
.map-hud{position:absolute;left:14px;top:14px;z-index:900;width:290px;padding:16px 16px 14px;border-radius:14px;background:#07101cd6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid #ffffff1c;box-shadow:0 12px 40px #000a}
.hud-live{display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:900;letter-spacing:.16em;color:var(--lit)}
.hud-live i{width:7px;height:7px;border-radius:50%;background:var(--lit);box-shadow:0 0 10px var(--lit);animation:blink 1.6s ease-in-out infinite}
@keyframes blink{50%{opacity:.3}}
.map-hud h3{margin:8px 0 6px;font-family:'Archivo Black',Impact,sans-serif;font-size:22px;letter-spacing:-.3px;color:#fff}
.map-hud p{margin:0 0 10px;font-size:13px;line-height:1.5;color:#b3c3d6}
.hud-stats{font-size:12px;color:#8fa4bc;margin-bottom:12px}.hud-stats b{color:#fff}
.hud-actions{display:flex;gap:8px}
.hud-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--lit);background:color-mix(in srgb,var(--lit) 20%,#0a1424);color:#fff;font:900 11px/1 'DM Sans',sans-serif;letter-spacing:.12em;cursor:pointer;transition:background .3s,box-shadow .3s}
.hud-btn:hover,.hud-btn.is-on{background:var(--lit);color:#06101d;box-shadow:0 0 22px var(--lit)}
.hud-btn--ghost{flex:none;width:40px;border-color:#33506f;background:#0d1a2c;font-size:16px}
.map101 button:focus-visible,.slot-card:focus-visible,.map101 a:focus-visible{outline:2px solid var(--lit);outline-offset:3px}

/* Street chips */
.map-streets{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.street-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:8px;border:1px solid #243952;background:#0b1526;color:#d3e0ef;font:700 12px/1 'DM Sans',sans-serif;cursor:pointer;transition:border-color .2s,background .2s}
.street-chip i{width:14px;height:3px;border-radius:2px;background:var(--lit);box-shadow:0 0 8px var(--lit)}
.street-chip small{color:#7d91a9;font-weight:600}
.street-chip:hover,.street-chip.is-hover{border-color:var(--lit);background:#12213a}
.map-note{margin:12px 0 0;font-size:12px;color:#6f839b}

/* Side rail slots */
.map101-rail{min-width:0}
.rail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.rail-head .kicker{color:var(--lit);transition:color .5s}
.rail-ad{font-size:11px;font-weight:900;letter-spacing:.1em;color:#8ea2b9}
.rail-ad:hover{color:#fff}
.rail-list{display:flex;flex-direction:column;gap:10px;max-height:650px;overflow:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:#2a3f5a transparent}
.slot-card{--c:#27e3f2;flex:none;display:grid;grid-template-columns:92px 1fr;border-radius:12px;overflow:hidden;background:#0c1729;border:1px solid #20334b;cursor:pointer;transition:transform .25s,border-color .25s,box-shadow .25s;animation:slotIn .5s ease both}
.slot-card:nth-child(2){animation-delay:.05s}.slot-card:nth-child(3){animation-delay:.1s}.slot-card:nth-child(4){animation-delay:.15s}.slot-card:nth-child(5){animation-delay:.2s}.slot-card:nth-child(6){animation-delay:.25s}
@keyframes slotIn{from{opacity:0;transform:translateY(8px)}}
.slot-card:hover,.slot-card.is-active{border-color:var(--c);box-shadow:0 0 24px color-mix(in srgb,var(--c) 35%,transparent);transform:translateX(-3px)}
.slot-img{position:relative;background:#14243a center/cover;min-height:84px}
.slot-img .mock-badge{left:6px;top:6px;font-size:8px}
.slot-body{padding:11px 12px;min-width:0}
.slot-body h4{margin:4px 0 5px;font-size:15px;line-height:1.2;color:#fff}
.slot-meta{display:flex;align-items:center;gap:5px;font-size:11px;color:#8ea2b9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slot-pin{flex:none;width:6px;height:6px;border-radius:50%;background:var(--c);box-shadow:0 0 6px var(--c)}
.slot-card--lead{grid-template-columns:1fr;background:linear-gradient(180deg,#0f1d33,#0b1526)}
.slot-card--lead .slot-img{min-height:170px}
.slot-card--lead .slot-body{padding:14px 15px 16px}
.slot-card--lead h4{font-family:'Archivo Black',Impact,sans-serif;font-size:21px;letter-spacing:-.3px}
.slot-card--lead p{margin:0 0 9px;font-size:13px;line-height:1.45;color:#b5c4d6}
.slot-tier{position:absolute;right:8px;top:8px;font:900 9px/1 'DM Sans',sans-serif;letter-spacing:.16em;padding:5px 7px;border-radius:4px;background:var(--c);color:#06101d}
.slot-offer{display:inline-block;margin-top:9px;font-size:11px;font-weight:800;padding:4px 8px;border-radius:6px;background:#ffd16622;color:#ffd166}
.slot-cta,.slot-empty{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:12px;border:1px dashed #36506f;color:#a9bbd0;text-align:center;font-size:12px}
.slot-cta b,.slot-empty b{color:#fff;letter-spacing:.1em;font-size:12px}
.slot-cta:hover{border-color:var(--lit);color:#fff}

/* Bottom slot: wide banner */
.promo-banner{display:grid;grid-template-columns:1.1fr 1fr;margin-top:26px;border-radius:16px;overflow:hidden;border:1px solid #2b3f5c;background:#0b1526;min-height:220px}
.promo-banner[hidden]{display:none}
.bn-img{background:#14243a center/cover;min-height:200px;position:relative}
.bn-img:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,#0b1526)}
.bn-copy{padding:28px 30px;display:flex;flex-direction:column;justify-content:center}
.bn-kicker{font-size:11px;font-weight:900;letter-spacing:.16em;color:#5cf0a8}
.bn-copy h3{margin:10px 0 8px;font-family:'Archivo Black',Impact,sans-serif;font-size:clamp(24px,3vw,34px);letter-spacing:-.5px;color:#fff}
.bn-copy p{margin:0 0 18px;color:#b3c3d6;line-height:1.55}
.bn-actions{display:flex;gap:10px;flex-wrap:wrap}

/* Partner picks section (formerly an empty slot) */
.partner-picks{padding-top:70px;padding-bottom:70px;color:#f5f7ff}
.partner-picks .section-head h2 em{color:#ff489c}
.picks-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.pick{--c:#27e3f2;border-radius:14px;overflow:hidden;background:#0f1a2c;border:1px solid #233650;transition:transform .25s,border-color .25s}
.pick:hover{transform:translateY(-5px);border-color:var(--c)}
.pick-img{position:relative;aspect-ratio:3/2;background:#14243a center/cover}
.pick-body{padding:15px 16px 18px}
.pick-body h4{margin:5px 0 6px;font-size:17px;color:#fff}
.pick-body p{margin:0 0 12px;font-size:13px;line-height:1.5;color:#a9b9cc}
.pick-btn{border:0;background:none;padding:0;color:var(--c);font:900 11px/1 'DM Sans',sans-serif;letter-spacing:.12em;cursor:pointer}
.empty-map-link{margin-top:16px}

/* Responsive */
@media(max-width:1060px){.map101-stage{grid-template-columns:minmax(0,1fr) 290px}.picks-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
 .map101{padding:52px 0 50px}
 .map101-stage{grid-template-columns:minmax(0,1fr)}
 #map #city-map{height:460px}
 .map-hud{position:relative;left:auto;top:auto;width:auto;border-radius:0;border:0;border-top:1px solid #ffffff1c;background:#0a1424;backdrop-filter:none}
 .map101 .map-controls{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;margin-left:-20px;margin-right:-20px;padding:2px 20px 6px;scrollbar-width:none}
 .map101 .map-controls::-webkit-scrollbar{display:none}
 .map101 .map-filter{flex:none;scroll-snap-align:start}
 .rail-list{flex-direction:row;max-height:none;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -20px;padding:2px 20px 10px}
 .slot-card,.slot-cta{flex:0 0 250px;scroll-snap-align:start;grid-template-columns:1fr}
 .slot-card .slot-img{min-height:130px}
 .slot-card:hover,.slot-card.is-active{transform:none}
 .slot-cta{justify-content:center}
 .promo-banner{grid-template-columns:1fr}
 .bn-img:after{background:linear-gradient(180deg,transparent 55%,#0b1526)}
 .bn-copy{padding:20px}
}
@media(max-width:600px){
 #map #city-map{height:400px}
 .map-sun{white-space:normal;border-radius:12px}
 .tk-label{padding:0 10px;font-size:10px}
 .lm span{font-size:9px}
 .picks-grid{grid-template-columns:minmax(0,1fr)}
 .street-chip small{display:none}
}
@media(prefers-reduced-motion:reduce){
 .map101-aurora,.tk-run,.pp-ring,.st-flow.is-lit,.spot.is-lit,.hud-live i,.slot-card,#city-map.cat-culture .lake,#city-map.cat-activities .lake{animation:none!important}
 .tk-track{overflow-x:auto}
}

/* Local hero slot (no map pin) */
.mock-badge.is-hero{background:#ffd166;color:#1a1300}
.slot-card--nopin{cursor:default}
.slot-card--nopin:hover{transform:none}
