/* =========================================================
   Service Areas Hub + City Pages
   ========================================================= */
.swt2-service-areas-page .swt2-hero::before,
.swt2-city-page .swt2-hero::before { opacity:.35; }

.swt2-location-hero {
  position:relative;
  overflow:hidden;
  padding:52px 0 22px;
}

.swt2-location-hero::before {
  content:"";
  position:absolute;
  inset:-20% -10% auto auto;
  width:680px;
  height:680px;
  background:radial-gradient(circle, rgba(150, 217, 27, .14), transparent 63%);
  pointer-events:none;
}

.swt2-location-hero__inner { position:relative; }

.swt2-location-hero__layout {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 360px;
  gap:28px;
  align-items:start;
}

.swt2-location-hero__main {
  display:grid;
  grid-template-columns:minmax(0, .9fr) minmax(360px, .72fr);
  gap:34px;
  align-items:center;
}

.swt2-location-eyebrow {
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:18px;
  padding:6px 12px;
  border:1px solid rgba(151, 217, 27, .25);
  border-radius:999px;
  color:var(--swt2-lime);
  background:rgba(151, 217, 27, .08);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.swt2-location-title {
  max-width:650px;
  font-size:clamp(44px, 6vw, 82px);
  line-height:.98;
  letter-spacing:-.065em;
}

.swt2-location-title span { color:var(--swt2-lime); }

.swt2-location-lede {
  margin-top:18px;
  max-width:650px;
  color:#c2cbd0;
  font-size:18px;
  line-height:1.66;
}

.swt2-location-lede strong:nth-of-type(1),
.swt2-location-lede strong:nth-of-type(2) { color:var(--swt2-lime-2); }
.swt2-location-lede strong:nth-of-type(3) { color:var(--swt2-orange); }

.swt2-location-copy {
  margin-top:18px;
  max-width:650px;
  color:var(--swt2-muted);
  line-height:1.72;
}

.swt2-location-actions {
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:28px;
}

.swt2-location-map-card,
.swt2-url-panel,
.swt2-location-card,
.swt2-location-note,
.swt2-city-hero-card,
.swt2-city-info-card {
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--swt2-radius-lg);
  background:linear-gradient(180deg, rgba(11, 31, 45, .88), rgba(5, 16, 26, .84));
  box-shadow:inset 0 1px rgba(255,255,255,.06), 0 18px 60px rgba(0,0,0,.3);
}

.swt2-location-map-card {
  position:relative;
  min-height:330px;
  padding:18px;
  overflow:hidden;
  border-color:rgba(151,217,27,.18);
}

.swt2-us-map {
  position:absolute;
  inset:22px 14px 14px;
  opacity:.92;
}

.swt2-us-map svg {
  width:100%;
  height:100%;
  display:block;
  filter:drop-shadow(0 0 28px rgba(151,217,27,.13));
}

.swt2-us-map__shape { fill:rgba(39,76,45,.36); stroke:rgba(151,217,27,.28); stroke-width:2; }
.swt2-us-map__line { stroke:rgba(151,217,27,.16); stroke-width:1; fill:none; }

.swt2-city-dot {
  position:absolute;
  left:var(--x);
  top:var(--y);
  display:flex;
  align-items:center;
  gap:6px;
  transform:translate(-8px,-8px);
  color:#fff;
  font-size:12px;
  line-height:1;
  text-shadow:0 2px 12px rgba(0,0,0,.85);
  white-space:nowrap;
}

.swt2-city-dot::before {
  content:"";
  width:11px;
  height:11px;
  border-radius:999px;
  background:var(--swt2-lime-2);
  box-shadow:0 0 0 5px rgba(151,217,27,.16), 0 0 22px rgba(183,255,43,.8);
}

.swt2-url-panel {
  padding:20px;
  display:grid;
  gap:18px;
}

.swt2-url-panel__block {
  padding:18px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:18px;
  background:rgba(4,13,22,.44);
}

.swt2-url-panel__title {
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--swt2-lime-2);
  font-size:16px;
  margin-bottom:10px;
}

.swt2-url-panel__text {
  color:var(--swt2-muted);
  line-height:1.58;
  font-size:14px;
}

.swt2-url-tree {
  margin-top:14px;
  padding:14px 14px 14px 18px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  color:#cbd4d8;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:13px;
  line-height:1.75;
  background:rgba(0,0,0,.18);
}

.swt2-url-tree b { color:var(--swt2-lime-2); }
.swt2-url-tree strong { color:var(--swt2-orange); }

.swt2-location-grid {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:16px;
  margin-top:24px;
}

.swt2-location-card {
  position:relative;
  min-height:150px;
  padding:20px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  color:inherit;
  text-decoration:none;
  border-color:rgba(151,217,27,.18);
  transition:transform var(--swt2-speed), border-color var(--swt2-speed), box-shadow var(--swt2-speed);
  overflow:hidden;
}

.swt2-location-card:hover {
  transform:translateY(-4px);
  border-color:rgba(183,255,43,.42);
  box-shadow:0 24px 60px rgba(0,0,0,.36), 0 0 34px rgba(151,217,27,.13), inset 0 1px rgba(255,255,255,.07);
}

.swt2-location-card::after {
  content:"";
  position:absolute;
  width:130px;
  height:130px;
  right:-55px;
  top:-55px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(151,217,27,.16), transparent 67%);
}

