/*
 * rhfnews.com — Bloomberg-style editorial stylesheet (hotfix: forked from fbindustrynews v0.7.13)
 * v0.4 — locked design spec: May 2026
 *
 * Design tokens (overridden by inline :root vars from server/rendering/layout.ts):
 *   --accent:        #A40000  (Bloomberg red)
 *   --text:          #0A0A0A
 *   --bg:            #FFFFFF
 *   --font-display:  'Playfair Display', Georgia, serif
 *   --font-body:     'Inter', system-ui, sans-serif
 *   --border:        #E5E5E5
 *   --surface:       #FAFAFA
 */

/* ============================================================
   RESET / BASE
   ============================================================ */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  background: var(--bg, #fff);
  color: var(--text, #0a0a0a);
  font-family: var(--font-body, 'Inter', system-ui, -apple-system, sans-serif);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font: inherit; }

/* Screen-reader only */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ============================================================
   LAYOUT — Container
   ============================================================ */

.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

@media (max-width: 768px) {
  .container { padding: 0 16px; }
}

/* ============================================================
   MASTHEAD
   ============================================================ */

.masthead {
  border-bottom: 1px solid #1f1f22;
  background: #0F0F10;
  color: #F2EFEA;
}

.masthead-accent-bar {
  height: 4px;
  background: #A40000;
  width: 100%;
}

.masthead-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding-top: 24px;
  padding-bottom: 24px;
  min-height: 140px;              /* v0.7.6: roomier band to hold a dominant lockup */
}

.masthead-logo-link {
  display: inline-flex;
  align-items: center;
  max-height: 100px;              /* v0.7.6: bumped from 72 */
  overflow: hidden;
}

.masthead-logo {
  /* v0.7.6: scale up to network-flagship presence — matches rhfnews dominance.
     v8b wordmark is 4000×900 (~4.4:1) → height 92px ≈ 409px wide,
     ~35% of a 1152px container (was 23% at 60px). */
  height: 92px;
  width: auto;
  max-width: min(640px, 80vw);
  display: block;
}

@media (max-width: 900px) {
  .masthead-logo { height: 72px; }
  .masthead-logo-link { max-height: 80px; }
  .masthead-inner { min-height: 110px; }
}

@media (max-width: 600px) {
  .masthead-logo { height: 52px; }
  .masthead-logo-link { max-height: 64px; }
  .masthead-inner { min-height: 88px; padding-top: 16px; padding-bottom: 16px; }
}

.masthead-wordmark {
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: 2rem;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--text, #0a0a0a);
  line-height: 1;
}

.masthead-meta {
  text-align: right;
}

.masthead-byline {
  font-size: 0.85rem;              /* v0.7.6: bumped from 0.75 to balance bigger logo */
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #F2EFEA;
  margin-bottom: 4px;
}

.masthead-byline-link {
  color: #A40000;
  text-decoration: none;
}

.masthead-byline-link:hover { text-decoration: underline; }

