/* =========================================================
   TV Mounting Service Area Map — scoped styles
   ========================================================= */
.tvm-map-wrap{
  --tvm-ink:#0B0C0E;
  --tvm-ink-2:#111317;
  --tvm-line:rgba(244,239,230,.09);
  --tvm-line-2:rgba(244,239,230,.16);
  --tvm-ivory:#F4EFE6;
  --tvm-muted:#A39E95;
  --tvm-gold:#C9A76B;
  --tvm-gold-2:#E6CF9F;
  --tvm-ease:cubic-bezier(.2,.7,.2,1);
  max-width:1200px;margin:0 auto;color:var(--tvm-ivory);-webkit-font-smoothing:antialiased;
}
.tvm-map-wrap *{box-sizing:border-box}

.tvm-map-wrap .tvm-map-card{
  position:relative;overflow:hidden;
  border:1px solid var(--tvm-line-2);border-radius:28px;
  background:var(--tvm-ink);
  box-shadow:0 30px 80px -30px rgba(0,0,0,.7);
  isolation:isolate;
}
.tvm-map-wrap .tvm-map-canvas{
  width:100%;height:var(--tvm-map-h,560px);
  background:var(--tvm-ink);font:inherit;
}
/* soft vignette so the map melts into the page */
.tvm-map-wrap .tvm-map-card::after{
  content:"";position:absolute;inset:0;z-index:500;pointer-events:none;border-radius:inherit;
  box-shadow:inset 0 0 80px 10px rgba(11,12,14,.85);
}

/* tiles: CARTO Dark Matter gets a warm tint; OSM fallback is darkened */
.tvm-map-wrap .tvm-tiles-carto{filter:sepia(.28) saturate(.75) brightness(.95)}
.tvm-map-wrap .tvm-tiles-osm{filter:grayscale(1) invert(1) brightness(.78) contrast(1.15) sepia(.22)}

/* ---- markers ---- */
.tvm-map-wrap .tvm-mk{background:none;border:0}
.tvm-map-wrap .tvm-mk span{display:block;border-radius:50%;transition:transform .35s var(--tvm-ease)}
.tvm-map-wrap .tvm-mk-sameday span{
  width:12px;height:12px;background:var(--tvm-gold-2);
  box-shadow:0 0 0 4px rgba(201,167,107,.22),0 0 18px 4px rgba(230,207,159,.45);
}
.tvm-map-wrap .tvm-mk-scheduled span{
  width:11px;height:11px;background:var(--tvm-ink);border:2px solid var(--tvm-gold);
  box-shadow:0 0 12px 2px rgba(201,167,107,.3);
}
.tvm-map-wrap .tvm-mk:hover span,.tvm-map-wrap .tvm-mk.is-active span{transform:scale(1.5)}
.tvm-map-wrap .tvm-hub{background:none;border:0}
.tvm-map-wrap .tvm-hub span{
  display:block;width:100%;height:100%;border-radius:50%;
  border:1.5px solid var(--tvm-gold);
  animation:tvm-map-pulse 2.8s ease-out infinite;
}
@keyframes tvm-map-pulse{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1);opacity:0}}

