/* ============================================================
   Global Investment Reviews — design tokens
   Palette: ink navy + ledger paper + brass + muted signal teal/brick
   Type: Newsreader (editorial serif) + IBM Plex Sans/Mono (data-grade)
   ============================================================ */
:root {
  --ink: #12161F;
  --ink-soft: #2A3244;
  --paper: #F4F1EA;
  --paper-raised: #FCFBF7;
  --rule: #D3D6C9;
  --rule-on-ink: #333D52;
  --brass: #93672A;
  --brass-bright: #B4863F;
  --teal: #2C6459;
  --brick: #9A3E3B;
  --text: #171B22;
  --text-muted: #565F55;
  --text-on-ink: #E9EBE2;
  --text-on-ink-muted: #9CA3B4;

  --font-display: "Newsreader", "Iowan Old Style", Georgia, serif;
  --font-body: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --max: 1200px;
  --max-narrow: 720px;
  --radius: 2px;
}

/* GIR uses a stable institutional light canvas across devices; the masthead/footer retain the dark brand tone. */


* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

#main {
  background: var(--paper-raised);
  border-top: 1px solid rgba(211,214,201,.65);
  min-height: 50vh;
}

img { max-width: 100%; display: block; }

a {
  color: inherit;
  text-decoration: none;
}
a:hover { text-decoration: underline; text-underline-offset: 2px; }

.visually-hidden {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

.skip-link {
  position: absolute; left: -999px; top: 0; z-index: 100;
  background: var(--ink); color: var(--text-on-ink);
  padding: 0.75rem 1.25rem; font-family: var(--font-body);
}
.skip-link:focus { left: 0; }

:focus-visible {
  outline: 2px solid var(--brass-bright);
  outline-offset: 2px;
}

.wrap {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 1.5rem;
}
.wrap--narrow { max-width: var(--max-narrow); }

h1, h2, h3 {
  font-family: var(--font-display);
  font-weight: 500;
  line-height: 1.15;
  margin: 0 0 0.5em;
}

/* ============================================================
   Masthead / header
   ============================================================ */
.masthead {
  background: var(--ink);
  color: var(--text-on-ink);
}
.masthead__bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  color: var(--text-on-ink-muted);
  padding: 0.5rem 1.5rem;
  border-bottom: 1px solid var(--rule-on-ink);
}
.masthead__main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.1rem 1.5rem;
}
.masthead__logo {
  font-family: var(--font-display);
  font-size: 1.9rem;
  font-weight: 600;
  color: var(--text-on-ink);
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
}
.masthead__logo-full {
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--text-on-ink-muted);
  letter-spacing: 0.01em;
}
.masthead__logo:hover { text-decoration: none; }

.masthead__actions {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.search-toggle {
  background: none;
  border: 0;
  color: var(--text-on-ink);
  padding: 0.5rem;
  cursor: pointer;
  display: flex;
}
.search-toggle:hover { color: var(--brass-bright); }

.site-search {
  background: var(--ink-soft);
  border-top: 1px solid var(--rule-on-ink);
  border-bottom: 1px solid var(--rule-on-ink);
}
.site-search__inner { padding: 1rem 1.5rem; }
.site-search__inner input {
  width: 100%;
  font-family: var(--font-body);
  font-size: 1rem;
  padding: 0.7rem 0.9rem;
  background: var(--ink);
  border: 1px solid var(--rule-on-ink);
  color: var(--text-on-ink);
}
.site-search__results {
  list-style: none;
  margin: 0.8rem 0 0;
  padding: 0;
  max-width: 640px;
}
.site-search__results li { border-bottom: 1px solid var(--rule-on-ink); }
.site-search__results a {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.7rem 0.2rem;
}
.site-search__results a:hover { text-decoration: none; background: var(--ink); }
.site-search__kicker {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  text-transform: uppercase;
  color: var(--brass-bright);
}
.site-search__title { color: var(--text-on-ink); font-size: 0.95rem; }
.site-search__empty { color: var(--text-on-ink-muted); padding: 0.7rem 0.2rem; font-size: 0.9rem; }
.nav-toggle {
  display: none;
  width: 2.75rem;
  height: 2.4rem;
  padding: .55rem .5rem;
  border: 1px solid var(--rule-on-ink);
  border-radius: 2px;
  background: var(--ink-soft);
  color: var(--text-on-ink);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
}
.nav-toggle:hover, .nav-toggle:focus-visible {
  background: var(--teal);
  border-color: var(--teal);
}
.nav-toggle span {
  width: 21px;
  height: 2px;
  background: currentColor;
  display: block;
  border-radius: 1px;
}

.primary-nav {
  position: sticky;
  top: 0;
  z-index: 90;
  background: var(--ink);
  box-shadow: 0 1px 0 rgba(0,0,0,.22), 0 4px 14px rgba(0,0,0,.08);
}

.primary-nav__list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 0;
  padding: 0 1.5rem;
  max-width: var(--max);
  margin: 0 auto;
  border-top: 1px solid var(--rule-on-ink);
}
.primary-nav__item {
  position: relative;
  border-right: 1px solid var(--rule-on-ink);
}
.primary-nav__item:last-child { border-right: 0; }
.primary-nav__item > a {
  display: block;
  padding: 0.7rem 1rem;
  font-size: 0.86rem;
  font-weight: 500;
}
.primary-nav__item > a:hover { background: var(--ink-soft); text-decoration: none; }

