/* ==================================================================
   FAULTLINE — style.css
   Typographic-architecture system, built strictly on The1 / DESIGN.md
   tokens: concrete canvas, iron type, four paint blocks, ruthless flat.
   KH Teka is substituted by Barlow Condensed per DESIGN.md guidance.
   ================================================================== */

:root {
  /* Colours */
  --color-the-green: #027b49;
  --color-the-pink:  #f19ec8;
  --color-the-red:   #fa4d43;
  --color-the-yellow:#fbb833;
  --color-concrete:  #d9d9d9;
  --color-iron:      #1f1f1f;
  --color-carbon:    #000000;

  /* Type families (KH Teka -> Barlow Condensed substitute) */
  --font-kh-teka: 'Barlow Condensed', 'Archivo Narrow', 'Roboto Condensed', ui-sans-serif, system-ui, sans-serif;
  --font-system: 'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif;

  /* Type scale (px values from DESIGN.md, made fluid with clamp) */
  --text-caption: 12px;
  --text-body:    15px;
  --text-body-sm: 18px;
  --text-subheading: clamp(20px, 3.4vw, 26px);
  --text-heading: clamp(34px, 6vw, 60px);
  --text-display: clamp(64px, 16vw, 215px);

  --leading-display: 0.78;
  --leading-heading: 0.84;
  --leading-sub:     1.0;
  --leading-body:    1.2;

  /* Spacing scale (DESIGN.md) */
  --spacing-5: 5px;   --spacing-6: 6px;   --spacing-8: 8px;
  --spacing-10: 10px; --spacing-11: 11px; --spacing-14: 14px;
  --spacing-15: 15px; --spacing-19: 19px; --spacing-20: 20px;
  --spacing-24: 24px; --spacing-30: 30px; --spacing-40: 40px;
  --spacing-50: 50px; --spacing-100: 100px; --spacing-130: 130px;
  --spacing-170: 170px;

  /* Layout */
  --page-max-width: 1440px;
  --measure: 75ch;
  --section-gap: 40px;
  --element-gap: 10px;

  /* Radius — pills/tags 100px, cards 0px */
  --radius-pill: 100px;
  --radius-card: 0px;

  /* Hairline border */
  --hair: 1px solid var(--color-iron);
}

/* ---------- Reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body.fl-body {
  margin: 0;
  background: var(--color-concrete);
  color: var(--color-iron);
  font-family: var(--font-system);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; }

a { color: var(--color-iron); }

h1, h2, h3, h4 {
  font-family: var(--font-kh-teka);
  font-weight: 400;
  margin: 0;
}

p { margin: 0; }

::selection { background: var(--color-iron); color: var(--color-concrete); }

/* ---------- Shell / structure ---------- */
.fl-shell {
  width: 100%;
  max-width: var(--page-max-width);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 50px);
}

.fl-main { display: block; }

.fl-section { padding-block: clamp(40px, 7vw, 100px); }

.fl-rule { border: 0; border-top: var(--hair); margin: 0; }

/* Accessibility helpers */
.fl-vh, .fl-hp {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}
.fl-skip {
  position: absolute; left: -999px; top: 0;
  background: var(--color-iron); color: var(--color-concrete);
  padding: var(--spacing-10) var(--spacing-20);
  font-family: var(--font-kh-teka); z-index: 100;
}
.fl-skip:focus { left: var(--spacing-10); top: var(--spacing-10); }

:focus-visible {
  outline: 3px solid var(--color-iron);
  outline-offset: 3px;
}

/* ---------- Kicker / labels ---------- */
.fl-kicker {
  font-family: var(--font-kh-teka);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: var(--text-caption);
  margin: 0 0 var(--spacing-10);
}

/* ==================================================================
   TOP BAR
   ================================================================== */
