/* Interactive map v2, 22.10.2026: "The Island Chart". Tokens scoped on .im-root; town colours arrive as --tc. */
.im-root{--im-navy:#142433;--im-ink:#1c2833;--im-ocean:#1a5276;--im-cream:#faf8f5;--im-paper:#fff;--im-sand:#f0ede8;--im-rule:#d8d2c6;--im-muted:#877a64;--im-gold:#d4b254;--im-header:70px;--im-bar-h:56px;--im-map-h:clamp(480px,calc(100vh - 150px),720px);--im-row-h:64px;--im-font-h:"Playfair Display","Playfair Fallback",Georgia,serif;--im-font-b:"DM Sans",system-ui,sans-serif;--im-font-m:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-family:var(--im-font-b);color:var(--im-ink)}
.im-root *,.im-root *::before,.im-root *::after{box-sizing:border-box}
/* plate */
.im-plate{margin:0 calc(50% - 50vw);width:100vw;padding:56px 0 48px}
.im-plate-in{display:grid;grid-template-columns:1fr 420px;gap:48px;align-items:center}
.im-plate .tc-kick{margin:0 0 16px}
.im-root .im-h{font-family:var(--im-font-h);font-weight:400;font-size:clamp(2rem,4.2vw,3.1rem);line-height:1.08;margin:0 0 14px;letter-spacing:0}
.im-root .im-lede{font-family:var(--im-font-h);font-style:italic;font-size:1.15rem;line-height:1.5;margin:0;max-width:36ch}
.im-chart svg{max-width:420px}
.im-chart .im-light{color:rgba(250,248,245,.4)}
.im-chart .im-dot{cursor:pointer;outline:none}
.im-chart .im-dot-c{fill:var(--tc,#d4b254);stroke:var(--im-cream);stroke-width:1}
.im-chart .im-dot-ring{fill:none;stroke:var(--im-cream);stroke-width:1;opacity:0}
.im-chart .im-dot-n{fill:var(--im-cream);font-family:var(--im-font-m);font-size:7px;font-weight:700;stroke:none}
.im-chart .im-dot-l{fill:rgba(250,248,245,.72);font-family:var(--im-font-m);font-size:6.5px;letter-spacing:.12em;text-transform:uppercase;stroke:none}
.im-chart .im-dot:hover .im-dot-c,.im-chart .im-dot:focus-visible .im-dot-c{fill:var(--im-cream)}
.im-chart .im-dot:hover .im-dot-n,.im-chart .im-dot:focus-visible .im-dot-n{fill:var(--im-navy)}
.im-chart .im-dot:focus-visible .im-dot-ring{opacity:1}
.im-chart.has-town .im-dot{opacity:.35}.im-chart.has-town .im-dot.is-on{opacity:1}.im-chart .im-dot.is-on .im-dot-ring{opacity:1}
/* sticky bar */
.im-bar{position:sticky;top:var(--im-header);z-index:30;background:var(--im-cream);border-bottom:1px solid var(--im-rule);margin:0 calc(50% - 50vw);width:100vw}
.im-bar-in{max-width:1200px;margin:0 auto;padding:6px 24px;min-height:var(--im-bar-h);display:flex;align-items:center;gap:16px}
.im-field{display:flex;align-items:center;gap:8px;margin:0}
.im-lab{font-family:var(--im-font-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--im-muted)}
.im-root select{min-height:44px;padding:0 36px 0 12px;border:1px solid var(--im-rule);border-radius:4px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 8l5 5 5-5' fill='none' stroke='%231c2833' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 10px center/14px;color:var(--im-ink);font:500 15px/1.2 var(--im-font-b);appearance:none;-webkit-appearance:none;max-width:260px}
.im-root select:focus-visible{outline:2px solid var(--im-ocean);outline-offset:2px}
.im-status{flex:1 1 auto;margin:0;font-size:14px;color:var(--im-muted)!important;font-variant-numeric:tabular-nums;min-width:0}
.im-skip{display:none}
.im-reset{min-height:44px;padding:0 18px;border:1px solid var(--im-ocean);border-radius:999px;background:transparent;color:var(--im-ocean);font:600 14px/1 var(--im-font-b);cursor:pointer}
.im-reset:hover{background:var(--im-ocean);color:#fff}
.im-reset[aria-disabled="true"]{opacity:.45;cursor:default;pointer-events:none}
.im-reset:focus-visible{outline:2px solid var(--im-ocean);outline-offset:2px}
/* work area */
.im-work{max-width:1200px;margin:24px auto 0;padding:0 24px;display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:24px;align-items:start}
.im-map-frame{position:sticky;top:calc(var(--im-header) + var(--im-bar-h) + 8px);border:1px solid var(--im-rule);box-shadow:inset 0 0 0 1px var(--im-cream);background:var(--im-sand)}
.im-map{height:var(--im-map-h);width:100%;background:var(--im-sand);outline:none}
.im-map:focus-visible{outline:2px solid var(--im-ocean);outline-offset:-2px}
.im-map-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:2;pointer-events:none;color:var(--im-muted)}
.im-map-state svg{width:220px;height:auto;fill:none;stroke:var(--im-ink);stroke-width:1;opacity:.28}
.im-map-state span{font-family:var(--im-font-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;max-width:30ch;text-align:center}
.im-map-state a{color:var(--im-ocean)}
.im-map-frame.is-ready .im-map-state{display:none}
.im-map-frame.is-error .im-map-state{display:flex;pointer-events:auto}
.im-hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);margin:0;padding:8px 12px;background:rgba(250,248,245,.92);border:1px solid var(--im-rule);font-family:var(--im-font-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--im-ink)!important;z-index:450;pointer-events:none}
/* leaflet skin */
.im-map .leaflet-tile-pane{filter:saturate(.3) contrast(.9) brightness(1.03) sepia(.14)}
.im-map .leaflet-control-attribution{font:11px/1.4 var(--im-font-b);color:var(--im-ink);background:rgba(250,248,245,.9)!important;padding:2px 8px}
.im-map .leaflet-control-attribution a{color:var(--im-ocean)!important}
.im-map .leaflet-attribution-flag{display:none!important}
.im-map .leaflet-control-zoom{border:1px solid var(--im-rule)!important;box-shadow:none!important;border-radius:4px!important;overflow:hidden}
.im-map .leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important;font-size:18px!important;color:var(--im-ink)!important;background:#fff!important;border-bottom:1px solid var(--im-rule)!important}
.im-map .leaflet-control-zoom a:last-child{border-bottom:0!important}
.im-map .leaflet-control-zoom a:hover{background:var(--im-cream)!important}
.im-map .leaflet-marker-icon:focus-visible,.im-map .marker-cluster:focus-visible{outline:2px solid var(--im-ocean);outline-offset:2px}
.im-pin{width:44px;height:44px;display:flex;align-items:center;justify-content:center}
.im-pin i{display:block;width:14px;height:14px;border-radius:50%;background:var(--tc,#1c2833);box-shadow:0 0 0 2px var(--im-cream),0 0 0 3px rgba(28,40,51,.25);transition:width .15s,height .15s}
.im-pin:hover i,.leaflet-marker-icon:focus-visible .im-pin i{width:18px;height:18px}
.im-pin.is-on i{width:18px;height:18px;box-shadow:0 0 0 2px var(--im-cream),0 0 0 3px rgba(28,40,51,.25),0 0 0 8px color-mix(in srgb,var(--tc,#1c2833) 18%,transparent)}
.im-lh{width:36px;height:36px;border-radius:50%;background:var(--im-cream);border:2px solid var(--tc,#1a5276);display:flex;align-items:center;justify-content:center;color:var(--im-ink)}
.im-lh svg{width:16px;height:24px;display:block}
.im-lh.is-on{box-shadow:0 0 0 6px color-mix(in srgb,var(--tc,#1a5276) 18%,transparent)}
.im-map .marker-cluster{background:none!important}
.im-cl{display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--tc,#142433);color:var(--im-cream);font:600 13px/1 var(--im-font-m);box-shadow:0 0 0 2px var(--im-cream)}
.im-cl:hover{background:var(--im-ocean)}
.im-cl-s{width:32px;height:32px}.im-cl-m{width:36px;height:36px}.im-cl-l{width:40px;height:40px}
/* docked card */
.im-card{position:absolute;left:12px;bottom:12px;width:340px;max-width:calc(100% - 24px);z-index:460;background:#fff;border:1px solid var(--im-rule);border-radius:4px}
.im-card-link{display:flex;align-items:center;gap:12px;min-height:96px;padding:12px 52px 12px 12px;color:var(--im-ink);text-decoration:none!important}
.im-card-th{flex:0 0 72px;width:72px;height:72px;background:var(--im-sand);display:flex;align-items:center;justify-content:center;overflow:hidden}
.im-card-th img{width:100%;height:100%;object-fit:cover;display:block}
.im-card-th svg{width:24px;height:36px;color:var(--im-ink)}
.im-card-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.im-card-k{font-family:var(--im-font-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--im-muted)}
.im-card-t{font-family:var(--im-font-h);font-size:16px;line-height:1.25;color:var(--im-ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.im-card-go{position:absolute;right:8px;bottom:8px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--im-ocean)}
.im-card-go svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.im-card-link:hover .im-card-t{text-decoration:underline}
.im-card-x{position:absolute;top:0;right:0;width:44px;height:44px;border:0;background:transparent;color:var(--im-muted);font-size:22px;line-height:1;cursor:pointer}
.im-card-x:hover{color:var(--im-ink)}
.im-card-x:focus-visible,.im-card-link:focus-visible{outline:2px solid var(--im-ocean);outline-offset:-2px}
/* list */
.im-root .im-h2{font-family:var(--im-font-h);font-weight:400;font-size:1.6rem;color:var(--im-ink);margin:0 0 14px;display:flex;align-items:baseline;gap:10px}
.im-n{font-family:var(--im-font-m);font-size:12px;letter-spacing:.14em;color:var(--im-muted)}
.im-group{margin:0 0 22px}
.im-group[hidden]{display:none}
.im-root .im-gh{display:flex;align-items:center;gap:8px;min-height:40px;margin:0;padding:0 0 6px;border-bottom:1px solid var(--im-rule);font-family:var(--im-font-m);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--im-ink);font-weight:600}
.im-gdot{width:10px;height:10px;border-radius:50%;background:var(--tc,#1c2833);flex:0 0 auto}
.im-gsub{color:var(--im-muted);font-weight:400}
.im-gn{margin-left:auto;color:var(--im-muted);font-weight:400;letter-spacing:.08em;text-transform:none}
.im-row{display:grid;grid-template-columns:64px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;min-height:var(--im-row-h);padding:8px 8px 8px 11px;border-left:3px solid transparent;border-bottom:1px solid #ece7df;color:var(--im-ink)!important;text-decoration:none!important}
.im-row[hidden]{display:none}
.im-row img,.im-row-noimg{grid-row:1/3;width:64px;height:48px;object-fit:cover;background:var(--im-sand);display:block}
.im-rt{font-family:var(--im-font-b);font-weight:600;font-size:15px;line-height:1.3;color:var(--im-ink)}
.im-rk{font-family:var(--im-font-m);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--im-muted);margin-top:2px}
.im-row:hover,.im-row.is-on{background:var(--im-cream)}
.im-row.is-on{border-left-color:var(--tc,#1c2833)}
.im-row:focus-visible{outline:2px solid var(--im-ocean);outline-offset:-2px}
.im-root .im-empty{margin:12px 0;padding:14px;border:1px solid var(--im-rule);font-size:15px;color:var(--im-ink)!important;background:var(--im-cream)}
.im-root .im-note{max-width:1152px;margin:20px auto 32px;padding:0 24px;font-size:13px;line-height:1.5;color:var(--im-muted)!important}
@media(max-width:991px){
.im-plate-in{grid-template-columns:1fr;gap:24px}
.im-work{grid-template-columns:1fr}
.im-map-frame{position:relative;top:auto}
.im-root{--im-map-h:clamp(380px,60vh,560px)}
}
@media(max-width:640px){
.im-root{--im-bar-h:88px;--im-map-h:clamp(360px,56vh,480px);--im-row-h:56px}
.im-plate{padding:32px 0 28px}
.im-plate-in{padding:0 16px;gap:20px}
.im-root .im-h{font-size:24px}
.im-root .im-lede{font-size:15px}
.im-chart svg{max-width:342px;width:100%;height:auto}
.im-bar-in{flex-wrap:wrap;gap:8px;padding:8px 16px}
.im-field{flex:1 1 calc(50% - 4px);min-width:0}
.im-lab{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.im-root select{width:100%;max-width:none}
.im-status{flex:1 1 auto;font-size:13px}
.im-skip{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font:600 13px/1 var(--im-font-b);color:var(--im-ocean);text-decoration:underline}
.im-reset{padding:0 14px}
.im-work{padding:0 16px;margin-top:16px;gap:20px}
.im-card{left:12px;right:12px;width:auto}
.im-row{grid-template-columns:56px 1fr}
.im-row img,.im-row-noimg{width:56px;height:42px}
.im-root .im-note{padding:0 16px}
}
@media(prefers-reduced-motion:reduce){.im-root *{transition:none!important}}
