/* ---- structural / layout ---- */
.lzb-locations .wrap {
  max-width: var(--maxw, 1180px);
  margin: 0 auto;
  padding: 0 26px;
}
.lzb-locations section {
  padding: 90px 0;
}
.lzb-locations .sec-head {
  margin-bottom: 50px;
  max-width: 740px;
}
.lzb-locations .sec-tag {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--fairway, #1f7a4d);
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.lzb-locations .sec-tag:before {
  content: "";
  width: 30px;
  height: 2px;
  background: var(--brass, #c9a24b);
}
.lzb-locations h2.big {
  font-size: clamp(30px, 4.5vw, 48px);
  font-weight: 800;
  color: var(--ink, #0a1410);
  margin-bottom: 0;
  line-height: 1.04;
  letter-spacing: -.02em;
}
.lzb-locations .sec-head p {
  margin-top: 16px;
  font-size: 16px;
  color: #46584d;
  margin-bottom: 0;
}

/* ---- locations / map ---- */
.lzb-locations .loc {
  background: var(--night);
  color: var(--cream);
}
.lzb-locations .loc .sec-tag {
  color: var(--lawn);
}
.lzb-locations .loc .sec-tag:before {
  background: var(--lawn);
}
.lzb-locations .loc h2.big {
  color: var(--cream);
  margin-bottom: 16px;
}
.lzb-locations .loc h2.big .acc {
  color: var(--brass);
}
.lzb-locations .loc-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-top: 8px;
}
.lzb-locations .loc-item {
  display: flex;
  align-items: center;
  gap: 16px;
  background: rgba(255, 255, 255, .04);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 16px 18px;
  transition: .2s;
  text-decoration: none;
}
.lzb-locations .loc-item:hover {
  background: rgba(63, 168, 106, .09);
  border-color: rgba(63, 168, 106, .4);
}
.lzb-locations .loc-pin {
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--brass);
  color: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 800;
  font-size: 14px;
}
.lzb-locations .loc-item .info {
  flex: 1;
}
.lzb-locations .loc-item .info b {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 15px;
  color: var(--cream);
  display: block;
}
.lzb-locations .loc-item .info span {
  font-size: 12.5px;
  color: var(--muted);
}
.lzb-locations .loc-item .go {
  font-size: 12px;
  color: var(--brass);
  font-weight: 700;
  white-space: nowrap;
}
.lzb-locations .loc-rating {
  font-size: 12px;
  color: var(--brass);
  font-weight: 700;
}

/* ---- drawn island map ---- */
.lzb-locations .map-layout {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 34px;
  align-items: start;
}
.lzb-locations .map-art {
  background: rgba(255, 255, 255, .03);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 18px;
  position: relative;
}
.lzb-locations .map-art svg {
  width: 100%;
  height: auto;
  display: block;
}
.lzb-locations .island {
  fill: rgba(63, 168, 106, .13);
  stroke: var(--lawn);
  stroke-width: 1.4;
  stroke-opacity: .5;
}
.lzb-locations .island.phang {
  fill: rgba(63, 168, 106, .08);
}
.lzb-locations .sea-label {
  fill: rgba(123, 184, 255, .5);
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.lzb-locations .zone-label {
  fill: var(--cream-2);
  opacity: .42;
  font-family: 'Manrope', sans-serif;
  font-weight: 600;
  font-size: 10px;
  letter-spacing: .04em;
}
.lzb-locations .pin-dot {
  fill: var(--brass);
  stroke: var(--night);
  stroke-width: 2;
  cursor: pointer;
  transition: .2s;
}
.lzb-locations .pin-dot:hover {
  fill: var(--cream);
  r: 13;
}
.lzb-locations .pin-num {
  fill: var(--ink);
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 800;
  font-size: 11px;
  text-anchor: middle;
  pointer-events: none;
}
.lzb-locations .pin-name {
  fill: var(--cream);
  font-family: 'Manrope', sans-serif;
  font-weight: 600;
  font-size: 10.5px;
  pointer-events: none;
}
.lzb-locations .pin-name.bg {
  fill: none;
  stroke: var(--night);
  stroke-width: 3;
  stroke-linejoin: round;
  opacity: .85;
}
.lzb-locations .airport {
  fill: none;
  stroke: var(--cream-2);
  stroke-width: 1.2;
  opacity: .5;
}
.lzb-locations .airport-label {
  fill: var(--cream-2);
  opacity: .6;
  font-family: 'Manrope', sans-serif;
  font-weight: 600;
  font-size: 9.5px;
}
@media(max-width:900px) {
  .lzb-locations .map-layout {
    grid-template-columns: 1fr;
    gap: 22px;
  }
}
