/* ============ Tokens ============ */
:root {
  --ff-navy: #12354B;
  --ff-navy-2: #0e2a3c;
  --ff-navy-ink: #e8eef3;
  --ff-red: #C62828;
  --ff-red-2: #a71f1f;
  --ff-ink: #1a1f24;
  --ff-ink-2: #3b4550;
  --ff-muted: #6b7580;
  --ff-rule: #e6e6e3;
  --ff-rule-2: #d6d6d1;
  --ff-paper: #fdfcf8;
  --ff-paper-2: #f5f3ec;
  --ff-max: 1240px;
  --ff-pad: clamp(20px, 4vw, 56px);
  --ff-section-y: clamp(64px, 9vw, 120px);
  --ff-radius: 6px;
  --ff-radius-lg: 14px;
  --ff-serif: "Source Serif 4", "Source Serif Pro", "Iowan Old Style", Georgia, serif;
  --ff-sans: "Archivo", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ff-cond: "Archivo Narrow", "Archivo", -apple-system, sans-serif;
  --ff-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
}

[data-density="compact"]  { --ff-section-y: clamp(44px, 6vw, 84px); }
[data-density="spacious"] { --ff-section-y: clamp(88px, 12vw, 160px); }

[data-heading-case="upper"] .ff-h2,
[data-heading-case="upper"] .ff-h3,
[data-heading-case="upper"] .ff-hero-title {
  text-transform: uppercase;
  letter-spacing: -0.01em;
}

/* ============ Base ============ */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { margin: 0; padding: 0; }
section[id="petition"] { scroll-margin-top: 80px; }
body {
  font-family: var(--ff-sans);
  font-size: 17px;
  line-height: 1.55;
  color: var(--ff-ink);
  background: var(--ff-paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: 0; background: none; color: inherit; }
img { max-width: 100%; display: block; }
::selection { background: var(--ff-red); color: #fff; }

.ff-wrap { max-width: var(--ff-max); margin: 0 auto; padding: 0 var(--ff-pad); }
.ff-section { padding: var(--ff-section-y) 0; position: relative; }

.ff-h2 {
  font-family: var(--ff-serif);
  font-size: clamp(32px, 4.4vw, 58px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  font-weight: 700;
  color: var(--ff-navy);
  margin: 14px 0 22px;
  text-wrap: balance;
}
.ff-h2 em { font-style: italic; color: var(--ff-red); }
.ff-h2--light { color: #fff; }
.ff-h3 {
  font-family: var(--ff-serif);
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--ff-navy);
  margin: 0 0 8px;
  font-weight: 700;
}
.ff-lede { font-size: clamp(17px, 1.3vw, 20px); line-height: 1.55; color: var(--ff-ink-2); max-width: 56ch; }

.ff-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--ff-cond);
  font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ff-navy); font-weight: 600;
}
.ff-eyebrow--light { color: rgba(255,255,255,.82); }
.ff-eyebrow-dot { width: 8px; height: 8px; background: var(--ff-red); border-radius: 50%; display: inline-block; box-shadow: 0 0 0 3px rgba(198,40,40,.18); }

/* ============ Buttons ============ */
.ff-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 13px 22px;
  font-family: var(--ff-cond);
  font-size: 15px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 700;
  border-radius: var(--ff-radius);
  transition: transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
  white-space: nowrap;
  border: 2px solid transparent;
}
.ff-btn:hover { transform: translateY(-1px); }
.ff-btn:active { transform: translateY(0); }
.ff-btn--lg { padding: 17px 28px; font-size: 16px; }
.ff-btn--block { width: 100%; padding: 18px 28px; font-size: 16px; }
.ff-btn--red { background: var(--ff-red); color: #fff; box-shadow: 0 4px 0 var(--ff-red-2); }
.ff-btn--red:hover { background: var(--ff-red-2); box-shadow: 0 2px 0 var(--ff-red-2); }
.ff-btn--red:disabled { opacity: .7; cursor: not-allowed; }
.ff-btn--outline { background: #fff; color: var(--ff-navy); border-color: var(--ff-navy); }
.ff-btn--outline:hover { background: var(--ff-navy); color: #fff; }
.ff-btn--ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.5); }
.ff-btn--ghost:hover { background: #fff; color: var(--ff-navy); border-color: #fff; }
.ff-play { font-size: 11px; }

.ff-link {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--ff-cond);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 14px;
  color: var(--ff-navy);
  border-bottom: 1.5px solid var(--ff-navy);
  padding-bottom: 2px;
}
.ff-link:hover { color: var(--ff-red); border-color: var(--ff-red); }
.ff-link--red { color: var(--ff-red); border-color: var(--ff-red); }

/* ============ Top banner ============ */
.ff-topbanner {
  background: var(--ff-red);
  color: #fff;
  font-size: 13px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(0,0,0,.12);
}
.ff-topbanner-inner {
  display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap;
}
.ff-topbanner-pulse {
  width: 9px; height: 9px; background: #F5C631; border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(245,198,49,.65);
  animation: ff-pulse 1.8s ease-out infinite;
}
@keyframes ff-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(245,198,49,.75); }
  100% { box-shadow: 0 0 0 12px rgba(245,198,49,0); }
}
.ff-topbanner-link { color: #fff; border-bottom: 1px solid rgba(255,255,255,.35); padding-bottom: 1px; font-weight: 600; }
.ff-topbanner-link:hover { border-color: #fff; }

/* ============ Nav ============ */
.ff-nav {
  position: sticky; top: 0; z-index: 50;
  background: #fff;
  border-bottom: 1px solid var(--ff-rule);
  transition: box-shadow .2s ease;
}
.ff-nav.is-scrolled { box-shadow: 0 6px 20px rgba(18,53,75,.06); }
.ff-nav-inner {
  display: flex; align-items: center; gap: 28px;
  height: 78px;
}
.ff-logo { flex-shrink: 0; display: block; }
.ff-logo img { height: 42px; width: auto; }
.ff-nav-list {
  display: flex; gap: 2px; list-style: none; padding: 0; margin: 0 auto 0 18px;
}
.ff-nav-list a {
  display: block;
  padding: 10px 14px;
  font-family: var(--ff-cond);
  font-size: 14px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--ff-ink-2);
  border-radius: 4px;
  position: relative;
}
.ff-nav-list a:hover { color: var(--ff-navy); }
.ff-nav-list a.is-active { color: var(--ff-navy); }
.ff-nav-list a.is-active::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 2px;
  height: 2px; background: var(--ff-red);
}
.ff-nav-actions { display: flex; align-items: center; gap: 12px; }
.ff-nav-actions .ff-btn { padding: 11px 20px; font-size: 14px; }
.ff-hamburger {
  display: none; width: 40px; height: 40px; flex-direction: column; justify-content: center; gap: 5px; align-items: center;
}
.ff-hamburger span { display: block; width: 22px; height: 2px; background: var(--ff-navy); }

.ff-mobile-menu {
  display: none; flex-direction: column;
  padding: 8px var(--ff-pad) 18px;
  border-top: 1px solid var(--ff-rule);
}
.ff-mobile-menu a {
  padding: 14px 0; font-family: var(--ff-cond); text-transform: uppercase;
  letter-spacing: 0.08em; font-weight: 600; border-bottom: 1px solid var(--ff-rule);
}

@media (max-width: 1040px) {
  .ff-nav-list { display: none; }
  .ff-hamburger { display: flex; }
  .ff-mobile-menu { display: flex; }
}

/* ============ Placeholder ============ */
.ff-ph {
  width: 100%;
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 2px;
}
.ff-ph-inner {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 13px;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(2px);
  border-radius: 2px;
  font-family: var(--ff-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: #fff;
}
.ff-ph-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ff-red); }

/* ============ Hero — cinematic ============ */
.ff-hero { position: relative; }
.ff-hero--cinematic { min-height: clamp(560px, 88vh, 900px); display: flex; align-items: flex-end; color: #fff; overflow: hidden; }
.ff-hero-bg {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  aspect-ratio: auto !important;
  border-radius: 0;
  object-fit: cover;
}
.ff-hero-bg .ff-ph-inner {
  position: absolute; bottom: 18px; right: 18px;
}
.ff-hero-scrim {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(18,53,75,.25) 0%, rgba(18,53,75,.25) 40%, rgba(14,30,44,.92) 100%),
    linear-gradient(90deg, rgba(14,30,44,.55) 0%, rgba(14,30,44,0) 55%);
}
.ff-hero-content { position: relative; padding: 0 var(--ff-pad) clamp(64px, 9vw, 110px); width: 100%; }
.ff-hero-title {
  font-family: var(--ff-serif);
  font-weight: 700;
  font-size: clamp(44px, 7vw, 104px);
  line-height: 0.98;
  letter-spacing: -0.025em;
  margin: 18px 0 22px;
  max-width: 16ch;
  text-wrap: balance;
}
.ff-hero-title em { font-style: italic; color: #ff8787; font-weight: 700; }
.ff-hero-sub {
  font-size: clamp(17px, 1.5vw, 22px);
  max-width: 56ch;
  color: rgba(255,255,255,.88);
  margin: 0 0 30px;
  line-height: 1.5;
}
.ff-hero-sub--dark { color: var(--ff-ink-2); }
.ff-hero-cta { display: flex; gap: 14px; flex-wrap: wrap; }
.ff-hero-cta--center { justify-content: center; }
.ff-hero-meta {
  margin-top: 34px;
  display: flex; flex-wrap: wrap; gap: 10px 14px;
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.1em; font-size: 12px;
  color: rgba(255,255,255,.65);
}
.ff-hero-meta .ff-dot { color: var(--ff-red); }

.ff-hero-scroll {
  position: absolute; right: var(--ff-pad); bottom: 30px;
  writing-mode: vertical-rl;
  display: flex; align-items: center; gap: 10px;
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.2em; font-size: 11px;
  color: rgba(255,255,255,.6);
}
.ff-hero-scroll-line { width: 1px; height: 46px; background: rgba(255,255,255,.5); }

/* ============ Hero — split ============ */
.ff-hero--split { padding: clamp(48px, 7vw, 96px) 0; background: var(--ff-paper-2); }
.ff-hero-split-inner { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(30px, 5vw, 80px); align-items: center; }
.ff-hero-split-copy .ff-hero-title { color: var(--ff-navy); margin: 14px 0 20px; font-size: clamp(40px, 5.4vw, 82px); }
.ff-hero-split-copy .ff-hero-title em { color: var(--ff-red); }
.ff-hero-split-media { position: relative; }
.ff-hero-split-badge {
  position: absolute; top: -14px; right: -14px;
  background: var(--ff-red); color: #fff;
  padding: 18px 22px; border-radius: var(--ff-radius);
  transform: rotate(4deg);
  box-shadow: 0 18px 40px rgba(198,40,40,.3);
  max-width: 220px;
}
.ff-hero-split-badge strong { font-family: var(--ff-serif); font-size: 36px; line-height: 1; display: block; margin-bottom: 6px; }
.ff-hero-split-badge span { font-size: 12px; font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em; line-height: 1.3; }

@media (max-width: 800px) {
  .ff-hero-split-inner { grid-template-columns: 1fr; }
}

/* ============ Hero — poster ============ */
.ff-hero--poster {
  background: var(--ff-navy);
  color: #fff;
  padding: clamp(64px, 9vw, 130px) 0 0;
  text-align: center;
  overflow: hidden;
}
.ff-hero-poster-inner { position: relative; }
.ff-hero-poster-mark {
  display: inline-block;
  border: 2px solid rgba(255,255,255,.25);
  padding: 8px 14px;
  font-family: var(--ff-cond);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  line-height: 1.1;
  margin-bottom: 30px;
}
.ff-hero-poster-title {
  font-family: var(--ff-serif);
  font-size: clamp(80px, 18vw, 260px);
  line-height: 0.88;
  margin: 0;
  font-weight: 700;
  letter-spacing: -0.04em;
  font-style: italic;
}
.ff-hero-poster-title span { display: block; }
.ff-hero-poster-title--red { color: var(--ff-red); }
.ff-hero-poster-sub { max-width: 56ch; margin: 26px auto 32px; font-size: clamp(16px, 1.4vw, 20px); color: rgba(255,255,255,.8); }
.ff-hero-poster-strip {
  display: flex; gap: 40px; overflow: hidden;
  margin-top: clamp(40px, 5vw, 72px);
  padding: 22px 0;
  border-top: 1px solid rgba(255,255,255,.12);
  border-bottom: 1px solid rgba(255,255,255,.12);
  font-family: var(--ff-cond);
  text-transform: uppercase; letter-spacing: 0.2em; font-size: 14px;
  color: rgba(255,255,255,.55);
  justify-content: space-around;
}
.ff-hero-poster-strip span { white-space: nowrap; }

/* ============ Impact bar ============ */
.ff-impact {
  background: var(--ff-navy);
  color: #fff;
  border-top: 4px solid var(--ff-red);
}
.ff-impact-inner {
  display: grid; grid-template-columns: repeat(4, 1fr);
  padding: 40px var(--ff-pad);
}
.ff-impact-stat {
  padding: 10px 28px;
  border-left: 1px solid rgba(255,255,255,.14);
}
.ff-impact-stat:first-child { border-left: 0; padding-left: 0; }
.ff-impact-num {
  font-family: var(--ff-serif);
  font-size: clamp(36px, 4.2vw, 60px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.02em;
  color: #fff;
}
.ff-impact-label {
  margin-top: 8px;
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.1em; font-size: 13px;
  color: rgba(255,255,255,.75);
}
.ff-impact-grow {
  margin-top: 6px;
  font-size: 12px;
  color: var(--ff-red);
  font-family: var(--ff-mono);
}
.ff-impact-grow::before { content: "↗ "; }

@media (max-width: 800px) {
  .ff-impact-inner { grid-template-columns: repeat(2, 1fr); gap: 28px; }
  .ff-impact-stat { border-left: 0; padding: 0; }
}

/* ============ Intro video ============ */
.ff-intro { background: var(--ff-paper); }
.ff-intro-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(28px, 4vw, 48px);
  text-align: center;
  align-items: center;
}
.ff-intro-copy { max-width: 720px; margin: 0 auto; }
.ff-intro-copy .ff-lede { margin-left: auto; margin-right: auto; }
.ff-intro-player {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  border-radius: var(--ff-radius-lg);
  overflow: hidden;
  background: #000;
  aspect-ratio: 16 / 9;
  box-shadow: 0 30px 60px -20px rgba(18,53,75,.4);
}
.ff-intro-player video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* ============ Latest video ============ */
.ff-video-inner {
  display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(30px, 5vw, 80px);
  align-items: center;
}
.ff-video-meta {
  list-style: none; padding: 0; margin: 24px 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
  border-top: 1px solid var(--ff-rule);
  border-bottom: 1px solid var(--ff-rule);
  padding: 18px 0;
}
.ff-video-meta li { font-size: 14px; color: var(--ff-ink-2); }
.ff-video-meta strong {
  display: block; font-family: var(--ff-cond); text-transform: uppercase;
  letter-spacing: 0.1em; font-size: 11px; color: var(--ff-muted); font-weight: 600; margin-bottom: 4px;
}
.ff-video-actions { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 10px; }

.ff-video-player {
  position: relative; width: 100%; display: block; padding: 0;
  border-radius: var(--ff-radius-lg); overflow: hidden;
  box-shadow: 0 30px 60px -20px rgba(18,53,75,.4);
}
.ff-video-player .ff-ph { border-radius: 0; }
.ff-video-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(14,30,44,.15), rgba(14,30,44,.72));
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 22px;
}
.ff-video-play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 96px; height: 96px; border-radius: 50%;
  background: var(--ff-red);
  color: #fff;
  display: grid; place-items: center;
  font-size: 32px;
  padding-left: 6px;
  box-shadow: 0 0 0 0 rgba(198,40,40,.5);
  transition: transform .2s ease, box-shadow .2s ease;
}
.ff-video-player:hover .ff-video-play { transform: translate(-50%, -50%) scale(1.08); box-shadow: 0 0 0 14px rgba(198,40,40,.18); }
.ff-video-timecode {
  align-self: flex-end;
  font-family: var(--ff-mono);
  font-size: 12px;
  color: #fff;
  background: rgba(0,0,0,.5);
  padding: 5px 9px;
  border-radius: 3px;
}
.ff-video-caption {
  color: #fff; text-align: left;
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em; font-size: 13px;
  display: flex; align-items: center; gap: 10px;
}
.ff-video-badge {
  background: var(--ff-red); color: #fff; font-size: 11px; padding: 3px 7px; border-radius: 2px; letter-spacing: 0.12em;
}

