/* ============================================================
   FORGE SHARED CHROME  ·  single source of truth
   Announcement banner + Top nav (logo, links, Sprints mega menu,
   mobile burger/accordion) + Footer + Contact FAB.
   All classes are namespaced with the fc- prefix so they never
   collide with page CSS or Tailwind utilities.
   Mobile-first. No horizontal overflow at 360 / 390px.
   ============================================================ */

/* Design tokens, defined here as a FALLBACK so the chrome renders
   correctly even on a page that forgot to define them. Pages that
   define :root tokens simply override these identical values. */
:root {
  --ink:   #1a1a1f;
  --card:  #242428;
  --elev:  #2c2c32;
  --line:  #3a3a42;
  --paper: #f8f7f4;
  --mute:  #c8c5be;
  --red:   #FF0000;
}

/* The shared chrome owns the top inset. JS sets --fc-banner-h after
   the banner renders so the nav always sits exactly below the banner
   and the page body clears the fixed banner + nav. */
:root { --fc-banner-h: 38px; --fc-nav-h: 57px; }

#fc-chrome *, #fc-chrome *::before, #fc-chrome *::after { box-sizing: border-box; }

/* ============================================================
   ANNOUNCEMENT BANNER
   ============================================================ */
#fc-banner {
  background: var(--red);
  color: var(--paper);
  text-align: center;
  padding: 8px 12px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.07em;
  z-index: 100;
  position: fixed;
  top: 0; left: 0; right: 0;
  font-family: 'JetBrains Mono', monospace;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: nowrap;          /* always one line — never stack (fixes mobile 2-line + taller banner) */
  overflow: hidden;
  line-height: 1.3;
  box-shadow: 0 4px 16px rgba(255, 0, 0, 0.15);
}
/* Text may shrink + ellipsize; the countdown pill and CTA never shrink and stay visible. */
#fc-banner-text { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#fc-banner-countdown, #fc-banner-cta, #fc-banner .fc-banner-dot { flex: 0 0 auto; }
@media (max-width: 600px) {
  #fc-banner { font-size: 9.5px; letter-spacing: 0.03em; gap: 6px; padding: 6px 9px; }
  #fc-banner-countdown { padding: 1px 5px; }
}
#fc-banner .fc-banner-dot {
  display: inline-block; width: 6px; height: 6px;
  background: var(--paper); border-radius: 50%;
  animation: fc-pulse 1.5s infinite; flex-shrink: 0;
}
#fc-banner-countdown {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 700; letter-spacing: 0.04em;
  padding: 1px 7px; border: 1px solid rgba(255,255,255,0.4);
  border-radius: 5px; white-space: nowrap;
}
#fc-banner-cta {
  color: var(--paper); text-decoration: underline;
  font-weight: 700; text-transform: uppercase; white-space: nowrap;
}
@keyframes fc-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.55; transform: scale(0.88); }
}

/* ============================================================
   TOP NAV
   ============================================================ */
/* Skip link (WCAG 2.4.1) — off-screen until focused */
.fc-skip {
  position: fixed; top: 8px; left: 8px; z-index: 200;
  transform: translateY(-160%);
  background: var(--red); color: var(--paper);
  font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 600;
  letter-spacing: 0.04em; padding: 10px 16px; border-radius: 8px;
  text-decoration: none; box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  transition: transform 0.2s ease;
}
.fc-skip:focus { transform: translateY(0); }

/* Scroll sentinel — 1px marker at the top of <main>; when it exits the viewport the nav gets .fc-scrolled */
#fc-scroll-top { display: block; height: 1px; width: 100%; pointer-events: none; }

#fc-nav {
  position: fixed; left: 0; right: 0; top: var(--fc-banner-h);
  z-index: 50;
  background: rgba(26, 26, 31, 0.85);
  -webkit-backdrop-filter: saturate(160%) blur(12px);
  backdrop-filter: saturate(160%) blur(12px);
  border-bottom: 1px solid var(--line);
  font-family: 'Inter', sans-serif;
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
/* Scroll-aware "stuck" state — chrome-client.ts toggles this via a top sentinel (Vercel/Linear pattern) */
#fc-nav.fc-scrolled {
  background: rgba(10, 10, 12, 0.72);
  -webkit-backdrop-filter: saturate(170%) blur(16px);
  backdrop-filter: saturate(170%) blur(16px);
  border-bottom-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}
.fc-nav-inner {
  max-width: 80rem; margin: 0 auto;
  padding: 14px 24px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px;
  transition: padding 0.2s ease;
}
#fc-nav.fc-scrolled .fc-nav-inner { padding-top: 10px; padding-bottom: 10px; }
.fc-logo { display: inline-flex; align-items: center; gap: 12px; flex-shrink: 0; }
.fc-logo img { height: 30px; width: auto; display: block; transition: height 0.2s ease; }
#fc-nav.fc-scrolled .fc-logo img { height: 27px; }

.fc-nav-links { display: none; align-items: center; gap: 26px; font-size: 14px; color: var(--mute); }
.fc-nav-links > a { position: relative; color: var(--mute); text-decoration: none; transition: color 0.15s ease; white-space: nowrap; padding: 4px 0; }
.fc-nav-links > a:hover { color: var(--paper); }
.fc-nav-links > a.fc-active { color: var(--paper); }
/* Underline-slide — GPU-friendly transform scale, red accent (durable premium pattern) */
.fc-nav-links > a::after,
.fc-dd > .fc-dd-trigger::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px;
  background: var(--red); border-radius: 2px;
  transform: scaleX(0); transform-origin: left center;
  transition: transform 0.22s cubic-bezier(.2,.8,.2,1);
}
.fc-nav-links > a:hover::after,
.fc-nav-links > a:focus-visible::after,
.fc-nav-links > a.fc-active::after,
.fc-dd:hover > .fc-dd-trigger::after,
.fc-dd.fc-dd-open > .fc-dd-trigger::after { transform: scaleX(1); }
.fc-dd > .fc-dd-trigger { position: relative; padding-bottom: 4px; }
/* Focus-visible rings on every nav control (a11y) */
.fc-nav-links > a:focus-visible,
.fc-dd-trigger:focus-visible,
.fc-nav-cta:focus-visible,
.fc-burger:focus-visible,
.fc-menu-close:focus-visible,
.fc-mobile-inner > a:focus-visible,
.fc-mega-ed:focus-visible,
.fc-mega-links a:focus-visible,
.fc-mega-foot-link:focus-visible {
  outline: 2px solid var(--red); outline-offset: 3px; border-radius: 4px;
}

