/* Northpoint Civic 2.6: responsive resident services and optional dashboard. */
.dc-service-categories { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 24px; }
.dc-service-category { min-height: 44px; padding: 9px 17px; font: inherit; font-weight: 700; font-size: .9rem; border: 1px solid #819e98; border-radius: 999px; color: #173b40; background: #fff; cursor: pointer; }
.dc-service-category:is(:hover, :focus-visible), .dc-service-category.is-active { background: #075d59; border-color: #075d59; color: #fff; }
.dc-service-category:focus-visible, .dc-service-quicklinks a:focus-visible, .dc-resident-hub a:focus-visible { outline: 3px solid #a66f14; outline-offset: 3px; }
.dc-service-quicklinks { display: flex; gap: 8px 24px; flex-wrap: wrap; padding: 18px 4px 0; border-top: 1px solid #dce5df; margin-top: 20px; }
.dc-service-quicklinks a { display: inline-flex; align-items: center; min-height: 44px; color: #075d59; font-weight: 700; }
.dc-service-finder .dc-finder-controls { margin-bottom: 18px; }
.dc-service-finder .dc-service-list > [hidden] { display: none !important; }
.dc-service-finder .dc-finder-empty[hidden] { display: none !important; }
.dc-resident-hub { max-width: 1240px; width: min(1240px, calc(100% - 48px)); margin: 40px auto 60px; }
.dc-resident-hub-heading { margin-bottom: 20px; }
.dc-resident-hub-heading h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); letter-spacing: -.03em; color: #092d3c; margin: 6px 0 0; }
.dc-resident-hub-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.dc-resident-hub-card { border-radius: 15px; border: 1px solid #d8e4df; background: #fff; padding: 24px; display: flex; flex-direction: column; gap: 11px; box-shadow: 0 6px 24px rgba(18,49,52,.055); }
.dc-resident-hub-card h3 { font: 700 1.2rem/1.3 system-ui, sans-serif; color: #123841; margin: 0; }
.dc-resident-hub-card p { margin: 0; line-height: 1.55; color: #294b53; }
.dc-resident-hub-card .dc-hub-kicker { font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.dc-resident-hub-card ul { list-style: none; padding: 0; margin: 0; }
.dc-resident-hub-card li { display: flex; gap: 8px; align-items: baseline; justify-content: space-between; border-bottom: 1px solid #e1eae5; padding: 8px 0; }
.dc-resident-hub-card li time { flex: 0 0 auto; font-size: .78rem; font-weight: 700; }
.dc-resident-hub-card a { color: #075d59; }
.dc-resident-hub-card a.dc-hub-action { display: inline-flex; align-items: center; justify-content: center; text-align: center; min-height: 44px; padding: 10px 14px; border-radius: 9px; background: #075d59; color: #fff; font-weight: 700; text-decoration: none; margin-top: auto; }
.dc-resident-hub-card a.dc-hub-secondary { display: inline-flex; min-height: 44px; align-items: center; font-weight: 700; }
@media (max-width: 1000px) { .dc-resident-hub-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 650px) { .dc-service-categories { gap: 7px; } .dc-service-category { padding-inline: 12px; font-size: .85rem; } .dc-resident-hub { width: calc(100% - 32px); } .dc-resident-hub-grid { grid-template-columns: 1fr; } .dc-resident-hub-card { padding: 20px; } }
@media (prefers-reduced-motion: reduce) { .dc-resident-hub-card, .dc-service-category { transition: none !important; } }