.primary-nav__item--pro > a {
  color: var(--brass-bright);
}
.primary-nav__badge {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  text-transform: uppercase;
  background: var(--brass-bright);
  color: var(--ink);
  padding: 0.1rem 0.35rem;
  margin-left: 0.35rem;
  border-radius: 2px;
}

.primary-nav__expand { display: none; }

.primary-nav__sub {
  list-style: none;
  margin: 0;
  padding: 0.5rem 0;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 260px;
  background: var(--ink-soft);
  border: 1px solid var(--rule-on-ink);
  z-index: 20;
  display: none;
}
.primary-nav__item:hover .primary-nav__sub,
.primary-nav__item:focus-within .primary-nav__sub,
.primary-nav__item.is-touch-open .primary-nav__sub {
  display: block;
}
.primary-nav__sub > li > a {
  display: block;
  padding: 0.5rem 1rem;
  font-size: 0.84rem;
}
.primary-nav__sub > li > a:hover { background: var(--ink); text-decoration: none; }
.primary-nav__sub-sub {
  list-style: none;
  margin: 0;
  padding: 0 0 0.4rem 1.5rem;
}
.primary-nav__sub-sub a {
  display: block;
  padding: 0.3rem 0;
  font-size: 0.78rem;
  color: var(--text-on-ink-muted);
}

/* ============================================================
   Home / trending strip
   ============================================================ */
.trending-strip {
  background: var(--ink);
  color: var(--text-on-ink);
  overflow: hidden;
}
.trending-strip__inner {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 0.55rem 1.5rem;
}
.trending-strip__label {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--brass-bright);
  flex-shrink: 0;
}
.trending-strip__list {
  list-style: none;
  display: flex;
  gap: 1.6rem;
  margin: 0;
  padding: 0;
  overflow-x: auto;
  scrollbar-width: none;
  white-space: nowrap;
}
.trending-strip__list::-webkit-scrollbar { display: none; }
.trending-strip__list a {
  font-size: 0.85rem;
  color: var(--text-on-ink-muted);
}
.trending-strip__list a:hover { color: var(--text-on-ink); text-decoration: none; }

/* ============================================================
   Institutional global markets ticker
   ============================================================ */
.gir-market-ticker {
  background: var(--ink);
  color: var(--text-on-ink);
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.12);
  overflow: hidden;
}
.gir-market-ticker__heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  max-width: 1440px;
  margin: 0 auto;
  padding: .5rem 1.5rem .2rem;
}
.gir-market-ticker__label {
  color: var(--brass-bright);
  font-family: var(--font-mono);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
  flex-shrink: 0;
}
.gir-market-ticker__note,
.gir-market-ticker__disclaimer {
  color: var(--text-on-ink-muted);
  font-size: .68rem;
}
.gir-market-ticker__widget { min-height: 48px; width: 100%; }
.gir-market-ticker__widget tv-ticker-tape { display: block; width: 100%; }
.gir-market-ticker__disclaimer {
  max-width: 1440px;
  margin: 0 auto;
  padding: .1rem 1.5rem .45rem;
  line-height: 1.4;
}
@media (max-width: 640px) {
  .gir-market-ticker__heading { padding: .5rem 1rem .2rem; }
  .gir-market-ticker__note { text-align: right; }
  .gir-market-ticker__disclaimer { padding: .1rem 1rem .45rem; }
}

