@media (max-width: 620px) {
  .container { width: min(calc(100% - 32px), var(--max)); }
  .site-header .container { width: min(calc(100% - 24px), var(--max)); }
  .header-inner { min-height: 60px; gap: 10px; }
  .nav { inset-block-start: 60px; padding: 18px 16px 22px; }
  .brand { font-size: 1rem; }
  .brand small { display: none; }
  .menu-toggle { width: 40px; height: 40px; }

  .hero { padding: 24px 0 44px; }
  .hero-grid { gap: 28px; }
  .eyebrow { margin-bottom: 10px; font-size: .68rem; }
  .hero-copy h1, .page-hero h1 {
    max-width: 11ch;
    font-size: clamp(2.15rem, 10.8vw, 3.25rem);
    line-height: .98;
    letter-spacing: -.058em;
  }
  .hero-copy p.lead, .page-hero p.lead {
    margin-top: 16px;
    font-size: .96rem;
    line-height: 1.5;
  }
  .hero-cta { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 20px; }
  .hero-cta .btn { width: 100%; }
  .quick-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin-top: 22px;
    padding-top: 0;
    border: 1px solid var(--line);
  }
  .quick-meta span {
    min-width: 0;
    padding: 11px 10px;
    border-bottom: 1px solid var(--line);
    font-size: .74rem;
    line-height: 1.35;
  }
  .quick-meta span:nth-child(odd) { border-right: 1px solid var(--line); }
  .quick-meta span:nth-last-child(-n+2) { border-bottom: 0; }
  .quick-meta strong { display: block; margin-bottom: 2px; font-size: .84rem; }

  .contact-sheet,
  .route-grid,
  .services-strip,
  .photo-band {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .contact-sheet::-webkit-scrollbar,
  .route-grid::-webkit-scrollbar,
  .services-strip::-webkit-scrollbar,
  .photo-band::-webkit-scrollbar { display: none; }

  .contact-sheet {
    max-width: none;
    min-height: 0;
    aspect-ratio: auto;
    scroll-padding-inline: 0;
    padding-bottom: 4px;
  }
  .photo-tile,
  .photo-tile.main,
  .photo-tile:nth-child(2),
  .photo-tile:nth-child(3) {
    flex: 0 0 84%;
    grid-column: auto;
    grid-row: auto;
    aspect-ratio: 4 / 5;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
  .photo-tile:nth-child(2), .photo-tile:nth-child(3) { flex-basis: 68%; }
  .photo-index { left: 8px; bottom: 8px; font-size: .6rem; }

  .section { padding: 46px 0; }
  .section.compact { padding-block: 40px; }
  .section-head { gap: 14px; margin-bottom: 22px; }
  .section-head h2,
  .story-copy h2,
  .story-copy h3,
  .address-card h2 {
    max-width: 14ch;
    font-size: clamp(1.9rem, 8.5vw, 2.55rem);
    line-height: 1.02;
    letter-spacing: -.05em;
  }
  .section-head p, .story-copy p { font-size: .94rem; line-height: 1.5; }

  .route-grid {
    border: 0;
    padding-bottom: 4px;
    scroll-padding-inline: 0;
  }
  .route {
    flex: 0 0 86%;
    min-height: 250px;
    padding: 22px 20px;
    gap: 26px;
    border: 1px solid var(--ink);
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
  .route + .route { border-left: 1px solid var(--ink); border-top: 1px solid var(--ink); }
  .route h3 { max-width: 12ch; font-size: 1.75rem; }
  .route p { font-size: .91rem; }

  .services-strip {
    width: 100%;
    padding: 0 16px 4px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    scroll-padding-inline: 16px;
  }
  .service-chip,
  .service-chip:nth-child(even),
  .service-chip:nth-last-child(1) {
    flex: 0 0 68%;
    min-width: 0;
    padding: 14px 16px;
    border: 1px solid var(--line) !important;
    background: var(--paper);
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
  .service-chip span { font-size: .66rem; }
  .service-chip strong { font-size: .86rem; }

  .visual-story { gap: 24px; }
  .story-list { margin-top: 18px; }
  .story-list li { padding: 11px 0; font-size: .84rem; }
  .story-media { min-height: 0; aspect-ratio: 4 / 3; }

  .proof-band { gap: 22px; padding: 26px 20px; }
  .proof-score strong { font-size: 4.25rem; }
  .proof-score span { margin-top: 7px; font-size: .78rem; }
  .proof-copy h2 { max-width: 15ch; font-size: 2rem; }
  .proof-copy p { margin-top: 12px; font-size: .9rem; }

  .location-grid { gap: 16px; }
  .address-card { padding: 22px 18px; }
  .address { margin: 18px 0; font-size: .94rem; }
  .contact-links {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
  }
  .contact-links .btn { min-width: 0; padding-inline: .45rem; font-size: .76rem; }
  .map-panel { min-height: 220px; padding: 22px 16px; }
  .map-pin { width: 66px; height: 66px; }
  .map-panel p { font-size: .84rem; }

  .page-hero { padding: 34px 0 30px; }
  .page-hero .hero-row { gap: 18px; }
  .page-hero .aside-note { font-size: .88rem; }

  .service-row { grid-template-columns: 32px 1fr; gap: 8px 12px; padding: 18px 0; }
  .service-row h2 { font-size: 1.18rem; }
  .service-row p, .service-row > a { grid-column: 2; }
  .service-row p { font-size: .88rem; }
  .service-row > a { font-size: .85rem; }

  .photo-band {
    margin-top: 24px;
    padding: 0 0 6px;
    scroll-padding-inline: 0;
  }
  .photo-band figure {
    flex: 0 0 84%;
    min-width: 0;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
  .photo-band figure:nth-child(2) img { aspect-ratio: 4 / 3; }

  .contact-page-grid { gap: 22px; }
  .contact-item { grid-template-columns: 1fr; gap: 5px; padding: 18px 0; }
  .contact-item dd { min-width: 0; font-size: .96rem; overflow-wrap: anywhere; }

  .cta-panel { padding: 28px 20px; gap: 18px; }
  .cta-panel h2 { max-width: 12ch; font-size: 2.15rem; line-height: .98; }
  .cta-panel p { margin-bottom: 16px; font-size: .91rem; }

  .site-footer { padding: 28px 0 24px; }
  .footer-brand { font-size: 1.25rem; }
  .footer-meta { font-size: .8rem; }
  .footer-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px 14px;
    justify-content: stretch;
  }
  .footer-links a { font-size: .84rem; }
  .footer-links a:last-child { grid-column: 1 / -1; }
  .copyright { margin-top: 18px; padding-top: 14px; font-size: .72rem; }
}

@media (max-width: 360px) {
  .container { width: min(calc(100% - 24px), var(--max)); }
  .hero-copy h1, .page-hero h1 { font-size: 2.05rem; }
  .quick-meta { grid-template-columns: 1fr; }
  .quick-meta span,
  .quick-meta span:nth-child(odd),
  .quick-meta span:nth-last-child(-n+2) {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .quick-meta span:last-child { border-bottom: 0; }

  .photo-tile, .photo-tile.main { flex-basis: 88%; }
  .photo-tile:nth-child(2), .photo-tile:nth-child(3) { flex-basis: 72%; }
  .route { flex-basis: 90%; }
  .service-chip,
  .service-chip:nth-child(even),
  .service-chip:nth-last-child(1) { flex-basis: 82%; }
  .photo-band figure { flex-basis: 90%; }

  .contact-links { grid-template-columns: 1fr; }
  .contact-links .btn { width: 100%; }
  .footer-links { grid-template-columns: 1fr; }
  .footer-links a:last-child { grid-column: auto; }
}
