/* Winsor property gallery + location locator (self-contained, no third-party map tiles) */
.winsor-gallery-hero {
  position: relative;
  display: block;
  width: 100%;
  cursor: zoom-in;
  border: 0;
  padding: 0;
  background: none;
}
.winsor-gallery-hero img { display: block; width: 100%; }
.winsor-gallery-count {
  position: absolute;
  right: 14px;
  bottom: 14px;
  background: rgba(27, 42, 74, .86);
  color: #fff;
  font: 500 13px/1.2 Arial, sans-serif;
  letter-spacing: .03em;
  padding: 8px 14px;
  border-radius: 999px;
}
.more-images-collection-list { grid-template-columns: repeat(4, 1fr) !important; }
.more-images-lightbox { cursor: zoom-in; }
.more-images-lightbox .more-images {
  border: 2px solid transparent;
  border-radius: 14px;
  transition: border-color .15s ease, transform .15s ease;
}
.more-images-lightbox:hover .more-images,
.more-images-lightbox:focus-visible .more-images { border-color: #C49A6C; transform: translateY(-2px); }
@media (max-width: 767px) {
  .more-images-collection-list { grid-template-columns: repeat(3, 1fr) !important; }
}

/* Lightbox */
.winsor-lb[hidden], .winsor-lb-btn[hidden] { display: none !important; }
.winsor-lb {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(12, 18, 30, .94);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: zoom-out;
  -webkit-tap-highlight-color: transparent;
}
.winsor-lb-stage { margin: 0; max-width: 92vw; max-height: 86vh; display: flex; align-items: center; }
.winsor-lb-img {
  max-width: 92vw;
  max-height: 82vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .45);
  cursor: zoom-out;
}
.winsor-lb-btn {
  position: absolute;
  z-index: 2;
  border: 1px solid rgba(255, 255, 255, .45);
  background: rgba(27, 42, 74, .72);
  color: #fff;
  border-radius: 999px;
  cursor: pointer;
  font: 400 30px/1 Arial, sans-serif;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s ease;
}
.winsor-lb-btn:hover, .winsor-lb-btn:focus-visible { background: #C49A6C; outline: none; }
.winsor-lb-close { top: 18px; right: 20px; width: 48px; height: 48px; font-size: 30px; }
.winsor-lb-prev, .winsor-lb-next { top: 50%; transform: translateY(-50%); width: 52px; height: 52px; font-size: 34px; }
.winsor-lb-prev { left: 20px; }
.winsor-lb-next { right: 20px; }
.winsor-lb-counter {
  position: absolute;
  bottom: 52px;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font: 500 15px/1.2 Arial, sans-serif;
  letter-spacing: .05em;
  background: rgba(27, 42, 74, .8);
  padding: 8px 18px;
  border-radius: 999px;
  white-space: nowrap;
}
.winsor-lb-hint {
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, .68);
  font: 400 12px/1.4 Arial, sans-serif;
  text-align: center;
  white-space: nowrap;
}
@media (max-width: 600px) {
  .winsor-lb-close { top: 10px; right: 10px; width: 42px; height: 42px; }
  .winsor-lb-prev, .winsor-lb-next { width: 42px; height: 42px; font-size: 28px; }
  .winsor-lb-prev { left: 10px; }
  .winsor-lb-next { right: 10px; }
  .winsor-lb-hint { white-space: normal; width: 90vw; }
}