.fl-topbar {
  position: sticky; top: 0; z-index: 40;
  background: var(--color-concrete);
  border-bottom: var(--hair);
}
.fl-topbar__inner {
  display: flex; align-items: center; gap: var(--spacing-20);
  min-height: 64px; padding-block: var(--spacing-11);
}
.fl-wordmark {
  display: inline-flex; align-items: center; gap: var(--spacing-8);
  font-family: var(--font-kh-teka);
  font-size: var(--text-subheading);
  letter-spacing: -0.03em;
  text-decoration: none; color: var(--color-iron);
  line-height: 1;
}
.fl-wordmark__mark { width: 34px; height: 34px; display: block; }
.fl-nav { margin-inline-start: auto; }
.fl-nav__list { list-style: none; display: flex; gap: clamp(14px, 2vw, 30px); margin: 0; padding: 0; }
.fl-nav__link {
  font-family: var(--font-kh-teka); font-size: var(--text-body-sm);
  letter-spacing: -0.03em; text-decoration: none; color: var(--color-iron);
  padding-bottom: 2px; border-bottom: 2px solid transparent;
  transition: border-color .18s ease;
}
.fl-nav__link:hover, .fl-nav__link.is-current { border-bottom-color: var(--color-iron); }

.fl-topbar__cta { display: none; align-items: center; gap: var(--spacing-14); }
.fl-topbar__ask { font-family: var(--font-kh-teka); font-size: var(--text-body-sm); letter-spacing: -0.03em; }

/* Pill button — DESIGN.md: radius 100, fill iron, concrete text, flat.
   A restrained lift only (no invented colour). */
.fl-pill {
  display: inline-block;
  font-family: var(--font-kh-teka); font-size: var(--text-body);
  letter-spacing: 0.01em; line-height: 1;
  background: var(--color-iron); color: var(--color-concrete);
  text-decoration: none; border: 0; cursor: pointer;
  padding: var(--spacing-11) var(--spacing-20);
  border-radius: var(--radius-pill);
  transition: transform .18s ease, opacity .18s ease;
}
.fl-pill:hover { transform: translateY(-2px); opacity: .92; }
.fl-pill:active { transform: translateY(0); }
.fl-pill--wide { padding-inline: var(--spacing-30); }

/* Hamburger — solid iron circle */
.fl-burger {
  display: inline-flex; flex-direction: column; justify-content: center; gap: 4px;
  width: 48px; height: 48px; border-radius: 100px; border: 0;
  background: var(--color-iron); cursor: pointer; padding: 0 13px;
  margin-inline-start: var(--spacing-10);
}
.fl-burger span { height: 2px; background: var(--color-concrete); display: block; }

/* ---------- Expanded menu overlay (full red field) ---------- */
.fl-menu {
  position: fixed; inset: 0; z-index: 60;
  background: var(--color-the-red);
  display: flex; flex-direction: column;
}
.fl-menu[hidden] { display: none; }
.fl-menu__bar {
  display: flex; align-items: center; justify-content: space-between;
  min-height: 64px; background: var(--color-concrete);
  border-bottom: var(--hair); width: 100%;
}
.fl-menu__close {
  font-family: var(--font-kh-teka); font-size: var(--text-body-sm);
  background: var(--color-iron); color: var(--color-concrete);
  border: 0; border-radius: var(--radius-pill);
  padding: var(--spacing-8) var(--spacing-20); cursor: pointer;
}
.fl-menu__glyph {
  position: absolute; left: -3vw; bottom: -6vh;
  font-family: var(--font-kh-teka); font-weight: 400;
  font-size: clamp(220px, 60vw, 760px); line-height: 0.7;
  color: var(--color-carbon); pointer-events: none; user-select: none;
}
.fl-menu__nav {
  position: relative; z-index: 1;
  display: flex; flex-direction: column; gap: var(--spacing-10);
  padding-block: var(--spacing-40); margin-top: auto;
}
.fl-menu__nav a {
  font-family: var(--font-kh-teka); font-weight: 400;
  font-size: var(--text-heading); letter-spacing: -0.03em; line-height: 0.9;
  color: var(--color-iron); text-decoration: none;
}
.fl-menu__nav a:hover { color: var(--color-concrete); }

/* ==================================================================
   HERO — bg-hero band, display headline, tremor ticker
   ================================================================== */
