/*
  SIGNAL — signal-blocks.css
  ════════════════════════════════════════════════════════════
  CSS dédié au CPT Signal (glint_signal).
  Chargé UNIQUEMENT sur les single Signal via functions.php.
  NE PAS mélanger avec le style.css du thème.

  Blocs custom Signal :
  .signal-visual    → illustration SVG
  .signal-case      → case study card + stats
  .signal-compare   → 2 colonnes avant/après
  .signal-list      → liste numérotée / checklist
  .signal-stack     → couches label+contenu
  .signal-timeline  → chronologie verticale
  .signal-grid      → grille métriques/cards
  .pull-quote       → citation
  .summary-box      → En résumé
  ════════════════════════════════════════════════════════════
*/

/* ── VARIABLES SIGNAL ────────────────────────────────────── */
/* Couleurs Signal : oeuf #f4f1ec · primaire via preset theme · or #c8922a */
.signal-single {
  --ink:       var(--wp--preset--color--signal-primary, #151a22);
  --paper:     #f4f1ec;
  --warm-mid:  #e8e0d4;
  --glint:     #c8922a;
  --glint-dim: #6b4e1f;
  --muted:     #7a7268;
  --rule:      #d4ccc0;

  --f-display: 'PP Grafier Display', 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  --f-body:    'PP Monument Normal', 'Optima', 'Gill Sans', 'Trebuchet MS', system-ui, sans-serif;

  --max-text:  680px;
  --max-wide:  1280px;
}

/* ── SINGLE SIGNAL BODY ──────────────────────────────────── */
.signal-single {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--f-body);
  font-weight: 400;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

/* ── HERO ───────────────────────────────────────────────── */
.signal-hero {
  padding-top: 7rem;
  padding-bottom: 0;
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}

.signal-hero__meta {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--rule);
  animation: signalFadeUp 0.5s ease both;
}

.signal-hero__category {
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--glint);
}

.signal-hero__category a {
  color: var(--glint);
  text-decoration: none;
  border: 1px solid var(--glint);
  padding: 0.3em 0.8em;
  border-radius: 2px;
}

.signal-hero__date {
  font-size: 0.75rem;
  color: var(--muted);
  letter-spacing: 0.05em;
}

.signal-hero__title {
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(2.4rem, 5vw, 4rem);
  line-height: 1.1;
  letter-spacing: -0.01em;
  max-width: 820px;
  margin-bottom: 2rem;
  animation: signalFadeUp 0.6s 0.1s ease both;
}

.signal-hero__title em { font-style: italic; color: var(--glint-dim); }

.signal-hero__chapeau {
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1.75;
  color: #3a3730;
  max-width: var(--max-text);
  border-left: 3px solid var(--glint);
  padding-left: 1.5rem;
  margin-bottom: 3.5rem;
  animation: signalFadeUp 0.6s 0.2s ease both;
}

.signal-hero__rule {
  border: none;
  height: 1px;
  background: var(--rule);
}

/* ── LAYOUT ARTICLE + SIDEBAR ───────────────────────────── */
.signal-article-wrap {
  padding: 3.5rem 2.5rem 6rem;
}

.signal-layout {
  display: grid !important;
  grid-template-columns: 3fr 1fr;
  gap: 3rem;
  align-items: start;
}

.signal-article-body {
  min-width: 0;
}

/* ── PROSE ──────────────────────────────────────────────── */
.signal-prose p {
  font-size: 1rem;
  line-height: 1.8;
  margin-bottom: 1.4rem;
  color: #2a2822;
}

.signal-prose h2 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 1.65rem;
  line-height: 1.25;
  margin-top: 3rem;
  margin-bottom: 1.2rem;
  color: var(--ink);
  letter-spacing: -0.01em;
}

.signal-prose h2::before {
  content: '';
  display: block;
  width: 2rem;
  height: 2px;
  background: var(--glint);
  margin-bottom: 0.75rem;
}

.signal-prose strong { font-weight: 700; color: var(--ink); }
.signal-prose em     { font-style: italic; }
.signal-prose hr     { border: none; border-top: 1px solid var(--rule); margin: 2.5rem 0; }

