/* ==========================================================================
   D-Central footer v2 — E93 merged build (lane D)
   Target: wp-content/themes/d-central/assets/css/footer-v2.css

   Base and coordinate system: D2 "Map". Headings, the orange seam and the
   focus ring: D1 "Closing argument". Everything is namespaced .dcf-* and the
   root element does NOT carry .dc-footer, so nothing inherits theme.css's
   legacy six-column grid and nothing has to be reset.

   Rules this file keeps:
     · tokens only — every colour is var(--dc-*, fallback) or an intentional
       alpha overlay; no bare literal (D-J-ENG E-8)
     · no `transition: all` — it swallows visibility transitions
     · :focus-visible on every interactive element, outline-offset 3px
     · prefers-reduced-motion honoured
     · no vertical column dividers: J-VIS rejected rules drawn into the void
       under a short column, and the gap plus the group hairlines do the job
     · the decorative "/" is --dc-text-muted (>= 7:1 on #0A0A0A) and
       aria-hidden; D2's rgba(255,255,255,.145) measured 1.45:1
   ========================================================================== */

.dcf {
  /* Two hairline weights are the whole visual system: one for the drawn grid,
     one for band separations. */
  --dcf-rule: rgba(255, 255, 255, 0.085);
  --dcf-rule-2: rgba(255, 255, 255, 0.145);
  --dcf-pad: 16px;
  --dcf-gap: 30px;

  background-color: var(--dc-bg-terminal, #0A0A0A);
  color: var(--dc-text-secondary, #9CA3AF);
  font-family: var(--dc-font-body, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
  font-size: 13px;
  line-height: 1.45;
  border-top: 0;
  padding-top: 0;
  position: relative;
}

/* The signature seam: one code-drawn hairline, orange at the origin, fading to
   neutral. The only decoration in the component. */
.dcf::before {
  content: "";
  display: block;
  height: 1px;
  background: linear-gradient(90deg,
    rgba(255, 110, 0, 0.75) 0%,
    rgba(255, 110, 0, 0.30) 26%,
    rgba(255, 255, 255, 0.14) 62%,
    rgba(255, 255, 255, 0.06) 100%);
}

/* The anchor default is wrapped in :where() so it carries ZERO specificity and
   loses to every component rule below it.
   As written first — `.dcf a { color: inherit }` — this selector was (0,1,1) and
   beat `.dcf-btn` (0,1,0): the footer's one filled accent object rendered
   --dc-text-secondary on --dc-accent, measured at 1.11:1. The same defect was
   quietly demoting .dcf-ghost, .dcf-chip, .dcf-more and the linked stat values
   from primary ink to secondary. A zero-specificity default is the fix; the
   belt-and-braces rules further down also out-rank a `.dc-footer a` (0,1,1)
   coming from theme.min.css, in case this <footer> ever carries both classes. */
.dcf a { text-decoration: none; }
:where(.dcf) a { color: inherit; }

.dcf a:focus-visible,
.dcf summary:focus-visible,
.dcf button:focus-visible,
.dcf input:focus-visible {
  outline: 2px solid var(--dc-accent, #FF6E00);
  outline-offset: 3px;
  border-radius: 2px;
}

/* One shared mono label — the only uppercase small type in the footer. */
.dcf-lbl {
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--dc-text-muted, #8A91A0);
  margin: 0;
}

.dcf-band { padding-block: var(--dcf-pad); }
.dcf-band + .dcf-band { border-top: 1px solid var(--dcf-rule); }

/* Band head: label left, "more" link right, a hairline filling the gap. */
.dcf-band__head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 10px;
}
.dcf-band__head::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--dcf-rule);
  order: 1;
}
.dcf-band__head .dcf-more { order: 2; }

.dcf-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: none;
  min-height: 24px;
  padding-block: 3px;
  font-size: 12.5px;
  color: var(--dc-text-primary, #F0F0F0);
  transition: color 150ms ease;
}
.dcf-more:hover { color: var(--dc-accent, #FF6E00); }
.dcf-more svg { width: 14px; height: 14px; flex: none; }

/* ── Band 1 · the closing argument ───────────────────────────────────────── */

.dcf-mission {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  gap: 26px var(--dcf-gap);
  align-items: start;
}

.dcf-mission__say {
  position: relative;
  padding-left: clamp(14px, 1.8vw, 26px);
}
/* The rule brackets the WHOLE block — J-VIS: D1's stopped level with the third
   stat and left the bottom of the masthead outside it. */
.dcf-mission__say::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  bottom: 2px;
  width: 3px;
  background: linear-gradient(180deg, var(--dc-accent, #FF6E00) 0%, rgba(255, 110, 0, 0.08) 100%);
}

.dcf-mission__eyebrow { margin-bottom: 14px; }

.dcf-statement {
  font-family: var(--dc-font-heading, 'Barlow Condensed', 'Arial Narrow', sans-serif);
  font-weight: 700;
  font-size: clamp(26px, 2.9vw, 37px);
  line-height: 1.04;
  letter-spacing: -0.005em;
  color: var(--dc-text-primary, #F0F0F0);
  max-width: 22ch;
  margin: 0;
  text-wrap: balance;
}
.dcf-statement b { color: var(--dc-accent, #FF6E00); font-weight: inherit; }

.dcf-mission__sub {
  margin: 12px 0 0;
  max-width: 54ch;
  line-height: 1.6;
}

.dcf-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 20px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.dcf-stat { min-width: 0; }
.dcf-stat__v {
  display: block;
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
  color: var(--dc-text-primary, #F0F0F0);
}
.dcf-stat__v--word { font-size: 19px; }
a.dcf-stat__v {
  display: inline-block;
  min-height: 24px;
  transition: color 150ms ease;
}
a.dcf-stat__v:hover { color: var(--dc-accent, #FF6E00); }
.dcf-stat__l {
  display: block;
  margin-top: 5px;
  font-size: 10px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--dc-text-muted, #8A91A0);
}

.dcf-confidence {
  margin: 14px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--dcf-rule);
  font-size: 13px;
  line-height: 1.5;
  color: var(--dc-text-secondary, #9CA3AF);
}

/* ── Band 2 · the seven layers ───────────────────────────────────────────── */

.dcf-rail__list {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 1px;
  background: var(--dcf-rule);
  border: 1px solid var(--dcf-rule);
  list-style: none;
  margin: 0;
  padding: 0;
}
.dcf-rail__list > li { background: var(--dc-bg-terminal, #0A0A0A); }

.dcf-layer {
  position: relative;
  display: block;
  height: 100%;
  min-height: 56px;
  padding: 8px 10px 9px;
  transition: background-color 150ms ease;
}
/* The orange tick: a scale mark, not a border. */
.dcf-layer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 2px;
  width: 16px;
  background: var(--dc-accent, #FF6E00);
  opacity: 0.45;
  transition: width 260ms ease, opacity 260ms ease;
}
.dcf-layer:hover,
.dcf-layer:focus-visible { background: rgba(255, 255, 255, 0.028); }
.dcf-layer:hover::before,
.dcf-layer:focus-visible::before { width: 100%; opacity: 1; }

.dcf-layer__n {
  display: block;
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 10px;
  letter-spacing: 0.09em;
  color: var(--dc-text-muted, #8A91A0);
}
  .dcf-layer__code {
  display: block;
  margin-top: 3px;
  font-family: var(--dc-font-heading, 'Barlow Condensed', sans-serif);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--dc-text-primary, #F0F0F0);
  transition: color 150ms ease;
}
.dcf-layer:hover .dcf-layer__code { color: var(--dc-accent, #FF6E00); }
.dcf-layer__name {
  display: block;
  margin-top: 2px;
  font-size: 10.5px;
  line-height: 1.28;
  color: var(--dc-text-muted, #8A91A0);
}

/* ── Band 3 · the DCENT suite ledger ─────────────────────────────────────── */

.dcf-ledger {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--dcf-gap);
  list-style: none;
  margin: 0;
  padding: 0;
}

/* A register, not a badge wall: name, clarifier, status, one hairline between
   each. No pills, no box (J-VIS: the bordered card was the biggest gap in the
   lane). */
.dcf-row {
  display: grid;
  /* A fixed name column, not auto: with auto, each row is its own grid and the
     clarifiers start at a different x on every line — a ledger has to line up. */
  grid-template-columns: 140px minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 3px 14px;
  padding-block: 6px;
  min-height: 24px;
  border-bottom: 1px solid var(--dcf-rule);
  transition: border-color 150ms ease;
}
.dcf-row:hover { border-bottom-color: var(--dc-accent-border, rgba(255, 110, 0, 0.3)); }

.dcf-row__n {
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 12.5px;
  color: var(--dc-text-primary, #F0F0F0);
  white-space: nowrap;
  transition: color 150ms ease;
}
.dcf-row:hover .dcf-row__n { color: var(--dc-accent, #FF6E00); }

.dcf-row__c {
  font-size: 11.5px;
  line-height: 1.35;
  color: var(--dc-text-muted, #8A91A0);
}

/* The status WORD carries the meaning; two tones only, so nothing depends on
   hue and the single filled accent object in the footer stays the fund button.
   now = public today · soon = not public yet. */
.dcf-row__s {
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
  justify-self: end;
}
.dcf-row__s--now  { color: var(--dc-text-primary, #F0F0F0); }
.dcf-row__s--soon { color: var(--dc-accent, #FF6E00); }

.dcf-note {
  margin: 12px 0 0;
  max-width: 96ch;
  font-size: 11.5px;
  line-height: 1.55;
  color: var(--dc-text-muted, #8A91A0);
}

/* ── Band 4 · the two actions ────────────────────────────────────────────── */

.dcf-band--acts {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--dcf-gap);
}
.dcf-act--news {
  border-left: 1px solid var(--dcf-rule);
  padding-left: var(--dcf-gap);
}

.dcf-act__h {
  margin: 0 0 6px;
  font-family: var(--dc-font-heading, 'Barlow Condensed', sans-serif);
  font-size: 21px;
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: 0.01em;
  color: var(--dc-text-primary, #F0F0F0);
}
.dcf-act__p {
  margin: 0 0 12px;
  max-width: 52ch;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--dc-text-muted, #8A91A0);
}

.dcf-act__cta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 18px;
}

/* The ONE filled accent object in the whole footer. */
.dcf-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 11px 18px;
  min-height: 44px;
  background: var(--dc-accent, #FF6E00);
  color: var(--dc-bg-primary, #0D0D0D);
  font-family: var(--dc-font-heading, 'Barlow Condensed', sans-serif);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border-radius: 4px;
  transition: background-color 150ms ease, box-shadow 150ms ease;
}
.dcf-btn:hover {
  background: var(--dc-accent-hover, #FF8A2E);
  box-shadow: 0 0 20px rgba(255, 110, 0, 0.2);
}

/* Ink on the accent objects, pinned above `.dcf a` (0,1,1) and above a
   `.dc-footer a` rule (0,1,1) if this element ever carries the legacy class.
   --dc-text-inverse is not in the design system's token list, so the ink is
   --dc-bg-primary: #0D0D0D on #FF6E00 = 7.05:1, and 8.4:1 on the hover tint. */
.dcf a.dcf-btn,
.dcf a.dcf-btn:visited,
.dcf a.dcf-btn:hover,
.dcf a.dcf-btn:focus-visible { color: var(--dc-bg-primary, #0D0D0D); }

.dcf a.dcf-ghost,
.dcf a.dcf-ghost:visited,
.dcf a.dcf-chip,
.dcf a.dcf-chip:visited,
.dcf a.dcf-more,
.dcf a.dcf-more:visited,
.dcf a.dcf-stat__v,
.dcf a.dcf-stat__v:visited { color: var(--dc-text-primary, #F0F0F0); }

.dcf a.dcf-ghost:hover,
.dcf a.dcf-chip:hover,
.dcf a.dcf-more:hover,
.dcf a.dcf-stat__v:hover { color: var(--dc-accent, #FF6E00); }
.dcf-btn svg { width: 14px; height: 14px; flex: none; }

.dcf-ghost {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 8px 0;
  font-size: 13px;
  color: var(--dc-text-primary, #F0F0F0);
  text-decoration: underline;
  text-decoration-color: var(--dcf-rule-2);
  text-underline-offset: 4px;
  transition: color 150ms ease, text-decoration-color 150ms ease;
}
.dcf-ghost:hover { color: var(--dc-accent, #FF6E00); text-decoration-color: currentColor; }
.dcf-ghost svg { width: 14px; height: 14px; flex: none; }

/* The owner's own sentence: body size, secondary ink — not 12 px muted. */
.dcf-best {
  margin: 12px 0 0;
  max-width: 46ch;
  font-size: 14px;
  line-height: 1.5;
  color: var(--dc-text-secondary, #9CA3AF);
}

.dcf-news__form { display: flex; gap: 8px; margin: 0; }
.dcf-news__form input {
  flex: 1;
  min-width: 0;
  min-height: 44px;
  padding: 10px 13px;
  font-family: inherit;
  font-size: 13px;
  color: var(--dc-text-primary, #F0F0F0);
  background-color: var(--dc-bg-input, #151520);
  border: 1px solid var(--dc-border-control, #6C717D);
  border-radius: 4px;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}
.dcf-news__form input::placeholder { color: var(--dc-text-muted, #8A91A0); }
.dcf-news__form input:focus {
  outline: none;
  border-color: var(--dc-accent, #FF6E00);
  box-shadow: 0 0 0 2px rgba(255, 110, 0, 0.15);
}
.dcf-news__form button {
  min-height: 44px;
  padding: 10px 20px;
  font-family: var(--dc-font-heading, 'Barlow Condensed', sans-serif);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--dc-text-primary, #F0F0F0);
  background: transparent;
  border: 1px solid var(--dc-border-control, #6C717D);
  border-radius: 4px;
  cursor: pointer;
  white-space: nowrap;
  transition: border-color 150ms ease, color 150ms ease, background-color 150ms ease;
}
.dcf-news__form button:hover {
  color: var(--dc-accent, #FF6E00);
  border-color: var(--dc-accent, #FF6E00);
  background-color: rgba(255, 110, 0, 0.06);
}
.dcf-news__msg { margin-top: 8px; font-size: 12.5px; }
.dcf-fine {
  margin: 10px 0 0;
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 10px;
  color: var(--dc-text-muted, #8A91A0);
}

/* ── Band 5 · the map ────────────────────────────────────────────────────── */

.dcf-map__head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 0 0 12px;
}
.dcf-map__head p { margin: 0; font-size: 12px; color: var(--dc-text-muted, #8A91A0); }

/* The mobile money row. Hidden above 768 px, where the map itself is open and
   every one of these targets is one click away in a column. */
.dcf-chips { display: none; }

.dcf-map__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  column-gap: 26px;
}

.dcf-col { min-width: 0; }

.dcf-col__sum {
  display: flex;
  align-items: center;
  gap: 12px;
  list-style: none;
  cursor: pointer;
  color: var(--dc-text-primary, #F0F0F0);
}
.dcf-col__sum::-webkit-details-marker { display: none; }

.dcf-col__title {
  flex: 1;
  margin: 0;
  font-family: var(--dc-font-heading, 'Barlow Condensed', sans-serif);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: inherit;
}
.dcf-col__n {
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  color: var(--dc-text-muted, #8A91A0);
}
.dcf-col__sum svg {
  width: 16px;
  height: 16px;
  flex: none;
  color: var(--dc-text-muted, #8A91A0);
  transition: transform 200ms ease;
}
.dcf-col[open] > .dcf-col__sum svg { transform: rotate(180deg); }

.dcf-grp + .dcf-grp { margin-top: 13px; }
.dcf-grp__label { display: flex; align-items: center; gap: 9px; margin: 0 0 5px; }
.dcf-grp__label::after { content: ""; flex: 1; height: 1px; background: var(--dcf-rule); }

.dcf-grp__list { list-style: none; margin: 0; padding: 0; }
.dcf-grp__list a {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  min-height: 24px;
  padding-block: 3px;
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--dc-text-muted, #8A91A0);
  transition: color 150ms ease;
}
.dcf-grp__list a:hover { color: var(--dc-accent, #FF6E00); }
/* The first row of every group is that group's front door. */
.dcf-grp__list > li:first-child > a { color: var(--dc-text-primary, #F0F0F0); font-weight: 500; }

.dcf-n {
  flex: none;
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  color: var(--dc-text-muted, #8A91A0);
}

.dcf-grp__note {
  margin: 7px 0 0;
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 10px;
  line-height: 1.55;
  color: var(--dc-text-muted, #8A91A0);
}

/* ── Band 6 · payments and contact ───────────────────────────────────────── */

.dcf-band--base {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: 18px var(--dcf-gap);
  align-items: start;
}

.dcf-order { display: flex; flex-direction: column; gap: 10px; }
.dcf-pay { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; }

/* "Your order": account and checkout beside the payment methods, where a
   reader who has scrolled past the header cart will look for them. */
.dcf-orderlinks {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 2px 14px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.dcf-orderlinks a {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  font-size: 12px;
  color: var(--dc-text-muted, #8A91A0);
  transition: color 150ms ease;
}
.dcf-orderlinks a:hover { color: var(--dc-accent, #FF6E00); }
.dcf-pay__btc {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 4px 10px;
  min-height: 26px;
  border: 1px solid var(--dcf-rule-2);
  border-radius: 3px;
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 11px;
  color: var(--dc-text-secondary, #9CA3AF);
  transition: border-color 150ms ease, color 150ms ease;
}
.dcf-pay__btc:hover { color: var(--dc-accent, #FF6E00); border-color: var(--dc-accent-border, rgba(255, 110, 0, 0.3)); }
.dcf-pay__mark { color: var(--dc-accent, #FF6E00); font-size: 13px; line-height: 1; }
/* Plain text, not a fourth badge shape (J-VIS: the footer stopped repeating it). */
.dcf-pay__cards {
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 11px;
  color: var(--dc-text-muted, #8A91A0);
}

.dcf-talk > .dcf-lbl { margin-bottom: 8px; }
.dcf-contact { font-style: normal; display: block; }
.dcf-contact__row { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; }
.dcf-contact__row a {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 12.5px;
  color: var(--dc-text-primary, #F0F0F0);
  transition: color 150ms ease;
}
.dcf-contact__row a:hover { color: var(--dc-accent, #FF6E00); }
.dcf-sep { color: var(--dc-text-muted, #8A91A0); }
.dcf-contact__meta {
  display: block;
  margin-top: 4px;
  font-size: 11.5px;
  color: var(--dc-text-muted, #8A91A0);
}

.dcf-support {
  margin: 12px 0 0;
  max-width: 76ch;
  font-size: 11.5px;
  line-height: 1.55;
  color: var(--dc-text-muted, #8A91A0);
}
.dcf-support__t {
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--dc-text-secondary, #9CA3AF);
  margin-right: 8px;
}
.dcf-support a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 24px;
  color: var(--dc-text-secondary, #9CA3AF);
  text-decoration: underline;
  text-decoration-color: var(--dcf-rule-2);
  text-underline-offset: 3px;
  transition: color 150ms ease, text-decoration-color 150ms ease;
}
.dcf-support a:hover { color: var(--dc-accent, #FF6E00); text-decoration-color: currentColor; }
.dcf-support a svg { width: 12px; height: 12px; }

/* ── Band 7 · legal, credits, sign-off ───────────────────────────────────── */

.dcf-legal {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px 24px;
}
.dcf-legal__left { min-width: 0; flex: 1 1 40ch; }
.dcf-legal__copy {
  margin: 0;
  font-size: 11.5px;
  line-height: 1.5;
  max-width: 68ch;
  color: var(--dc-text-muted, #8A91A0);
}
.dcf-legal__copy b { color: var(--dc-text-secondary, #9CA3AF); font-weight: 500; }

.dcf-legal__links {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 16px;
  list-style: none;
  margin: 6px 0 0;
  padding: 0;
}
.dcf-legal__links a {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  font-size: 11.5px;
  color: var(--dc-text-muted, #8A91A0);
  transition: color 150ms ease;
}
.dcf-legal__links a:hover { color: var(--dc-accent, #FF6E00); }

.dcf-end { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

.dcf-lang {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  height: 32px;
  border: 1px solid var(--dc-border-control, #6C717D);
  border-radius: 999px;
  font-family: var(--dc-font-mono, 'JetBrains Mono', monospace);
  font-size: 11px;
  letter-spacing: 0.05em;
  color: var(--dc-text-secondary, #9CA3AF);
  transition: border-color 150ms ease, color 150ms ease;
}
.dcf-lang:hover { color: var(--dc-accent, #FF6E00); border-color: var(--dc-accent, #FF6E00); }
.dcf-lang svg { width: 13px; height: 13px; }

.dcf-social { display: flex; gap: 8px; }
.dcf-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--dcf-rule-2);
  border-radius: 3px;
  color: var(--dc-text-muted, #8A91A0);
  transition: color 150ms ease, border-color 150ms ease;
}
.dcf-social a:hover { color: var(--dc-accent, #FF6E00); border-color: var(--dc-accent-border, rgba(255, 110, 0, 0.3)); }
.dcf-social svg { width: 15px; height: 15px; fill: currentColor; }

/* The coda: one liberator line, with the shoulders-of-giants paragraph beside
   it. Two columns rather than two stacked blocks — that is ~70 px of footer and
   it stops the credits reading as a separate band. */
.dcf-coda {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
  gap: 14px var(--dcf-gap);
  align-items: start;
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid var(--dcf-rule);
}
/* Front page: the sign-off is suppressed (the homepage carries it), so the
   credits take the full width instead of leaving a hole. */
.dcf-coda--solo { grid-template-columns: minmax(0, 1fr); }

.dcf-credit__body {
  margin: 0;
  max-width: 96ch;
  font-size: 11.5px;
  line-height: 1.6;
  color: var(--dc-text-muted, #8A91A0);
}
.dcf-signoff {
  position: relative;
  margin: 0;
  padding-left: 24px;
  font-family: var(--dc-font-heading, 'Barlow Condensed', sans-serif);
  font-size: clamp(18px, 1.7vw, 23px);
  font-weight: 700;
  line-height: 1.14;
  letter-spacing: 0.005em;
  color: var(--dc-text-primary, #F0F0F0);
  max-width: 30ch;
}
/* The orange tick — the same scale mark the layer cells carry. */
.dcf-signoff::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  width: 14px;
  height: 2px;
  background: var(--dc-accent, #FF6E00);
}

/* ══ Desktop: the map columns are open lists, the summary is their heading ══
   Two independent mechanisms open a closed <details> above 769 px:
     · display:block on the body   — engines that hide children with display:none
     · ::details-content           — Chrome 131+ / Safari 18.4+ / Firefox 139+,
                                     which use content-visibility instead
   The <summary> is NOT hidden — it is restyled into the column's <h3>. That is
   what makes the failure mode survivable: an engine supporting neither rule
   still shows five named, counted, working accordions instead of D2's blank
   band (D-J-ENG E-3), and the footer keeps its ten headings (E-4).
   pointer-events is dropped only where ::details-content is supported, i.e.
   only where toggling would be a visual no-op. */
@media (min-width: 769px) {
  .dcf-col > .dcf-col__body { display: block; }
  .dcf-col::details-content { content-visibility: visible; block-size: auto; }

  .dcf-col__sum { padding-block: 0 10px; }
  .dcf-col__n,
  .dcf-col__sum svg { display: none; }

  @supports selector(::details-content) {
    .dcf-col__sum { cursor: default; pointer-events: none; }
  }
}

/* ── 1025–1180: five columns, tighter gutters ────────────────────────────── */
@media (max-width: 1180px) {
  .dcf { --dcf-gap: 22px; }
  .dcf-map__grid { column-gap: 18px; }
  .dcf-rail__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ── 769–1024: three open columns; the mission and actions stack ─────────── */
@media (max-width: 1024px) {
  .dcf-map__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 22px; }
  .dcf-mission { grid-template-columns: minmax(0, 1fr); }
  .dcf-statement { max-width: 26ch; }
}

@media (max-width: 900px) {
  .dcf-band--acts { grid-template-columns: minmax(0, 1fr); }
  .dcf-act--news { border-left: 0; padding-left: 0; border-top: 1px solid var(--dcf-rule); padding-top: 20px; }
  .dcf-band--base { grid-template-columns: minmax(0, 1fr); }
  .dcf-ledger { grid-template-columns: minmax(0, 1fr); }
  .dcf-coda { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}

/* ── Phones: the chip row, then the accordion ────────────────────────────── */
@media (max-width: 768px) {
  .dcf { font-size: 14px; --dcf-pad: 14px; }

  .dcf-rail__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* Seven cells in two columns leave one hole; GROUND takes the full width
     rather than advertising a gap in a drawn grid. */
  .dcf-rail__list > li:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .dcf-layer { min-height: 54px; }

  .dcf-row { grid-template-columns: minmax(0, 1fr) auto; padding-block: 9px; }
  .dcf-row__c { grid-column: 1 / -1; }

  .dcf-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
  }
  .dcf-chip {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid var(--dc-border-control, #6C717D);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
    color: var(--dc-text-primary, #F0F0F0);
    transition: border-color 150ms ease, color 150ms ease, background-color 150ms ease;
  }
  .dcf-chip:hover {
    color: var(--dc-accent, #FF6E00);
    border-color: var(--dc-accent, #FF6E00);
    background-color: rgba(255, 110, 0, 0.06);
  }

  .dcf-map__grid { display: block; }
  .dcf-col { border-top: 1px solid var(--dcf-rule); }
  .dcf-col__sum { min-height: 48px; padding-block: 12px; }
  .dcf-col__body { padding-bottom: 16px; }
  .dcf-grp__list a { min-height: 34px; padding-block: 7px; }

  .dcf-news__form { flex-direction: column; }
  .dcf-news__form button { min-height: 48px; }

  /* At 342 px of content width the long canon paragraphs are what the footer is
     made of; one step down in size on the three longest keeps them readable and
     takes ~90 px off the phone. */
  .dcf-mission__sub { font-size: 13px; }
  .dcf-row { padding-block: 5px; }
  .dcf-row__c { font-size: 11px; line-height: 1.3; }
  .dcf-note { font-size: 11px; line-height: 1.5; }
  .dcf-layer { min-height: 50px; }
  .dcf-layer__name { font-size: 10px; line-height: 1.25; }
  .dcf-credit__body { font-size: 11px; line-height: 1.55; }
  .dcf-stats { gap: 10px 16px; }
  .dcf-legal__links { gap: 0 14px; }

  .dcf-legal { flex-direction: column; }
  .dcf-end { width: 100%; justify-content: space-between; }
  .dcf-signoff { max-width: none; }
}

@media (max-width: 380px) {
  .dcf-rail__list { grid-template-columns: minmax(0, 1fr); }
  .dcf-stats { grid-template-columns: minmax(0, 1fr); }
}

/* ── Reduced motion ──────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .dcf *,
  .dcf *::before,
  .dcf *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