@media (max-width: 900px) { .ff-video-inner { grid-template-columns: 1fr; } }

/* ============ Summary + map ============ */
.ff-summary { background: var(--ff-paper-2); border-top: 1px solid var(--ff-rule); border-bottom: 1px solid var(--ff-rule); }
.ff-summary-inner { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(30px, 5vw, 80px); align-items: start; }
.ff-summary-copy p { color: var(--ff-ink-2); font-size: 17px; line-height: 1.65; margin: 0 0 16px; max-width: 54ch; }
.ff-summary-stats {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 5vw, 60px);
  margin-top: 32px;
  border-top: 2px solid var(--ff-navy);
  padding-top: 24px;
}
.ff-summary-stats > div { padding-right: 20px; border-right: 1px solid var(--ff-rule-2); }
.ff-summary-stats > div:last-child { border-right: 0; padding-right: 0; }
.ff-stat-n { font-family: var(--ff-serif); font-weight: 700; font-size: clamp(28px, 3vw, 40px); color: var(--ff-navy); line-height: 1; letter-spacing: -0.02em; }
.ff-stat-n span { font-size: 0.55em; color: var(--ff-red); margin-left: 2px; }
.ff-stat-l { margin-top: 6px; font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.09em; font-size: 12px; color: var(--ff-muted); }

.ff-map-frame {
  position: relative;
  border: 1px solid var(--ff-rule-2);
  background: #fff;
  padding: 14px;
  border-radius: var(--ff-radius);
  box-shadow: 0 20px 50px -20px rgba(18,53,75,.18);
}
.ff-map-overlay { position: absolute; inset: 14px; width: calc(100% - 28px); height: calc(100% - 120px); pointer-events: none; }
.ff-map-img { width: 100%; height: auto; display: block; border-radius: calc(var(--ff-radius) - 6px); transition: transform .25s ease, filter .25s ease; }
.ff-map-link { display: block; cursor: pointer; }
.ff-map-link:hover .ff-map-img { transform: scale(1.01); filter: brightness(1.04); }
.ff-map-credit {
  margin: 10px 0 0;
  font-family: var(--ff-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #b8b8b8;
  text-align: center;
}
.ff-map-credit a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.ff-map-credit a:hover { color: var(--ff-red); }
.ff-map-legend {
  margin-top: 12px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em; font-size: 11px;
  color: var(--ff-ink-2);
}
.ff-map-legend > div { display: flex; align-items: center; gap: 8px; }
.ff-legend-sw { width: 18px; height: 10px; display: inline-block; }
.ff-legend-sw--hatch { background: repeating-linear-gradient(45deg, rgba(198,40,40,.2) 0 3px, rgba(198,40,40,.6) 3px 5px); }
.ff-legend-sw--line { background: transparent; border-top: 2px dashed var(--ff-red); height: 2px; }
.ff-legend-sw--dot { width: 10px; height: 10px; background: var(--ff-red); border-radius: 50%; }
.ff-map-compass {
  position: absolute; top: 24px; right: 24px;
  width: 34px; height: 34px;
  border: 1px solid var(--ff-rule-2);
  background: rgba(255,255,255,.85);
  border-radius: 50%;
  display: grid; place-items: center;
  font-family: var(--ff-mono); font-size: 12px; color: var(--ff-navy); font-weight: 700;
}

@media (max-width: 900px) { .ff-summary-inner { grid-template-columns: 1fr; } }

/* ============ Petition ============ */
.ff-petition { background: #fff; }
.ff-petition-inner { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(30px, 5vw, 80px); align-items: start; }
.ff-petition-bullets { margin-top: 22px; display: flex; flex-direction: column; gap: 10px; color: var(--ff-ink-2); font-size: 15px; }
.ff-check {
  display: inline-grid; place-items: center;
  width: 22px; height: 22px; background: var(--ff-navy); color: #fff; border-radius: 50%;
  font-size: 12px; margin-right: 10px;
}

.ff-petition-form {
  background: var(--ff-paper-2);
  padding: clamp(24px, 3vw, 36px);
  border-radius: var(--ff-radius-lg);
  border: 1px solid var(--ff-rule);
  position: relative;
}
.ff-petition-form::before {
  content: "";
  position: absolute; top: 0; left: 0; right: 0; height: 5px;
  background: var(--ff-red);
  border-radius: var(--ff-radius-lg) var(--ff-radius-lg) 0 0;
}

.ff-form-header {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--ff-rule);
  margin-bottom: 20px;
}
.ff-form-count { font-family: var(--ff-serif); font-size: 32px; font-weight: 700; color: var(--ff-navy); line-height: 1; }
.ff-form-count-l { font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em; font-size: 11px; color: var(--ff-muted); margin-top: 4px; }
.ff-form-bar { flex: 0 0 140px; height: 6px; background: var(--ff-rule); border-radius: 4px; overflow: hidden; }
.ff-form-bar > div { height: 100%; background: var(--ff-red); }

.ff-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ff-field { display: block; margin-bottom: 14px; }
.ff-field-label { display: block; font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px; font-weight: 600; color: var(--ff-navy); margin-bottom: 6px; }
.ff-req { color: var(--ff-red); margin-left: 2px; }
.ff-field-err { font-style: normal; color: var(--ff-red); font-weight: 600; }
.ff-field input {
  width: 100%;
  padding: 13px 14px;
  font-family: var(--ff-sans);
  font-size: 15px;
  border: 1.5px solid var(--ff-rule-2);
  background: #fff;
  border-radius: var(--ff-radius);
  color: var(--ff-ink);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.ff-field input:focus { outline: 0; border-color: var(--ff-navy); box-shadow: 0 0 0 3px rgba(18,53,75,.12); }
.ff-field.has-error input { border-color: var(--ff-red); }

.ff-radio-row { display: flex; flex-wrap: wrap; gap: 8px; }
.ff-radio {
  flex: 1 1 auto; min-width: 140px;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 12px 14px;
  background: #fff;
  border: 1.5px solid var(--ff-rule-2);
  border-radius: var(--ff-radius);
  font-size: 14px; font-weight: 500; color: var(--ff-ink-2);
  cursor: pointer;
  transition: all .15s ease;
  text-align: center;
}
.ff-radio:hover { border-color: var(--ff-navy); color: var(--ff-navy); }
.ff-radio input { display: none; }
.ff-radio.is-on { background: var(--ff-navy); border-color: var(--ff-navy); color: #fff; }

.ff-form-fine { font-size: 12px; color: var(--ff-muted); margin-top: 14px; line-height: 1.5; }

.ff-petition-done { grid-template-columns: 1.1fr 1fr; }
.ff-petition-tally {
  background: var(--ff-navy); color: #fff;
  padding: 32px;
  border-radius: var(--ff-radius-lg);
  text-align: center;
}
.ff-tally-num { font-family: var(--ff-serif); font-size: clamp(54px, 7vw, 90px); line-height: 1; font-weight: 700; letter-spacing: -0.02em; }
.ff-tally-label { font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.12em; font-size: 13px; margin-top: 8px; color: rgba(255,255,255,.75); }
.ff-tally-bar { height: 8px; background: rgba(255,255,255,.15); border-radius: 4px; margin-top: 22px; overflow: hidden; }
.ff-tally-fill { height: 100%; background: var(--ff-red); }
.ff-tally-goal { margin-top: 10px; font-size: 13px; color: rgba(255,255,255,.7); }
.ff-petition-next { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 18px; }

@media (max-width: 900px) {
  .ff-petition-inner, .ff-petition-done { grid-template-columns: 1fr; }
  .ff-form-row { grid-template-columns: 1fr; }
}

/* ============ Action cards ============ */
.ff-actions { background: var(--ff-paper); }
.ff-actions-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 36px; }
.ff-actions-head .ff-h2 { margin: 10px 0 0; }
.ff-actions-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ff-card {
  background: #fff;
  border: 1px solid var(--ff-rule);
  border-radius: var(--ff-radius-lg);
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ff-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -20px rgba(18,53,75,.25); border-color: var(--ff-navy); }
.ff-card-media .ff-ph { border-radius: 0; }
.ff-card-media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--ff-paper); }
.ff-card-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.ff-card:hover .ff-card-img { transform: scale(1.04); }
.ff-card-body { padding: 24px 26px 28px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.ff-card-kicker { font-family: var(--ff-mono); font-size: 11px; letter-spacing: 0.12em; color: var(--ff-red); text-transform: uppercase; }
.ff-card-title { font-family: var(--ff-serif); font-size: 22px; color: var(--ff-navy); margin: 0; font-weight: 700; line-height: 1.2; }
.ff-card-copy { color: var(--ff-ink-2); margin: 0; font-size: 15px; line-height: 1.55; flex: 1; }
.ff-card-cta {
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em; font-size: 13px;
  color: var(--ff-red); font-weight: 700; margin-top: 6px;
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
}
.ff-card:hover .ff-card-cta span { transform: translateX(4px); transition: transform .2s; }
.ff-card-btn {
  margin-top: 10px;
  align-self: flex-start;
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--ff-red); color: #fff;
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em;
  font-size: 13px; font-weight: 700;
  padding: 12px 18px;
  border-radius: 999px;
  transition: background .2s ease, transform .2s ease;
}
.ff-card-btn span { display: inline-block; transition: transform .2s ease; }
.ff-card:hover .ff-card-btn { background: var(--ff-navy); }
.ff-card:hover .ff-card-btn span { transform: translateX(4px); }

