/* ==========================================================================
   Coast to Coast Ledger — responsive layer
   Breakpoints: 1280 · 1120 (mobile header) · 1024 · 768 · 640 · 420
   ========================================================================== */

@media (max-width: 1280px) {
  .site-nav__list { gap: clamp(14px, 1.6vw, 26px); }
  .site-nav__list a { letter-spacing: .12em; font-size: .76rem; }
  .brand { padding: 0 18px; }
  .brand__top { font-size: 1.08rem; }
  .card-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-footer__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .footer-col--address { grid-column: 1 / -1; }
}

/* ---------- Mobile header ---------- */
@media (max-width: 1120px) {
  :root { --header-h: 72px; }
  .site-nav { grid-template-columns: auto 1fr; padding-inline: var(--gutter); }
  .site-nav__list { display: none; }
  .brand {
    grid-column: 1; grid-row: 1; align-self: center; height: auto; padding: 0; margin: 0;
    background: none; box-shadow: none; border-radius: 0; gap: 10px;
  }
  .brand::after { display: none; }
  .brand__mark { width: 40px; height: 40px; }
  .brand__top { font-size: 1.02rem; }
  .brand__bottom { font-size: .6rem; margin-top: 6px; }
  .site-nav__right { grid-column: 2; gap: 4px; }
  .menu-btn { display: inline-grid; }
  .icon-btn { width: 48px; height: 48px; }
}

