/* Shared campaign-page structure. Keep the background visible before actions;
   campaign-specific evidence, tasks and correspondence stay in each page. */
.campaign-page .hero-grid{align-items:start;gap:32px;margin-top:24px}
.campaign-page .campaign-graphic{display:block;border-radius:5px}
.campaign-page .campaign-graphic img{display:block;width:100%;height:auto;border-radius:5px}
.campaign-page .campaign-status{margin-top:12px;color:var(--ink-2);font-size:.85em;line-height:1.6}
.campaign-page .campaign-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:20px}
.campaign-page .campaign-jumps{border-top:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2);padding:10px 0;gap:4px 24px}
.campaign-page .campaign-jumps a{font-size:.85em;min-height:44px;padding:10px 0;text-underline-offset:.2em}
.campaign-page .campaign-background{max-width:66ch}
.campaign-page .campaign-background h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:1.15em;line-height:1.25;margin:24px 0 10px}
.campaign-page .campaign-background p+p{margin-top:16px}
.campaign-page .campaign-targets{max-width:66ch;margin-top:18px}
.campaign-page .status{background:var(--raise);border:2px solid var(--rule);border-radius:6px;padding:24px;box-shadow:0 2px 0 var(--shadow)}
.campaign-page .row{grid-template-columns:36px minmax(0,1fr) 210px;gap:18px;padding:24px 0}
.campaign-page .idx{font-size:.8em}
.campaign-page .ask{font-size:1em;max-width:62ch}
.campaign-page .chip{font-size:.65em;white-space:normal}
.campaign-page .campaign-next{max-width:70ch;margin-top:28px;padding:24px;background:var(--raise);border:2px solid var(--rule);border-radius:6px}
.campaign-page .campaign-next h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:1.25em;line-height:1.2;margin-bottom:12px}
.campaign-page .campaign-next p{font-size:.9em;color:var(--ink-2)}
.campaign-page section[id],.campaign-page .campaign-next[id],.campaign-page .action-card[id]{scroll-margin-top:86px}
@media(max-width:900px){
  .campaign-page .hero-grid{gap:22px}
  /* Put the explanation and quick action before the graphic on phones. */
  .campaign-page .hero-grid>.campaign-graphic{order:0}
}
@media(max-width:840px){
  .campaign-page .row{grid-template-columns:28px minmax(0,1fr);gap:12px}
  .campaign-page .row>div:last-child{grid-column:2}
}
@media(max-width:700px){
  .campaign-page .hero-grid{margin-top:18px}
  .campaign-page .status,.campaign-page .campaign-next{padding:20px}
  .campaign-page .campaign-jumps{column-gap:20px}
}

/* ── At a glance (Oct 2026) ───────────────────────────────
   Summary box under each campaign H1. Stage, pill and the
   "Updated" date are filled from campaigns.js, so the page
   and the homepage tracker always agree. */
.campaign-page .glance{margin-top:22px;background:var(--raise);border:1px solid var(--rule-2);border-radius:10px;padding:20px 22px;display:grid;gap:14px}
.campaign-page .glance dl{display:grid;gap:14px;margin:0}
.campaign-page .glance dl>div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:4px 16px;align-items:baseline}
@media(max-width:560px){.campaign-page .glance dl>div{grid-template-columns:minmax(0,1fr)}}
.campaign-page .glance dt{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:0.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.campaign-page .glance dd{margin:0;font-size:.85em;line-height:1.55;color:var(--ink)}
.campaign-page .glance-goals ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px}
.campaign-page .glance-goals li{list-style:none;margin:0;padding:0}
.campaign-page .glance .glance-ask dd{font-weight:600}
.campaign-page .glance-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding-top:12px;border-top:1px solid var(--rule-2);margin:0}
.cp-steps{list-style:none;margin:0;padding:4px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;max-width:420px}
.cp-steps li{display:grid;gap:6px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:0.71875rem;letter-spacing:.03em;color:var(--ink-2);min-width:0}
.cp-steps li::before{content:"";height:6px;border-radius:3px;background:var(--sunk)}
.cp-steps li.done::before,.cp-steps li.now::before{background:var(--blue)}
.cp-steps li.now{color:var(--ink);font-weight:700}

.cp-pill{display:inline-flex;align-items:center;gap:8px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:0.78125rem;font-weight:700;padding:4px 11px;border-radius:999px}
.cp-pill i{width:7px;height:7px;border-radius:50%;background:currentColor}
.cp-pill.live{background:color-mix(in srgb,var(--live) 16%,transparent);color:var(--live)}
.cp-pill.pend{background:color-mix(in srgb,var(--pend) 18%,transparent);color:var(--pend)}
.cp-pill.done{background:color-mix(in srgb,var(--done) 16%,transparent);color:var(--done)}
.cp-updated{font-size:0.875rem;color:var(--ink-2)}

/* ── Sticky jump bar ──────────────────────────────────────
   Sits under the 66px masthead. One scrolling row on phones. */
