/* Provisioned committee sites. Every colour and the heading stack come from custom
   properties the page sets inline from the chosen theme, so this file describes
   structure and ornament only — it never hard-codes a palette.

   Deliberately separate from site.css: a committee page carries none of PacYard's
   chrome, and must not inherit our brand if we restyle it. */

:root {
  color-scheme: light dark;
  /* Fallbacks, overridden by the theme block the page emits. */
  --paper: #faf7f0;
  --ink: #111f38;
  --muted: #55617a;
  --line: #ded7c7;
  --accent: #b3202e;
  --accent-alt: #96762f;
  --heading: "Iowan Old Style", Palatino, Georgia, serif;
  --wrap: 58rem;
  --measure: 36rem;
}

* { box-sizing: border-box; }

body.tenant {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 16px/1.68 var(--heading);
}

body.tenant h1, body.tenant h2, body.tenant h3 {
  font-family: var(--heading);
  line-height: 1.15;
  letter-spacing: -0.012em;
}

/* Running text stays in a sans for legibility even when headings are a display
   serif or slab; the theme's character comes from the headings and ornament. */
body.tenant p, body.tenant nav, body.tenant input, body.tenant button, body.tenant .t-footer {
  font-family: system-ui, -apple-system, "Segoe UI", Helvetica, sans-serif;
}

/* ---------- masthead ---------- */
.t-nav {
  max-width: var(--wrap); margin: 0 auto; padding: 1.35rem 1rem 1.1rem;
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.9rem;
  border-bottom: 2px solid var(--accent);
}
.t-brand {
  font-family: var(--heading); font-size: clamp(1.15rem, 3vw, 1.5rem);
  font-weight: 650; color: var(--ink); text-decoration: none; letter-spacing: -0.015em;
}
.t-nav nav { display: flex; gap: 1.1rem; flex-wrap: wrap; }
.t-nav nav a { color: var(--muted); text-decoration: none; font-size: 0.89rem; }
.t-nav nav a:hover, .t-nav nav a.is-current { color: var(--accent); }

/* ---------- ornament band under the masthead ---------- */
.t-ornament { max-width: var(--wrap); margin: 0 auto; height: 0.55rem; }

.orn-stars {
  background: radial-gradient(circle at 0.55rem 50%, var(--accent-alt) 0 0.11rem, transparent 0.11rem)
    repeat-x 0 0 / 1.6rem 100%;
}
.orn-stripes {
  background: repeating-linear-gradient(
    to right,
    var(--accent) 0 0.9rem,
    transparent 0.9rem 1.8rem
  );
  height: 0.28rem;
}
.orn-chevron {
  background: repeating-linear-gradient(
    135deg,
    var(--accent-alt) 0 0.16rem,
    transparent 0.16rem 0.62rem
  );
}
.orn-rule {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  height: 0.26rem;
}
.orn-rosette {
  background: radial-gradient(circle at 50% 50%, var(--accent) 0 0.13rem, transparent 0.13rem),
    radial-gradient(circle at 50% 50%, var(--accent-alt) 0 0.24rem, transparent 0.24rem);
  background-repeat: no-repeat;
  background-position: center;
  height: 0.6rem;
}

/* ---------- content ---------- */
.t-hero, .t-sections, .t-page, .t-signup { max-width: var(--wrap); margin: 0 auto; padding: 1.5rem 1rem; }
.t-hero { padding-top: 2.6rem; }
.t-hero h1 { font-size: clamp(1.95rem, 5.2vw, 3rem); margin: 0 0 0.75rem; max-width: var(--measure); }
.t-lede { font-size: 1.1rem; color: var(--muted); max-width: var(--measure); }

.t-btn {
  display: inline-block; margin-top: 0.7rem; padding: 0.72rem 1.35rem;
  background: var(--accent); color: var(--paper); text-decoration: none;
  font-weight: 650; border: 0; border-radius: 3px; cursor: pointer; font-size: 0.95rem;
}
.t-btn:hover { filter: brightness(1.08); }

