/* ============================================================
   Concord Properties — shared brand system ("Refined Heritage")
   One stylesheet powers the marketing site (domain.com) AND the
   contract-review app (app.domain.com) — one brand, two surfaces.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700&family=Mulish:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,500;0,8..60,600;1,8..60,400&family=JetBrains+Mono:wght@400;500&display=swap');

:root{
  /* ── brand color: navy authority, ivory paper, brass distinction ── */
  --navy:#00385E; --navy-deep:#002740; --navy-mid:#0A4A77;
  --ivory:#F6F3EC; --ivory-dim:#EFEADF; --paper:#FFFFFF;
  --ink:#1A2330; --charcoal:#3A4250; --muted:#6E7480; --faint:#9AA0A8;
  --line:#E2DCCF; --line-strong:#D2CBBA;
  --brass:#B0883C; --brass-deep:#8F6E2C; --brass-wash:#F3EBDA; --brass-line:#E6D6B4;
  /* on-navy (text/accents over the navy authority surfaces) */
  --on-navy:#F6F3EC; --on-navy-soft:#B9C6D2; --brass-on-navy:#D8B775;
  /* app functional palette (warm-tuned) */
  --positive:#2F7D52; --positive-wash:#ECF4EE;
  --caution:#B26A00;  --caution-wash:#FBF2E1;
  --risk:#B23B2E;     --risk-wash:#FaEEEC;
  /* type */
  --font-display:"Cinzel",Georgia,serif;
  --font-body:"Mulish",system-ui,sans-serif;
  --font-serif:"Source Serif 4",Georgia,serif;
  --font-mono:"JetBrains Mono",ui-monospace,monospace;
  /* space (4pt) */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s8:32px; --s10:40px; --s12:48px; --s16:64px; --s20:80px;
  /* shape — small, squared, heritage */
  --r-sm:3px; --r:6px; --r-lg:10px; --pill:999px;
  --shadow-sm:0 1px 2px rgba(0,39,64,.06);
  --shadow:0 14px 40px -20px rgba(0,39,64,.28);
  --ease:cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);background:var(--ivory);color:var(--charcoal);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
::selection{background:var(--brass-wash)}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:5px;border:2px solid var(--ivory)}
a{color:var(--navy-mid)}
.mono{font-family:var(--font-mono)} .serif{font-family:var(--font-serif)}

/* focus visibility (keyboard) */
a:focus-visible,[tabindex]:focus-visible,[role="button"]:focus-visible,button:focus-visible,.btn:focus-visible,summary:focus-visible{outline:2px solid var(--brass);outline-offset:2px;border-radius:var(--r-sm)}

/* ── emblem + wordmark (the carried-forward mark, refined) ── */
.cp-emblem{display:block;flex:none}
.cp-emblem .facet-a{fill:var(--navy)}
.cp-emblem .facet-b{fill:var(--navy-deep)}
.cp-emblem .facet-c{fill:var(--brass)}
.cp-emblem .facet-d{fill:var(--brass-deep)}
.cp-wordmark{display:inline-flex;align-items:center;gap:13px;color:var(--navy)}
.cp-wordmark .wm{display:flex;flex-direction:column;line-height:1}
.cp-wordmark .wm .n{font-family:var(--font-display);font-weight:600;font-size:18px;letter-spacing:.16em;color:inherit}
.cp-wordmark .wm .p{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.34em;color:var(--brass-deep);margin-top:3px}
.cp-wordmark.on-navy{color:var(--on-navy)} .cp-wordmark.on-navy .wm .p{color:var(--brass-on-navy)}
.cp-wordmark.sm .wm .n{font-size:15px;letter-spacing:.14em} .cp-wordmark.sm .wm .p{font-size:9px;letter-spacing:.3em}

/* ── type helpers ── */
h1,h2,h3,h4{color:var(--ink);font-weight:700}
.display{font-family:var(--font-display);font-weight:600;color:var(--navy);letter-spacing:.01em;line-height:1.12}
.headline{font-family:var(--font-serif);font-weight:600;color:var(--ink);letter-spacing:-.005em;line-height:1.15}
.lead{font-family:var(--font-serif);font-size:clamp(18px,2.2vw,21px);color:var(--charcoal);line-height:1.6}
.eyebrow{font-family:var(--font-display);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.22em;color:var(--brass-deep)}
.kicker{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.rule{height:1px;background:var(--line);border:0}
.rule-brass{height:2px;width:48px;background:var(--brass);border:0;border-radius:2px}

/* ── buttons ── */
.btn{font-family:var(--font-body);font-weight:600;font-size:14px;line-height:1;letter-spacing:.01em;border:1px solid transparent;border-radius:var(--r);padding:12px 20px;cursor:pointer;display:inline-flex;align-items:center;gap:9px;transition:all .16s var(--ease);background:var(--paper);color:var(--ink)}
.btn svg{width:16px;height:16px}
.btn-primary{background:var(--navy);color:var(--on-navy)} .btn-primary:hover{background:var(--navy-deep)}
.btn-brass{background:var(--brass);color:#fff} .btn-brass:hover{background:var(--brass-deep)}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--line-strong)} .btn-outline:hover{border-color:var(--navy);background:var(--paper)}
.btn-ghost{background:transparent;color:var(--navy-mid)} .btn-ghost:hover{background:var(--ivory-dim)}
.btn-on-navy{background:var(--brass);color:#fff} .btn-on-navy:hover{background:var(--brass-deep)}
.btn-sm{padding:9px 14px;font-size:13px}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* ── inputs ── */
.field{display:flex;flex-direction:column;gap:6px}
.field>label{font-size:13px;font-weight:600;color:var(--ink)}
.input{font-family:var(--font-body);font-size:15px;background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--r);padding:11px 13px;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(0,56,94,.12)}

/* ── surfaces ── */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg)}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s6)}
.navy-surface{background:var(--navy);color:var(--on-navy)}
.navy-surface h1,.navy-surface h2,.navy-surface h3,.navy-surface .display{color:var(--on-navy)}

/* ── badges / chips ── */
.chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.02em;padding:5px 11px;border-radius:var(--pill);border:1px solid var(--line-strong);color:var(--charcoal);background:var(--paper)}
.chip.brass{color:var(--brass-deep);background:var(--brass-wash);border-color:var(--brass-line)}
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:4px 9px;border-radius:var(--r-sm);border:1px solid}
.badge::before{content:"";width:7px;height:7px;border-radius:50%}
.badge.risk{color:var(--risk);background:var(--risk-wash);border-color:#eccfca}.badge.risk::before{background:var(--risk)}
.badge.caution{color:var(--caution);background:var(--caution-wash);border-color:#efdfbe}.badge.caution::before{background:var(--caution)}
.badge.positive{color:var(--positive);background:var(--positive-wash);border-color:#cfe6d6}.badge.positive::before{background:var(--positive)}
.pageref{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--navy-mid);background:#EAF0F5;border-radius:var(--r-sm);padding:2px 7px;white-space:nowrap}

/* ── stat ── */
.stat .v{font-family:var(--font-display);font-weight:600;font-size:40px;color:var(--navy);line-height:1}
.stat .v .unit{color:var(--brass-deep)}
.stat .l{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-top:8px}

/* utility */
.muted{color:var(--muted)} .faint{color:var(--faint)} .on-navy-soft{color:var(--on-navy-soft)}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
