/* ═══════════════════════════════════════════════════════════
   retic.uk — NarrativeEdge Design System
   Loads after style.css as an override layer.
   ═══════════════════════════════════════════════════════════ */

/* ── Design Tokens (override existing :root) ─────────────── */
:root {
  /* Brand palette */
  --re-ink:        #0A0E1A;
  --re-paper:      #F7F5F0;
  --re-signal:     #C8102E;
  --re-gold:       #B8962E;
  --re-slate:      #5A6275;
  --re-mist:       #E4E2DC;

  /* Semantic data colors */
  --re-bull:       #1A7F5A;
  --re-bear:       #C8102E;
  --re-neutral:    #8A8F9C;
  --re-caution:    #D4821A;

  /* Narrative category colors */
  --re-geo:        #5B4FCF;
  --re-tech:       #0D7CC4;
  --re-energy:     #D4821A;
  --re-macro:      #1A7F5A;
  --re-credit:     #8B3A8B;

  /* Typography */
  --re-font-display: 'Playfair Display', 'Noto Serif KR', Georgia, serif;
  --re-font-body:    'IBM Plex Sans KR', 'Noto Sans KR', 'Apple SD Gothic Neo', sans-serif;
  --re-font-mono:    'IBM Plex Mono', 'Courier New', monospace;

  /* Map to existing vars for partial compatibility */
  --primary:       var(--re-ink);
  --accent:        var(--re-signal);
  --up:            var(--re-bull);
  --down:          var(--re-bear);
  --gold:          var(--re-gold);
  --bg:            var(--re-paper);
  --bg-card:       #FFFFFF;
  --text:          var(--re-ink);
  --text-muted:    var(--re-slate);
  --border:        var(--re-mist);
}

/* ── Global Body Override ────────────────────────────────── */
body {
  font-family: var(--re-font-body);
  background: var(--re-paper);
  color: var(--re-ink);
  -webkit-font-smoothing: antialiased;
}

/* ── Site Header ─────────────────────────────────────────── */
header {
  background: var(--re-ink);
  border-bottom: none;
  box-shadow: none;
}

/* Gold accent line at very top */
header::before {
  content: '';
  display: block;
  height: 3px;
  background: linear-gradient(90deg, var(--re-signal) 0%, var(--re-gold) 60%, var(--re-signal) 100%);
}

header nav {
  padding: 0.7rem 2rem;
  max-width: 1200px;
}

.site-name {
  font-family: var(--re-font-mono);
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #fff;
}

.site-name span { color: var(--re-gold); }

.nav-links a {
  font-family: var(--re-font-body);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,.65);
  border-radius: 2px;
}

.nav-links a:hover {
  color: #fff;
  background: rgba(255,255,255,.1);
}

.lang-switcher {
  gap: 0;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 2px;
  overflow: hidden;
}

.lang-switcher a {
  border-right: 1px solid rgba(255,255,255,.2);
  border-radius: 0;
  font-family: var(--re-font-mono);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 0.28rem 0.6rem;
  color: rgba(255,255,255,.45);
  transition: all 0.15s;
}

.lang-switcher a:last-child { border-right: none; }

.lang-switcher a.active,
.lang-switcher a:hover {
  background: var(--re-gold);
  color: var(--re-ink);
}

/* ── Ticker Bar (below header) ───────────────────────────── */
.re-ticker-bar {
  background: #12172A;
  border-bottom: 1px solid rgba(255,255,255,.07);
  padding: 5px 2rem;
  display: flex;
  gap: 0;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.re-ticker-bar::-webkit-scrollbar { display: none; }

.re-ticker-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 16px 0 0;
  margin-right: 16px;
  border-right: 1px solid rgba(255,255,255,.1);
  white-space: nowrap;
  flex-shrink: 0;
  font-family: var(--re-font-mono);
  font-size: 11px;
}
.re-ticker-item:last-child { border-right: none; }

