/* Only the map extends beyond the shared reading width. */
.places-map-canvas {
  --place-dot-radius: 4px;
  --place-ring-radius: 9px;
  --alaska-inset-width: 0.35;
  position: relative;
  /* 85% of the previous viewport-wide map. */
  width: min(1360px, calc((100vw - 2rem) * 0.85));
  aspect-ratio: 975 / 690;
  margin: 2em 0 1.5em 50%;
  transform: translateX(-50%);
}
/* The map overview uses whitespace instead of horizontal dividers. */
body:has(> .places-index) > nav > hr,
.places-index + footer > hr { display: none; }
.places-map { position: relative; }
.places-map-base { display: block; width: 100%; height: auto; }
.places-map-markers { position: absolute; inset: 0; width: 100%; height: 100%; }
.place-marker { color: #262626; cursor: pointer; pointer-events: auto; }
/* Large transparent targets are clipped at the midpoint between neighbors. */
.place-marker-hit { fill: transparent; stroke: transparent; stroke-width: 24px; }
.place-marker-dot { r: var(--place-dot-radius); fill: #3b6ea8; pointer-events: none; }
.place-marker-ring { r: var(--place-ring-radius); pointer-events: none; fill: white; stroke: currentColor; stroke-width: 1.5px; opacity: 0; }
.place-marker-label {
  fill: #3b6ea8;
  font-size: 15px;
  font-weight: 600;
  paint-order: stroke;
  stroke: white;
  stroke-width: 5px;
  stroke-linejoin: round;
  opacity: 0;
  pointer-events: none;
}
.place-marker:hover .place-marker-ring,
.place-marker:focus .place-marker-ring { opacity: 1; }
.place-marker:hover .place-marker-label,
.place-marker:focus .place-marker-label { opacity: 1; }
.place-marker:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
/* Each inset keeps its own matching image/marker coordinate system. */
.places-region-alaska {
  position: absolute;
  left: 2%;
  bottom: 2%;
  width: calc(100% * var(--alaska-inset-width));
  /* Blank inset space must not block mainland links underneath. */
  pointer-events: none;
}
/* Match mainland marker sizes: 600-unit inset versus 975-unit mainland. */
.places-region-alaska .place-marker-dot {
  r: calc(var(--place-dot-radius) * 600 / 975 / var(--alaska-inset-width));
}
.places-region-alaska .place-marker-ring {
  r: calc(var(--place-ring-radius) * 600 / 975 / var(--alaska-inset-width));
}
.places-region-alaska .place-marker-label { font-size: 23px; }
.places-region-label {
  margin: 0;
  padding-inline-start: 20%;
  text-align: center;
  color: #595959;
  font-size: 0.9375em;
}
.place-detail h1 { margin-bottom: 0.25em; }
.place-back { margin: 1.5em 0; }
.place-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 2em 24px; margin: 2em 0; }
/* Explicit one-pixel rows let photos fill each column independently. */
.place-gallery-masonry { grid-auto-rows: 1px; row-gap: 0; }
.place-gallery figure { margin: 0; min-width: 0; }
.place-photo-leading { grid-column: 1 / -1; }
.place-gallery img { display: block; width: 100%; height: auto; }
.places-index, .place-detail { overflow-wrap: anywhere; }
@media (max-width: 560px) {
  .places-map-canvas {
    --place-dot-radius: 7px;
    --place-ring-radius: 15px;
    --alaska-inset-width: 0.45;
    aspect-ratio: 975 / 800;
  }
  .places-region-label { padding-inline-start: 0; }
  .places-region-alaska .place-marker-label { font-size: 53px; }
  .place-marker-label { font-size: 28px; }
  .place-gallery { grid-template-columns: minmax(0, 1fr); }
}