/* ============================================================
   Editorial hero — lead story above a clean horizontal rail
   ============================================================ */
.hero-editorial {
  padding: 2rem 0 2.7rem;
  border-bottom: 1px solid var(--rule);
}
.hero-lead { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 2rem; align-items: end; }
.hero-lead__media { display:block; aspect-ratio: 16 / 9; overflow:hidden; background:var(--paper-raised); }
.hero-lead__media img { width:100%; height:100%; object-fit:cover; }
.hero-lead__body { padding-bottom:.25rem; }
.hero-lead__title { font-size:clamp(2rem, 4.2vw, 3.25rem); line-height:1.04; margin:.25rem 0 .65rem; letter-spacing:-.025em; }
.hero-lead__title a:hover { text-decoration:none; color:var(--teal); }
.hero-lead__dek { font-family:var(--font-display); font-style:italic; color:var(--text-muted); font-size:1.08rem; max-width:58ch; margin:0 0 .75rem; }
.hero-supporting { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:1.35rem; margin-top:1.7rem; }
.story-card--support { min-width:0; }
.story-card--support .story-card__media { aspect-ratio:16 / 9; }

.media-placeholder {
  display:flex; align-items:center; justify-content:center; width:100%; height:100%;
  background:linear-gradient(135deg,var(--ink) 0%,var(--ink-soft) 100%);
  color:var(--brass-bright); font-family:var(--font-display); font-size:.85rem; text-align:center; padding:.4rem;
}
.media-placeholder--lg { font-size:1.6rem; }

/* ============================================================
   Story cards / homepage sections
   ============================================================ */
.story-card { display:flex; flex-direction:column; min-width:0; }
.story-card__media { display:block; aspect-ratio:16 / 10; overflow:hidden; background:var(--paper-raised); margin-bottom:.7rem; }
.story-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.story-card:hover .story-card__media img { transform:scale(1.02); }
.story-card__kicker { font-family:var(--font-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.03em; color:var(--teal); margin:0 0 .3rem; }
.story-card__title { font-size:1.08rem; line-height:1.3; margin:0 0 .35rem; }
.story-card__title a:hover { text-decoration:none; color:var(--teal); }
.story-card__meta { font-family:var(--font-mono); font-size:.72rem; color:var(--text-muted); margin:0; }
.section-block { padding:2.5rem 0; border-bottom:1px solid var(--rule); }
.section-block__head { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:1.3rem; gap:1rem; }
.section-block__head h2 { font-size:1.55rem; margin:0; }
.section-block__head h2 a:hover { text-decoration:none; color:var(--teal); }
.section-block__eyebrow { font-family:var(--font-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color:var(--brass); margin:0 0 .25rem; }
.section-block__more { font-family:var(--font-mono); font-size:.78rem; color:var(--brass); white-space:nowrap; }
.section-block__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem; }
.section-block__grid--featured .story-card--section-lead { grid-column:auto; }

/* ============================================================
   Newsletter CTA
   ============================================================ */
.newsletter-cta {
  background: var(--ink);
  color: var(--text-on-ink);
  margin: 3rem 0;
}
.newsletter-cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
  padding: 2.5rem 1.5rem;
}
.newsletter-cta h2 { font-size: 1.5rem; margin: 0 0 0.3rem; }
.newsletter-cta p { margin: 0; color: var(--text-on-ink-muted); max-width: 46ch; }
.newsletter-cta__form { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.newsletter-cta__form input {
  font-family: var(--font-body);
  font-size: 0.92rem;
  padding: 0.7rem 1rem;
  border: 1px solid var(--rule-on-ink);
  background: var(--ink-soft);
  color: var(--text-on-ink);
  min-width: 240px;
}
.newsletter-cta__form button {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.9rem;
  padding: 0.7rem 1.4rem;
  background: var(--brass-bright);
  color: var(--ink);
  border: 0;
  cursor: pointer;
}
.newsletter-cta__form button:hover { background: var(--brass); }

/* ============================================================
   Section index (ledger rail) on home page
   ============================================================ */
.section-index {
  padding: 2.5rem 0;
  border-top: 1px solid var(--rule);
  margin-top: 2rem;
}
.section-index__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0;
  border-top: 1px solid var(--rule);
  border-left: 1px solid var(--rule);
}
.section-index__cell {
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  padding: 1.4rem 1.2rem;
}
.section-index__num {
  font-family: var(--font-mono);
  color: var(--brass);
  font-size: 0.8rem;
  display: block;
  margin-bottom: 0.6rem;
}
.section-index__cell h3 {
  font-size: 1.2rem;
  margin-bottom: 0.5rem;
}
.section-index__cell ul {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.85rem;
  color: var(--text-muted);
}
.section-index__cell li { padding: 0.15rem 0; }