.fl-hero { position: relative; border-bottom: var(--hair); }
.fl-hero__band {
  position: relative;
  background-image:
    linear-gradient(180deg, rgba(31,31,31,.30), rgba(31,31,31,.72)),
    url('../img/faultline-first-tremor-banner-wide.jpg');
  background-size: cover; background-position: center;
  min-height: clamp(560px, 92vh, 960px);
  display: flex; align-items: flex-end;
}
.fl-hero__inner { padding-block: clamp(40px, 8vw, 100px); width: 100%; }
.fl-hero__kicker { color: var(--color-concrete); }
.fl-hero__title {
  font-size: var(--text-display);
  line-height: var(--leading-display);
  letter-spacing: -0.06em;
  color: var(--color-concrete);
  text-transform: uppercase;
  margin: 0;
}
.fl-hero__sub {
  font-family: var(--font-system);
  color: var(--color-concrete);
  max-width: 60ch; margin-top: var(--spacing-20);
  font-size: clamp(16px, 2vw, 20px);
}
.fl-hero__cta { margin-top: var(--spacing-30); display: flex; gap: var(--spacing-14); flex-wrap: wrap; }
.fl-pill--ghost {
  background: transparent; color: var(--color-concrete);
  border: 2px solid var(--color-concrete);
}
.fl-pill--ghost:hover { background: var(--color-concrete); color: var(--color-iron); }

/* Tremor ticker — thin restrained marquee strip */
.fl-ticker {
  background: var(--color-iron); color: var(--color-concrete);
  border-top: 1px solid var(--color-carbon);
  overflow: hidden; white-space: nowrap;
}
.fl-ticker__inner {
  display: inline-flex; align-items: center;
  padding-block: var(--spacing-8);
  will-change: transform;
  animation: fl-marquee 38s linear infinite;
}
.fl-ticker__item {
  font-family: var(--font-kh-teka); font-size: var(--text-body);
  letter-spacing: 0.04em; text-transform: uppercase;
  padding-inline: var(--spacing-20);
}
.fl-ticker__item b { font-weight: 600; }
.fl-ticker__dot { opacity: .5; }
@keyframes fl-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ==================================================================
   GENERIC SECTION HEADINGS
   ================================================================== */
.fl-band-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--spacing-20); flex-wrap: wrap; margin-bottom: var(--spacing-30); }
.fl-band-head h2 { font-size: var(--text-heading); line-height: var(--leading-heading); letter-spacing: -0.04em; text-transform: uppercase; }
.fl-band-head .fl-pill { flex: none; }

/* ==================================================================
   READING CARDS — full-bleed paint blocks (property identity card)
   ================================================================== */