.re-ticker-sym {
  font-weight: 700;
  color: rgba(255,255,255,.5);
  letter-spacing: 0.06em;
}
.re-ticker-val {
  font-weight: 600;
  color: rgba(255,255,255,.9);
}
.re-ticker-up   { color: #3BC98A; font-weight: 600; }
.re-ticker-down { color: #FF6B6B; font-weight: 600; }
.re-ticker-flat { color: var(--re-neutral); }

/* ── R2 Alert Override ───────────────────────────────────── */
.r2-alert-banner {
  background: rgba(200,16,46,.07);
  border-bottom: 1px solid rgba(200,16,46,.2);
  border-top: none;
  color: var(--re-ink);
  font-family: var(--re-font-body);
  font-size: 0.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0.5rem 1.5rem;
}
.r2-alert-banner::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--re-signal);
  flex-shrink: 0;
  animation: re-blink 1.4s ease-in-out infinite;
}
@keyframes re-blink { 0%,100%{opacity:1} 50%{opacity:.2} }

/* ── Main Layout ─────────────────────────────────────────── */
main {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 0 3rem;
}

/* ── Section Label (replaces section-header h2) ──────────── */
.re-section-label,
.section-header h2 {
  font-family: var(--re-font-body) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--re-signal) !important;
  border-left: 3px solid var(--re-signal) !important;
  padding-left: 8px !important;
}

/* ═══════════════════════════════════════════════════════════
   EDITORIAL ARTICLE (single.html)
   ═══════════════════════════════════════════════════════════ */

.editorial-post {
  max-width: 1200px;
  margin: 0 auto;
}

/* ── Masthead Strip ──────────────────────────────────────── */
.ed-masthead {
  background: var(--re-ink);
  border-bottom: 1px solid rgba(255,255,255,.08);
  padding: 0;
}

.ed-masthead-inner {
  max-width: 880px;
  margin: 0 auto;
  padding: 7px 1.5rem;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.ed-masthead-brand {
  font-family: var(--re-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--re-gold);
  text-transform: uppercase;
}

.ed-masthead-divider {
  color: rgba(255,255,255,.2);
  font-size: 10px;
}

.ed-masthead-tagline {
  font-family: var(--re-font-body);
  font-size: 11px;
  color: rgba(255,255,255,.45);
  font-style: italic;
}

.ed-masthead-date,
.ed-masthead-published {
  font-family: var(--re-font-mono);
  font-size: 10px;
  color: rgba(255,255,255,.3);
  margin-left: auto;
}

/* ── Article Hero ────────────────────────────────────────── */
.ed-hero {
  padding: 36px 1.5rem 28px;
  border-bottom: 2px solid var(--re-ink);
  position: relative;
  background: var(--re-paper);
}

.ed-hero-inner {
  max-width: 880px;
  margin: 0 auto;
}

.ed-hero-category {
  font-family: var(--re-font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--re-signal);
  border-left: 3px solid var(--re-signal);
  padding-left: 8px;
  margin-bottom: 16px;
}

.ed-hero-title {
  font-family: var(--re-font-display) !important;
  font-size: clamp(1.6rem, 4vw, 2.4rem) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.02em !important;
  color: var(--re-ink) !important;
  margin-bottom: 14px !important;
  word-break: keep-all;
}

.ed-hero-subtitle {
  font-family: var(--re-font-body) !important;
  font-size: 1rem !important;
  line-height: 1.65 !important;
  color: var(--re-slate) !important;
  max-width: 680px;
  margin-bottom: 18px !important;
}

.ed-hero-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-family: var(--re-font-mono);
  font-size: 11px;
  color: var(--re-slate);
}

.ed-hero-meta > span:first-child {
  background: var(--re-ink);
  color: var(--re-paper);
  padding: 1px 6px;
  font-size: 9px;
  font-weight: 700;
  border-radius: 1px;
  font-family: var(--re-font-mono);
  letter-spacing: 0.06em;
}

.ed-published-time {
  font-family: var(--re-font-mono) !important;
}