/* ============================================================
   Post index / listing (category + home "latest")
   ============================================================ */
.post-index {
  list-style: none;
  margin: 0;
  padding: 0;
}
.post-index__item {
  display: grid;
  grid-template-columns: 2.4rem 1fr;
  gap: 1rem;
  padding: 1.4rem 0;
  border-bottom: 1px solid var(--rule);
}
.post-index__num {
  font-family: var(--font-mono);
  color: var(--brass);
  font-size: 0.9rem;
  padding-top: 0.2rem;
}
.post-index__kicker {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--teal);
  margin: 0 0 0.3rem;
}
.post-index__title {
  font-size: 1.35rem;
  margin: 0 0 0.35rem;
}
.post-index__dek {
  color: var(--text-muted);
  margin: 0 0 0.4rem;
  max-width: 62ch;
}
.post-index__date {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--text-muted);
}

.empty-state {
  color: var(--text-muted);
  font-style: italic;
  padding: 2rem 0;
}

/* ============================================================
   Category page
   ============================================================ */
.category-page { padding:2.5rem 0 4rem; }
.category-page__kicker { font-family:var(--font-mono); font-size:.75rem; color:var(--text-muted); text-transform:uppercase; }
.category-page__title { font-size:clamp(1.8rem,4vw,2.6rem); }
.category-page__subnav { display:flex; flex-wrap:wrap; gap:.5rem 1.2rem; padding:1rem 0 1.6rem; margin-bottom:1.6rem; border-bottom:1px solid var(--rule); font-size:.9rem; }
.category-page__subnav a { color:var(--teal); }
.category-hero { padding:0 0 2.4rem; border-bottom:1px solid var(--rule); margin-bottom:2rem; }
.category-hero__lead { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:2rem; align-items:end; }
.category-hero__media { display:block; aspect-ratio:16 / 9; overflow:hidden; background:var(--paper-raised); }
.category-hero__media img { width:100%; height:100%; object-fit:cover; }
.category-hero__body { padding-bottom:.2rem; }
.category-hero__body h2 { font-size:clamp(1.8rem,3.5vw,2.7rem); line-height:1.08; margin:.25rem 0 .65rem; }
.category-hero__body h2 a:hover { color:var(--teal); text-decoration:none; }
.category-hero__body > p:not(.post-index__kicker) { font-family:var(--font-display); font-style:italic; color:var(--text-muted); font-size:1.05rem; }
.category-hero__supporting { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.35rem; margin-top:1.6rem; }
.category-support-card { display:grid; grid-template-columns:120px 1fr; gap:.85rem; min-width:0; padding-top:1rem; border-top:1px solid var(--rule); }
.category-support-card__media { display:block; aspect-ratio:16 / 10; overflow:hidden; background:var(--paper-raised); }
.category-support-card__media img { width:100%; height:100%; object-fit:cover; }
.category-support-card h3 { font-size:1rem; line-height:1.25; margin:.15rem 0 .35rem; }
.category-support-card h3 a:hover { color:var(--teal); text-decoration:none; }
.category-support-card time { font-family:var(--font-mono); font-size:.67rem; color:var(--text-muted); }
.category-post-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem; }
.category-post-card { display:flex; flex-direction:column; min-width:0; background:var(--paper-raised); border:1px solid var(--rule); transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.category-post-card:hover { transform:translateY(-3px); box-shadow:0 10px 28px rgba(18,22,31,.10); border-color:rgba(44,100,89,.35); }
.category-post-card__media { display:block; aspect-ratio:16 / 9; overflow:hidden; background:var(--paper-raised); }
.category-post-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.category-post-card:hover .category-post-card__media img { transform:scale(1.025); }
.category-post-card__body { padding:1.05rem 1.1rem 1.15rem; display:flex; flex-direction:column; flex:1; }
.category-post-card__title { font-size:1.12rem; line-height:1.3; margin:.2rem 0 .55rem; }
.category-post-card__title a:hover { color:var(--teal); text-decoration:none; }
.category-post-card__dek { color:var(--text-muted); font-size:.92rem; line-height:1.55; margin:0 0 .9rem; }
.category-post-card__meta { display:flex; gap:.4rem; align-items:center; margin-top:auto; padding-top:.75rem; border-top:1px solid var(--rule); font-family:var(--font-mono); font-size:.68rem; color:var(--text-muted); }
.category-post-card__meta a { color:var(--text-muted); }
.category-post-card__meta a:hover { color:var(--teal); }

/* ============================================================
   Post / page
   ============================================================ */
.post, .page { padding: 3rem 0 5rem; }
.post__kicker {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 0.8rem;
}
.post__title { font-size: clamp(2rem, 5vw, 2.8rem); }
.post__dek {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.2rem;
  color: var(--text-muted);
}
.post__meta {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--text-muted);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  padding: 0.8rem 0;
  margin: 1.2rem 0 2rem;
}
.post__image { margin: 0 0 2rem; }
.post__image figcaption {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-top: 0.5rem;
}
.post__body, .page__body {
  font-size: 1.08rem;
  max-width: 68ch;
}
.post__body h2, .page__body h2 { font-size: 1.5rem; margin-top: 2em; }
.post__body h3, .page__body h3 { font-size: 1.2rem; margin-top: 1.6em; }
.post__body p, .page__body p { margin: 0 0 1.3em; }
.post__body a, .page__body a { color: var(--teal); text-decoration: underline; text-underline-offset: 2px; }
.post__body blockquote, .page__body blockquote {
  margin: 2em 0;
  padding-left: 1.2em;
  border-left: 3px solid var(--brass);
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.15rem;
  color: var(--text-muted);
}
.post__body ul, .post__body ol, .page__body ul, .page__body ol {
  margin: 0 0 1.3em;
  padding-left: 1.3em;
}
.post__footer { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--rule); }
.back-link { font-family: var(--font-mono); font-size: 0.85rem; color: var(--teal); }

