/* ==========================================================================
   Bold — citywide-bold-usa
   responsive.css: breakpoints down to 375px. Mobile gets: collapsed nav with
   a working hamburger, a stacked hero, a fixed bottom call bar (the desktop
   call rail hides), and single-column grids everywhere. No rule here may
   introduce horizontal overflow.
   ========================================================================== */

/* Guard against any accidental horizontal scroll on small screens. */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

/* -------------------------------------------------------------------------
   Desktop nav dropdowns are the >1024px story only — below that the mobile
   overlay owns "Services" / "Areas We Serve".
   ------------------------------------------------------------------------- */

@media (max-width: 1080px) {
  .nav__links,
  .nav__cta {
    display: none;
  }

  .nav__toggle {
    display: flex;
  }

  .callRail {
    display: none;
  }
}

@media (min-width: 1081px) {
  .mobileNav,
  .mobileNav__panel {
    display: none;
  }
}

/* -------------------------------------------------------------------------
   Mobile call bar — sticky bottom bar. Shown < 768px; body gets bottom
   padding so page content (and the cookie banner) is never covered.
   ------------------------------------------------------------------------- */

@media (max-width: 767px) {
  .callBar {
    display: block;
  }

  body {
    padding-bottom: var(--callbar-h);
  }

  .callRail {
    display: none;
  }
}

/* -------------------------------------------------------------------------
   ≤1080px — tighten section rhythm, collapse the widest grids to 2 columns.
   ------------------------------------------------------------------------- */

@media (max-width: 1080px) {
  .hero__grid {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .hero__copy {
    padding: 48px 24px 40px;
    max-width: none;
  }

  .hero__visual {
    min-height: 260px;
  }

  .intro__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .intro__title {
    position: static;
  }

  .servicesGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .serviceCard--featured {
    grid-column: span 2;
    grid-row: span 1;
  }

  .aboutGrid {
    grid-template-columns: 1fr 1fr;
  }

  .aboutGrid > :first-child {
    grid-column: span 2;
  }

  .decisionGrid {
    grid-template-columns: 1fr;
  }

  .stepsWhyGrid {
    grid-template-columns: 1fr;
  }

  .ctaBanner__grid {
    grid-template-columns: 1fr;
  }

  .spotlight {
    grid-template-columns: 1fr;
  }

  .spotlight__tabs {
    flex-direction: row;
    overflow-x: auto;
    padding-bottom: 4px;
  }

  .spotlight__tab {
    flex: 0 0 auto;
  }

  .footer__grid {
    grid-template-columns: 1fr 1fr;
  }

  .metrics__grid {
    grid-template-columns: 1fr 1fr;
  }

  .blogGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* -------------------------------------------------------------------------
   ≤767px — single column everywhere, tighter type scale, full-width cards.
   ------------------------------------------------------------------------- */

@media (max-width: 767px) {
  .container {
    padding: 0 18px;
  }

  .section,
  .services,
  .intro,
  .areas,
  .landmarks,
  .ctaBanner,
  .process {
    padding: 48px 0;
  }

  .hero__copy {
    padding: 40px 18px 32px;
  }

  .hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .hero__actions .btn {
    width: 100%;
  }

  .hero__visualPanel {
    position: static;
    margin: 16px;
    grid-template-columns: repeat(3, 1fr);
  }

  .hero__visual {
    min-height: 0;
    padding-bottom: 16px;
  }

  .hero__visual--panel {
    padding: 32px 0;
  }

  .hero__visualGlyph {
    width: 120px;
    height: 120px;
  }

  .hero__visualGlyph svg {
    width: 56px;
    height: 56px;
  }

  .topbar__group {
    gap: 12px;
  }

  .topbar .container {
    justify-content: center;
    text-align: center;
  }

  .topbar__right {
    width: 100%;
    justify-content: space-between;
  }

  .servicesGrid,
  .aboutGrid,
  .metrics__grid,
  .landmarks__grid,
  .process__grid,
  .blogGrid,
  .valuesBand__list,
  .footer__grid {
    grid-template-columns: 1fr !important;
  }

  .serviceCard--featured {
    grid-column: auto;
    grid-row: auto;
  }

  .aboutGrid > :first-child {
    grid-column: auto;
  }

  .footer__ctaInner {
    flex-direction: column;
    align-items: flex-start;
  }

  .footer__ctaInner .btn {
    width: 100%;
  }

  .footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }

  .areasGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .breadcrumbs__list {
    font-size: 12px;
  }

  .cookieConsent__inner {
    flex-direction: column;
    align-items: stretch;
  }

  .cookieConsent__btn {
    width: 100%;
  }
}

@media (max-width: 420px) {
  .areasGrid {
    grid-template-columns: 1fr 1fr;
  }

  .hero__visualPanel {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .hero__stat {
    display: flex;
    align-items: baseline;
    gap: 8px;
  }
}