/* ── Narrative Tags ──────────────────────────────────────── */
.ed-narrative-tag {
  display: inline-flex !important;
  align-items: center !important;
  padding: 2px 8px !important;
  font-family: var(--re-font-body) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  border-radius: 2px !important;
  background: rgba(91,79,207,.1) !important;
  color: #4A3FB0 !important;
  border: none !important;
}

/* ── Article Body ────────────────────────────────────────── */
.ed-body {
  padding: 0 1.5rem;
  max-width: 880px;
  margin: 0 auto;
}

.ed-section {
  padding: 28px 0;
  border-bottom: 1px solid var(--re-mist);
}

.ed-section:last-child { border-bottom: none; }

.ed-section-title {
  font-family: var(--re-font-body) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--re-signal) !important;
  border-left: 3px solid var(--re-signal) !important;
  padding-left: 8px !important;
  margin-bottom: 18px !important;
}

/* ── Editorial Content (Markdown) ───────────────────────── */
.editorial-content {
  font-family: var(--re-font-body);
  font-size: 15px;
  line-height: 1.8;
  color: var(--re-ink);
  word-break: keep-all;
}

.editorial-content p { margin-bottom: 1.2em; }

.editorial-content p:first-child {
  font-size: 16px;
  color: #1A1F2E;
  line-height: 1.75;
}

.editorial-content h2 {
  font-family: var(--re-font-display);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--re-ink);
  margin: 2rem 0 0.8rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--re-mist);
}

.editorial-content h3 {
  font-family: var(--re-font-body);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--re-signal);
  margin: 1.8rem 0 0.6rem;
}

.editorial-content blockquote {
  margin: 1.8rem 0;
  padding: 18px 22px;
  border-left: 4px solid var(--re-gold) !important;
  background: rgba(184,150,46,.05);
  border-radius: 0 !important;
}

.editorial-content blockquote p {
  font-family: var(--re-font-display);
  font-size: 1.05rem;
  font-style: italic;
  color: var(--re-ink);
  line-height: 1.6;
}

.editorial-content strong { font-weight: 700; color: var(--re-ink); }

.editorial-content a {
  color: var(--re-tech);
  text-decoration: underline;
  text-decoration-color: rgba(13,124,196,.3);
  text-underline-offset: 2px;
}

.editorial-content a:hover { text-decoration-color: var(--re-tech); }

.editorial-content ul, .editorial-content ol {
  margin: 0.8em 0 1em 1.4em;
}

.editorial-content li { margin-bottom: 0.35em; }

.editorial-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  margin: 1.5em 0;
}

.editorial-content th {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--re-slate);
  padding: 8px 10px;
  border-bottom: 2px solid var(--re-ink);
  text-align: left;
}

.editorial-content td {
  padding: 9px 10px;
  border-bottom: 1px solid var(--re-mist);
  font-family: var(--re-font-mono);
  font-size: 12px;
}

.editorial-content tr:hover td { background: rgba(10,14,26,.025); }

/* ── Editorial Ticker ────────────────────────────────────── */
.ed-section--ticker {
  padding: 20px 0 0;
  border-bottom: none;
}

.ed-ticker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 8px;
  margin-top: 14px;
}

.ed-ticker-item {
  background: #fff;
  border: 1px solid var(--re-mist);
  border-top: 2px solid var(--re-gold);
  padding: 12px 14px;
}

.ed-ticker-symbol {
  font-family: var(--re-font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--re-slate);
  margin-bottom: 4px;
}

.ed-ticker-price {
  font-family: var(--re-font-mono);
  font-size: 16px;
  font-weight: 600;
  color: var(--re-ink);
  margin-bottom: 2px;
}

.ed-ticker-change {
  font-family: var(--re-font-mono);
  font-size: 11px;
  font-weight: 600;
}

.ed-ticker-change.up   { color: var(--re-bull); }
.ed-ticker-change.down { color: var(--re-bear); }
.ed-ticker-change.flat { color: var(--re-neutral); }