.fl-grid { display: grid; gap: var(--spacing-24); }
.fl-grid--readings { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.fl-grid--news { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

.fl-card {
  border: var(--hair);
  border-radius: var(--radius-card);
  background: var(--color-concrete);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.fl-card--paint { color: var(--color-iron); border-color: var(--color-iron); }
.fl-card--green  { background: var(--color-the-green);  color: var(--color-concrete); }
.fl-card--pink   { background: var(--color-the-pink); }
.fl-card--red    { background: var(--color-the-red);    color: var(--color-concrete); }
.fl-card--yellow { background: var(--color-the-yellow); }

.fl-card__media { display: block; }
.fl-card__media img { width: 100%; height: auto; display: block; }

.fl-card__body { padding: var(--spacing-20); display: flex; flex-direction: column; gap: var(--spacing-10); flex: 1; }
.fl-card__meta { font-family: var(--font-kh-teka); text-transform: uppercase; letter-spacing: 0.1em; font-size: var(--text-caption); opacity: .85; }
.fl-card__title { font-size: var(--text-subheading); letter-spacing: -0.03em; line-height: 1; }
.fl-card__dek { font-size: var(--text-body); }

.fl-card__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: var(--spacing-10); }
.fl-status-dot { width: 10px; height: 10px; border-radius: 100px; display: inline-block; }
.fl-dot-green  { background: var(--color-the-green); }
.fl-dot-pink   { background: var(--color-the-pink); }
.fl-dot-red    { background: var(--color-the-red); }
.fl-dot-yellow { background: var(--color-the-yellow); }

/* Magnitude readout */
.fl-mag { display: flex; align-items: baseline; gap: var(--spacing-8); }
.fl-mag__num { font-family: var(--font-kh-teka); font-weight: 600; font-size: clamp(34px, 6vw, 60px); line-height: 0.8; letter-spacing: -0.04em; }
.fl-mag__scale { font-family: var(--font-kh-teka); font-size: var(--text-body); opacity: .7; }
.fl-mag__band { font-family: var(--font-kh-teka); text-transform: uppercase; letter-spacing: 0.08em; font-size: var(--text-caption); }

.fl-ghost-link {
  font-family: var(--font-kh-teka); text-transform: uppercase; letter-spacing: 0.1em;
  font-size: var(--text-body); text-decoration: none; color: inherit;
  border-bottom: 2px solid currentColor; padding-bottom: 2px; align-self: flex-start;
  transition: opacity .18s ease;
}
.fl-ghost-link:hover { opacity: .7; }

a.fl-card { text-decoration: none; color: inherit; transition: transform .2s ease; }
a.fl-card:hover { transform: translateY(-3px); }

/* News cards */
.fl-news { background: var(--color-concrete); }
.fl-news__cat { font-family: var(--font-kh-teka); text-transform: uppercase; letter-spacing: 0.12em; font-size: var(--text-caption); }
.fl-news__title { font-family: var(--font-kh-teka); font-size: var(--text-body-sm); letter-spacing: -0.02em; line-height: 1.05; }

/* Feature (editorial) split cards */
.fl-feature { border: var(--hair); display: grid; grid-template-columns: 1fr; }
.fl-feature img { width: 100%; height: auto; display: block; }
.fl-feature__body { padding: var(--spacing-24); display: flex; flex-direction: column; gap: var(--spacing-11); }
.fl-feature__title { font-size: var(--text-subheading); letter-spacing: -0.03em; line-height: 1.02; }
@media (min-width: 720px) {
  .fl-feature { grid-template-columns: 1.1fr 1fr; }
  .fl-feature__body { justify-content: center; }
}

/* ==================================================================
   READING ARTICLE
   ================================================================== */
.fl-article { padding-block: clamp(30px, 5vw, 60px); }
.fl-article__head { border-bottom: var(--hair); padding-bottom: var(--spacing-24); margin-bottom: var(--spacing-30); }
.fl-article__title { font-size: var(--text-display); line-height: var(--leading-display); letter-spacing: -0.06em; text-transform: uppercase; }
.fl-article__meta { font-family: var(--font-kh-teka); text-transform: uppercase; letter-spacing: 0.08em; font-size: var(--text-body); margin-top: var(--spacing-14); display: flex; flex-wrap: wrap; gap: var(--spacing-8) var(--spacing-20); }
.fl-article__dek { font-size: clamp(18px, 2.4vw, 22px); max-width: var(--measure); margin-top: var(--spacing-20); line-height: 1.4; }

.fl-article__hero { margin-block: var(--spacing-30); border: var(--hair); }
.fl-article__hero img { width: 100%; height: auto; display: block; }
.fl-article__figcap { font-family: var(--font-system); font-size: var(--text-caption); padding: var(--spacing-8) var(--spacing-11); border-top: var(--hair); }

.fl-prose { max-width: var(--measure); }
.fl-prose h2 { font-size: var(--text-heading); line-height: var(--leading-heading); letter-spacing: -0.04em; text-transform: uppercase; margin-top: var(--spacing-40); }
.fl-prose h2:first-child { margin-top: 0; }
.fl-prose p { font-size: clamp(16px, 1.9vw, 18px); line-height: 1.7; margin-top: var(--spacing-19); }
.fl-prose__lead { font-family: var(--font-kh-teka); text-transform: uppercase; letter-spacing: 0.14em; font-size: var(--text-caption); margin-top: var(--spacing-40); display: block; }

.fl-inset-figure { margin: var(--spacing-30) 0; border: var(--hair); }
.fl-inset-figure img { width: 100%; height: auto; display: block; }

/* Magnitude verdict panel */
.fl-verdict { border: var(--hair); margin-top: var(--spacing-40); }
.fl-verdict__top { display: flex; flex-wrap: wrap; align-items: stretch; }
.fl-verdict__score { padding: var(--spacing-24); border-right: var(--hair); flex: 1 1 220px; }
.fl-verdict__score .fl-mag__num { font-size: clamp(64px, 12vw, 120px); }
.fl-verdict__band { font-family: var(--font-kh-teka); text-transform: uppercase; letter-spacing: 0.1em; margin-top: var(--spacing-8); }
.fl-verdict__metrics { flex: 2 1 320px; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); }
.fl-metric { padding: var(--spacing-19) var(--spacing-20); border-bottom: var(--hair); border-right: var(--hair); }
.fl-metric__label { font-family: var(--font-kh-teka); text-transform: uppercase; letter-spacing: 0.06em; font-size: var(--text-caption); }
.fl-metric__val { font-family: var(--font-kh-teka); font-weight: 600; font-size: var(--text-subheading); letter-spacing: -0.03em; }
.fl-metric__bar { height: 6px; background: rgba(31,31,31,.16); margin-top: var(--spacing-6); }
.fl-metric__bar i { display: block; height: 100%; background: var(--color-iron); }
.fl-verdict__say { padding: var(--spacing-24); }
.fl-verdict__say p { font-size: clamp(17px, 2.2vw, 20px); line-height: 1.55; max-width: var(--measure); }

/* Scoring legend */
.fl-legend { display: grid; gap: var(--spacing-8); grid-template-columns: repeat(auto-fit, minmax(190px,1fr)); margin-top: var(--spacing-24); }
.fl-legend__row { border: var(--hair); padding: var(--spacing-11) var(--spacing-14); }
.fl-legend__row b { font-family: var(--font-kh-teka); display: block; letter-spacing: 0.04em; }

/* Prev/next reading nav */
.fl-readnav { display: flex; justify-content: space-between; gap: var(--spacing-14); flex-wrap: wrap; margin-top: var(--spacing-40); border-top: var(--hair); padding-top: var(--spacing-24); }
.fl-readnav a { font-family: var(--font-kh-teka); text-transform: uppercase; letter-spacing: 0.06em; text-decoration: none; }
.fl-readnav a:hover { text-decoration: underline; }

/* ==================================================================
   SEISMOGRAPH PAGE HEADER BAND (bg-second)
   ================================================================== */
.fl-pagehead { position: relative; border-bottom: var(--hair); }
.fl-pagehead__band {
  background-image:
    linear-gradient(180deg, rgba(31,31,31,.18), rgba(31,31,31,.62)),
    url('../img/faultline-seismograph-banner-wide.jpg');
  background-size: cover; background-position: center;
  min-height: clamp(300px, 46vh, 480px);
  display: flex; align-items: flex-end;
}
.fl-pagehead__inner { padding-block: clamp(30px, 6vw, 70px); }
.fl-pagehead__title { font-size: var(--text-display); line-height: var(--leading-display); letter-spacing: -0.06em; text-transform: uppercase; color: var(--color-concrete); }
.fl-pagehead__sub { color: var(--color-concrete); max-width: 56ch; margin-top: var(--spacing-15); font-size: clamp(16px,2vw,19px); }

/* ==================================================================
   CONTACT — File a Field Report
   ================================================================== */
/* Contact background band — the gradient-mesh SVG as a full-bleed backdrop */
.fl-report-band {
  background-image:
    linear-gradient(rgba(217,217,217,.34), rgba(217,217,217,.34)),
    url('../img/contact-field-report-illustration.svg');
  background-size: cover;
  background-position: center;
  border-bottom: var(--hair);
}

.fl-report { display: grid; gap: var(--spacing-40); grid-template-columns: 1fr; align-items: start; }
@media (min-width: 880px) { .fl-report { grid-template-columns: 1fr 1.1fr; } }
.fl-report__aside img { width: 100%; height: auto; display: block; }
.fl-panel {
  border: var(--hair); background: var(--color-concrete);
  padding: clamp(20px, 4vw, 40px);
  max-width: 620px; margin-inline: auto; width: 100%;
}
.fl-field { display: flex; flex-direction: column; gap: var(--spacing-6); margin-bottom: var(--spacing-19); }
.fl-field label { font-family: var(--font-kh-teka); text-transform: uppercase; letter-spacing: 0.08em; font-size: var(--text-caption); }
.fl-input, .fl-textarea {
  font-family: var(--font-system); font-size: var(--text-body-sm);
  color: var(--color-iron); background: #e4e4e4;
  border: var(--hair); border-radius: 0;
  padding: var(--spacing-11) var(--spacing-14); width: 100%;
  transition: box-shadow .2s ease, background .2s ease, border-color .2s ease;
}
.fl-textarea { min-height: 150px; resize: vertical; line-height: 1.5; }
.fl-input:focus, .fl-textarea:focus {
  outline: none; background: #fff; border-color: var(--color-carbon);
  box-shadow: 0 0 0 3px rgba(31,31,31,.18);
}
.fl-network__form .fl-input { min-width: 0; }

.fl-formnote { font-family: var(--font-kh-teka); letter-spacing: 0.03em; padding: var(--spacing-11) var(--spacing-14); border: var(--hair); margin-bottom: var(--spacing-19); }
.fl-formnote--ok { background: var(--color-the-green); color: var(--color-concrete); border-color: var(--color-iron); }
.fl-formnote--err { background: var(--color-the-yellow); color: var(--color-iron); }

/* ==================================================================
   THE SENSOR NETWORK (newsletter)
   ================================================================== */
.fl-network { border-top: var(--hair); background: var(--color-the-yellow); }
.fl-network__inner { padding-block: clamp(40px, 6vw, 80px); display: grid; gap: var(--spacing-24); }
.fl-network__title { font-size: var(--text-heading); line-height: var(--leading-heading); letter-spacing: -0.04em; text-transform: uppercase; }
.fl-network__copy { max-width: 52ch; font-size: clamp(15px,1.8vw,18px); }
.fl-network__form { display: flex; flex-wrap: wrap; gap: var(--spacing-10); align-items: stretch; }
.fl-network__form .fl-input { flex: 1 1 260px; }
.fl-network .fl-kicker, .fl-network__title, .fl-network__copy { color: var(--color-iron); }

/* ==================================================================
   FOOTER
   ================================================================== */
.fl-foot { background: var(--color-iron); color: var(--color-concrete); padding-block: clamp(40px,5vw,60px) var(--spacing-30); }
.fl-foot a { color: var(--color-concrete); text-decoration: none; }
.fl-foot a:hover { text-decoration: underline; }
.fl-foot__grid { display: grid; gap: var(--spacing-30); grid-template-columns: 1fr; }
@media (min-width: 720px) { .fl-foot__grid { grid-template-columns: 2fr 1fr 1fr; } }
.fl-wordmark--foot { color: var(--color-concrete); }
.fl-foot__tag { max-width: 44ch; margin-top: var(--spacing-11); opacity: .85; }
.fl-foot__col { display: flex; flex-direction: column; gap: var(--spacing-8); }
.fl-foot__head { font-family: var(--font-kh-teka); text-transform: uppercase; letter-spacing: 0.1em; font-size: var(--text-body); margin-bottom: var(--spacing-6); }
.fl-foot .fl-rule { border-top-color: rgba(217,217,217,.3); margin-block: var(--spacing-30); }
.fl-foot__legal { font-size: var(--text-caption); opacity: .75; }

/* ==================================================================
   CALIBRATION NOTICE (cookies)
   ================================================================== */
.fl-cookie { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: var(--color-iron); color: var(--color-concrete); border-top: 1px solid var(--color-carbon); }
.fl-cookie[hidden] { display: none; }
.fl-cookie__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--spacing-20); padding-block: var(--spacing-15); flex-wrap: wrap; }
.fl-cookie__copy { font-size: var(--text-body); max-width: 70ch; }
.fl-cookie__copy a { color: var(--color-concrete); }

/* ==================================================================
   RESPONSIVE — reveal desktop CTA, collapse nav on small screens
   ================================================================== */
@media (min-width: 1040px) {
  .fl-topbar__cta { display: inline-flex; }
  .fl-burger { display: none; }
}
@media (max-width: 1039px) {
  .fl-nav { display: none; }
}

/* ==================================================================
   REDUCED MOTION — freeze the ticker, kill transitions
   ================================================================== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .fl-ticker { white-space: normal; }
  .fl-ticker__inner { animation: none; flex-wrap: wrap; }
  .fl-ticker__item { padding-block: 2px; }
}