@media (max-width: 1024px) {
  .discover__grid, .why__grid, .ledger__grid, .before-grid, .out-intro, .featured-story, .editorial-grid, .contact__grid, .newsletter__inner, .about-hero__band-grid { grid-template-columns: minmax(0, 1fr); }
  .discover__intro { position: static; }
  .discover__cards { padding-bottom: 72px; }
  .place-card:nth-child(even) { translate: 0 72px; }

  .ledger__feature { padding-right: 0; padding-bottom: 40px; margin-bottom: 40px; border-bottom: 1px solid var(--border); }
  .ledger__list { border-left: 0; padding-left: 0; }
  .ledger__foot { text-align: left; }

  .card-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card-grid--3 > :nth-child(3) { grid-column: 1 / -1; flex-direction: row; }
  .card-grid--3 > :nth-child(3) .story-card__media { flex: 0 0 48%; aspect-ratio: auto; min-height: 280px; }

  .weekend__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .weekend__head { flex-direction: column; align-items: flex-start; }

  .split-feature { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .split-feature__media { min-height: 0; aspect-ratio: 16 / 10; }

  .atlas-hero__grid, .comm-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .region-block__head { grid-template-columns: auto minmax(0, 1fr); }
  .region-block__intro { grid-column: 1 / -1; }

  .life-hero__head { grid-template-columns: minmax(0, 1fr); }
  .cat-row__grid { grid-template-columns: minmax(0, 1fr); }
  .cat-row--flip .cat-row__media { order: 0; }
  .cat-row__media { aspect-ratio: 16 / 10; }

  .activity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .season-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .focus-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .focus-card--1 { grid-column: span 2; grid-row: span 1; }
  .focus-card--1 .focus-card__media { min-height: 340px; }
  .focus-card--4, .focus-card--7 { grid-column: span 2; }
  .ways-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .stories-head__row { grid-template-columns: minmax(0, 1fr); }

  .article__layout { grid-template-columns: minmax(0, 1fr); max-width: 760px; margin-inline: auto; }
  .article__aside-inner { position: static; }

  .doc-layout { grid-template-columns: minmax(0, 1fr); max-width: 820px; margin-inline: auto; }
  .doc-toc { position: static; max-height: none; padding: 20px 22px; background: var(--grey); border-radius: var(--radius); }
  .doc-toc ol { border-left: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
  .doc-toc a { padding-left: 0; border-left: 0; }

  .contact { background: #fff; }
  .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .finder { grid-template-columns: minmax(0, 1fr); padding: 18px; }
  .finder__chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: -18px; padding-inline: 18px; scroll-snap-type: x proximity; }
  .finder__chips::-webkit-scrollbar { display: none; }
  .chip { scroll-snap-align: start; }

  .region-bar__list { justify-content: flex-start; gap: 28px; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; }
  .region-bar__list::-webkit-scrollbar { display: none; }
  .region-bar__list li { scroll-snap-align: start; }
  .region-bar__list a { padding: 20px 2px; }

  .topic-tabs__list { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding: 4px var(--gutter); scroll-snap-type: x proximity; }
  .topic-tabs__list::-webkit-scrollbar { display: none; }
  .topic-tab { flex: none; scroll-snap-align: start; }

  .ledger__masthead { grid-template-columns: minmax(0, 1fr); text-align: center; gap: 10px; }
  .ledger__meta--end { text-align: center; }
  .ledger__columns { columns: 1; }

  .city-grid { grid-template-columns: minmax(0, 1fr); }
  .region-block__banner { aspect-ratio: 16 / 9; }

  .life-hero__caption { position: static; max-width: none; margin-top: -4px; border-radius: 0 0 var(--radius) var(--radius); box-shadow: none; border: 1px solid var(--border); border-top: 4px solid var(--green); }
  .life-hero__media .r-21x9 { aspect-ratio: 16 / 10; border-radius: var(--radius) var(--radius) 0 0; }
  .cat-index { margin-top: 48px; }
  .cat-index ul { gap: 0 24px; }
}

@media (max-width: 768px) {
  body { font-size: 1rem; }
  .editorial-strip p { font-size: .62rem; letter-spacing: .16em; padding-block: 10px; }
  .editorial-strip__tail { display: block; }

  .hero { min-height: auto; }
  .hero__content { padding-top: 140px; }
  .hero__ctas .btn { flex: 1 1 200px; }


  /* Weekend tiles become a swipeable rail */
  .weekend__grid {
    grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(250px, 78%);
    overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
    margin-inline: calc(var(--gutter) * -1); padding: 4px var(--gutter) 8px; scroll-padding-inline: var(--gutter);
  }
  .weekend__grid::-webkit-scrollbar { display: none; }
  .weekend-tile { scroll-snap-align: start; }

  .why__list { display: flex; overflow-x: auto; border-top: 0; border-bottom: 1px solid var(--border); scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  .why__list::-webkit-scrollbar { display: none; }
  .why__tab { flex: none; width: auto; min-height: 56px; padding: 0 18px 0 0; border-bottom: 0; gap: 10px; font-size: .8rem; }
  .why__tab::before { left: 0; right: 18px; top: auto; bottom: 0; width: auto; height: 3px; transform: scaleX(0); }
  .why__tab[aria-selected="true"]::before { transform: scaleX(1); }
  .why__tab:hover { background: none; }
  .why__list { margin-top: 28px; }

  .activity-grid { gap: 40px 20px; padding-bottom: 40px; }
  .activity:nth-child(even) { translate: 0 40px; }

  .comm-hero__collage { height: 420px; }

  .search-page__form { grid-template-columns: minmax(0, 1fr); }
  .stories-head__row .h1--giant { font-size: clamp(3.4rem, 18vw, 5rem); }
  .archive-bar { flex-direction: column; align-items: flex-start; }
  .filter-bar { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; width: calc(100% + var(--gutter) * 2); margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  .filter-bar::-webkit-scrollbar { display: none; }
  .filter-btn { flex: none; }

  .prose { font-size: 1.08rem; }
  .cover-grid { grid-template-columns: minmax(0, 1fr); }
  .cookie-banner { grid-template-columns: minmax(0, 1fr); left: 10px; right: 10px; bottom: 10px; padding: 20px; }
  .cookie-banner__actions .btn { flex: 1 1 auto; }
  .cookie-banner__actions .btn--text-light { flex-basis: 100%; }
}

@media (max-width: 640px) {
  .card-grid--3, .card-grid--4 { grid-template-columns: minmax(0, 1fr); }
  .card-grid--3 > :nth-child(3) { grid-column: auto; flex-direction: column; }
  .card-grid--3 > :nth-child(3) .story-card__media { flex: none; aspect-ratio: 4 / 3; min-height: 0; }
  .discover__cards { grid-template-columns: minmax(0, 1fr); gap: 36px; padding-bottom: 0; }
  .place-card:nth-child(even) { translate: none; }
  .place-card__media.r-3x4, .place-card__media.r-4x5 { aspect-ratio: 4 / 3; }

  .ledger-item { grid-template-columns: 40px minmax(0, 1fr); }
  .ledger-item__thumb { display: none; }
  .ledger-item__num { font-size: 1.5rem; }

  .newsletter__row { flex-direction: column; }
  .newsletter__row input { flex: none; width: 100%; }
  .newsletter__row .btn { width: 100%; }

  .atlas-hero__mosaic { height: 360px; gap: 10px; }
  .atlas-hero__facts strong { font-size: 2.1rem; }
  .region-block__head { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .region-block__num { font-size: 3.4rem; }

  .mini-story { grid-template-columns: 88px minmax(0, 1fr); gap: 16px; }

  .activity-grid { grid-template-columns: minmax(0, 1fr); }
  .activity:nth-child(even) { translate: none; }
  .activity__media.r-3x4, .activity__media.r-4x5 { aspect-ratio: 4 / 3; }
  .season-strip, .ways-grid { grid-template-columns: minmax(0, 1fr); }

  .focus-grid { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; }
  .focus-card--1, .focus-card--4, .focus-card--7 { grid-column: auto; }
  .focus-card__media { flex: none; aspect-ratio: 16 / 10; min-height: 0; }
  .focus-card--1 .focus-card__media { min-height: 0; }

  .comm-hero__collage { height: 360px; }
  .comm-hero__photo--3 { border-width: 5px; }

  .doc-toc ol { grid-template-columns: minmax(0, 1fr); }
  .company-card { flex-direction: column; align-items: flex-start; }

  .contact-form, .form-success { padding: 24px 20px; box-shadow: none; }
  .site-footer__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 20px; }
  .brand--footer .brand__top { font-size: 1.3rem; }
  .site-footer__bottom { flex-direction: column; align-items: flex-start; }

  .cookie-dialog__actions { flex-direction: column-reverse; }
  .cookie-dialog__actions .btn { width: 100%; }
  .cookie-panel { padding: 22px; }
  .cookie-panel__actions { width: 100%; flex-direction: column; }
  .cookie-panel__actions .btn { width: 100%; }

  .result { grid-template-columns: 64px minmax(0, 1fr); gap: 14px; padding: 12px 6px; }
  .result__thumb { width: 64px; height: 64px; }
}

@media (max-width: 420px) {
  .brand__top { font-size: .92rem; }
  .brand__mark { width: 36px; height: 36px; }
  .brand__bottom { letter-spacing: .5em; }
  .hero__title { font-size: clamp(2.35rem, 11vw, 2.9rem); }
  .motion__title { font-size: clamp(2.1rem, 10vw, 2.6rem); }
  .finder__row { flex-direction: column; }
  .finder__row input { flex: none; width: 100%; }
  .finder__row .btn { width: 100%; }
  .story-card__body { padding: 20px 20px 24px; }
  .region-tabs__list a { padding-block: 16px; }
  .footer-col li a { min-height: 44px; }
}

@media (min-width: 1600px) {
  .container { max-width: 1440px; }
  .hero__title { font-size: 5.6rem; }
}

@media print {
  .site-header, .editorial-strip, .site-footer, .newsletter, .cookie-banner, dialog, .region-tabs { display: none !important; }
  body { font-size: 12pt; }
  .js .reveal { opacity: 1; transform: none; }
}