/* ── NI Gauge (Narrative Intensity) ─────────────────────── */
.ed-section--gauges {
  background: transparent;
  padding: 24px 0;
}

/* Override gauge card styling */
.ed-gauge-card {
  background: #fff !important;
  border: 1px solid var(--re-mist) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}

/* ── Predictions Table ───────────────────────────────────── */
.ed-section--predictions table,
.ed-predictions-table {
  font-family: var(--re-font-mono);
  font-size: 12px;
}

/* ── Scorecard ───────────────────────────────────────────── */
.ed-scorecard-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
}

.ed-scorecard-item {
  background: #fff !important;
  border: 1px solid var(--re-mist) !important;
  border-top: 2px solid var(--re-gold) !important;
  border-radius: 2px !important;
  padding: 14px !important;
}

.ed-scorecard-label {
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--re-slate) !important;
}

.ed-scorecard-value {
  font-family: var(--re-font-mono) !important;
  font-size: 1.4rem !important;
  font-weight: 600 !important;
  color: var(--re-ink) !important;
}

/* ── Insight Box ─────────────────────────────────────────── */
.ed-insight-box {
  background: rgba(184,150,46,.05) !important;
  border-left: 4px solid var(--re-gold) !important;
  border-radius: 0 !important;
  padding: 20px 24px !important;
}

.ed-insight-title {
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--re-gold) !important;
  margin-bottom: 10px !important;
}

.ed-insight-body {
  font-family: var(--re-font-display) !important;
  font-size: 1rem !important;
  font-style: italic !important;
  line-height: 1.65 !important;
  color: var(--re-ink) !important;
}

/* ── Tomorrow Signals ────────────────────────────────────── */
.ed-tomorrow-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.ed-tomorrow-card {
  background: #fff !important;
  border: 1px solid var(--re-mist) !important;
  border-radius: 2px !important;
  padding: 14px !important;
}

/* ── Stocks to Watch ─────────────────────────────────────── */
.ed-section--stocks { padding-top: 24px; }

.ed-stocks-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.ed-stock-card {
  background: #fff !important;
  border: 1px solid var(--re-mist) !important;
  border-left: 3px solid var(--re-gold) !important;
  border-radius: 0 !important;
  padding: 14px !important;
  box-shadow: none !important;
}

.ed-stock-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}

.ed-stock-name {
  font-family: var(--re-font-body) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  color: var(--re-ink) !important;
}

.ed-stock-ticker {
  font-family: var(--re-font-mono) !important;
  font-size: 11px !important;
  color: var(--re-slate) !important;
}

