/* Shared navigation and reading shell. Keep brand journeys and intake controls
   in their owning stylesheets; use the existing site.css palette and type. */
.multisite-shell .skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 100;
  padding: 14px 20px;
  border: 2px solid var(--navy);
  border-radius: 6px;
  background: var(--white);
  color: var(--ink);
  transform: translateY(calc(-100% - 16px));
}
.multisite-shell .skip-link:focus {
  transform: none;
}
.multisite-shell :is(.skip-link, .site-header a, .site-header button,
  .compact-route-bar a, .private-service-disclosure a, .site-footer a,
  .site-footer button):focus-visible {
  outline: 3px solid var(--navy);
  outline-offset: 3px;
  box-shadow: 0 0 0 3px var(--white);
}
.multisite-shell .site-footer :is(a, button):focus-visible {
  outline-color: var(--gold);
  box-shadow: 0 0 0 3px var(--deep);
}
.multisite-shell #main-content {
  scroll-margin-top: 100px;
}
.multisite-shell #main-content:focus {
  outline: none; /* Programmatic skip target, not a tab stop or control. */
}
.multisite-shell .site-header .brand-mark {
  flex-shrink: 0;
}
.multisite-shell .site-navigation a {
  display: inline-flex;
  align-items: center;
  min-height: 46px;
  line-height: 1.4;
}
.multisite-shell .site-navigation a[aria-current="page"] {
  color: var(--navy);
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: 7px;
}
.multisite-shell .compact-route-bar {
  gap: 8px 20px;
  padding-block: 12px;
  font-size: 14px;
  line-height: 1.6;
}
.multisite-shell .compact-route-bar a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.multisite-shell .private-service-disclosure {
  font-size: 14px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
.multisite-shell .site-footer {
  gap: clamp(24px, 5vw, 64px);
  padding-block: clamp(32px, 5vw, 64px);
  line-height: 1.65;
}
.multisite-shell :is(.footer-brand, .footer-links) {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.multisite-shell .footer-brand p {
  max-width: 60ch;
  font-size: 16px;
}
.multisite-shell .footer-links :is(a, button) {
  display: flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  min-height: 44px;
  margin: 0;
  padding-block: 8px;
  font-size: 16px;
  line-height: 1.5;
  overflow-wrap: anywhere;
  text-decoration: underline;
  text-underline-offset: 4px;
}
@media (max-width: 980px) {
  /* In-flow navigation stays reachable at zoom and in short landscape windows.
     It cannot cover the request or disclosure below the header. */
  .multisite-shell .site-header {
    position: relative;
    column-gap: 12px;
  }
  .multisite-shell .site-header .brand {
    grid-column: 1;
    grid-row: 1;
  }
  .multisite-shell .site-header .header-actions {
    grid-column: 2;
    grid-row: 1;
  }
  .multisite-shell .site-header .header-phone {
    white-space: normal;
    max-width: 10ch;
    line-height: 1.4;
  }
  .multisite-shell .nav-toggle {
    display: none;
    grid-column: 3;
    grid-row: 1;
  }
  .multisite-shell .nav-ready .nav-toggle {
    display: inline-grid;
  }
  .multisite-shell .site-navigation {
    display: grid;
    position: static;
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    gap: 0;
    padding: 8px 0 4px;
    border-bottom: 0;
    box-shadow: none;
  }
  .multisite-shell .nav-ready:not(.nav-open) .site-navigation {
    display: none;
  }
  .multisite-shell .site-navigation a {
    white-space: normal;
    overflow-wrap: anywhere;
    font-size: 16px;
  }
  .multisite-shell .site-navigation :is(.mobile-menu-primary, .mobile-menu-secondary) {
    padding-block: 12px;
  }
  .multisite-shell #main-content {
    scroll-margin-top: 16px;
  }
  .multisite-shell .compact-route-bar {
    justify-content: flex-start;
  }
}

/* Service and FAQ reading pages only. Preserve each brand's existing content,
   grids and primary/secondary colors; no provider form or article selectors. */
.public-reading-page #main-content h1 {
  line-height: 1.12;
  margin-bottom: 20px;
}
.public-reading-page #main-content h2 {
  line-height: 1.18;
}
.public-reading-page #main-content h3 {
  line-height: 1.3;
}
.public-reading-page #main-content :is(.hero-text, .section-header > p:not(.eyebrow),
  .card-grid p, .faq-list p) {
  line-height: 1.65;
}
.public-reading-page #main-content .section-header > p:not(.eyebrow) {
  max-width: 65ch;
  margin-bottom: 16px;
}
.public-reading-page #main-content .section-header h2 {
  margin-bottom: 16px;
}
.public-reading-page #main-content .faq-list {
  max-width: 75ch;
  gap: 16px;
}
.public-reading-page #main-content .faq-list summary {
  line-height: 1.5;
}
.public-reading-page #main-content a.button {
  min-height: 48px;
  max-width: 100%;
  padding: 12px 20px;
  font-weight: 800;
  line-height: 1.4;
  white-space: normal;
}
.public-reading-page #main-content :is(a.button, .faq-list summary):focus-visible {
  outline: 3px solid var(--navy);
  outline-offset: 3px;
  box-shadow: 0 0 0 3px var(--white);
}
.public-reading-page #main-content .actions {
  gap: 16px;
  margin-top: 24px;
}
@media (max-width: 700px) {
  .public-reading-page #main-content .inline-actions {
    align-items: stretch;
  }
  .public-reading-page #main-content .inline-actions a.button {
    flex: 1 1 100%;
  }
}