/* ── SIDEBAR ────────────────────────────────────────────── */
.signal-sidebar {
  position: sticky;
  top: calc(var(--header-height, max(63.75px, 5.1vw)) + 1rem);
  align-self: start;
}

.signal-sidebar__section { margin-bottom: 2.5rem; }

.signal-sidebar__label {
  font-size: 0.62rem !important;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1px solid var(--rule);
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
}

.signal-sidebar__author {
  font-size: 0.82rem;
  line-height: 1.6;
  color: #3a3730;
}

.signal-sidebar__author strong {
  display: block;
  font-weight: 500;
  color: var(--ink);
  margin-bottom: 0.2rem;
}

.signal-sidebar__author-name {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink);
  margin-bottom: 0.15rem;
}

.signal-sidebar__author-bio {
  font-size: 0.82rem;
  line-height: 1.6;
  color: #3a3730;
}

.signal-sidebar__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.signal-sidebar__tags .wp-block-post-terms__separator {
  display: none;
}

.signal-sidebar__tags a {
  font-size: 0.65rem;
  letter-spacing: 0.05em;
  background: var(--warm-mid);
  color: var(--muted);
  padding: 0.3em 0.7em;
  border-radius: 2px;
  text-decoration: none;
}

/* ── CTA ARTICLE ─────────────────────────────────────────── */
.signal-article-cta {
  text-align: center;
  padding: 2.5rem 0 0;
  border-top: 1px solid var(--rule);
  margin-top: 2rem;
}

.signal-cta-text {
  font-family: var(--f-display);
  font-size: 1.2rem;
  font-style: italic;
  color: var(--muted);
  margin-bottom: 1.25rem;
}

.signal-btn-cta .wp-block-button__link {
  background: var(--glint);
  color: white;
  font-family: var(--f-body);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 0.9em 2em;
  border-radius: 2px;
  transition: background 0.2s ease;
}

.signal-btn-cta .wp-block-button__link:hover {
  background: var(--glint-dim);
}


/* ══════════════════════════════════════════════════════════
   BLOCS CUSTOM SIGNAL
   ══════════════════════════════════════════════════════════ */