.ed-stock-change {
  font-family: var(--re-font-mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  margin-left: auto;
}

.ed-stock-up   { color: var(--re-bull) !important; }
.ed-stock-down { color: var(--re-bear) !important; }
.ed-stock-flat { color: var(--re-neutral) !important; }

.ed-stock-reason {
  font-size: 12px !important;
  color: var(--re-slate) !important;
  line-height: 1.55 !important;
}

/* ── Tags ────────────────────────────────────────────────── */
.ed-tags { padding: 20px 0; }

.ed-tags-label {
  font-family: var(--re-font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--re-slate);
  margin-right: 8px;
}

.ed-tag {
  display: inline-flex;
  padding: 3px 9px !important;
  font-family: var(--re-font-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  background: rgba(10,14,26,.06) !important;
  color: var(--re-slate) !important;
  border: 1px solid var(--re-mist) !important;
  border-radius: 2px !important;
  transition: all 0.15s;
}

.ed-tag:hover {
  background: var(--re-ink) !important;
  color: var(--re-paper) !important;
  border-color: var(--re-ink) !important;
}

/* ── Disclaimer ──────────────────────────────────────────── */
.ed-disclaimer {
  margin-top: 24px;
  padding: 16px 18px;
  background: rgba(10,14,26,.04) !important;
  border: 1px solid var(--re-mist) !important;
  border-radius: 2px !important;
  font-size: 12px !important;
  color: var(--re-slate) !important;
  line-height: 1.65 !important;
}

.ed-disclaimer strong { color: var(--re-ink) !important; }

/* ── Share Buttons ───────────────────────────────────────── */
.ed-share-btn {
  border-radius: 2px !important;
  font-family: var(--re-font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
}

/* ═══════════════════════════════════════════════════════════
   POST LIST (list.html)
   ═══════════════════════════════════════════════════════════ */

.section-header {
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--re-ink);
}

.section-header::after { display: none; }

.post-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.post-list li {
  padding: 20px 0;
  border-bottom: 1px solid var(--re-mist) !important;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transition: background 0.15s;
}

.post-list li:hover { background: rgba(10,14,26,.025) !important; }

.post-list-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.post-list-meta time {
  font-family: var(--re-font-mono) !important;
  font-size: 11px !important;
  color: var(--re-slate) !important;
}

.tag--narrative {
  display: inline-flex !important;
  padding: 2px 7px !important;
  font-family: var(--re-font-body) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.07em !important;
  text-transform: uppercase !important;
  background: rgba(91,79,207,.1) !important;
  color: #4A3FB0 !important;
  border-radius: 2px !important;
  border: none !important;
}

.post-title {
  display: block !important;
  font-family: var(--re-font-display) !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  color: var(--re-ink) !important;
  line-height: 1.35 !important;
  margin-bottom: 6px !important;
  text-decoration: none !important;
  word-break: keep-all;
  transition: color 0.15s;
}

.post-title:hover { color: var(--re-signal) !important; }

.post-desc {
  font-family: var(--re-font-body) !important;
  font-size: 13.5px !important;
  color: var(--re-slate) !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}

.post-tags { margin-top: 8px; display: flex; gap: 5px; flex-wrap: wrap; }

.tag {
  padding: 2px 7px !important;
  font-family: var(--re-font-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  background: rgba(10,14,26,.05) !important;
  color: var(--re-slate) !important;
  border: 1px solid var(--re-mist) !important;
  border-radius: 2px !important;
}

/* ═══════════════════════════════════════════════════════════
   HOMEPAGE
   ═══════════════════════════════════════════════════════════ */

.hero {
  text-align: left !important;
  padding: 3rem 0 2rem !important;
  border-bottom: 2px solid var(--re-ink);
  position: relative;
}

.hero::before {
  content: 'NarrativeEdge · Narrative Economics Intelligence';
  display: block;
  font-family: var(--re-font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--re-signal);
  border-left: 3px solid var(--re-signal);
  padding-left: 8px;
  margin-bottom: 20px;
}

.hero-badge { display: none !important; }

.hero-name {
  font-family: var(--re-font-display) !important;
  font-size: clamp(2rem, 5vw, 3rem) !important;
  font-weight: 700 !important;
  color: var(--re-ink) !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
  line-height: 1.2 !important;
  text-align: left !important;
}

.hero-fullname {
  font-family: var(--re-font-mono) !important;
  font-size: 11px !important;
  color: var(--re-slate) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  text-align: left !important;
  margin-top: 10px !important;
}

.hero-tagline {
  font-family: var(--re-font-body) !important;
  font-size: 1rem !important;
  color: var(--re-slate) !important;
  margin-top: 8px !important;
  font-style: italic !important;
  text-align: left !important;
  max-width: 560px;
}

.hero-divider {
  width: 40px !important;
  height: 2px !important;
  background: var(--re-ink) !important;
  margin: 1.5rem 0 0 !important;
}

/* ═══════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════ */

footer {
  background: var(--re-ink) !important;
  color: rgba(255,255,255,.55) !important;
  border-top: 3px solid var(--re-gold) !important;
  font-family: var(--re-font-body) !important;
  font-size: 12px !important;
}

footer a { color: rgba(255,255,255,.7) !important; }
footer a:hover { color: #fff !important; }

.footer-brand {
  font-family: var(--re-font-mono) !important;
  font-weight: 700 !important;
  color: var(--re-gold) !important;
  letter-spacing: 0.1em !important;
}

/* ═══════════════════════════════════════════════════════════
   ABOUT / CARDS
   ═══════════════════════════════════════════════════════════ */

.about-card {
  border-radius: 2px !important;
  background: #fff !important;
  border: 1px solid var(--re-mist) !important;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.about-card:hover {
  border-color: var(--re-gold) !important;
  box-shadow: 0 2px 12px rgba(184,150,46,.12) !important;
}

.about-card-title {
  font-family: var(--re-font-display) !important;
  font-size: 1rem !important;
  color: var(--re-ink) !important;
}

.about-card-num {
  color: var(--re-gold) !important;
  font-family: var(--re-font-mono) !important;
}

.about-card-desc {
  font-family: var(--re-font-body) !important;
  color: var(--re-slate) !important;
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════
   2-COLUMN LAYOUT (Content + Sidebar)
   ═══════════════════════════════════════════════════════════ */

.ed-layout {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 32px;
  align-items: start;
}

.ed-main {
  min-width: 0; /* prevent overflow */
}

.ed-sidebar {
  position: sticky;
  top: 20px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Sidebar component overrides — compact versions */
.ed-sidebar .ed-section--gauges {
  padding: 0;
  background: #fff;
  border: 1px solid var(--re-mist);
  border-radius: 4px;
  padding: 16px;
}

.ed-sidebar .ed-section-title {
  font-size: 13px !important;
  margin-bottom: 12px !important;
}

.ed-sidebar .ed-section--tomorrow {
  background: #fff;
  border: 1px solid var(--re-mist);
  border-radius: 4px;
  padding: 16px;
}

.ed-sidebar .ed-tomorrow-list {
  gap: 10px;
}

.ed-sidebar .ed-tomorrow-item {
  padding: 8px 0;
}

.ed-sidebar .ed-section--scorecard {
  background: #fff;
  border: 1px solid var(--re-mist);
  border-radius: 4px;
  padding: 16px;
}

.ed-sidebar .ed-scorecard {
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.ed-sidebar .ed-sc-item {
  padding: 10px;
}

.ed-sidebar .ed-sc-value {
  font-size: 1.1rem !important;
}

/* ═══════════════════════════════════════════════════════════
   TEXT READABILITY FIXES
   ═══════════════════════════════════════════════════════════ */

/* Ensure all body text has strong contrast */
.editorial-content,
.editorial-content p,
.editorial-content li {
  color: var(--re-ink) !important;
}

/* Section labels — ensure visible on light backgrounds */
.ed-section-label,
.ed-section-meta .ed-section-label {
  color: var(--re-signal) !important;
}

.ed-section-hint {
  color: var(--re-slate) !important;
  font-size: 11px;
}

/* Gauge labels & values — ensure readable */
.ed-gauge-label {
  color: var(--re-ink) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
}

.ed-gauge-val {
  font-weight: 700 !important;
  font-size: 13px !important;
}

/* Tomorrow signal text */
.ed-tomorrow-title {
  color: var(--re-ink) !important;
  font-weight: 700 !important;
}

.ed-tomorrow-body {
  color: var(--re-slate) !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
}

.ed-tomorrow-num {
  color: var(--re-gold) !important;
  font-weight: 700 !important;
}

/* Scorecard labels */
.ed-sc-label {
  color: var(--re-slate) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

.ed-sc-value {
  color: var(--re-ink) !important;
  font-weight: 700 !important;
}

/* Insight box readability */
.ed-insight {
  background: rgba(184,150,46,.06) !important;
  border-left: 4px solid var(--re-gold) !important;
  border-radius: 2px !important;
}

.ed-insight-label {
  color: var(--re-gold) !important;
  font-weight: 700 !important;
}

.ed-insight-title {
  color: var(--re-ink) !important;
}

.ed-insight-body {
  color: var(--re-ink) !important;
}

/* Prediction table readability */
.ed-predictions-table th,
.ed-section--predictions th {
  color: var(--re-ink) !important;
  font-weight: 700 !important;
}

.ed-predictions-table td,
.ed-section--predictions td {
  color: var(--re-ink) !important;
}

/* Ticker item text on light background */
.ed-ticker-item .ed-ticker-name {
  color: var(--re-slate) !important;
  font-weight: 700 !important;
}

.ed-ticker-item .ed-ticker-price {
  color: var(--re-ink) !important;
}

/* Market ticker item direction colors */
.ed-ticker-item--up .ed-ticker-change { color: var(--re-bull) !important; }
.ed-ticker-item--down .ed-ticker-change { color: var(--re-bear) !important; }
.ed-ticker-item--flat .ed-ticker-change { color: var(--re-neutral) !important; }

/* Hero subtitle readability */
.ed-hero-subtitle {
  color: var(--re-slate) !important;
}

/* Masthead text ensure visible on dark bg */
.ed-masthead-brand { color: var(--re-gold) !important; }
.ed-masthead-tagline { color: rgba(255,255,255,.55) !important; }
.ed-masthead-date { color: rgba(255,255,255,.4) !important; }
.ed-masthead-published { color: rgba(255,255,255,.4) !important; }

/* ═══════════════════════════════════════════════════════════
   REPORTS PAGE
   ═══════════════════════════════════════════════════════════ */

.re-reports-body {
  max-width: 880px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.re-report-grid {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.re-report-card {
  background: #fff;
  border: 1px solid var(--re-mist);
  border-left: 3px solid var(--re-gold);
  border-radius: 2px;
  padding: 20px 24px;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.re-report-card:hover {
  border-left-color: var(--re-signal);
  box-shadow: 0 2px 12px rgba(10,14,26,.06);
}

.re-report-header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 14px;
}

.re-report-num {
  font-family: var(--re-font-mono);
  font-size: 20px;
  font-weight: 700;
  color: var(--re-gold);
  line-height: 1;
  min-width: 28px;
  flex-shrink: 0;
}

.re-report-title-wrap {
  flex: 1;
  min-width: 0;
}

.re-report-title {
  font-family: var(--re-font-display);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--re-ink);
  line-height: 1.35;
  margin-bottom: 6px;
  word-break: keep-all;
}

.re-report-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.re-report-source {
  font-family: var(--re-font-body);
  font-size: 12px;
  font-weight: 600;
  color: var(--re-slate);
}

.re-report-category {
  font-family: var(--re-font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 2px;
  background: rgba(91,79,207,.1);
  color: #4A3FB0;
}

.re-report-category--macro { background: rgba(26,127,90,.1); color: #1A7F5A; }
.re-report-category--equity { background: rgba(13,124,196,.1); color: #0D7CC4; }
.re-report-category--crypto { background: rgba(139,58,139,.1); color: #8B3A8B; }
.re-report-category--realestate { background: rgba(212,130,26,.1); color: #D4821A; }
.re-report-category--commodity { background: rgba(184,150,46,.1); color: #B8962E; }

/* Score bars */
.re-report-scores {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
}

.re-report-score-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.re-report-score-label {
  font-family: var(--re-font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--re-slate);
  min-width: 52px;
  flex-shrink: 0;
}

.re-report-score-track {
  flex: 1;
  height: 6px;
  background: var(--re-mist);
  border-radius: 3px;
  overflow: hidden;
}

.re-report-score-fill {
  height: 100%;
  border-radius: 3px;
  transition: width 0.3s ease;
}

.re-report-score-fill--importance {
  background: linear-gradient(90deg, var(--re-signal), #E07050);
}

.re-report-score-fill--popularity {
  background: linear-gradient(90deg, var(--re-gold), #DAA520);
}

.re-report-score-val {
  font-family: var(--re-font-mono);
  font-size: 11px;
  font-weight: 700;
  color: var(--re-ink);
  min-width: 24px;
  text-align: right;
}

/* Summary */
.re-report-summary {
  font-family: var(--re-font-body);
  font-size: 13.5px;
  color: var(--re-ink);
  line-height: 1.7;
  margin-bottom: 14px;
  word-break: keep-all;
}

/* Link button */
.re-report-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--re-font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--re-paper);
  background: var(--re-ink);
  padding: 6px 14px;
  border-radius: 2px;
  text-decoration: none;
  transition: background 0.15s;
}

.re-report-link:hover {
  background: var(--re-signal);
  color: #fff;
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 960px) {
  /* Stack to single column on tablets and below */
  .ed-layout {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0 1rem;
  }

  .ed-sidebar {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
  }

  .ed-sidebar > * {
    flex: 1 1 280px;
  }
}

/* ═══════════════════════════════════════════════════════════
   LATEST HIGHLIGHT CARD (리포트/위클리 최신 글)
   ═══════════════════════════════════════════════════════════ */

.re-report-latest {
  background: #fff;
  border: 1px solid var(--re-mist);
  border-left: 4px solid var(--re-gold);
  border-radius: 2px;
  padding: 20px 24px;
  margin-bottom: 0;
}

.re-report-latest:hover {
  border-left-color: var(--re-signal);
  box-shadow: 0 2px 12px rgba(10,14,26,.06);
}

.re-report-latest .post-title {
  font-size: 1.25rem !important;
}

/* ═══════════════════════════════════════════════════════════
   HAMBURGER MENU (모바일)
   ═══════════════════════════════════════════════════════════ */

/* 데스크탑: 햄버거 숨김 */
.nav-hamburger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  flex-direction: column;
  gap: 4px;
  z-index: 1001;
}

.nav-hamburger span {
  display: block;
  width: 20px;
  height: 2px;
  background: rgba(255,255,255,.7);
  border-radius: 1px;
  transition: all 0.2s ease;
}

@media (max-width: 768px) {
  /* 햄버거 표시 */
  .nav-hamburger {
    display: flex;
    order: -1;
  }

  /* 메뉴 숨김 (기본) → 토글로 표시 */
  .nav-links {
    display: none !important;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--re-ink, #0A0E1A);
    flex-direction: column;
    padding: 8px 0;
    border-bottom: 1px solid rgba(255,255,255,.1);
    box-shadow: 0 8px 24px rgba(0,0,0,.3);
    z-index: 1000;
  }

  .nav-links.nav-mobile--open {
    display: flex !important;
  }

  .nav-links a {
    padding: 10px 20px !important;
    font-size: 0.85rem !important;
    border-bottom: 1px solid rgba(255,255,255,.06);
    color: rgba(255,255,255,.7) !important;
  }

  .nav-links a:last-child {
    border-bottom: none;
  }

  .nav-links a:hover,
  .nav-links a:active {
    background: rgba(255,255,255,.08) !important;
    color: #fff !important;
  }

  /* nav 레이아웃 */
  header nav {
    padding: 0.65rem 1rem;
    position: relative;
    flex-wrap: wrap;
  }

  /* 언어 스위처 + 로그인 축소 */
  .lang-switcher { order: 10; }
  .retic-auth { order: 11; }

  .ed-hero { padding: 24px 1rem 20px; }
  .re-ticker-bar { padding: 5px 1rem; }
  .ed-ticker-grid { grid-template-columns: repeat(2, 1fr); }
  .ed-stocks-grid { grid-template-columns: 1fr; }
  main { padding: 0 1rem 2.5rem; }
  .hero-name { font-size: 1.8rem !important; }
  .re-reports-body { padding: 0 1rem; }
  .re-report-card { padding: 16px; }
  .re-report-num { font-size: 16px; min-width: 22px; }
  .re-report-title { font-size: 0.95rem; }

  .ed-sidebar {
    flex-direction: column;
  }

  .ed-sidebar > * {
    flex: 1 1 100%;
  }
}

@media (max-width: 480px) {
  .ed-masthead-tagline { display: none; }
  .lang-switcher a { padding: 0.22rem 0.45rem; font-size: 0.65rem; }
  .ed-ticker-grid { grid-template-columns: 1fr 1fr; }
}