.t-sections {
  display: grid; gap: 1.7rem;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  border-top: 1px solid var(--line);
}
.t-sections h2 { font-size: 1.12rem; margin: 0 0 0.4rem; }
.t-sections h2 a { color: var(--ink); text-decoration: none; border-bottom: 2px solid var(--accent); }
.t-sections p { margin: 0; color: var(--muted); }

.t-page h1 { border-bottom: 1px solid var(--line); padding-bottom: 0.65rem; }

/* ---------- signup (only rendered when the feature is on) ---------- */
.t-signup { border-top: 1px solid var(--line); }
.t-signup h2 { font-size: 1.15rem; }
.t-signup form { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: stretch; }
.t-signup input {
  padding: 0.65rem 0.7rem; border: 1px solid var(--line); border-radius: 3px;
  background: var(--paper); color: var(--ink); font: inherit; font-size: 0.95rem;
}
.t-signup input[type="email"] { flex: 1 1 15rem; }
.t-signup input[name="zip"] { flex: 0 0 6rem; }
.t-signup .t-btn { margin-top: 0; }
.t-ok { color: var(--accent); font-weight: 650; }
.t-err { flex-basis: 100%; color: var(--accent); font-size: 0.88rem; margin: 0.25rem 0 0; }

/* ---------- footer ---------- */
.t-footer {
  max-width: var(--wrap); margin: 2.2rem auto 0; padding: 1.6rem 1rem 3rem;
  border-top: 3px double var(--line);
}
/* The disclaimer is the legally load-bearing line on the page. It keeps full
   contrast and weight in both colour schemes; it is never --muted. */
.t-disclaimer { font-weight: 650; font-size: 0.9rem; margin: 0 0 0.55rem; color: var(--ink); }
.t-notice, .t-fec, .t-by { color: var(--muted); font-size: 0.79rem; margin: 0.25rem 0 0; }

body.tenant-pending .t-page { padding-top: 3rem; }

/* ---------- per-layout character ---------- */
/* Same markup and same theme, different structural voice. */
.tpl-groundswell .t-nav { border-bottom-width: 5px; }
.tpl-groundswell .t-hero h1 { text-transform: uppercase; letter-spacing: -0.02em; }
.tpl-groundswell .t-btn { border-radius: 99px; padding-inline: 1.6rem; }
.tpl-ledger .t-nav { border-bottom-style: double; border-bottom-width: 5px; }
.tpl-ledger .t-sections { font-variant-numeric: tabular-nums; }
.tpl-beacon .t-hero { text-align: center; }
.tpl-beacon .t-hero h1, .tpl-beacon .t-lede { margin-inline: auto; }

/* ---------- committee branding ---------- */
/* --scale, --gap and --corner come from the committee's spacing and corner choices;
   --accent and --heading may be overridden from its own panel. */
.t-brand { display: inline-flex; align-items: center; gap: 0.5rem; }
.t-brand-text { display: inline-block; }

.t-logo-img { height: 2rem; width: auto; max-width: 9rem; display: block; }

.t-logo-mono, .t-logo-shield {
  display: grid; place-items: center;
  min-width: 2rem; height: 2rem; padding: 0 0.32rem;
  background: var(--accent); color: var(--paper);
  font-family: var(--heading); font-size: 0.92rem; font-weight: 700;
  letter-spacing: 0.02em; border-radius: var(--corner, 4px);
}
.t-logo-shield {
  border-radius: 3px 3px 45% 45% / 3px 3px 62% 62%;
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--paper) 55%, transparent);
}
.t-logo-star { color: var(--accent-alt); font-size: 1.25rem; line-height: 1; }

.t-btn { border-radius: var(--corner, 3px); }

/* Compact trims the vertical rhythm without changing the type scale, so the page
   gets denser rather than smaller. */
body.dens-compact .t-hero { padding-top: 1.6rem; }
body.dens-compact .t-hero, body.dens-compact .t-sections,
body.dens-compact .t-page, body.dens-compact .t-signup { padding-block: 0.9rem; }
body.dens-compact .t-sections { gap: 1rem; }
body.dens-compact .t-nav { padding-block: 0.9rem 0.75rem; }

.t-note { font-size: 0.84rem; color: var(--muted); margin: 0 0 0.6rem; }