/* ── 1. SIGNAL-VISUAL ─────────────────────────────────────── */
.signal-visual { background: #151a22; border-radius: 4px; padding: 2.5rem 2rem; margin: 3rem 0; }
.signal-visual svg { width: 100%; display: block; }
.signal-visual figcaption { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: #7a7268; margin-top: 1.25rem; text-align: center; }

/* ── 2. SIGNAL-CASE ───────────────────────────────────────── */
.signal-case { background: #e8e0d4; border-left: 4px solid #c8922a; padding: 2rem 2rem 2rem 1.75rem; margin: 2.5rem 0; border-radius: 0 4px 4px 0; }
.signal-case--note { border-left-color: #d4ccc0; }
.signal-case__label { font-size: .65rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: #8a6218; margin-bottom: .75rem; }
.signal-case--note .signal-case__label { color: #7a7268; }
.signal-case h3, .signal-case__title { font-family: var(--f-display, Georgia, serif); font-weight: 400; font-size: 1.3rem; margin-bottom: 1rem; line-height: 1.3; color: var(--wp--preset--color--signal-primary, #151a22); }
.signal-case p, .signal-case__body { font-size: .93rem; line-height: 1.75; color: #3a3730; margin-bottom: .9rem; }
.signal-case p:last-child, .signal-case__body:last-child { margin-bottom: 0; }
.signal-case__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid #d4ccc0; }
.signal-case__stat { text-align: center; }
.signal-case__stat-value { display: block; font-family: var(--f-display, Georgia, serif); font-weight: 600; font-size: 1.6rem; color: #c8922a; line-height: 1.1; }
.signal-case__stat-label { display: block; font-size: .68rem; letter-spacing: .08em; color: #7a7268; margin-top: .3rem; line-height: 1.4; }

/* ── 3. SIGNAL-COMPARE ───────────────────────────────────── */
.signal-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #d4ccc0; border: 1px solid #d4ccc0; border-radius: 4px; overflow: hidden; margin: 2.5rem 0; }
.signal-compare__col { padding: 1.75rem; }
.signal-compare__col--before { background: #f0ece4; }
.signal-compare__col--after  { background: #1e2733; }
.signal-compare__label { font-size: .62rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; margin-bottom: .75rem; padding-bottom: .5rem; border-bottom: 1px solid #d4ccc0; }
.signal-compare__col--before .signal-compare__label { color: #7a7268; }
.signal-compare__col--after  .signal-compare__label { color: #c8922a; border-color: #3a3730; }
.signal-compare__title { font-family: var(--f-display, Georgia, serif); font-weight: 400; font-size: 1.05rem; line-height: 1.3; margin-bottom: 1rem; }
.signal-compare__col--before .signal-compare__title { color: #7a7268; }
.signal-compare__col--after  .signal-compare__title { color: #f5f1eb; }
.signal-compare__item { font-size: .85rem; line-height: 1.6; margin-bottom: .6rem; padding-left: 1rem; position: relative; }
.signal-compare__col--before .signal-compare__item { color: #7a7268; }
.signal-compare__col--before .signal-compare__item::before { content: '–'; position: absolute; left: 0; color: #c85020; }
.signal-compare__col--after  .signal-compare__item { color: #c8c0b4; }
.signal-compare__col--after  .signal-compare__item::before { content: '→'; position: absolute; left: 0; color: #c8922a; }
/* variante --pair */
.signal-compare--pair .signal-compare__col { padding: 1.25rem 1.5rem; }
.signal-compare--pair .signal-compare__col--before .signal-compare__label { color: #c85020; border-color: transparent; }
.signal-compare--pair .signal-compare__text { font-size: .88rem; line-height: 1.65; font-style: italic; }
.signal-compare--pair .signal-compare__col--before .signal-compare__text { color: #7a7268; }
.signal-compare--pair .signal-compare__col--after  .signal-compare__text { color: #c8c0b4; }

/* ── 4. SIGNAL-LIST ──────────────────────────────────────── */
.signal-list { margin: 2.5rem 0; display: flex; flex-direction: column; gap: 1px; border: 1px solid #d4ccc0; border-radius: 4px; overflow: hidden; }
.signal-list__item { display: grid; grid-template-columns: 56px 1fr; background: #e8e0d4; border-bottom: 1px solid #d4ccc0; }
.signal-list__item:last-child { border-bottom: none; }
.signal-list__num { background: #151a22; display: flex; align-items: center; justify-content: center; font-family: var(--f-display, Georgia, serif); font-size: 1.3rem; font-weight: 300; color: #c8922a; border-right: 1px solid #1e2733; min-height: 56px; }
.signal-list__content { padding: 1.25rem 1.5rem; }
.signal-list__sub { font-size: .62rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; color: #8a6218; margin-bottom: .3rem; }
.signal-list__title { font-size: .9rem; font-weight: 500; color: var(--wp--preset--color--signal-primary, #151a22); margin-bottom: .4rem; line-height: 1.4; }
.signal-list__desc { font-size: .83rem; line-height: 1.65; color: #4a4840; }
.signal-list--checklist .signal-list__num { font-size: 1.1rem; }
.signal-list--checklist .signal-list__desc { color: #7a7268; }
.signal-list__tag { display: inline-block; margin-top: .5rem; font-size: .65rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; padding: .25em .6em; border-radius: 2px; background: #2b3544; color: #c8922a; }
.signal-list__warning { display: block; margin-top: .5rem; font-size: .75rem; color: #c85020; padding-left: 1rem; position: relative; line-height: 1.5; }
.signal-list__warning::before { content: '↳'; position: absolute; left: 0; color: #c85020; }

/* ── 5. SIGNAL-STACK ─────────────────────────────────────── */
.signal-stack { margin: 2.5rem 0; display: flex; flex-direction: column; gap: 1px; border: 1px solid #d4ccc0; border-radius: 4px; overflow: hidden; }
.signal-stack__row { display: grid; grid-template-columns: 180px 1fr; border-bottom: 1px solid #d4ccc0; }
.signal-stack__row:last-child { border-bottom: none; }
.signal-stack__label { background: #151a22; padding: 1.5rem; display: flex; flex-direction: column; justify-content: center; gap: .3rem; border-right: 1px solid #1e2733; }
.signal-stack__num  { font-family: var(--f-display, Georgia, serif); font-size: 2.2rem; font-weight: 300; color: #2b3544; line-height: 1; }
.signal-stack__name { font-size: .78rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: #c8922a; }
.signal-stack__sub  { font-size: .68rem; color: #5a5248; font-style: italic; }
.signal-stack__content { background: #f5f1eb; padding: 1.5rem 1.75rem; }
.signal-stack__row--dark .signal-stack__content { background: #1e2733; }
.signal-stack__title { font-family: var(--f-display, Georgia, serif); font-weight: 400; font-size: 1rem; line-height: 1.3; margin-bottom: .5rem; color: var(--wp--preset--color--signal-primary, #151a22); }
.signal-stack__row--dark .signal-stack__title { color: #f5f1eb; }
.signal-stack__desc { font-size: .85rem; line-height: 1.65; color: #4a4840; }
.signal-stack__row--dark .signal-stack__desc { color: #9aa6b5; }
.signal-stack__example { margin-top: .75rem; padding: .55rem .9rem; background: #e8e0d4; border-radius: 3px; font-size: .75rem; color: #7a7268; font-family: monospace; letter-spacing: .02em; }
.signal-stack__row--dark .signal-stack__example { background: #2b3544; color: #9aa6b5; }
.signal-stack__tag { display: inline-block; margin-top: .4rem; font-size: .62rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; padding: .2em .6em; border-radius: 2px; }
.signal-stack__row:not(.signal-stack__row--dark) .signal-stack__tag { background: #e8e0d4; color: #7a7268; }
.signal-stack__row--dark .signal-stack__tag { background: #2b3544; color: #c8922a; }
/* variante --grid (2x2) */
.signal-stack--grid { display: grid; grid-template-columns: 1fr 1fr; flex-direction: unset; }
.signal-stack--grid .signal-stack__row { display: flex; flex-direction: column; border-bottom: none; border-right: 1px solid #d4ccc0; }
.signal-stack--grid .signal-stack__row:nth-child(even) { border-right: none; }
.signal-stack--grid .signal-stack__row:nth-last-child(-n+2) { border-top: 1px solid #d4ccc0; }
.signal-stack--grid .signal-stack__label { border-right: none; border-bottom: 1px solid #1e2733; padding: 1rem 1.5rem; }
.signal-stack--grid .signal-stack__content { flex: 1; }

/* ── 6. SIGNAL-TIMELINE ──────────────────────────────────── */
.signal-timeline { margin: 2.5rem 0; position: relative; padding-left: 1.5rem; border-left: 2px solid #d4ccc0; }
.signal-timeline::before { content: ''; position: absolute; left: -5px; top: 0; width: 8px; height: 8px; border-radius: 50%; background: #c8922a; }
.signal-timeline::after  { content: ''; position: absolute; left: -5px; bottom: 0; width: 8px; height: 8px; border-radius: 50%; background: #c8922a; }
.signal-timeline__item { position: relative; padding: .75rem 0 .75rem 1rem; }
.signal-timeline__item::before { content: ''; position: absolute; left: -1.85rem; top: 50%; transform: translateY(-50%); width: 6px; height: 6px; border-radius: 50%; background: #e8e0d4; border: 1px solid #d4ccc0; }
.signal-timeline__year { font-size: .68rem; font-weight: 500; letter-spacing: .1em; color: #c8922a; margin-bottom: .2rem; }
.signal-timeline__text { font-size: .88rem; color: #3a3730; line-height: 1.55; }
.signal-timeline__text strong { color: var(--wp--preset--color--signal-primary, #151a22); font-weight: 700; }

/* ── 7. SIGNAL-GRID ──────────────────────────────────────── */
.signal-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: #d4ccc0; border: 1px solid #d4ccc0; border-radius: 4px; overflow: hidden; margin: 2.5rem 0; }
.signal-grid--3 { grid-template-columns: repeat(3, 1fr); }
.signal-grid__cell { padding: 1.75rem; background: #e8e0d4; }
.signal-grid--dark  .signal-grid__cell { background: #151a22; }
.signal-grid--light .signal-grid__cell { background: #e8e0d4; }
.signal-grid__metric { font-family: var(--f-display, Georgia, serif); font-weight: 300; font-size: 2.2rem; line-height: 1; margin-bottom: .5rem; color: #c8922a; }
.signal-grid__title { font-size: .85rem; font-weight: 500; margin-bottom: .4rem; line-height: 1.3; }
.signal-grid--dark  .signal-grid__title { color: #f5f1eb; }
.signal-grid--light .signal-grid__title { color: var(--wp--preset--color--signal-primary, #151a22); }
.signal-grid__desc { font-size: .8rem; line-height: 1.6; }
.signal-grid--dark  .signal-grid__desc { color: #7a7268; }
.signal-grid--light .signal-grid__desc { color: #4a4840; }

/* ── 8. PULL-QUOTE ───────────────────────────────────────── */
.signal-prose .pull-quote,
.pull-quote {
  font-family: var(--f-display, 'PP Grafier Display', Georgia, serif);
  font-weight: 300;
  font-size: 1.5rem;
  font-style: italic;
  line-height: 1.45;
  color: var(--wp--preset--color--signal-primary, #151a22);
  border-top: 2px solid var(--wp--preset--color--signal-primary, #151a22);
  border-bottom: 1px solid #d4ccc0;
  padding: 1.5rem 0;
  margin: 2.5rem 0;
}

/* ── 9. SUMMARY-BOX ──────────────────────────────────────── */
.summary-box { background: #151a22; color: #f5f1eb; padding: 2.5rem; border-radius: 4px; margin: 3rem 0; }
.summary-box-label { font-size: .65rem; font-weight: 500; letter-spacing: .25em; text-transform: uppercase; color: #c8922a; margin-bottom: 1.5rem; }
.summary-box ul { list-style: none; display: flex; flex-direction: column; gap: 1.1rem; }
.summary-box li { font-size: .9rem; line-height: 1.65; padding-left: 1.5rem; position: relative; color: #d4ccc0; }
.summary-box li::before { content: '→'; position: absolute; left: 0; color: #c8922a; }
.summary-box strong { color: #f5f1eb; font-weight: 700; }

/* ── 9B. SIGNAL-SOURCES ─────────────────────────────────── */
.signal-sources { margin: 3rem 0; }
.signal-sources__label { font-size: .65rem; font-weight: 500; letter-spacing: .25em; text-transform: uppercase; color: #8a6218; margin-bottom: 1rem; }
.signal-sources__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #d4ccc0; border: 1px solid #d4ccc0; border-radius: 4px; overflow: hidden; }
.signal-sources__item { background: #f0ece4; padding: 1.4rem 1.5rem; display: flex; flex-direction: column; gap: .75rem; }
.signal-sources__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.signal-sources__org { font-size: .62rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #7a7268; }
.signal-sources__tag { display: inline-block; font-size: .62rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; padding: .28em .6em; border-radius: 999px; background: #1e2733; color: #c8922a; }
.signal-sources__title { margin: 0; font-family: var(--f-display, Georgia, serif); font-size: 1rem; line-height: 1.35; color: var(--wp--preset--color--signal-primary, #151a22); }
.signal-sources__title a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(15, 14, 12, .18); }
.signal-sources__title a:hover { border-color: #c8922a; color: #8a6218; }
.signal-sources__note { font-size: .84rem; line-height: 1.65; color: #4a4840; }
.signal-sources__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; font-size: .72rem; color: #7a7268; }
.signal-sources__meta a { color: #8a6218; text-decoration: none; }
.signal-sources__meta a:hover { text-decoration: underline; }
.signal-sources__meta-sep { color: #b1a79b; }
.signal-sources--proof .signal-sources__item { background: linear-gradient(180deg, #f3efe8 0%, #eee8dd 100%); border-left: 3px solid #c8922a; }
.signal-sources--proof .signal-sources__note { position: relative; padding-left: 1rem; }
.signal-sources--proof .signal-sources__note::before { content: '“'; position: absolute; left: 0; top: -.15rem; font-family: var(--f-display, Georgia, serif); font-size: 1.2rem; color: #c8922a; }
.signal-sources--compact .signal-sources__list { grid-template-columns: 1fr; }
.signal-sources--compact .signal-sources__item { gap: .45rem; padding: 1rem 1.1rem; }
.signal-sources--compact .signal-sources__title { font-size: .92rem; }
.signal-sources--compact .signal-sources__note { font-size: .78rem; line-height: 1.55; }
.signal-sources--compact .signal-sources__meta { font-size: .68rem; }

/* ── 10. ARTICLE-CTA ─────────────────────────────────────── */
.article-cta { text-align: center; padding: 2.5rem 0 0; border-top: 1px solid #d4ccc0; margin-top: 2rem; }
.article-cta p { font-family: var(--f-display, Georgia, serif); font-size: 1.2rem; font-style: italic; color: #7a7268; margin-bottom: 1.25rem; }
.btn-cta { display: inline-block; background: #c8922a; color: white; font-family: var(--f-body, sans-serif); font-size: .78rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; padding: .9em 2em; border-radius: 2px; transition: background .2s ease; }
.btn-cta:hover { background: #8a6218; }


/* ── ANIMATIONS ──────────────────────────────────────────── */
@keyframes signalFadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}


/* ── RESPONSIVE ──────────────────────────────────────────── */
@media (max-width: 768px) {
  .signal-hero { padding-left: 1.25rem; padding-right: 1.25rem; }

  .signal-article-wrap { padding-left: 1.25rem; padding-right: 1.25rem; }

  .signal-layout {
    flex-direction: column !important;
    gap: 2rem !important;
  }

  .signal-sidebar {
    position: static;
  }

  .signal-compare,
  .signal-compare--pair { grid-template-columns: 1fr; }

  .signal-stack__row { grid-template-columns: 1fr; }
  .signal-stack__label { flex-direction: row; align-items: center; gap: 1rem; padding: .75rem 1.25rem; border-right: none; border-bottom: 1px solid #1e2733; }
  .signal-stack__num { font-size: 1.5rem; }
  .signal-stack--grid { grid-template-columns: 1fr; }

  .signal-list__item { grid-template-columns: 44px 1fr; }
  .signal-list__num  { min-height: 48px; font-size: 1.1rem; }

  .signal-sources__list { grid-template-columns: 1fr; }

  .signal-grid       { grid-template-columns: 1fr; }
  .signal-grid--3    { grid-template-columns: 1fr; }

  .signal-case__stats { grid-template-columns: repeat(3, 1fr); }
}

/* ── SCROLLBAR — Signal pages ────────────────────────────── */
/* Override theme scrollbar: gold thumb on paper background   */
html:has(.signal-single),
html:has(.signal-taxonomy-page) {
  scrollbar-color: #c8922a #f4f1ec;
}

html:has(.signal-single)::-webkit-scrollbar,
html:has(.signal-taxonomy-page)::-webkit-scrollbar {
  width: 8px;
}

html:has(.signal-single)::-webkit-scrollbar-track,
html:has(.signal-taxonomy-page)::-webkit-scrollbar-track {
  background: #f4f1ec;
}

html:has(.signal-single)::-webkit-scrollbar-thumb,
html:has(.signal-taxonomy-page)::-webkit-scrollbar-thumb {
  background-color: #c8922a;
  border-radius: 4px;
}

/* ── NO HORIZONTAL SCROLL ────────────────────────────────── */
/* Use clip instead of hidden to preserve position:sticky on sidebar */
html:has(.signal-single),
html:has(.signal-single) body,
html:has(.signal-taxonomy-page),
html:has(.signal-taxonomy-page) body {
  overflow-x: clip;
}

/* ── TAXONOMY ARCHIVE PAGES ──────────────────────────────── */
.signal-taxonomy-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.signal-taxonomy-page .signal-taxonomy {
  flex: 1 1 auto;
}

/* Style taxonomy footer to match paper palette */
.signal-taxonomy-page footer {
  background: transparent !important;
  color: #7a7268;
}
