@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/montserrat-latin.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/open-sans-latin.woff2) format('woff2')}

:root {
  /* Cherry Hill Advisory brand */
  --navy: #0E2459;
  --navy-mid: #1A3A7A;
  --blue: #018EDC;
  --blue-deep: #0175B8;
  --tint: #E6F3FB;
  /* working neutrals, all pulled toward the navy */
  --paper: #F4F6FA;
  --card: #FFFFFF;
  --ink: #0E2459;
  --ink-2: #47557A;
  --ink-3: #7B88A8;
  --rule: #DCE2EE;
  --rule-2: #EDF0F6;
  /* status */
  --good: #12805C;
  --good-t: #E3F4EC;
  --warn: #A66A00;
  --warn-t: #FBF1DC;
  --bad: #B3362B;
  --bad-t: #FBE9E6;

  --display: 'Montserrat', Arial, sans-serif;
  --body: 'Open Sans', Calibri, 'Segoe UI', sans-serif;
  --mono: ui-monospace, 'SF Mono', 'Cascadia Mono', Consolas, monospace;
  --r: 10px;
  --shadow: 0 1px 2px rgba(14,36,89,.06), 0 8px 24px -12px rgba(14,36,89,.18);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font: 400 15px/1.55 var(--body);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { font-family: var(--display); margin: 0; line-height: 1.2; letter-spacing: -.01em; }
p { margin: 0; }
a { color: var(--blue-deep); }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 4px; }

/* The small uppercase label the brand uses for subtitles and field names. */
.eyebrow {
  font: 600 11px/1.2 var(--display); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3);
}
.ref { font: 500 12px/1 var(--mono); letter-spacing: .04em; color: var(--ink-2); }

.btn {
  display: inline-flex; align-items: center; gap: 8px; justify-content: center;
  border: 1px solid var(--rule); background: var(--card); color: var(--navy);
  font: 600 14px/1 var(--display); padding: 11px 16px; border-radius: 8px; cursor: pointer;
  transition: background .12s, border-color .12s, transform .06s;
}
.btn:hover { border-color: var(--ink-3); }
.btn:active { transform: translateY(1px); }
.btn.primary { background: var(--navy); border-color: var(--navy); color: #fff; }
.btn.primary:hover { background: var(--navy-mid); }
.btn.blue { background: var(--blue-deep); border-color: var(--blue-deep); color: #fff; }
.btn.blue:hover { background: #01639c; }
.btn.quiet { border-color: transparent; background: transparent; color: var(--ink-2); }
.btn.quiet:hover { background: var(--rule-2); }
.btn.danger { color: var(--bad); }
.btn.sm { padding: 7px 11px; font-size: 13px; }
.btn[disabled] { opacity: .45; cursor: not-allowed; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
