/* assets/css/pages/locations.css */
.loc-map-sec{padding-top:clamp(2.4rem,5vh,4rem)}
.loc-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2rem,4vw,3.6rem);align-items:start}

/* --- map --- */
.loc-map{position:sticky;top:96px}
.loc-india{display:block;width:100%;max-width:540px;margin-inline:auto;overflow:visible}
.loc-india__shape{filter:drop-shadow(0 18px 40px rgba(0,0,0,.45))}
.loc-dot{cursor:pointer}
.loc-dot__core{transition:r var(--dur-fast) var(--ease-out-expo),fill var(--dur-fast)}
.loc-dot__pulse{transform-origin:center;transform-box:fill-box;opacity:0}
.loc-dot__label{opacity:0;pointer-events:none;transition:opacity var(--dur-fast)}
.loc-dot:hover .loc-dot__core,.loc-dot:focus .loc-dot__core,.loc-dot.is-active .loc-dot__core{r:7;fill:var(--color-rust-glow)}
.loc-dot:hover .loc-dot__label,.loc-dot:focus .loc-dot__label,.loc-dot.is-active .loc-dot__label{opacity:1}
.loc-dot.is-active .loc-dot__pulse,.loc-dot:hover .loc-dot__pulse{opacity:1;animation:locpulse 2s var(--ease-in-out-quart) infinite}
@keyframes locpulse{0%{r:5;opacity:.9}100%{r:22;opacity:0}}

/* --- city directory --- */
.loc-list{display:grid;gap:1.5rem}
.loc-city{padding:1.8rem;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);scroll-margin-top:96px;transition:border-color var(--dur-fast),transform var(--dur-fast) var(--ease-out-expo)}
.loc-city.is-active{border-color:var(--color-rust)}
.loc-city__name{font-size:var(--fs-600)}
.loc-city__count{color:var(--color-rust-glow);font-size:var(--fs-300);margin-top:.2rem}
.loc-city__copy{color:var(--color-ivory-soft);margin-top:.8rem;max-width:54ch}
.loc-city__cta{display:inline-flex;align-items:center;gap:.45rem;margin-top:1.1rem;color:var(--color-rust-glow);font-weight:600}
.loc-city__cta span{transition:transform var(--dur-fast) var(--ease-out-expo)}
.loc-city__cta:hover span{transform:translateX(5px)}

@media (max-width:900px){
  .loc-grid{grid-template-columns:1fr}
  .loc-map{position:static;margin-bottom:1.5rem}
  .loc-india{max-width:380px}
}