.swt2-location-card__state {
  color:var(--swt2-lime-2);
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.swt2-location-card__icon {
  position:absolute;
  right:18px;
  top:18px;
  width:48px;
  height:48px;
  border:1px solid rgba(151,217,27,.34);
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--swt2-lime);
  font-size:13px;
  font-weight:950;
  background:rgba(151,217,27,.08);
}

.swt2-location-card__city {
  margin-top:28px;
  padding-right:56px;
  font-size:24px;
  line-height:1.05;
  letter-spacing:-.035em;
}

.swt2-location-card__link,
.swt2-location-card__city-pill {
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#eef5ef;
  font-size:14px;
  font-weight:750;
}

.swt2-location-card__link span,
.swt2-location-card__city-pill span { color:var(--swt2-lime-2); }

.swt2-location-card--texas {
  grid-column:span 1;
}

.swt2-location-card__pills {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:26px;
}

.swt2-location-card__city-pill {
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(151,217,27,.25);
  background:rgba(151,217,27,.08);
  text-decoration:none;
}

.swt2-location-note {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:20px;
  padding:20px 26px;
  border-color:rgba(255,118,15,.24);
}

.swt2-location-note__left {
  display:flex;
  align-items:center;
  gap:18px;
}

.swt2-location-note__icon {
  width:52px;
  height:52px;
  border:1px solid rgba(255,118,15,.7);
  border-radius:16px;
  color:var(--swt2-orange);
  display:grid;
  place-items:center;
  font-weight:900;
  background:rgba(255,118,15,.08);
}

.swt2-location-note__title { font-size:18px; margin-bottom:4px; }
.swt2-location-note__text { color:var(--swt2-muted); }
.swt2-location-note__link { color:var(--swt2-orange-2); font-weight:900; text-decoration:none; white-space:nowrap; }

.swt2-city-hero {
  padding:52px 0 24px;
}

.swt2-city-hero__layout {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 390px;
  gap:28px;
  align-items:stretch;
}

.swt2-city-hero-card { padding:28px; }
.swt2-city-kicker { color:var(--swt2-lime-2); font-weight:900; text-transform:uppercase; letter-spacing:.08em; font-size:12px; }
.swt2-city-title { margin-top:12px; font-size:clamp(38px, 5.2vw, 72px); line-height:.98; letter-spacing:-.06em; max-width:760px; }
.swt2-city-title span { color:var(--swt2-lime); }
.swt2-city-text { margin-top:18px; color:#c1ccd1; font-size:18px; line-height:1.65; max-width:740px; }
.swt2-city-market { margin-top:18px; color:var(--swt2-muted); line-height:1.72; }
.swt2-city-info-card { padding:24px; border-color:rgba(151,217,27,.22); display:grid; gap:14px; }
.swt2-city-info-card__row { display:grid; gap:5px; padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,.08); }
.swt2-city-info-card__row:last-child { border-bottom:0; padding-bottom:0; }
.swt2-city-info-card__label { color:var(--swt2-lime-2); font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.swt2-city-info-card__value { color:#fff; font-weight:800; }
.swt2-city-service-grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:16px; }
.swt2-city-service-card { padding:20px; }
.swt2-city-service-card h3 { margin-top:14px; font-size:20px; letter-spacing:-.03em; }
.swt2-city-service-card p { margin-top:10px; color:var(--swt2-muted); line-height:1.62; }
.swt2-city-cta { text-align:center; padding:34px; border:1px solid rgba(255,118,15,.22); border-radius:var(--swt2-radius-lg); background:linear-gradient(180deg, rgba(17,35,48,.92), rgba(7,19,30,.86)); }
.swt2-city-cta h2 { font-size:32px; letter-spacing:-.04em; }
.swt2-city-cta p { margin:12px auto 0; max-width:720px; color:var(--swt2-muted); line-height:1.65; }
.swt2-city-cta .swt2-location-actions { justify-content:center; }

@media (max-width:1120px) {
  .swt2-location-hero__layout,
  .swt2-location-hero__main,
  .swt2-city-hero__layout { grid-template-columns:1fr; }
  .swt2-location-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); }
  .swt2-url-panel { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .swt2-location-map-card { min-height:300px; }
  .swt2-city-service-grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
}

@media (max-width:760px) {
  .swt2-location-hero, .swt2-city-hero { padding-top:34px; }
  .swt2-location-title, .swt2-city-title { font-size:43px; }
  .swt2-location-lede, .swt2-city-text { font-size:16px; }
  .swt2-location-map-card { min-height:270px; padding:14px; }
  .swt2-city-dot { font-size:10px; }
  .swt2-location-grid { grid-template-columns:1fr; }
  .swt2-url-panel { grid-template-columns:1fr; }
  .swt2-location-note { align-items:flex-start; flex-direction:column; padding:18px; }
  .swt2-location-note__left { align-items:flex-start; }
  .swt2-city-service-grid { grid-template-columns:1fr; }
  .swt2-city-hero-card, .swt2-city-info-card { padding:22px; }
}

@media (max-width:480px) {
  .swt2-location-map-card { min-height:235px; }
  .swt2-city-dot span { display:none; }
  .swt2-location-card__city { font-size:22px; }
}
