/* The Company Chronicle: editorial design system */
:root {
  --paper: #FBF8F1;
  --paper-2: #F4EFE3;
  --ink: #17140F;
  --ink-2: #3A342B;
  --muted: #6B6255;
  --rule: #D9D1C1;
  --rule-strong: #17140F;
  --red: #A4161A;
  --red-dk: #7E1013;
  --red-lt: #F6E6E2;
  --green: #0E9F6E;
  --green-dk: #067A54;
  --serif-d: "Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --serif: "Source Serif 4", "Source Serif Pro", Georgia, "Times New Roman", serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --measure: 68ch;
  /* Two content widths. Reading columns stay at --wrap so prose keeps a sane measure;
     data boards (scores, odds, heatmaps, markets) take --wrap-wide and use the screen. */
  --wrap: 1360px;
  --wrap-wide: min(1800px, 96vw);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 18px/1.65 var(--serif); font-optical-sizing: auto; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration-color: var(--red); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--red); }
h1, h2, h3, h4 { font-family: var(--serif-d); font-weight: 650; line-height: 1.12; letter-spacing: -.012em; margin: 0 0 .45em; font-variation-settings: "SOFT" 30; }
p { margin: 0 0 1.05em; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding-inline: max(18px, env(safe-area-inset-left, 0px)); }
.wrap.wide { max-width: var(--wrap-wide); }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 12px; top: 12px; z-index: 100; background: #fff; padding: 8px 12px; font-family: var(--sans); }
.sr, .hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hp { left: -9999px !important; }
:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.ui, .kicker, .byline, .byline-sm, .crumbs, .btn, label, input, textarea, select { font-family: var(--sans); }
.muted { color: var(--muted); }
.small { font-size: .86rem; }

/* Masthead */
.masthead { border-bottom: 1px solid var(--rule-strong); background: var(--paper); }
.dateline { display: flex; justify-content: space-between; gap: 1rem; font: 500 .74rem/1 var(--sans); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); padding-block: .75rem; border-bottom: 1px solid var(--rule); }
.dateline-r { display: flex; gap: 1.1rem; }
.dateline a { text-decoration: none; }
.mast-title { text-align: center; padding-block: 1.6rem 1.1rem; }
.nameplate { display: inline-block; max-width: 100%; text-decoration: none; line-height: 0; }
.nameplate img { display: block; width: 360px; max-width: 100%; height: auto; }
.nameplate-home img { width: 640px; }
.nameplate-sm img { width: 220px; }
.motto { display: none; margin: .6rem 0 0; font: 500 .72rem/1.3 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--ink-2); }
.sections { border-top: 3px double var(--rule-strong); }
.sections-in { display: flex; justify-content: center; gap: .2rem 1.6rem; flex-wrap: wrap; padding-block: .6rem; }
.sections a { font: 600 .8rem/1.2 var(--sans); letter-spacing: .07em; text-transform: uppercase; text-decoration: none; padding: .25rem 0; border-bottom: 2px solid transparent; white-space: nowrap; }
.sections a[aria-current="page"], .sections a:hover { color: var(--red); border-bottom-color: var(--red); }