/* ---- Leaflet chrome, dark & gold ---- */
.tvm-map-wrap .leaflet-container{background:var(--tvm-ink);font-family:inherit;outline:none}
.tvm-map-wrap .leaflet-control-zoom{border:1px solid var(--tvm-line-2) !important;border-radius:14px !important;overflow:hidden;box-shadow:0 10px 30px -10px #000 !important;margin:20px 20px 0 0 !important}
.tvm-map-wrap .leaflet-control-zoom a,
.tvm-map-wrap .leaflet-control-zoom a:hover,
.tvm-map-wrap .leaflet-control-zoom a:focus{
  width:40px !important;height:40px !important;line-height:40px !important;
  background:rgba(17,19,23,.9) !important;color:var(--tvm-gold-2) !important;
  border-bottom:1px solid var(--tvm-line) !important;font-size:20px !important;text-decoration:none !important;
}
.tvm-map-wrap .leaflet-control-zoom a:hover{background:#1c1f25 !important}
.tvm-map-wrap .leaflet-control-zoom a.leaflet-disabled{color:#555 !important}
.tvm-map-wrap .leaflet-control-attribution{
  background:rgba(11,12,14,.7) !important;color:#8F8A81 !important;font-size:10px !important;
  padding:2px 8px !important;border-top-left-radius:8px;
}
.tvm-map-wrap .leaflet-control-attribution a{color:#B5AFA5 !important;text-decoration:none !important}

.tvm-map-wrap .leaflet-tooltip.tvm-tip{
  background:rgba(17,19,23,.92);color:var(--tvm-ivory);border:1px solid var(--tvm-line-2);
  border-radius:10px;padding:6px 11px;font-size:13px;font-weight:600;box-shadow:0 10px 30px -10px #000;
}
.tvm-map-wrap .leaflet-tooltip.tvm-tip::before{display:none}

.tvm-map-wrap .leaflet-popup-content-wrapper{
  background:rgba(17,19,23,.95);color:var(--tvm-ivory);
  border:1px solid var(--tvm-line-2);border-radius:16px;box-shadow:0 20px 50px -15px #000;
}
.tvm-map-wrap .leaflet-popup-tip{background:rgba(17,19,23,.95);border:1px solid var(--tvm-line-2)}
.tvm-map-wrap .leaflet-popup-content{margin:16px 20px;font-size:14px;line-height:1.4}
.tvm-map-wrap .leaflet-popup-content b{display:block;font-size:17px;margin-bottom:4px}
.tvm-map-wrap .leaflet-popup-content small{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--tvm-gold)}
.tvm-map-wrap .leaflet-popup-content a.tvm-pop-btn,
.tvm-map-wrap .leaflet-popup-content a.tvm-pop-btn:hover{
  display:inline-block;margin-top:12px;padding:9px 16px;border-radius:999px;
  background:linear-gradient(135deg,var(--tvm-gold-2),var(--tvm-gold) 55%,#9C7F4A);
  color:#17130C;font-size:13px;font-weight:600;text-decoration:none;
}
.tvm-map-wrap .leaflet-container a.leaflet-popup-close-button{color:var(--tvm-muted);top:6px;right:6px}

/* ---- legend ---- */
.tvm-map-wrap .tvm-map-legend{
  position:absolute;left:20px;bottom:20px;z-index:600;
  display:flex;flex-wrap:wrap;gap:8px 18px;
  padding:12px 18px;border-radius:14px;
  background:rgba(17,19,23,.82);border:1px solid var(--tvm-line-2);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  font-size:13px;color:var(--tvm-ivory);
}
.tvm-map-wrap .tvm-map-legend span{display:inline-flex;align-items:center;gap:9px}
.tvm-map-wrap .tvm-dot{display:inline-block;width:10px;height:10px;border-radius:50%}
.tvm-map-wrap .tvm-dot-sameday{background:var(--tvm-gold-2);box-shadow:0 0 10px 2px rgba(230,207,159,.5)}
.tvm-map-wrap .tvm-dot-scheduled{border:2px solid var(--tvm-gold)}

/* ---- area list ---- */
.tvm-map-wrap .tvm-map-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:28px}
.tvm-map-wrap .tvm-map-group-title{
  display:block;margin-bottom:14px;
  font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--tvm-gold);
}
.tvm-map-wrap .tvm-map-chips{display:flex;flex-wrap:wrap;gap:8px}
.tvm-map-wrap .tvm-map-chip,
.tvm-map-wrap .tvm-map-chip:hover,
.tvm-map-wrap .tvm-map-chip:focus{
  margin:0;padding:8px 15px;min-height:0;width:auto;
  border:1px solid var(--tvm-line-2);border-radius:999px;background:transparent;box-shadow:none;
  font:inherit;font-size:13px;line-height:1.3;font-weight:400;letter-spacing:normal;text-transform:none;
  color:#E9E2D5;cursor:pointer;transition:border-color .3s,color .3s,background .3s;
  -webkit-appearance:none;appearance:none;
}
.tvm-map-wrap .tvm-map-chip.is-active{border-color:var(--tvm-gold);color:var(--tvm-gold-2);background:rgba(201,167,107,.08)}
@media (hover:hover){.tvm-map-wrap .tvm-map-chip:hover{border-color:var(--tvm-gold);color:var(--tvm-gold-2);background:rgba(201,167,107,.08)}}
.tvm-map-wrap .tvm-map-chip:focus{outline:none}
.tvm-map-wrap .tvm-map-chip:focus-visible{outline:2px solid var(--tvm-gold);outline-offset:2px}

/* ---- responsive ---- */
@media (max-width:768px){
  .tvm-map-wrap .tvm-map-card{border-radius:20px}
  .tvm-map-wrap .tvm-map-canvas{height:var(--tvm-map-hm,420px)}
  .tvm-map-wrap .tvm-map-card::after{box-shadow:inset 0 0 50px 6px rgba(11,12,14,.85)}
  .tvm-map-wrap .tvm-map-legend{left:12px;right:auto;bottom:28px;padding:10px 14px;font-size:12px;flex-direction:column;gap:6px}
  .tvm-map-wrap .leaflet-control-zoom{margin:12px 12px 0 0 !important}
  .tvm-map-wrap .tvm-map-list{grid-template-columns:minmax(0,1fr);gap:22px;margin-top:22px}
}
@media (prefers-reduced-motion:reduce){
  .tvm-map-wrap .tvm-hub span{animation:none;opacity:.5}
}
