/* ==========================================================================
   City landing pages. Mobile first.
   Layout is deliberately different from the homepage so the two pages do not
   read as duplicates to a visitor or to a search engine.
   ========================================================================== */

/* ---------- Hero with city identity artwork ---------- */
.city-hero{
  position:relative;overflow:hidden;background:var(--secondary);
  padding:44px 0 40px;text-align:center;
}
.city-hero-bg{position:absolute;inset:0;z-index:0}
.city-hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center bottom}
.city-hero-bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(26,26,26,.78) 0%,rgba(26,26,26,.66) 45%,rgba(26,26,26,.9) 100%);
}
.city-hero > .container{position:relative;z-index:1}

.crumb{
  display:flex;justify-content:center;flex-wrap:wrap;gap:.35rem;margin-bottom:14px;
  font-size:.74rem;color:rgba(255,255,255,.55);
}
.crumb a{color:rgba(255,255,255,.75)}
.crumb a:hover{color:var(--white)}
.crumb svg{width:12px;height:12px;opacity:.6}

.city-pin{
  display:inline-flex;align-items:center;gap:.4rem;margin-bottom:14px;
  padding:5px 12px;border-radius:999px;
  background:rgba(46,155,120,.16);border:1px solid rgba(143,211,186,.34);
  font-family:var(--f-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:#8FD3BA;
}
.city-pin svg{width:13px;height:13px}

.city-hero h1{
  color:var(--white);font-size:clamp(1.75rem,7vw,3.3rem);line-height:1.1;
  max-width:20ch;margin:0 auto 14px;
}
.city-hero h1 em{font-style:normal;color:var(--accent)}
.city-hero .lede{
  color:rgba(255,255,255,.8);font-size:clamp(.95rem,3.4vw,1.1rem);
  max-width:58ch;margin:0 auto 22px;
}
.city-actions{display:grid;gap:10px;max-width:330px;margin:0 auto}

/* quick facts row under the hero copy */
.city-facts{
  margin-top:28px;padding-top:20px;border-top:1px solid rgba(255,255,255,.16);
  display:grid;grid-template-columns:repeat(2,1fr);gap:16px 10px;max-width:600px;margin-inline:auto;
}
.city-fact{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.city-fact svg{width:19px;height:19px;color:var(--accent)}
.city-fact b{color:var(--white);font-size:.94rem;font-weight:600;line-height:1.2}
.city-fact span{font-size:.72rem;color:rgba(255,255,255,.6);line-height:1.35}

/* ---------- Local intro ---------- */
.city-intro{padding:44px 0}
.city-intro-grid{display:grid;gap:24px}
.city-intro h2{font-size:clamp(1.45rem,5vw,2.1rem);margin-bottom:12px}
.city-intro p{color:var(--muted);font-size:.97rem;margin-bottom:14px}
.city-highlights{display:grid;gap:12px}
.city-highlight{
  display:flex;gap:12px;align-items:flex-start;padding:15px 16px;
  background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);
}
.city-highlight .ic{
  width:34px;height:34px;flex:0 0 auto;border-radius:10px;display:grid;place-items:center;
  background:var(--accent-soft);color:var(--primary);
}
.city-highlight .ic svg{width:17px;height:17px}
.city-highlight strong{display:block;font-size:.94rem;margin-bottom:3px}
.city-highlight span{font-size:.86rem;color:var(--muted);line-height:1.55}

/* ---------- Service blocks for this city ---------- */
.city-services{display:grid;gap:14px}
.city-service{
  background:var(--white);border:1px solid var(--border);border-radius:var(--radius);
  padding:22px 20px;transition:var(--transition);
}
.city-service-head{display:flex;align-items:center;gap:12px;margin-bottom:11px}
.city-service-ico{
  width:44px;height:44px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;
  background:var(--primary);color:var(--white);
}
.city-service.alt .city-service-ico{background:var(--secondary);color:var(--accent)}
.city-service-ico svg{width:22px;height:22px}
.city-service h3{font-size:1.12rem;line-height:1.25}
.city-service > p{font-size:.92rem;color:var(--muted);margin-bottom:14px}
.city-service ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.city-service li{display:flex;gap:8px;align-items:flex-start;font-size:.88rem;color:var(--ink-2)}
.city-service li svg{width:15px;height:15px;color:var(--primary);flex:0 0 auto;margin-top:3px}
@media (hover:hover){.city-service:hover{border-color:var(--accent);box-shadow:var(--box-shadow);transform:translateY(-3px)}}

/* ---------- Areas served ---------- */
.areas{
  display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:820px;margin:0 auto;
}
.area-chip{
  display:inline-flex;align-items:center;gap:.35rem;
  padding:6px 13px;border-radius:999px;
  background:var(--white);border:1px solid var(--border);
  font-size:.83rem;color:var(--ink-2);
}
.area-chip svg{width:12px;height:12px;color:var(--accent);flex:0 0 auto}

/* ---------- Local proof strip ---------- */
.city-proof{
  display:grid;gap:12px;
}
.proof-card{
  padding:18px;border-radius:var(--radius);border:1px solid var(--dark-line);
  background:rgba(255,255,255,.04);
}
.proof-card .n{
  font-family:var(--f-display);font-weight:700;color:var(--white);font-size:1.7rem;line-height:1;
  display:flex;align-items:center;gap:.5rem;
}
.proof-card .n svg{width:19px;height:19px;color:var(--accent)}
.proof-card p{margin-top:7px;font-size:.87rem;color:var(--on-dark-muted);line-height:1.55}

/* ---------- Nearby cities ---------- */
.nearby{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.nearby a{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:9px 15px;border-radius:10px;
  background:var(--white);border:1px solid var(--border);
  font-size:.88rem;font-weight:500;color:var(--ink-2);transition:var(--transition);
}
.nearby a svg{width:14px;height:14px;color:var(--accent)}
@media (hover:hover){.nearby a:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}}

/* ---------- Responsive ---------- */
@media (min-width:600px){
  .city-hero{padding:60px 0 54px}
  .city-facts{grid-template-columns:repeat(4,1fr)}
  .city-actions{grid-template-columns:1fr 1fr;max-width:430px}
  .city-services{grid-template-columns:1fr 1fr}
  .city-proof{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:900px){
  .city-hero{padding:78px 0 68px}
  .city-intro{padding:72px 0}
  .city-intro-grid{grid-template-columns:1.15fr 1fr;gap:44px;align-items:start}
  .city-highlights{gap:12px}
}
