/* ==========================================================================
   crm-core.css — public front-end layer
   Remembrance & readiness site · contribution/pledge chrome is UI only
   ========================================================================== */
:root {
  --crm-ink: #0f2533;
  --crm-river: #1d4e6b;
  --crm-river-2: #2f6f8f;
  --crm-paper: #f5f7f6;
  --crm-paper-2: #e8eef0;
  --crm-rule: #c6d2d8;
  --crm-muted: #5a6a73;
  --crm-signal: #d9531e;
  --crm-signal-dark: #a63c12;
  --crm-moss: #47693f;
  --crm-serif: "Newsreader", Georgia, "Times New Roman", serif;
  --crm-label: "Barlow Condensed", "Arial Narrow", sans-serif;
  --crm-measure: 40rem;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--crm-paper);
  color: var(--crm-ink);
  font-family: var(--crm-serif);
  font-size: 1.125rem;
  line-height: 1.68;
  overflow-x: clip;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--crm-river); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--crm-signal-dark); }
h1, h2, h3, h4 { font-family: var(--crm-serif); line-height: 1.15; font-weight: 700; letter-spacing: -.01em; }
.crm-skip { position: absolute; left: -999px; top: 0; background: var(--crm-ink); color: #fff; padding: .6rem 1rem; z-index: 99; }
.crm-skip:focus { left: 1rem; }
.visually-hidden, .crm-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---- banner (crm-style contribution strip) ---- */
.crm-banner { background: var(--crm-ink); color: #e9f1f4; font-family: var(--crm-label); font-size: 1rem; letter-spacing: .02em; }
.crm-banner__inner { max-width: 72rem; margin: 0 auto; padding: .55rem 1rem; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.crm-banner__label { background: var(--crm-signal); color: #fff; text-transform: uppercase; font-weight: 700; padding: .1rem .55rem; letter-spacing: .12em; font-size: .85rem; }
.crm-banner__text { flex: 1 1 22rem; }
.crm-banner__close { background: none; border: 0; color: inherit; font-size: 1.5rem; line-height: 1; cursor: pointer; padding: 0 .25rem; }
.crm-banner.is-dismissed { display: none; }

/* ---- buttons ---- */
.crm-button { display: inline-block; font-family: var(--crm-label); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: .95rem; padding: .55rem 1.1rem .45rem; border: 2px solid currentColor; text-decoration: none; cursor: pointer; background: transparent; color: var(--crm-river); }
.crm-button--pledge { background: var(--crm-signal); color: #fff; border-color: var(--crm-signal); border-bottom: 4px solid var(--crm-signal-dark); }
.crm-button--pledge:hover { background: var(--crm-signal-dark); color: #fff; }
.crm-button--ghost { color: #fff; border-color: rgba(255,255,255,.55); padding: .25rem .8rem .2rem; font-size: .85rem; }
.crm-button--ghost:hover { color: #fff; border-color: #fff; }

/* ---- breadcrumbs / page head ---- */
.crm-breadcrumb { font-family: var(--crm-label); text-transform: uppercase; letter-spacing: .12em; font-size: .85rem; color: var(--crm-muted); margin: 0 0 1rem; }
.crm-breadcrumb a { color: inherit; }
.crm-breadcrumb span[aria-hidden] { margin: 0 .4rem; }

/* ---- footer end-band ---- */
.crm-endband { margin-top: 5rem; background: var(--crm-ink); color: #d6e3e9; position: relative; }
.crm-endband::before { content: ""; position: absolute; left: 0; right: 0; top: -22px; height: 24px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 24' preserveAspectRatio='none'%3E%3Cpath d='M0 14 C20 4 40 4 60 14 S100 24 120 14 V24 H0Z' fill='%230f2533'/%3E%3C/svg%3E") repeat-x; background-size: 120px 24px; animation: crm-tide 14s linear infinite; }
@keyframes crm-tide { from { background-position-x: 0; } to { background-position-x: 120px; } }
.crm-endband a { color: #fff; }
.crm-endband__wrap { max-width: 72rem; margin: 0 auto; padding: 3rem 1rem 1.5rem; }
.crm-endband__closing { font-size: clamp(1.5rem, 3.2vw, 2.3rem); font-style: italic; max-width: 46rem; margin: 0 0 2rem; line-height: 1.25; color: #fff; }
.crm-endband__rows { display: grid; gap: .9rem; border-top: 1px solid rgba(255,255,255,.18); padding-top: 1.4rem; }
.crm-endband__row { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; align-items: baseline; font-size: 1rem; }
.crm-endband__row strong { font-family: var(--crm-label); text-transform: uppercase; letter-spacing: .14em; font-size: .85rem; color: #8fb4c6; min-width: 6.5rem; }
.crm-endband__signup { margin: 2rem 0; }
.crm-endband__colophon { font-size: .92rem; color: #9fb6c2; border-top: 1px solid rgba(255,255,255,.18); padding-top: 1.2rem; margin-top: 1.6rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; }
.crm-endband__colophon p { margin: 0; max-width: 44rem; }

@media (prefers-reduced-motion: reduce) {
  .crm-endband::before { animation: none; }
  html { scroll-behavior: auto; }
}
@media print {
  .crm-banner, .ch-masthead__toggle, .ch-masthead__pledge, .crm-endband::before, .ch-rail { display: none !important; }
  body { background: #fff; }
}