/* Address / location card */
.winsor-location-card {
  margin: 0 0 32px;
  padding: 26px;
  background: #fff;
  border: 1px solid #E8E1D4;
  border-radius: 20px;
  box-shadow: 0 10px 34px rgba(27, 42, 74, .06);
}
.winsor-location-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.winsor-location-title {
  margin: 0;
  font: 400 24px/1.3 Prata, Georgia, serif;
  /* the display serif ampersand has wide swashes; keep "Address & Location" legible */
  word-spacing: .18em;
  color: #1B2A4A;
}
.winsor-location-postcode {
  font: 600 13px/1.2 Arial, sans-serif;
  letter-spacing: .08em;
  color: #C49A6C;
  background: #F4EFE6;
  padding: 7px 12px;
  border-radius: 999px;
}
.winsor-location-address {
  margin: 0 0 18px;
  font: 400 16px/1.6 Arial, sans-serif;
  color: #1B2A4A;
}
.winsor-location-label {
  display: block;
  font: 600 12px/1.3 Arial, sans-serif;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #8A8577;
  margin: 18px 0 8px;
}
.winsor-stations {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.winsor-stations li {
  background: #F7F4ED;
  border: 1px solid #E8E1D4;
  border-radius: 999px;
  padding: 7px 13px;
  font: 400 13px/1.3 Arial, sans-serif;
  color: #1B2A4A;
}
.winsor-stations .winsor-station-distance { color: #8A8577; margin-left: 6px; }
.winsor-map-note {
  margin: 10px 0 0;
  font: 400 12px/1.5 Arial, sans-serif;
  color: #8A8577;
}

/* Locator map (inline SVG, drawn locally from listing coordinates) */
.winsor-map {
  width: 100%;
  background: #F7F4ED;
  border: 1px solid #E8E1D4;
  border-radius: 14px;
  overflow: hidden;
}
.winsor-map:not(.winsor-map-api) svg { display: block; width: 100%; height: auto; }
/* Real map SDK mode (locator-config.js: mode 'api'). A definite height is
   required — map SDKs render nothing inside a zero-height flex container. */
.winsor-map-api { height: 360px; }
@media (max-width: 767px) { .winsor-map-api { height: 300px; } }
/* mode 'off' leaves a blank area but keeps the address card readable */
.winsor-map[hidden] { display: none !important; }
.winsor-map .wm-grid { stroke: #E3DCCB; stroke-width: 1; }
.winsor-map .wm-river { fill: none; stroke: #BFD7E4; stroke-width: 11; stroke-linecap: round; stroke-linejoin: round; }
.winsor-map .wm-river-edge { fill: none; stroke: #A9C8DA; stroke-width: 1.5; }
.winsor-map .wm-district { fill: #8A8577; font: 500 11px Arial, sans-serif; letter-spacing: .06em; }
.winsor-map .wm-pin { fill: #1B2A4A; opacity: .55; }
.winsor-map .wm-pin-halo { fill: #C49A6C; opacity: .18; }
.winsor-map .wm-pin-active { fill: #C49A6C; stroke: #fff; stroke-width: 2.5; }
.winsor-map .wm-pin-label { fill: #1B2A4A; font: 600 12px Arial, sans-serif; }
.winsor-map .wm-pin-sub { fill: #8A8577; font: 400 10px Arial, sans-serif; }
.winsor-map .wm-num { fill: #fff; font: 600 10px Arial, sans-serif; text-anchor: middle; }
.winsor-map .wm-pin-link { cursor: pointer; }
.winsor-map .wm-compass { fill: #8A8577; font: 600 11px Arial, sans-serif; }
.winsor-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 12px;
  font: 400 12px/1.4 Arial, sans-serif;
  color: #6E6A5F;
}
.winsor-map-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; }
.winsor-map-legend .active { background: #C49A6C; }
.winsor-map-legend .other { background: #1B2A4A; opacity: .55; }
.winsor-map-list {
  list-style: none;
  counter-reset: none;
  margin: 20px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 20px;
}
.winsor-map-list li { margin: 0; }
.winsor-map-list a {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 10px;
  text-decoration: none;
  color: #1B2A4A;
  font: 400 14px/1.4 Arial, sans-serif;
  background: #F7F4ED;
}
.winsor-map-list a:hover { background: #F4EFE6; }
.winsor-map-list b {
  flex: 0 0 22px;
  height: 22px;
  border-radius: 50%;
  background: #1B2A4A;
  color: #fff;
  font: 600 11px/22px Arial, sans-serif;
  text-align: center;
}
.winsor-map-list span { margin-left: auto; color: #8A8577; font-size: 12px; white-space: nowrap; }
@media (max-width: 767px) {
  .winsor-map-list { grid-template-columns: 1fr; }
  .winsor-map-list span { display: none; }
}

/* Combined map on /properties/ */
.winsor-map-section { padding: 0 0 80px; }
.winsor-map-section .winsor-map-card {
  background: #fff;
  border: 1px solid #E8E1D4;
  border-radius: 20px;
  padding: 26px;
  box-shadow: 0 10px 34px rgba(27, 42, 74, .06);
}
.winsor-map-section h2 { font: 400 32px/1.3 Prata, Georgia, serif; color: #1B2A4A; margin: 0 0 8px; }
.winsor-map-section .winsor-map-intro { color: #666; margin: 0 0 22px; font-size: 16px; }
@media (max-width: 767px) {
  .winsor-location-card, .winsor-map-section .winsor-map-card { padding: 16px; }
  .winsor-location-title { font-size: 20px; }
  .winsor-map-section h2 { font-size: 24px; }
}