.page__title { font-size: clamp(1.8rem, 4vw, 2.6rem); }
.page__dek { font-family: var(--font-display); font-style: italic; color: var(--text-muted); font-size: 1.15rem; }

/* ============================================================
   Footer
   ============================================================ */
.site-footer {
  background: var(--ink);
  color: var(--text-on-ink-muted);
  margin-top: 4rem;
  padding: 3.5rem 0 1.5rem;
}
.site-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid var(--rule-on-ink);
}
.site-footer__logo {
  font-family: var(--font-display);
  font-size: 1.6rem;
  color: var(--text-on-ink);
  margin: 0 0 0.8rem;
}
.site-footer__about p { max-width: 42ch; font-size: 0.92rem; }
.site-footer__social {
  list-style: none;
  display: flex;
  gap: 1rem;
  padding: 0;
  margin: 1rem 0 0;
  font-family: var(--font-mono);
  font-size: 0.8rem;
}
.site-footer__social a { color: var(--text-on-ink); }
.site-footer__nav h2 {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--text-on-ink);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 0.9rem;
}
.site-footer__nav ul { list-style: none; margin: 0; padding: 0; }
.site-footer__nav li { padding: 0.3rem 0; font-size: 0.88rem; }
.site-footer__legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.8rem;
  padding-top: 1.5rem;
  font-size: 0.78rem;
}
.site-footer__legal ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0 1rem;
  padding: 0;
  margin: 0;
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 900px) {
  .hero-lead, .category-hero__lead { grid-template-columns:1fr; gap:1.2rem; }
  .hero-supporting { grid-template-columns:repeat(2,1fr); }
  .category-hero__supporting { grid-template-columns:1fr; }
  .section-block__grid, .category-post-grid { grid-template-columns:repeat(2,1fr); gap:1.2rem; }
  .site-footer__grid { grid-template-columns: 1fr; }
  #main { border-top-color: var(--rule); }

  .nav-toggle { display: flex; flex: 0 0 auto; }
  .primary-nav { display: none; }
  .primary-nav.is-open { display: block; }
  .primary-nav__list { flex-direction: column; padding: 0; border-top: 0; }
  .primary-nav__item { border-right: 0; border-bottom: 1px solid var(--rule-on-ink); }
  .primary-nav__sub {
    display: none;
    position: static;
    border: 0;
    background: var(--ink);
    padding-left: 1rem;
  }
  .primary-nav__item.is-expanded .primary-nav__sub,
  .primary-nav__item.is-touch-open .primary-nav__sub { display: block; }
  .primary-nav__expand {
    display: block;
    position: absolute;
    top: 0.3rem;
    right: 0.3rem;
    width: 2.2rem;
    height: 2.2rem;
    background: none;
    border: 0;
  }
  .primary-nav__expand span {
    display: block;
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--text-on-ink);
    border-bottom: 2px solid var(--text-on-ink);
    transform: rotate(45deg);
    margin: 6px auto;
  }
}