/* ===== Right-hand control cluster =====
   CTA + auth control + burger are one flex row pinned to the right edge.
   The markup already shipped these wrappers; without these rules they are plain
   block elements and the controls stack vertically down the nav. */
.fc-nav-right {
  display: flex; align-items: center; gap: 10px;
  margin-left: auto; flex-shrink: 0;
}
/* The wrapper owns the mobile/desktop toggle so the CTA itself can stay a
   simple inline-flex button, and JS has one element to hide. */
.fc-cta-wrap { position: relative; display: none; }
/* Spacing is the cluster's gap — kill the islands' own margins so the rhythm
   stays even whether the user is signed in or out. */
.fc-nav-right .fc-nav-login,
.fc-nav-right .auth-status-wrap { margin-left: 0; }

/* One control height across the cluster. A 38px CTA next to a 30px Sign in
   read as two unrelated components; matching them makes it one control group. */
.fc-nav-cta { display: none; }
.fc-nav-cta.fc-btn-red {
  display: inline-flex; align-items: center; gap: 8px;
  height: 38px; padding: 0 18px;
  background: var(--red); color: var(--paper);
  font-weight: 600; font-size: 14px; white-space: nowrap;
  border: 1px solid var(--red); border-radius: 9px;
  cursor: pointer; text-decoration: none;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.fc-nav-cta.fc-btn-red:hover { transform: translateY(-1px); box-shadow: 0 12px 28px rgba(255,0,0,0.22); }

/* Burger */
.fc-burger {
  display: inline-flex; align-items: center; justify-content: center;
  background: none; border: none; color: var(--paper);
  cursor: pointer; padding: 2px; flex-shrink: 0;
}

/* ===== Desktop dropdown / mega menu ===== */
.fc-dd { position: relative; }
.fc-dd > .fc-dd-trigger {
  display: inline-flex; align-items: center; gap: 5px; cursor: pointer;
  background: none; border: none; font: inherit; color: var(--mute); padding: 0;
  transition: color 0.15s ease;
}
.fc-dd > .fc-dd-trigger:hover { color: var(--paper); }
.fc-dd > .fc-dd-trigger .fc-caret {
  width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg); margin-top: -3px; transition: transform 0.2s ease; opacity: 0.8;
}
.fc-dd.fc-dd-open > .fc-dd-trigger .fc-caret,
.fc-dd:focus-within > .fc-dd-trigger .fc-caret { transform: rotate(225deg); margin-top: 2px; }

.fc-mega { position: static; }
.fc-mega-panel {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(6px);
  width: min(1280px, calc(100vw - 32px));
  background: var(--card); border: 1px solid var(--line); border-radius: 14px;
  padding: 18px; box-shadow: 0 22px 50px rgba(0,0,0,0.5);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease; z-index: 60;
}
.fc-mega.fc-dd-open > .fc-mega-panel,
.fc-mega:hover > .fc-mega-panel,
.fc-mega:focus-within > .fc-mega-panel { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }
.fc-mega:hover > .fc-dd-trigger .fc-caret { transform: rotate(225deg); margin-top: 2px; }
/* Invisible full-width hover bridge so moving the cursor from the trigger
   into the panel never crosses an empty gap that would close it. */
.fc-mega-panel::before { content: ''; position: absolute; top: -26px; left: -40px; right: -40px; height: 30px; }
/* Default 6 cols = the legacy forge-chrome.js nav (plain .fc-mega-grid); the Astro
   nav overrides per menu via the -sprints/-programs/-companies/-explore variants.
   Each variant's column count matches its NAV_ITEMS column count so rows stay even. */
.fc-mega-grid { display: grid; gap: 11px; grid-template-columns: repeat(6, 1fr); }
.fc-mega-grid-sprints { grid-template-columns: repeat(7, 1fr); }
.fc-mega-grid-programs { grid-template-columns: repeat(3, 1fr); }
.fc-mega-grid-companies { grid-template-columns: repeat(3, 1fr); }
.fc-mega-grid-explore { grid-template-columns: repeat(7, 1fr); }
.fc-mega-grid-about { grid-template-columns: repeat(4, 1fr); }
.fc-mega-col { background: var(--ink); border: 1px solid var(--line); border-radius: 11px; padding: 13px; display: flex; flex-direction: column; }
.fc-mega-col.fc-locked { opacity: 0.6; }
/* Mega menu polish + bigger brand logos */
.fc-mega-col { transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.fc-mega-col:hover { border-color: var(--red); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(0,0,0,.4); }
.fc-mega-col-head { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.fc-mega-logo { height: 30px; width: 30px; object-fit: contain; border-radius: 7px; background: #fff; padding: 4px; box-shadow: 0 3px 10px rgba(0,0,0,.3); flex: none; }
.fc-mega-col-head .fc-mega-stack { width: 100%; }
.fc-mega-flags { display: inline-flex; align-items: center; gap: 5px; flex: none; }
.fc-mega-flags img { width: 30px; height: 20px; object-fit: cover; border-radius: 4px; box-shadow: 0 3px 10px rgba(0,0,0,.4); border: 1px solid rgba(255,255,255,.12); }
.fc-mega-ed { transition: border-color .15s ease, background .15s ease, transform .12s ease; }
.fc-mega-ed:hover { transform: translateX(2px); }
.fc-mega-col-head { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 13.5px; color: var(--paper); line-height: 1.25; margin-bottom: 3px; }
.fc-mega-col-head .fc-mega-stack { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.08em; color: var(--red); text-transform: uppercase; margin-top: 4px; }
.fc-mega-ed { display: block; text-decoration: none; border-radius: 8px; padding: 8px 9px; margin-top: 8px; border: 1px solid var(--line); transition: border-color 0.15s ease, background 0.15s ease; }
.fc-mega-ed:hover { border-color: var(--red); background: rgba(255,0,0,0.06); }
.fc-mega-ed .fc-mega-ed-t { display: block; font-size: 12.5px; font-weight: 600; color: var(--paper); }
.fc-mega-ed .fc-mega-ed-m { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--mute); margin-top: 2px; letter-spacing: 0.04em; }
.fc-mega-ed .fc-mega-ed-m .fc-st-open { color: var(--red); }
.fc-mega-links { margin-top: auto; padding-top: 10px; display: flex; gap: 10px; flex-wrap: wrap; }
.fc-mega-links a { font-family: 'JetBrains Mono', monospace; font-size: 10.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--mute); text-decoration: none; padding-top: 8px; border-top: 1px solid transparent; transition: color 0.15s ease; }
.fc-mega-links a:hover { color: var(--red); }
.fc-mega-lock { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--mute); margin-top: 10px; }

