/* ==========================================================================
   LOCATIONS PAGE
   ========================================================================== */
.tpa-locations-intro{ background:var(--color-bg); padding:clamp(48px,6vw,80px) clamp(16px,4vw,48px); }
.tpa-locations-intro-inner{ max-width:1240px; margin:0 auto; display:flex; gap:clamp(32px,5vw,72px); align-items:center; flex-wrap:wrap; }
.tpa-locations-copy{ flex:1 1 400px; min-width:280px; }
.tpa-locations-copy p{ color:var(--color-text-muted); font-size:16px; line-height:1.8; margin:0 0 22px; }
.tpa-locations-copy h3{ color:#fff; font-family:var(--font-head); font-weight:700; font-size:14px; text-transform:uppercase; letter-spacing:.05em; margin-bottom:14px; }
.tpa-city-list{ display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:0; padding:0; }
.tpa-city-list li{ border:1px solid rgba(255,255,255,.15); color:#fff; font-size:13.5px; padding:8px 16px; }
.tpa-locations-note{ color:#7a7a7a; font-size:13.5px; line-height:1.6; margin:18px 0 0; }
.tpa-radius-diagram{ flex:1 1 320px; min-width:260px; display:flex; justify-content:center; }
.tpa-radius-pulse{ transform-origin:150px 150px; animation:tpaRadiusPulse 3s ease-out infinite; }
@keyframes tpaRadiusPulse{ 0%{ r:50; opacity:.9; } 100%{ r:140; opacity:0; } }
.tpa-radius-dot{ animation:tpaRadiusDot 1.6s ease-in-out infinite; }
@keyframes tpaRadiusDot{ 0%,100%{ opacity:1; } 50%{ opacity:.4; } }
@media (prefers-reduced-motion: reduce){ .tpa-radius-pulse, .tpa-radius-dot{ animation:none !important; } }

.tpa-map-section{ background:var(--color-bg-alt); padding:0; }
.tpa-map-frame{ width:100%; height:clamp(320px,40vw,460px); }
.tpa-map-frame iframe{ width:100%; height:100%; border:0; }