/* ============================================================
   Professional category/article cards
   ============================================================ */
.category-post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.6rem;
}
.category-post-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--paper-raised, #fff);
  border: 1px solid var(--rule);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.category-post-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(18,22,31,.10); border-color: rgba(44,100,89,.35); }
.category-post-card__media { display:block; aspect-ratio: 16 / 9; overflow:hidden; background:var(--paper-raised); }
.category-post-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.category-post-card:hover .category-post-card__media img { transform:scale(1.025); }
.category-post-card__body { padding: 1.05rem 1.1rem 1.15rem; display:flex; flex-direction:column; flex:1; }
.category-post-card__title { font-size:1.2rem; line-height:1.3; margin:.2rem 0 .55rem; }
.category-post-card__title a:hover { color:var(--teal); text-decoration:none; }
.category-post-card__dek { color:var(--text-muted); font-size:.92rem; line-height:1.55; margin:0 0 .9rem; }
.category-post-card__meta { display:flex; gap:.4rem; align-items:center; margin-top:auto; padding-top:.75rem; border-top:1px solid var(--rule); font-family:var(--font-mono); font-size:.68rem; color:var(--text-muted); }
.category-post-card__meta a { color:var(--text-muted); }
.category-post-card__meta a:hover { color:var(--teal); }

