/* ==========================================================================
   Responsive — 1920 / 1440 / 1280 / tablet / 390 / 360
   ========================================================================== */

/* ---------- Large desktop (1920+) ---------- */
@media (min-width: 1800px) {
  :root { --nav-h: 96px; }
  .hero__copy { font-size: 1rem; }
}

/* ---------- Below wide desktop: side label would collide with hero copy ---------- */
@media (max-width: 1679px) {
  .hero__side { display: none; }
}

/* ---------- Laptop (≤1366) ---------- */
@media (max-width: 1366px) {
  .nav__phone { display: none; }
  .hero__title { grid-column: 1 / 8; }
  .hero__copy { grid-column: 8 / 13; }
}

/* ---------- Small laptop / large tablet (≤1180) ---------- */
@media (max-width: 1180px) {
  .nav__menu { display: none; }
  .nav__toggle { display: block; }

  .hero__grid { grid-template-rows: auto auto auto; row-gap: var(--space-lg); }
  .hero__title { grid-column: 1 / 13; grid-row: 2; max-width: 12ch; }
  .hero__copy { grid-column: 1 / 9; grid-row: 3; }
  .hero__side { display: none; }

  .services__layout { grid-template-columns: 1fr; }
  .services__index { display: none; }

  .areas__layout { grid-template-columns: 1fr; }
  .areas__map { position: relative; top: 0; max-width: 460px; }

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

/* ---------- Tablet (≤1024) ---------- */
@media (max-width: 1024px) {
  .about .section-index, .services__head .section-index, .areas__head .section-index { grid-column: 1 / 13; padding-top: 0; }
  .about__title, .services__head h2, .areas__head h2 { grid-column: 1 / 13; }
  .services__intro, .areas__intro { grid-column: 1 / 11; }

  .about__grid { row-gap: var(--space-lg); }
  .about__media--main { grid-column: 1 / 8; grid-row: 2; }
  .about__copy { grid-column: 1 / 13; grid-row: 3; }
  .about__media--detail { grid-column: 8 / 13; grid-row: 2; align-self: end; margin-bottom: -2rem; }
  .locator { grid-column: 1 / 13; grid-row: 4; }

  .cta__copy { grid-column: 1 / 11; }
  .contact__grid { grid-template-columns: 1fr; }
  .contact__info { position: relative; top: 0; }
}

/* ---------- Mobile (≤767) ---------- */
@media (max-width: 767px) {
  :root { --nav-h: 68px; }

  .nav__actions .btn--sm { display: none; }
  .nav__logo-mark { height: 38px; }

  .hero__grid { padding-top: calc(var(--nav-h) + 1.5rem); }
  .hero__eyebrow { grid-column: 1 / 13; font-size: 0.68rem; gap: 0.6rem; }
  .eyebrow__line { width: 24px; }
  .hero__title { font-size: clamp(2.6rem, 11.5vw, 4rem); }
  .hero__copy { grid-column: 1 / 13; }
  .hero__copy p:not(.hero__lead) { font-size: 0.92rem; }
  .hero__ctas .btn { flex: 1 1 100%; }
  .hero__img { object-position: 70% 50%; }

  .trust { grid-auto-flow: row; grid-template-columns: 1fr 1fr; }
  .trust__item, .trust__item + .trust__item { padding: 0.9rem 0.75rem 0.9rem 0; border-left: 0; flex-direction: column; align-items: flex-start; gap: 0.25rem; }
  .trust__item:nth-child(n) { border-bottom: 1px solid var(--c-line-light); }
  .trust__v { font-size: 0.82rem; line-height: 1.35; }

  .about__media--main { grid-column: 1 / 13; }
  .about__media--detail { display: none; }

  .service { row-gap: var(--space-sm); padding-bottom: var(--space-xl); }
  .service__num { font-size: 4.5rem; top: auto; bottom: auto; }
  .service .service__media,
  .service .service__body {
    grid-column: 1 / 13 !important;
    grid-row: auto !important;
    padding-top: 0; margin-top: 0;
  }
  .service .service__media { aspect-ratio: 4 / 3 !important; }
  .service .service__num { right: 0; left: auto; top: calc(var(--space-lg) + 0.5rem); z-index: 2; color: transparent; -webkit-text-stroke: 1px rgba(245, 243, 239, 0.9); }
  .service:first-child .service__num { top: 0.5rem; }
  .service--c .service__body { padding: 0; background: none; }
  .service--f .service__body { grid-template-columns: 1fr; }
  .service--d .service__title { font-size: var(--fs-h3); }
  .service__body p { font-size: 1.05rem; }
  .services__cta { justify-content: stretch; }
  .services__cta .btn, .areas__close .btn { width: 100%; }

  .why__panel { padding-block: var(--space-xl); }
  .feature__num { font-size: 5rem; }

  .area { grid-template-columns: 1fr; gap: 0.75rem; padding-block: 1.5rem; }
  .areas__close { flex-direction: column; align-items: stretch; padding: 1.5rem; }

  .cta { min-height: auto; }
  .cta__title { font-size: clamp(2.4rem, 10vw, 3.75rem); }
  .cta__copy { grid-column: 1 / 13; font-size: 1.05rem; }
  .cta__buttons .btn { flex: 1 1 100%; }

  .form__row { grid-template-columns: 1fr; }
  .form { padding: 1.5rem 1.25rem; margin-inline: calc(var(--gutter) * -1); }
  .form__foot .btn { width: 100%; }
  .contact__details div { grid-template-columns: 1fr; gap: 0.15rem; }
  .contact__call-num { font-size: clamp(2.2rem, 11vw, 3rem); }

  .footer__top { grid-template-columns: 1fr; }
  .footer__top-btn { width: 60px; height: 60px; }
}

/* ---------- Small mobile (≤400 — 390 / 360) ---------- */
@media (max-width: 400px) {
  .hero__title { font-size: clamp(2.35rem, 11vw, 2.75rem); }
  .nav__logo-text { font-size: 0.62rem; }
  .btn { padding-inline: 1.25rem; font-size: 0.9rem; }
  .trust { grid-template-columns: 1fr; }
  .choice__opt span { padding-inline: 0.85rem; }
}

/* ---------- Touch devices: no hover-only affordances ---------- */
@media (hover: none) {
  .cursor { display: none !important; }
}