.masthead-date {
  font-size: 0.8rem;               /* v0.7.6: bumped from 0.7 */
  color: #8c8c91;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

@media (max-width: 600px) {
  .masthead-inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .masthead-meta {
    text-align: left;
  }
}

/* ============================================================
   NAVIGATION
   ============================================================ */

.site-nav {
  background: var(--text, #0a0a0a);
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 2px solid var(--accent, #A40000);
}

.nav-inner {
  display: flex;
  align-items: center;
  gap: 0;
  height: 44px;
}

.nav-menu {
  display: flex;
  align-items: center;
  gap: 0;
  flex: 1;
}

.nav-link {
  display: block;
  padding: 0 14px;
  height: 44px;
  line-height: 44px;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.8);
  white-space: nowrap;
  transition: color 0.15s, background 0.15s;
}

.nav-link:hover,
.nav-link--active {
  color: #fff;
  background: rgba(255,255,255,0.08);
  text-decoration: none;
}

.nav-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 36px;
  height: 44px;
  padding: 0 8px;
  margin-right: 8px;
}

.hamburger-bar {
  display: block;
  width: 20px;
  height: 2px;
  background: rgba(255,255,255,0.8);
  border-radius: 1px;
  transition: transform 0.2s;
}

.nav-search {
  margin-left: auto;
  display: flex;
  align-items: center;
}

.nav-search-form {
  display: flex;
  align-items: center;
  gap: 4px;
}

.nav-search-input {
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff;
  font-size: 0.75rem;
  padding: 4px 10px;
  border-radius: 3px;
  width: 160px;
  outline: none;
}

.nav-search-input::placeholder { color: rgba(255,255,255,0.4); }

.nav-search-input:focus {
  background: rgba(255,255,255,0.15);
  border-color: rgba(255,255,255,0.4);
}

.nav-search-btn {
  display: flex;
  align-items: center;
  color: rgba(255,255,255,0.7);
  padding: 4px;
  transition: color 0.15s;
}

.nav-search-btn:hover { color: #fff; }

@media (max-width: 768px) {
  .nav-hamburger { display: flex; }
  .nav-menu {
    display: none;
    flex-direction: column;
    align-items: flex-start;
    position: absolute;
    top: 44px;
    left: 0;
    right: 0;
    background: var(--text, #0a0a0a);
    border-top: 1px solid rgba(255,255,255,0.1);
    z-index: 99;
  }
  .nav-menu--open { display: flex; }
  .nav-link { height: 40px; line-height: 40px; width: 100%; padding-left: 20px; }
  .nav-search { display: none; }
}

/* ============================================================
   TICKER BAR
   ============================================================ */

.ticker-bar {
  background: #f4f4f4;
  border-bottom: 1px solid #e5e5e5;
  overflow: hidden;
}

.ticker-inner {
  display: flex;
  gap: 0;
  padding: 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.ticker-inner::-webkit-scrollbar { display: none; }

.ticker-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  white-space: nowrap;
  border-right: 1px solid #e5e5e5;
  color: var(--text, #0a0a0a);
  text-decoration: none;
  transition: background 0.15s;
}

.ticker-item:hover {
  background: rgba(0,0,0,0.04);
  text-decoration: none;
}

.ticker-cat { color: var(--text, #0a0a0a); }
.ticker-count {
  font-variant-numeric: tabular-nums;
  color: var(--accent, #A40000);
  font-weight: 700;
}

/* ============================================================
   SITE MAIN
   ============================================================ */

.site-main {
  padding: 32px 24px;
}

@media (max-width: 768px) {
  .site-main { padding: 20px 16px; }
}

/* ============================================================
   ARTICLE CARDS
   ============================================================ */

.article-card {
  display: flex;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid #e5e5e5;
}

/* Featured card — full width, image above */
.article-card--featured {
  flex-direction: column;
  padding: 0 0 28px;
  margin-bottom: 28px;
  border-bottom: 2px solid var(--accent, #A40000);
}

/* v0.7.13: Featured-card hero image cap.
   The thumb-wrap MUST be position:relative so the absolutely-positioned
   .card-thumb--photo (defined later as `position:absolute; inset:0`) stays
   inside the wrap. Without this, oversized PR Newswire / Cision images
   (e.g. Karbach "Now Pouring A Fresh Look" splash) escape the wrap and
   render at natural size as a full-page takeover. max-height clamps the
   hero to a reasonable strip even when the viewport is very wide. */
.article-card--featured .card-thumb-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16/7;
  max-height: 480px;
  overflow: hidden;
  margin-bottom: 16px;
}

.article-card--featured .card-thumb {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-height: 480px;
  object-fit: cover;
  object-position: center;
  transition: transform 0.3s;
}

.article-card--featured .card-thumb:hover { transform: scale(1.02); }

.article-card--featured .card-headline {
  font-size: 2rem;
  line-height: 1.2;
}

@media (max-width: 768px) {
  .article-card--featured .card-headline { font-size: 1.5rem; }
}

/* Standard card — image right */
.article-card--standard .card-thumb-wrap {
  flex-shrink: 0;
  width: 140px;
  height: 100px;
  overflow: hidden;
  order: 2;
  border-radius: 2px;
}

.article-card--standard .card-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.25s;
}

.article-card--standard .card-thumb:hover { transform: scale(1.04); }

.article-card--standard .card-body { order: 1; flex: 1; }

/* Compact card — no image */
.article-card--compact .card-thumb-wrap { display: none; }

.article-card--compact {
  padding: 14px 0;
}

.article-card--compact .card-headline {
  font-size: 0.95rem;
  font-weight: 700;
}

/* Card body */
.card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.card-category-tag {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent, #A40000);
  border-left: 3px solid var(--accent, #A40000);
  padding-left: 6px;
  text-decoration: none;
  line-height: 1;
}

.card-category-tag:hover { text-decoration: none; opacity: 0.8; }

.card-headline {
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--text, #0a0a0a);
}

.card-headline-link {
  color: inherit;
  text-decoration: none;
}

.card-headline-link:hover {
  text-decoration: none;
  color: var(--accent, #A40000);
}

.card-dek {
  font-size: 0.85rem;
  color: #555;
  line-height: 1.5;
}

.card-meta {
  font-size: 0.72rem;
  color: #888;
  margin-top: auto;
  padding-top: 4px;
}

.card-byline {
  font-weight: 600;
  color: #555;
}

.card-date { }

/* ============================================================
   ARTICLE GRID — homepage 3-col
   ============================================================ */

.article-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid #e5e5e5;
}

.article-grid .article-card {
  padding: 20px;
  border-bottom: 1px solid #e5e5e5;
  border-right: 1px solid #e5e5e5;
  flex-direction: column;
}

.article-grid .article-card:nth-child(3n) { border-right: none; }

.article-grid .card-thumb-wrap {
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  order: -1;
  margin-bottom: 10px;
  border-radius: 2px;
}

.article-grid .card-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.25s;
}

.article-grid .card-thumb:hover { transform: scale(1.03); }

@media (max-width: 900px) {
  .article-grid { grid-template-columns: repeat(2, 1fr); }
  .article-grid .article-card:nth-child(3n) { border-right: 1px solid #e5e5e5; }
  .article-grid .article-card:nth-child(2n) { border-right: none; }
}

@media (max-width: 560px) {
  .article-grid { grid-template-columns: 1fr; }
  .article-grid .article-card { border-right: none !important; }
}

/* Section headings */
.section-heading {
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-bottom: 2px solid var(--text, #0a0a0a);
  padding-bottom: 8px;
  margin-bottom: 0;
}

/* Secondary article list */
.section-secondary { margin-top: 32px; }

.article-list {
  border-top: 1px solid #e5e5e5;
}

/* Load more */
.load-more-wrap {
  text-align: center;
  padding: 32px 0 8px;
}

.btn-load-more {
  display: inline-block;
  padding: 10px 28px;
  background: var(--text, #0a0a0a);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 2px;
  text-decoration: none;
  transition: background 0.15s;
}

.btn-load-more:hover {
  background: var(--accent, #A40000);
  text-decoration: none;
}

/* ============================================================
   AD SLOTS
   ============================================================ */

.ad-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 12px 0;
  min-height: 0;
}

.ad-wrap--home-top {
  padding: 16px 0;
  border-bottom: 1px solid #e5e5e5;
}

.ad-wrap--infeed {
  padding: 24px 0;
}

.ad-wrap--sticky-footer {
  padding: 16px 0;
  border-top: 1px solid #e5e5e5;
}

.ad-wrap--article-inline {
  padding: 24px 0;
  display: flex;
  justify-content: center;
}

.ad-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f9f9f9;
  border: 1px dashed #ccc;
  font-size: 0.65rem;
  color: #aaa;
  text-align: center;
}

/* ============================================================
   ARTICLE PAGE
   ============================================================ */

.article-page-wrap {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 48px;
  padding-top: 32px;
  padding-bottom: 48px;
}

@media (max-width: 900px) {
  .article-page-wrap {
    grid-template-columns: 1fr;
  }
  .article-sidebar { display: none; }
}

/* Breadcrumb */
.breadcrumb {
  margin-bottom: 20px;
  font-size: 0.72rem;
}

.breadcrumb-list {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  color: #888;
}

.breadcrumb-item a { color: #555; text-decoration: none; }
.breadcrumb-item a:hover { text-decoration: underline; }
.breadcrumb-item[aria-current] { color: #0a0a0a; font-weight: 500; }
.breadcrumb-sep { color: #ccc; }

/* Article header */
.article-header {
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--accent, #A40000);
}

.article-header-meta { margin-bottom: 12px; }

.article-category-tag {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent, #A40000);
  border-left: 3px solid var(--accent, #A40000);
  padding-left: 6px;
  text-decoration: none;
}

.article-headline {
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  margin-bottom: 12px;
  color: var(--text, #0a0a0a);
}

@media (max-width: 768px) {
  .article-headline { font-size: 1.6rem; }
}

.article-dek {
  font-size: 1.1rem;
  color: #444;
  line-height: 1.5;
  margin-bottom: 12px;
  font-style: italic;
}

.article-byline-row {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.75rem;
  color: #666;
  flex-wrap: wrap;
}

.article-source {
  font-weight: 600;
  color: var(--text, #0a0a0a);
}

.article-date { color: #888; }

/* Hero image */
.article-hero {
  margin-bottom: 28px;
  border-radius: 2px;
  overflow: hidden;
}

.article-hero-img {
  width: 100%;
  height: auto;
  display: block;
}

.article-hero-credit {
  font-size: 0.68rem;
  color: #999;
  padding: 6px 0;
  font-style: italic;
}

/* Takeaways box */
.article-takeaways {
  background: #f6f6f6;
  border-left: 4px solid var(--accent, #A40000);
  padding: 16px 20px;
  margin-bottom: 24px;
  border-radius: 0 2px 2px 0;
}

.takeaways-title {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 10px;
  color: var(--accent, #A40000);
}

.takeaways-list {
  list-style: disc;
  padding-left: 18px;
  font-size: 0.875rem;
  line-height: 1.7;
  color: #333;
}

.takeaways-list li { margin-bottom: 4px; }

/* Article body prose */
.article-body {
  font-size: 1rem;
  line-height: 1.75;
  color: #1a1a1a;
  max-width: 680px;
}

.article-body p { margin-bottom: 1.25em; }

.article-body h2 {
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 2em 0 0.6em;
  color: var(--text, #0a0a0a);
}

.article-body h3 {
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: 1.2rem;
  font-weight: 700;
  margin: 1.5em 0 0.5em;
}

.article-body a {
  color: var(--accent, #A40000);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.article-body a:hover { opacity: 0.8; }

.article-body ul, .article-body ol {
  padding-left: 1.5em;
  margin-bottom: 1.25em;
  list-style: disc;
}

.article-body ol { list-style: decimal; }
.article-body li { margin-bottom: 0.4em; }

.article-body blockquote {
  border-left: 4px solid var(--accent, #A40000);
  padding: 12px 20px;
  margin: 1.5em 0;
  font-style: italic;
  color: #444;
  background: #f9f9f9;
}

/* Article tags */
.article-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid #e5e5e5;
}

.article-tag {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 4px 10px;
  border: 1px solid #e5e5e5;
  border-radius: 2px;
  color: #555;
  text-transform: uppercase;
  text-decoration: none;
  transition: border-color 0.15s, color 0.15s;
}

.article-tag:hover {
  border-color: var(--accent, #A40000);
  color: var(--accent, #A40000);
  text-decoration: none;
}

/* Article footer */
.article-footer {
  margin-top: 28px;
  padding-top: 16px;
  border-top: 1px solid #e5e5e5;
  font-size: 0.78rem;
  color: #888;
}

.article-footer-note a {
  color: var(--accent, #A40000);
  text-decoration: underline;
}

/* ============================================================
   SIDEBAR
   ============================================================ */

.sidebar-inner {
  position: sticky;
  top: 64px;
}

.sidebar-heading {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-bottom: 2px solid var(--text, #0a0a0a);
  padding-bottom: 8px;
  margin-bottom: 0;
  color: var(--text, #0a0a0a);
}

.sidebar-articles {
  border-top: none;
}

/* ============================================================
   RELATED ARTICLES
   ============================================================ */

.related-articles {
  padding: 32px 0;
  border-top: 2px solid #e5e5e5;
  margin-top: 0;
}

.related-heading {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 20px;
  color: var(--text, #0a0a0a);
  border-bottom: 2px solid var(--text, #0a0a0a);
  padding-bottom: 8px;
}

.related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid #e5e5e5;
}

.related-grid .article-card {
  padding: 16px;
  border-right: 1px solid #e5e5e5;
  flex-direction: column;
  border-bottom: none;
}

.related-grid .article-card:last-child { border-right: none; }

@media (max-width: 768px) {
  .related-grid { grid-template-columns: 1fr; }
  .related-grid .article-card { border-right: none; border-bottom: 1px solid #e5e5e5; }
}

/* ============================================================
   CATEGORY PAGE
   ============================================================ */

.category-page-wrap {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 48px;
  padding-top: 32px;
  padding-bottom: 48px;
}

.category-page-main { min-width: 0; }

.category-sidebar {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

@media (max-width: 900px) {
  .category-page-wrap {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .category-sidebar { display: none; }
}

.category-header {
  padding-bottom: 20px;
  margin-bottom: 24px;
  border-bottom: 2px solid var(--accent, #A40000);
}

.category-title {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.category-label {
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.category-count {
  font-size: 0.8rem;
  color: #888;
  font-weight: 400;
}

/* Category grid */
.article-grid--category {
  grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 900px) {
  .article-grid--category { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
  .article-grid--category { grid-template-columns: 1fr; }
}

/* Pagination */
.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 32px 0;
}

.pagination-btn {
  display: inline-block;
  padding: 8px 20px;
  background: var(--text, #0a0a0a);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  border-radius: 2px;
  text-decoration: none;
  transition: background 0.15s;
}

.pagination-btn:hover {
  background: var(--accent, #A40000);
  text-decoration: none;
}

.pagination-info {
  font-size: 0.8rem;
  color: #888;
}

/* Empty state */
.empty-state {
  padding: 48px 0;
  text-align: center;
  color: #888;
  font-size: 0.9rem;
}

/* ============================================================
   NEWSLETTER SECTION (HubSpot — locked above footer)
   ============================================================ */

.newsletter-section {
  background: #f4f4f4;
  border-top: 2px solid var(--accent, #A40000);
  padding: 48px 0;
  margin-top: 48px;
}

.newsletter-inner {
  max-width: 560px;
}

.newsletter-title {
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 8px;
  letter-spacing: -0.02em;
}

.newsletter-dek {
  font-size: 0.9rem;
  color: #555;
  margin-bottom: 24px;
}

.hs-form-container {
  max-width: 480px;
}

/* HubSpot form overrides */
.hs-form-container .hs-form input[type="email"] {
  border: 1px solid #ccc !important;
  border-radius: 2px !important;
  font-family: var(--font-body) !important;
  font-size: 0.875rem !important;
}

.hs-form-container .hs-form input[type="submit"],
.hs-form-container .hs-button {
  background: var(--accent, #A40000) !important;
  border: none !important;
  border-radius: 2px !important;
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  font-size: 0.75rem !important;
  cursor: pointer !important;
}

.hs-form-container .hs-button:hover {
  background: #cc0000 !important;
}

/* ============================================================
   FOOTER
   ============================================================ */

.site-footer {
  background: var(--text, #0a0a0a);
  color: rgba(255,255,255,0.7);
  padding: 48px 0 32px;
  margin-top: 0;
}

.footer-inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.footer-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.footer-logo-link { text-decoration: none; }

.footer-wordmark {
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: 1.25rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.02em;
}

.footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 20px;
}

.footer-link {
  font-size: 0.75rem;
  font-weight: 500;
  color: rgba(255,255,255,0.6);
  text-decoration: none;
  letter-spacing: 0.04em;
  transition: color 0.15s;
}

.footer-link:hover { color: #fff; text-decoration: none; }

.footer-rule {
  height: 1px;
  background: rgba(255,255,255,0.1);
}

.footer-attribution {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
}

.footer-brought-by,
.footer-powered-by {
  font-size: 0.75rem;
  color: rgba(255,255,255,0.55);
}

.footer-attribution-link {
  color: var(--accent, #A40000);
  text-decoration: none;
  font-weight: 600;
}

.footer-attribution-link:hover { text-decoration: underline; }

.footer-powered-by a {
  color: rgba(255,255,255,0.7);
  text-decoration: none;
  font-weight: 500;
}

.footer-powered-by a:hover { text-decoration: underline; }

.footer-legal {
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.footer-copyright,
.footer-disclaimer {
  font-size: 0.68rem;
  color: rgba(255,255,255,0.35);
  line-height: 1.6;
}

.footer-disclaimer { margin-top: 4px; }

/* ============================================================
   404 / ERROR PAGE
   ============================================================ */

.error-page {
  padding: 80px 0;
  text-align: center;
}

.error-code {
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: 6rem;
  font-weight: 900;
  color: #e5e5e5;
  line-height: 1;
  margin-bottom: 16px;
}

.error-message {
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 12px;
}

.error-detail {
  font-size: 0.9rem;
  color: #666;
  margin-bottom: 28px;
}

.error-path {
  display: inline-block;
  font-family: monospace;
  background: #f0f0f0;
  padding: 2px 8px;
  border-radius: 3px;
  font-size: 0.85rem;
  margin-left: 4px;
}

.btn-home {
  display: inline-block;
  padding: 10px 28px;
  background: var(--text, #0a0a0a);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  border-radius: 2px;
  text-decoration: none;
  transition: background 0.15s;
}

.btn-home:hover {
  background: var(--accent, #A40000);
  text-decoration: none;
}

/* =========================================================================
   PODCAST PAGES (v0.7) — network-wide /podcast and /podcast/:slug
   Dark surface, off-white text, salmon accent. Mirrors the v8b masthead
   palette: bg #0F0F10, accent #A40000, text #F2EFEA, grey #8c8c91.
   ========================================================================= */

.podcast-page-header {
  border-top: 4px solid var(--accent, #A40000);
  padding: 28px 0 20px;
  margin: 24px 0 32px;
  border-bottom: 1px solid #e5e5e5;
}
.podcast-page-kicker {
  font-family: var(--font-body, "Inter"), system-ui, sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  color: var(--accent, #A40000);
  margin: 0 0 8px;
  font-weight: 700;
}
.podcast-page-title {
  font-family: var(--font-display, "Playfair Display"), Georgia, serif;
  font-size: clamp(2rem, 5vw, 2.85rem);
  line-height: 1.05;
  margin: 0 0 12px;
  font-weight: 900;
  color: var(--text, #0a0a0a);
}
.podcast-page-description {
  font-size: 1.05rem;
  line-height: 1.55;
  color: #4a4a4a;
  margin: 0;
  max-width: 720px;
}

/* ---- Hero card ---- */
.podcast-hero {
  background: #0F0F10;
  color: #F2EFEA;
  border-radius: 4px;
  margin: 0 0 36px;
  overflow: hidden;
  box-shadow: 0 6px 24px rgba(0,0,0,0.08);
}
.podcast-hero-inner {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 32px;
  align-items: center;
  padding: 28px;
}
.podcast-hero-art {
  width: 100%;
  height: auto;
  max-width: 320px;
  border-radius: 3px;
  display: block;
}
.podcast-hero-eyebrow {
  font-family: var(--font-body, "Inter"), system-ui, sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  color: #A40000;
  margin: 0 0 10px;
  font-weight: 700;
}
.podcast-hero-title {
  font-family: var(--font-display, "Playfair Display"), Georgia, serif;
  font-size: clamp(1.5rem, 3.4vw, 2.1rem);
  line-height: 1.15;
  margin: 0 0 12px;
  font-weight: 700;
}
.podcast-hero-title a {
  color: #F2EFEA;
  text-decoration: none;
}
.podcast-hero-title a:hover { color: #A40000; }
.podcast-hero-meta {
  font-family: var(--font-body, "Inter"), system-ui, sans-serif;
  font-size: 0.85rem;
  color: #8c8c91;
  margin: 0 0 14px;
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.podcast-hero-summary {
  font-size: 0.98rem;
  line-height: 1.55;
  color: #d8d4cb;
  margin: 0 0 18px;
}
.podcast-hero-player {
  width: 100%;
  max-width: 560px;
  margin: 0 0 14px;
  display: block;
}
.podcast-hero-cta { margin: 0; }
.podcast-hero-link {
  color: #A40000;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.92rem;
  letter-spacing: 0.02em;
}
.podcast-hero-link:hover { text-decoration: underline; }

@media (max-width: 720px) {
  .podcast-hero-inner {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 20px;
  }
  .podcast-hero-art { max-width: 220px; margin: 0 auto; }
}

/* ---- Page grid (list + sidebar ad) ---- */
.podcast-page-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 40px;
}
@media (max-width: 960px) {
  .podcast-page-grid { grid-template-columns: 1fr; }
}
.podcast-page-aside .ad-wrap--magazine-cover {
  position: sticky;
  top: 88px;
}

/* ---- Wire-feed list ---- */
.podcast-list-section { margin-top: 8px; }
.podcast-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.podcast-row {
  border-bottom: 1px solid #ececec;
}
.podcast-row:first-child { border-top: 1px solid #ececec; }
.podcast-row-link {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 18px;
  padding: 18px 0;
  text-decoration: none;
  color: inherit;
  align-items: start;
}
.podcast-row-link:hover .podcast-row-title { color: var(--accent, #A40000); }
.podcast-row-art {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: 3px;
  display: block;
  background: #f4f4f4;
}
.podcast-row-meta {
  font-family: var(--font-body, "Inter"), system-ui, sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: #8c8c91;
  margin: 0 0 4px;
  text-transform: uppercase;
}
.podcast-row-sep { margin: 0 6px; }
.podcast-row-title {
  font-family: var(--font-display, "Playfair Display"), Georgia, serif;
  font-size: 1.18rem;
  line-height: 1.25;
  margin: 0 0 6px;
  font-weight: 700;
  color: var(--text, #0a0a0a);
  transition: color 0.15s;
}
.podcast-row-summary {
  font-size: 0.92rem;
  line-height: 1.5;
  color: #555;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 480px) {
  .podcast-row-link { grid-template-columns: 60px 1fr; gap: 12px; }
  .podcast-row-art { width: 60px; height: 60px; }
  .podcast-row-title { font-size: 1.02rem; }
}

/* ---- Episode page ---- */
.podcast-breadcrumb {
  margin: 20px 0 0;
  font-size: 0.85rem;
}
.podcast-breadcrumb a {
  color: #555;
  text-decoration: none;
  letter-spacing: 0.04em;
}
.podcast-breadcrumb a:hover { color: var(--accent, #A40000); }

.podcast-episode { margin: 0 0 48px; }
.podcast-episode-header {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 36px;
  align-items: start;
  padding: 28px 0;
  border-top: 4px solid var(--accent, #A40000);
  border-bottom: 1px solid #ececec;
  margin: 16px 0 32px;
}
.podcast-episode-art {
  width: 100%;
  max-width: 320px;
  height: auto;
  border-radius: 3px;
}
.podcast-episode-eyebrow {
  font-family: var(--font-body, "Inter"), system-ui, sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  color: var(--accent, #A40000);
  font-weight: 700;
  margin: 0 0 10px;
}
.podcast-episode-title {
  font-family: var(--font-display, "Playfair Display"), Georgia, serif;
  font-size: clamp(1.7rem, 4vw, 2.4rem);
  line-height: 1.1;
  margin: 0 0 14px;
  font-weight: 900;
  color: var(--text, #0a0a0a);
}
.podcast-episode-meta {
  font-size: 0.85rem;
  color: #8c8c91;
  margin: 0 0 18px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.podcast-episode-player {
  width: 100%;
  max-width: 560px;
  display: block;
}
@media (max-width: 720px) {
  .podcast-episode-header {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .podcast-episode-art { max-width: 220px; margin: 0 auto; }
}

.podcast-episode-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 40px;
}
@media (max-width: 960px) {
  .podcast-episode-grid { grid-template-columns: 1fr; }
}
.podcast-episode-aside .ad-wrap--magazine-cover {
  position: sticky;
  top: 88px;
}
.podcast-episode-section-heading {
  font-family: var(--font-display, "Playfair Display"), Georgia, serif;
  font-size: 1.3rem;
  font-weight: 700;
  margin: 0 0 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--accent, #A40000);
  display: inline-block;
}
.podcast-episode-notes {
  font-size: 1rem;
  line-height: 1.65;
  color: #2a2a2a;
}
.podcast-episode-notes p { margin: 0 0 14px; }
.podcast-episode-notes a {
  color: var(--accent, #A40000);
  text-decoration: underline;
}
.podcast-episode-notes img { max-width: 100%; height: auto; }
.podcast-episode-source {
  margin: 24px 0 0;
  font-size: 0.92rem;
}
.podcast-episode-source a {
  color: var(--accent, #A40000);
  text-decoration: none;
  font-weight: 600;
}
.podcast-episode-source a:hover { text-decoration: underline; }

.podcast-empty {
  padding: 60px 0;
  text-align: center;
  color: #555;
}
.podcast-empty h2 {
  font-family: var(--font-display, "Playfair Display"), Georgia, serif;
  font-size: 1.6rem;
  margin: 0 0 12px;
}

/* ============================================================
   v0.7.7 — rhfnews layout port
   Utility strip, billboard, section footer band, card treatments,
   dark cards, aspect ratios, sticky-footer fix.
   ============================================================ */

:root {
  --surface-deepest: #0a0a0c;
  --surface-deep: #0F0F10;
  --surface-card: #1a1a1d;
  --surface-card-hover: #232328;
  --hairline-strong: #2a2a2f;
  --hairline: #3a3a40;
  --ink-on-dark: #F2EFEA;
  --ink-on-dark-muted: #8c8c91;
}

/* Light theme override — flips card system to light surfaces */
html.theme-light {
  --surface-card: #ffffff;
  --surface-card-hover: #f7f7f4;
  --hairline-strong: #d8d8d3;
  --hairline: #e5e5e0;
}

/* ---------- Utility strip ---------- */
.utility-strip {
  background: var(--surface-deepest);
  color: var(--ink-on-dark-muted);
  border-bottom: 1px solid var(--hairline-strong);
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.utility-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 32px;
  padding: 6px 0;
  gap: 16px;
}
.utility-date { justify-self: start; }
.utility-section {
  justify-self: center;
  color: var(--ink-on-dark);
  font-weight: 600;
}
.utility-theme-toggle {
  justify-self: end;
  background: transparent;
  border: 1px solid var(--hairline-strong);
  color: var(--ink-on-dark-muted);
  padding: 4px 10px;
  letter-spacing: 0.18em;
  font-size: 0.65rem;
  font-weight: 700;
  cursor: pointer;
  border-radius: 0;
  transition: color 120ms ease, border-color 120ms ease;
}
.utility-theme-toggle:hover {
  color: var(--ink-on-dark);
  border-color: var(--ink-on-dark);
}
@media (max-width: 600px) {
  .utility-section { display: none; }
  .utility-inner { grid-template-columns: 1fr auto; }
}

/* ---------- Section identity billboard ---------- */
.section-billboard {
  background: var(--surface-deep);
  color: var(--ink-on-dark);
  margin: 0;
  position: relative;
}
.bb-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 21 / 9;
  max-height: 520px;
  overflow: hidden;
  background: #000;
}
@media (max-width: 900px) {
  .bb-frame { aspect-ratio: 16 / 9; max-height: 420px; }
}
@media (max-width: 600px) {
  .bb-frame { aspect-ratio: 4 / 5; max-height: none; }
}
.bb-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.92) contrast(1.05);
}
.bb-scrim {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(15,15,16,0.4) 0%, rgba(15,15,16,0.15) 35%, rgba(15,15,16,0.85) 100%),
    linear-gradient(90deg, rgba(15,15,16,0.55) 0%, rgba(15,15,16,0) 60%);
}
.bb-copy {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 32px clamp(20px, 4vw, 56px);
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: 1200px;
  margin: 0 auto;
}
.bb-overline {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-weight: 500;
  font-size: clamp(0.85rem, 1.6vw, 1.05rem);
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--ink-on-dark);
  opacity: 0.85;
}
.bb-headline {
  font-family: var(--font-display, 'Inter', sans-serif);
  font-weight: 900;
  font-size: clamp(2.4rem, 6.5vw, 5.2rem);
  letter-spacing: -0.01em;
  line-height: 0.95;
  text-transform: uppercase;
  color: var(--ink-on-dark);
  margin-top: 4px;
}
.bb-subhead {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-weight: 700;
  font-size: clamp(0.95rem, 1.8vw, 1.25rem);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent, #A40000);
  margin-top: 12px;
}
.bb-tagline-strip {
  background: var(--surface-deepest);
  color: var(--ink-on-dark);
  border-top: 1px solid var(--hairline-strong);
  border-bottom: 1px solid var(--hairline-strong);
  padding: 14px 24px;
  text-align: center;
}
.bb-tagline {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-weight: 700;
  font-size: clamp(0.8rem, 1.4vw, 0.95rem);
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

/* ---------- Section footer band ---------- */
.section-footer-band {
  background: var(--surface-deep);
  color: var(--ink-on-dark);
  border-top: 1px solid var(--hairline-strong);
  border-bottom: 1px solid var(--hairline-strong);
  font-family: var(--font-body, 'Inter', sans-serif);
  margin-top: 48px;
}
.sfb-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 0;
  gap: 16px;
  flex-wrap: wrap;
}
.sfb-left {
  font-weight: 700;
  letter-spacing: 0.22em;
  font-size: 0.85rem;
  text-transform: uppercase;
}
.sfb-right {
  font-weight: 700;
  letter-spacing: 0.18em;
  font-size: 0.85rem;
  color: var(--accent, #A40000);
  text-transform: uppercase;
}

/* ---------- Card treatments: photo / logo / headshot ---------- */
/* Aspect ratios — kill the old fixed height/width on .card-thumb-wrap */
.article-grid .card-thumb-wrap,
.article-list .card-thumb-wrap,
.related-grid .card-thumb-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--surface-card);
  border: 1px solid var(--hairline-strong);
}
.article-card--featured .card-thumb-wrap {
  aspect-ratio: 16 / 9;
  background: var(--surface-card);
  border: 1px solid var(--hairline-strong);
}
@media (max-width: 600px) {
  .article-grid .card-thumb-wrap,
  .article-list .card-thumb-wrap,
  .related-grid .card-thumb-wrap,
  .article-card--featured .card-thumb-wrap {
    aspect-ratio: 16 / 9;
  }
}

/* Photo: fill, center */
.card-thumb-wrap--photo .card-thumb {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 320ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* Headshot: fill, center-top so faces sit above the fold */
.card-thumb-wrap--headshot .card-thumb {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 20%;
  transition: transform 320ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* Logo: contain, padded, dark backdrop, smart light-on-dark */
.card-thumb-wrap--logo {
  background: var(--surface-deep);
  display: grid;
  place-items: center;
  padding: 18% 14%;
}
html.theme-light .card-thumb-wrap--logo {
  background: var(--surface-deep); /* keep dark to maximize logo contrast */
}
.card-thumb-wrap--logo .card-thumb {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: center;
  mix-blend-mode: screen;
  filter: brightness(1.05);
}

/* Empty card placeholder — keep aspect, faint accent corner */
.card-thumb-wrap--empty {
  background: var(--surface-card);
  position: relative;
}
.card-thumb-wrap--empty::after {
  content: "";
  position: absolute;
  top: 0; right: 0;
  width: 32px; height: 32px;
  background: var(--accent, #A40000);
  opacity: 0.5;
}

/* Hover lift on photo/headshot only */
.article-card:hover .card-thumb-wrap--photo .card-thumb,
.article-card:hover .card-thumb-wrap--headshot .card-thumb {
  transform: scale(1.04);
}

/* ---------- Sticky-footer padding fix ---------- */
/* Sticky GAM anchor consumes ~90px at the bottom. Without this, the last
   line of body copy or the footer band sits under the ad. v0.7.7. */
body { padding-bottom: 100px; }
.ad-wrap--sticky-footer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 80;
  background: var(--surface-deep);
  border-top: 1px solid var(--hairline-strong);
  padding: 10px 0;
}

/* ---------- Override the home-top ad margin in dark surface context ---------- */
.section-billboard + .ad-wrap--home-top {
  padding-top: 24px;
  padding-bottom: 8px;
}

/* ---------- Theme: light variant fine-tuning ---------- */
html.theme-light body {
  background: #FFFFFF;
  color: #0A0A0A;
}

/* ============================================================
   v0.7.8 — text-only card treatment (no hero image)
   When article.heroImageUrl is null, render no thumb wrap and let the
   card body fill the card with denser, padded typography. SEO cap
   should prevent these from publishing, but the placeholder still
   needs to read intentional.
   ============================================================ */

.article-card--no-image .card-thumb-wrap { display: none !important; }

/* Featured (full-width) — give the headline more presence without the image */
.article-card--featured.article-card--no-image {
  border-left: 4px solid var(--accent, #A40000);
  padding-left: 20px;
}
.article-card--featured.article-card--no-image .card-headline {
  font-size: clamp(1.4rem, 2.6vw, 2rem);
  line-height: 1.1;
  padding-top: 4px;
}
.article-card--featured.article-card--no-image .card-dek {
  font-size: 1rem;
  max-width: 60ch;
}

/* Grid cards (3-up) — pad up so they don't look like empty boxes */
.article-grid .article-card--no-image,
.article-list .article-card--no-image {
  padding: 20px 16px 16px;
  border-top: 3px solid var(--accent, #A40000);
  background: transparent;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.article-grid .article-card--no-image .card-headline,
.article-list .article-card--no-image .card-headline {
  font-size: 1.05rem;
  line-height: 1.25;
}

/* Compact cards (More Stories list) — single line plus dek */
.article-card--compact.article-card--no-image {
  border-top: 1px solid var(--hairline-strong, #2a2a2f);
  padding: 14px 0;
}

/* v0.7.18: prevent embedded article-body images from overflowing the column. */
.article-body img,
.article-body figure img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 1.5em auto;
  border-radius: 4px;
}
.article-body figure {
  margin: 1.5em 0;
}
.article-body figcaption {
  font-size: 0.875rem;
  color: #666;
  text-align: center;
  margin-top: 0.5em;
  font-style: italic;
}

/* WHITE_HEADER_OVERRIDE_MARKER v0.7.40 ============================
   Flips masthead from dark navy to white so the official color
   logos render as designed. Bottom hairline preserves separation.
   ============================================================ */
.masthead {
  background: #FFFFFF !important;
  color: #0a0a0a !important;
  border-bottom: 1px solid #E5E5E7 !important;
}
.masthead-byline {
  color: #1a1a1a !important;
}
.masthead-byline-link {
  color: inherit;
}
.masthead-date {
  color: #6b6b70 !important;
}
.masthead-wordmark {
  color: #0a0a0a !important;
}
/* GAM_SIDEBAR_HOTFIX_v0.7.40b ========================================
   Force ad-slot containers to declare their target width/height even
   before GPT injects the iframe. Fixes the 2px-wide sidebar collapse
   observed on fbindustrynews and any tenant with sidebar slots.
   ==================================================================== */

/* Generic: every ad slot must have a min-width matching its smallest size */
.ad-slot {
  min-width: 300px;
  min-height: 50px;
}

/* Per-position min sizes to reserve layout before fill */
.ad-slot[data-position="leaderboard_top"] {
  min-width: 320px;
  min-height: 50px;
}
.ad-slot[data-position="sidebar_1"],
.ad-slot[data-position="sidebar_2"] {
  width: 300px !important;
  min-width: 300px !important;
  min-height: 250px;
  display: block; /* flex was collapsing inner GPT div */
  margin: 0 auto;
}
.ad-slot[data-position="inarticle_1"],
.ad-slot[data-position="inarticle_2"] {
  min-width: 300px;
  min-height: 250px;
  margin: 24px auto;
  display: block;
}
.ad-slot[data-position="footer_billboard"] {
  min-width: 320px;
  min-height: 90px;
  margin: 24px auto;
  display: block;
}

/* Inner GPT containers that GAM injects need to inherit the size */
.ad-slot > div[id^="google_ads_iframe_"] {
  margin: 0 auto;
}

/* Hide the placeholder border/text if slot is empty after collapse */
.ad-slot:empty {
  border: none;
  background: transparent;
}
/* UTILITY_STRIP_WHITE_v0.7.40c =====================================
   Match the dark utility strip (date / section / theme toggle) to the
   new white masthead so the top of every page reads as one cohesive
   light band instead of dark bar + white masthead + dark hero.
   ================================================================= */
.utility-strip {
  background: #FFFFFF !important;
  color: #1a1a1a !important;
  border-bottom: 1px solid #E5E5E7 !important;
}
.utility-strip .utility-date,
.utility-strip .utility-section,
.utility-strip .utility-theme-toggle-label {
  color: #1a1a1a !important;
}
.utility-strip a {
  color: inherit !important;
}
/* REVERT_UTILITY_STRIP_v0.7.40d ====================================
   1. Undo the white-utility-strip override from v0.7.40c so the dark
      top strip is restored.
   2. Hide the light/dark theme toggle (button + label).
   ================================================================== */

/* (1) Revert utility strip back to dark. */
.utility-strip {
  background: #0F0F10 !important;
  color: #E5E5E7 !important;
  border-bottom: 1px solid #1f1f24 !important;
}
.utility-strip .utility-date,
.utility-strip .utility-section,
.utility-strip a {
  color: #E5E5E7 !important;
}

/* (2) Kill the theme toggle UI. */
.utility-theme-toggle,
.utility-theme-toggle-label,
.theme-toggle,
.theme-toggle-btn,
[data-theme-toggle],
[aria-label*="theme" i],
[aria-label*="dark mode" i] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* === CLS_PASS_2_v0.7.40f === appended; safe to remove. */
/* v0.7.40f — Cumulative Layout Shift pass 2.
   Layered over v0.7.39 baseline + v0.7.40b sidebar hotfix.
   Strategy: aspect-ratio reservations, contain isolation, smooth no-fill collapse. */

/* Isolate layout recalc to each slot — children resizing inside iframe
   does not trigger parent reflow. */
.ad-slot,
.ad-slot[id^="gpt-"] {
  contain: layout style !important;
  transition: min-height 240ms ease, max-height 240ms ease, opacity 200ms ease !important;
}

/* leaderboard_top — fix precise reservation per bucket.
   Mobile = 320x100 (3.2:1), tablet+ = 728x90 (8.09:1), wide = 970x250 (3.88:1). */
.ad-slot--leaderboard-top {
  aspect-ratio: 3.2 / 1 !important;
  width: 100% !important;
  max-width: 320px !important;
}
@media (min-width: 768px) {
  .ad-slot--leaderboard-top {
    aspect-ratio: 728 / 90 !important;
    max-width: 728px !important;
  }
}
@media (min-width: 1280px) {
  .ad-slot--leaderboard-top {
    aspect-ratio: 970 / 250 !important;
    max-width: 970px !important;
  }
}

/* sidebar_1 — keep 300px wide (from hotfix), reserve 600px desktop / 250 tablet. */
.ad-slot--sidebar-1 {
  width: 300px !important;
  aspect-ratio: 300 / 250 !important;
}
@media (min-width: 1024px) {
  .ad-slot--sidebar-1 {
    aspect-ratio: 300 / 600 !important;
  }
}

/* sidebar_2 — precise 300x250 reservation. */
.ad-slot--sidebar-2 {
  width: 300px !important;
  aspect-ratio: 300 / 250 !important;
}

/* inarticle_1 / inarticle_2 — precise 300x250, centered. */
.ad-slot--inarticle-1,
.ad-slot--inarticle-2 {
  width: 300px !important;
  aspect-ratio: 300 / 250 !important;
}

/* footer_billboard — wide desktop 1370x250, desktop 970x250. */
.ad-slot--footer-billboard {
  width: 100% !important;
  max-width: 970px !important;
  aspect-ratio: 970 / 250 !important;
}
@media (min-width: 1440px) {
  .ad-slot--footer-billboard {
    max-width: 1370px !important;
    aspect-ratio: 1370 / 250 !important;
  }
}

/* sticky_footer — body padding so content isn't covered (mobile only). */
@media (max-width: 768px) {
  body {
    padding-bottom: 56px !important;
  }
  .ad-slot--sticky-footer {
    height: 50px !important;
    min-height: 50px !important;
  }
}

/* Empty-slot collapse — when GPT signals no-fill, collapseEmptyDiv shrinks
   height to 0. Animate it smoothly rather than snap. */
.ad-slot[style*="height: 0"],
.ad-slot[style*="display: none"] {
  max-height: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  opacity: 0 !important;
  overflow: hidden !important;
}

/* Iframe inside ad-slot — fill the reserved box exactly, never overflow. */
.ad-slot > div[id^="google_ads_iframe"],
.ad-slot > iframe,
.ad-slot iframe[id^="google_ads_iframe"] {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
}
/* === END CLS_PASS_2_v0.7.40f === */
