/* DispatcherOral shared chrome: fonts, tokens, buttons, wordmark, top bar and footer.
   Linked by every page (marketing pages and the legal pages). Selectors are class-scoped so the legal pages' own
   element styles (body 17px, copper links) don't leak into the header and footer, and vice versa.
   Same visual language as dmeready.com (landing/index.html v8 tokens). Fonts are self-hosted (OFL, assets/OFL-Geist.txt). */
@font-face { font-family: "Geist"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/assets/geist-latin.woff2) format("woff2"); }
@font-face { font-family: "Geist Mono"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/assets/geist-mono-latin.woff2) format("woff2"); }
:root {
  --bg: #F1F2ED; --surface: #FFFEFB; --surface-2: #F4F5EF; --border: #E6E8DF; --border-2: #EEEFE8; --border-strong: #CED2C6;
  --text: #181B17; --text-muted: #4F544A; --text-faint: #646A5F;
  --accent-hover: #353C2C;
  --brand-1: #EF6438; --brand-2: #F87826; --brand-3: #FFAA0A; --brand-ink: #B5441D;
  --spectrum: linear-gradient(100deg, var(--brand-1) 0%, var(--brand-2) 55%, var(--brand-3) 100%);
  --ink-0: #181B17; --ink-1: #23271F; --ink-line: #33382F; --ink-text: #F1F2ED; --ink-muted: #B4B8AB;
  --r-xl: 24px; --ease-out: cubic-bezier(.16, 1, .3, 1);
  --font: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  color-scheme: light;
}

.skip { position: absolute; left: -9999px; top: 8px; background: var(--text); color: #fff; padding: 8px 12px; border-radius: 10px; z-index: 100; }
.skip:focus { left: 8px; }

/* buttons: primary = black pill, white text; secondary = outlined pill */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 48px; padding: .8rem 1.35rem; border-radius: 999px;
  font-family: var(--font); font-weight: 600; font-size: 1rem; line-height: 1.3; letter-spacing: normal; text-decoration: none; border: 0; cursor: pointer; white-space: nowrap;
  transition: background .18s, box-shadow .18s, transform .18s var(--ease-out); }
.btn-start, .btn-start:hover { background: var(--text); color: #fff; }
.btn-start:hover { background: var(--accent-hover); transform: translateY(-1px); }
.btn-start .ic { width: 1.15em; height: 1.15em; transition: transform .25s var(--ease-out); }
.btn-start:hover .ic { transform: translateX(3px); }
.btn-ghost, .btn-ghost:hover { background: transparent; color: var(--text); box-shadow: inset 0 0 0 1.5px var(--text); }
.btn-ghost:hover { background: var(--surface); }
.btn-sm { min-height: 44px; padding: .5rem 1.05rem; font-size: .9rem; }

/* wordmark: name in bold Geist + orange dot (same idea as the app header) */
.wordmark, .wordmark:hover { display: inline-flex; align-items: baseline; text-decoration: none; color: var(--text); }
.wm-text { font-family: var(--font); font-weight: 800; font-size: 21px; line-height: 22px; letter-spacing: -.035em; white-space: nowrap; }
.wm-dot { display: inline-block; width: 6px; height: 6px; margin-left: 2px; border-radius: 50%; background: var(--brand-1); }

/* top bar */
.top { position: sticky; top: 0; z-index: 50; font-family: var(--font); line-height: 1.5; letter-spacing: normal;
  background: color-mix(in srgb, var(--bg) 86%, transparent); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.top .wrap { max-width: 1120px; margin: 0 auto; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 64px; }
.top-right { display: flex; align-items: center; gap: 1.4rem; }
.top-nav { display: none; align-items: center; gap: 1.4rem; font-size: .92rem; }
.top-nav a, .top-nav a:hover { color: var(--text); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.top-nav a:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.top-nav a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--brand-1); text-underline-offset: 6px; text-decoration-thickness: 2px; }

/* footer: columns modelled on dmeready.com */
.site-foot { padding: 2.4rem 0 3rem; color: var(--text-muted); font-family: var(--font); font-size: .9rem; line-height: 1.6; letter-spacing: normal;
  border-top: 1px solid var(--border-strong); margin-top: 1.5rem; }
.site-foot .wrap { max-width: 1120px; margin: 0 auto; padding: 0 20px; display: grid; gap: 1.6rem; }
.site-foot .wordmark { justify-self: start; }
.foot-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
.foot-cols h3 { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--text-faint); font-weight: 600; line-height: 1.4; margin: 0 0 .4rem; }
.foot-cols a, .foot-cols a:hover { display: block; text-decoration: none; padding: .3rem 0; color: var(--text); overflow-wrap: anywhere; }
.foot-cols a:hover { text-decoration: underline; text-underline-offset: 3px; }
.foot-partner, .foot-partner:hover { display: inline-flex; align-items: center; gap: .6rem; color: var(--text-muted); text-decoration: none; font-size: .82rem; justify-self: start; }
.foot-partner img { height: 16px; width: auto; display: block; }
.foot-partner:hover span { text-decoration: underline; }
.foot-legal { margin: 0; font-size: .82rem; line-height: 1.55; color: var(--text-faint); max-width: 70ch; }
.foot-legal + .foot-legal { margin-top: -1.1rem; }

@media (max-width: 359px) {
  .top .wrap { gap: .6rem; padding: 0 16px; }
  .wm-text { font-size: 18px; }
  .top .btn-sm { padding-inline: .8rem; }
}
@media (min-width: 640px) {
  .foot-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
  .top-nav { display: flex; }
}
@media (prefers-reduced-motion: reduce) {
  .btn, .btn-start .ic { transition: none; }
}
