/* responsive-range.css — breakpoints 420 / 680 / 960 / 1280 / 1600 + print */

/* Mobile navigation drawer defaults (below 960px) */
@media (max-width: 959px) {
  .lnf-burger {
    display: inline-flex;
  }

  .lnf-routerail {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(84vw, 340px);
    background: var(--lnf-spruce);
    border-left: 4px solid var(--lnf-orange);
    padding: calc(var(--lnf-space-xl) + var(--lnf-space-sm)) var(--lnf-space-md)
      var(--lnf-space-md);
    transform: translateX(100%);
    transition: transform 0.24s ease;
    z-index: 110;
    overflow-y: auto;
    visibility: hidden;
  }

  .lnf-routerail[data-open="true"] {
    transform: translateX(0);
    visibility: visible;
  }

  .lnf-routerail__list {
    flex-direction: column;
    gap: var(--lnf-space-2xs);
  }

  .lnf-routerail__link {
    width: 100%;
    font-size: 1.1rem;
  }

  .lnf-navscrim {
    position: fixed;
    inset: 0;
    background: rgba(23, 26, 28, 0.55);
    z-index: 105;
    border: 0;
    cursor: pointer;
  }

  .lnf-navscrim[hidden] {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lnf-routerail {
    transition: none;
  }
}

@media (min-width: 960px) {
  .lnf-navscrim {
    display: none;
  }

  .lnf-topbar__util .lnf-burger {
    display: none;
  }
}

/* ---- 420px ---- */
@media (min-width: 420px) {
  .lnf-paths {
    grid-template-columns: repeat(2, 1fr);
  }

  .lnf-consent__toggles {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ---- 680px ---- */
@media (min-width: 680px) {
  .lnf-crits {
    grid-template-columns: repeat(2, 1fr);
  }

  .lnf-tiles {
    grid-template-columns: repeat(2, 1fr);
  }

  .lnf-matrix {
    grid-template-columns: repeat(2, 1fr);
  }

  .lnf-matrix__cell {
    border-right: var(--lnf-border-soft);
  }

  .lnf-matrix__cell:nth-child(2n) {
    border-right: 0;
  }

  .lnf-views {
    grid-template-columns: repeat(2, 1fr);
  }

  .lnf-foot__cols {
    grid-template-columns: repeat(3, 1fr);
  }

  .lnf-ledger__row {
    grid-template-columns: 1fr 2fr;
    align-items: baseline;
  }

  .lnf-paths-contact {
    grid-template-columns: repeat(2, 1fr);
  }

  .lnf-rulesmap {
    grid-template-columns: repeat(2, 1fr);
  }

  .lnf-radial {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ---- 960px ---- */
@media (min-width: 960px) {
  .lnf-stage__grid {
    grid-template-columns: auto minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: var(--lnf-space-lg);
    align-items: center;
  }

  .lnf-stage__aside {
    position: relative;
    margin-top: calc(-1 * var(--lnf-space-lg));
  }

  .lnf-signal {
    position: absolute;
    left: calc(-1 * var(--lnf-space-lg));
    bottom: calc(-1 * var(--lnf-space-md));
    width: min(320px, 80%);
  }

  .lnf-tiles {
    grid-template-columns: repeat(3, 1fr);
  }

  /* Irregular emphasis: first and sixth tile span wide */
  .lnf-tiles--feature > .lnf-tile:first-child,
  .lnf-tiles--feature > .lnf-tile:nth-child(6) {
    grid-column: span 2;
  }

  .lnf-tiles--feature > .lnf-tile:first-child .lnf-tile__img,
  .lnf-tiles--feature > .lnf-tile:nth-child(6) .lnf-tile__img {
    aspect-ratio: 21 / 9;
  }

  .lnf-crits {
    grid-template-columns: repeat(4, 1fr);
  }

  .lnf-matrix {
    grid-template-columns: repeat(4, 1fr);
  }

  .lnf-matrix__cell:nth-child(2n) {
    border-right: var(--lnf-border-soft);
  }

  .lnf-matrix__cell:nth-child(4n) {
    border-right: 0;
  }

  .lnf-views {
    grid-template-columns: repeat(3, 1fr);
  }

  .lnf-excerpts {
    grid-template-columns: repeat(3, 1fr);
  }

  .lnf-stamps {
    grid-template-columns: repeat(2, 1fr);
  }

  .lnf-routemap {
    grid-template-columns: 1fr 1fr;
    column-gap: var(--lnf-space-lg);
  }

  .lnf-paths {
    grid-template-columns: repeat(4, 1fr);
  }

  .lnf-two-col {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--lnf-space-lg);
    align-items: start;
  }
}

/* ---- 1280px ---- */
@media (min-width: 1280px) {
  .lnf-radial {
    grid-template-columns: repeat(4, 1fr);
  }

  .lnf-stamps {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ---- 1600px ---- */
@media (min-width: 1600px) {
  .lnf-stage__title {
    font-size: clamp(4.6rem, 3rem + 4vw, 5.6rem);
  }
}

/* ---------- Print styles ---------- */
@media print {
  .lnf-topbar,
  .lnf-foot,
  .lnf-consent,
  .lnf-progressline,
  .lnf-navscrim,
  .lnf-ctarow,
  .lnf-skip {
    display: none !important;
  }

  body {
    background: #fff;
    color: #000;
    font-size: 12pt;
  }

  .lnf-block {
    padding-block: 0.6rem;
    break-inside: avoid;
  }

  .lnf-tile,
  .lnf-excerpt,
  .lnf-stamp,
  .lnf-rulesmap__card,
  .lnf-timeline__item {
    box-shadow: none;
    border-color: #000;
  }

  a {
    color: #000;
    text-decoration: underline;
  }

  .lnf-coord {
    display: none;
  }
}
