/* =========================================================
   Fortis Legal — responsive.css
   Breakpoints: 1200, 960, 720, 520
   ========================================================= */

/* ---------- New sections: 1100 ---------- */
@media (max-width: 1100px) {
  .philosophy__grid,
  .jurisdictions__grid,
  .awards__grid {
    grid-template-columns: 1fr;
    row-gap: 56px;
  }
  .philosophy__grid {
    grid-template-areas: "head" "engraving" "creed";
  }
  .awards__grid {
    grid-template-areas: "head" "laurel" "list";
  }
  .philosophy__engraving,
  .awards__laurel { max-width: 360px; }
  .jurisdictions__compass { max-width: 400px; }
}

/* ---------- 1200 ---------- */
@media (max-width: 1200px) {
  .hero__grid {
    column-gap: 56px;
  }
  .attorney-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .attorney-grid .attorney:nth-child(4) { display: none; }

  .approach__steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .approach__steps li {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .approach__steps li:nth-child(2n) { padding-right: 0; }
  .approach__steps li:nth-child(2n+1) { padding-right: 32px; border-right: 1px solid var(--line); }
  .approach__steps li:nth-last-child(-n+2) { border-bottom: 0; }
}

/* ---------- 960 ---------- */
@media (max-width: 960px) {
  .primary-nav { display: none; }
  .nav-toggle { display: inline-flex; }
  .site-header__cta .btn--ghost { display: none; }

  .hero { padding-top: 160px; }
  .hero__grid {
    grid-template-columns: 1fr;
    grid-template-areas:
      "eyebrow"
      "headline"
      "lede"
      "actions"
      "aside";
    row-gap: 36px;
  }
  .hero__aside {
    margin-top: 24px;
    padding-top: 24px;
  }
  .hero__stats { gap: 32px; }
  .hero__marquee { margin-top: 80px; }

  .firm__grid {
    grid-template-columns: 1fr;
    grid-template-areas:
      "head"
      "visual"
      "body";
    row-gap: 48px;
  }
  .firm__visual img,
  .firm__visual figcaption { transform: none; }

  .section-head--split {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .practice-row {
    grid-template-columns: 50px minmax(0, 1fr) 50px;
    grid-template-areas:
      "num title arrow"
      "num body  body";
    column-gap: 24px;
    row-gap: 16px;
  }
  .practice-row__num { grid-area: num; }
  .practice-row__title { grid-area: title; }
  .practice-row__body { grid-area: body; max-width: none; }
  .practice-row__arrow { grid-area: arrow; align-self: start; }

  .approach__grid {
    grid-template-columns: 1fr;
    grid-template-areas:
      "head"
      "lede"
      "steps";
    row-gap: 40px;
  }
  .approach__lede { max-width: none; }

  .attorney-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .attorney-grid .attorney:nth-child(4) { display: flex; }

  .results__grid { grid-template-columns: 1fr; }
  .case {
    border-right: 0;
    border-bottom: 1px solid var(--line);
    padding: 40px 0;
  }
  .case:last-child { border-bottom: 0; }
  .case + .case { padding-left: 0; }

  .voices__stage { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .voices__stage .voices__nav { display: none; }
  .voice-card { padding: 36px 32px 40px; }
  .voice-card__head { flex-direction: column; align-items: flex-start; gap: 20px; }

  .contact__grid {
    grid-template-columns: 1fr;
    gap: 64px;
  }
  .contact-form { padding: 36px; }

  .site-footer__top {
    grid-template-columns: 1fr;
    gap: 48px;
    padding-bottom: 48px;
  }
}

/* ---------- 720 ---------- */
@media (max-width: 720px) {
  :root {
    --gutter: 22px;
    --section-y: 80px;
  }

  .hero { padding-top: 140px; padding-bottom: 40px; }
  .hero__headline { max-width: none; }
  .hero__stats { grid-template-columns: 1fr 1fr; gap: 28px 36px; }
  .hero__watermark { top: 100px; right: -80px; opacity: 0.12; }

  .philosophy__creed li { grid-template-columns: 40px 1fr; column-gap: 16px; padding: 26px 0; }
  .jurisdictions__list li { grid-template-columns: 48px 1fr; }
  .awards__list li { grid-template-columns: 80px 1fr; row-gap: 6px; }
  .awards__list .awards__year { grid-column: 2; }
  .ornament svg { width: 180px; }

  .approach__steps { grid-template-columns: 1fr; }
  .approach__steps li {
    padding: 32px 0 !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--line);
  }
  .approach__steps li:last-child { border-bottom: 0; }
  .approach__roman { margin-bottom: 28px; }

  .attorney-grid { grid-template-columns: 1fr 1fr; gap: 24px; }
  .attorney__meta { display: none; }

  .voice-card { padding: 32px 24px 36px; }
  .voice-card__who img { width: 52px; height: 52px; }
  .voices__title { font-size: clamp(42px, 12vw, 64px); }
  .contact-form { padding: 28px 24px; }
  .contact-form__row { grid-template-columns: 1fr; gap: 24px; }
  .contact__offices li { grid-template-columns: 1fr; gap: 4px; padding-bottom: 16px; }
  .contact__city { font-size: var(--fs-lg); }

  .site-footer__cols { grid-template-columns: 1fr 1fr; }
  .site-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .site-footer__wordmark { padding-block: 28px; }
}

/* ---------- 520 ---------- */
@media (max-width: 520px) {
  .hero__stats { grid-template-columns: 1fr; gap: 22px; }
  .hero__actions { gap: 20px; }
  .btn { --btn-pad-x: 20px; }

  .attorney-grid { grid-template-columns: 1fr; }
  .attorney-grid .attorney:nth-child(n+4) { display: none; }

  .site-footer__cols { grid-template-columns: 1fr; }
  .contact-form__footer { flex-direction: column; align-items: flex-start; }
}
