.city-directory {
  color: var(--cleaner-ink);
}

.city-breadcrumbs { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 16px; color:var(--cleaner-muted,#65717b); font-size:13px; }
.city-breadcrumbs a { color:inherit; text-underline-offset:3px; }
.city-title-band > p { margin:8px 0 0; color:var(--cleaner-muted,#65717b); font-size:16px; }
.city-index-group { margin-top:18px; }
.city-index-group > ul { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:9px; margin:16px 0 0; padding:0; list-style:none; }
.city-index-group > ul > li { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; padding:14px 16px; border:1px solid #dce7df; border-radius:11px; background:#fff; }
.city-index-group > ul > li a { color:var(--cleaner-ink); font-weight:650; text-underline-offset:3px; }
.city-index-group > ul > li span { color:var(--cleaner-muted,#65717b); font-size:12px; text-align:right; }
.city-service-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:12px; }
.city-service-item { padding:16px; border:1px solid #dce7df; border-radius:12px; background:#fff; }
.city-service-item h3 { margin:0; font-size:16px; }
.city-service-item p { min-height:2.8em; color:var(--cleaner-muted,#65717b); font-size:13px; }
.city-service-item strong { color:var(--cleaner-ink); font-size:19px; }
.city-service-item strong span { font-size:12px; font-weight:500; }
.city-professional-overview + .city-professional-overview { margin-top:20px; }
.city-page .cleaner-service-track { overflow:visible; scroll-snap-type:none; padding:0; }
.city-page .cleaner-service-list { display:grid; width:100%; grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr)); gap:14px; }
.city-page .cleaner-service { flex:initial; scroll-snap-align:none; border-radius:14px; }
.city-page .cleaner-service-art { height:145px; }
.city-page .cleaner-service-body { min-height:164px; }
.city-page .cleaner-service-body>p { display:block; max-height:none; -webkit-line-clamp:unset; }
.city-page .cleaner-service-body>strong span { font-size:11px; }
.city-page .service-note { display:block; }

.city-title-band {
  margin: 0 0 22px;
  padding: 18px 24px 20px;
  border: 1px solid #dce7df;
  border-radius: 16px;
  background: #fff;
}

.city-title-eyebrow {
  margin: 0;
  color: #356a54;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.4;
  text-transform: uppercase;
}

.city-title-band h1 {
  margin: 4px 0 0;
  color: var(--cleaner-ink);
  font: 400 clamp(34px, 3.6vw, 48px)/1.08 Georgia, 'Times New Roman', serif;
  letter-spacing: -.028em;
  overflow-wrap: anywhere;
}

.city-professional-name {
  max-width: 520px;
  margin: 10px 0 2px;
  color: var(--cleaner-ink);
  font: 400 clamp(34px, 3.6vw, 48px)/1.08 Georgia, 'Times New Roman', serif;
  letter-spacing: -.028em;
  overflow-wrap: anywhere;
}

.city-professional-name a {
  color: inherit;
  text-decoration: none;
  text-underline-offset: 4px;
}

.city-professional-name a:hover {
  text-decoration: underline;
}

@media (max-width: 680px) {
  .city-page .cleaner-service-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .city-page .cleaner-service-art { height:104px; }
  .city-page .cleaner-service-body { min-height:155px; padding:13px 10px 11px; }
  .city-page .cleaner-service h3 { font-size:13px; }
  .city-index-group > ul > li { align-items:flex-start; flex-direction:column; gap:5px; }
  .city-index-group > ul > li span { text-align:left; }
  .city-title-band > p { font-size:14px; }
  .city-title-band {
    margin-bottom: 18px;
    padding: 16px 18px 18px;
    border-radius: 14px;
  }

  .city-title-band h1 {
    font-size: clamp(32px, 8vw, 40px);
    line-height: 1.05;
    letter-spacing: -.035em;
  }

  .city-professional-name {
    font-size: 37px;
  }
}

@media (max-width: 360px) {
  .city-title-band {
    padding-inline: 14px;
  }

  .city-title-band h1 {
    font-size: 31px;
  }
}
