@charset "UTF-8";
/* ═══════════════════════════════════════════════════════════════════════════
   Civic Mesa — marketing site (civicmesa.com)
   Strata v1.0 brand system.  Sora (display) + Manrope (UI/body), self-hosted.
   Navy #12233D / Navy-Deep #0C1A2E / Gold #C9A24A / Gold-Soft #E3C687 /
   Ink #1A2433 / Paper #F6F3EC.  Gold is a precise accent, never a large fill.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Self-hosted fonts ─────────────────────────────────────────────────── */
@font-face { font-family:'Sora'; font-style:normal; font-weight:500; font-display:swap; src:url('fonts/sora-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family:'Sora'; font-style:normal; font-weight:600; font-display:swap; src:url('fonts/sora-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family:'Sora'; font-style:normal; font-weight:700; font-display:swap; src:url('fonts/sora-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/manrope-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:500; font-display:swap; src:url('fonts/manrope-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:600; font-display:swap; src:url('fonts/manrope-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:700; font-display:swap; src:url('fonts/manrope-latin-700-normal.woff2') format('woff2'); }

/* ── Tokens ────────────────────────────────────────────────────────────── */
:root {
  --cm-navy:#12233D; --cm-navy-deep:#0C1A2E; --cm-gold:#C9A24A; --cm-gold-soft:#E3C687;
  --cm-ink:#1A2433; --cm-paper:#F6F3EC;

  --ink:var(--cm-ink); --ink-soft:#3A4658; --muted:#5D6878; --faint:#6D7684;
  --bg:var(--cm-paper); --panel:#FDFCF9; --panel-2:#F5F1E8;
  --line:#E8E4D9; --line-soft:#EFEBE0;

  --gold:var(--cm-gold); --gold-bright:var(--cm-gold-soft); --gold-deep:#8F7128;
  --gold-tint:#F2E6C9; --gold-tint-2:#FAF5E8;
  --accent:var(--gold);
  --focus-ring:0 0 0 3px rgba(201,162,74,.40);

  --ok:#2f7d57; --ok-bg:#e8f3ec; --warn:#a9781b; --warn-bg:#f6eede; --danger:#b1443b; --danger-bg:#f7e7e5;

  --elev-1:0 1px 2px rgba(18,35,61,.04), 0 1px 3px rgba(18,35,61,.05);
  --elev-2:0 2px 4px rgba(18,35,61,.05), 0 10px 28px rgba(18,35,61,.08);
  --elev-3:0 6px 16px rgba(12,26,46,.16), 0 28px 70px rgba(12,26,46,.30);

  /* on-navy text ramp */
  --nv-text:#EAEFF7; --nv-soft:#B7C4D8; --nv-mute:#8FA0B8; --nv-line:rgba(227,198,135,.16);

  --font:'Manrope',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-display:'Sora','Manrope',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  --wrap:1180px;
  --radius:14px; --radius-sm:9px;
}

/* ── Reset / base ──────────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top:88px; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body {
  margin:0; font-family:var(--font); color:var(--ink); background:var(--bg);
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
::selection { background:var(--gold-tint); color:var(--ink); }
h1,h2,h3,h4 { font-family:var(--font-display); font-weight:600; margin:0; color:var(--ink); letter-spacing:-.02em; line-height:1.1; }
p { margin:0; }
:focus-visible { outline:2px solid var(--gold); outline-offset:2px; border-radius:4px; }
.tnum { font-variant-numeric:tabular-nums; }

/* Warm scrollbars */
::-webkit-scrollbar{ width:12px; height:12px; }
::-webkit-scrollbar-thumb{ background:#D6D0C0; border-radius:8px; border:3px solid var(--bg); }
::-webkit-scrollbar-thumb:hover{ background:#C4BDA9; }

/* ── Layout primitives ─────────────────────────────────────────────────── */
.wrap { width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:24px; }
.section { padding:104px 0; position:relative; }
.section.tight { padding:76px 0; }
.section--paper { background:var(--bg); }
.section--panel { background:linear-gradient(180deg,#FBF9F3,#F3EFE5); }
.section--navy { background:var(--cm-navy-deep); color:var(--nv-text); }
.section--navy h1,.section--navy h2,.section--navy h3,.section--navy h4 { color:#fff; }
/* gold dot-grid + radial glow — the same texture the product login uses */
.dotfield {
  background-color:var(--cm-navy-deep);
  background-image:
    radial-gradient(1100px 560px at 50% -12%, rgba(27,51,85,.85), rgba(12,26,46,0) 72%),
    radial-gradient(rgba(227,198,135,.075) 1px, transparent 1.4px);
  background-size:auto, 26px 26px;
}
.hr-hair { height:1px; background:var(--line); border:0; margin:0; }

/* Section header block */
.eyebrow {
  display:inline-flex; align-items:center; gap:8px;
  font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-deep); margin-bottom:16px;
}
.section--navy .eyebrow { color:var(--gold-bright); }
.eyebrow::before { content:''; width:22px; height:2px; background:var(--gold); border-radius:2px; }
.section-head { max-width:720px; margin-bottom:52px; }
.section-head.center { margin-inline:auto; text-align:center; }
.section-head.center .eyebrow::before { display:none; }
.section-head h2 { font-size:clamp(28px,4vw,44px); }
.section-head .lead { margin-top:18px; font-size:19px; color:var(--muted); line-height:1.55; }
.section--navy .section-head .lead { color:var(--nv-soft); }

.lead { font-size:19px; color:var(--muted); }
.kicker-num { font-family:var(--font-display); font-variant-numeric:tabular-nums; }

/* ── Wordmark ──────────────────────────────────────────────────────────── */
.wordmark { display:inline-flex; align-items:center; gap:11px; font-family:var(--font-display); font-weight:600; letter-spacing:-.01em; }
.wordmark .seal { width:30px; height:30px; flex-shrink:0; }
.wordmark .wm-txt { font-size:19px; color:var(--ink); }
.wordmark .wm-txt .g { color:var(--gold-deep); }
/* Prominent nav logo */
.site-nav .wordmark { gap:13px; font-weight:700; }
.site-nav .wordmark .seal { width:42px; height:42px; filter:drop-shadow(0 2px 5px rgba(12,26,46,.18)); transition:transform .16s ease; }
.site-nav .wordmark:hover .seal { transform:translateY(-1px) scale(1.04); }
.site-nav .wordmark .wm-txt { font-size:24px; letter-spacing:-.025em; }
.section--navy .wordmark .wm-txt,.site-nav.on-navy .wordmark .wm-txt,.hero .wordmark .wm-txt,.site-foot .wordmark .wm-txt { color:#fff; }
.section--navy .wordmark .wm-txt .g,.hero .wordmark .wm-txt .g,.site-foot .wordmark .wm-txt .g { color:var(--gold); }

/* ── Buttons ───────────────────────────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  background:var(--gold); color:var(--cm-navy-deep); border:1px solid transparent;
  border-radius:var(--radius-sm); padding:12px 22px; font-family:var(--font);
  font-size:15px; font-weight:700; letter-spacing:.01em; cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 2px 8px rgba(201,162,74,.24);
  transition:transform .12s ease, box-shadow .18s ease, background .15s ease, filter .15s ease;
}
.btn:hover { background:#BC9640; transform:translateY(-1px); box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 6px 18px rgba(201,162,74,.32); }
.btn:active { transform:translateY(0); }
.btn svg { width:17px; height:17px; }
.btn--ghost { background:transparent; color:var(--ink); border-color:#D9D3C4; box-shadow:none; font-weight:600; }
.btn--ghost:hover { background:#F5F1E8; border-color:#C8C1AE; transform:none; }
.btn--lg { padding:15px 28px; font-size:16px; }
.btn--sm { padding:9px 16px; font-size:14px; }
/* on-navy variants */
.on-navy .btn--ghost,.section--navy .btn--ghost,.hero .btn--ghost {
  color:#fff; border-color:rgba(227,198,135,.34); background:rgba(255,255,255,.02);
}
.on-navy .btn--ghost:hover,.section--navy .btn--ghost:hover,.hero .btn--ghost:hover { background:rgba(227,198,135,.10); border-color:rgba(227,198,135,.5); }

/* ── Site nav (sticky) ─────────────────────────────────────────────────── */
.site-nav {
  position:sticky; top:0; z-index:50;
  background:rgba(246,243,236,.82); backdrop-filter:saturate(180%) blur(12px); -webkit-backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
}
.site-nav .bar { display:flex; align-items:center; gap:28px; height:76px; }
.site-nav .links { display:flex; align-items:center; gap:4px; margin-left:auto; }
.site-nav .links a { padding:8px 14px; font-size:14.5px; font-weight:550; color:var(--ink-soft); border-radius:8px; transition:background .12s, color .12s; }
.site-nav .links a:hover { background:rgba(18,35,61,.05); color:var(--ink); }
.site-nav .nav-cta { display:flex; align-items:center; gap:10px; margin-left:14px; }
.nav-toggle { display:none; }

/* mobile nav */
.nav-mobile { display:none; }
@media (max-width:900px){
  .site-nav .links, .site-nav .nav-cta { display:none; }
  .nav-toggle { display:inline-grid; place-items:center; width:42px; height:42px; margin-left:auto; border:1px solid var(--line); background:var(--panel); border-radius:9px; cursor:pointer; }
  .nav-mobile { display:block; position:fixed; inset:76px 0 auto 0; background:var(--bg); border-bottom:1px solid var(--line); box-shadow:var(--elev-2); transform:translateY(-12px); opacity:0; pointer-events:none; transition:opacity .18s, transform .18s; z-index:49; }
  .nav-mobile.open { transform:none; opacity:1; pointer-events:auto; }
  .nav-mobile a { display:block; padding:15px 24px; font-size:16px; font-weight:600; border-bottom:1px solid var(--line-soft); color:var(--ink); }
  .nav-mobile .btn { margin:16px 24px; }
}

/* ── Cards & grids ─────────────────────────────────────────────────────── */
.grid { display:grid; gap:20px; }
.g-2 { grid-template-columns:repeat(2,1fr); }
.g-3 { grid-template-columns:repeat(3,1fr); }
.g-4 { grid-template-columns:repeat(4,1fr); }
.card {
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:26px 24px; box-shadow:var(--elev-1); transition:transform .18s ease, box-shadow .22s ease, border-color .18s;
}
.card.hover:hover { transform:translateY(-3px); box-shadow:var(--elev-2); border-color:#DED8C8; }
.card .ic {
  width:44px; height:44px; border-radius:11px; display:grid; place-items:center; margin-bottom:16px;
  background:linear-gradient(160deg,#16294A,var(--cm-navy)); color:var(--gold-bright); box-shadow:var(--elev-1);
}
.card .ic svg { width:22px; height:22px; }
.card h3 { font-size:18px; margin-bottom:8px; }
.card p { font-size:14.5px; color:var(--muted); line-height:1.55; }
/* navy card variant (used inside dark sections) */
.section--navy .card { background:rgba(255,255,255,.028); border-color:var(--nv-line); box-shadow:none; }
.section--navy .card h3 { color:#fff; }
.section--navy .card p { color:var(--nv-soft); }
.section--navy .card.hover:hover { background:rgba(255,255,255,.05); border-color:rgba(227,198,135,.34); transform:translateY(-3px); }

/* small labelled stat */
.figure { font-family:var(--font-display); font-weight:700; font-variant-numeric:tabular-nums; letter-spacing:-.02em; line-height:1; }

/* pill / chip */
.chip { display:inline-flex; align-items:center; gap:7px; padding:5px 12px; border-radius:20px; font-size:12.5px; font-weight:650; background:var(--gold-tint-2); color:var(--gold-deep); border:1px solid var(--gold-tint); }
.section--navy .chip { background:rgba(227,198,135,.1); color:var(--gold-bright); border-color:var(--nv-line); }

/* trust strip */
.trust { display:flex; flex-wrap:wrap; align-items:center; gap:14px 26px; }
.trust .t-item { display:inline-flex; align-items:center; gap:9px; font-size:13.5px; font-weight:600; color:var(--nv-soft); }
.trust .t-item svg { width:17px; height:17px; color:var(--gold); flex-shrink:0; }

/* ── Feature row (media + text) ────────────────────────────────────────── */
.frow { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.frow.rev .frow-media { order:2; }
.frow-media { min-width:0; }
.frow h3 { font-size:clamp(24px,3vw,32px); margin-bottom:16px; }
.frow .lead { font-size:17px; line-height:1.6; }
.flist { list-style:none; margin:22px 0 0; padding:0; display:grid; gap:13px; }
.flist li { display:flex; gap:12px; font-size:15px; color:var(--ink-soft); line-height:1.5; }
.flist li svg { width:20px; height:20px; color:var(--gold-deep); flex-shrink:0; margin-top:1px; }
.section--navy .flist li { color:var(--nv-soft); }
.section--navy .flist li svg { color:var(--gold); }

/* ── Footer ────────────────────────────────────────────────────────────── */
.site-foot { background:var(--cm-navy-deep); color:var(--nv-soft); padding:64px 0 34px; }
.site-foot .cols { display:grid; grid-template-columns:1.6fr repeat(4,1fr); gap:36px; }
.site-foot h4 { font-family:var(--font); font-size:12px; text-transform:uppercase; letter-spacing:.12em; color:var(--nv-mute); margin-bottom:16px; font-weight:700; }
.site-foot a { display:block; padding:6px 0; font-size:14px; color:var(--nv-soft); transition:color .12s; }
.site-foot a:hover { color:var(--gold-bright); }
.site-foot .blurb { font-size:14px; color:var(--nv-mute); line-height:1.6; max-width:320px; margin-top:18px; }
.site-foot .foot-bottom { display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:center; margin-top:52px; padding-top:24px; border-top:1px solid rgba(255,255,255,.08); font-size:13px; color:var(--nv-mute); }

/* ── Scroll reveal ─────────────────────────────────────────────────────── */
.reveal { opacity:0; transform:translateY(18px); transition:opacity .6s cubic-bezier(.2,.7,.3,1), transform .6s cubic-bezier(.2,.7,.3,1); }
.reveal.in { opacity:1; transform:none; }
.reveal.d1 { transition-delay:.06s; } .reveal.d2 { transition-delay:.12s; } .reveal.d3 { transition-delay:.18s; } .reveal.d4 { transition-delay:.24s; }
@media (prefers-reduced-motion:reduce){ .reveal { opacity:1; transform:none; transition:none; } }

/* ── Responsive ────────────────────────────────────────────────────────── */
@media (max-width:1040px){
  .g-4 { grid-template-columns:repeat(2,1fr); }
  .site-foot .cols { grid-template-columns:1fr 1fr 1fr; }
}
@media (max-width:860px){
  .section { padding:72px 0; }
  .g-3 { grid-template-columns:1fr 1fr; }
  .frow { grid-template-columns:1fr; gap:34px; }
  .frow.rev .frow-media { order:0; }
  .site-foot .cols { grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .g-2,.g-3,.g-4 { grid-template-columns:1fr; }
  .site-foot .cols { grid-template-columns:1fr; }
  .section-head .lead { font-size:17px; }
}
