/* Site chrome — the header lockup and the footer, shared by every page.
   County-fair palette (Lucas, Sept 5). Markup lives in each page; this file is
   the one place the sizes and colours are decided. Pages load Montserrat. */
:root{
  --cf-cream:#FFFDF8; --cf-ink:#1A1A1A; --cf-sun:#F5B700; --cf-sky:#2872BD; /* text-safe blue, 4.9:1 on cream */
  --cf-tomato:#D9442B; --cf-tomato-text:#C63A22; --cf-hair:#E8E2D6; --cf-line:#8E8A82; /* tappable edges, 3.4:1 */
  --topbar-h:80px; /* the header's fixed height — anything sticky below it uses this */
}

/* ---------- header ---------- */
.topbar{background:var(--cf-cream);border-bottom:1px solid var(--cf-hair);position:sticky;top:0;z-index:20}
.topbar-in{max-width:960px;margin:0 auto;padding:0 20px;height:var(--topbar-h);
  display:flex;align-items:center;justify-content:space-between;gap:14px}
.brandmark{display:flex;flex-direction:column;align-items:flex-start;gap:4px;
  text-decoration:none;color:var(--cf-ink);min-height:44px;justify-content:center}
.brandmark span{font-size:9.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  line-height:1;color:inherit;opacity:.72;white-space:nowrap}
.brandmark img{width:132px;height:auto;display:block}
.topbar nav{display:flex;align-items:center;gap:2px}
.topbar nav a{font-size:13.5px;font-weight:600;color:var(--cf-ink);text-decoration:none;
  padding:10px 12px;border-radius:999px;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
.topbar nav a:hover{background:rgba(26,26,26,.06)}
.topbar nav a[aria-current]{background:rgba(26,26,26,.08)}
.topbar nav a.cta2{background:var(--cf-sun);color:var(--cf-ink);font-weight:700;padding:10px 16px;margin-left:4px}
.topbar nav a.cta2:hover{background:#E4AA00}
.topbar nav a.cta2[aria-current]{background:var(--cf-sun)}
.topbar a:focus-visible{outline:2px solid var(--cf-sky);outline-offset:2px}
@media (max-width:520px){
  :root{--topbar-h:68px}
  .topbar-in{padding:0 14px;gap:8px}
  .brandmark img{width:108px}
  .brandmark span{font-size:8.5px}
  .topbar nav a{font-size:12.5px;padding:9px 8px}
  .topbar nav a.cta2{padding:9px 13px;margin-left:2px}
  .topbar nav a.home{display:none}
}

/* ---------- footer ---------- */
.sitefoot{background:var(--cf-ink);color:var(--cf-cream);margin-top:56px;text-align:left;
  font-family:Montserrat,-apple-system,BlinkMacSystemFont,sans-serif}
.sitefoot .bunting{height:8px;
  background:linear-gradient(90deg,var(--cf-sun) 0 33.34%,var(--cf-sky) 33.34% 66.67%,var(--cf-tomato) 66.67% 100%)}
.sitefoot-in{max-width:960px;margin:0 auto;padding:42px 20px 30px;
  display:grid;grid-template-columns:1.45fr 1fr 1.25fr;gap:36px}
.sitefoot p{font-size:14px;line-height:1.6;margin:0;color:var(--cf-cream);opacity:.92;max-width:38ch}
.sf-eyebrow,.sf-h{font-size:10.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  opacity:.7;margin:0 0 10px;line-height:1.2}
.sf-brand img{width:208px;height:auto;display:block;filter:brightness(0) invert(1);margin:2px 0 16px}
.sf-brand a.logo{display:inline-block}
.sf-col a{display:block;color:var(--cf-cream);text-decoration:none;font-size:15px;font-weight:600;padding:6px 0;width:max-content;max-width:100%}
.sf-col a:hover{text-decoration:underline}
.sf-link{display:inline-block;margin-top:12px;color:var(--cf-sun);font-weight:700;font-size:14px;text-decoration:none}
.sf-link:hover{text-decoration:underline}
.sf-bottom{border-top:1px solid rgba(255,253,248,.14)}
.sf-bottom-in{max-width:960px;margin:0 auto;padding:18px 20px 36px;display:flex;flex-direction:column;gap:6px}
.sf-bottom p{font-size:12px;opacity:.72;max-width:none}
.sf-bottom p a{color:inherit}
.sitefoot a:focus-visible{outline:2px solid var(--cf-sun);outline-offset:2px}
@media (max-width:720px){
  .sitefoot-in{grid-template-columns:1fr;gap:30px;padding:34px 20px 24px}
  .sf-brand img{width:184px}
}
@media (prefers-reduced-motion:no-preference){.sf-col a,.sf-link{transition:opacity .15s}}
