/* @fonts: Newsreader | Public Sans */
/* --- generated fonts --- */
@font-face{font-family:"Newsreader";font-style:italic;font-weight:400 800;font-display:swap;src:url("/assets/fonts/newsreader-400-800-italic-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:400 800;font-display:swap;src:url("/assets/fonts/newsreader-400-800-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:300 800;font-display:swap;src:url("/assets/fonts/publicsans-300-800-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* --- end generated fonts --- */
/* Insights (hub + articles): "Newsroom". Newsprint, black ink, American-newspaper red.
   Benchmarks and cost guides earn trust by reading like reporting: a serif set for
   long reading, a double-rule masthead, bylines and a drop cap. */
:root {
  --bg: #fbf9f4; --bg-raised: #f2eee5; --bg-card: #ffffff;
  --line: rgba(17, 17, 17, 0.14); --line-strong: rgba(17, 17, 17, 0.38);
  --text: #111111; --text-dim: #333333; --text-faint: #5a5a5a;
  --accent: #b3121f; --accent-rgb: 179, 18, 31; --accent2-rgb: 17, 17, 17; --grid-rgb: 17, 17, 17;
  --cta-bg: #111111; --cta-ink: #ffffff; --cta-hover: #b3121f;
  --font-display: "Newsreader", Georgia, serif;
  --font-body: "Public Sans", system-ui, sans-serif;
  --btn-radius: 0; --card-radius: 0; --card-radius-lg: 0;
}
h1, h2, h3 { font-weight: 700; letter-spacing: -0.015em; }
.page-hero { border-bottom: 4px double var(--text); }
.page-hero h1 { font-size: clamp(2.6rem, 1.3rem + 4.4vw, 4.8rem); line-height: 1.02; max-width: 20ch; }
.page-hero h1 em, .section__title em, .band h2 em { color: var(--accent); font-style: italic; }
.page-hero__crumbs, .section__kicker, .insight-card__tag, .post__meta { text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.74rem; font-weight: 700; }
.section__kicker, .insight-card__tag { color: var(--accent); }
.post__meta { justify-content: flex-start; }
/* hub: newspaper columns under a thick rule */
.insight-card { background: transparent; border: 0; border-top: 4px solid var(--text); }
.insight-card:hover { transform: none; box-shadow: none; border-top-color: var(--accent); }
.insight-card__banner { background: none; border-bottom: 1px solid var(--line); padding-left: 0; padding-right: 0; }
.insight-card__body { padding-left: 0; padding-right: 0; }
.insight-card__body h3 { font-size: 1.5rem; }
.insight-card:hover h3 { text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 2px; }
.feature-card, .service-card { background: var(--bg-card); }
/* article: serif body, drop cap, boxed short answer */
.post { max-width: 720px; }
.post__body { font-family: var(--font-display); font-size: 1.2rem; line-height: 1.7; color: #222; }
.post__body h2, .post__body h3 { font-family: var(--font-display); }
.post__body > p:first-of-type::first-letter { float: left; font-size: 4.2em; line-height: 0.85; padding: 0.06em 0.1em 0 0; font-weight: 700; color: var(--accent); }
.post__body th { color: var(--text); font-family: var(--font-body); text-transform: uppercase; font-size: 0.78rem; letter-spacing: 0.08em; }
.post__body table { font-family: var(--font-body); font-size: 0.95rem; }
.post__body a { color: var(--accent); text-decoration: underline; }
.post__body figcaption { font-family: var(--font-body); }
.answer-box { border: 2px solid var(--text); border-left: 8px solid var(--accent); background: var(--bg-card); }
.answer-box p { font-family: var(--font-display); font-size: 1.15rem; }
.post__author { background: var(--bg-card); }
.band { background: var(--bg-card); border: 1px solid var(--line-strong); border-left: 6px solid var(--accent); }
.px-orb { opacity: 0.06; }
/* reading progress bar, pure CSS (scroll-driven animation where supported) */
@supports (animation-timeline: scroll()) {
  body:has(.post)::after {
    content: ""; position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 200;
    background: var(--accent); transform-origin: 0 50%; transform: scaleX(0);
    animation: read-progress linear both; animation-timeline: scroll(root);
  }
  @keyframes read-progress { to { transform: scaleX(1); } }
}
