/* Mobile and accessibility refinements */
html, body { max-width: 100%; overflow-x: clip; }
img { max-width: 100%; }
h1, h2, h3, p, li, a, strong { overflow-wrap: break-word; }
a, button { touch-action: manipulation; }

@media (max-width: 900px) {
  .menu { min-width: 44px; min-height: 44px; cursor: pointer; }
  .nav nav a { display: flex; align-items: center; min-height: 44px; }
  .nav nav.open { max-height: calc(100vh - 74px); overflow-y: auto; }
  .hero { min-height: auto; }
  .section-head { gap: 1rem; }
  .content-nav { height: auto; min-height: 86px; padding: .7rem 5vw; gap: .75rem; }
  .content-nav nav { gap: .65rem; }
  .content-nav nav a { min-height: 44px; display: inline-flex; align-items: center; }
  .content-nav nav a:not(.nav-cta) { display: none; }
  .content-hero { min-height: auto; }
  .sources a, .technical-card a, .matter a { min-height: 44px; display: inline-flex; align-items: center; }
}

@media (max-width: 520px) {
  h1 { font-size: clamp(2.7rem, 14vw, 3.35rem); overflow-wrap: anywhere; }
  .hero { padding-top: 112px; }
  .hero-actions { gap: 1rem; margin-bottom: 3rem; }
  .hero-actions a { width: 100%; min-height: 48px; display: flex; align-items: center; justify-content: space-between; }
  .hero-proof { gap: 1.25rem .75rem; }
  .section { padding: 4.5rem 6vw; }
  .section-head { align-items: flex-start; flex-direction: column; }
  .statement h2, .approach h2, .questions h2, .contact h2,
  .expertise-intro h2, .credentials h2, .technical-heading h2,
  .matters-heading h2 { font-size: clamp(2.45rem, 12vw, 3.2rem); overflow-wrap: anywhere; }
  .expertise-row { gap: .8rem; }
  .approach-image { height: min(118vw, 460px); }
  .image-mark { right: 0; bottom: 0; max-width: 88%; }
  .matter-meta { flex-direction: column; }
  .technical-card { padding: 2.35rem 0; }
  .credential-facts { margin-top: 2.5rem; }
  .credentials-quote { padding-left: 1.5rem; }
  .contact-card strong { overflow-wrap: anywhere; }
  footer { padding: 2.2rem 6vw; }

  .content-nav > a img { width: 78px; height: 54px; }
  .content-nav .nav-cta { padding: .7rem .8rem; white-space: nowrap; }
  .content-hero { padding: 5.2rem 6vw 3.5rem; }
  .content-hero h1, .hub h1 { font-size: clamp(2.45rem, 12vw, 3.25rem); overflow-wrap: anywhere; }
  .content-hero aside { padding-left: 1.25rem; }
  .content-body { padding: 3.5rem 6vw; }
  .content-section { padding: 2.5rem 0; }
  .content-section p, .content-section li { font-size: 1rem; }
  .content-cta { margin-top: 2.5rem; padding: 2.25rem 1.25rem; }
  .content-cta a { width: 100%; overflow-wrap: anywhere; }
  .hub { padding: 5.5rem 6vw 4rem; }
  .hub > header { margin-bottom: 3rem; }
  .hub-card, .hub-card:nth-child(even) { min-height: 0; padding: 2.2rem 0; }
  .hub-card h2 { font-size: 1.7rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
