.city-detail-hero .subpage-hero-grid.single-column { grid-template-columns: 1fr; }
.city-detail-hero .subpage-hero-copy { max-width: 1120px; }
.city-detail-hero .subpage-hero-copy > p { max-width: 1040px; }
.city-detail-content { background: linear-gradient(180deg, #fff, #f3f8ff); }
.city-detail-stack { display: grid; gap: 24px; }
.city-service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.city-service-grid > a { min-height: 184px; display: flex; flex-direction: column; padding: 24px; color: inherit; background: #f5f9ff; border: 1px solid #dce9f8; border-radius: 18px; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.city-service-grid > a:hover { transform: translateY(-3px); border-color: #b9d6fb; box-shadow: 0 12px 26px rgba(31,75,132,.08); }
.city-service-grid strong { font-size: 20px; }
.city-service-grid p { margin-top: 12px; font-size: 15px; line-height: 1.7; }
.city-service-grid span { margin-top: auto; padding-top: 18px; color: var(--blue-dark); font-size: 14px; font-weight: 750; }
.city-nursing-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-top: 24px; }
.city-nursing-grid > a { min-height: 126px; display: flex; flex-direction: column; gap: 8px; padding: 18px; color: inherit; background: #f7faff; border: 1px solid #dfebf8; border-radius: 16px; transition: border-color .2s ease, background-color .2s ease; }
.city-nursing-grid > a:hover { background: #eef6ff; border-color: #b9d7fb; }
.city-nursing-grid strong { color: var(--ink); font-size: 17px; }
.city-nursing-grid small { color: var(--muted); font-size: 13px; line-height: 1.6; }
.city-assurance .assurance-grid { margin-top: 24px; }
.city-assurance .compact-grid article { min-height: 238px; }
.city-assurance .compact-grid ul { margin-top: 18px; padding: 0; list-style: none; }
.city-assurance .compact-grid li { position: relative; padding-left: 22px; }
.city-assurance .compact-grid li::before { content: "✓"; position: absolute; top: .05em; left: 0; width: 16px; height: 16px; display: grid; place-items: center; color: #fff; background: var(--blue-dark); border-radius: 50%; font-size: 10px; font-weight: 800; }
.city-faq-list { display: grid; gap: 12px; margin-top: 24px; }
.city-faq-list details { overflow: hidden; background: #f7faff; border: 1px solid #dfebf8; border-radius: 16px; }
.city-faq-list summary { position: relative; padding: 18px 54px 18px 20px; color: var(--ink); cursor: pointer; font-size: 17px; font-weight: 750; list-style: none; }
.city-faq-list summary::-webkit-details-marker { display: none; }
.city-faq-list summary::after { content: "+"; position: absolute; top: 50%; right: 20px; width: 28px; height: 28px; display: grid; place-items: center; color: var(--blue-dark); background: var(--blue-soft); border-radius: 9px; transform: translateY(-50%); }
.city-faq-list details[open] summary::after { content: "−"; }
.city-faq-list details p { padding: 0 20px 20px; font-size: 15px; line-height: 1.75; }
.city-care-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.city-care-grid > a { overflow: hidden; color: inherit; background: #f8fbff; border: 1px solid #dfebf8; border-radius: 18px; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.city-care-grid > a:hover { transform: translateY(-3px); border-color: #b9d6fb; box-shadow: 0 12px 26px rgba(31,75,132,.08); }
.city-care-cover { width: 100%; overflow: hidden; aspect-ratio: 16 / 9; background: #e8f3ff; }
.city-care-cover img { width: 100%; height: 100%; display: block; object-fit: cover; }
.city-care-grid > a > div:last-child { padding: 18px; }
.city-care-grid small { display: block; color: var(--blue-dark); font-size: 13px; font-weight: 750; }
.city-care-grid strong { min-height: 56px; display: block; margin-top: 8px; font-size: 19px; line-height: 1.5; }
.city-care-grid p { margin-top: 10px; font-size: 14px; line-height: 1.65; }
.city-other-cities { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.city-related-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.city-related-links a { padding: 10px 14px; color: var(--blue-dark); background: #f1f7ff; border: 1px solid #cfe2f8; border-radius: 11px; font-size: 14px; font-weight: 700; }
.city-detail-actions { display: flex; flex: 0 0 auto; gap: 12px; }

@media (max-width: 1080px) {
  .city-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .city-nursing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .city-assurance .assurance-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .city-care-grid { grid-template-columns: 1fr; }
  .city-care-grid > a { display: grid; grid-template-columns: 36% 1fr; }
  .city-care-grid strong { min-height: 0; }
  .city-other-cities { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 620px) {
  .city-service-grid,
  .city-nursing-grid,
  .city-assurance .assurance-grid { grid-template-columns: 1fr; }
  .city-service-grid > a,
  .city-nursing-grid > a,
  .city-assurance .compact-grid article { min-height: 0; }
  .city-care-grid > a { display: block; }
  .city-detail-actions { width: 100%; flex-direction: column; }
  .city-detail-actions .action-button { width: 100%; }
}