/* Mega-menu footer row — featured/CTA affordance (Lattice/Vercel pattern) */
.fc-mega-foot {
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
  margin-top: 14px; padding-top: 14px;
  border-top: 1px dashed var(--line);
}
.fc-mega-foot-link {
  font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--mute); text-decoration: none;
  transition: color 0.15s ease;
}
.fc-mega-foot-link:hover { color: var(--red); }
.fc-mega-foot-sep { flex: 1 1 auto; }
.fc-mega-foot-cta.fc-btn-red {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--red); color: var(--paper);
  font-family: 'Inter', sans-serif; font-weight: 600; font-size: 13px;
  border: 1px solid var(--red); border-radius: 8px; padding: 8px 16px;
  text-decoration: none; transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.fc-mega-foot-cta.fc-btn-red:hover { transform: translateY(-1px); box-shadow: 0 12px 28px rgba(255,0,0,0.22); }

/* ===== Mobile menu ===== */
/* Full-screen OVERLAY DRAWER below the fixed banner+nav — no longer pushes page
   content (was position:static). Scrollable, backdrop-blurred, body-scroll-locked,
   slide-in; roomy tap targets + clear hierarchy. */
#fc-mobile-menu {
  display: none;
  position: fixed;
  top: calc(var(--fc-banner-h, 38px) + var(--fc-nav-h, 57px));
  left: 0; right: 0; bottom: 0;
  background: rgba(18, 18, 22, 0.98);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
  border-top: 1px solid var(--line);
  z-index: 49;
  overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
}
#fc-mobile-menu.fc-open { display: block; animation: fc-menu-in .28s cubic-bezier(.2,.8,.2,1) both; }
@keyframes fc-menu-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
html.fc-menu-open, html.fc-menu-open body { overflow: hidden !important; }

.fc-mobile-inner { padding: 10px 18px 44px; display: flex; flex-direction: column; gap: 2px; font-size: 15px; }
.fc-mobile-head { display: flex; align-items: center; justify-content: space-between; padding: 4px 4px 10px; margin-bottom: 4px; }
.fc-mobile-head-t { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--mute); }
.fc-menu-close {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; margin: -8px -8px -8px 0;
  background: none; border: none; color: var(--paper); cursor: pointer;
  border-radius: 10px; transition: background .15s ease, color .15s ease;
}
.fc-menu-close:hover, .fc-menu-close:active { background: rgba(255,255,255,.06); color: var(--red); }
.fc-mobile-inner > a { color: var(--paper); text-decoration: none; padding: 13px 12px; border-radius: 11px; font-weight: 500; transition: background .15s ease, color .15s ease; }
.fc-mobile-inner > a:hover, .fc-mobile-inner > a:active { background: rgba(255,255,255,.06); }
.fc-mobile-inner > a.fc-active { color: var(--red); background: rgba(255,0,0,.06); }
.fc-m-group-label { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--mute); margin: 18px 12px 4px; }
.fc-mobile-inner a.fc-m-sub { font-size: 14px; }

.fc-acc { border: 1px solid var(--line); border-radius: 12px; margin: 6px 0; overflow: hidden; background: rgba(255,255,255,.02); }
.fc-acc > summary { list-style: none; cursor: pointer; padding: 15px 16px; font-size: 15px; font-weight: 600; color: var(--paper); display: flex; align-items: center; justify-content: space-between; }
.fc-acc > summary::-webkit-details-marker { display: none; }
.fc-acc > summary::after { content: '+'; color: var(--red); font-weight: 700; font-size: 20px; line-height: 1; }
.fc-acc[open] > summary::after { content: '\2212'; }
.fc-acc-body { padding: 0 12px 10px; }
.fc-acc-col { padding: 12px 4px; border-top: 1px solid rgba(255,255,255,.06); }
.fc-acc-col:first-child { border-top: none; }
.fc-acc-col .fc-acc-h { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--red); margin-bottom: 4px; }
.fc-acc-col a { display: block; font-size: 13.5px; color: var(--mute); padding: 7px 0; text-decoration: none; }
.fc-acc-col a:hover, .fc-acc-col a:active { color: var(--paper); }
.fc-acc-col a.fc-locked { pointer-events: none; opacity: 0.6; }

