/* Location discovery: choose a city first, then a service on its own page. */
.location-city-link { display:block; color:inherit; text-decoration:none; border-radius:24px; overflow:hidden; }
.location-city-link:focus-visible { outline:3px solid #ff7826; outline-offset:5px; }
.location-city-link img { transition:transform .25s ease; }
.city-services-section,.service-areas-section { width:min(1170px,calc(100% - 40px)); margin:0 auto; padding:72px 0; }
.city-services-heading { max-width:760px; margin-bottom:32px; }
.city-services-section { scroll-margin-top:90px; }
.city-services-heading h2,.service-areas-heading h2 { font-size:clamp(30px,3.2vw,44px); line-height:1.15; margin:12px 0 18px; text-wrap:balance; color:#302e2b; }
.city-services-heading h2 span { color:#ed6b1a; }
.city-services-heading>p:last-child,.service-areas-heading>p:last-child { font-size:17px; line-height:1.75; color:#69635f; }
.city-services-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:22px; }
.city-service-card { position:relative; grid-column:span 2; display:flex; flex-direction:column; min-width:0; padding:30px; border:1px solid #eee3db; border-radius:26px; background:#fff; box-shadow:0 12px 38px #302e2b08; transition:border-color .18s,box-shadow .18s; }
.city-service-card:nth-child(4) { grid-column:2 / span 2; }
.city-service-card:nth-child(5) { grid-column:4 / span 2; }
.city-service-card svg { width:42px; height:42px; stroke:#f57525; stroke-width:1.7; fill:none; stroke-linecap:round; stroke-linejoin:round; margin-bottom:20px; }
.city-service-card h3 { margin:0 0 12px; color:#302e2b; font-size:23px; line-height:1.25; }
.city-service-card p { margin:0 0 24px; color:#69635f; font-size:15px; line-height:1.75; }
.city-service-card a { margin-top:auto; color:#bd4a08; font-size:14px; font-weight:750; line-height:1.5; text-decoration:none; }
.city-service-card a::after { content:''; position:absolute; inset:0; border-radius:26px; }
.city-service-card:hover,.city-service-card:focus-within { border-color:#ff7826; box-shadow:0 14px 32px #ff782615; }
.city-service-card a:focus-visible { outline:none; }
.city-service-card a:focus-visible::after { outline:3px solid #ff7826; outline-offset:4px; }
.service-areas-section { margin:40px auto; padding:42px; border:1px solid #eee3db; border-radius:28px; background:#fbf8f5; }
.service-areas-heading { max-width:700px; margin-bottom:30px; }
.service-areas-groups { display:grid; grid-template-columns:2fr 1fr; gap:32px; }
.service-areas-groups h3 { margin:0 0 14px; font-size:21px; }
.service-area-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.service-areas-groups>div:last-child .service-area-links { grid-template-columns:1fr; }
.service-area-links a { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:16px; border-radius:14px; border:1px solid #eadfd7; background:#fff; color:#383532; font-size:14px; line-height:1.5; }
.service-area-links a:hover,.service-area-links a:focus-visible { border-color:#ff7826; color:#bd4a08; }
.service-area-links span { color:#ed6b1a; }
.city-service-body .city-program-link { font-size:15px; margin-top:22px; }
.city-service-body .city-program-link a,.city-context-links a { color:#b94808; text-decoration:underline; text-underline-offset:4px; }
.city-built-copy { min-width:0; border-left:3px solid #ff7826; padding-left:30px; }
.city-built-copy>p { margin:0; font-size:17px; line-height:1.8; color:#69635f; }
.city-context-links { display:grid; gap:12px; margin-top:20px; font-size:15px; line-height:1.6; }
.city-service-body .ps-related .ps-heading>p:not(.ps-kicker) { margin:22px 0 0; max-width:920px; font-size:16px; line-height:1.8; color:#e6ded8; }
.city-service-body .ps-related .ps-heading>p a { color:#ffad78; text-decoration:underline; text-underline-offset:4px; }
.city-service-body .ps-footer-bottom a { color:inherit; margin-left:16px; text-decoration:underline; }
.city-service-body .ps-title nav { flex-wrap:wrap; }
.city-service-body .ps-intro-copy,.city-service-body .ps-built-inner>* { min-width:0; }
@media(max-width:900px) {
  .city-services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .city-service-card,.city-service-card:nth-child(4),.city-service-card:nth-child(5) { grid-column:auto; }
  .city-service-card:last-child { grid-column:1/-1; }
  .service-areas-groups { grid-template-columns:1fr; }
  .service-areas-groups>div:last-child .service-area-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:620px) {
  .city-services-section,.service-areas-section { width:calc(100% - 30px); padding:48px 0; }
  .city-services-grid,.service-area-links,.service-areas-groups>div:last-child .service-area-links { grid-template-columns:1fr; }
  .city-service-card { padding:26px; border-radius:22px; }
  .service-areas-section { padding:28px 22px; }
  .city-service-body .ps-title h1 { font-size:clamp(26px,7vw,32px); text-wrap:balance; }
  .city-service-body .ps-why-copy h2 { font-size:30px; }
  .city-built-copy { padding-left:22px; }
}
@media(prefers-reduced-motion:reduce) { .city-service-card,.location-city-link img { transition:none; } }