/* Common labels */
.kicker { font: 700 .72rem/1.3 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--red); margin: 0 0 .5rem; }
.kicker a { text-decoration: none; color: inherit; }
.dek { font: 400 1.25rem/1.45 var(--serif); color: var(--ink-2); margin: 0 0 1rem; }
.byline { font-size: .84rem; color: var(--muted); display: flex; flex-wrap: wrap; gap: .3rem .9rem; align-items: center; }
.byline b { color: var(--ink); font-weight: 600; }
.byline-sm { font: 500 .76rem/1.4 var(--sans); color: var(--muted); margin: 0; }
.sponsored-tag { display: inline-block; font: 700 .66rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; background: #FFF3C4; color: #6B4E00; border: 1px solid #E5C55A; padding: .28rem .45rem; border-radius: 3px; vertical-align: middle; }
.crumbs { font-size: .78rem; color: var(--muted); display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.4rem 0 1rem; }
.crumbs a { text-decoration: none; }
.crumbs > * { min-width: 0; overflow-wrap: anywhere; }
.story, .page, .story-body, .prose, .story-head { min-width: 0; }
.chart, .chart-scroll { max-width: 100%; }

/* Buttons & forms */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); font: 600 .92rem/1 var(--sans); padding: .85rem 1.2rem; border-radius: 2px; cursor: pointer; text-decoration: none; white-space: nowrap; transition: background .15s; }
.btn:hover { background: var(--red); border-color: var(--red); color: #fff; }
.btn-ghost { background: transparent; color: var(--ink); }
.btn-ghost:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.btn[disabled] { opacity: .6; cursor: progress; }
label { display: block; font-weight: 600; font-size: .86rem; margin: 0 0 .35rem; color: var(--ink); }
.hint { font: 400 .8rem/1.45 var(--sans); color: var(--muted); margin: .3rem 0 0; }
input, textarea, select { width: 100%; font-size: 1rem; padding: .75rem .85rem; border: 1px solid #BFB5A2; border-radius: 2px; background: #FFFDF8; color: var(--ink); }
textarea { font-family: var(--serif); font-size: 1.02rem; line-height: 1.55; resize: vertical; }
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(164, 22, 26, .14); }
.check { display: flex; gap: .65rem; align-items: flex-start; font-weight: 400; font-size: .92rem; line-height: 1.45; }
.check input { width: 1.1rem; height: 1.1rem; margin: .15rem 0 0; flex: none; accent-color: var(--red); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem 1.2rem; }
.form-grid .full { grid-column: 1 / -1; }
.form-card { background: #FFFDF8; border: 1px solid var(--rule); border-top: 3px solid var(--ink); padding: clamp(1.1rem, 3vw, 2rem); }
.form-card fieldset { border: 0; padding: 0; margin: 0 0 1.8rem; }
.form-card legend { font: 650 1.25rem/1.2 var(--serif-d); padding: 0; margin-bottom: 1rem; }
.req { color: var(--red); }
.alert { font: 500 .95rem/1.5 var(--sans); padding: 1rem 1.1rem; border-left: 4px solid var(--red); background: var(--red-lt); margin: 0 0 1.4rem; }
.alert-ok { border-color: var(--green); background: #E7F5EE; }
.form-msg { font: 500 .88rem/1.4 var(--sans); margin: .6rem 0 0; }
.form-msg:empty { display: none; }
.form-msg.ok { color: var(--green-dk); }
.form-msg.err { color: var(--red); }
.found-biz { font: 400 .9rem/1.5 var(--sans); background: #E7F5EE; border: 1px solid #BFE3D2; padding: .8rem 1rem; margin-bottom: 1.2rem; }

/* CheckThisBiz chip */
.ctb-chip { display: inline-flex; align-items: center; gap: .4rem; font: 600 .78rem/1.2 var(--sans); color: var(--ink); background: #FFFDF8; border: 1px solid var(--rule); border-radius: 999px; padding: .32rem .7rem .32rem .35rem; text-decoration: none; vertical-align: middle; transition: border-color .15s; }
.ctb-chip:hover { border-color: var(--green); color: var(--green-dk); }
.ctb-tick { width: 18px; height: 18px; border-radius: 50%; background: var(--green); color: #fff; display: grid; place-items: center; flex: none; }

/* Home */
.front { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 0 2.6rem; padding-block: 2rem 1rem; }
.lead-story { border-right: 1px solid var(--rule); padding-right: 2.6rem; }
.lead-story h2 { font-size: clamp(2rem, 4.6vw, 3.4rem); font-weight: 700; line-height: 1.04; margin-bottom: .35em; }
.lead-story h2 a { text-decoration: none; }
.lead-story .dek { font-size: 1.3rem; }
.lead-figure { margin: 1.4rem 0 1rem; }
.latest h2, .rail-h { font: 700 .78rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; border-top: 3px solid var(--ink); padding-top: .7rem; margin: 0 0 1rem; }
.latest ol { list-style: none; margin: 0; padding: 0; counter-reset: l; }
.latest li { counter-increment: l; display: grid; grid-template-columns: 2rem 1fr; padding: .85rem 0; border-bottom: 1px solid var(--rule); }
.latest li::before { content: counter(l); font: 700 1.5rem/1 var(--serif-d); color: var(--red); }
.latest a { font: 600 1.06rem/1.25 var(--serif-d); text-decoration: none; }
.latest .byline-sm { margin-top: .3rem; }
.rail { padding-block: 1.4rem; }
.rail-top { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; border-top: 3px solid var(--ink); padding-top: .7rem; margin-bottom: 1.2rem; }
.rail-top h2 { font: 700 1.55rem/1.1 var(--serif-d); margin: 0; }
.rail-top a.more { font: 600 .8rem/1 var(--sans); text-decoration: none; color: var(--red); white-space: nowrap; }
.rail-blurb { font-size: .98rem; color: var(--muted); margin: -.6rem 0 1.2rem; max-width: 60ch; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.grid-3 > * { padding: 0 1.4rem 1.2rem; border-left: 1px solid var(--rule); }
.grid-3 > :nth-child(3n + 1) { border-left: 0; padding-left: 0; }
.grid-3 > :nth-child(3n) { padding-right: 0; }
.card { margin: 0; }
.card-h { font-size: 1.32rem; line-height: 1.18; margin: 0 0 .45rem; }
.card-h a { text-decoration: none; }
.card-h a:hover { text-decoration: underline; }
.card-dek { font-size: .98rem; line-height: 1.5; color: var(--ink-2); margin: 0 0 .55rem; }
.two-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.6rem; }

.empty-state { background: var(--paper-2); border: 1px solid var(--rule); padding: clamp(1.2rem, 3vw, 2rem); }
.empty-state h3 { font-size: 1.6rem; }
.empty-state p { max-width: 62ch; }
.newsletter { background: var(--ink); color: var(--paper); padding: clamp(1.4rem, 4vw, 2.4rem); margin-block: 2rem; }
.newsletter h2 { font-size: clamp(1.5rem, 3vw, 2rem); color: var(--paper); }
.newsletter p { color: #D9D1C1; max-width: 56ch; }
.sub-row { display: flex; gap: .5rem; max-width: 520px; }
.newsletter input { background: #FFFDF8; border-color: transparent; }
.newsletter .btn { background: var(--red); border-color: var(--red); color: #fff; }
.newsletter .btn:hover { background: #fff; color: var(--ink); border-color: #fff; }
.newsletter .form-msg.ok { color: #8BE0BD; }
.newsletter .form-msg.err { color: #FFB4B0; }
.cta-band { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; align-items: center; border-block: 1px solid var(--ink); padding-block: 1.6rem; margin-block: 1.6rem; }
.cta-band h2 { font-size: 1.6rem; margin: 0 0 .3rem; }
.cta-band p { margin: 0; color: var(--ink-2); }

/* Story */
.story-head { max-width: 860px; margin: 0 auto; padding-top: .5rem; text-align: left; }
.story-head h1 { font-size: clamp(2.1rem, 5.4vw, 3.7rem); font-weight: 700; line-height: 1.04; letter-spacing: -.02em; margin-bottom: .35em; }
.story-head .dek { font-size: clamp(1.15rem, 2.4vw, 1.4rem); }
.story-meta { border-block: 1px solid var(--rule); padding-block: .7rem; margin: 1.2rem 0 2rem; }
.story-body { max-width: var(--measure); margin: 0 auto; }
.prose { max-width: var(--measure); }
.story-body, .prose { font-size: 1.1rem; line-height: 1.7; }
.prose h2, .story-body h2 { font-size: 1.7rem; margin: 2.2rem 0 .7rem; }
.prose h3, .story-body h3 { font-size: 1.28rem; margin: 1.8rem 0 .5rem; }
.story-body ul, .story-body ol, .prose ul, .prose ol { padding-left: 1.3rem; margin: 0 0 1.2em; }
.story-body li, .prose li { margin-bottom: .45em; }
.story-body li::marker { color: var(--red); }
.longread .story-body > p:first-of-type::first-letter { float: left; font: 700 4.6em/.8 var(--serif-d); margin: .08em .12em 0 0; color: var(--red); }
.story-body blockquote { margin: 1.6rem 0; padding-left: 1.2rem; border-left: 3px solid var(--red); font-style: italic; }
.story-body hr { border: 0; border-top: 1px solid var(--rule); margin: 2rem auto; width: 40%; }
.story-body a, .prose a { text-decoration-line: underline; }
.callout { background: var(--paper-2); border-top: 2px solid var(--ink); padding: 1.1rem 1.3rem; margin: 1.8rem 0; font-size: 1rem; }
.callout h3, .callout h2 { margin-top: 0 !important; font-size: 1.15rem !important; }
.callout > :last-child { margin-bottom: 0; }
.checklist { list-style: none; padding-left: 0 !important; }
.checklist li { position: relative; padding-left: 1.9rem; }
.checklist li::before { content: ""; position: absolute; left: 0; top: .32em; width: 1.05rem; height: 1.05rem; border: 1.5px solid var(--ink); border-radius: 2px; }
.story-foot { max-width: var(--measure); margin: 2.4rem auto 0; }
.related { border-top: 3px solid var(--ink); margin-top: 2.6rem; padding-top: 1rem; }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 1.4rem; }

/* Data figures */
.stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; border-block: 1px solid var(--ink); margin: 1.8rem 0; }
.stat { padding: 1rem .9rem 1rem 0; }
.stat + .stat { border-left: 1px solid var(--rule); padding-left: .9rem; }
.stat-v { display: block; font: 700 clamp(1.6rem, 4vw, 2.3rem)/1 var(--serif-d); color: var(--ink); letter-spacing: -.02em; }
.stat-l { display: block; font: 500 .78rem/1.35 var(--sans); color: var(--muted); margin-top: .45rem; }
.chart { margin: 1.8rem 0 2rem; }
.chart-cap { font: 700 .8rem/1.35 var(--sans); letter-spacing: .02em; color: var(--ink); border-top: 2px solid var(--ink); padding-top: .6rem; margin-bottom: .6rem; }
.chart-scroll { overflow-x: auto; }
.bars { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: .86rem; }
.bars thead th { font: 600 .68rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); text-align: left; padding: 0 0 .4rem; border-bottom: 1px solid var(--rule); }
.bars tbody th { font-weight: 500; text-align: left; padding: .45rem .8rem .45rem 0; border-bottom: 1px solid #ECE5D6; display: grid; grid-template-columns: 1.6rem minmax(0, 1fr); column-gap: .2rem; }
.bars tbody tr:hover th, .bars tbody tr:hover td { background: #F6F1E6; }
.bars-rank { grid-row: 1 / span 2; color: var(--muted); font-variant-numeric: tabular-nums; font-size: .78rem; padding-top: .05rem; }
.bars-l a { text-decoration: none; border-bottom: 1px solid var(--rule); }
.bars-l a:hover { border-bottom-color: var(--red); }
.bars-sub { color: var(--muted); font-size: .78rem; }
.bars-track { display: block; height: 10px; margin-top: .35rem; background: transparent; }
.bars-fill { display: block; height: 100%; background: var(--red); border-radius: 0 4px 4px 0; min-width: 3px; }
.bars td.bars-v, .bars th.bars-v { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 600; padding-left: .6rem; border-bottom: 1px solid #ECE5D6; vertical-align: bottom; padding-bottom: .45rem; }
.bars thead th.bars-v { font-weight: 600; vertical-align: bottom; }
.chart-note { font: 400 .78rem/1.45 var(--sans); color: var(--muted); margin: .6rem 0 0; }
.strip { display: flex; height: 26px; gap: 2px; background: var(--paper); }
.strip-seg { display: block; height: 100%; }
.strip-seg:first-child { border-radius: 3px 0 0 3px; }
.strip-seg:last-child { border-radius: 0 3px 3px 0; }
.strip-key { list-style: none; padding: 0 !important; margin: .7rem 0 0 !important; display: flex; flex-wrap: wrap; gap: .3rem 1.3rem; font: 400 .82rem/1.4 var(--sans); }
.strip-key li { margin: 0 !important; }
.strip-dot { display: inline-block; width: .7rem; height: .7rem; border-radius: 2px; margin-right: .4rem; vertical-align: -.05em; }
.s-a { background: var(--ink); }
.s-b { background: var(--red); }
.s-c { background: #B9AE98; }
.s-d { background: #E2D9C6; }
.method { background: var(--paper-2); border-top: 2px solid var(--ink); padding: 1.1rem 1.3rem; margin: 2.4rem 0 0; font: 400 .9rem/1.55 var(--sans); color: var(--ink-2); }
.method-h { font: 700 .78rem/1 var(--sans) !important; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 .8rem !important; }
.method p { margin: 0 0 .7rem; }
.source-line { font-size: .78rem; color: var(--muted); border-top: 1px solid var(--rule); padding-top: .7rem; margin: .8rem 0 0 !important; }
.place-list { columns: 2; column-gap: 2rem; font: 400 .92rem/1.5 var(--sans); list-style: none; padding: 0 !important; }
.place-list li { break-inside: avoid; padding: .25rem 0; border-bottom: 1px solid #ECE5D6; margin: 0 !important; display: flex; justify-content: space-between; gap: .8rem; }
.place-list span { color: var(--muted); font-variant-numeric: tabular-nums; }

/* Company-story components */
.pull { margin: 2.2rem 0; padding: 1.2rem 0; border-block: 1px solid var(--ink); text-align: center; }
.pull blockquote { margin: 0; padding: 0; border: 0; font-style: normal; }
.pull p { font: 500 clamp(1.4rem, 3.2vw, 1.9rem)/1.25 var(--serif-d); margin: 0; font-style: italic; }
.pull p::before { content: "\201C"; color: var(--red); }
.pull p::after { content: "\201D"; color: var(--red); }
.pull figcaption { font: 600 .78rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-top: .9rem; }
.timeline { margin: 2.2rem 0; }
.timeline-h { font: 700 .78rem/1 var(--sans) !important; letter-spacing: .12em; text-transform: uppercase; border-top: 3px solid var(--ink); padding-top: .7rem; }
.timeline ol { list-style: none; padding: 0 !important; margin: 1rem 0 0; position: relative; }
.timeline ol::before { content: ""; position: absolute; left: 4.6rem; top: .4rem; bottom: .4rem; width: 1px; background: var(--rule); }
.timeline li { display: grid; grid-template-columns: 4.1rem 1fr; gap: 1.1rem; padding-bottom: 1.2rem; position: relative; margin: 0 !important; }
.timeline li::after { content: ""; position: absolute; left: calc(4.6rem - 5px); top: .45rem; width: 11px; height: 11px; border-radius: 50%; background: var(--paper); border: 2px solid var(--red); }
.tl-year { font: 700 1.05rem/1.3 var(--serif-d); color: var(--red); text-align: right; }
.tl-body { padding-left: 1rem; }
.tl-body h3 { font-size: 1.08rem !important; margin: 0 0 .2rem !important; }
.tl-body p { margin: 0; font-size: .98rem; color: var(--ink-2); }
.factbox { border: 1px solid var(--ink); background: #FFFDF8; padding: 1rem 1.2rem 1.2rem; margin: 1.8rem 0; font-family: var(--sans); }
.factbox-h { font: 700 .74rem/1 var(--sans) !important; letter-spacing: .12em; text-transform: uppercase; color: var(--red); margin: 0 0 .8rem !important; }
.factbox dl { margin: 0 0 1rem; }
.factbox dl div { display: grid; grid-template-columns: 7rem 1fr; gap: .8rem; padding: .4rem 0; border-bottom: 1px solid #ECE5D6; font-size: .9rem; }
.factbox dt { color: var(--muted); }
.factbox dd { margin: 0; font-weight: 500; }
.qa dt { font: 700 1.05rem/1.4 var(--sans); margin-top: 1.8rem; }
.qa dd { margin: .5rem 0 0; }
.badge-box { display: flex; gap: 1.4rem; align-items: center; border: 1px dashed #BFB5A2; padding: 1.2rem; margin: 2rem 0; }
.badge-box h2 { font-size: 1.2rem !important; margin: 0 0 .3rem !important; }
.badge-code { font: 400 .76rem/1.4 ui-monospace, Menlo, Consolas, monospace; margin-top: .4rem; }

/* Section & pages */
.page { padding-block: 1rem 3rem; }
.page-head { max-width: 860px; padding-block: 1.8rem .6rem; border-bottom: 1px solid var(--rule); margin-bottom: 2rem; }
.page-head h1 { font-size: clamp(2.1rem, 5vw, 3.3rem); font-weight: 700; }
.section-list { list-style: none; padding: 0; margin: 0; }
.section-list li { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 1.6rem; padding: 1.4rem 0; border-bottom: 1px solid var(--rule); }
.section-list time { font: 500 .8rem/1.4 var(--sans); color: var(--muted); padding-top: .35rem; }
.section-list h2 { font-size: 1.55rem; margin: 0 0 .35rem; }
.section-list h2 a { text-decoration: none; }
.section-list p { margin: 0; color: var(--ink-2); }
.aside-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 3rem; align-items: start; }
.side-note { border-top: 3px solid var(--ink); padding-top: .8rem; font-size: .98rem; position: sticky; top: 1rem; }
.side-note h2 { font-size: 1.2rem; }
.steps { counter-reset: s; list-style: none; padding: 0 !important; }
.steps li { counter-increment: s; position: relative; padding-left: 2.4rem; margin-bottom: 1rem; }
.steps li::before { content: counter(s); position: absolute; left: 0; top: .05rem; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--ink); color: var(--paper); font: 700 .8rem/1.6rem var(--sans); text-align: center; }
.price-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; margin: 1.6rem 0 2.4rem; }
.price { border: 1px solid var(--rule); border-top: 3px solid var(--ink); background: #FFFDF8; padding: 1.3rem; display: flex; flex-direction: column; }
.price h3 { font-size: 1.3rem; margin: 0 0 .2rem; }
.price .amt { font: 700 2rem/1.1 var(--serif-d); color: var(--red); margin: .3rem 0 .8rem; }
.price .amt small { font: 500 .8rem var(--sans); color: var(--muted); }
.price ul { font: 400 .9rem/1.5 var(--sans); padding-left: 1.1rem; margin: 0; }
.not-found { text-align: center; padding-block: 4rem; }

/* Footer */
.footer { border-top: 3px double var(--ink); margin-top: 3rem; padding-block: 2.2rem 1.2rem; font: 400 .88rem/1.55 var(--sans); background: var(--paper); }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 2rem; }
.footer h2 { font: 700 .72rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; margin: .3rem 0 .9rem; }
.footer-grid > div > a { display: block; text-decoration: none; padding: .18rem 0; color: var(--ink-2); }
.footer-grid > div > a:hover { color: var(--red); }
.footer-about p { color: var(--muted); margin-top: .7rem; max-width: 42ch; }
.footer-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem 2rem; border-top: 1px solid var(--rule); margin-top: 2rem; padding-top: 1rem; font-size: .76rem; color: var(--muted); }

/* Responsive */
@media (max-width: 900px) {
  .front { grid-template-columns: 1fr; }
  .lead-story { border-right: 0; padding-right: 0; border-bottom: 1px solid var(--rule); padding-bottom: 1.4rem; margin-bottom: 1.6rem; }
  .grid-3 { grid-template-columns: 1fr; }
  .grid-3 > * { border-left: 0; padding: 0 0 1.1rem; margin-bottom: 1.1rem; border-bottom: 1px solid var(--rule); }
  .grid-3 > :last-child { border-bottom: 0; margin-bottom: 0; }
  .two-col, .aside-layout { grid-template-columns: 1fr; gap: 1.6rem; }
  .side-note { position: static; }
  .price-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-about { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  body { font-size: 17px; }
  .dateline { font-size: .66rem; }
  .dateline > span:first-child { display: none; }
  .dateline-r { width: 100%; justify-content: space-between; }
  .mast-title { padding-block: 1rem .8rem; }
  .nameplate img { width: 250px; }
  .nameplate-home img { width: 330px; }
  .motto { display: block; font-size: .62rem; letter-spacing: .2em; }
  .sections-in { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; gap: 1.2rem; }
  .sections-in::-webkit-scrollbar { display: none; }
  .story-body, .prose { font-size: 1.04rem; }
  .form-grid { grid-template-columns: 1fr; }
  .sub-row { flex-direction: column; }
  .section-list li { grid-template-columns: 1fr; gap: .3rem; }
  .place-list { columns: 1; }
  .cta-band { grid-template-columns: 1fr; }
  .badge-box { flex-direction: column; align-items: flex-start; }
  .stat + .stat { border-left: 0; padding-left: 0; }
  .stat { border-bottom: 1px solid var(--rule); }
  .stat-row { grid-template-columns: 1fr 1fr; column-gap: 1rem; }
  .timeline ol::before { left: 3.6rem; }
  .timeline li { grid-template-columns: 3.1rem 1fr; }
  .timeline li::after { left: calc(3.6rem - 5px); }
  .factbox dl div { grid-template-columns: 1fr; gap: .1rem; }
}
@media print {
  .masthead .sections, .dateline, .newsletter, .footer, .ctb-chip { display: none; }
  body { background: #fff; }
}

/* Get featured: package grid */
.pkg { margin: 0 0 2.6rem; }
.pkg > h2 { font-size: 1.7rem; margin: 0 0 1.1rem; }
.pkg-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.1rem; }
.pkg-item { border: 1px solid var(--rule); border-top: 3px solid var(--red); background: #FFFDF8; padding: 1.1rem 1.1rem 1rem; }
.pkg-item h3 { font-size: 1.12rem; margin: 0 0 .4rem; }
.pkg-item p { font: 400 .92rem/1.5 var(--sans); margin: 0; color: var(--ink-2); }
#apply > div > h2 { font-size: 1.6rem; margin-top: 0; }
@media (max-width: 900px) { .pkg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .pkg-grid { grid-template-columns: 1fr; } }

/* Sales pages */
.sales-head { max-width: 860px; }
.sales-head h1 { font-size: clamp(2rem, 5vw, 3.2rem); line-height: 1.08; }
.sales-cta { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.4rem; }
.sales-body { max-width: 980px; }
.sales-body > .prose, .sales-body > .callout { max-width: var(--measure); }
.sales-body > .prose h2 { font-size: clamp(1.4rem, 3vw, 1.8rem); margin-top: 2.2rem; }
.sales-grid { margin: 2rem 0; }
.compare-wrap { overflow-x: auto; margin: 1.6rem 0 2rem; }
.compare { width: 100%; border-collapse: collapse; font: 400 .95rem/1.45 var(--sans); min-width: 560px; }
.compare th, .compare td { text-align: left; padding: .8rem .9rem; border-bottom: 1px solid var(--rule); vertical-align: top; }
.compare tr:first-child th { border-bottom: 2px solid var(--ink); font-weight: 700; }
.compare .us { background: var(--red-lt); font-weight: 600; }
.sales-faq details { border-bottom: 1px solid var(--rule); padding: .9rem 0; }
.sales-faq summary { cursor: pointer; font: 600 1.02rem/1.4 var(--sans); list-style-position: outside; }
.sales-faq details p { margin: .6rem 0 0; }
.sales-band { display: flex; align-items: center; justify-content: space-between; gap: 1.4rem; background: var(--ink); color: var(--paper); padding: clamp(1.4rem, 4vw, 2.4rem); margin: 2.8rem 0 2rem; }
.sales-band h2 { color: var(--paper); margin: 0 0 .4rem; font-size: clamp(1.4rem, 3vw, 1.9rem); }
.sales-band p { margin: 0; font: 400 .98rem/1.5 var(--sans); opacity: .85; }
.btn-light { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.btn-light:hover { background: var(--red-lt); color: var(--ink); }
.sales-more h2 { font: 700 .78rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.sales-more ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; }
@media (max-width: 640px) { .sales-band { flex-direction: column; align-items: flex-start; } .sales-cta .btn { flex: 1; } }
@media (max-width: 640px) {
  .compare { min-width: 0; }
  .compare, .compare tbody, .compare tr, .compare th, .compare td { display: block; }
  .compare .compare-head { display: none; }
  .compare tr { border: 1px solid var(--rule); margin-bottom: .8rem; background: #FFFDF8; }
  .compare th { border-bottom: 1px solid var(--rule); font-weight: 700; }
  .compare td { border-bottom: 0; padding: .55rem .9rem; }
  .compare td::before { content: attr(data-label); display: block; font: 700 .68rem/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: .15rem; }
}

/* Recommended funder card (partner, labeled) */
.funder-card { border: 1px solid var(--rule-strong); border-top: 4px solid #FF6B35; background: #FFFDF8; padding: 1.2rem 1.3rem 1rem; margin: 2.2rem 0; font-family: var(--sans); }
.funder-top { display: flex; align-items: center; gap: .6rem; margin-bottom: .6rem; }
.funder-eyebrow { font: 700 .72rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); }
.partner-tag { font: 700 .62rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--rule-strong); padding: .22rem .4rem; border-radius: 3px; }
.funder-logo { display: inline-block; line-height: 0; }
.funder-logo img { width: 200px; height: auto; }
.funder-lead { font-size: .98rem; margin: .5rem 0 .7rem; color: var(--ink); }
.funder-products { list-style: none; padding: 0 !important; margin: 0 0 1rem !important; display: flex; flex-wrap: wrap; gap: .4rem; }
.funder-products li { margin: 0 !important; }
.funder-products a { display: inline-block; font-size: .84rem; font-weight: 600; text-decoration: none; border: 1px solid var(--rule-strong); border-radius: 999px; padding: .35rem .7rem; background: #fff; }
.funder-products a:hover { border-color: #FF6B35; color: var(--ink); }
.funder-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; }
.funder-btn { background: #FF6B35 !important; border-color: #FF6B35 !important; color: #fff !important; }
.funder-btn:hover { background: #E85A25 !important; }
.funder-phone { font-weight: 700; text-decoration: none; }
.funder-note { font-size: .78rem; color: var(--muted); margin: .8rem 0 0; }

/* Live markets: ticker band, boards, crypto table */
.ticker-band { background: #0E0E0E; min-height: 46px; border-bottom: 2px solid var(--red); }
.ticker-band .tv-wrap { max-width: 100%; }
.nav-live { color: var(--red) !important; }
.nav-live::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--red); margin-right: .4rem; vertical-align: middle; animation: pulse 1.6s infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
.tv-wrap { width: 100%; }
.section-live { margin: 0 0 2rem; }
.data-credit { font: 400 .74rem/1.4 var(--sans); color: var(--muted); margin: .5rem 0 0; }
.mk-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 1.4rem; }
.mk-card { border-top: 3px solid var(--ink); padding-top: .7rem; }
.mk-card h2 { font: 700 .8rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; margin: 0 0 .8rem; }
.mk-card h2 small { color: var(--red); letter-spacing: .08em; }
.crypto-board table { width: 100%; border-collapse: collapse; font: 500 .95rem/1.3 var(--sans); }
.crypto-board th, .crypto-board td { padding: .6rem .3rem; border-bottom: 1px solid var(--rule); text-align: right; }
.crypto-board th:first-child { text-align: left; }
.crypto-board thead th { font: 700 .68rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.crypto-board tbody th small { color: var(--muted); font-weight: 500; }
.crypto-board .px { font-variant-numeric: tabular-nums; font-weight: 700; transition: background .6s; }
.crypto-board .px.up { animation: flashUp .9s; } .crypto-board .px.down { animation: flashDown .9s; }
@keyframes flashUp { from { background: #D9F2E1; } to { background: transparent; } }
@keyframes flashDown { from { background: #F8DADA; } to { background: transparent; } }
.crypto-board .pos { color: #1B7A3E; font-weight: 700; } .crypto-board .neg { color: var(--red); font-weight: 700; }
.live-dot { font: 500 .74rem/1 var(--sans); color: var(--muted); margin: .6rem 0 0; }
.live-dot span { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #1B7A3E; margin-right: .35rem; animation: pulse 1.6s infinite; }
@media (max-width: 900px) { .mk-grid { grid-template-columns: 1fr; } }
.sections-in { gap: .2rem 1.25rem; }
@media (max-width: 640px) { .ticker-band { min-height: 40px; } }

/* News front page */
.front-news { grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); }
.river { margin-top: 2rem; }
.river ul { list-style: none; margin: 0; padding: 0; }
.river li { display: grid; grid-template-columns: 7.5rem 1fr auto; gap: .2rem .9rem; align-items: baseline; padding: .75rem 0; border-bottom: 1px solid var(--rule); }
.river-sec a { font: 700 .68rem/1.2 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--red); text-decoration: none; }
.river-h { font: 600 1.05rem/1.3 var(--serif-d); text-decoration: none; }
.river time { font: 400 .74rem/1 var(--sans); color: var(--muted); white-space: nowrap; }
.markets-rail .rail-h a { text-decoration: none; }
.section-picker { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 2.2rem 0 1rem; padding: 1rem 0; border-top: 3px double var(--rule-strong); border-bottom: 1px solid var(--rule); }
.section-picker span { font: 700 .72rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-right: .3rem; }
.section-picker a { font: 600 .86rem/1 var(--sans); text-decoration: none; border: 1px solid var(--rule-strong); border-radius: 999px; padding: .5rem .9rem; background: #FFFDF8; }
.section-picker a:hover, .section-picker a.on { background: var(--ink); color: var(--paper); border-color: var(--ink); }
@media (max-width: 900px) { .front-news { grid-template-columns: 1fr; } .front-news .lead-story { border-right: 0; padding-right: 0; } }
@media (max-width: 640px) { .river li { grid-template-columns: 1fr; } .section-picker { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; } }
.lead-story .river h2.rail-h { font: 700 .78rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; margin: 0 0 .4rem; }
.story-live { margin: 2.4rem 0 0; }
.ticker-band { display: flex; align-items: stretch; }
.ticker-band .tv-wrap { flex: 1; min-width: 0; }
.mkt-clock { flex: none; display: flex; align-items: center; gap: .45rem; padding: 0 .9rem; background: #1A1A1A; border-right: 1px solid #333; color: #EDEDED; font: 600 .74rem/1 var(--sans); white-space: nowrap; font-variant-numeric: tabular-nums; }
.mkt-clock .mkt-state { font-weight: 800; letter-spacing: .04em; text-transform: uppercase; font-size: .68rem; }
.mkt-dot { width: 8px; height: 8px; border-radius: 50%; background: #888; }
.mkt-open .mkt-dot { background: #2BD66A; animation: pulse 1.6s infinite; } .mkt-open .mkt-state { color: #2BD66A; }
.mkt-ext .mkt-dot { background: #F5B83D; } .mkt-ext .mkt-state { color: #F5B83D; }
.mkt-closed .mkt-state { color: #BBB; }
@media (max-width: 640px) { .mkt-clock .mkt-state { display: none; } .mkt-clock { padding: 0 .6rem; } }

/* Economic calendar */
.cal-next { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1rem; background: var(--ink); color: var(--paper); padding: .9rem 1.1rem; margin: 0 0 1.2rem; font-family: var(--sans); }
.cal-next-l { font: 700 .68rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: #F5B83D; }
.cal-next b { font-size: 1.05rem; }
.cal-count { font-variant-numeric: tabular-nums; font-weight: 700; color: #2BD66A; margin-left: auto; }
.cal-filters { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; align-items: center; margin: 0 0 1.4rem; position: sticky; top: 0; background: var(--paper); padding: .6rem 0; z-index: 5; border-bottom: 1px solid var(--rule); }
.cal-chips { display: flex; flex-wrap: wrap; gap: .3rem; }
.cal-chips button { font: 600 .8rem/1 var(--sans); border: 1px solid var(--rule-strong); background: #FFFDF8; padding: .45rem .7rem; border-radius: 999px; cursor: pointer; }
.cal-chips button.on { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.cal-today { font: 600 .8rem/1 var(--sans); display: flex; gap: .35rem; align-items: center; }
.cal-day { margin: 0 0 1.8rem; }
.cal-day h2 { font: 700 .82rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; border-top: 3px solid var(--ink); padding-top: .7rem; margin: 0 0 .3rem; }
.cal-day h2 span { background: var(--red); color: #fff; padding: .2rem .45rem; border-radius: 3px; margin-left: .4rem; font-size: .66rem; }
.cal-row { display: grid; grid-template-columns: 5.2rem 4.4rem 3.4rem minmax(0, 1fr) 5.4rem 5.4rem; gap: .6rem; align-items: center; padding: .6rem .3rem; font: 500 .9rem/1.3 var(--sans); }
.cal-head { font: 700 .66rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid var(--rule-strong); }
.cal-ev { border-bottom: 1px solid var(--rule); }
.cal-ev summary { cursor: pointer; list-style: none; }
.cal-ev summary::-webkit-details-marker { display: none; }
.cal-ev summary:hover { background: #F3EDE0; }
.cal-ev[open] summary { background: #F3EDE0; }
.c-time { font-variant-numeric: tabular-nums; color: var(--ink-2); }
.c-ev { font-weight: 600; }
.imp-high .c-ev { font-weight: 800; }
.c-num { text-align: right; font-variant-numeric: tabular-nums; }
.c-imp { display: inline-flex; gap: 2px; }
.c-imp i { width: 6px; height: 14px; border-radius: 1px; background: #DDD5C4; }
.imp-low .c-imp i:nth-child(1) { background: #E5C55A; }
.imp-medium .c-imp i:nth-child(-n+2) { background: #E8892B; }
.imp-high .c-imp i { background: var(--red); }
.imp-holiday .c-imp i { background: #BDB4A3; }
.cal-guide { padding: .4rem .6rem 1rem 5.8rem; font: 400 .9rem/1.5 var(--sans); }
.cal-guide p { margin: .3rem 0; }
.cal-sides { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin: .6rem 0; }
.cal-sides > div { border: 1px solid var(--rule); padding: .6rem .8rem; background: #FFFDF8; }
.cal-sides h4 { font: 700 .72rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; margin: 0 0 .4rem; }
.side-hot { border-top: 3px solid var(--red) !important; } .side-cool { border-top: 3px solid #1B7A3E !important; }
.muted { color: var(--muted); }
.mk-card h2 small a { font-size: .8em; text-transform: none; letter-spacing: 0; }
@media (max-width: 720px) {
  .cal-row { grid-template-columns: 4.4rem 3.6rem minmax(0, 1fr); }
  .cal-head span:nth-child(3), .cal-head span:nth-child(5), .cal-head span:nth-child(6) { display: none; }
  .c-imp { display: none; } .c-num { grid-column: 3; text-align: left; font-size: .8rem; color: var(--muted); }
  .c-num::before { content: "F: "; } .c-num + .c-num::before { content: "P: "; }
  .cal-guide { padding-left: .6rem; } .cal-sides { grid-template-columns: 1fr; }
}

/* Business funding center */
.fund-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 2.4rem; align-items: start; }
.fund-side { position: sticky; top: 1rem; }
.fund-side .funder-card { margin-top: 0; }
.fund-picker h2, .fund-compare h2, .fund-group h2 { font: 700 .8rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; border-top: 3px solid var(--ink); padding-top: .7rem; margin: 0 0 1rem; }
.fund-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; margin-bottom: 2.4rem; }
.fund-tiles a { display: block; text-decoration: none; border: 1px solid var(--rule-strong); background: #FFFDF8; padding: .9rem 1rem; font-family: var(--sans); }
.fund-tiles a:hover { border-color: var(--ink); background: #fff; }
.fund-tiles b { display: block; font-size: .98rem; margin-bottom: .25rem; }
.fund-tiles span { font-size: .8rem; color: var(--muted); }
.table-wrap { overflow-x: auto; }
.fund-compare table { width: 100%; border-collapse: collapse; font: 400 .88rem/1.4 var(--sans); min-width: 620px; }
.fund-compare th, .fund-compare td { text-align: left; padding: .6rem .5rem; border-bottom: 1px solid var(--rule); vertical-align: top; }
.fund-compare th { font: 700 .68rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); border-bottom: 2px solid var(--ink); }
.fund-group { margin: 2.2rem 0 0; }
.fund-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.fund-card { display: block; text-decoration: none; border-top: 3px solid var(--red); background: #FFFDF8; border-left: 1px solid var(--rule); border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: .9rem 1rem; }
.fund-card b { display: block; font: 700 1.05rem/1.25 var(--serif-d); margin-bottom: .3rem; }
.fund-card span { font: 400 .86rem/1.45 var(--sans); color: var(--ink-2); }
.fund-quick { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; border: 1px solid var(--rule-strong); margin: 0 0 1.8rem; background: #FFFDF8; }
.fund-quick div { padding: .7rem .8rem; border-left: 1px solid var(--rule); }
.fund-quick div:first-child { border-left: 0; }
.fund-quick dt { font: 700 .64rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: .35rem; }
.fund-quick dd { margin: 0; font: 600 .86rem/1.35 var(--sans); }
.fund-faq { border-bottom: 1px solid var(--rule); padding: .7rem 0; }
.fund-faq summary { cursor: pointer; font: 600 1rem/1.4 var(--sans); }
.fund-links { list-style: none; padding: 0 !important; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; }
.calc { border: 1px solid var(--rule-strong); background: #FFFDF8; padding: 1.2rem 1.3rem; margin: 0 0 1.8rem; }
.calc h2 { font-size: 1.3rem; margin: 0 0 1rem; }
.calc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .8rem; }
.calc label { font: 600 .8rem/1.3 var(--sans); display: flex; flex-direction: column; gap: .3rem; }
.calc input, .calc select { font: 500 1rem/1.2 var(--sans); padding: .55rem .6rem; border: 1px solid var(--rule-strong); background: #fff; }
.calc-out { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .8rem; margin-top: 1.1rem; }
.calc-out div { background: var(--ink); color: var(--paper); padding: .7rem .9rem; }
.calc-out span { display: block; font: 600 .68rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; opacity: .75; margin-bottom: .35rem; }
.calc-out b { font: 700 1.3rem/1.1 var(--sans); font-variant-numeric: tabular-nums; }
@media (max-width: 900px) { .fund-layout { grid-template-columns: 1fr; } .fund-side { position: static; } .fund-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fund-quick { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .fund-tiles, .fund-cards { grid-template-columns: 1fr; } }
.web-card { border-top-color: #1E9AF4; }
.web-card .funder-btn { background: #1E9AF4 !important; border-color: #1E9AF4 !important; }
.calc-rec { margin-top: 1.2rem; border-top: 4px solid #FF6B35; background: #fff; padding: 1rem 1.1rem; font-family: var(--sans); }
.calc-rec-top { display: flex; gap: .5rem; align-items: center; margin-bottom: .5rem; }
.calc-rec-logo img { width: 200px; height: auto; display: block; }
.calc-rec p { font-size: .92rem; margin: .5rem 0; }
.calc-rec-cta { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: center; }
.trader-point { text-decoration: none; display: block; }
.trader-point:hover { background: #fff; }
.trader-live, .trader-latest { margin: 2.4rem 0 0; }
.footer-grid { grid-template-columns: 1.4fr repeat(4, 1fr); }
@media (max-width: 900px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
.views { font-variant-numeric: tabular-nums; white-space: nowrap; }
.views b { font-weight: 700; }
.views.bump b { animation: viewBump .9s; }
@keyframes viewBump { 0% { color: var(--red); transform: scale(1.12); display: inline-block; } 100% { color: inherit; transform: none; } }
.page-views { font: 500 .78rem/1 var(--sans); color: var(--muted); padding: 1.4rem 0 0; }

/* ---- Fight desk ---- */
.fight-list { width: 100%; border-collapse: collapse; margin: 0 0 1.6rem; }
.fight-list tr { border-bottom: 1px solid var(--rule); }
.fight-list td { padding: .75rem .5rem; vertical-align: top; }
.fd-date { width: 4.4rem; font-family: var(--sans); line-height: 1.15; }
.fd-date span { display: block; font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.fd-date b { font-size: 1rem; }
.fd-name a { font-weight: 700; text-decoration: none; }
.fd-name a:hover { text-decoration: underline; }
.fd-main { display: block; font-size: .82rem; color: var(--muted); margin-top: .15rem; }
.fd-promo { width: 6rem; }
.fd-when { width: 6.5rem; text-align: right; font-family: var(--sans); font-size: .8rem; color: var(--muted); white-space: nowrap; }
.fight-card { width: 100%; border-collapse: collapse; margin: 0 0 1.2rem; }
.fight-card th { text-align: left; font: 700 .68rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase;
  color: var(--muted); padding: .5rem .5rem; border-bottom: 2px solid var(--ink); }
.fight-card td { padding: .7rem .5rem; border-bottom: 1px solid var(--rule); vertical-align: top; }
.fight-card tr.main-ev td { background: #FBF7EC; }
.fight-card .rec { font-size: .78rem; color: var(--muted); font-weight: 400; }
.fd-recent { list-style: none; padding: 0; margin: 0 0 1.4rem; }
.fd-recent li { padding: .4rem 0; border-bottom: 1px solid var(--rule); }
@media (max-width: 620px) {
  .fd-when, .fight-card th:nth-child(2), .fight-card td:nth-child(2) { display: none; }
  .fd-promo { width: 4.5rem; }
}

/* ---- Scoreboard ---- */
.sc-tabs { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.4rem; font-family: var(--sans); }
.sc-tabs a { font-size: .8rem; font-weight: 600; padding: .35rem .7rem; border: 1px solid var(--rule);
  text-decoration: none; color: var(--ink); }
.sc-tabs a.on { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.sc-list { width: 100%; border-collapse: collapse; margin: 0 0 1.8rem; }
.sc-list th { text-align: left; font: 700 .66rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase;
  color: var(--muted); padding: .45rem .5rem; border-bottom: 2px solid var(--ink); }
.sc-list td { padding: .65rem .5rem; border-bottom: 1px solid var(--rule); vertical-align: middle; }
.sc-list tr.sc-live { background: #FBF7EC; }
.sc-teams span { display: block; line-height: 1.35; }
.sc-teams i { font-style: normal; font-size: .72rem; color: var(--muted); font-weight: 700; }
.sc-teams .rec { font-size: .74rem; color: var(--muted); }
.sc-teams em { font-style: normal; font-weight: 700; float: right; }
.sc-meta { font-size: .75rem; color: var(--muted); margin-top: .2rem; }
.sc-num { font-family: var(--sans); font-size: .88rem; white-space: nowrap; width: 7rem; }
.sc-ml { display: block; font-size: .74rem; color: var(--muted); }
.sc-prob { font-family: var(--sans); font-size: .78rem; width: 12rem; }
.sc-prob b { font-size: .92rem; }
.pb { display: block; height: 5px; background: var(--rule); margin-bottom: .3rem; }
.pb span { display: block; height: 5px; background: #1F6F4A; }
.sc-book { width: 5rem; text-align: right; }
@media (max-width: 720px) {
  .sc-list th:nth-child(3), .sc-list td:nth-child(3), .sc-book { display: none; }
  .sc-prob { width: 8rem; font-size: .72rem; }
}

/* ---- The Board ---- */
.bd-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 1.2rem; margin: 0 0 1.6rem; }
.bd-card { border: 1px solid var(--rule); padding: 1rem 1.1rem; }
.bd-card.bd-wide { grid-column: 1 / -1; }
.bd-card > h2 { margin: 0 0 .7rem; font-size: 1.05rem; border-bottom: 2px solid var(--ink); padding-bottom: .4rem; }
.bd-card > h2 small { font: 700 .62rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase;
  color: #1F6F4A; margin-left: .4rem; }
.bd-list { list-style: none; padding: 0; margin: 0; }
.bd-list li { padding: .45rem 0; border-bottom: 1px solid var(--rule); }
.bd-list li:last-child { border-bottom: 0; }
.bd-list a { text-decoration: none; font-weight: 600; }
.bd-list a:hover { text-decoration: underline; }
.bd-list .small { display: block; color: var(--muted); }
.bd-games { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: .85rem; }
.bd-games td { padding: .45rem .4rem; border-bottom: 1px solid var(--rule); white-space: nowrap; }
.bd-games tr:last-child td { border-bottom: 0; }
.bd-lg { color: var(--muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; width: 5.5rem; }
.bd-mu .at { color: var(--muted); font-weight: 400; margin: 0 .2rem; }
.bd-mu em { font-style: normal; font-weight: 700; }
.bd-when, .bd-line, .bd-prob { color: var(--muted); font-size: .8rem; text-align: right; }
.bd-prob b { color: var(--ink); }
@media (max-width: 800px) {
  .bd-grid { grid-template-columns: 1fr; }
  .bd-card.bd-wide { grid-column: auto; }
  .bd-line { display: none; }
}
.sc-src { display: block; color: var(--muted); font-size: .7rem; margin-top: .2rem; }
.sc-src .gap { color: #A4161A; }
.sc-book { width: 10rem; text-align: right; }
.bp { display: block; font-family: var(--sans); font-size: .76rem; color: var(--muted); white-space: nowrap; }
.bp b { color: var(--ink); }
.bp i { font-style: normal; }
.fund-note { border: 1px solid var(--rule); border-left: 4px solid var(--muted); padding: .9rem 1rem; margin: 0 0 1.2rem; }
.fund-note p { margin: 0; font-size: .92rem; }

/* ---- Story photo ---- */
.story-photo { margin: 0 0 1.6rem; }
.story-photo img { display: block; width: 100%; height: auto; border: 1px solid var(--rule); }
.story-photo figcaption { font: .82rem/1.45 var(--sans); color: var(--muted); padding: .45rem .1rem 0; }
.story-photo .credit { color: var(--muted); }

/* ---- Schedules ---- */
.sched-day { font-size: 1.05rem; margin: 1.6rem 0 .5rem; border-bottom: 2px solid var(--ink); padding-bottom: .35rem; }
.sched-day small { font: 700 .62rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: #1F6F4A; margin-left: .4rem; }
.sched-list { width: 100%; border-collapse: collapse; }
.sched-list td { padding: .55rem .5rem; border-bottom: 1px solid var(--rule); vertical-align: top; }
.sd-time { width: 5.5rem; font-family: var(--sans); font-size: .82rem; color: var(--muted); white-space: nowrap; }
.sd-lg { width: 7rem; }
.sd-mu .at { color: var(--muted); margin: 0 .25rem; }
.sd-mu i { font-style: normal; font-size: .74rem; color: var(--muted); font-weight: 700; }
.sd-mu .rec { font-size: .76rem; color: var(--muted); }
.sd-venue { display: block; font-size: .76rem; color: var(--muted); margin-top: .1rem; }
.sd-tv { width: 6rem; text-align: right; font-family: var(--sans); font-size: .78rem; color: var(--muted); }
@media (max-width: 700px) { .sd-tv, .sd-venue { display: none; } .sd-lg { width: 5rem; } }
.sec-sched { border: 1px solid var(--rule); padding: 1rem 1.1rem; margin: 0 0 1.6rem; }
.sec-sched h2 { margin: 0 0 .6rem; font-size: 1.02rem; border-bottom: 2px solid var(--ink); padding-bottom: .35rem; }

/* ---- Sports dropdown ---- */
.nav-drop { position: relative; display: inline-block; }
.nav-drop > summary { list-style: none; cursor: pointer; display: inline-block; }
.nav-drop > summary::-webkit-details-marker { display: none; }
.nav-drop > summary::after { content: " ▾"; font-size: .7em; opacity: .7; }
.nav-drop[open] > summary { color: var(--accent, #A4161A); }
.nav-drop-menu { position: absolute; top: 100%; left: 0; z-index: 40; min-width: 12.5rem;
  background: var(--paper, #FBF8F1); border: 1px solid var(--ink); box-shadow: 4px 4px 0 rgba(0,0,0,.12); padding: .3rem 0; }
.nav-drop-menu a { display: block; padding: .45rem .9rem; white-space: nowrap; }
.nav-drop-menu a:hover { background: rgba(0,0,0,.05); }
@media (max-width: 760px) {
  .nav-drop-menu { position: static; border: 0; box-shadow: none; padding: 0 0 0 .8rem; min-width: 0; background: none; }
  .nav-drop-menu a { display: inline-block; padding: .3rem .55rem .3rem 0; }
}

/* ---- Charts ---- */
.chart-wrap { border: 1px solid var(--rule); margin: 0 0 .6rem; }
.chart-wrap .tv-wrap { min-height: 640px; }
.chart-h { font-size: .95rem; margin: 1.2rem 0 .5rem; color: var(--muted);
  font-family: var(--sans); text-transform: uppercase; letter-spacing: .08em; }
.chart-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; }
.chart-chips a { font: 600 .82rem/1 var(--sans); padding: .42rem .75rem; border: 1px solid var(--rule);
  text-decoration: none; color: var(--ink); }
.chart-chips a.on { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.chart-practice { border: 1px solid var(--rule); border-left: 4px solid #1F6F4A; padding: 1rem 1.1rem; margin: 1.4rem 0; }
.chart-practice h2 { margin: 0 0 .5rem; font-size: 1.05rem; border: 0; padding: 0; }
.board-charts { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin: .7rem 0 0; }
.board-charts span { font: 700 .66rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-right: .2rem; }
.board-charts a { font: 600 .78rem/1 var(--sans); padding: .35rem .6rem; border: 1px solid var(--rule); text-decoration: none; color: var(--ink); }
.board-charts a:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.crypto-board th a { text-decoration: none; }
.crypto-board th a:hover { text-decoration: underline; }

/* ---- Funder card call-to-action ---- */
.funder-actions { display: flex; flex-wrap: wrap; align-items: stretch; gap: .6rem; margin: .9rem 0 .5rem; }
.funder-call { display: flex; flex-direction: column; justify-content: center; text-decoration: none;
  background: #FF6B35; color: #fff; padding: .6rem 1.1rem; border: 2px solid #E3541F; border-radius: 6px;
  box-shadow: 0 2px 0 #C4470F; line-height: 1.15; flex: 1 1 auto; min-width: 12rem; }
.funder-call:hover { background: #F2551B; color: #fff; }
.funder-call .fc-label { font: 700 .66rem/1 var(--sans); letter-spacing: .13em; text-transform: uppercase; opacity: .95; }
.funder-call .fc-num { font: 800 1.22rem/1.2 var(--sans); letter-spacing: .01em; margin-top: .15rem; }
.funder-btn { display: inline-flex; align-items: center; justify-content: center; border-radius: 6px;
  padding: .6rem 1.1rem; font-weight: 700; flex: 0 1 auto; }
@media (max-width: 520px) { .funder-actions { flex-direction: column; } .funder-call, .funder-btn { width: 100%; text-align: center; } .funder-call { align-items: center; } }

/* ---- Meme coin board ---- */
.tok-h { font-size: 1.05rem; margin: 1.5rem 0 .5rem; border-bottom: 2px solid var(--ink); padding-bottom: .35rem; }
.tok-h small { font: 700 .62rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: #A4161A; margin-left: .45rem; }
.tok-list { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: .85rem; }
.tok-list th { text-align: left; font: 700 .64rem/1 var(--sans); letter-spacing: .09em; text-transform: uppercase;
  color: var(--muted); padding: .45rem .5rem; border-bottom: 2px solid var(--ink); white-space: nowrap; }
.tok-list td { padding: .55rem .5rem; border-bottom: 1px solid var(--rule); vertical-align: middle; white-space: nowrap; }
.tk-sym b { display: block; font-size: .95rem; }
.tk-sym span { font-size: .72rem; color: var(--muted); }
.tk-px, .tk-n { font-variant-numeric: tabular-nums; }
.tk-up { color: #1B7A3E; font-weight: 700; }
.tk-dn { color: #A4161A; font-weight: 700; }
.tk-flash { animation: tkflash .9s ease-out; }
@keyframes tkflash { from { background: #FFF3C4; } to { background: transparent; } }
.bs-bar { display: block; height: 4px; background: #A4161A; width: 4.5rem; margin-bottom: .2rem; }
.bs-bar span { display: block; height: 4px; background: #1B7A3E; }
.bs-n { font-size: .7rem; color: var(--muted); }
.tk-go a { font-size: .78rem; }
.tok-warn { border: 2px solid #A4161A; padding: 1rem 1.1rem; margin: 1.4rem 0; background: #FFF6F6; }
.tok-warn p { margin: 0 0 .6rem; font-size: .92rem; }
.tok-warn p:last-child { margin: 0; }
@media (max-width: 820px) {
  .tok-list th:nth-child(6), .tok-list td:nth-child(6),
  .tok-list th:nth-child(7), .tok-list td:nth-child(7) { display: none; }
}
.tok-search { border: 1px solid var(--rule); padding: .9rem 1rem; margin: 0 0 1.2rem; background: #fff; }
.tok-search label { display: block; font: 700 .66rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: .4rem; }
.tok-search input { width: 100%; font: 400 1.02rem/1.3 var(--sans); padding: .6rem .75rem; border: 2px solid var(--ink); background: #fff; }
.tok-search input:focus { outline: 3px solid #FFE08A; outline-offset: 1px; }
.tok-search .small { margin: .45rem 0 0; }

/* ---- Token analysis ---- */
.td-head { display: flex; align-items: center; gap: .9rem; margin: 0 0 1rem; }
.td-head img { border: 1px solid var(--rule); border-radius: 50%; }
.td-head h1 { margin: 0; font-size: 1.7rem; }
.td-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 1rem; margin: 0 0 1rem; }
.td-px { font: 800 2.1rem/1 var(--sans); font-variant-numeric: tabular-nums; }
.td-px .td-chg { font-size: 1.05rem; margin-left: .6rem; }
.td-changes { display: flex; gap: 1.1rem; font-family: var(--sans); }
.td-changes .lab { display: block; font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.td-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); gap: .6rem; margin: 0 0 1.4rem; }
.td-stat { border: 1px solid var(--rule); padding: .6rem .7rem; font-family: var(--sans); }
.td-stat span { display: block; font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.td-stat b { font-size: 1.02rem; }
.fl-row { display: flex; align-items: center; gap: .7rem; margin: 0 0 .5rem; font-family: var(--sans); font-size: .82rem; }
.fl-k { width: 4.5rem; color: var(--muted); }
.fl-bar { flex: 1 1 auto; height: 8px; background: #A4161A; max-width: 22rem; }
.fl-bar span { display: block; height: 8px; background: #1B7A3E; }
.fl-n { color: var(--muted); white-space: nowrap; }
.td-read .rd { border-left: 4px solid var(--rule); padding: .5rem .8rem; margin: 0 0 .5rem; font-size: .93rem; background: #fff; }
.td-read .rd b { font-family: var(--sans); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; margin-right: .4rem; }
.rd-ok { border-left-color: #1B7A3E; } .rd-ok b { color: #1B7A3E; }
.rd-warn { border-left-color: #B7791F; } .rd-warn b { color: #B7791F; }
.rd-bad { border-left-color: #A4161A; } .rd-bad b { color: #A4161A; }
.td-links { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 1.2rem; }
.td-links a { font: 600 .84rem/1 var(--sans); padding: .5rem .85rem; border: 1px solid var(--ink); text-decoration: none; color: var(--ink); text-transform: capitalize; }
.td-links a:hover { background: var(--ink); color: var(--paper); }
.td-contract { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0 0 1.4rem; }
.td-contract code { font-size: .78rem; word-break: break-all; background: #F2EFE7; padding: .45rem .6rem; border: 1px solid var(--rule); }
.td-contract button, .td-contract a { font: 600 .8rem/1 var(--sans); padding: .5rem .8rem; border: 1px solid var(--ink); background: #fff; cursor: pointer; text-decoration: none; color: var(--ink); }
.td-chart iframe { width: 100%; height: 520px; border: 1px solid var(--rule); }

/* ---- Congress trades ---- */
.cg-filter { display: flex; flex-wrap: wrap; align-items: end; gap: .6rem; margin: 0 0 1.2rem;
  border: 1px solid var(--rule); padding: .8rem 1rem; background: #fff; font-family: var(--sans); }
.cg-filter label { display: block; font-size: .68rem; letter-spacing: .09em; text-transform: uppercase; color: var(--muted); }
.cg-filter input { display: block; font: 400 .95rem var(--sans); padding: .45rem .6rem; border: 2px solid var(--ink); margin-top: .2rem; }
.cg-filter button { font: 700 .82rem var(--sans); padding: .55rem 1rem; border: 2px solid var(--ink); background: var(--ink); color: var(--paper); cursor: pointer; }
.cg-filter a { font-size: .82rem; }
.cg-list { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: .83rem; }
.cg-list th { text-align: left; font: 700 .63rem/1 var(--sans); letter-spacing: .09em; text-transform: uppercase;
  color: var(--muted); padding: .45rem .5rem; border-bottom: 2px solid var(--ink); white-space: nowrap; }
.cg-list td { padding: .5rem .5rem; border-bottom: 1px solid var(--rule); vertical-align: top; }
.cg-d, .cg-f, .cg-amt { white-space: nowrap; }
.cg-who a { font-weight: 700; text-decoration: none; }
.cg-who span { display: block; font-size: .7rem; color: var(--muted); }
.cg-a { color: var(--muted); max-width: 20rem; }
.cg-type { display: inline-block; font: 700 .66rem/1 var(--sans); letter-spacing: .07em; text-transform: uppercase;
  padding: .28rem .5rem; border: 1px solid; white-space: nowrap; }
.cg-buy { color: #1B7A3E; border-color: #1B7A3E; }
.cg-sell { color: #A4161A; border-color: #A4161A; }
.cg-f a { display: block; font-size: .7rem; }
.cg-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; margin: 1.6rem 0; }
.cg-mini { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: .85rem; }
.cg-mini td { padding: .4rem .3rem; border-bottom: 1px solid var(--rule); }
.cg-mini td:last-child { text-align: right; color: var(--muted); white-space: nowrap; }
@media (max-width: 820px) {
  .cg-grid { grid-template-columns: 1fr; }
  .cg-list th:nth-child(4), .cg-list td:nth-child(4), .cg-list th:nth-child(7), .cg-list td:nth-child(7) { display: none; }
}
time.t-local { white-space: nowrap; }
.fd-date i { display: block; font-style: normal; font-size: .72rem; color: var(--muted); margin-top: .1rem; }

/* ---- Site search ---- */
.site-search { display: flex; gap: .35rem; margin: 0 0 .5rem; font-family: var(--sans); }
.site-search input { flex: 1 1 auto; font: 400 .9rem var(--sans); padding: .4rem .6rem; border: 1px solid var(--ink); background: #fff; min-width: 0; }
.site-search button { font: 700 .78rem var(--sans); padding: .4rem .8rem; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); cursor: pointer; }
.site-search.big input { font-size: 1.05rem; padding: .7rem .85rem; border-width: 2px; }
.site-search.big button { font-size: .95rem; padding: .7rem 1.3rem; border-width: 2px; }
.site-search.big { margin: 0 0 1.5rem; max-width: 40rem; }
.sr-list { list-style: none; padding: 0; margin: 0; }
.sr-list li { padding: .85rem 0; border-bottom: 1px solid var(--rule); }
.sr-kind { display: inline-block; font: 700 .62rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase;
  color: #A4161A; margin-bottom: .2rem; }
.sr-h { display: block; font-weight: 700; font-size: 1.08rem; text-decoration: none; }
.sr-h:hover { text-decoration: underline; }
.sr-list p { margin: .2rem 0 .25rem; color: var(--muted); font-size: .92rem; }
.sr-url { font: .74rem/1 var(--sans); color: var(--muted); }
@media (max-width: 760px) { .site-search { margin-bottom: .4rem; } }
.sc-win b { font-weight: 800; }
.sc-win em { color: #1B7A3E; }
.sc-teams span:not(.sc-win):not(.sc-meta) b { opacity: .72; }
.ics { display: block; font: 600 .7rem/1 var(--sans); color: var(--muted); text-decoration: none; margin-top: .2rem; white-space: nowrap; }
.ics:hover { color: var(--ink); text-decoration: underline; }
.td-chain { font: 700 .62rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); vertical-align: middle; margin-left: .4rem; }
.cal-sub { border: 1px solid var(--rule); border-left: 4px solid #1F6F4A; padding: 1rem 1.1rem; margin: 1.5rem 0; }
.cal-sub h2 { margin: 0 0 .5rem; font-size: 1.05rem; border: 0; padding: 0; }
.cal-sub p { margin: 0 0 .6rem; }
.ics-alt { font-size: .85rem; margin-left: .6rem; }
.sc-bump { animation: scbump 1s ease-out; }
@keyframes scbump { from { background: #FFF3C4; } to { background: transparent; } }
tr.sc-live .sc-meta, tr.sc-live .bd-when { color: #A4161A; font-weight: 700; }
.td-key { font-size: .93rem; color: var(--muted); margin: 0 0 .8rem; }
.k-ok { color: #1B7A3E; } .k-warn { color: #B7791F; } .k-bad { color: #A4161A; }

/* ---- No sideways scroll on any screen ----
   The section nav is a scroll strip, but it was only contained below 640px, so on wider phones
   and small tablets the last links pushed the whole page wider than the screen. Contain it at
   every width, and stop anything else from widening the document either. */
html, body { max-width: 100%; overflow-x: hidden; }
.sections-in { max-width: 100%; }
@media (max-width: 900px) {
  .sections-in { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto;
    scrollbar-width: none; -webkit-overflow-scrolling: touch; gap: 1.1rem; }
  .sections-in::-webkit-scrollbar { display: none; }
  .nav-drop-menu { max-width: 92vw; }
}
/* Wide data tables scroll inside their own box instead of stretching the page. */
@media (max-width: 760px) {
  .sc-list, .sched-list, .tok-list, .cg-list, .fight-card, .bd-games { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .story-body table { display: block; overflow-x: auto; }
}
img, iframe, video, table { max-width: 100%; }
.rd-info { border-left-color: var(--muted); } .rd-info b { color: var(--muted); }
.footer-contact { margin-top: .6rem; font-size: .85rem; line-height: 1.7; }
.footer-contact a { text-decoration: none; }
.footer-contact a:hover { text-decoration: underline; }
.st-sym { font: 700 .82rem/1 var(--sans); letter-spacing: .1em; color: var(--muted); vertical-align: middle; margin-left: .5rem;
  border: 1px solid var(--rule); padding: .28rem .45rem; }
.st-price { font-family: var(--sans); font-size: 1.1rem; margin: .4rem 0 0; }
.st-price b { font-size: 1.7rem; font-weight: 800; }
.st-price span { margin-left: .5rem; }
.cn-rank { color: var(--muted); font-size: .78rem; width: 2.2rem; }
.coin-table tbody tr:hover { background: #FBF7EC; }
@media (max-width: 860px) {
  .coin-table th:nth-child(4), .coin-table td:nth-child(4),
  .coin-table th:nth-child(6), .coin-table td:nth-child(6),
  .coin-table th:nth-child(8), .coin-table td:nth-child(8) { display: none; }
}
.cg-mid { display: block; font-size: .7rem; color: var(--muted); }
.cg-note { border-left: 4px solid var(--muted); padding: .7rem .9rem; margin: 0 0 1rem;
  background: #fff; font-size: .9rem; }

/* ---- Heatmaps ---- */
.heat-wrap { border: 1px solid var(--rule); margin: 0 0 .6rem; min-height: 640px; }
.meme-heat { display: flex; flex-wrap: wrap; gap: 3px; margin: 0 0 .8rem; }
.mh { flex: 1 1 auto; min-height: 76px; display: flex; flex-direction: column; justify-content: center;
  align-items: center; text-decoration: none; color: #fff; font-family: var(--sans); padding: .4rem .3rem;
  text-align: center; overflow: hidden; }
.mh b { font-size: .92rem; font-weight: 800; line-height: 1.1; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.mh span { font-size: .78rem; opacity: .95; margin-top: .15rem; }
.mh:hover { outline: 2px solid var(--ink); outline-offset: -2px; }
.mhu4 { background: #0B5C2E; } .mhu3 { background: #1B7A3E; } .mhu2 { background: #3FA163; }
.mhu0  { background: #9AA3A8; }
.mhd2 { background: #D9646E; } .mhd3 { background: #A4161A; } .mhd4 { background: #6E0A0D; }
@media (max-width: 620px) { .mh { min-height: 62px; } .mh b { font-size: .82rem; } }

/* ---- Sentiment ---- */
.fng { display: grid; grid-template-columns: 1.4fr 1fr; gap: 1.4rem; margin: 0 0 .8rem;
  border: 1px solid var(--rule); padding: 1.1rem 1.2rem; }
.fng-num { font: 800 3.6rem/1 var(--sans); }
.fng-lab { font: 700 .8rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin: .3rem 0 .8rem; }
.fng-bar { height: 12px; background: linear-gradient(90deg,#6E0A0D,#A4161A,#9AA3A8,#3FA163,#0B5C2E); position: relative; }
.fng-bar span { position: absolute; top: -4px; width: 3px; height: 20px; background: var(--ink); }
.fng-scale { display: flex; justify-content: space-between; font: .66rem var(--sans); color: var(--muted); margin-top: .35rem; }
.fng-hist h3 { font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 0 0 .4rem; }
.fng-hist table { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: .82rem; }
.fng-hist td { padding: .28rem .2rem; border-bottom: 1px solid var(--rule); }
.sent-h { font-size: .85rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 1.2rem 0 .4rem; }
.sent-list { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: .87rem; }
.sent-list td { padding: .5rem .4rem; border-bottom: 1px solid var(--rule); vertical-align: middle; }
.sn-name { width: 9rem; } .sn-name a { font-weight: 700; text-decoration: none; }
.sn-bar { width: 40%; } .sb { display: block; height: 10px; background: #D9646E; }
.sb span { display: block; height: 10px; background: #1B7A3E; }
.sn-pct { width: 7rem; white-space: nowrap; }
.sn-hot { color: #0B5C2E; } .sn-warm { color: #1B7A3E; } .sn-flat { color: var(--muted); }
.sn-cool { color: #A4161A; } .sn-cold { color: #6E0A0D; }
.sn-net { text-align: right; color: var(--muted); font-size: .78rem; white-space: nowrap; }
.sn-net span { display: block; font-size: .7rem; }
.sent-gauges { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: .8rem; margin: 0 0 .8rem; }
.sg { border: 1px solid var(--rule); padding: .5rem; }
.sg h3 { font-size: .82rem; margin: 0 0 .3rem; }
@media (max-width: 720px) { .fng { grid-template-columns: 1fr; } .sn-bar { width: 26%; } }
.biz-claim { border-left: 4px solid var(--ink); padding: .8rem 1rem; margin: 0 0 1.2rem; background: #fff; font-size: 1.02rem; }
.biz-states { width: 100%; border-collapse: collapse; margin: 0 0 1.2rem; font-family: var(--sans); font-size: .9rem; }
.biz-states th { text-align: left; font: 700 .66rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase;
  color: var(--muted); padding: .4rem .5rem; border-bottom: 2px solid var(--ink); }
.biz-states td { padding: .4rem .5rem; border-bottom: 1px solid var(--rule); }
.biz-states td:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.uw-list li { margin-bottom: .5rem; }
.funder-close { border-top: 3px solid var(--ink); padding: 1rem 0 0; margin: 1.6rem 0 0; }
.funder-close p { margin: 0 0 .5rem; font-size: 1.02rem; }
.funder-close .small { color: var(--muted); font-size: .8rem; }
.disc { font: .76rem/1.4 var(--sans); color: var(--muted); letter-spacing: .02em;
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  padding: .45rem 0; margin: .6rem 0 1.2rem; }
.disc b { color: var(--ink); letter-spacing: .09em; text-transform: uppercase; font-size: .68rem; }
.disc a { color: var(--muted); }

/* ---- Homepage funding block ---- */
.home-fund { border: 2px solid var(--ink); padding: 1rem 1.1rem; margin: 0 0 1.2rem; background: #fff; }
.hf-kick { font: 700 .66rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: #A4161A; margin: 0 0 .4rem; }
.home-fund h2 { margin: 0 0 .5rem; font-size: 1.25rem; border: 0; padding: 0; }
.home-fund p { margin: 0 0 .7rem; font-size: .95rem; }
.hf-btn { display: block; text-align: center; background: #FF6B35; color: #fff; border: 2px solid #E3541F;
  border-radius: 6px; padding: .65rem 1rem; font-weight: 800; text-decoration: none; box-shadow: 0 2px 0 #C4470F; }
.hf-btn:hover { background: #F2551B; color: #fff; }
.hf-links { font-size: .82rem; color: var(--muted); margin: 0; }

/* ---- odds board ---------------------------------------------------------------------------
   A sportsbook-style comparison grid: games down the left in a sticky column, one column per
   book across. It is wide on purpose; the horizontal scroll inside .ob-scroll is the only part
   of the site allowed to scroll sideways. */
.odds-page .page-head { max-width: 900px; }
.ob-controls { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  flex-wrap: wrap; margin: 0 0 1.2rem; position: sticky; top: 0; z-index: 6;
  background: var(--paper); padding: .6rem 0; border-bottom: 1px solid var(--rule); }
.ob-mkt { display: flex; gap: .35rem; }
.ob-mkt button { font-family: var(--sans); font-size: .82rem; font-weight: 600; letter-spacing: .02em;
  padding: .5rem 1.1rem; border: 1px solid var(--rule); background: #fff; color: var(--ink-2);
  border-radius: 999px; cursor: pointer; }
.ob-mkt button:hover { border-color: var(--ink); }
.ob-mkt button.on { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.ob-best { font-family: var(--sans); font-size: .82rem; color: var(--muted); display: flex;
  align-items: center; gap: .4rem; cursor: pointer; white-space: nowrap; }

.ob-league { margin: 0 0 2.6rem; }
.ob-league h2 { display: flex; align-items: baseline; gap: .7rem; flex-wrap: wrap; margin-bottom: .7rem; }
.ob-league h2 small { font-family: var(--sans); font-size: .78rem; font-weight: 500;
  letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.ob-scroll { overflow-x: auto; overscroll-behavior-x: contain; border: 1px solid var(--rule);
  background: #fff; -webkit-overflow-scrolling: touch; }
.ob-grid { border-collapse: separate; border-spacing: 0; width: 100%; font-family: var(--sans); }
.ob-grid thead th { position: sticky; top: 0; z-index: 3; background: var(--paper-2);
  font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
  color: var(--muted); text-align: center; padding: .6rem .5rem; white-space: nowrap;
  border-bottom: 1px solid var(--rule); }
.ob-grid thead th span { display: block; font-weight: 500; letter-spacing: .03em;
  text-transform: none; font-size: .68rem; opacity: .8; }
.ob-grid th.ob-game, .ob-grid td.ob-game { position: sticky; left: 0; z-index: 4; background: #fff;
  text-align: left; min-width: 15rem; border-right: 1px solid var(--rule); }
.ob-grid thead th.ob-game { z-index: 5; background: var(--paper-2); }
.ob-grid th.ob-cl, .ob-grid td.ob-cl { background: var(--red-lt); border-right: 1px solid var(--rule);
  min-width: 7.5rem; }
.ob-grid thead th.ob-cl { background: #F0DED9; color: var(--red-dk); }
.ob-row th.ob-game { padding: .7rem .8rem; font-weight: 400; vertical-align: middle; }
.ob-t { display: flex; align-items: baseline; gap: .4rem; font-size: .95rem; line-height: 1.45;
  min-height: 1.7rem; white-space: nowrap; overflow: hidden; }
.ob-t b { overflow: hidden; text-overflow: ellipsis; }
.ob-t b { font-weight: 650; }
.ob-t i { font-style: normal; color: var(--muted); font-size: .78rem; flex: none; }
.ob-when { display: block; font-size: .72rem; color: var(--muted); margin-top: .25rem;
  letter-spacing: .02em; white-space: nowrap; }
.ob-cell, .ob-cl { text-align: center; vertical-align: middle; padding: .55rem .4rem;
  border-bottom: 1px solid var(--rule); min-width: 5.6rem; }
.ob-row th.ob-game { border-bottom: 1px solid var(--rule); }
.ob-p { display: flex; align-items: baseline; justify-content: center; gap: .3rem;
  line-height: 1.45; font-size: .95rem; border-radius: 4px; padding: .12rem .3rem; min-height: 1.7rem; }
.ob-p[hidden] { display: none; }
/* "All three" is the DraftKings-style scan view: three market columns per book, two rows
   (away on top, home below) that line up with the two team names in the sticky left column. */
/* The grid lives on an inner div, never on the <td>: display:grid on a table cell drops it out
   of the table's own layout and collapses the whole row. */
.ob-in { display: flex; flex-direction: column; }
.mkt-all .ob-in, .mkt-all .ob-sub { display: grid; grid-template-columns: repeat(3, minmax(4rem, 1fr));
  gap: .1rem .35rem; }
.mkt-all .ob-cell { min-width: 14rem; }
.mkt-all .ob-p { font-size: .86rem; }
.mkt-all .ob-p i { font-size: .76rem; }
.ob-sub { display: none; }
.mkt-all .ob-sub { margin-top: .3rem; }
.ob-sub i { font-style: normal; font-size: .6rem; font-weight: 600; letter-spacing: .06em;
  opacity: .75; }
.ob-p i { font-style: normal; color: var(--muted); font-size: .82rem; }
.ob-p b { font-weight: 650; font-variant-numeric: tabular-nums; }
.ob-p.best { background: #E3F6EE; color: var(--green-dk); box-shadow: inset 0 0 0 1px var(--green); }
.ob-p.best i { color: var(--green-dk); }
.ob-cl .ob-p b { color: var(--red-dk); }
.ob-na { color: var(--rule); }
.ob-note td { font-size: .78rem; color: var(--muted); padding: 0 .8rem .6rem;
  border-bottom: 2px solid var(--rule); }
.ob-note td:empty, .ob-note td { line-height: 1.5; }
.ob-note b { color: var(--ink-2); font-weight: 650; }
.odds-page.best-only .ob-p:not(.best):not(.ob-cl .ob-p) { opacity: .28; }
.ob-empty { font-size: 1.05rem; padding: 1.4rem 0; }

.ob-explain { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem 2.4rem;
  margin: 0 0 2.4rem; }
.ob-explain h3 { font-size: 1.12rem; margin-bottom: .3rem; }
.ob-explain p { font-size: .98rem; margin: 0; }
.ob-faq { max-width: var(--measure); margin-bottom: 2rem; }
.ob-faq details { border-bottom: 1px solid var(--rule); padding: .8rem 0; }
.ob-faq summary { font-family: var(--sans); font-weight: 600; font-size: .98rem; cursor: pointer; }
.ob-faq p { margin: .6rem 0 0; font-size: .98rem; }
@media (max-width: 860px) {
  .ob-explain { grid-template-columns: 1fr; }
  .ob-grid th.ob-game, .ob-grid td.ob-game { min-width: 11rem; }
  .ob-t { font-size: .88rem; }
}

/* Odds board polish: the three market sub-columns need air and a rule between them, or the
   spread price and the total run together into one unreadable number. */
.mkt-all .ob-in, .mkt-all .ob-sub { grid-template-columns: repeat(3, minmax(4.6rem, 1fr));
  gap: .1rem 0; }
.mkt-all .ob-cell { min-width: 15.5rem; }
.mkt-all .ob-in > .ob-p:nth-child(3n+2), .mkt-all .ob-in > .ob-p:nth-child(3n),
.mkt-all .ob-sub i + i { box-shadow: inset 1px 0 0 var(--rule); }
.mkt-all .ob-in > .ob-p.best { box-shadow: inset 0 0 0 1px var(--green); }
.ob-sub i { text-align: center; }
.ob-grid th.ob-book, .ob-grid td.ob-cell { border-left: 1px solid var(--rule); }
.ob-grid td.ob-cell { padding-inline: .25rem; }
.mkt-all .ob-p { padding-inline: .15rem; gap: .22rem; }
/* The generic thead th span rule outranks .ob-sub, so the sub-labels need to be scoped the
   same way or they leak into the single-market views as "MLSpreadTotal". */
.ob-grid thead th span.ob-sub { display: none; }
.mkt-all .ob-grid thead th span.ob-sub { display: grid; }
.ob-edge { display: inline-block; font-size: .64rem; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; background: var(--ink); color: var(--paper); padding: .16rem .5rem;
  border-radius: 999px; margin-right: .45rem; vertical-align: .05em; }

/* ---- odds board on a phone -----------------------------------------------------------------
   The grid is a desktop object. Two frozen columns plus nine book columns is ~300px of chrome
   before a single price renders, so below 860px we hide the table entirely and show one card
   per game: the best number on each market, then the full book list behind a disclosure. */
.ob-cards { display: none; }
@media (max-width: 860px) {
  .ob-scroll { display: none; }
  .ob-cards { display: block; }
  .ob-controls { position: static; gap: .5rem; }
  .ob-mkt { display: none; }          /* cards already show the best of all three markets */
  .ob-best { display: none; }
  .ob-league h2 { font-size: 1.4rem; }
}
.ob-card { border: 1px solid var(--rule); background: #fff; margin: 0 0 .9rem;
  font-family: var(--sans); }
.obc-head { padding: .7rem .8rem .5rem; border-bottom: 1px solid var(--rule); }
.obc-teams span { display: flex; align-items: baseline; gap: .4rem; font-size: 1rem;
  line-height: 1.5; }
.obc-teams b { font-weight: 650; }
.obc-teams i { font-style: normal; font-size: .78rem; color: var(--muted); }
.obc-when { margin: .25rem 0 0; font-size: .74rem; color: var(--muted); letter-spacing: .02em; }
.obc-best { width: 100%; border-collapse: collapse; table-layout: fixed; }
.obc-best th { font-size: .64rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
  color: var(--muted); padding: .45rem .2rem .2rem; text-align: center; }
.obc-best th.obc-side { text-align: left; padding-left: .8rem; font-size: .8rem; letter-spacing: .02em;
  text-transform: none; color: var(--ink); width: 4.6rem; }
.obc-best td { text-align: center; padding: .4rem .2rem .55rem; vertical-align: top; }
.obc-n { display: flex; align-items: baseline; justify-content: center; gap: .25rem;
  font-size: .95rem; line-height: 1.35; }
.obc-n i { font-style: normal; color: var(--muted); font-size: .82rem; }
.obc-n b { font-weight: 650; font-variant-numeric: tabular-nums; }
.obc-best td .obc-n { color: var(--green-dk); }
.obc-bk { display: block; font-size: .62rem; color: var(--muted); letter-spacing: .02em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: .1rem; }
.obc-cl { margin: 0; padding: .55rem .8rem; background: var(--red-lt); font-size: .84rem;
  color: var(--red-dk); border-top: 1px solid var(--rule); }
.obc-cl b { font-weight: 700; }
.obc-cl span { display: block; color: var(--muted); font-size: .72rem; margin-top: .1rem; }
.obc-read { margin: 0; padding: .6rem .8rem; font-size: .8rem; color: var(--muted);
  line-height: 1.5; border-top: 1px solid var(--rule); }
.obc-read b { color: var(--ink-2); font-weight: 650; }
.obc-all { border-top: 1px solid var(--rule); }
.obc-all summary { padding: .6rem .8rem; font-size: .8rem; font-weight: 600; cursor: pointer;
  color: var(--ink-2); }
.obc-tab { width: 100%; border-collapse: collapse; table-layout: fixed; }
.obc-tab th, .obc-tab td { padding: .35rem .2rem; font-size: .8rem; text-align: center;
  border-top: 1px solid var(--paper-2); }
.obc-tab tr:first-child th { font-size: .62rem; letter-spacing: .06em; text-transform: uppercase;
  color: var(--muted); border-top: 0; }
.obc-tab th:first-child { text-align: left; padding-left: .8rem; width: 6.2rem; font-weight: 600;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.obc-tab .obc-n { font-size: .82rem; }

/* ---- general mobile tightening --------------------------------------------------------------
   Tab strips scroll sideways instead of wrapping into three ragged rows, and the base size comes
   down a notch: 18px serif is right for a reading column and too big for a phone. */
@media (max-width: 640px) {
  body { font-size: 17px; }
  .sc-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none;
    -webkit-overflow-scrolling: touch; padding-bottom: .2rem; }
  .sc-tabs::-webkit-scrollbar { display: none; }
  .sc-tabs a { flex: none; white-space: nowrap; }
  .page-head { padding-block: 1.2rem .5rem; margin-bottom: 1.4rem; }
  .page-head h1 { font-size: 2rem; }
  .page-head .dek { font-size: 1rem; }
}

/* ---- crypto big movers ---------------------------------------------------------------------- */
.mv-note { background: var(--paper-2); border: 1px solid var(--rule); border-radius: 10px;
  padding: 1rem 1.2rem; margin: 0 0 1.4rem; max-width: 900px; }
.mv-note p { margin: 0 0 .6rem; font-size: .95rem; line-height: 1.6; }
.mv-note p:last-child { margin-bottom: 0; }
.mv-table { width: 100%; border-collapse: collapse; font-family: var(--sans); background: #fff; }
.mv-table th { font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--muted); text-align: right; padding: .6rem .7rem; border-bottom: 2px solid var(--ink);
  white-space: nowrap; }
.mv-table th:first-child { text-align: left; }
.mv-table td { padding: .6rem .7rem; border-bottom: 1px solid var(--rule); white-space: nowrap; }
.mv-name { min-width: 11rem; }
.mv-name b { font-size: .98rem; font-weight: 700; }
.mv-name span { display: block; font-size: .76rem; color: var(--muted); }
.mv-num { text-align: right; font-variant-numeric: tabular-nums; font-size: .92rem; }
.mv-num.up { color: var(--green-dk); }
.mv-num.dn { color: var(--red); }
.mv-churn { font-weight: 700; }
.mv-churn.mv-hot { color: #fff; background: var(--red); border-radius: 4px; }
.mv-churn.mv-warm { color: #8A5A0B; background: #FBF0DC; border-radius: 4px; }
.mv-churn.mv-calm { color: var(--muted); }

/* Funding path on the get-featured pages: the one place an owner has already identified themselves. */
.sales-fund { display: grid; grid-template-columns: 1fr minmax(260px, 330px); gap: 1.6rem 2.4rem;
  align-items: start; margin: 2.4rem 0; padding: 1.6rem 0; border-top: 2px solid var(--ink);
  border-bottom: 1px solid var(--rule); }
.sf-kick { margin: 0 0 .3rem; font-family: var(--sans); font-size: .68rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; color: var(--red); }
.sales-fund h2 { font-size: 1.5rem; line-height: 1.2; margin: 0 0 .6rem; max-width: 26ch; }
.sf-main p { font-size: 1rem; line-height: 1.6; margin: 0 0 .7rem; }
.sf-links { font-family: var(--sans); font-size: .9rem; color: var(--muted); }
@media (max-width: 860px) { .sales-fund { grid-template-columns: 1fr; } .sales-fund h2 { max-width: none; } }
.side-fund { margin-top: 1.6rem; padding-top: 1.2rem; border-top: 1px solid var(--rule); }
.side-fund h2 { font-size: 1.05rem; margin: 0 0 .4rem; }
.side-fund p { font-size: .93rem; line-height: 1.6; margin: 0 0 .7rem; }

/* The bridge page's own call to action: the last thing a reader sees before leaving the site. */
.fund-go { border: 2px solid var(--ink); border-radius: 12px; padding: 1.4rem 1.5rem; margin: 2rem 0;
  background: var(--paper-2); }
.fund-go h2 { margin: 0 0 .5rem; font-size: 1.3rem; }
.fund-go p { margin: 0 0 .8rem; }
.fund-go-btn { display: inline-block; background: #FF6B35; color: #fff; border: 0; font-weight: 700;
  font-size: 1.02rem; padding: .95rem 1.8rem; border-radius: 8px; text-decoration: none; }
.fund-go-btn:hover { background: #ea5a26; color: #fff; }
.fund-go-alt { font-size: .94rem; color: var(--muted); }
.fund-go-alt a { font-weight: 700; color: var(--ink); }

/* In-article price chart. */
.story-chart { margin: 1.6rem 0; padding: 0; }
.story-chart figcaption { font-family: var(--sans); font-size: .78rem; color: var(--muted);
  margin-top: .4rem; }

/* Full-screen chart. The TradingView widget fills its container, so putting the container itself
   into the browser's fullscreen mode gives a genuinely full-screen chart without leaving the site. */
.chart-wrap { position: relative; }
.chart-full { position: absolute; top: .55rem; right: .55rem; z-index: 5; cursor: pointer;
  font-family: var(--sans); font-size: .76rem; font-weight: 700; letter-spacing: .04em;
  padding: .45rem .8rem; border: 1px solid var(--rule); border-radius: 6px;
  background: rgba(255,255,255,.92); color: var(--ink-2); }
.chart-full:hover { border-color: var(--ink); background: #fff; }
.chart-wrap:fullscreen { background: #fff; padding: 0; }
.chart-wrap:fullscreen .tv-wrap,
.chart-wrap:fullscreen .tradingview-widget-container,
.chart-wrap:fullscreen .tradingview-widget-container__widget,
.chart-wrap:fullscreen iframe { height: 100vh !important; width: 100vw !important; }
@media (max-width: 640px) { .chart-full { top: .35rem; right: .35rem; font-size: .7rem; } }

/* Chart search: the chips cover what we publish, this covers everything else. */
.chart-search { max-width: 640px; margin: 0 0 1.2rem; }
.chart-search label { display: block; font-family: var(--sans); font-size: .72rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: .35rem; }
.cs-row { display: flex; gap: .5rem; }
.cs-row input { flex: 1; min-width: 0; font-family: var(--sans); font-size: 1rem;
  padding: .7rem .9rem; border: 2px solid var(--ink); border-radius: 8px; background: #fff; }
.cs-row button { flex: none; font-family: var(--sans); font-weight: 700; font-size: .92rem;
  padding: .7rem 1.3rem; border: 0; border-radius: 8px; background: var(--ink); color: var(--paper);
  cursor: pointer; }
.cs-row button:hover { background: var(--red); }
.cs-hint { margin: .45rem 0 0; font-family: var(--sans); font-size: .8rem; color: var(--muted); }
@media (max-width: 560px) { .cs-row { flex-direction: column; } }

/* Our own coverage of whatever is on the chart. */
.chart-news { margin: 1.8rem 0; max-width: 820px; }
.chart-news h2 { font-size: 1.25rem; margin: 0 0 .7rem; }
.chart-news-list { list-style: none; margin: 0; padding: 0; }
.chart-news-list li { padding: .6rem 0; border-bottom: 1px solid var(--rule); }
.chart-news-list a { font-family: var(--serif); font-size: 1.02rem; font-weight: 600;
  line-height: 1.4; display: block; text-decoration: none; }
.chart-news-list a:hover { text-decoration: underline; }
.chart-news-list span { display: block; font-family: var(--sans); font-size: .74rem;
  color: var(--muted); margin-top: .2rem; letter-spacing: .02em; }
.practice-steps { margin: .6rem 0 .8rem; padding-left: 1.3rem; }
.practice-steps li { margin-bottom: .3rem; font-size: .96rem; line-height: 1.55; }

/* Funding comparison table on a phone. A 620px table in a scrollable wrapper is technically usable
   and practically invisible: the reader sees a sliced-off table with nothing indicating it scrolls.
   Below 560px each row becomes its own card and every cell labels itself from data-l. */
@media (max-width: 560px) {
  .fund-compare .table-wrap { overflow-x: visible; }
  .fund-compare table { min-width: 0; width: 100%; display: block; }
  .fund-compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .fund-compare tbody { display: block; }
  .fund-compare tbody tr {
    display: block; margin: 0 0 .8rem; padding: .75rem .9rem; background: #FFFDF8;
    border: 1px solid var(--rule); border-top: 3px solid var(--red);
  }
  .fund-compare tbody td {
    display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
    border: 0; padding: .28rem 0; text-align: right;
  }
  .fund-compare tbody td::before {
    content: attr(data-l); flex: 0 0 auto; text-align: left;
    font: 700 .68rem/1.3 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted);
  }
  .fund-compare tbody td[data-l="Option"] { display: block; text-align: left; padding: 0 0 .45rem; border-bottom: 1px solid var(--rule); margin-bottom: .35rem; }
  .fund-compare tbody td[data-l="Option"]::before { display: none; }
  .fund-compare tbody td[data-l="Option"] b { font: 700 1.05rem/1.25 var(--serif-d); }
}

/* Sourcing guides */
.src-ch { border-top: 3px solid var(--red); border-left: 1px solid var(--rule); border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); background: #FFFDF8; padding: .9rem 1.1rem; margin: 0 0 1rem; }
.src-ch h3 { font: 700 1.12rem/1.25 var(--serif-d); margin: 0 0 .25rem; }
.src-who { font: 700 .82rem/1.4 var(--sans); color: var(--red); margin: 0 0 .5rem; }
.src-pc { margin: .6rem 0 0; padding-left: 1.1rem; }
.src-pc li { font: 400 .9rem/1.5 var(--sans); margin-bottom: .3rem; }
@media (max-width: 560px) { .src-ch { padding: .8rem .9rem; } }

/* Sourcing page call to action */
.src-cta { margin: 2rem 0 0; padding: 1.2rem 0 0; border-top: 3px solid var(--ink); }
.src-cta h2 { font: 700 1.3rem/1.25 var(--serif-d); margin: 0 0 .5rem; border: 0; padding: 0; text-transform: none; letter-spacing: 0; }
.src-cta .funder-card { margin: 1rem 0; }
