/* market.trosfy.com — site layout. Tokens only (--trosfie-*); no raw hex. */

.site-header { border-bottom: 1px solid var(--trosfie-border-subtle); background: var(--trosfie-surface); }
.site-header__inner {
  max-width: 880px; margin: 0 auto; padding: var(--trosfie-space-lg) var(--trosfie-space-xl);
  display: flex; align-items: center; gap: var(--trosfie-space-xl); flex-wrap: wrap;
}
.site-header__brand { font: 700 20px/1 var(--trosfie-font-display); color: var(--trosfie-text-high); letter-spacing: -0.008em; }
.site-header__brand:hover { color: var(--trosfie-text-action); }
.site-nav { display: flex; gap: var(--trosfie-space-lg); }
/* type comes from .tr-ui-large (templates); only the idle/active color is site-specific */
.site-nav a { color: var(--trosfie-text-subtle); }
.site-nav a:hover, .site-nav a[aria-current="true"] { color: var(--trosfie-text-action); }

.site-main { max-width: 880px; margin: 0 auto; padding: var(--trosfie-space-3xl) var(--trosfie-space-xl) var(--trosfie-space-5xl); }

.site-footer { border-top: 1px solid var(--trosfie-border-subtle); background: var(--trosfie-surface-subtle); margin-top: var(--trosfie-space-5xl); }
.site-footer__inner { max-width: 880px; margin: 0 auto; padding: var(--trosfie-space-2xl) var(--trosfie-space-xl); display: flex; flex-direction: column; gap: var(--trosfie-space-lg); }
/* disclosure copy lives in a .tr-callout (templates); this only mutes its running text */
.site-footer p { color: var(--trosfie-text-subtle); }
.site-footer__links { display: flex; gap: var(--trosfie-space-lg); flex-wrap: wrap; }
/* link type comes from .tr-ui-normal (templates); color/decoration come free from trosfie.css's global `a` rule */

/* Content prose */
.prose { display: flex; flex-direction: column; gap: var(--trosfie-space-lg); }
.prose h2 { margin-top: var(--trosfie-space-xl); }
.prose h3 { margin-top: var(--trosfie-space-lg); }
.prose ul, .prose ol { margin: 0; padding-left: 24px; display: flex; flex-direction: column; gap: var(--trosfie-space-xs); }
.prose li { font: 400 15px/150% var(--trosfie-font-godwit); letter-spacing: 0.012em; color: var(--trosfie-text-high); }
.prose blockquote {
  margin: 0; padding: var(--trosfie-space-md) var(--trosfie-space-lg);
  border-left: 3px solid var(--trosfie-action-primary);
  background: var(--trosfie-surface-subtle); border-radius: var(--trosfie-radius-xs);
  color: var(--trosfie-text-subtle);
}
.prose table { border-collapse: collapse; width: 100%; font-size: 14px; }
.prose th { text-align: left; font: 600 12px/16px var(--trosfie-font-godwit); letter-spacing: 0.04em; text-transform: uppercase; color: var(--trosfie-text-subtle); padding: 8px 12px; border-bottom: 1px solid var(--trosfie-border); }
.prose td { padding: 8px 12px; border-bottom: 1px solid var(--trosfie-border-subtle); }
.prose figure { margin: 0; }
.prose figcaption, .prose .asof { font-size: 12px; color: var(--trosfie-text-muted); }
.prose .footnotes { border-top: 1px solid var(--trosfie-border-subtle); padding-top: var(--trosfie-space-lg); font-size: 13px; color: var(--trosfie-text-subtle); }
.prose code { background: var(--trosfie-surface-muted); padding: 1px 5px; border-radius: var(--trosfie-radius-xs); }
.prose pre { background: var(--trosfie-surface-muted); padding: var(--trosfie-space-lg); border-radius: var(--trosfie-radius-md); overflow-x: auto; }

/* Table wrapper — wide tables scroll inside, never the page */
.table-scroll { overflow-x: auto; }

/* Article header */
.article-head { display: flex; flex-direction: column; gap: var(--trosfie-space-md); margin-bottom: var(--trosfie-space-2xl); }
.article-head h1 { font-size: 34px; }
.byline { font: 500 13px/150% var(--trosfie-font-godwit); color: var(--trosfie-text-subtle); }
.byline a { font-weight: 600; }
/* .positions-note (build.py-generated disclosure paragraph) mirrors .tr-callout's
   box model — radius-md, callout padding — but can't carry the class itself since
   the markup is assembled in build.py, outside this template/CSS-only pass. */
.positions-note {
  font: 500 13px/150% var(--trosfie-font-godwit); color: var(--trosfie-text-subtle);
  background: var(--trosfie-surface-list); border: 1px solid var(--trosfie-border-subtle);
  border-radius: var(--trosfie-radius-md); padding: var(--trosfie-space-md) var(--trosfie-space-lg);
}

/* Key facts (GEO extract block) — a callout-family block (see Map); internals
   stay site-specific per the DS contract, but the radius now matches the
   callout scale (radius-md) instead of the card scale. */
.key-facts {
  background: var(--trosfie-surface-subtle); border: 1px solid var(--trosfie-border-subtle);
  border-radius: var(--trosfie-radius-md); padding: var(--trosfie-space-xl);
  display: flex; flex-direction: column; gap: var(--trosfie-space-sm);
  margin-bottom: var(--trosfie-space-2xl);
}
.key-facts h2 { font-size: 14px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--trosfie-text-subtle); margin: 0; }
.key-facts .thesis { font: 600 16px/150% var(--trosfie-font-godwit); }
.key-facts ul { margin: 0; padding-left: 20px; }
.key-facts li { font-size: 14px; }
.key-facts .asof { font-size: 12px; color: var(--trosfie-text-muted); }

/* Listings — flex/gap now come from .tr-stack.tr-gap-m on the <ul> (templates);
   this is just the list reset. */
.post-list { list-style: none; padding: 0; margin: 0; }
/* .post-list__item (build.py-generated) is card-component shaped: identical
   box model to .tr-card (surface/border-subtle/radius-lg/space-xl padding).
   Kept here only because the <li> markup is assembled in build.py's
   article_item()/day_item() helpers, outside this template/CSS-only pass —
   rename to `tr-card` there to finish the migration and delete this rule. */
.post-list__item { border: 1px solid var(--trosfie-border-subtle); border-radius: var(--trosfie-radius-lg); padding: var(--trosfie-space-xl); background: var(--trosfie-surface); }
.post-list__item h3 { margin: 0 0 var(--trosfie-space-xs); }
.post-list__meta { font-size: 12px; color: var(--trosfie-text-muted); }


/* Landing — type comes from .tr-p-large (templates); color/measure stay site-specific. */
.lede { color: var(--trosfie-text-subtle); max-width: 64ch; }
.section-title { margin-top: var(--trosfie-space-3xl); margin-bottom: var(--trosfie-space-lg); }

/* Ad slots — reserved, hidden until [ads] enabled */
.ad-slot[hidden] { display: none; }
.ad-slot--enabled { min-height: 250px; display: flex; align-items: center; justify-content: center; background: var(--trosfie-surface-subtle); border-radius: var(--trosfie-radius-md); }

@media (max-width: 640px) {
  .site-main { padding: var(--trosfie-space-xl) var(--trosfie-space-lg) var(--trosfie-space-3xl); }
  .article-head h1 { font-size: 26px; }
}
