/* ═══════════════════════════════════════════════
   METROPOLITAN BUSINESS REPORT — Ghost Theme CSS
   ═══════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700;900&family=Source+Serif+4:ital,wght@0,300;0,400;0,600;1,400&family=Barlow+Condensed:wght@500;700&family=Barlow:wght@400;500&family=Libre+Baskerville:wght@700&family=Oswald:wght@600;700&display=swap');

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

:root {
  --navy: #0a1628;
  --crimson: #c0212e;
  --gold: #b8902a;
  --offwhite: #f5f2eb;
  --lightgray: #e8e4db;
  --midgray: #9a948a;
  --darkgray: #3a3530;
  --white: #ffffff;
}

body {
  font-family: 'Source Serif 4', Georgia, serif;
  background: var(--offwhite);
  color: var(--darkgray);
  font-size: 16px;
  line-height: 1.6;
}

/* ── UTILITY BAR ── */
.utility-bar {
  background: var(--navy);
  color: #aab2bf;
  font-family: 'Barlow', sans-serif;
  font-size: 11.5px;
  letter-spacing: .04em;
  padding: 6px 0;
}
.utility-bar .inner {
  max-width: 1260px;
  margin: auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.utility-bar a { color: #aab2bf; text-decoration: none; }
.utility-bar a:hover { color: #fff; }
.utility-bar .left, .utility-bar .right { display: flex; gap: 18px; align-items: center; }
.date-badge { color: #d4c9a8; font-weight: 500; }

/* ── MASTHEAD ── */
.masthead { background: #fff; padding: 0; }
.masthead-top-rule { height: 5px; background: var(--crimson); display: block; }
.masthead-inner {
  max-width: 1260px;
  margin: auto;
  padding: 18px 20px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #ddd;
}

/* ── LOGO ── */
.logo-wrap { display: flex; flex-direction: column; align-items: flex-start; line-height: 1; }
.logo-city-line {
  font-family: 'Oswald', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--crimson);
  margin-bottom: 2px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.logo-city-line::before, .logo-city-line::after {
  content: '';
  display: inline-block;
  height: 1px;
  width: 28px;
  background: var(--crimson);
  opacity: .6;
}
.logo-main-text {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: 48px;
  font-weight: 700;
  color: var(--navy);
  letter-spacing: -.01em;
  line-height: .95;
  white-space: nowrap;
  text-decoration: none;
}
.logo-main-text .report-word { color: var(--crimson); }
.logo-tagline {
  font-family: 'Barlow', sans-serif;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #888;
  margin-top: 5px;
  padding-top: 5px;
  border-top: 1px solid #ddd;
  display: block;
}

.masthead-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.masthead-actions .tagline-action { font-family: 'Barlow', sans-serif; font-size: 11px; color: #888; }
.masthead-actions .tagline-action a { color: var(--crimson); text-decoration: none; font-weight: 500; }
.btn-group { display: flex; gap: 10px; }
.btn-subscribe {
  background: var(--crimson);
  color: #fff;
  border: none;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 9px 20px;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
  transition: background .2s;
}
.btn-subscribe:hover { background: #a01a26; }
.btn-login {
  background: transparent;
  color: var(--navy);
  border: 1px solid #ccc;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 8px 18px;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
  transition: border-color .2s;
}
.btn-login:hover { border-color: var(--navy); }

/* ── NAV ── */
nav { background: var(--navy); }
.nav-inner {
  max-width: 1260px;
  margin: auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
}
nav a {
  color: #c8d0db;
  text-decoration: none;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 12px 16px;
  display: block;
  border-bottom: 3px solid transparent;
  transition: color .2s, border-color .2s;
}
nav a:hover, nav a.nav-current { color: #fff; border-bottom-color: var(--crimson); }
.nav-search { margin-left: auto; color: #7a8ba0; cursor: pointer; padding: 12px 0 12px 16px; font-size: 16px; }
.nav-search:hover { color: #fff; }

/* ── TICKER ── */
.ticker {
  background: var(--crimson);
  color: #fff;
  font-family: 'Barlow', sans-serif;
  font-size: 12.5px;
  font-weight: 500;
  padding: 6px 0;
  overflow: hidden;
  white-space: nowrap;
}
.ticker-inner {
  max-width: 1260px;
  margin: auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.ticker-label {
  background: rgba(0,0,0,.25);
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  flex-shrink: 0;
}
.ticker-scroll { overflow: hidden; flex: 1; }
.ticker-track { display: inline-block; animation: ticker 40s linear infinite; white-space: nowrap; }
.ticker-track a { color: #fff; text-decoration: none; margin-right: 60px; }
.ticker-track a::before { content: '▸ '; opacity: .7; }
@keyframes ticker { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

/* ── PAGE WRAP ── */
.page-wrap { max-width: 1260px; margin: 0 auto; padding: 0 20px; }

/* ── SECTION TAG / BYLINE ── */
.section-tag {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--crimson);
  margin-bottom: 8px;
  display: block;
  text-decoration: none;
}
.byline { font-family: 'Barlow', sans-serif; font-size: 12px; color: var(--midgray); }
.byline strong { color: var(--darkgray); }

/* ── HERO SECTION ── */
.hero-section {
  padding: 30px 0 0;
  border-bottom: 2px solid var(--lightgray);
  margin-bottom: 30px;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 300px;
  gap: 0;
}
.hero-main { grid-column: 1; padding-right: 28px; border-right: 1px solid var(--lightgray); }
.hero-main img { width: 100%; height: 340px; object-fit: cover; display: block; margin-bottom: 16px; }
.hero-main .no-image { width: 100%; height: 340px; background: linear-gradient(135deg,#1a2e4a,#0a4a7a); display: block; margin-bottom: 16px; }
.hero-main h1 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 34px;
  font-weight: 900;
  line-height: 1.18;
  color: var(--navy);
  margin-bottom: 12px;
}
.hero-main h1 a { color: inherit; text-decoration: none; }
.hero-main h1 a:hover { color: var(--crimson); }
.hero-main .deck { font-size: 16px; color: #5a5450; line-height: 1.6; margin-bottom: 14px; }

.hero-secondary {
  grid-column: 2;
  padding: 0 28px;
  border-right: 1px solid var(--lightgray);
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.hero-secondary .story { padding-bottom: 20px; border-bottom: 1px solid var(--lightgray); }
.hero-secondary .story:last-child { border-bottom: none; padding-bottom: 0; }
.hero-secondary img { width: 100%; height: 160px; object-fit: cover; margin-bottom: 12px; display: block; }
.hero-secondary .no-image { width: 100%; height: 160px; background: linear-gradient(135deg,#2a3a2a,#1a5a2a); display: block; margin-bottom: 12px; }
.hero-secondary h2 { font-family: 'Playfair Display', Georgia, serif; font-size: 19px; font-weight: 700; line-height: 1.25; color: var(--navy); margin-bottom: 8px; }
.hero-secondary h2 a { color: inherit; text-decoration: none; }
.hero-secondary h2 a:hover { color: var(--crimson); }

.sidebar-col { grid-column: 3; padding-left: 26px; }

/* ── WIDGETS ── */
.widget { margin-bottom: 28px; }
.widget-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--navy);
  border-bottom: 2px solid var(--navy);
  padding-bottom: 7px;
  margin-bottom: 14px;
}
.most-read li {
  list-style: none;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 10px 0;
  border-bottom: 1px solid var(--lightgray);
}
.most-read li:last-child { border-bottom: none; }
.rank-num { font-family: 'Barlow Condensed', sans-serif; font-size: 28px; font-weight: 700; color: var(--lightgray); line-height: 1; flex-shrink: 0; width: 24px; text-align: center; transition: color .2s; }
.most-read li:hover .rank-num { color: var(--crimson); }
.most-read h4 { font-family: 'Source Serif 4', serif; font-size: 13.5px; font-weight: 600; line-height: 1.35; color: var(--navy); }
.most-read h4 a { color: inherit; text-decoration: none; }
.most-read h4 a:hover { color: var(--crimson); }

.market-widget { background: var(--navy); padding: 14px; color: #fff; }
.market-widget .widget-title { color: #d4c9a8; border-bottom-color: #d4c9a8; }
.market-row { display: flex; justify-content: space-between; align-items: center; padding: 7px 0; border-bottom: 1px solid #1e2e48; font-family: 'Barlow', sans-serif; font-size: 13px; }
.market-row:last-child { border-bottom: none; }
.market-name { color: #c8d0db; }
.up { color: #4caf7d; }
.dn { color: #e05555; }

/* ── SECTION HEADER ── */
.section-header { display: flex; align-items: center; gap: 14px; margin: 32px 0 22px; }
.section-header::after { content: ''; flex: 1; height: 2px; background: var(--lightgray); }
.tag-accent { display: flex; align-items: center; gap: 10px; }
.tag-accent::before { content: ''; width: 26px; height: 3px; background: var(--crimson); flex-shrink: 0; }
.section-header h3 { font-family: 'Barlow Condensed', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--navy); white-space: nowrap; }

/* ── CARD GRID ── */
.card-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-bottom: 36px; }
.card { display: flex; flex-direction: column; }
.card img { width: 100%; height: 140px; object-fit: cover; margin-bottom: 12px; display: block; }
.card .no-image { width: 100%; height: 140px; background: linear-gradient(135deg,#1a1a4a,#1a1a8a); margin-bottom: 12px; display: block; }
.card h4 { font-family: 'Playfair Display', Georgia, serif; font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--navy); margin-bottom: 7px; flex: 1; }
.card h4 a { color: inherit; text-decoration: none; }
.card h4 a:hover { color: var(--crimson); }
.card p { font-size: 13px; color: #6a6460; line-height: 1.5; margin-bottom: 8px; }

/* ── LIST SECTION ── */
.two-col-section { display: grid; grid-template-columns: 1fr 300px; gap: 0; border-top: 2px solid var(--lightgray); padding-top: 30px; margin-bottom: 40px; }
.list-stories { padding-right: 30px; border-right: 1px solid var(--lightgray); }
.list-story { display: flex; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--lightgray); align-items: flex-start; }
.list-story:last-child { border-bottom: none; }
.list-story img { width: 110px; height: 74px; object-fit: cover; flex-shrink: 0; }
.list-story .no-image { width: 110px; height: 74px; background: linear-gradient(135deg,#3a2a1a,#7a4a1a); flex-shrink: 0; display: block; }
.list-story h4 { font-family: 'Playfair Display', Georgia, serif; font-size: 17px; font-weight: 700; line-height: 1.28; color: var(--navy); margin-bottom: 6px; }
.list-story h4 a { color: inherit; text-decoration: none; }
.list-story h4 a:hover { color: var(--crimson); }
.list-story p { font-size: 13px; color: #6a6460; line-height: 1.45; }

.sidebar2 { padding-left: 26px; }
.promo-box { background: var(--navy); padding: 22px; text-align: center; margin-bottom: 22px; }
.promo-box .promo-logo { font-family: 'Playfair Display', Georgia, serif; font-size: 16px; font-weight: 900; color: #d4c9a8; margin-bottom: 10px; letter-spacing: .04em; }
.promo-box p { font-family: 'Barlow', sans-serif; font-size: 12.5px; color: #8a9aad; margin-bottom: 16px; }
.promo-box .btn-subscribe { width: 100%; display: block; }

.events-list li { list-style: none; padding: 10px 0; border-bottom: 1px solid var(--lightgray); display: flex; gap: 12px; }
.events-list li:last-child { border-bottom: none; }
.event-date-badge { background: var(--crimson); color: #fff; text-align: center; padding: 6px 10px; font-family: 'Barlow Condensed', sans-serif; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; flex-shrink: 0; line-height: 1.2; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.event-date-badge .day { font-size: 20px; font-weight: 700; display: block; }
.events-list h5 { font-family: 'Source Serif 4', serif; font-size: 13px; font-weight: 600; color: var(--navy); margin-bottom: 3px; }
.events-list h5 a { color: inherit; text-decoration: none; }
.events-list h5 a:hover { color: var(--crimson); }
.events-list p { font-size: 11.5px; color: var(--midgray); font-family: 'Barlow', sans-serif; }

/* ── SINGLE POST PAGE ── */
.post-header { max-width: 800px; margin: 40px auto 28px; padding: 0 20px; }
.post-header h1 { font-family: 'Playfair Display', Georgia, serif; font-size: 42px; font-weight: 900; line-height: 1.15; color: var(--navy); margin-bottom: 16px; }
.post-header .post-meta { font-family: 'Barlow', sans-serif; font-size: 13px; color: var(--midgray); display: flex; gap: 16px; align-items: center; flex-wrap: wrap; padding: 12px 0; border-top: 1px solid var(--lightgray); border-bottom: 1px solid var(--lightgray); }
.post-header .post-meta a { color: var(--crimson); text-decoration: none; font-weight: 600; }
.post-feature-image { max-width: 900px; margin: 0 auto 32px; padding: 0 20px; }
.post-feature-image img { width: 100%; max-height: 480px; object-fit: cover; display: block; }
.post-feature-image figcaption { font-family: 'Barlow', sans-serif; font-size: 11.5px; color: var(--midgray); margin-top: 6px; }
.post-content { max-width: 800px; margin: 0 auto; padding: 0 20px 60px; }
.post-content p { font-size: 18px; line-height: 1.75; color: var(--darkgray); margin-bottom: 1.4em; }
.post-content h2 { font-family: 'Playfair Display', serif; font-size: 28px; font-weight: 700; color: var(--navy); margin: 1.8em 0 .6em; }
.post-content h3 { font-family: 'Playfair Display', serif; font-size: 22px; font-weight: 700; color: var(--navy); margin: 1.4em 0 .5em; }
.post-content blockquote { border-left: 4px solid var(--crimson); margin: 2em 0; padding: 0 0 0 24px; font-size: 22px; font-style: italic; color: var(--navy); line-height: 1.5; }
.post-content a { color: var(--crimson); }
.post-content ul, .post-content ol { margin: 0 0 1.4em 1.5em; font-size: 18px; line-height: 1.75; }
.post-content img { max-width: 100%; height: auto; margin: 1em 0; }
.post-content figure { margin: 2em 0; }
.post-content figure figcaption { font-family: 'Barlow', sans-serif; font-size: 12px; color: var(--midgray); margin-top: 6px; }
.post-divider { max-width: 800px; margin: 0 auto; padding: 0 20px; border: none; border-top: 2px solid var(--lightgray); }

/* ── TAG / ARCHIVE PAGE ── */
.archive-header { padding: 36px 0 28px; border-bottom: 2px solid var(--lightgray); margin-bottom: 30px; }
.archive-header h1 { font-family: 'Playfair Display', serif; font-size: 38px; font-weight: 900; color: var(--navy); margin-bottom: 8px; }
.archive-header p { font-size: 16px; color: var(--midgray); }
.archive-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-bottom: 50px; }
.archive-card img { width: 100%; height: 180px; object-fit: cover; display: block; margin-bottom: 14px; }
.archive-card .no-image { width: 100%; height: 180px; background: linear-gradient(135deg,#1a2e4a,#0a4a7a); display: block; margin-bottom: 14px; }
.archive-card h2 { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; line-height: 1.28; color: var(--navy); margin-bottom: 8px; }
.archive-card h2 a { color: inherit; text-decoration: none; }
.archive-card h2 a:hover { color: var(--crimson); }
.archive-card p { font-size: 14px; color: #6a6460; line-height: 1.5; }

/* ── PAGINATION ── */
.pagination { display: flex; justify-content: center; gap: 10px; padding: 30px 0; font-family: 'Barlow', sans-serif; }
.pagination a, .pagination span { padding: 8px 14px; border: 1px solid var(--lightgray); color: var(--navy); text-decoration: none; font-size: 13px; transition: background .2s; }
.pagination a:hover { background: var(--lightgray); }
.pagination .active { background: var(--crimson); color: #fff; border-color: var(--crimson); }

/* ── FOOTER ── */
footer { background: var(--navy); color: #8a9aad; font-family: 'Barlow', sans-serif; font-size: 12.5px; margin-top: 40px; border-top: 3px solid var(--crimson); }
.footer-inner { max-width: 1260px; margin: auto; padding: 40px 20px 20px; display: grid; grid-template-columns: 250px 1fr 1fr 1fr; gap: 40px; }
.footer-brand p { font-size: 12px; line-height: 1.6; color: #6a7a8d; margin-top: 14px; }
.footer-col h6 { font-family: 'Barlow Condensed', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #d4c9a8; margin-bottom: 14px; padding-bottom: 8px; border-bottom: 1px solid #1e2e48; }
.footer-col a { display: block; color: #7a8ba0; text-decoration: none; padding: 4px 0; transition: color .2s; }
.footer-col a:hover { color: #fff; }
.footer-bottom { max-width: 1260px; margin: auto; padding: 16px 20px; border-top: 1px solid #1e2e48; display: flex; justify-content: space-between; font-size: 11.5px; color: #4a5a6d; }

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  .hero-grid { grid-template-columns: 1fr 1fr; }
  .sidebar-col { display: none; }
  .card-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-main { padding-right: 0; border-right: none; border-bottom: 1px solid var(--lightgray); padding-bottom: 24px; }
  .hero-secondary { padding: 24px 0 0; border-right: none; }
  .two-col-section { grid-template-columns: 1fr; }
  .list-stories { padding-right: 0; border-right: none; }
  .sidebar2 { padding-left: 0; border-top: 2px solid var(--lightgray); padding-top: 24px; }
  .card-grid { grid-template-columns: 1fr; }
  .archive-grid { grid-template-columns: 1fr; }
  .logo-main-text { font-size: 32px; }
  .nav-inner { overflow-x: auto; }
  .footer-inner { grid-template-columns: 1fr; gap: 24px; }
  .footer-bottom { flex-direction: column; gap: 6px; }
}