/* Global author/profile box */
.author-box {
  display:flex; gap:1.2rem; margin:2.8rem 0 1.5rem; padding:1.35rem;
  border:1px solid var(--rule); background:var(--paper-raised, #fff);
}
.author-box__photo { width:88px; height:88px; border-radius:50%; object-fit:cover; flex:0 0 88px; }
.author-box__label { margin:0 0 .2rem; font-family:var(--font-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--brass); }
.author-box h2 { margin:.1rem 0 .4rem; font-size:1.25rem; }
.author-box h2 a:hover { color:var(--teal); text-decoration:none; }
.author-box p { margin:0; color:var(--text-muted); font-size:.9rem; line-height:1.55; }
.author-box__links { display:flex; gap:.8rem; margin-top:.65rem; font-family:var(--font-mono); font-size:.72rem; }

@media (max-width: 900px) { .category-post-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 620px) {
  #main > .wrap { padding-left: 1rem; padding-right: 1rem; }
  .category-post-grid { grid-template-columns:1fr; }
  .author-box { align-items:flex-start; }
}

.author-box__custom { color:var(--text-muted); font-size:.92rem; line-height:1.65; }
.author-box__custom a { color:var(--teal); }
.author-box__custom img { max-width:100%; height:auto; }
.author-box__text { white-space:pre-line; }
.financial-disclaimer { margin:0 0 1.8rem; padding:.8rem 1rem; border-left:3px solid var(--brass); background:var(--paper-raised, #fff); color:var(--text-muted); font-size:.78rem; line-height:1.55; }

/* ============================================================
   Article UX: breadcrumbs, TOC, actions, related analysis
   ============================================================ */
.breadcrumbs {
  display:flex; flex-wrap:wrap; gap:.45rem; align-items:center;
  margin:0 0 1.25rem; font-family:var(--font-mono); font-size:.68rem;
  color:var(--text-muted); line-height:1.5;
}
.breadcrumbs a { color:var(--text-muted); text-decoration:none; }
.breadcrumbs a:hover { color:var(--teal); text-decoration:underline; }
.breadcrumbs span[aria-current="page"] { color:var(--ink); max-width:30ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.post-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem; }
.post-action { border:1px solid var(--rule); background:var(--paper-raised,#fff); color:var(--ink); padding:.45rem .72rem; border-radius:2px; font:500 .72rem var(--font-mono); cursor:pointer; }
.post-action:hover, .post-action:focus-visible { border-color:var(--teal); color:var(--teal); }
.post-layout { display:grid; grid-template-columns:minmax(0, 1fr); }
.post-sidebar { display:none; }
.toc { position:sticky; top:1rem; border-left:2px solid var(--rule); padding:.25rem 0 .25rem 1rem; }
.toc__title { margin:0 0 .55rem; font:600 .68rem var(--font-mono); text-transform:uppercase; letter-spacing:.07em; color:var(--brass); }
.toc ol { list-style:none; padding:0; margin:0; }
.toc li { margin:.3rem 0; font-size:.78rem; line-height:1.35; }
.toc li.toc__sub { padding-left:.7rem; font-size:.73rem; }
.toc a { color:var(--text-muted); text-decoration:none; }
.toc a:hover { color:var(--teal); }
.related-posts { margin-top:3rem; padding-top:2rem; border-top:1px solid var(--rule); }
.related-posts > h2 { margin:0 0 1rem; font-size:1.35rem; }
.related-posts__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; }
.related-card { min-width:0; }
.related-card img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; margin-bottom:.7rem; }
.related-card h3 { font-size:1rem; line-height:1.35; margin:.15rem 0 .4rem; }
.related-card h3 a:hover { color:var(--teal); text-decoration:none; }
.related-card p:last-child { color:var(--text-muted); font-size:.82rem; line-height:1.5; margin:0; }
.author-profile-header { display:grid; grid-template-columns:auto minmax(0,1fr); gap:1.4rem; align-items:center; margin-bottom:2rem; }
.author-profile-header__photo { width:112px; height:112px; border-radius:50%; object-fit:cover; border:1px solid var(--rule); }
.author-profile-header__bio { color:var(--text-muted); max-width:70ch; line-height:1.65; }
.author-profile-header__bio p:last-child { margin-bottom:0; }
.author-box--profile { margin-top:0; }
@media (min-width: 1080px) {
  .post-layout { grid-template-columns:minmax(0, 1fr) 180px; gap:2rem; }
  .post-sidebar { display:block; order:2; }
  .post__body { order:1; min-width:0; }
}
@media (max-width: 760px) {
  .related-posts__grid { grid-template-columns:1fr; }
  .author-profile-header { grid-template-columns:1fr; }
}
@media print {
  .masthead, .primary-nav, .post-actions, .post-sidebar, .related-posts, .post__footer, .author-box__links { display:none !important; }
  .post, .wrap { max-width:none; }
  body { background:#fff; }
}

/* Static replacements for legacy WordPress shortcodes */
.gir-shortcode-card{margin:1.5rem 0;padding:1.25rem 1.4rem;border:1px solid var(--rule);border-radius:12px;background:#fff}
.gir-shortcode-card h2{margin-top:0}
.gir-shortcode-card a{font-weight:700;color:var(--teal)}
.gir-country-widget{margin:1.5rem 0;padding:1.25rem;border:1px solid var(--rule);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(18,22,31,.05)}
.gir-country-widget__head{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1rem;font-family:var(--font-mono)}
.gir-country-widget__group{margin-top:1.15rem}
.gir-country-widget__group h3{margin:0 0 .65rem;font-size:.9rem;letter-spacing:.02em;color:var(--text-muted)}
.gir-country-widget__metric{min-width:0}
.gir-country-widget__metric b{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.gir-country-widget__metric [data-wb-year]{display:block;margin-top:.35rem;color:var(--text-muted);font-size:.65rem}

.gir-country-widget__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}
.gir-country-widget__grid>div{padding:.9rem;border:1px solid var(--rule);border-radius:10px;background:var(--paper)}
.gir-country-widget__grid small,.gir-country-widget__grid b{display:block}.gir-country-widget__grid small{color:var(--text-muted);font-size:.7rem}.gir-country-widget__grid b{margin-top:.35rem}
.gir-country-widget__note{margin:.9rem 0 0;font-size:.75rem;color:var(--text-muted)}
@media(max-width:700px){.gir-country-widget__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
