/* Coverage map: Google's keyless embed (light), with the 20-mile ring and town pins drawn over it.
   The embed takes no clicks, so it never pans away from the overlay; a click on open map opens
   Google Maps itself. Pins: a pill where Google already prints the town's name (it sits over
   Google's label), a dot on the exact spot where Google prints nothing at that zoom. */
.gmap{position:relative;height:470px;width:100%;border-radius:var(--r-lg,24px);border:1px solid var(--line,#2B2B2B);overflow:hidden;overflow:clip;background:#D1F7E1;box-shadow:0 18px 50px rgba(0,0,0,.4);isolation:isolate}
.gmap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;pointer-events:none}
.gmap-hit{position:absolute;inset:0;z-index:1}
/* The ring never touches Google's logo or attribution; its LINE also breaks where it would cross
   Google's chip and controls, so it reads as passing under them. gmap.js swaps these coarse clips
   for the controls' exact footprints at the map's real size; these are the no-script fallback. */
.gmap-ring{position:absolute;inset:0;z-index:2;pointer-events:none}
.gmap-ring svg{position:absolute;left:50%;top:50%;overflow:visible}
.gmap-ring--fill{clip-path:polygon(0 0,100% 0,100% calc(100% - 20px),calc(50% + 38px) calc(100% - 20px),calc(50% + 38px) calc(100% - 44px),calc(50% - 38px) calc(100% - 44px),calc(50% - 38px) calc(100% - 20px),0 calc(100% - 20px))}
.gmap-ring--line{clip-path:polygon(150px 0,100% 0,100% calc(100% - 78px),calc(100% - 62px) calc(100% - 78px),calc(100% - 62px) calc(100% - 20px),calc(50% + 38px) calc(100% - 20px),calc(50% + 38px) calc(100% - 44px),calc(50% - 38px) calc(100% - 44px),calc(50% - 38px) calc(100% - 20px),64px calc(100% - 20px),64px calc(100% - 64px),0 calc(100% - 64px),0 50px,150px 50px)}
.gmap-ring--fill path{fill:rgba(253,27,24,.06);stroke:none}
.gmap-ring--line path{fill:none;stroke:var(--flame,#FD1B18);stroke-width:2.5;stroke-linejoin:round}
.gmap-ring--line path.halo{stroke:#0A0A0A;stroke-opacity:.5;stroke-width:5}

.gp{position:absolute;z-index:3;left:calc(50% + var(--x));top:calc(50% + var(--y));text-decoration:none;
  font-family:'Anton',Impact,sans-serif;font-synthesis-weight:none;font-weight:400;font-size:12px;line-height:1;letter-spacing:.03em;white-space:nowrap}
.gp[hidden]{display:none}
.gp--town,.gp--base{transform:translate(-50%,-50%);padding:4px 6px;text-align:center;border-radius:6px;background:#0A0A0A;color:#FFFFFF;border:1.5px solid #0A0A0A;box-shadow:0 1px 4px rgba(0,0,0,.35);transition:background .2s,border-color .2s}
.gp--base{background:var(--flame-deep,#DC0404);border-color:#FFFFFF;box-shadow:0 0 0 1.5px #0A0A0A,0 2px 6px rgba(0,0,0,.4);z-index:4}
.gp--town:hover,.gp--town:focus-visible{background:var(--flame-deep,#DC0404);border-color:var(--flame-deep,#DC0404)}
.gp--base:hover,.gp--base:focus-visible{background:var(--flame-press,#B80303)}
.gp.is-here{border-color:var(--flame,#FD1B18);box-shadow:0 0 0 2px #FFFFFF,0 1px 4px rgba(0,0,0,.35)}
.gp:focus-visible{outline:3px solid #0A0A0A;outline-offset:3px}
/* dot pin: the element sits exactly on the town's coordinate; the dot is centred on it */
.gp--dot{width:0;height:0}
.gp--dot i{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;background:var(--flame,#FD1B18);border:2px solid #0A0A0A;box-shadow:0 0 0 2px #FFFFFF;transition:transform .15s}
.gp--dot i::before{content:"";position:absolute;inset:-8px}
.gp--dot:hover i,.gp--dot:focus-visible i{transform:scale(1.2)}
.gp--dot:focus-visible{outline:0}
.gp--dot:focus-visible i{outline:3px solid #0A0A0A;outline-offset:3px}
.gp-lab{position:absolute;padding:4px 6px;border-radius:6px;background:rgba(10,10,10,.9);color:#FFFFFF;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.gp--dot[data-side=r] .gp-lab,.gp--dot[data-side=none] .gp-lab{left:10px;top:0;transform:translateY(-50%)}
.gp--dot[data-side=l] .gp-lab{right:10px;top:0;transform:translateY(-50%)}
.gp--dot[data-side=t] .gp-lab{bottom:10px;left:0;transform:translateX(-50%)}
.gp--dot[data-side=b] .gp-lab{top:10px;left:0;transform:translateX(-50%)}
.gp--dot[data-side=none] .gp-lab{visibility:hidden}
.gp--dot[data-side=none]:hover .gp-lab,.gp--dot[data-side=none]:focus-visible .gp-lab{visibility:visible;z-index:6}
.gp--dot:hover .gp-lab,.gp--dot:focus-visible .gp-lab,.gp--dot.is-here .gp-lab{background:var(--flame-deep,#DC0404)}

.gmap-open{display:inline-flex;align-items:center;gap:.4rem;margin-top:.55rem;color:var(--flame,#FD1B18);font-weight:700;font-size:.92rem;text-decoration:underline;text-underline-offset:3px}
.gmap-open:hover{color:var(--ink,#F2F2F2)}
.gmap-open svg{width:14px;height:14px;flex-shrink:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:640px){.gmap{height:370px}}
@media(prefers-reduced-motion:reduce){.gp,.gp--town,.gp--base,.gp--dot i{transition:none}.gp--dot:hover i,.gp--dot:focus-visible i{transform:none}}