.jumpbar{position:sticky;top:68px;z-index:40;background:var(--paper);border-top:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2)}
.campaign-page .jumpbar .campaign-jumps{display:flex;flex-wrap:wrap;gap:0 22px;margin:0 auto;padding:0 24px;border:0}
.campaign-page .jumpbar .campaign-jumps a{text-decoration:none;color:var(--ink-2);min-height:44px;padding:11px 0;border-bottom:2px solid transparent;white-space:nowrap}
.campaign-page .jumpbar .campaign-jumps a:hover{color:var(--ink)}
.campaign-page .jumpbar .campaign-jumps a[aria-current]{color:var(--ink);border-bottom-color:var(--blue)}
@media(max-width:900px){.campaign-page .jumpbar .campaign-jumps{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.campaign-page .jumpbar .campaign-jumps::-webkit-scrollbar{display:none}}
.campaign-page section[id],.campaign-page .draft-block[id]{scroll-margin-top:124px}

/* ── Asks: what is still open, visible without expanding ── */
.campaign-page .ask-open{margin-top:10px;font-size:.9em;line-height:1.55;color:var(--ink)}
.campaign-page .ask-open b{color:var(--pend)}

/* ── Drafts and review tasks, folded ──────────────────────── */
.drafts-fold{margin-top:8px;border:1px solid var(--rule-2);border-radius:10px;background:var(--raise)}
.drafts-fold>summary{cursor:pointer;list-style:none;padding:16px 20px;font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:800;font-size:1em;color:var(--link)}
.drafts-fold>summary::-webkit-details-marker{display:none}
.drafts-fold>summary::before{content:"+";display:inline-block;width:1.2em;font-family:"JetBrains Mono",ui-monospace,monospace}
.drafts-fold[open]>summary::before{content:"\2212"}
.drafts-fold[open]>summary{border-bottom:1px solid var(--rule-2)}
.drafts-fold .draft-block{padding:28px 20px;border-top:1px solid var(--rule-2)}
.drafts-fold .draft-block:first-of-type{border-top:0}

/* Compact FALCON facts, before the campaign actions. */
.campaign-proof{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0}
.campaign-proof__card{display:flex;flex-direction:column;gap:8px;min-width:0;padding:16px;border:1px solid var(--rule-2);border-radius:8px;background:var(--raise);color:var(--ink);text-decoration:none}
.campaign-proof__card strong{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:1.375rem;line-height:1.15;font-weight:800;font-variant-numeric:tabular-nums}
.campaign-proof__card span,.campaign-proof__card small{font-size:.875rem;line-height:1.45;color:var(--ink-2)}
.campaign-proof__card:hover{border-color:var(--link)}
.campaign-proof__card:focus-visible{outline:3px solid var(--link);outline-offset:4px}
@media(max-width:639px){.campaign-proof{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.campaign-proof__card{padding:14px}}

.falcon-banners{max-width:760px;margin:24px 0}
.campaign-page .falcon-banners__images{display:grid;aspect-ratio:16/9;background:var(--sunk);overflow:hidden}
.campaign-page .falcon-banners__images img{grid-area:1/1;width:100%;height:100%;object-fit:contain}
.falcon-banners__controls{display:flex;align-items:center;flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:.875rem;color:var(--ink-2)}
.falcon-banners__controls[hidden]{display:none}
.falcon-banners__controls button{font:inherit;color:var(--link);background:none;border:0;padding:8px 0;min-height:44px;text-decoration:underline;cursor:pointer}
.campaign-page .falcon-banners__images img[hidden]{display:none}

/* Keep campaign purpose connected to the shared goals. */
.campaign-goal-links{margin:22px 0 24px}
.campaign-goal-links p{font-size:.875rem;font-weight:700;color:var(--ink-2);margin-bottom:8px}
.campaign-goal-links ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.campaign-goal-links a{display:inline-flex;align-items:center;min-height:44px;padding:8px 12px;border:1px solid var(--rule-2);border-radius:8px;font-size:.875rem;line-height:1.5;color:var(--link);text-underline-offset:3px;max-width:100%}

.care-explainer h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:1.375rem;line-height:1.3;margin:28px 0 18px}.care-outcomes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.care-outcomes article{border-top:3px solid var(--link);padding-top:20px;min-width:0}.care-outcomes h4{font-size:1.125rem;line-height:1.4;margin:0 0 12px}.care-outcomes p{font-size:1rem;color:var(--ink-2);line-height:1.7}.care-explainer .care-explainer-note{margin-top:24px}@media(max-width:900px){.care-outcomes{grid-template-columns:1fr;gap:24px}}

/* Campaign introduction, one still graphic, then the primary action. */
.campaign-page .campaign-hero-graphic{max-width:600px;margin:20px 0 0}
.campaign-page .hero .campaign-buttons{margin:16px 0 24px}
@media(max-width:600px){.campaign-page .campaign-hero-graphic{max-width:380px;margin-top:16px}}

/* Shared campaign status badge, including wrapping on narrow screens. */
.campaign-page .hero .kicker .mono{font-size:.75rem;line-height:1.5}
.campaign-page .hero .kicker{max-width:100%}