/* Reveal desktop layout, hide mobile-only controls at >=768px */
@media (min-width: 768px) {
  .fc-nav-links { display: flex; }
  .fc-cta-wrap { display: inline-flex; }
  .fc-burger { display: none; }
  #fc-mobile-menu { display: none !important; }
}
@media (max-width: 1100px) {
  .fc-mega-grid, .fc-mega-grid-sprints, .fc-mega-grid-explore { grid-template-columns: repeat(3, 1fr); }
  .fc-mega-grid-programs { grid-template-columns: repeat(2, 1fr); }
  .fc-mega-grid-companies { grid-template-columns: repeat(3, 1fr); }
  .fc-mega-grid-about { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .fc-mega-grid, .fc-mega-grid-sprints, .fc-mega-grid-explore { grid-template-columns: repeat(2, 1fr); }
  .fc-mega-grid-programs { grid-template-columns: repeat(2, 1fr); }
  .fc-mega-grid-companies { grid-template-columns: repeat(3, 1fr); }
  .fc-mega-grid-about { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   FOOTER
   ============================================================ */
#fc-footer {
  border-top: 1px solid var(--line);
  padding: 56px 0 32px;
  margin-top: 54px;
  font-family: 'Inter', sans-serif;
  background: var(--ink);
  color: var(--paper);
}
.fc-footer-inner { max-width: 80rem; margin: 0 auto; padding: 0 24px; }
.fc-footer-grid {
  display: grid; grid-template-columns: 1fr; gap: 36px; margin-bottom: 44px;
}
/* tablet: brand + link columns in a 2-up grid */
@media (min-width: 768px) { .fc-footer-grid { grid-template-columns: repeat(2, 1fr); gap: 36px 32px; } }
/* desktop: wide brand column + four peer link columns */
@media (min-width: 1000px) { .fc-footer-grid { grid-template-columns: 1.7fr repeat(4, 1fr); gap: 44px; } }
.fc-footer-brand-logo { height: 36px; width: auto; display: block; margin-bottom: 14px; }
.fc-footer-brand-line { font-size: 13px; color: var(--mute); line-height: 1.6; }
.fc-footer-addr { font-style: normal; font-size: 13px; color: var(--mute); line-height: 1.6; margin-top: 14px; }
.fc-footer-col-h { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--mute); text-transform: uppercase; letter-spacing: 0.16em; margin-bottom: 14px; }
.fc-footer-list { font-size: 14px; display: flex; flex-direction: column; gap: 8px; list-style: none; padding: 0; margin: 0; }
.fc-footer-list a { color: var(--paper); text-decoration: none; transition: color 0.15s ease; }
.fc-footer-list a:hover { color: var(--red); }

.fc-social-row { display: flex; align-items: center; gap: 12px; margin-top: 16px; flex-wrap: wrap; }
.fc-social-row a {
  width: 38px; height: 38px; border-radius: 10px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--line); color: var(--mute);
  transition: color 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}
.fc-social-row a:hover { color: var(--red); border-color: var(--red); transform: translateY(-1px); }
.fc-social-row a svg { width: 18px; height: 18px; }

.fc-footer-bottom {
  padding-top: 24px; border-top: 1px solid var(--line);
  font-size: 12px; color: var(--mute);
  display: flex; flex-direction: column; gap: 8px;
}
@media (min-width: 768px) { .fc-footer-bottom { flex-direction: row; justify-content: space-between; align-items: center; } }
.fc-footer-bottom .fc-mono { font-family: 'JetBrains Mono', monospace; }
#fc-footer .fc-footer-legal { display: flex; gap: 18px; flex-wrap: wrap; }
#fc-footer .fc-footer-legal a { color: var(--mute); text-decoration: none; transition: color .15s ease; }
#fc-footer .fc-footer-legal a:hover { color: var(--red); }
#fc-footer .fc-footer-legal a:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; border-radius: 4px; }

/* ---- Footer: brand column extras ---- */
#fc-footer .fc-footer-brand-link { display: inline-block; }
#fc-footer .fc-footer-contact { display: flex; flex-direction: column; gap: 5px; margin-top: 16px; font-size: 13px; }
#fc-footer .fc-footer-contact a { color: var(--paper); text-decoration: none; transition: color 0.15s ease; }
#fc-footer .fc-footer-contact a:hover { color: var(--red); }

/* ---- Footer link columns — one heading + one flat list. -----------------
   Desktop: heading is a static mono label, links + Handbooks dropdown visible.
   Mobile (<768px): each column collapses to a click-to-open accordion. -------- */
#fc-footer .fc-footer-group { display: flex; flex-direction: column; }

/* column heading (static label on desktop) */
#fc-footer .fc-footer-group-trigger {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; background: none; border: none; cursor: default;
  font-family: 'JetBrains Mono', monospace; font-size: 11px;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--mute);
  text-decoration: none; padding: 0 0 14px; text-align: left;
  transition: color 0.15s ease, transform 0.15s ease;
  position: relative;
}

/* caret: hidden on desktop (nothing to toggle), shown on mobile */
#fc-footer .fc-footer-group-trigger .fc-caret {
  width: 8px; height: 8px; display: none; flex: none;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg); margin-top: -3px;
  transition: transform 0.2s ease; opacity: 0.8;
}
#fc-footer .fc-footer-group-trigger[aria-expanded="true"] .fc-caret {
  transform: rotate(225deg); margin-top: 2px;
}

/* links: visible by default (desktop, no-JS safe) */
#fc-footer .fc-footer-group-links { display: flex; flex-direction: column; }

#fc-footer .fc-footer-group-links > a {
  display: block; font-size: 14px; color: var(--paper);
  text-decoration: none; padding: 5px 0;
  position: relative; transition: color 0.15s ease, transform 0.15s ease;
}
#fc-footer .fc-footer-group-links > a::after {
  content: ''; position: absolute; left: 0; right: 100%; bottom: 1px;
  height: 1px; background: var(--red); transition: right .22s ease;
}
#fc-footer .fc-footer-group-links > a:hover { color: var(--paper); transform: translateX(3px); }
#fc-footer .fc-footer-group-links > a:hover::after { right: 0; }