@media (max-width: 900px) { .ff-actions-grid { grid-template-columns: 1fr; } .ff-actions-head { flex-direction: column; align-items: flex-start; } }

/* ============ Quote ============ */
.ff-quote { background: var(--ff-navy); color: #fff; text-align: center; overflow: hidden; position: relative; }
.ff-quote-inner { position: relative; max-width: 900px; padding: 0 var(--ff-pad); }
.ff-quote-mark {
  font-family: var(--ff-serif); font-size: 240px; color: var(--ff-red);
  line-height: 0.7; font-weight: 700;
  position: absolute; left: 50%; top: -30px; transform: translateX(-50%);
  opacity: .28;
  pointer-events: none;
}
.ff-quote blockquote {
  font-family: var(--ff-serif);
  font-size: clamp(22px, 2.8vw, 38px);
  line-height: 1.35;
  margin: 0; padding: 20px 0;
  position: relative;
  font-weight: 500;
  text-wrap: balance;
}
.ff-quote em { color: #ff8787; font-style: italic; }
.ff-quote-strong { color: var(--ff-red); font-weight: 700; }
.ff-quote figcaption { margin-top: 28px; }
.ff-quote-name { font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.14em; font-size: 13px; font-weight: 600; }
.ff-quote-place { font-size: 13px; color: rgba(255,255,255,.6); margin-top: 4px; }

/* ============ Donate ============ */
.ff-donate { background: linear-gradient(180deg, var(--ff-navy-2) 0%, var(--ff-navy) 100%); color: #fff; }
.ff-donate-inner { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(30px, 5vw, 80px); align-items: start; }
.ff-donate-copy p { color: rgba(255,255,255,.82); font-size: 17px; line-height: 1.65; max-width: 54ch; }
.ff-donate-where {
  list-style: none; padding: 0; margin: 24px 0 0;
  display: grid; gap: 8px;
}
.ff-donate-where li {
  display: grid; grid-template-columns: 60px 1fr; align-items: center; gap: 14px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,.1);
  font-size: 14px;
  color: rgba(255,255,255,.82);
}
.ff-donate-where li span { font-family: var(--ff-serif); font-size: 22px; font-weight: 700; color: var(--ff-red); }

/* List-style variant — category name on its own line, then the body */
.ff-donate-where--list { gap: 14px; }
.ff-donate-where--list li {
  display: block;
  padding: 14px 0;
  font-size: 15px;
  line-height: 1.55;
}
.ff-donate-where--list li strong {
  display: block;
  font-family: var(--ff-cond);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 13px;
  font-weight: 700;
  color: var(--ff-red);
  margin-bottom: 4px;
}
.ff-donate-where--list li span { font-family: var(--ff-sans); font-size: 15px; font-weight: 400; color: rgba(255,255,255,.86); }

.ff-donate-form {
  background: #fff;
  color: var(--ff-ink);
  padding: clamp(24px, 3vw, 34px);
  border-radius: var(--ff-radius-lg);
  box-shadow: 0 30px 60px -20px rgba(0,0,0,.35);
}
.ff-donate-toggle {
  display: grid; grid-template-columns: 1fr 1fr; gap: 4px;
  background: var(--ff-paper-2); padding: 4px;
  border-radius: var(--ff-radius);
  margin-bottom: 20px;
}
.ff-donate-toggle button {
  padding: 10px 14px; font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em;
  font-size: 13px; font-weight: 600; border-radius: 4px; color: var(--ff-muted);
}
.ff-donate-toggle button.is-on { background: #fff; color: var(--ff-navy); box-shadow: 0 1px 2px rgba(0,0,0,.08); }

.ff-donate-tiers { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 16px; }
.ff-donate-tier {
  padding: 16px 14px;
  border: 1.5px solid var(--ff-rule-2);
  background: #fff; border-radius: var(--ff-radius);
  text-align: left;
  transition: all .15s ease;
}
.ff-donate-tier:hover { border-color: var(--ff-navy); }
.ff-donate-tier-n { display: block; font-family: var(--ff-serif); font-size: 24px; font-weight: 700; color: var(--ff-navy); line-height: 1; }
.ff-donate-tier-l { display: block; font-size: 12px; color: var(--ff-muted); margin-top: 4px; }
.ff-donate-tier.is-on { border-color: var(--ff-red); background: #fff5f5; }
.ff-donate-tier.is-on .ff-donate-tier-n { color: var(--ff-red); }

.ff-donate-other { display: block; margin-bottom: 16px; }
.ff-donate-other > span { font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em; font-size: 11px; color: var(--ff-navy); font-weight: 600; }
.ff-donate-other-in {
  display: flex; align-items: center;
  border: 1.5px solid var(--ff-rule-2); border-radius: var(--ff-radius);
  padding: 0 14px; margin-top: 6px;
  background: #fff;
}
.ff-donate-other-in em { font-style: normal; color: var(--ff-muted); font-family: var(--ff-serif); font-size: 20px; }
.ff-donate-other-in input { flex: 1; border: 0; padding: 13px 10px; font-size: 16px; outline: 0; background: transparent; }

.ff-donate-fine { font-size: 12px; color: var(--ff-muted); text-align: center; margin-top: 12px; }

@media (max-width: 900px) { .ff-donate-inner { grid-template-columns: 1fr; } }

/* ============ Newsletter ============ */
.ff-news { background: var(--ff-paper-2); border-top: 1px solid var(--ff-rule); padding: clamp(40px, 6vw, 64px) 0; }
.ff-news-inner { display: grid; grid-template-columns: 1.3fr 1fr; gap: 30px; align-items: center; }
.ff-news p { color: var(--ff-ink-2); margin: 6px 0 0; }
.ff-news-form { display: flex; gap: 10px; }
.ff-news-form input {
  flex: 1;
  padding: 14px 16px;
  font-size: 15px;
  border: 1.5px solid var(--ff-rule-2);
  border-radius: var(--ff-radius);
  background: #fff;
  outline: 0;
}
.ff-news-form input:focus { border-color: var(--ff-navy); }
.ff-news-done { color: var(--ff-navy); font-weight: 600; padding: 14px 0; }

@media (max-width: 720px) { .ff-news-inner { grid-template-columns: 1fr; } .ff-news-form { flex-direction: column; } }

/* ============ Footer ============ */
.ff-footer { background: var(--ff-navy); color: rgba(255,255,255,.8); padding-top: clamp(56px, 7vw, 88px); }
.ff-footer-inner { display: grid; grid-template-columns: 2fr 1fr; gap: clamp(24px, 4vw, 60px); padding-top: 28px; padding-bottom: 32px; }
.ff-footer-brand img { height: 44px; filter: brightness(0) invert(1); margin-bottom: 18px; }
.ff-footer-brand p { font-size: 14px; max-width: 44ch; line-height: 1.6; }
.ff-footer-social { display: flex; gap: 14px; margin-top: 18px; }
.ff-footer-social a {
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.1em; font-size: 12px;
  padding: 8px 12px; border: 1px solid rgba(255,255,255,.25); border-radius: 2px;
  transition: all .15s ease;
}
.ff-footer-social a:hover { background: #fff; color: var(--ff-navy); border-color: #fff; }

.ff-footer-cols { display: grid; grid-template-columns: 1fr; gap: 18px; align-self: start; }
.ff-footer-cols h4 {
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.12em; font-size: 12px; font-weight: 700;
  color: #fff; margin: 0 0 14px;
}
.ff-footer-cols a { display: block; font-size: 14px; padding: 6px 0; color: rgba(255,255,255,.75); }
.ff-footer-cols a:hover { color: #fff; }

.ff-footer-base {
  border-top: 1px solid rgba(255,255,255,.1);
  padding: 20px 0;
  font-size: 12px;
  font-family: var(--ff-cond);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,.55);
}
.ff-footer-base-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px; }

@media (max-width: 800px) { .ff-footer-inner { grid-template-columns: 1fr; gap: 18px; padding-top: 22px; padding-bottom: 24px; } }

/* ============ Modal ============ */
.ff-modal { position: fixed; inset: 0; background: rgba(14,30,44,.92); z-index: 200; display: grid; place-items: center; padding: 20px; }
.ff-modal-inner { width: min(1000px, 100%); position: relative; }
.ff-modal-close {
  position: absolute; top: -44px; right: 0;
  color: #fff; font-size: 32px; line-height: 1; width: 36px; height: 36px;
}
.ff-modal-caption {
  margin-top: 14px; color: #fff; display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap;
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px;
}
.ff-modal-caption strong { font-size: 14px; }
.ff-modal-caption span { color: rgba(255,255,255,.65); }

/* ============ News page ============ */
.ff-news-hero { background: var(--ff-paper); padding-top: clamp(32px, 5vw, 80px); padding-bottom: clamp(16px, 3vw, 50px); }
.ff-yt-section, .ff-news-letters, .ff-news-socials, .ff-news-press { padding-top: clamp(24px, 4vw, 60px); padding-bottom: clamp(24px, 4vw, 60px); }
@media (max-width: 720px) {
  .ff-yt-section, .ff-news-letters, .ff-news-socials, .ff-news-press { padding-top: 28px; padding-bottom: 28px; }
  .ff-news-band { gap: 10px; }
  .ff-news-band-lede { font-size: 14px; }
  .ff-yt-grid { gap: 14px; }
  .ff-yt-card-body { padding: 12px 14px; }
  .ff-yt-card-title { font-size: 15px; }
  .ff-press-item { padding: 12px 0; }
  .ff-letter-item { padding: 12px 0; }
}
.ff-news-hero-inner { max-width: 820px; }
.ff-news-h1 { font-size: clamp(36px, 5vw, 64px); margin-top: 14px; text-transform: uppercase; }
.ff-news-band {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 14px 22px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--ff-navy);
  margin-bottom: 28px;
}
.ff-news-band .ff-eyebrow {
  font-family: var(--ff-serif);
  font-style: italic;
  font-size: clamp(22px, 2.2vw, 30px);
  letter-spacing: -0.01em;
  text-transform: none;
  font-weight: 700;
  color: var(--ff-navy);
}
.ff-news-band-lede { color: var(--ff-ink-2); font-size: 15px; line-height: 1.5; flex: 1 1 auto; max-width: 60ch; margin: 0; }
.ff-news-empty { color: var(--ff-muted); font-size: 14px; padding: 24px 0; }

.ff-yt-section { background: var(--ff-paper); }
.ff-yt-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.5vw, 28px);
}
.ff-yt-card {
  background: #fff;
  border: 1px solid var(--ff-rule);
  border-radius: var(--ff-radius-lg);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  display: flex; flex-direction: column;
}
.ff-yt-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 44px -22px rgba(18,53,75,.28);
  border-color: var(--ff-navy);
}
.ff-yt-card-media {
  position: relative;
  aspect-ratio: 16 / 9;
  display: block;
  overflow: hidden;
  background: #000;
}
.ff-yt-card-media img { width: 100%; height: 100%; object-fit: cover; opacity: .92; transition: opacity .15s ease; }
.ff-yt-card-media:hover img { opacity: 1; }
.ff-yt-card-media .ff-yt-play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 60px; height: 60px; border-radius: 50%;
  background: var(--ff-red); color: #fff; display: grid; place-items: center;
  font-size: 22px; padding-left: 4px;
  box-shadow: 0 0 0 0 rgba(198,40,40,.4);
  transition: transform .2s ease, box-shadow .2s ease;
}
.ff-yt-card-media:hover .ff-yt-play {
  transform: translate(-50%, -50%) scale(1.08);
  box-shadow: 0 0 0 12px rgba(198,40,40,.18);
}
.ff-yt-card { color: inherit; }
.ff-yt-card-body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.ff-yt-card-title {
  font-family: var(--ff-serif);
  font-size: 18px; line-height: 1.3;
  color: var(--ff-navy);
  font-weight: 700;
  margin: 0;
}
.ff-yt-card-cta {
  margin-top: auto; padding-top: 6px;
  font-family: var(--ff-cond);
  text-transform: uppercase; letter-spacing: 0.1em;
  font-size: 12px; font-weight: 700;
  color: var(--ff-red);
  display: inline-flex; align-items: center; gap: 6px;
}
.ff-yt-card:hover .ff-yt-card-cta { color: var(--ff-navy); }
@media (max-width: 1000px) { .ff-yt-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .ff-yt-grid { grid-template-columns: 1fr; } }

