/* Mobile portal: blue/white palette, shared national + city. No desktop selectors. */
body.mobile-site {
  --accent: #1558c8;
  --theme-dark: #1048a5;
  --theme-soft: #edf4ff;
  --portal-ink: #172b4d;
  --portal-muted: #475467;
  background: #f5f7fa;
  color: var(--portal-ink);
  -webkit-text-size-adjust: 100%;
  padding-bottom: calc(74px + env(safe-area-inset-bottom));
}
body.mobile-site :focus-visible { outline: 3px solid #1558c8; outline-offset: 3px; }
body.mobile-site .wrap { width: calc(100% - 32px); }
body.mobile-site header { background: #fff; box-shadow: none; border-bottom: 1px solid #e4e7ec; }
body.mobile-site .nav { height: 64px; gap: 12px; }
body.mobile-site .brand { flex: 1; max-width: none; min-width: 0; }
body.mobile-site .brand-symbol { color: #1558c8; }
body.mobile-site .brand-name strong { font-size: 17px; letter-spacing: -.3px; }
body.mobile-site .brand-name small { font-size: 9px; color: #667085; }
body.mobile-site .header-call {
  /* Override the legacy white !important limited to this mobile contact button. */
  background: #edf4ff; border: 1px solid #cbdcf8; color: #1558c8 !important;
  box-shadow: none; padding: 0 12px; min-height: 44px; border-radius: 10px;
  flex-direction: row; gap: 6px; flex-shrink: 0; align-items: center; line-height: 1.2;
}
body.mobile-site .header-call .ui-icon { width: 16px; height: 16px; }
body.mobile-site .header-call small { font-size: 12px; color: inherit; line-height: 1.2; white-space: nowrap; }
body.mobile-site .header-call strong { display: none; }
body.mobile-site .mobile-primary {
  display: flex; align-items: stretch; gap: 0; padding: 0 12px;
  border-top: 1px solid #f2f4f7; overflow-x: auto; scrollbar-width: none;
}
body.mobile-site .mobile-primary::-webkit-scrollbar { display: none; }
body.mobile-site .mobile-primary a {
  flex: 1 0 auto; min-height: 44px; padding: 12px 8px; font-size: 13px;
  text-align: center; white-space: nowrap; color: #475467; border-bottom: 2px solid transparent;
}
body.mobile-site .mobile-primary a[aria-current=page] { color: #1558c8; font-weight: 700; border-bottom-color: var(--accent); }
body.mobile-site .site-context { font-size: 11px; background: #f5f7fa; }
body.mobile-site .site-context .wrap { min-height: 36px; }
body.mobile-site.home .site-context { display: none; }
body.mobile-site .page-breadcrumb { padding-top: 12px; font-size: 11px; }
body.mobile-site .page-breadcrumb > span { display: none; }
body.mobile-site .page-breadcrumb a::before { content: '‹ '; }
body.mobile-site .portal-hero { background: #0b2b57; }
body.mobile-site .portal-hero:after,
body.mobile-site.city .portal-hero:after { background: linear-gradient(100deg,#0b2b57f5 10%,#103a70db 54%,#10458b8c); }
body.mobile-site .portal-hero-content { min-height: 304px; padding-top: 25px; padding-bottom: 42px; }
body.mobile-site .portal-eyebrow { font-size: 11px; letter-spacing: .4px; opacity: .88; }
body.mobile-site .portal-hero h1 { font-size: 26px; line-height: 1.45; max-width: none; margin-bottom: 10px; }
body.mobile-site .portal-hero h1 span { font-size: 19px; color: #c2ddff; }
body.mobile-site.national .portal-headline-wrap { color: #fff; }
body.mobile-site .portal-hero p { font-size: 13px; line-height: 1.8; color: #edf4ff; }
body.mobile-site .portal-hotline { gap: 8px; margin: 14px 0; }
body.mobile-site .portal-hotline .hero-phone { font-size: clamp(24px,7.2vw,30px); }
body.mobile-site .portal-hotline .hero-dial { display: none; }
body.mobile-site .portal-search { height: 48px; border-radius: 10px; box-shadow: none; }
body.mobile-site input, body.mobile-site .portal-search input, body.mobile-site .search input { font-size: 16px; min-width: 0; }
body.mobile-site .portal-search input::placeholder { font-size: 13px; }
body.mobile-site .portal-search button { font-size: 14px; min-width: 64px; background: #1558c8; }
body.mobile-site .portal-hot { font-size: 11px; gap: 14px; margin-top: 10px; }
body.mobile-site .portal-hot a { padding: 6px 0; }
body.mobile-site .hero-photo-note { font-size: 9px; bottom: 25px; }
body.mobile-site .portal-shortcuts,
body.mobile-site .service-points { border: 1px solid #e4e7ec; border-radius: 14px; box-shadow: 0 6px 20px #17324e07; }
body.mobile-site .portal-shortcuts { gap: 16px 3px; padding: 18px 6px; }
body.mobile-site .shortcut-icon { width: 42px; height: 42px; background: #edf4ff; color: #1558c8; border-radius: 13px; }
body.mobile-site .portal-shortcuts strong { font-size: 12px; color: #243b53; }
body.mobile-site .service-points { gap: 16px 12px; padding: 18px 14px; }
body.mobile-site .service-points .ui-icon { color: #1558c8; width: 24px; height: 24px; }
body.mobile-site .service-points strong { font-size: 13px; }
body.mobile-site .service-points small { font-size: 11px; color: #667085; }
body.mobile-site .portal-panel { padding: 18px 16px; border: 1px solid #e4e7ec; border-radius: 14px; box-shadow: none; }
body.mobile-site .panel-heading h2, body.mobile-site .portal-panel > h2 { font-size: 19px; letter-spacing: -.3px; }
body.mobile-site .panel-heading > a { font-size: 12px; padding: 8px 0 8px 8px; }
body.mobile-site .news-category { font-size: 11px; color: #1558c8; }
body.mobile-site .news-feature { gap: 8px; }
body.mobile-site .news-feature img { border-radius: 9px; height: 150px; }
body.mobile-site .news-feature h3 { font-size: 17px; line-height: 1.6; }
body.mobile-site .news-feature p { font-size: 13px; line-height: 1.8; color: #475467; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body.mobile-site .news-row h3 { font-size: 14px; line-height: 1.65; }
body.mobile-site .news-row img { width: 88px; height: 66px; border-radius: 8px; }
body.mobile-site .news-row time, body.mobile-site .news-feature time { font-size: 11px; color: #667085; }
body.mobile-site .city-columns .service-photo { flex-basis: 90px; }
body.mobile-site .city-columns .service-photo img { min-height: 118px; }
body.mobile-site .city-columns .service-card h3 { font-size: 15px; }
body.mobile-site .city-columns .service-card p { font-size: 12px; color: #475467; }
body.mobile-site .service-card { border: 1px solid #e4e7ec; border-radius: 10px; box-shadow: none; }
body.mobile-site .service-card-actions { align-items: center; }
body.mobile-site .service-card .service-call { min-height: 40px; padding: 9px 12px; font-size: 12px; }
body.mobile-site .service-detail-link { min-height: 40px; display: inline-flex; align-items: center; }
body.mobile-site .filter { gap: 8px; }
body.mobile-site .filter a { font-size: 13px; min-height: 40px; padding: 9px 12px; }
body.mobile-site .article-card { display: flex; }
body.mobile-site .article-info h3 { font-size: 15px; line-height: 1.65; -webkit-line-clamp: 3; }
body.mobile-site .article-meta { font-size: 11px; color: #667085; }
body.mobile-site .article-thumb { width: 88px; height: 76px; object-fit: cover; }
body.mobile-site .reading { padding: 18px 20px 24px; margin-top: 12px; border-radius: 14px; border-color: #e4e7ec; }
body.mobile-site .reading article { margin: 12px 0; }
body.mobile-site .reading article h1 { font-size: 22px; line-height: 1.5; letter-spacing: -.35px; margin: 12px 0; overflow-wrap: anywhere; }
body.mobile-site .reading .byline { font-size: 11px; line-height: 1.7; color: #667085; margin: 0 0 18px; }
/* The direct answer already starts the body; keep the abstract in metadata/desktop. */
body.mobile-site .reading article > .lead { display: none; }
body.mobile-site .reading .article-body { font-size: 16px; line-height: 1.95; color: #344054; overflow-wrap: anywhere; }
body.mobile-site .article-body figure { margin: 20px 0; }
body.mobile-site .article-body figure img { border-radius: 10px; }
body.mobile-site .article-body figcaption { font-size: 11px; line-height: 1.7; color: #667085; }
body.mobile-site .reading .call-primary { min-height: 46px; padding: 12px 16px; }
body.mobile-site footer { padding-bottom: 28px; }
body.mobile-site .conversion-mobile-nav {
  display: grid; grid-template-columns: 56px 66px minmax(0,1fr); gap: 8px;
  padding: 8px 16px calc(8px + env(safe-area-inset-bottom)); min-height: 66px;
  background: #fff; border-top: 1px solid #e4e7ec; box-shadow: 0 -4px 18px #17324e08;
  backdrop-filter: none;
}
body.mobile-site .conversion-mobile-nav > a:not(.mobile-call) { width: auto; min-height: 48px; padding: 3px 0; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 3px; font-size: 11px; color: #475467; }
body.mobile-site .conversion-mobile-nav .ui-icon { width: 19px; height: 19px; }
body.mobile-site .conversion-mobile-nav .mobile-call { width: auto; min-height: 48px; padding: 6px 8px; border-radius: 10px; gap: 8px; background: #1558c8; }
body.mobile-site .mobile-call-copy { display: flex; flex-direction: column; align-items: flex-start; }
body.mobile-site .mobile-call-copy span { display: block; font-size: 10px; line-height: 1.4; color: #fff; }
body.mobile-site .mobile-nav .mobile-call strong { font-size: 16px; line-height: 1.5; }
@media (max-width:359px) {
  body.mobile-site .brand-name strong { font-size: 14px; }
  body.mobile-site .mobile-primary { padding-inline: 8px; }
  body.mobile-site .mobile-primary a { padding-inline: 6px; font-size: 12px; }
  body.mobile-site .header-call { padding: 0 8px; }
  body.mobile-site .conversion-mobile-nav { padding-left: 12px; padding-right: 12px; grid-template-columns: 45px 56px minmax(0,1fr); gap: 5px; }
  body.mobile-site .mobile-nav .mobile-call strong { font-size: 15px; }
  body.mobile-site .portal-shortcuts strong { font-size: 11px; }
}
@media (prefers-reduced-motion:reduce) { body.mobile-site *, body.mobile-site *::before, body.mobile-site *::after { scroll-behavior: auto; transition: none; animation: none; } }

/* Semantic roles: one interaction blue, neutral reading surfaces. */
body.mobile-site { --portal-link: #1558c8; --portal-surface: #fff; --portal-border: #e4e7ec; }
body.mobile-site .brand-symbol:after { background: var(--portal-link); }
body.mobile-site .brand-name strong,
body.mobile-site .panel-heading h2,
body.mobile-site .portal-panel > h2,
body.mobile-site .reading article h1 { color: var(--portal-ink); }
body.mobile-site .mobile-primary a[aria-current=page] { color: var(--portal-link); }
body.mobile-site .tag,
body.mobile-site .filter a.active,
body.mobile-site .filter a[aria-current=page] { background: var(--theme-soft); color: var(--portal-link); border-color: #cbdcf8; }
body.mobile-site .page-breadcrumb a,
body.mobile-site .service-detail-link,
body.mobile-site .footer-phone,
body.mobile-site .detail-phone { color: var(--portal-link); }
body.mobile-site .service-card .service-call,
body.mobile-site .coverage-call,
body.mobile-site .reading .call-primary,
body.mobile-site .conversion-mobile-nav .mobile-call { background: var(--accent); color: #fff; }
body.mobile-site .portal-search button:hover,
body.mobile-site .service-card .service-call:hover,
body.mobile-site .coverage-call:hover,
body.mobile-site .reading .call-primary:hover,
body.mobile-site .conversion-mobile-nav .mobile-call:hover { background: var(--theme-dark); color: #fff; }
body.mobile-site .portal-search button:active,
body.mobile-site .conversion-mobile-nav .mobile-call:active { background: #0d3c8a; }
body.mobile-site .portal-hotline .hero-phone { color: #fff; }
body.mobile-site .header-call:hover { background: #dceaff; }
body.mobile-site .portal-shortcuts a:hover .shortcut-icon { background: #dceaff; }
