/* Cedar Line Dispatch — responsive layer */

@media (min-width: 1680px) {
  :root { --wrap: 1440px; }
  body { font-size: 1.1rem; }
}

@media (max-width: 1180px) {
  .primary-nav, .header-actions .btn { display: none; }
  .menu-toggle { display: inline-grid; }
  .header-actions { margin-left: auto; }

  .footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-brand { grid-column: 1 / -1; }
  .footer-contact { grid-column: 1 / -1; }

  .cover-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cover-item:nth-child(3) { padding-left: 0; border-left: 0; }
  .cover-item:nth-child(n+3) { border-top: 1px solid var(--border); margin-top: 8px; }
}

@media (max-width: 1024px) {
  :root { --header-h: 70px; }

  .dest-card--a { grid-column: 1 / -1; grid-row: auto; min-height: 520px; }
  .dest-card--b, .dest-card--c { grid-column: span 6; min-height: 380px; }
  .dest-card--d { min-height: 400px; }
  .dest-card--d .dest-card-body { grid-template-columns: minmax(0, 1fr) auto; }
  .dest-card--d .dest-card-body > .spacer { display: none; }

  .activity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .feature { grid-template-columns: 1fr; }
  .feature-media { min-height: 0; aspect-ratio: 16 / 10; }

  .story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .story-grid > :last-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; align-items: start; }
  .story-grid > :last-child .media { margin-bottom: 0; }

  .masonry { columns: 2; }
  .region-head { grid-template-columns: 80px minmax(0, 1fr); }
  .region-head p { grid-column: 2; }

  .act-hero-grid { grid-template-columns: 1fr; min-height: 0; }
  .act-hero-media { order: -1; margin-inline: calc(var(--gutter) * -1); aspect-ratio: 16 / 9; }
  .act-hero-text { padding-right: 0; }

  .fn-featured { grid-template-columns: 1fr; }
  .fn-featured .media { min-height: 0; aspect-ratio: 16 / 9; }
  .fn-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .trip-layout { grid-template-columns: minmax(0, 1fr); }
  .trip-toc { position: static; }
  .trip-toc ol { display: flex; flex-wrap: wrap; gap: 4px 20px; border-left: 0; border-bottom: 1px solid var(--border); padding-bottom: 12px; }
  .trip-toc a { padding: 8px 0; border-left: 0; margin-left: 0; }
  .idea-list { grid-template-columns: 1fr; }
  .idea, .idea + .idea { padding: 22px 0 8px; border-left: 0; }
  .idea + .idea { border-top: 1px solid var(--border); }

  .legal-layout { grid-template-columns: minmax(0, 1fr); }
  .legal-toc { position: static; padding: 20px 22px; background: var(--off); }
  .legal-toc ol { border-left: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .legal-toc a { padding-left: 0; border-left: 0; }

  .contact-layout { grid-template-columns: minmax(0, 1fr); }
  .company-card { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  .section-head { grid-template-columns: 1fr; }
  .page-hero-grid { grid-template-columns: 1fr; align-items: start; }

  .values { grid-template-columns: 1fr; }
  .value, .value + .value { padding: 32px 0; border-left: 0; }
  .value + .value { border-top: 1px solid var(--border); }

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

  .act-row { grid-template-columns: 1fr; gap: 28px; }
  .act-row:nth-child(even) .act-media { order: 0; }

  .split { grid-template-columns: 1fr; }
  .split-media img { aspect-ratio: 4 / 3; }

  .trip-cat-head { grid-template-columns: 1fr; }
  .trip-cat-media img { aspect-ratio: 16 / 9; }

  .quick-strip ul { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .quick-strip ul::-webkit-scrollbar { display: none; }
  .quick-strip li { flex: 0 0 auto; scroll-snap-align: start; }
  .quick-strip a { padding: 18px 22px; gap: 18px; }
}

@media (max-width: 680px) {
  :root { --header-h: 64px; --section-y: 72px; }
  body { font-size: 1rem; }

  .announce { font-size: .64rem; letter-spacing: .14em; padding-block: 8px; }

  .brand-mark { width: 34px; height: 34px; }
  .brand-word strong { font-size: .95rem; }
  .brand-word span { font-size: .6rem; letter-spacing: .36em; }

  .hero { min-height: 88svh; }
  .hero h1 { max-width: none; }
  .hero-actions .btn { flex: 1 1 100%; }

  .intro { padding-block: 88px; text-align: left; }
  .intro-rule { margin-left: 0; }
  .intro h2, .intro p { margin-left: 0; }

  .dest-grid { gap: 14px; }
  .dest-card--a, .dest-card--b, .dest-card--c, .dest-card--d { grid-column: 1 / -1; min-height: 0; aspect-ratio: 4 / 5; }
  .dest-card--d { aspect-ratio: 4 / 5; }
  .arrow-box { width: 44px; height: 44px; }

  .activity-grid { grid-template-columns: 1fr; gap: 32px; }

  .feature-media { aspect-ratio: 4 / 3; }
  .feature-meta { gap: 20px; flex-wrap: wrap; }

  .story-grid { grid-template-columns: 1fr; }
  .story-grid > :last-child { display: flex; }
  .story-grid > :last-child .media { margin-bottom: 20px; }

  .band { min-height: 78svh; align-items: flex-end; padding-bottom: 48px; }
  .band::after { background: linear-gradient(to top, rgba(18,23,21,.85) 0%, rgba(18,23,21,.25) 70%); }

  .nl-row { flex-direction: column; gap: 10px; }
  .nl-row input { border-right: 2px solid rgba(255,255,255,.55); border-radius: 2px; }
  .nl-row .btn { border-radius: 2px; width: 100%; }

  .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px 24px; }
  .footer-col:nth-of-type(3) { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }

  .masonry, .masonry--2 { columns: 1; }
  .guide-card.is-tall .media img { aspect-ratio: 4 / 3; }
  .region-head { grid-template-columns: 1fr; gap: 12px; }
  .region-head p { grid-column: auto; }
  .region-num { font-size: 1.8rem; }

  .fn-grid { grid-template-columns: 1fr; }
  .fn-grid .story-card.is-lead { grid-column: auto; }
  .fn-grid .story-card.is-lead .media { aspect-ratio: 3 / 2; }
  .filter-bar { flex-wrap: nowrap; overflow-x: auto; gap: 22px; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  .filter-bar::-webkit-scrollbar { display: none; }
  .filter-btn { white-space: nowrap; }
  .fn-count { display: none; }

  .cover-grid { grid-template-columns: 1fr; }
  .cover-item, .cover-item + .cover-item { padding: 24px 0; border-left: 0; margin-top: 0; }
  .cover-item + .cover-item { border-top: 1px solid var(--border); }

  .company-card { grid-template-columns: 1fr; gap: 22px; }
  .field-row { grid-template-columns: 1fr; }

  .legal-toc ol { grid-template-columns: 1fr; }

  .prose { font-size: 1.04rem; }

  .cookie-banner { grid-template-columns: 1fr; left: 10px; right: 10px; bottom: 10px; padding: 20px; }
  .cookie-actions .btn { flex: 1 1 auto; }
  .cd-foot .btn { flex: 1 1 100%; }

  .note-box { grid-template-columns: 1fr; padding: 20px; gap: 10px; }
}

@media (max-width: 380px) {
  .brand-word strong { font-size: .86rem; }
  .brand-word span { letter-spacing: .3em; }
  .brand { gap: 9px; }
  .header-inner { gap: 8px; }
  .icon-btn { width: 42px; }
  .footer-grid { grid-template-columns: 1fr; }
}