.ff-news-letters { background: var(--ff-paper-2); }
.ff-letter-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0; }
.ff-letter-item { display: grid; grid-template-columns: 160px 1fr; gap: 24px; padding: 22px 4px; border-bottom: 1px solid var(--ff-rule); }
.ff-letter-date { font-family: var(--ff-mono); font-size: 13px; color: var(--ff-muted); padding-top: 4px; }
.ff-letter-link { display: flex; flex-direction: column; gap: 6px; color: inherit; }
.ff-letter-title { font-family: var(--ff-serif); font-size: 19px; line-height: 1.3; color: var(--ff-navy); font-weight: 700; }
.ff-letter-link:hover .ff-letter-title { color: var(--ff-red); }
.ff-letter-excerpt { color: var(--ff-ink-2); font-size: 14.5px; line-height: 1.55; }
@media (max-width: 700px) { .ff-letter-item { grid-template-columns: 1fr; gap: 6px; } }

.ff-news-socials { background: var(--ff-paper); }
.ff-socials-grid {
  list-style: none; padding: 0; margin: 0 0 30px;
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px;
}
.ff-social-card {
  display: flex; flex-direction: column; gap: 6px;
  padding: 22px 22px 24px;
  background: #fff;
  border: 1px solid var(--ff-rule);
  border-radius: var(--ff-radius-lg);
  color: inherit;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  position: relative; overflow: hidden;
  min-width: 0;
}
.ff-social-card > * { min-width: 0; max-width: 100%; overflow-wrap: anywhere; word-break: break-word; }
.ff-social-card::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--ff-red);
}
.ff-social-card:hover { transform: translateY(-3px); box-shadow: 0 22px 44px -22px rgba(18,53,75,.28); border-color: var(--ff-navy); }
.ff-social-platform { font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.12em; font-size: 11px; color: var(--ff-red); font-weight: 700; }
.ff-social-handle { font-family: var(--ff-serif); font-size: 18px; color: var(--ff-navy); font-weight: 700; line-height: 1.2; }
.ff-social-cta { font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px; color: var(--ff-navy); margin-top: auto; }
.ff-social-card--youtube::before   { background: #FF0000; }
.ff-social-card--tiktok::before    { background: #000; }
.ff-social-card--x::before         { background: #000; }
.ff-social-card--facebook::before  { background: #1877F2; }
.ff-social-card--instagram::before { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); }
@media (max-width: 1000px) { .ff-socials-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) {
  .ff-socials-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 22px; }
  .ff-social-card { padding: 14px 14px 16px; gap: 4px; border-radius: 10px; }
  .ff-social-platform { font-size: 10px; letter-spacing: 0.1em; }
  .ff-social-handle { font-size: 15px; line-height: 1.2; }
  .ff-social-cta { font-size: 11px; letter-spacing: 0.06em; }
}
@media (max-width: 420px) { .ff-socials-grid { grid-template-columns: 1fr; } }
.ff-social-embed { margin-top: 8px; }
.ff-social-embed .tiktok-embed { max-width: 605px; min-width: 280px; margin: 0 auto; }

.ff-news-press { background: var(--ff-paper-2); }
.ff-press-list { list-style: none; padding: 0; margin: 0; }
.ff-press-item { display: grid; grid-template-columns: 220px 1fr; gap: 24px; padding: 18px 4px; border-bottom: 1px solid var(--ff-rule); align-items: baseline; }
.ff-press-outlet { font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.1em; font-size: 13px; font-weight: 700; color: var(--ff-navy); }
.ff-press-headline { font-family: var(--ff-serif); font-size: 17px; line-height: 1.4; color: var(--ff-ink); }
.ff-press-headline:hover { color: var(--ff-red); }
@media (max-width: 720px) { .ff-press-item { grid-template-columns: 1fr; gap: 4px; } }

/* ============ Take Action page ============ */
.ff-takeaction-hero { background: var(--ff-paper); padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(28px, 4vw, 50px); }
.ff-takeaction-hero-inner { max-width: 820px; }
.ff-takeaction-h1 { font-size: clamp(36px, 5vw, 64px); margin-top: 14px; text-transform: uppercase; }

.ff-takeaction-grid-wrap { background: var(--ff-paper-2); }
.ff-takeaction-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(18px, 2.5vw, 28px);
  margin-bottom: 36px;
}
.ff-takeaction-card {
  display: flex; flex-direction: column; gap: 12px;
  padding: 32px 30px 36px;
  border-radius: var(--ff-radius-lg);
  border: 1px solid transparent;
  transition: transform .2s ease, box-shadow .2s ease;
  color: #fff;
  background: var(--ff-navy);
  position: relative;
  overflow: hidden;
}
.ff-takeaction-card::after {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--ff-red);
}
.ff-takeaction-card:hover { transform: translateY(-4px); box-shadow: 0 28px 50px -25px rgba(18,53,75,.4); }
.ff-takeaction-card .ff-card-kicker { color: rgba(255,255,255,.7); }
.ff-takeaction-card-title { font-family: var(--ff-serif); font-size: clamp(22px, 2.2vw, 28px); line-height: 1.15; margin: 0; color: #fff; font-weight: 700; }
.ff-takeaction-card p { color: rgba(255,255,255,.86); font-size: 15px; line-height: 1.55; flex: 1; margin: 0; }
.ff-takeaction-card-cta { font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em; font-size: 13px; font-weight: 700; color: #fff; padding-top: 6px; }
.ff-takeaction-card--red { background: var(--ff-red); }
.ff-takeaction-card--red::after { background: #fff; }
.ff-takeaction-card--paddock { background: #4a5a2f; }
.ff-takeaction-card--paddock::after { background: var(--ff-red); }
@media (max-width: 1000px) { .ff-takeaction-grid { grid-template-columns: 1fr; } }

/* ============ Petition page ============ */
.ff-petition-page { background: #fff; }
.ff-petition-page--navy.is-done { background: var(--ff-navy); color: #fff; }
.ff-petition-page--navy.is-done .ff-h2,
.ff-petition-page--navy.is-done .ff-h3 { color: #fff; }
.ff-petition-page--navy.is-done .ff-lede,
.ff-petition-page--navy.is-done p { color: rgba(255,255,255,.86); }
.ff-petition-page--navy.is-done .ff-eyebrow { color: rgba(255,255,255,.86); }
.ff-petition-page-inner { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(30px, 5vw, 80px); align-items: start; }
.ff-back-link {
  display: inline-flex; align-items: center;
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em;
  font-size: 13px; color: var(--ff-muted); font-weight: 600;
  margin-bottom: 14px;
}
.ff-back-link:hover { color: var(--ff-red); }
.ff-petition-page-thanks { max-width: 720px; display: flex; flex-direction: column; gap: 22px; }
.ff-petition-page-thanks .ff-petition-tally {
  background: var(--ff-paper-2); color: var(--ff-navy);
  padding: 28px;
  border-radius: var(--ff-radius-lg);
  text-align: center;
  border: 1px solid var(--ff-rule);
}
.ff-petition-page-thanks .ff-tally-num { color: var(--ff-navy); }
.ff-petition-page-thanks .ff-tally-label { color: var(--ff-muted); }
.ff-petition-page-thanks .ff-tally-bar { background: var(--ff-rule); }
.ff-petition-page-thanks .ff-tally-goal { color: var(--ff-muted); }
.ff-petition-page-next { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; }

@media (max-width: 900px) {
  .ff-petition-page-inner { grid-template-columns: 1fr; }
}

/* ============ Demands list (used by petition pages) ============ */
.ff-demands { margin: 26px 0 8px; }
.ff-demands-intro {
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.1em;
  font-size: 13px; font-weight: 700; color: var(--ff-red); margin: 0 0 14px;
}
.ff-demands-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 14px; }
.ff-demand {
  display: grid; grid-template-columns: 56px 1fr; gap: 16px; align-items: start;
  padding: 16px 18px 16px 16px;
  background: var(--ff-paper-2);
  border-left: 3px solid var(--ff-red);
  border-radius: var(--ff-radius);
}
.ff-demand-numeral { font-family: var(--ff-serif); font-style: italic; font-weight: 700; font-size: 32px; line-height: 1; color: var(--ff-navy); text-align: center; padding-top: 2px; }
.ff-demand-text { font-size: 15.5px; line-height: 1.55; color: var(--ff-ink); }

/* ============ Trust badges (used by Take Action) ============ */
.ff-trust-row { list-style: none; padding: 0; margin: 24px 0 0; display: flex; flex-wrap: wrap; gap: 12px 18px; }
.ff-trust-badge { display: inline-flex; align-items: center; gap: 8px; font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px; font-weight: 600; color: var(--ff-navy); }
.ff-trust-icon { width: 18px; height: 18px; display: inline-block; background: var(--ff-navy); border-radius: 4px; position: relative; }
.ff-trust-icon::before { content: ""; position: absolute; inset: 0; background-repeat: no-repeat; background-position: center; background-size: 12px 12px; }
.ff-trust-icon--lock::before   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M17 9V7a5 5 0 0 0-10 0v2H5v13h14V9h-2zm-8 0V7a3 3 0 0 1 6 0v2H9zm3 8a2 2 0 1 1 0-4 2 2 0 0 1 0 4z'/%3E%3C/svg%3E"); }
.ff-trust-icon--shield::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 2 4 5v6c0 5 3.5 9.5 8 11 4.5-1.5 8-6 8-11V5l-8-3z'/%3E%3C/svg%3E"); }
.ff-trust-icon--tick::before   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E"); }

/* ============ Action form (shared by petition pages) ============ */
.ff-action-form {
  background: var(--ff-paper-2); padding: clamp(24px, 3vw, 36px);
  border-radius: var(--ff-radius-lg);
  border: 1px solid var(--ff-rule);
  position: relative;
}
.ff-action-form::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px;
  background: var(--ff-red);
  border-radius: var(--ff-radius-lg) var(--ff-radius-lg) 0 0;
}
.ff-field select {
  width: 100%; padding: 13px 14px;
  font-family: var(--ff-sans); font-size: 15px;
  border: 1.5px solid var(--ff-rule-2);
  background: #fff; border-radius: var(--ff-radius);
  color: var(--ff-ink);
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2312354B' d='M0 0l6 8 6-8z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center;
  padding-right: 38px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.ff-field select:focus { outline: 0; border-color: var(--ff-navy); box-shadow: 0 0 0 3px rgba(18,53,75,.12); }

.ff-consent {
  display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start;
  margin: 18px 0 6px;
  font-size: 13.5px; line-height: 1.5; color: var(--ff-ink-2);
  cursor: pointer;
}
.ff-consent input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  width: 22px; height: 22px;
  border: 1.5px solid var(--ff-rule-2);
  background: #fff; border-radius: 4px;
  margin: 1px 0 0; cursor: pointer;
}
.ff-consent input[type="checkbox"]:checked {
  background: var(--ff-navy); border-color: var(--ff-navy);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: center; background-size: 14px 14px;
}
.ff-consent.has-error input[type="checkbox"] { border-color: var(--ff-red); }

/* ============ Share row (post-sign) ============ */
.ff-share-row { display: flex; flex-wrap: wrap; gap: 10px; }
.ff-share-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 18px 12px 42px;
  background: #fff;
  border: 1.5px solid var(--ff-rule-2);
  border-radius: var(--ff-radius);
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.06em;
  font-size: 13px; font-weight: 700; color: var(--ff-navy);
  cursor: pointer;
  transition: all .15s ease;
  position: relative;
}
.ff-share-btn:hover { border-color: var(--ff-navy); background: var(--ff-navy); color: #fff; transform: translateY(-1px); }
.ff-share-btn::before {
  content: ""; position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  width: 18px; height: 18px; background-repeat: no-repeat; background-position: center; background-size: contain;
}
.ff-share-btn--facebook::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231877F2'%3E%3Cpath d='M24 12a12 12 0 1 0-13.875 11.854V15.469H7.078V12h3.047V9.356c0-3.007 1.792-4.668 4.533-4.668 1.313 0 2.686.234 2.686.234v2.953h-1.513c-1.491 0-1.956.925-1.956 1.875V12h3.328l-.532 3.469h-2.796v8.385A12.001 12.001 0 0 0 24 12z'/%3E%3C/svg%3E"); }
.ff-share-btn--x::before        { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.45-6.231zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77z'/%3E%3C/svg%3E"); }
.ff-share-btn--whatsapp::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2325D366'%3E%3Cpath d='M.057 24l1.687-6.163a11.867 11.867 0 0 1-1.587-5.946C.16 5.335 5.495 0 12.05 0a11.817 11.817 0 0 1 8.413 3.488 11.824 11.824 0 0 1 3.48 8.414c-.003 6.557-5.338 11.892-11.893 11.892a11.9 11.9 0 0 1-5.688-1.448L.057 24z'/%3E%3C/svg%3E"); }
.ff-share-btn--telegram::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2329B6F6'%3E%3Cpath d='M9.78 18.65l.28-4.23 7.68-6.92c.34-.31-.07-.46-.52-.19L7.74 13.3 3.64 12c-.88-.25-.89-.86.2-1.3l15.97-6.16c.73-.33 1.43.18 1.15 1.3l-2.72 12.81c-.19.91-.74 1.13-1.5.71L12.6 16.3l-1.99 1.93c-.23.23-.42.42-.83.42z'/%3E%3C/svg%3E"); }
.ff-share-btn--email::before    { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2312354B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E"); }
.ff-share-btn--copy::before     { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2312354B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E"); }
.ff-share-btn:hover::before { filter: brightness(0) invert(1); }

/* ============ Nav dropdown ============ */
.ff-nav-item { position: relative; }
.ff-nav-trigger {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 14px;
  font-family: var(--ff-cond);
  font-size: 14px; letter-spacing: 0.08em; text-transform: uppercase;
  font-weight: 600;
  color: var(--ff-ink-2);
  border-radius: 4px;
  background: transparent;
}
.ff-nav-trigger:hover, .ff-nav-trigger.is-active { color: var(--ff-navy); }
.ff-nav-caret { font-size: 10px; transform: translateY(-1px); transition: transform .15s ease; }
.ff-nav-item.is-open .ff-nav-caret { transform: rotate(180deg) translateY(1px); }
.ff-nav-dropdown {
  position: absolute; top: calc(100% + 6px); left: 0;
  min-width: 280px;
  background: #fff;
  border: 1px solid var(--ff-rule);
  border-radius: var(--ff-radius);
  box-shadow: 0 18px 36px -12px rgba(18,53,75,.18);
  padding: 6px;
  list-style: none; margin: 0;
  opacity: 0; pointer-events: none;
  transform: translateY(-4px);
  transition: opacity .15s ease, transform .15s ease;
  z-index: 60;
}
.ff-nav-item.is-open .ff-nav-dropdown,
.ff-nav-item:hover .ff-nav-dropdown {
  opacity: 1; pointer-events: auto; transform: translateY(0);
}
.ff-nav-dropdown li { list-style: none; }
.ff-nav-dropdown a {
  display: block;
  padding: 11px 14px;
  font-family: var(--ff-cond);
  font-size: 13.5px; letter-spacing: 0.06em; text-transform: uppercase;
  font-weight: 600;
  color: var(--ff-ink);
  border-radius: 4px;
}
.ff-nav-dropdown a:hover { background: var(--ff-paper-2); color: var(--ff-navy); }
.ff-nav-dropdown .is-disabled,
.ff-mobile-menu .is-disabled {
  display: block;
  padding: 11px 14px;
  font-family: var(--ff-cond);
  font-size: 13.5px; letter-spacing: 0.06em; text-transform: uppercase;
  font-weight: 600;
  color: #b3b3b3;
  cursor: not-allowed;
  pointer-events: none;
}
.ff-nav-dropdown .is-disabled::after { content: " · paused"; opacity: .65; font-size: 10px; letter-spacing: 0.12em; }
.ff-mobile-menu .is-parent { font-weight: 700; color: var(--ff-navy); }
.ff-mobile-menu .is-child  { padding-left: 20px; color: var(--ff-ink-2); border-bottom: 1px solid var(--ff-rule); }

/* ============ Long-form petition page ============ */

/* Hero — full-width tone block */
.ff-petition-hero {
  background: var(--ff-navy);
  color: #fff;
  padding: clamp(56px, 8vw, 110px) 0 clamp(48px, 6vw, 90px);
}
.ff-petition-hero--red     { background: var(--ff-red); }
.ff-petition-hero--paddock { background: #4a5a2f; }
.ff-petition-hero .ff-eyebrow,
.ff-petition-hero .ff-eyebrow--light { color: rgba(255,255,255,.86); margin-bottom: 14px; }
.ff-petition-hero-title {
  font-family: var(--ff-serif);
  font-size: clamp(32px, 4.6vw, 60px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  font-weight: 700;
  color: #fff;
  margin: 12px 0 16px;
  text-wrap: balance;
}
.ff-petition-hero-sub {
  font-family: var(--ff-serif);
  font-size: clamp(19px, 1.8vw, 24px);
  line-height: 1.45;
  color: rgba(255,255,255,.92);
  max-width: 60ch;
  margin: 0;
}
.ff-back-link--light { color: rgba(255,255,255,.78); }
.ff-back-link--light:hover { color: #fff; }

/* Context block */
.ff-petition-context { background: #fff; padding-top: clamp(40px, 5vw, 70px); padding-bottom: clamp(16px, 2vw, 28px); }
.ff-petition-context-inner { max-width: 760px; }
.ff-petition-context-inner p {
  font-family: var(--ff-serif);
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.5;
  color: var(--ff-ink);
  margin: 0 0 18px;
}
.ff-petition-context-inner p strong { color: var(--ff-navy); font-weight: 700; }
.ff-petition-stack { display: contents; }

/* Petition statement card + form grid */
.ff-petition-form-section { background: var(--ff-paper); padding-top: clamp(36px, 5vw, 64px); padding-bottom: clamp(50px, 6vw, 90px); }
.ff-petition-form-grid {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: clamp(28px, 4vw, 60px);
  align-items: start;
}
.ff-petition-statement {
  background: #fff;
  border: 1px solid var(--ff-rule);
  border-left: 4px solid var(--ff-red);
  border-radius: var(--ff-radius-lg);
  padding: clamp(26px, 3.5vw, 40px);
  display: flex; flex-direction: column; gap: 18px;
}
.ff-petition-trust-row { margin-top: clamp(24px, 3vw, 40px); }
.ff-trust-row--inline { flex-direction: row; flex-wrap: wrap; gap: 18px 28px; justify-content: flex-start; align-items: flex-start; margin: 0; }
@media (max-width: 900px) {
  .ff-petition-statement {
    background: transparent;
    border: 0;
    border-left: 0;
    border-radius: 0;
    padding: 0;
  }
  .ff-petition-declaration {
    border-left: 0 !important;
    padding-left: clamp(20px, 5vw, 28px) !important;
    padding-right: clamp(20px, 5vw, 28px) !important;
  }
  .ff-petition-trust-row { margin-top: 28px; }
  .ff-trust-row--inline { flex-direction: column; gap: 14px; }
}
.ff-petition-statement-h {
  font-family: var(--ff-cond);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 13px;
  font-weight: 700;
  color: var(--ff-red);
  margin: 0;
}
.ff-petition-statement-list {
  list-style: none; counter-reset: pstmt; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 14px;
}
.ff-petition-statement-list li {
  counter-increment: pstmt;
  position: relative;
  padding-left: 44px;
  font-size: 16px;
  line-height: 1.55;
  color: var(--ff-ink);
}
.ff-petition-statement-list li::before {
  content: counter(pstmt);
  position: absolute; left: 0; top: -2px;
  width: 32px; height: 32px;
  background: var(--ff-navy);
  color: #fff;
  display: grid; place-items: center;
  font-family: var(--ff-serif);
  font-weight: 700;
  font-size: 16px;
  border-radius: 50%;
}
.ff-petition-statement-close {
  margin: 0;
  font-size: 16px; line-height: 1.55;
  color: var(--ff-ink); font-weight: 600;
}
.ff-petition-declaration {
  margin-top: 4px;
  padding: clamp(26px, 3vw, 40px);
  background: var(--ff-navy);
  color: #fff;
  border-radius: var(--ff-radius);
  border-left: 6px solid var(--ff-red);
  display: flex; flex-direction: column; gap: 14px;
  text-align: center;
}
.ff-petition-declaration-kicker {
  font-family: var(--ff-mono); text-transform: uppercase; letter-spacing: 0.2em;
  font-size: 11px; font-weight: 700; color: var(--ff-red);
}
.ff-petition-declaration-line1 {
  margin: 0;
  font-family: var(--ff-cond); text-transform: uppercase;
  font-size: clamp(15px, 1.5vw, 18px);
  font-weight: 700; line-height: 1.3;
  color: rgba(255,255,255,.78);
  letter-spacing: 0.04em;
}
.ff-petition-declaration-body {
  margin: 0;
  font-family: var(--ff-cond); text-transform: uppercase;
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 800; line-height: 1.15;
  color: #fff;
  letter-spacing: 0.005em;
}
.ff-petition-declaration-auth {
  margin: 4px 0 0;
  font-family: var(--ff-mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: rgba(255,255,255,.6);
}
.ff-trust-row--stacked { flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 10px; }
.ff-trust-badge--lg { gap: 12px; align-items: flex-start; }
.ff-trust-badge--lg .ff-trust-icon { width: 22px; height: 22px; flex: 0 0 22px; margin-top: 2px; }
.ff-trust-badge--lg .ff-trust-icon::before { background-size: 14px 14px; }
.ff-trust-badge--lg strong { display: block; font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em; font-size: 13px; color: var(--ff-navy); }
.ff-trust-badge--lg em { font-style: normal; font-size: 13px; color: var(--ff-ink-2); display: block; margin-top: 2px; line-height: 1.45; }

@media (max-width: 900px) {
  .ff-petition-form-grid { grid-template-columns: 1fr; gap: 18px; }
  .ff-petition-stack { display: flex; flex-direction: column; }
  .ff-petition-stack > .ff-petition-form-section { order: 1; padding-top: clamp(20px, 4vw, 36px); padding-bottom: clamp(22px, 4vw, 40px); }
  .ff-petition-stack > .ff-petition-context { order: 2; padding-top: clamp(20px, 3vw, 32px); padding-bottom: clamp(20px, 3vw, 32px); }
  .ff-petition-hero { padding-bottom: clamp(20px, 4vw, 36px); }
}

/* Why this matters */
.ff-why-matters { background: #fff; }
.ff-why-matters-head { max-width: 760px; margin: 0 0 36px; }
.ff-why-matters-head .ff-h2 { margin-top: 14px; }
.ff-why-matters-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(20px, 3vw, 36px);
}
.ff-why-card {
  position: relative;
  background: var(--ff-paper-2);
  border: 1px solid var(--ff-rule);
  border-radius: var(--ff-radius-lg);
  overflow: hidden;
  display: flex; flex-direction: column;
}
.ff-why-media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--ff-paper);
}
.ff-why-media img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.ff-why-body { padding: 24px 28px 28px; }
.ff-why-num {
  display: inline-block;
  font-family: var(--ff-mono);
  font-size: 13px;
  letter-spacing: 0.12em;
  color: var(--ff-red);
  margin-bottom: 8px;
}
.ff-why-h {
  font-family: var(--ff-serif);
  font-size: clamp(20px, 1.8vw, 24px);
  line-height: 1.2;
  color: var(--ff-navy);
  font-weight: 700;
  margin: 0 0 10px;
}
.ff-why-card p { color: var(--ff-ink-2); font-size: 15px; line-height: 1.6; margin: 0; }

@media (max-width: 800px) {
  .ff-why-matters-grid { grid-template-columns: 1fr; }
}

/* Bottom CTA */
.ff-petition-bottom-cta {
  background: var(--ff-navy);
  color: #fff;
  padding: clamp(50px, 7vw, 100px) 0;
}
.ff-petition-bottom-cta-inner { max-width: 820px; text-align: center; margin: 0 auto; }
.ff-petition-bottom-cta-inner .ff-h2--light {
  font-size: clamp(36px, 5vw, 60px);
  margin: 0 0 18px;
  text-transform: uppercase;
}
.ff-petition-bottom-cta-inner p { color: rgba(255,255,255,.86); font-size: clamp(16px, 1.4vw, 19px); line-height: 1.55; max-width: 60ch; margin: 0 auto 32px; }
.ff-petition-bottom-actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-bottom: 36px; }
.ff-petition-bottom-share { border-top: 1px solid rgba(255,255,255,.18); padding-top: 26px; }
.ff-petition-bottom-share-l {
  display: block;
  font-family: var(--ff-cond);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 12px;
  color: rgba(255,255,255,.7);
  margin-bottom: 14px;
}
.ff-petition-bottom-share .ff-share-row { justify-content: center; }
.ff-petition-bottom-share .ff-share-btn { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.2); color: #fff; }
.ff-petition-bottom-share .ff-share-btn:hover { background: #fff; color: var(--ff-navy); border-color: #fff; }
.ff-petition-bottom-share .ff-share-btn::before { filter: brightness(0) invert(1); }
.ff-petition-bottom-share .ff-share-btn:hover::before { filter: none; }

/* ============ Image hero (reusable) ============
   Adds a full-bleed background image to any hero section. The
   scrim sits between the image and the content for legibility. */
.ff-imghero {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
  isolation: isolate;
}
.ff-imghero > .ff-wrap { position: relative; z-index: 2; }
.ff-imghero-scrim {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(18,53,75,0.55) 0%, rgba(18,53,75,0.78) 100%);
  pointer-events: none;
}
.ff-imghero--dark .ff-imghero-scrim {
  background: linear-gradient(180deg, rgba(8,24,38,0.6) 0%, rgba(8,24,38,0.86) 100%);
}
.ff-imghero--light .ff-imghero-scrim {
  background: linear-gradient(180deg, rgba(8,24,38,0.18) 0%, rgba(8,24,38,0.42) 100%);
}
.ff-imghero .ff-eyebrow { color: rgba(255,255,255,.86); }
.ff-imghero .ff-h2 { color: #fff; }
.ff-imghero .ff-lede { color: rgba(255,255,255,.92); }
.ff-imghero .ff-h2 em { color: var(--ff-red); }

/* ============ The Fight page ============ */
.ff-thefight-hero { background: var(--ff-paper); padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(28px, 4vw, 50px); }
.ff-thefight-hero-inner { max-width: 820px; }
.ff-thefight-h1 { font-size: clamp(36px, 5vw, 64px); margin-top: 14px; text-transform: uppercase; }
.ff-thefight-grid-wrap { background: var(--ff-paper-2); }
.ff-thefight-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(18px, 2.5vw, 28px);
}
.ff-thefight-panel {
  display: flex; flex-direction: column;
  border-radius: var(--ff-radius-lg);
  position: relative; overflow: hidden;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease;
}
.ff-thefight-panel:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -20px rgba(0,0,0,.45); }
.ff-thefight-panel:hover .ff-thefight-panel-media img { transform: scale(1.03); }
.ff-thefight-panel-media img { transition: transform .35s ease; }
.ff-thefight-panel-cta {
  margin-top: auto;
  padding-top: 14px;
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.09em;
  font-size: 13px; font-weight: 700;
  display: inline-flex; align-items: center; gap: 8px;
  color: #fff; opacity: .9;
}
.ff-thefight-panel--dust .ff-thefight-panel-cta { color: var(--ff-red); opacity: 1; }
.ff-thefight-panel:hover .ff-thefight-panel-cta { opacity: 1; }
.ff-thefight-panel:hover .ff-thefight-panel-cta span { transform: translateX(3px); transition: transform .2s ease; }
.ff-thefight-panel::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--ff-red); z-index: 2;
}
.ff-thefight-panel-media {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--ff-paper);
}
.ff-thefight-panel-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.ff-thefight-panel-body {
  display: flex; flex-direction: column; gap: 12px;
  padding: clamp(28px, 3.5vw, 48px);
  flex: 1;
}
.ff-thefight-panel--navy { background: var(--ff-navy); color: #fff; }
.ff-thefight-panel--navy .ff-card-kicker { color: var(--ff-red); }
.ff-thefight-panel--navy p { color: rgba(255,255,255,.86); }
.ff-thefight-panel--red { background: var(--ff-red); color: #fff; }
.ff-thefight-panel--red::before { background: #fff; }
.ff-thefight-panel--red .ff-card-kicker { color: #fff; opacity: .85; }
.ff-thefight-panel--red p { color: rgba(255,255,255,.92); }
.ff-thefight-panel--paddock { background: #4a5a2f; color: #fff; }
.ff-thefight-panel--paddock::before { background: var(--ff-red); }
.ff-thefight-panel--paddock .ff-card-kicker { color: #fff; opacity: .82; }
.ff-thefight-panel--paddock p { color: rgba(255,255,255,.92); }
.ff-thefight-panel--dust { background: #d9cbb3; color: var(--ff-ink); }
.ff-thefight-panel--dust::before { background: var(--ff-red); }
.ff-thefight-panel--dust .ff-card-kicker { color: var(--ff-red); }
.ff-thefight-panel--dust p { color: var(--ff-ink-2); }
.ff-thefight-panel-title {
  font-family: var(--ff-serif);
  font-size: clamp(24px, 2.6vw, 32px);
  line-height: 1.15;
  font-weight: 700;
  margin: 6px 0 0;
  color: inherit;
}
.ff-thefight-panel p { font-size: 15.5px; line-height: 1.55; margin: 0; }
.ff-thefight-cta { background: var(--ff-navy); color: #fff; }
.ff-thefight-cta-inner { max-width: 820px; text-align: center; margin: 0 auto; }
.ff-thefight-cta-inner p { color: rgba(255,255,255,.86); font-size: clamp(16px, 1.4vw, 19px); margin: 0 auto 30px; max-width: 60ch; }
.ff-thefight-cta-buttons { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
@media (max-width: 800px) {
  .ff-thefight-grid { grid-template-columns: 1fr; }
}

/* ============ Contact page ============ */
.ff-contact-hero { background: var(--ff-paper); padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(28px, 4vw, 50px); }
.ff-contact-hero-inner { max-width: 820px; }
.ff-contact-h1 { font-size: clamp(36px, 5vw, 64px); margin-top: 14px; text-transform: uppercase; }
.ff-contact-body { background: #fff; }
.ff-contact-body-inner { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(30px, 5vw, 60px); align-items: start; }
.ff-contact-body-inner--single { grid-template-columns: 1fr; max-width: 720px; margin: 0 auto; }
.ff-contact-lanes ul { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 22px; }
.ff-contact-lane { padding: 18px 0; border-top: 1px solid var(--ff-rule); }
.ff-contact-lane-label { font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.12em; font-size: 12px; font-weight: 700; color: var(--ff-red); display: block; }
.ff-contact-lane-email { display: inline-block; margin-top: 6px; font-family: var(--ff-serif); font-size: 20px; color: var(--ff-navy); font-weight: 600; border-bottom: 2px solid var(--ff-rule-2); }
.ff-contact-lane-email:hover { color: var(--ff-red); border-color: var(--ff-red); }
.ff-contact-lane p { margin: 8px 0 0; color: var(--ff-ink-2); font-size: 15px; line-height: 1.55; }
.ff-contact-post { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--ff-rule); color: var(--ff-ink-2); font-size: 15px; line-height: 1.6; }
.ff-contact-post strong { color: var(--ff-navy); }
.ff-contact-form { padding: clamp(28px, 4vw, 44px); }
.ff-contact-form select { width: 100%; padding: 13px 14px; font-family: var(--ff-sans); font-size: 15px; border: 1.5px solid var(--ff-rule-2); background: #fff; border-radius: var(--ff-radius); color: var(--ff-ink); appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2312354B' d='M0 0l6 8 6-8z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 38px; }
@media (max-width: 900px) {
  .ff-contact-body-inner { grid-template-columns: 1fr; }
}

/* ============ Donor page ============ */
.ff-give-hero {
  background: var(--ff-navy);
  color: #fff;
  padding-top: clamp(48px, 6vw, 80px);
  padding-bottom: clamp(48px, 6vw, 80px);
}
.ff-give-hero-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 4vw, 60px);
  align-items: start;
}
.ff-give-hero-copy { color: #fff; }
.ff-give-hero-copy .ff-eyebrow { color: rgba(255,255,255,.86); margin-bottom: 10px; }
.ff-give-h1 {
  font-family: var(--ff-serif);
  font-size: clamp(34px, 4.6vw, 60px);
  line-height: 1.05;
  letter-spacing: -0.015em;
  text-transform: uppercase;
  color: #fff;
  margin: 6px 0 18px;
  text-wrap: balance;
}
.ff-give-lede {
  color: rgba(255,255,255,.88);
  font-size: clamp(16px, 1.4vw, 19px);
  line-height: 1.55;
  margin: 0 0 22px;
  max-width: 56ch;
}
.ff-give-trust {
  list-style: none; padding: 0; margin: 18px 0 0;
  display: flex; flex-wrap: wrap; gap: 8px 16px;
  font-family: var(--ff-mono);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 11px;
  color: rgba(255,255,255,.6);
}
.ff-give-trust li { position: relative; padding-right: 16px; }
.ff-give-trust li:not(:last-child)::after {
  content: "·"; position: absolute; right: 4px; color: var(--ff-red);
}

.ff-give-widget {
  background: #fff;
  color: var(--ff-ink);
  border-radius: var(--ff-radius-lg);
  padding: clamp(20px, 2.4vw, 32px);
  box-shadow: 0 30px 60px -28px rgba(0,0,0,0.4);
  scroll-margin-top: 80px;
}
.ff-give-freq {
  display: grid; grid-template-columns: 1fr 1fr;
  background: var(--ff-paper-2);
  border-radius: 999px;
  padding: 4px;
  margin-bottom: 18px;
}
.ff-give-freq button {
  appearance: none; border: 0; background: transparent;
  padding: 10px 14px;
  font-family: var(--ff-cond);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-size: 13px;
  color: var(--ff-ink-2);
  border-radius: 999px;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.ff-give-freq button.is-on {
  background: var(--ff-navy);
  color: #fff;
}

.ff-give-chips {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 16px;
}
.ff-give-chip {
  appearance: none; text-align: center;
  background: #fff;
  border: 1.5px solid var(--ff-rule-2);
  border-radius: var(--ff-radius);
  min-height: 56px;
  padding: 12px 10px;
  display: flex; flex-direction: column; gap: 2px;
  align-items: center; justify-content: center;
  cursor: pointer;
  text-decoration: none;
  color: var(--ff-ink);
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.ff-give-chip:hover { border-color: var(--ff-navy); }
.ff-give-chip.is-on {
  background: var(--ff-navy);
  border-color: var(--ff-navy);
  color: #fff;
}
.ff-give-chip-amt {
  font-family: var(--ff-serif);
  font-size: clamp(20px, 2.2vw, 24px); font-weight: 700; line-height: 1;
}
.ff-give-chip-amt small {
  display: block;
  font-family: var(--ff-cond);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
  margin: 4px 0 0;
  opacity: .7;
}
.ff-give-chip-tag {
  display: none;
}
.ff-give-chip.is-on .ff-give-chip-tag { color: rgba(255,255,255,.78); }
.ff-give-chip--other { background: var(--ff-paper-2); border-style: dashed; }

.ff-give-cta { margin-top: 4px; }
.ff-give-fineprint {
  margin: 14px 0 0;
  font-family: var(--ff-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ff-ink-2);
  text-align: center;
}

.ff-give-where { background: var(--ff-paper); }
.ff-give-where-h {
  font-size: clamp(28px, 3.2vw, 40px);
  margin-bottom: 20px;
}
.ff-give-where-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column;
  border-top: 1px solid var(--ff-rule-2);
}
.ff-give-where-row {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 24px; align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid var(--ff-rule-2);
}
.ff-give-where-amt {
  font-family: var(--ff-serif);
  font-size: clamp(26px, 2.4vw, 34px);
  font-weight: 700;
  color: var(--ff-red);
  line-height: 1;
}
.ff-give-where-tag {
  font-size: clamp(15px, 1.3vw, 17px);
  color: var(--ff-ink);
  line-height: 1.45;
}

@media (max-width: 860px) {
  .ff-give-hero-inner { grid-template-columns: 1fr; }
  .ff-give-where-row { grid-template-columns: 90px 1fr; gap: 16px; }
  .ff-give-widget { padding: 18px; }
  .ff-give-chips { grid-template-columns: repeat(3, 1fr); gap: 6px; }
  .ff-give-chip { padding: 12px 6px; min-height: 56px; }
  .ff-give-chip-amt { font-size: 18px; }
  .ff-give-chip-amt small { font-size: 9px; }
}
@media (max-width: 380px) {
  .ff-give-chips { grid-template-columns: repeat(2, 1fr); }
}

.ff-donor-hero { background: var(--ff-navy); color: #fff; padding-top: clamp(64px, 9vw, 110px); padding-bottom: clamp(48px, 7vw, 90px); }
.ff-donor-hero-inner { max-width: 1000px; text-align: center; margin: 0 auto; }
.ff-donor-h1 { font-size: clamp(48px, 8vw, 96px); line-height: 0.98; margin: 14px 0 22px; text-transform: uppercase; text-wrap: balance; }
.ff-donor-lede { color: rgba(255,255,255,.88); font-family: var(--ff-serif); font-style: italic; font-size: clamp(18px, 1.8vw, 22px); line-height: 1.5; max-width: 70ch; margin: 0 auto; }
.ff-donor-amounts { background: var(--ff-paper); }
.ff-donor-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--ff-rule); margin-bottom: 36px; }
.ff-donor-tile {
  display: flex; flex-direction: column; gap: 10px;
  padding: 32px 28px;
  background: #fff; color: var(--ff-ink);
  border-right: 1px solid var(--ff-rule); border-bottom: 1px solid var(--ff-rule);
  min-height: 200px;
  transition: background .15s ease, color .15s ease;
}
.ff-donor-tile:nth-child(3n) { border-right: none; }
.ff-donor-tile:nth-last-child(-n+1) { border-bottom: none; }
.ff-donor-tile.is-default,
.ff-donor-tile:hover { background: var(--ff-red); color: #fff; }
.ff-donor-grid:hover .ff-donor-tile.is-default:not(:hover) { background: #fff; color: var(--ff-ink); }
.ff-donor-kicker { font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.14em; font-size: 11px; font-weight: 700; color: var(--ff-red); opacity: .85; }
.ff-donor-tile.is-default .ff-donor-kicker,
.ff-donor-tile:hover .ff-donor-kicker { color: #fff; }
.ff-donor-grid:hover .ff-donor-tile.is-default:not(:hover) .ff-donor-kicker { color: var(--ff-red); }
.ff-donor-amount { font-family: var(--ff-serif); font-size: clamp(40px, 4vw, 56px); line-height: 1; font-weight: 700; letter-spacing: -0.02em; color: inherit; margin-top: 4px; }
.ff-donor-tag { font-size: 14px; color: var(--ff-ink-2); margin-top: 4px; }
.ff-donor-tile.is-default .ff-donor-tag,
.ff-donor-tile:hover .ff-donor-tag { color: rgba(255,255,255,.85); }
.ff-donor-grid:hover .ff-donor-tile.is-default:not(:hover) .ff-donor-tag { color: var(--ff-ink-2); }
.ff-donor-cta { margin-top: auto; font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.1em; font-size: 13px; font-weight: 700; }
.ff-donor-tile--other { background: var(--ff-navy); color: #fff; grid-column: span 3; min-height: 140px; }
.ff-donor-tile--other:hover { background: var(--ff-red); }
.ff-donor-tile--other .ff-donor-kicker { color: #fff; opacity: .8; }
.ff-donor-tile--other .ff-donor-amount { color: #fff; }
.ff-donor-tile--other .ff-donor-tag { color: rgba(255,255,255,.85); }
.ff-donor-monthly { margin-top: 36px; }
.ff-donor-monthly h2 { margin-bottom: 18px; }
.ff-donor-monthly-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ff-donor-monthly-tile {
  display: flex; align-items: baseline; gap: 6px; justify-content: center;
  padding: 22px;
  background: #fff; border: 1px solid var(--ff-rule); color: var(--ff-navy);
  border-radius: var(--ff-radius); transition: all .15s ease;
}
.ff-donor-monthly-tile:hover { background: var(--ff-navy); color: #fff; border-color: var(--ff-navy); transform: translateY(-2px); }
.ff-donor-monthly-amount { font-family: var(--ff-serif); font-size: 28px; font-weight: 700; }
.ff-donor-monthly-period { font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.08em; font-size: 11px; opacity: .75; }
.ff-donor-where { margin-top: 56px; }
.ff-donor-where ul { list-style: none; padding: 0; margin: 18px 0 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.ff-donor-where li { display: grid; grid-template-columns: 80px 1fr; gap: 14px; padding: 16px 0; border-top: 1px solid var(--ff-rule); }
.ff-donor-where strong { font-family: var(--ff-serif); font-size: 24px; color: var(--ff-red); font-weight: 700; }
.ff-donor-where span { color: var(--ff-ink-2); font-size: 15px; line-height: 1.5; }
.ff-donor-fineprint { margin-top: 36px; font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.12em; font-size: 12px; color: var(--ff-muted); }
@media (max-width: 900px) {
  .ff-donor-grid { grid-template-columns: repeat(2, 1fr); }
  .ff-donor-tile:nth-child(3n) { border-right: 1px solid var(--ff-rule); }
  .ff-donor-tile:nth-child(2n) { border-right: none; }
  .ff-donor-tile--other { grid-column: span 2; }
  .ff-donor-monthly-grid { grid-template-columns: repeat(2, 1fr); }
  .ff-donor-where ul { grid-template-columns: 1fr; }
}
@media (max-width: 500px) {
  .ff-donor-grid { grid-template-columns: 1fr; }
  .ff-donor-tile { border-right: none !important; }
  .ff-donor-tile--other { grid-column: auto; }
}

/* ============ Volunteer page ============ */
.ff-vol-hero { background: var(--ff-paper); padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(28px, 4vw, 50px); }
.ff-vol-hero-inner { max-width: 820px; }
.ff-vol-h1 { font-size: clamp(36px, 5vw, 64px); margin-top: 14px; text-transform: uppercase; }
.ff-vol-roles { background: var(--ff-paper-2); }
.ff-vol-roles-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ff-vol-role { background: #fff; border: 1px solid var(--ff-rule); border-left: 3px solid var(--ff-red); border-radius: var(--ff-radius-lg); padding: 24px 22px 26px; }
.ff-vol-role .ff-card-kicker { color: var(--ff-red); }
.ff-vol-role h3 { font-family: var(--ff-serif); font-size: 20px; color: var(--ff-navy); font-weight: 700; margin: 8px 0 8px; line-height: 1.2; }
.ff-vol-role p { margin: 0; color: var(--ff-ink-2); font-size: 14.5px; line-height: 1.55; }
.ff-vol-form-section { background: var(--ff-paper); }
.ff-vol-form-wrap { max-width: 760px; }
.ff-vol-form-head { margin-bottom: 22px; }
.ff-vol-role-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ff-vol-role-check { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: #fff; border: 1.5px solid var(--ff-rule-2); border-radius: var(--ff-radius); font-size: 14px; color: var(--ff-ink-2); cursor: pointer; transition: all .15s ease; min-width: 0; }
.ff-vol-role-check:hover { border-color: var(--ff-navy); }
.ff-vol-role-check input { accent-color: var(--ff-navy); margin: 0; flex: 0 0 auto; width: 18px; height: 18px; }
.ff-vol-role-check.is-on { background: var(--ff-navy); border-color: var(--ff-navy); color: #fff; }
.ff-vol-role-check-l { flex: 1 1 auto; min-width: 0; line-height: 1.3; overflow-wrap: break-word; }
.ff-field--group { display: flex; flex-direction: column; gap: 8px; }
.ff-vol-alt { background: var(--ff-paper-2); }
.ff-vol-alt-inner { max-width: 720px; }
.ff-vol-alt-inner p { color: var(--ff-ink-2); margin: 0 0 18px; }
.ff-vol-alt-links { display: flex; gap: 22px; flex-wrap: wrap; }
@media (max-width: 1000px) { .ff-vol-roles-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .ff-vol-roles-grid { grid-template-columns: 1fr; } .ff-vol-role-checks { grid-template-columns: 1fr; } }

/* ============ Site-wide mobile polish ============ */
@media (max-width: 720px) {
  /* Hero: tighten + drop scroll affordance on mobile */
  .ff-hero-title { font-size: clamp(36px, 11vw, 56px) !important; line-height: 1.02; }
  .ff-hero-sub { font-size: 16px !important; line-height: 1.5; }
  .ff-hero-scroll { display: none; }
  .ff-hero-content { padding-bottom: 80px; }
  .ff-hero-cta { flex-direction: column; align-items: stretch; }
  .ff-hero-cta .ff-btn { width: 100%; justify-content: center; }
  /* Top banner: shrink */
  .ff-topbanner { font-size: 12px; padding: 8px 0; }
  .ff-topbanner-inner { gap: 8px; }
  /* Impact bar: stack 2x2 */
  .ff-impact-inner { padding-block: 30px; }
  /* Sections: tighter vertical padding */
  .ff-section { padding-block: clamp(48px, 8vw, 80px); }
  /* Petition form: bigger tap targets */
  .ff-field input, .ff-field select, .ff-field textarea { font-size: 16px !important; }
  /* Quote: scale down */
  .ff-quote blockquote { font-size: clamp(22px, 5vw, 30px) !important; }
}
@media (max-width: 480px) {
  .ff-hero-title { font-size: clamp(32px, 12vw, 44px) !important; }
  .ff-h2 { font-size: clamp(28px, 8vw, 40px) !important; }
}

/* ============ About Us page ============ */
.ff-aboutus-hero { background: var(--ff-navy); color: #fff; padding-top: clamp(64px, 9vw, 120px); padding-bottom: clamp(56px, 8vw, 100px); }
.ff-aboutus-hero-inner { max-width: 980px; }
.ff-aboutus-h1 { font-size: clamp(40px, 6vw, 72px); margin-top: 14px; text-transform: uppercase; }
.ff-aboutus-sub { font-family: var(--ff-serif); font-style: italic; font-size: clamp(20px, 2vw, 28px); color: rgba(255,255,255,.92); margin: 18px 0 0; line-height: 1.35; }
.ff-aboutus-stat {
  display: inline-flex; flex-direction: column; gap: 4px;
  margin-top: 32px; padding: 18px 28px;
  background: rgba(255,255,255,.07);
  border-left: 4px solid var(--ff-red);
  border-radius: var(--ff-radius);
}
.ff-aboutus-stat-n { font-family: var(--ff-serif); font-size: clamp(36px, 4vw, 56px); font-weight: 700; color: #fff; line-height: 1; letter-spacing: -0.02em; }
.ff-aboutus-stat-l { font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.12em; font-size: 12px; color: rgba(255,255,255,.78); }

.ff-aboutus-sections { background: var(--ff-paper); }
.ff-aboutus-section { max-width: 820px; padding: clamp(20px, 4vw, 56px) 0; border-top: 1px solid var(--ff-rule); }
.ff-aboutus-section:first-child { border-top: 0; padding-top: 0; }
.ff-aboutus-section-h { font-size: clamp(28px, 3.4vw, 42px); margin: 12px 0 22px; }
.ff-aboutus-paras p { color: var(--ff-ink-2); font-size: clamp(16px, 1.4vw, 18px); line-height: 1.6; margin: 0 0 18px; }
.ff-aboutus-paras p:last-child { margin-bottom: 0; }

.ff-aboutus-principles { background: var(--ff-paper-2); }
.ff-aboutus-principles-h { font-size: clamp(28px, 3.4vw, 42px); margin-bottom: 28px; }
.ff-aboutus-principles-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.ff-aboutus-principle { background: #fff; border: 1px solid var(--ff-rule); border-radius: var(--ff-radius-lg); padding: 26px 28px 28px; position: relative; }
.ff-aboutus-principle-n { font-family: var(--ff-mono); font-size: 13px; color: var(--ff-red); letter-spacing: 0.12em; font-weight: 700; }
.ff-aboutus-principle h3 { font-family: var(--ff-serif); font-size: 22px; line-height: 1.2; color: var(--ff-navy); font-weight: 700; margin: 8px 0 10px; }
.ff-aboutus-principle p { color: var(--ff-ink-2); font-size: 15px; line-height: 1.55; margin: 0; }
@media (max-width: 700px) {
  .ff-aboutus-principles-grid { grid-template-columns: 1fr; }
}

.ff-aboutus-cta { background: var(--ff-navy); color: #fff; }
.ff-aboutus-cta-inner { max-width: 820px; text-align: center; margin: 0 auto; }
.ff-aboutus-cta-inner p { color: rgba(255,255,255,.86); font-size: clamp(16px, 1.4vw, 19px); line-height: 1.55; max-width: 60ch; margin: 0 auto 30px; }
.ff-aboutus-cta-buttons { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }

/* ============ Media page ============ */
.ff-media-hero { background: var(--ff-paper); padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(28px, 4vw, 50px); }
.ff-media-hero-inner { max-width: 820px; }
.ff-media-h1 { font-size: clamp(36px, 5vw, 64px); margin-top: 14px; text-transform: uppercase; }
.ff-media-contact { background-color: var(--ff-navy); color: #fff; }
.ff-media-contact-inner { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; }
.ff-media-contact-inner .ff-card-kicker { color: var(--ff-red); }
.ff-media-email { display: inline-block; font-family: var(--ff-serif); font-size: clamp(28px, 3vw, 40px); font-weight: 700; color: #fff; margin: 8px 0 4px; line-height: 1.1; }
.ff-media-email:hover { color: var(--ff-red); }
.ff-media-contact-inner p { color: rgba(255,255,255,.78); margin: 6px 0 0; max-width: 60ch; }
@media (max-width: 800px) { .ff-media-contact-inner { grid-template-columns: 1fr; } }
.ff-media-spokes { background: var(--ff-paper-2); }
.ff-media-spokes-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.ff-media-spoke { background: #fff; border: 1px solid var(--ff-rule); border-radius: var(--ff-radius-lg); padding: 26px 28px 28px; }
.ff-media-spoke h3 { font-family: var(--ff-serif); font-size: 22px; color: var(--ff-navy); margin: 0 0 6px; font-weight: 700; }
.ff-media-spoke .ff-card-kicker { color: var(--ff-red); }
.ff-media-spoke p { color: var(--ff-ink-2); font-size: 15px; line-height: 1.55; margin: 10px 0 0; }
@media (max-width: 720px) { .ff-media-spokes-grid { grid-template-columns: 1fr; } }
.ff-media-outlets { background: #fff; }
.ff-media-outlets-list { list-style: none; padding: 0; margin: 0; border-top: 2px solid var(--ff-navy); }
.ff-media-outlet { display: grid; grid-template-columns: 220px 1fr; gap: 24px; padding: 18px 4px; border-bottom: 1px solid var(--ff-rule); align-items: baseline; }
.ff-media-outlet-name { font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.1em; font-size: 13px; font-weight: 700; color: var(--ff-navy); }
.ff-media-outlet-headline { font-family: var(--ff-serif); font-size: 17px; line-height: 1.4; color: var(--ff-ink); }
.ff-media-outlet-headline:hover { color: var(--ff-red); }
@media (max-width: 720px) { .ff-media-outlet { grid-template-columns: 1fr; gap: 4px; } }
.ff-media-assets { background: var(--ff-paper-2); }
.ff-media-assets-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.ff-media-assets-list li { padding: 6px 0; }

.ff-aboutus-authorised {
  display: block; padding: 24px var(--ff-pad);
  text-align: center;
  background: var(--ff-paper-2);
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.12em;
  font-size: 12px; color: var(--ff-muted);
  margin: 0;
}

/* ============ Nav dropdown hover bridge + hold delay ============ */
.ff-nav-dropdown::before {
  content: "";
  position: absolute;
  left: 0; right: 0;
  top: -10px;
  height: 12px;
  background: transparent;
}
.ff-nav-dropdown {
  transition: opacity .15s ease, transform .15s ease, visibility 0s linear .35s;
  visibility: hidden;
}
.ff-nav-item:hover .ff-nav-dropdown,
.ff-nav-item.is-open .ff-nav-dropdown,
.ff-nav-dropdown:hover {
  visibility: visible;
  transition: opacity .15s ease, transform .15s ease, visibility 0s linear 0s;
  opacity: 1; pointer-events: auto; transform: translateY(0);
}

/* ============ Footer social icons ============ */
.ff-vh {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}
.ff-footer-social { display: flex; gap: 10px; margin-top: 18px; flex-wrap: wrap; align-items: center; }
.ff-footer-social-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.18);
  color: #fff;
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
  text-decoration: none;
  padding: 0;
  line-height: 0;
}
.ff-footer-social-icon:hover { background: #fff; border-color: #fff; transform: translateY(-1px); }
.ff-footer-social-icon::after {
  content: "";
  display: block;
  width: 18px; height: 18px;
  background-color: #fff;
  -webkit-mask-position: 50% 50%; mask-position: 50% 50%;
  -webkit-mask-size: 18px 18px; mask-size: 18px 18px;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  transition: background-color .15s ease;
}
.ff-footer-social-icon:hover::after { background-color: var(--ff-navy); }
.ff-footer-social-icon--x::after        { -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.244 2H21.5l-7.6 8.683L23 22h-7.06l-5.523-7.21L4.06 22H.8l8.13-9.288L1 2h7.22l5.005 6.62L18.244 2zm-1.24 18h1.77L7.07 4H5.18l11.823 16z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.244 2H21.5l-7.6 8.683L23 22h-7.06l-5.523-7.21L4.06 22H.8l8.13-9.288L1 2h7.22l5.005 6.62L18.244 2zm-1.24 18h1.77L7.07 4H5.18l11.823 16z'/%3E%3C/svg%3E"); }
.ff-footer-social-icon--tiktok::after   { -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-5.2 1.74 2.89 2.89 0 0 1 2.31-4.64 2.93 2.93 0 0 1 .88.13V9.4a6.84 6.84 0 0 0-1-.05A6.33 6.33 0 0 0 5.5 20.1a6.33 6.33 0 0 0 10.86-4.43V9.32a8.16 8.16 0 0 0 4.77 1.52v-3.4a4.85 4.85 0 0 1-1.54-.75z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-5.2 1.74 2.89 2.89 0 0 1 2.31-4.64 2.93 2.93 0 0 1 .88.13V9.4a6.84 6.84 0 0 0-1-.05A6.33 6.33 0 0 0 5.5 20.1a6.33 6.33 0 0 0 10.86-4.43V9.32a8.16 8.16 0 0 0 4.77 1.52v-3.4a4.85 4.85 0 0 1-1.54-.75z'/%3E%3C/svg%3E"); }
.ff-footer-social-icon--instagram::after{ -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.2c3.2 0 3.584.012 4.85.07 1.17.054 1.97.24 2.43.402a4.92 4.92 0 0 1 1.77 1.15 4.92 4.92 0 0 1 1.15 1.77c.162.46.348 1.26.402 2.43.058 1.266.07 1.65.07 4.85s-.012 3.584-.07 4.85c-.054 1.17-.24 1.97-.402 2.43a4.92 4.92 0 0 1-1.15 1.77 4.92 4.92 0 0 1-1.77 1.15c-.46.162-1.26.348-2.43.402-1.266.058-1.65.07-4.85.07s-3.584-.012-4.85-.07c-1.17-.054-1.97-.24-2.43-.402a4.92 4.92 0 0 1-1.77-1.15 4.92 4.92 0 0 1-1.15-1.77c-.162-.46-.348-1.26-.402-2.43C2.212 15.584 2.2 15.2 2.2 12s.012-3.584.07-4.85c.054-1.17.24-1.97.402-2.43a4.92 4.92 0 0 1 1.15-1.77 4.92 4.92 0 0 1 1.77-1.15c.46-.162 1.26-.348 2.43-.402C8.416 2.212 8.8 2.2 12 2.2zm0 1.8c-3.146 0-3.515.012-4.756.068-1.018.046-1.572.217-1.94.36-.488.19-.836.417-1.202.783-.366.366-.593.714-.783 1.202-.143.368-.314.922-.36 1.94C3.012 8.485 3 8.854 3 12s.012 3.515.068 4.756c.046 1.018.217 1.572.36 1.94.19.488.417.836.783 1.202.366.366.714.593 1.202.783.368.143.922.314 1.94.36 1.241.056 1.61.068 4.756.068s3.515-.012 4.756-.068c1.018-.046 1.572-.217 1.94-.36.488-.19.836-.417 1.202-.783.366-.366.593-.714.783-1.202.143-.368.314-.922.36-1.94.056-1.241.068-1.61.068-4.756s-.012-3.515-.068-4.756c-.046-1.018-.217-1.572-.36-1.94a3.12 3.12 0 0 0-.783-1.202 3.12 3.12 0 0 0-1.202-.783c-.368-.143-.922-.314-1.94-.36C15.515 4.012 15.146 4 12 4zm0 3.05A4.95 4.95 0 1 1 7.05 12 4.95 4.95 0 0 1 12 7.05zm0 1.8A3.15 3.15 0 1 0 15.15 12 3.15 3.15 0 0 0 12 8.85zm5.15-2.16a1.16 1.16 0 1 1-1.16-1.16 1.16 1.16 0 0 1 1.16 1.16z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.2c3.2 0 3.584.012 4.85.07 1.17.054 1.97.24 2.43.402a4.92 4.92 0 0 1 1.77 1.15 4.92 4.92 0 0 1 1.15 1.77c.162.46.348 1.26.402 2.43.058 1.266.07 1.65.07 4.85s-.012 3.584-.07 4.85c-.054 1.17-.24 1.97-.402 2.43a4.92 4.92 0 0 1-1.15 1.77 4.92 4.92 0 0 1-1.77 1.15c-.46.162-1.26.348-2.43.402-1.266.058-1.65.07-4.85.07s-3.584-.012-4.85-.07c-1.17-.054-1.97-.24-2.43-.402a4.92 4.92 0 0 1-1.77-1.15 4.92 4.92 0 0 1-1.15-1.77c-.162-.46-.348-1.26-.402-2.43C2.212 15.584 2.2 15.2 2.2 12s.012-3.584.07-4.85c.054-1.17.24-1.97.402-2.43a4.92 4.92 0 0 1 1.15-1.77 4.92 4.92 0 0 1 1.77-1.15c.46-.162 1.26-.348 2.43-.402C8.416 2.212 8.8 2.2 12 2.2zm0 1.8c-3.146 0-3.515.012-4.756.068-1.018.046-1.572.217-1.94.36-.488.19-.836.417-1.202.783-.366.366-.593.714-.783 1.202-.143.368-.314.922-.36 1.94C3.012 8.485 3 8.854 3 12s.012 3.515.068 4.756c.046 1.018.217 1.572.36 1.94.19.488.417.836.783 1.202.366.366.714.593 1.202.783.368.143.922.314 1.94.36 1.241.056 1.61.068 4.756.068s3.515-.012 4.756-.068c1.018-.046 1.572-.217 1.94-.36.488-.19.836-.417 1.202-.783.366-.366.593-.714.783-1.202.143-.368.314-.922.36-1.94.056-1.241.068-1.61.068-4.756s-.012-3.515-.068-4.756c-.046-1.018-.217-1.572-.36-1.94a3.12 3.12 0 0 0-.783-1.202 3.12 3.12 0 0 0-1.202-.783c-.368-.143-.922-.314-1.94-.36C15.515 4.012 15.146 4 12 4zm0 3.05A4.95 4.95 0 1 1 7.05 12 4.95 4.95 0 0 1 12 7.05zm0 1.8A3.15 3.15 0 1 0 15.15 12 3.15 3.15 0 0 0 12 8.85zm5.15-2.16a1.16 1.16 0 1 1-1.16-1.16 1.16 1.16 0 0 1 1.16 1.16z'/%3E%3C/svg%3E"); }
.ff-footer-social-icon--facebook::after { -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.79c0-2.5 1.5-3.89 3.77-3.89 1.09 0 2.24.2 2.24.2v2.47h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.77l-.44 2.89h-2.33v6.99A10 10 0 0 0 22 12z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.79c0-2.5 1.5-3.89 3.77-3.89 1.09 0 2.24.2 2.24.2v2.47h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.77l-.44 2.89h-2.33v6.99A10 10 0 0 0 22 12z'/%3E%3C/svg%3E"); }
.ff-footer-social-icon--youtube::after  { -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.5 6.2a3 3 0 0 0-2.12-2.12C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.38.48A3 3 0 0 0 .5 6.2 31.4 31.4 0 0 0 0 12a31.4 31.4 0 0 0 .5 5.8 3 3 0 0 0 2.12 2.12c1.88.48 9.38.48 9.38.48s7.5 0 9.38-.48a3 3 0 0 0 2.12-2.12A31.4 31.4 0 0 0 24 12a31.4 31.4 0 0 0-.5-5.8zM9.6 15.6V8.4l6.24 3.6z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.5 6.2a3 3 0 0 0-2.12-2.12C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.38.48A3 3 0 0 0 .5 6.2 31.4 31.4 0 0 0 0 12a31.4 31.4 0 0 0 .5 5.8 3 3 0 0 0 2.12 2.12c1.88.48 9.38.48 9.38.48s7.5 0 9.38-.48a3 3 0 0 0 2.12-2.12A31.4 31.4 0 0 0 24 12a31.4 31.4 0 0 0-.5-5.8zM9.6 15.6V8.4l6.24 3.6z'/%3E%3C/svg%3E"); }

/* ============ Donor achievements section ============ */
.ff-give-wins { background: var(--ff-paper-2); }
.ff-give-wins-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: clamp(24px, 4vw, 60px);
  align-items: center;
}
.ff-give-wins-media {
  border-radius: var(--ff-radius-lg);
  overflow: hidden;
  box-shadow: 0 22px 50px -28px rgba(18,53,75,.35);
  background: #0e2940;
}
.ff-give-wins-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ff-give-wins-h { font-size: clamp(28px, 3.4vw, 44px); margin: 0 0 18px; line-height: 1.1; }
.ff-give-wins-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 14px; }
.ff-give-wins-list li { display: grid; grid-template-columns: 24px 1fr; gap: 12px; align-items: flex-start; font-size: clamp(15px, 1.3vw, 17px); line-height: 1.5; color: var(--ff-ink); }
.ff-give-wins-tick { color: var(--ff-red); font-weight: 800; font-size: 18px; line-height: 1.3; }
.ff-give-wins-kicker {
  margin: 22px 0 0;
  font-family: var(--ff-serif);
  font-style: italic;
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 700;
  color: var(--ff-navy);
}
@media (max-width: 860px) {
  .ff-give-wins-inner { grid-template-columns: 1fr; }
}

/* ============ Instagram grid (news page) ============ */
.ff-news-ig { background: var(--ff-paper); padding-top: clamp(24px, 4vw, 60px); padding-bottom: clamp(24px, 4vw, 60px); }
.ff-ig-grid {
  list-style: none; padding: 0; margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.ff-ig-grid li { list-style: none; }
.ff-ig-tile {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 6px;
  background: #0e2940;
  transition: transform .2s ease, box-shadow .2s ease;
}
.ff-ig-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease, filter .2s ease; }
.ff-ig-tile:hover { transform: translateY(-2px); box-shadow: 0 18px 36px -18px rgba(18,53,75,.45); }
.ff-ig-tile:hover img { transform: scale(1.04); filter: brightness(0.85); }
.ff-ig-tile-overlay {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 14px;
  background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,0.65) 100%);
  color: #fff;
  opacity: 0; transition: opacity .2s ease;
  pointer-events: none;
}
.ff-ig-tile:hover .ff-ig-tile-overlay { opacity: 1; }
.ff-ig-tile-mark {
  font-family: var(--ff-cond); text-transform: uppercase; letter-spacing: 0.12em;
  font-size: 11px; font-weight: 700; color: rgba(255,255,255,.85);
}
.ff-ig-tile-caption { font-family: var(--ff-serif); font-size: 14px; line-height: 1.3; font-weight: 700; margin-top: 4px; text-shadow: 0 1px 2px rgba(0,0,0,.5); }
@media (max-width: 720px) { .ff-ig-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; } }