/* Handbooks disclosure — native <details>, no JS, collapses 6 links into one row */
#fc-footer .fc-footer-dd { margin-top: 2px; }
#fc-footer .fc-footer-dd summary {
  list-style: none; cursor: pointer; user-select: none;
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 14px; color: var(--paper); padding: 5px 0;
  transition: color 0.15s ease;
}
#fc-footer .fc-footer-dd summary::-webkit-details-marker { display: none; }
#fc-footer .fc-footer-dd summary::marker { content: ''; }
#fc-footer .fc-footer-dd summary:hover { color: var(--red); }
#fc-footer .fc-footer-dd summary:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; border-radius: 4px; }
#fc-footer .fc-caret-dd {
  width: 7px; height: 7px; display: inline-block; flex: none;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg); margin-top: -2px;
  transition: transform 0.2s ease; opacity: 0.75;
}
#fc-footer .fc-footer-dd[open] summary .fc-caret-dd { transform: rotate(225deg); margin-top: 1px; }
/* No display override here — a closed <details> must stay hidden (the UA rule does
   that); forcing display:flex would beat it on specificity and leave it always open. */
#fc-footer .fc-footer-dd-links { margin: 2px 0 4px; padding-left: 12px; border-left: 1px solid var(--line); }
#fc-footer .fc-footer-dd-links a {
  display: block; font-size: 13px; color: var(--mute); text-decoration: none; padding: 4px 0;
  transition: color 0.15s ease, transform 0.15s ease;
}
#fc-footer .fc-footer-dd-links a:hover { color: var(--paper); transform: translateX(3px); }

@media (max-width: 767px) {
  /* heading becomes an interactive accordion trigger */
  #fc-footer .fc-footer-group-trigger {
    cursor: pointer; font-family: inherit; font-size: 15px; font-weight: 500;
    letter-spacing: normal; text-transform: none; color: var(--paper);
    padding: 11px 0; border-bottom: 1px solid var(--line);
  }
  #fc-footer .fc-footer-group-trigger:hover { color: var(--red); }
  #fc-footer .fc-footer-group-trigger .fc-caret { display: inline-block; }
  /* collapsed unless JS opens it */
  #fc-footer .fc-footer-group-links { display: none; padding: 6px 0 10px; }
  #fc-footer .fc-footer-group-links.fc-open { display: flex; }
  #fc-footer .fc-footer-group-links > a { padding-left: 4px; }
}

/* ============================================================
   CONTACT FAB
   ============================================================ */
