.club-map {
  display:flex; flex-direction:column; min-width:0; margin:0; border:1px solid #c6c3b7; background:#eeece3;
}
.club-map-viewport {
  position:relative; flex:1 0 auto; width:100%; min-height:clamp(20rem,32vw,29rem);
  isolation:isolate; overflow:hidden; background:#eeece3;
}
.club-map-canvas, .club-map-preview, .fs-section .club-map-geometry {
  position:absolute; inset:0; display:block; width:100%; height:100%; max-width:none;
}
.club-map-canvas { z-index:0; }
.club-map-canvas.leaflet-container {
  background:#b9d9de; font-family:"Club Georgian",Arial,sans-serif;
}
.club-map-preview { z-index:1; pointer-events:none; }
.club-map-labels {
  font:600 11px/1 "Club Georgian",Arial,sans-serif; fill:#585347; stroke:#f7f3e7;
  stroke-width:2.8px; stroke-linejoin:round; paint-order:stroke fill;
}
.club-map-river { fill:#325e68; stroke:#c6dce0; font-style:italic; }
.club-map-marker { position:absolute; left:50%; top:50%; width:0; height:0; }
.club-map-marker, .club-map-site-pin, .club-atlas-label { pointer-events:none; }
.club-map-marker::before, .club-map-site-pin::before {
  content:""; position:absolute; left:0; top:0; width:13px; height:13px; box-sizing:border-box;
  transform:translate(-50%,-50%); border-radius:50%; background:#ec3f37; border:2px solid #fffaf0;
  box-shadow:0 0 0 1.5px #252622,0 0 0 6px rgb(221 61 46 / .16);
}
.club-map-marker span, .club-map-site-pin span {
  position:absolute; left:0; bottom:12px; transform:translateX(-50%); padding:6px 10px 5px;
  background:#232622; color:white; box-shadow:0 2px 3px #29292324; white-space:nowrap;
  font:italic 900 17px/.97 var(--display,"Arial Narrow",sans-serif); letter-spacing:.02em;
}
.club-map-marker span::after, .club-map-site-pin span::after {
  content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%);
  border-inline:5px solid transparent; border-top:7px solid #232622;
}
.club-map-wide .club-map-site-pin span { font-size:14px; padding:4px 7px; }
.club-atlas-label span {
  position:absolute; left:0; top:0; transform:translate(-50%,-50%); white-space:nowrap;
  font:600 12px/1.16 "Club Georgian",Arial,sans-serif; color:#4c4d45;
  text-shadow:0 1px 2px #fff,1px 0 2px #fff,0 -1px 2px #fff,-1px 0 2px #fff;
}
.club-atlas-label .club-label-country, .club-atlas-label .club-label-continent { color:#525944; font-weight:750; letter-spacing:.035em; }
.club-atlas-label .club-label-sea { color:#426b7a; font-style:italic; }
.club-map-zoom { position:absolute; z-index:2; top:12px; right:12px; display:flex; border:1px solid #8d8b7f; background:#fffcf4; box-shadow:0 1px 5px #29292316; }
.club-map-zoom button {
  display:grid; place-items:center; width:44px; height:44px; padding:0;
  border:0; background:#fffcf4; color:#2a2b26; font:500 23px/1 Arial,sans-serif;
}
.club-map-zoom button+button { border-inline-start:1px solid #c5c2b4; }
.club-map-zoom button:disabled { color:#8c8a7e; background:#edeae0; }
.club-map button:focus-visible { position:relative; outline:2px solid #b52924; outline-offset:-3px; }
.club-map-canvas:focus-visible { outline:3px solid #ae3027; outline-offset:-3px; }
@media(hover:hover){.club-map-zoom button:not(:disabled):hover,.club-map-views button:hover{background:#ebe8dd}}
.club-map .leaflet-control-scale { margin:0 0 10px 12px; }
.club-map .leaflet-control-scale-line { border:solid #55584e; border-width:0 1px 2px; background:#fffdf2df; color:#343a31; line-height:1.25; }
.club-map-views { display:flex; align-items:stretch; flex-wrap:wrap; gap:0; padding:0 5px; border-top:1px solid #c6c4b8; background:#faf8f0; }
.club-map-views button {
  display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:0 11px;
  color:#373b32; font-size:13px; line-height:1.35; font-weight:650; background:transparent;
}
.club-map-views button:first-child { color:#882d27; }
.club-map-views button svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.65; }
.club-map-caption {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:3px 12px;
  min-height:52px; padding:5px 11px; border-top:1px solid #d3d0c3; background:#f4f2e9;
}
.club-map-place { display:inline-flex; align-items:center; gap:8px; color:#31352e; font-size:13px; line-height:1.4; font-weight:650; }
.club-map-place img { display:block; width:61px; height:36px; object-fit:contain; }
.club-map-sources { font-size:10.5px; line-height:1.65; color:#55594f; }
.club-map-sources a { text-decoration:underline; text-underline-offset:2px; }
@media(max-width:780px){.club-map-caption{padding:5px 9px}}
@media(max-width:580px){.club-map-viewport{min-height:20rem}.club-map-views button{padding:0 9px}}
