/* Markdown typography for CMS prose (class .fm-md).
   Linked by BOTH the public site (index.html) and the admin layout so the live
   preview and the published page render identically, one source of truth. */

/* ---- Brand fonts (2026-09-11) ------------------------------------------------
   Canto for headings, Helvetica for running text: the client's identity, and the
   only two faces they allow. Declared here because this file is the one
   stylesheet both the public site and the admin load, so both render the same
   letters. The font stacks that use them: index.html :root (site) and
   assets/css/app.css @theme (admin).

   Files are the client's own licensed web fonts (sent 2026-09-11), in
   priv/static/fonts. Canto ships Light/Roman/SemiBold/Bold; there is no Medium,
   so a 500 weight falls to Roman, which is how browsers resolve it. Helvetica
   came as TrueType and was converted to woff2 (fontTools), Regular and Bold
   only; `local()` first so a Mac uses its own copy and skips the download. */
@font-face { font-family: 'Canto'; font-weight: 300; font-style: normal; font-display: swap; src: url('/fonts/canto-300.woff2') format('woff2'); }
@font-face { font-family: 'Canto'; font-weight: 400; font-style: normal; font-display: swap; src: url('/fonts/canto-400.woff2') format('woff2'); }
@font-face { font-family: 'Canto'; font-weight: 600; font-style: normal; font-display: swap; src: url('/fonts/canto-600.woff2') format('woff2'); }
@font-face { font-family: 'Canto'; font-weight: 700; font-style: normal; font-display: swap; src: url('/fonts/canto-700.woff2') format('woff2'); }
@font-face { font-family: 'Helvetica'; font-weight: 400; font-style: normal; font-display: swap; src: local('Helvetica'), url('/fonts/helvetica-400.woff2') format('woff2'); }
@font-face { font-family: 'Helvetica'; font-weight: 700; font-style: normal; font-display: swap; src: local('Helvetica-Bold'), local('Helvetica Bold'), url('/fonts/helvetica-700.woff2') format('woff2'); }

.fm-md > :first-child { margin-top: 0; }
.fm-md > :last-child { margin-bottom: 0; }
/* 0.7em, not 0.9: the 2026-08 feedback asked for tighter spacing *within* a run
   of prose, while the gap under a heading below stays wide so the headline
   still separates from its body. */
.fm-md p { margin: 0 0 0.7em; }
.fm-md strong { font-weight: 600; }
.fm-md em { font-style: italic; }
.fm-md del { text-decoration: line-through; opacity: 0.75; }
.fm-md a { color: var(--burgundy); text-decoration: underline; text-underline-offset: 2px; }
/* both the bundle's reset and the admin's set list-style:none, so restore the
   markers explicitly or bullets/numbers vanish */
.fm-md ul,
.fm-md ol { margin: 0 0 0.9em; padding-left: 1.4em; }
.fm-md ul { list-style: disc outside; }
.fm-md ol { list-style: decimal outside; }
.fm-md ul ul { list-style: circle outside; }
.fm-md li { margin: 0.3em 0; }
.fm-md h2,
.fm-md h3 {
  font-family: var(--font-display);
  letter-spacing: .05em;
  line-height: 1.28;
  margin: 1.5em 0 .65em;
}
.fm-md h2 { font-size: 1.15em; }
.fm-md h3 { font-size: 1.05em; }
.fm-md blockquote {
  margin: 0 0 0.9em;
  padding: 2px 0 2px 16px;
  border-left: 2px solid var(--gold);
  color: inherit;
  font-style: italic;
}
.fm-md code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .88em;
  background: var(--off-white);
  border: 1px solid var(--light-gray);
  border-radius: 4px;
  padding: 1px 5px;
}
.fm-md pre {
  margin: 0 0 0.9em;
  padding: 12px 14px;
  background: var(--off-white);
  border: 1px solid var(--light-gray);
  border-radius: 8px;
  overflow-x: auto;
}
.fm-md pre code { background: none; border: 0; padding: 0; }
.fm-md img { max-width: 100%; height: auto; }
.fm-md table { width: 100%; border-collapse: collapse; margin: 0 0 0.9em; display: block; overflow-x: auto; }
.fm-md th,
.fm-md td { border: 1px solid var(--light-gray); padding: 7px 10px; text-align: left; }