#fc-fab-root { position: fixed; right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); z-index: 40; font-family: 'Inter', sans-serif; }
.fc-fab-card {
  position: absolute; right: 0; bottom: 72px;
  width: auto; min-width: 240px; max-width: min(320px, calc(100vw - 28px));
  background: var(--card); border: 1px solid var(--line); border-radius: 16px;
  padding: 14px; box-shadow: 0 24px 60px rgba(0,0,0,.55), 0 0 0 1px rgba(255,0,0,.06);
  transform-origin: bottom right; opacity: 0; visibility: hidden; overflow: visible;
  transform: perspective(800px) rotateX(-14deg) scale(.86) translateY(8px);
  transition: opacity .22s ease, transform .28s cubic-bezier(.34,1.56,.64,1), visibility .22s;
}
#fc-fab-root.fc-open .fc-fab-card { opacity: 1; visibility: visible; transform: perspective(800px) rotateX(0) scale(1) translateY(0); }
.fc-fab-card-h { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--mute); margin: 2px 4px 10px; display: flex; align-items: center; gap: 7px; }
.fc-fab-card-h .fc-fab-hdot { width: 7px; height: 7px; border-radius: 50%; background: var(--red); box-shadow: 0 0 8px rgba(255,0,0,.6); }
.fc-fab-row { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 11px; border: 1px solid var(--line); background: var(--ink); text-decoration: none; margin-top: 9px; transition: border-color .15s ease, transform .12s ease; }
.fc-fab-row:first-of-type { margin-top: 0; }
.fc-fab-row:hover { border-color: var(--red); transform: translateY(-1px); }
.fc-fab-ic { width: 34px; height: 34px; border-radius: 9px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: rgba(255,0,0,.1); color: var(--red); }
.fc-fab-tx { min-width: 0; flex: 1; }
.fc-fab-tx .fc-fab-t { font-size: 13px; font-weight: 600; color: var(--paper); line-height: 1.2; white-space: nowrap; }
.fc-fab-btn {
  width: 56px; height: 56px; border-radius: 50%; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center; color: #fff;
  background: radial-gradient(circle at 36% 32%, #ff4d4d 0%, #ff0000 56%, #c50000 100%);
  box-shadow: 0 10px 22px rgba(255,0,0,.32), 0 4px 10px rgba(0,0,0,.4), inset 0 -4px 10px rgba(0,0,0,.28), inset 0 4px 10px rgba(255,255,255,.22);
  transform-style: preserve-3d; transition: transform .14s cubic-bezier(.25,1,.5,1), box-shadow .18s ease;
  animation: fc-fab-float 3.6s ease-in-out infinite; position: relative; margin-left: auto;
}
.fc-fab-btn:hover { box-shadow: 0 16px 34px rgba(255,0,0,.42), 0 6px 14px rgba(0,0,0,.45), inset 0 -4px 10px rgba(0,0,0,.28), inset 0 4px 10px rgba(255,255,255,.22); }
.fc-fab-btn:active { transform: scale(.9) translateY(2px); box-shadow: 0 5px 12px rgba(255,0,0,.4), inset 0 -3px 8px rgba(0,0,0,.4); }
.fc-fab-btn svg { transition: transform .25s ease; pointer-events: none; }
#fc-fab-root.fc-open .fc-fab-btn { animation: none; }
#fc-fab-root.fc-open .fc-fab-btn .fc-fab-i-chat { display: none; }
#fc-fab-root.fc-open .fc-fab-btn .fc-fab-i-close { display: block; }
.fc-fab-btn .fc-fab-i-close { display: none; }
@keyframes fc-fab-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@media (max-width: 768px) { #fc-fab-root { right: max(14px, env(safe-area-inset-right)); bottom: max(86px, env(safe-area-inset-bottom)); } }
@media (prefers-reduced-motion: reduce) {
  .fc-fab-btn { animation: none !important; transition: box-shadow .18s ease; }
  .fc-fab-btn:active { transform: none; }
  .fc-fab-card { transition: opacity .15s ease, visibility .15s; }
  #fc-fab-root.fc-open .fc-fab-card { transform: none; }
  #fc-banner .fc-banner-dot { animation: none; }
  /* nav upgrade: keep state changes instant, drop slides/logo-resize motion */
  #fc-nav, .fc-nav-inner, .fc-logo img, .fc-skip { transition: none !important; }
  .fc-nav-links > a::after, .fc-dd > .fc-dd-trigger::after { transition: none !important; }
  #fc-mobile-menu.fc-open { animation: none !important; }
}

/* ============================================================
   DYNAMIC ISLAND · site-wide music player (tap to mute/unmute)
   ============================================================ */
#fc-island{position:fixed;top:calc(var(--fc-banner-h,38px) + var(--fc-nav-h,57px) + 12px);left:max(14px,env(safe-area-inset-left));z-index:45;display:flex;align-items:center;gap:10px;padding:7px 14px 7px 8px;background:rgba(8,8,10,.82);-webkit-backdrop-filter:blur(16px) saturate(170%);backdrop-filter:blur(16px) saturate(170%);border:1px solid rgba(255,255,255,.12);border-radius:999px;box-shadow:0 12px 34px rgba(0,0,0,.5);cursor:pointer;color:#fff;max-width:calc(100vw - 28px);transition:transform .25s cubic-bezier(.2,.9,.3,1.3),box-shadow .2s ease;animation:fc-isl-in .7s cubic-bezier(.2,.9,.3,1.3) both;}
@keyframes fc-isl-in{0%{opacity:0;transform:translateY(-14px) scale(.86)}100%{opacity:1;transform:translateY(0) scale(1)}}
#fc-island:hover{transform:translateY(1px) scale(1.03);box-shadow:0 18px 44px rgba(0,0,0,.62)}
#fc-island:focus-visible{outline:2px solid var(--red);outline-offset:3px}
#fc-island .fc-isl-disc{width:30px;height:30px;border-radius:50%;flex:none;background:conic-gradient(from 0deg,#FF0000,#ff7a45,#26262b,#FF0000);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 1px rgba(255,255,255,.14),0 0 14px rgba(255,0,0,.35)}
#fc-island.fc-playing .fc-isl-disc{animation:fc-isl-spin 3.4s linear infinite}
@keyframes fc-isl-spin{to{transform:rotate(360deg)}}
#fc-island .fc-isl-disc-dot{width:9px;height:9px;border-radius:50%;background:#0b0b0d;box-shadow:inset 0 0 0 2px rgba(255,255,255,.3)}
#fc-island .fc-isl-bars{display:none;align-items:flex-end;gap:2px;height:16px;width:18px;flex:none}
#fc-island.fc-playing .fc-isl-bars{display:flex}
#fc-island .fc-isl-bars i{width:3px;background:var(--red);border-radius:2px;height:30%;animation:fc-isl-eq .9s ease-in-out infinite}
#fc-island .fc-isl-bars i:nth-child(2){animation-delay:.18s}
#fc-island .fc-isl-bars i:nth-child(3){animation-delay:.36s}
#fc-island .fc-isl-bars i:nth-child(4){animation-delay:.54s}
@keyframes fc-isl-eq{0%,100%{height:22%}50%{height:100%}}
#fc-island .fc-isl-meta{display:flex;flex-direction:column;line-height:1.18;min-width:0;max-width:0;overflow:hidden;opacity:0;transition:max-width .32s ease,opacity .25s ease}
#fc-island:hover .fc-isl-meta,#fc-island.fc-playing .fc-isl-meta{max-width:170px;opacity:1}
#fc-island .fc-isl-t{font-family:'Montserrat',sans-serif;font-weight:700;font-size:12.5px;white-space:nowrap}
#fc-island .fc-isl-s{font-family:'JetBrains Mono',monospace;font-size:9.5px;color:var(--red);white-space:nowrap;letter-spacing:.04em}
#fc-island .fc-isl-ic{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.09);display:flex;align-items:center;justify-content:center;flex:none;transition:background .15s}
#fc-island:hover .fc-isl-ic{background:rgba(255,255,255,.16)}
#fc-island .fc-isl-ic svg{width:15px;height:15px;display:block}
@media (max-width:560px){#fc-island{top:calc(var(--fc-banner-h,38px) + var(--fc-nav-h,57px) + 8px);padding:6px 11px 6px 7px;gap:8px}#fc-island .fc-isl-meta{display:none!important}}
@media (prefers-reduced-motion:reduce){#fc-island,#fc-island .fc-isl-disc{animation:none!important}}

/* ============================================================
   FORGE HONK widget (sprint hero red button) — mounts in #forge-honk-mount
   ============================================================ */
.fc-honk-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;margin:8px 0 4px;}
.fc-honk-btn{width:108px;height:108px;border-radius:50%;border:none;cursor:pointer;background:radial-gradient(circle at 38% 32%, #ff5a4d, var(--red) 60%, #c40000);box-shadow:0 16px 40px rgba(255,0,0,.4),inset 0 -8px 16px rgba(0,0,0,.35),inset 0 8px 18px rgba(255,255,255,.25);position:relative;transition:transform .12s ease, box-shadow .2s ease;animation:fc-honk-breathe 3s ease-in-out infinite;}
.fc-honk-btn:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 22px 52px rgba(255,0,0,.5);}
.fc-honk-btn:active{transform:scale(.93);}
.fc-honk-btn .fc-honk-o{position:absolute;inset:26px;border-radius:50%;border:3px solid rgba(255,255,255,.55);}
.fc-honk-btn.fc-honk-pop{animation:fc-honk-pop .5s cubic-bezier(.34,1.56,.64,1) 1;}
@keyframes fc-honk-pop{0%{transform:scale(.9)}40%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes fc-honk-breathe{0%,100%{box-shadow:0 16px 40px rgba(255,0,0,.4),inset 0 -8px 16px rgba(0,0,0,.35),inset 0 8px 18px rgba(255,255,255,.25)}50%{box-shadow:0 16px 52px rgba(255,0,0,.6),inset 0 -8px 16px rgba(0,0,0,.35),inset 0 8px 18px rgba(255,255,255,.25)}}
.fc-honk-cap{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.06em;color:var(--mute);text-transform:uppercase;}
.fc-honk-cap .fc-honk-num{color:var(--red);font-weight:700;}
@media (prefers-reduced-motion:reduce){.fc-honk-btn{animation:none}}

/* ============================================================
   FORGE wordmark + red O honk (exact homepage widget) — mounts in #forge-honk-mount
   ============================================================ */
.forge-hero { position: relative; display: flex; flex-direction: column; align-items: center; width: 100%; padding: 12px 24px 8px; z-index: 5; }
.forge-hero .fc-fh-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--mute); margin-bottom: 22px; display:inline-flex; align-items:center; gap:8px; }
.forge-hero .fc-fh-eyebrow::before { content:''; width:7px; height:7px; border-radius:50%; background:var(--red); box-shadow:0 0 10px rgba(255,0,0,.6); }
.forge-mark { display: flex; align-items: center; justify-content: center; gap: 0; user-select: none; pointer-events: none; width: 100%; max-width: 1280px; margin: 0 auto; font-size: clamp(40px, 16vw, 220px); }
.forge-mark .letter { font-family: 'Montserrat', sans-serif; font-weight: 900; line-height: 1; color: var(--paper); display: inline-block; }
.forge-mark .forge-o-wrap { position: relative; width: 0.82em; height: 0.82em; margin: 0 0.01em; pointer-events: auto; display: inline-block; }
.forge-o { position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #ff4d4d 0%, #ff0000 50%, #990000 100%); border: 1px solid rgba(255,255,255,.15); padding: 0; cursor: pointer; box-shadow: 0 0 0 0 rgba(255,0,0,.45), 0 12px 28px rgba(0,0,0,.45), inset 0 -8px 16px rgba(0,0,0,.4), inset 0 8px 16px rgba(255,255,255,.3); animation: forge-o-pulse 2.6s ease-in-out infinite; transition: transform .1s cubic-bezier(.25,1,.5,1), box-shadow .15s ease; overflow: visible; }
.forge-o::after { content: ''; position: absolute; top: 6%; left: 15%; width: 70%; height: 30%; background: linear-gradient(to bottom, rgba(255,255,255,.4), rgba(255,255,255,0)); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; pointer-events: none; }
.forge-o:hover { box-shadow: 0 0 0 8px rgba(255,0,0,.1), 0 20px 48px rgba(0,0,0,.55), inset 0 -8px 16px rgba(0,0,0,.4), inset 0 8px 16px rgba(255,255,255,.3); }
.forge-o:active, .forge-o.squish { transform: scale(.86) translateY(2px) !important; animation: none; box-shadow: 0 6px 16px rgba(255,0,0,.4), inset 0 -8px 16px rgba(0,0,0,.5) !important; }
.forge-o.bounce { animation: forge-o-bounce .6s cubic-bezier(.34,1.56,.64,1) 1; }
@keyframes forge-o-pulse { 0%,100% { box-shadow: 0 12px 28px rgba(0,0,0,.45), inset 0 -8px 16px rgba(0,0,0,.4), inset 0 8px 16px rgba(255,255,255,.3); } 50% { box-shadow: 0 12px 28px rgba(0,0,0,.45), inset 0 -8px 16px rgba(0,0,0,.4), inset 0 8px 16px rgba(255,255,255,.3), 0 0 0 14px rgba(255,0,0,.08); } }
@keyframes forge-o-bounce { 0%{transform:scale(.86)} 40%{transform:scale(1.15)} 70%{transform:scale(.96)} 100%{transform:scale(1)} }
.forge-particles { position: absolute; inset: -100%; width: 300%; height: 300%; pointer-events: none; z-index: 6; }
.forge-counter { margin-top: 26px; display: inline-flex; align-items: center; gap: 8px; font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 600; color: var(--paper); letter-spacing: .14em; text-transform: uppercase; background: rgba(36,36,40,.85); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border: 1px solid var(--line); border-radius: 999px; padding: 7px 16px; transition: border-color .15s ease, transform .2s ease; }
.forge-counter.bump { transform: scale(1.08); border-color: var(--red); }
.forge-counter .honk-num { color: var(--red); font-weight: 700; }
.forge-hint { margin-top: 10px; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--mute); letter-spacing: .12em; text-transform: uppercase; opacity: .6; transition: opacity .4s ease; }
.forge-hint.gone { opacity: 0; pointer-events: none; height: 0; margin: 0; overflow: hidden; }

/* ============================================================
   MOBILE RESPONSIVENESS — global safety + fixes (all pages)
   ============================================================ */
/* The mobile dropdown lives inside the fixed nav: cap its height and let it scroll. */
#fc-mobile-menu.fc-open {
  max-height: calc(100dvh - var(--fc-banner-h, 38px) - var(--fc-nav-h, 57px) - 6px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
/* Stop any element from forcing horizontal scroll on phones/tablets. */
html, body { max-width: 100%; }
@media (max-width: 1024px) {
  /* Media never forces horizontal scroll (max-width only, never alters height/aspect). */
  video, iframe { max-width: 100%; }
  .ft-bigwordmark img { max-width: 100%; }
}
@media (max-width: 767px) {
  html, body { overflow-x: clip; }
  .fc-nav-inner { padding: 12px 16px; }
  .fc-logo img { height: 26px; }
  #fc-island { gap: 7px; }
}

/* ============================================================
   MODERN 2026 LAYER — loaded site-wide via the shared chrome.
   Native cross-document View Transitions (smooth SPA-like nav on
   every page) + tasteful micro-interactions. Progressive
   enhancement; brand tokens unchanged; all motion reduced-motion gated.
   ============================================================ */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: fcVtOut 0.26s ease both; }
::view-transition-new(root) { animation: fcVtIn 0.34s cubic-bezier(.2,.8,.2,1) both; }
@keyframes fcVtOut { to { opacity: 0; transform: translateY(-6px) scale(0.995); } }
@keyframes fcVtIn { from { opacity: 0; transform: translateY(10px) scale(1.004); } }

/* Modern keyboard focus ring (a11y + polish) */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible,
input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
  border-radius: 6px;
}

/* Premium card feel — subtle lift + red glow on hover */
.card, .stat-card, .jcard, .cal-row, .fg-item, .tm-card {
  transition: transform .22s cubic-bezier(.2,.8,.2,1), border-color .22s ease, box-shadow .22s ease;
}
@media (hover: hover) {
  .card:hover, .stat-card:hover, .jcard:hover {
    transform: translateY(-4px);
    border-color: rgba(255,0,0,.42);
    box-shadow: 0 18px 42px rgba(0,0,0,.38), 0 0 0 1px rgba(255,0,0,.12);
  }
}

/* Button micro-interaction refinement (site-wide) */
.fc-btn-red, .btn-red, .fc-nav-cta {
  transition: transform .14s ease, box-shadow .2s ease, filter .2s ease;
}
.fc-btn-red:hover, .btn-red:hover, .fc-nav-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(255,0,0,.34);
  filter: saturate(1.06);
}
.fc-btn-red:active, .btn-red:active { transform: translateY(0); }

/* Smooth scrolling + anchor offset for the fixed chrome */
html { scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  html { scroll-behavior: auto; }
  .card, .stat-card, .jcard, .cal-row, .fg-item, .tm-card,
  .fc-btn-red, .btn-red, .fc-nav-cta { transition: none; }
  .card:hover, .stat-card:hover, .jcard:hover,
  .fc-btn-red:hover, .btn-red:hover, .fc-nav-cta:hover { transform: none; }
}

/* ============================================================
   A11Y — minimum tap targets (WCAG 2.5.8) for dense chrome links + icons.
   Increases the hit area via padding/min-size without changing visual design.
   ============================================================ */
#fc-footer .fc-social-row a { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; }
#fc-footer .fc-footer-list a { display: inline-block; padding: 5px 0; }
#fc-mobile-menu .fc-m-sub, #fc-mobile-menu .fc-acc a, #fc-mobile-menu > .fc-mobile-inner > a { min-height: 42px; display: flex; align-items: center; }
.fc-fab-row { min-height: 44px; }
#fc-nav .fc-nav-links > a { padding: 6px 2px; }
/* Announcement-banner CTA: 24px hit height inside the ~38px banner (was 12px), site-wide. */
#fc-banner-cta { display: inline-flex; align-items: center; min-height: 24px; padding: 0 3px; }
/* Form checkboxes/radios were 13px browser-default; nudge up for visibility + easier tapping. */
input[type="checkbox"], input[type="radio"] { min-width: 16px; min-height: 16px; }

/* ============================================================
   NAV + FOOTER PREMIUM POLISH (site-wide)
   ============================================================ */
/* Desktop nav links: animated underline + active indicator */
.fc-nav-links > a { position: relative; }
.fc-nav-links > a::after { content: ''; position: absolute; left: 2px; right: 100%; bottom: -5px; height: 2px; background: var(--red); border-radius: 2px; transition: right .26s cubic-bezier(.2,.8,.2,1); }
.fc-nav-links > a:hover::after, .fc-nav-links > a.fc-active::after { right: 2px; }

/* Footer: brand-red top accent, dot-marked headers, link underline slide, social hover fill */
#fc-footer { position: relative; }
#fc-footer::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, rgba(255,0,0,.7) 28%, rgba(255,0,0,.7) 72%, transparent); }
#fc-footer .fc-footer-col-h { position: relative; padding-left: 15px; }
#fc-footer .fc-footer-col-h::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 6px; height: 6px; border-radius: 50%; background: var(--red); box-shadow: 0 0 10px rgba(255,0,0,.6); }
#fc-footer .fc-footer-list a { position: relative; transition: color .18s ease, transform .18s ease; }
#fc-footer .fc-footer-list a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 1px; height: 1px; background: var(--red); transition: right .22s ease; }
#fc-footer .fc-footer-list a:hover { color: var(--paper); transform: translateX(3px); }
#fc-footer .fc-footer-list a:hover::after { right: 0; }
#fc-footer .fc-social-row a { transition: background .18s ease, transform .18s ease, border-color .18s ease, color .18s ease; }
#fc-footer .fc-social-row a:hover { background: var(--red); border-color: var(--red); color: #fff; transform: translateY(-3px); }
/* Focus-visible rings — a11y parity with the nav pass (footer links, social, FAB) */
#fc-footer .fc-footer-list a:focus-visible,
#fc-footer .fc-social-row a:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; border-radius: 6px; }
.fc-fab-btn:focus-visible { outline: 3px solid rgba(255,255,255,0.92); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  .fc-nav-links > a::after, #fc-footer .fc-footer-list a, #fc-footer .fc-footer-list a::after, #fc-footer .fc-social-row a { transition: none; }
}
