/* Local Inter font subset for the Demiand GEO research presentation.
   Replaces the external Google Fonts request to make the deck self-contained.
   Weights: 400, 500, 600, 700.
*/
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/inter-400.ttf') format('truetype');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/inter-500.ttf') format('truetype');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/inter-600.ttf') format('truetype');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('assets/fonts/inter-700.ttf') format('truetype');
}


/* ============================================
   DEMIAND AI Research — Premium Presentation
   ============================================ */

/* --- Custom Properties --- */
:root {
  --deck-bg: #f5f5ff;
  --deck-surface: #ffffff;
  --deck-border: rgba(32, 53, 126, 0.10);
  --deck-border-strong: rgba(32, 53, 126, 0.18);
  --deck-text: #0a0a3c;
  --deck-muted: rgba(10, 10, 60, 0.55);
  --deck-soft: rgba(10, 10, 60, 0.35);
  --deck-accent: #2d2dba;
  --deck-accent-light: #4f4fe0;
  --deck-accent-bg: rgba(45, 45, 186, 0.06);
  --deck-glow: rgba(45, 45, 186, 0.12);
  --deck-success: #0ca789;
  --deck-warning: #e8930c;
  --deck-danger: #d9363e;
  --deck-shadow-sm: 0 2px 8px rgba(10,10,60,0.04);
  --deck-shadow: 0 8px 32px rgba(10,10,60,0.06);
  --deck-shadow-lg: 0 16px 48px rgba(10,10,60,0.10);
  --deck-radius: 14px;
  --deck-radius-sm: 10px;
  --deck-radius-xs: 6px;
  --transition-smooth: 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  --transition-bounce: 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);

  /* Brand colors for competitors */
  --c-demiand: #2d2dba;
  --c-kitfort: #e53935;
  --c-polaris: #1e88e5;
  --c-xiaomi: #ff6d00;
  --c-tefal: #8e24aa;
  --c-redmond: #43a047;
  --c-gfgril: #00897b;
  --c-weissgauff: #5c6bc0;
  --c-narrazione: #f4511e;
  --c-tuvio: #00acc1;
  --c-midea: #6d4c41;
}

/* --- Reset & Base --- */
*, *::before, *::after { box-sizing: border-box; }

html, body {
  width: 100%; height: 100%;
  margin: 0; overflow: hidden;
  background: var(--deck-bg);
  color: var(--deck-text);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* --- Deck Shell --- */
.deck {
  width: 100vw;
  height: 100vh;
}

.deck__shell {
  width: min(100%, 1800px);
  height: 100%;
  margin: 0 auto;
  padding: 12px 16px 14px;
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: 10px;
}

/* --- Header --- */
.deck-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 56px;
  padding: 10px 18px;
  border-radius: var(--deck-radius);
  background: linear-gradient(135deg, #1a1a6e 0%, #2d2dba 100%);
  color: #fff;
  box-shadow: 0 4px 20px rgba(45,45,186,0.25);
}

.deck-header__left,
.deck-header__right {
  display: flex;
  align-items: center;
  gap: 14px;
}

.deck-header__agency { width: 110px; height: auto; flex-shrink: 0; }

.deck-header__meta { display: flex; flex-direction: column; gap: 2px; }

.deck-header__kicker {
  font-size: 10px; line-height: 1;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(255,255,255,0.6);
}

.deck-header__name {
  font-size: 14px; line-height: 1.25; font-weight: 600; color: #fff;
}

.deck-header__date { font-size: 12px; color: rgba(255,255,255,0.7); }

.deck-header__brand {
  height: 32px; width: auto; object-fit: contain;
  padding: 4px 10px; border-radius: 8px; background: rgba(255,255,255,0.95);
}

/* --- Progress Bar --- */
.deck-progress {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 4px;
}

.deck-progress__item {
  min-height: 34px;
  display: flex; align-items: center; justify-content: center;
  gap: 4px; padding: 5px 4px;
  border-radius: 8px;
  border: 1px solid var(--deck-border);
  background: rgba(255,255,255,0.6);
  color: var(--deck-soft);
  font-size: 10px; line-height: 1.1; text-align: center;
  transition: all var(--transition-smooth);
  cursor: default;
}

.deck-progress__icon {
  width: 14px; height: 14px; object-fit: contain; flex-shrink: 0;
}

.deck-progress__num {
  font-weight: 600; color: var(--deck-accent); font-size: 9px;
}

.deck-progress__item--current .deck-progress__num {
  color: #fff;
}

.deck-progress__item--active .deck-progress__num {
  color: var(--deck-accent);
}

.deck-progress__item--active {
  border-color: rgba(45,45,186,0.3);
  color: var(--deck-accent);
  background: rgba(255,255,255,0.95);
  box-shadow: 0 2px 12px rgba(45,45,186,0.10);
  font-weight: 500;
}

.deck-progress__item--current {
  border-color: var(--deck-accent);
  background: var(--deck-accent);
  color: #fff;
  box-shadow: 0 4px 16px rgba(45,45,186,0.3);
  font-weight: 600;
}

/* legacy icons support — kept for backward compat */

/* --- Main Area --- */
.deck-main {
  position: relative;
  min-height: 0;
  border-radius: var(--deck-radius);
  overflow: hidden;
}

/* --- Slides --- */
.slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: translateY(12px) scale(0.995);
  pointer-events: none;
  transition: opacity 0.35s ease, transform 0.35s ease;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--deck-border-strong) transparent;
}

.slide::-webkit-scrollbar { width: 6px; }
.slide::-webkit-scrollbar-track { background: transparent; }
.slide::-webkit-scrollbar-thumb { background: var(--deck-border-strong); border-radius: 3px; }

.slide--active {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

/* --- Screen --- */
.screen {
  min-height: 100%;
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 12px;
  padding: 16px 18px;
}

.screen__top {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px;
}

.screen__label,
.deck-footer__status {
  display: inline-flex; align-items: center;
  width: fit-content;
  padding: 5px 10px; border-radius: 999px;
  background: var(--deck-accent-bg);
  color: var(--deck-accent);
  font-size: 10px; line-height: 1;
  letter-spacing: 0.06em; text-transform: uppercase;
  font-weight: 500;
}

.screen__note,
.deck-footer__text {
  font-size: 12px; line-height: 1.35;
  color: var(--deck-muted);
}

.screen__body {
  min-height: 0;
  display: grid;
  gap: 14px;
}

/* --- Intro Screen --- */
.screen__body--intro {
  grid-template-columns: minmax(0, 1fr) minmax(560px, 0.98fr);
  align-items: start;
}

.screen--intro-centered {
  align-content: center;
  justify-items: stretch;
  gap: 10px;
}

.screen--intro-centered .screen__body--intro {
  width: 100%;
  align-self: center;
  align-items: center;
  column-gap: 18px;
}

.screen--intro-centered .intro-copy {
  max-width: none;
  width: 100%;
}

.screen--intro-centered .intro-side {
  width: min(100%, 640px);
  justify-self: end;
}

.screen__body--methodology {
  grid-template-columns: minmax(0, 1.15fr) minmax(290px, 0.85fr);
  align-items: start;
}

.screen__body--methodology-wide {
  grid-template-columns: 1fr;
}

.screen__body--search {
  grid-template-rows: auto minmax(0, 1fr);
  gap: 8px;
}

.screen__body--models {
  grid-template-rows: auto minmax(0, 1fr);
  gap: 8px;
}

.screen__body--traffic {
  grid-template-rows: auto minmax(0, 1fr);
  gap: 8px;
}

.screen__body--conclusions {
  grid-template-columns: 1fr;
  gap: 14px;
}

.screen__grid--metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.screen__grid--metrics-compact {
  gap: 8px;
  align-items: start;
  align-self: start;
  width: 100%;
  margin-top: 6px;
}

.screen__grid--metrics-compact .metric-box {
  gap: 4px;
  padding: 12px 12px;
  align-content: start;
  min-height: 0;
  height: auto;
}

.screen__grid--metrics-compact .metric-box__head {
  gap: 6px;
  font-size: 11px;
}

.screen__grid--metrics-compact .metric-box__head img {
  width: 16px;
  height: 16px;
}

.metric-box__icons {
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

.metric-box__icons img {
  width: 13px;
  height: 13px;
  object-fit: contain;
}

.screen__grid--metrics-compact .metric-box__icons {
  gap: 2px;
}

.screen__grid--metrics-compact .metric-box__icons img {
  width: 12px;
  height: 12px;
}

.screen__grid--metrics-compact .metric-box__value {
  font-size: 20px;
}

.screen__grid--metrics-compact .metric-box__text {
  font-size: 11px;
  line-height: 1.35;
}

.intro-copy, .intro-side, .methodology-main, .methodology-side {
  min-width: 0;
}

/* --- Typography --- */
.ig-h1, .ig-h2, .ig-h3 {
  margin: 0;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.section-kicker {
  width: fit-content;
  padding: 4px 10px; border-radius: 999px;
  background: var(--deck-accent-bg);
  color: var(--deck-accent);
  font-size: 10px; line-height: 1;
  letter-spacing: 0.06em; text-transform: uppercase;
  font-weight: 600;
}

/* --- Metric Boxes --- */
.metric-box,
.methodology-card,
.taxonomy-item {
  display: grid; gap: 6px;
  padding: 14px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
  transition: all var(--transition-smooth);
}

.metric-box:hover,
.methodology-card:hover,
.taxonomy-item:hover {
  box-shadow: var(--deck-shadow);
  transform: translateY(-2px);
  border-color: var(--deck-border-strong);
}

.metric-box__head {
  display: flex; align-items: center; gap: 6px;
  font-size: 11px; line-height: 1.2;
  color: var(--deck-muted);
}

.metric-box__head img { width: 16px; height: 16px; object-fit: contain; }

.metric-box__value,
.taxonomy-item__percent {
  font-size: 26px; line-height: 1;
  font-weight: 700; color: var(--deck-accent);
  font-variant-numeric: tabular-nums;
}

.metric-box__text,
.methodology-card__text,
.taxonomy-item__text {
  font-size: 11px; line-height: 1.45;
  color: var(--deck-muted);
}

/* --- Intro Copy --- */
.intro-copy { display: grid; gap: 12px; }

.intro-copy__title {
  font-size: clamp(28px, 2.8vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  max-width: 900px;
}

.intro-copy__text {
  margin: 0; max-width: 70ch;
  font-size: 16px; line-height: 1.55;
  color: var(--deck-muted);
}

.intro-callout {
  display: grid; gap: 8px;
  padding: 16px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
  border-left: 3px solid var(--deck-accent);
}

.intro-callout__title {
  display: inline-flex; align-items: center;
  width: fit-content;
  padding: 4px 10px; border-radius: 999px;
  background: var(--deck-accent-bg);
  color: var(--deck-accent);
  font-size: 10px; line-height: 1;
  letter-spacing: 0.06em; text-transform: uppercase;
  font-weight: 600;
}

.intro-callout__text {
  margin: 0; font-size: 14px; line-height: 1.55;
}

/* --- Summary Panel (Passport) --- */
.summary-panel {
  display: grid; gap: 10px;
  padding: 16px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
}

.summary-panel--passport {
  background:
    radial-gradient(circle at 18% 0, rgba(45,45,186,0.12), transparent 38%),
    linear-gradient(135deg, rgba(45,45,186,0.06), rgba(255,255,255,0) 44%),
    var(--deck-surface);
}

.summary-panel__title {
  font-size: 13px; line-height: 1.3; font-weight: 600;
}

.summary-panel__lead {
  margin: 0; font-size: 11px; line-height: 1.45;
  color: var(--deck-muted);
}

.passport-hero {
  padding: 14px; border-radius: var(--deck-radius-sm);
  background: linear-gradient(135deg, var(--deck-accent), var(--deck-accent-light));
  color: #fff;
  box-shadow: 0 4px 16px rgba(45,45,186,0.25);
}

.passport-hero__value {
  font-size: clamp(38px, 4vw, 60px);
  line-height: 0.92; font-weight: 700;
  letter-spacing: -0.03em;
}

.passport-hero__text {
  margin-top: 5px; font-size: 12px; line-height: 1.35;
  color: rgba(255,255,255,0.75);
}

.passport-breakdown {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.passport-card {
  display: grid; gap: 3px;
  padding: 8px 10px;
  border: 1px solid rgba(32,53,126,0.08);
  border-radius: 8px;
  background: rgba(255,255,255,0.7);
}

.passport-card__value {
  font-size: 22px; line-height: 1; font-weight: 700;
  color: var(--deck-accent);
}

.passport-card__title {
  margin: 0; font-size: 11px; line-height: 1.25; font-weight: 600;
}

.passport-card p {
  margin: 0; font-size: 10px; line-height: 1.35;
  color: var(--deck-muted);
}

.passport-models { display: grid; gap: 6px; }

.passport-models__title {
  margin: 0; font-size: 11px; line-height: 1.25; font-weight: 600;
}

.passport-models__grid {
  display: flex; flex-wrap: wrap; gap: 5px;
}

.passport-models__grid span {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 5px 8px; border-radius: 999px;
  border: 1px solid rgba(32,53,126,0.08);
  background: rgba(255,255,255,0.7);
  font-size: 10px; line-height: 1;
}

.passport-models__grid img {
  width: 14px; height: 14px; object-fit: contain;
}

.passport-note {
  display: flex; gap: 8px; align-items: center;
  padding: 8px 10px; border-radius: 8px;
  background: var(--deck-accent-bg);
  font-size: 11px; line-height: 1.35;
  color: var(--deck-muted);
}

.passport-note strong {
  color: var(--deck-accent);
  font-size: 18px; line-height: 1; font-weight: 700;
}


/* --- Methodology --- */
.methodology-main { display: grid; gap: 14px; }

.methodology-main__title {
  font-size: clamp(26px, 2.2vw, 38px);
  line-height: 1.05;
}

.methodology-section-title {
  font-size: 15px;
  line-height: 1.25;
  font-weight: 700;
}

.methodology-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.methodology-card__title,
.taxonomy-item__name {
  font-size: 12px; line-height: 1.3; font-weight: 600;
}

.methodology-note {
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
}

.methodology-note__title {
  font-size: 13px;
  line-height: 1.3;
  font-weight: 600;
}

.methodology-note__text {
  margin: 0;
  font-size: 11px;
  line-height: 1.5;
  color: var(--deck-muted);
}

.methodology-note__list {
  display: grid;
  gap: 6px;
}

.methodology-note__list-item {
  position: relative;
  padding-left: 14px;
  font-size: 11px;
  line-height: 1.45;
  color: var(--deck-muted);
}

.methodology-note__list-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--deck-accent);
}

.methodology-link {
  width: 100%;
  min-height: 42px;
  text-decoration: none;
}

.methodology-scenarios {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
}

.methodology-scenarios .taxonomy-block {
  margin: 0;
}

.methodology-scenarios > * {
  height: 100%;
  align-content: start;
}

.methodology-side { display: grid; gap: 10px; }

.method-steps-panel,
.agenda-panel,
.sources-panel {
  display: grid; gap: 10px;
  padding: 14px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
}

.method-steps-panel__title,
.agenda-panel__title,
.sources-panel__title {
  font-size: 13px; line-height: 1.3; font-weight: 600;
}

.agenda-panel__list { display: grid; gap: 6px; }

.agenda-panel__item {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 8px; align-items: start;
  font-size: 12px; line-height: 1.35;
}

.agenda-panel__item span {
  color: var(--deck-accent); font-weight: 700;
}

.sources-panel__chips {
  display: flex; flex-wrap: wrap; gap: 6px;
}

.source-chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 8px; border-radius: 999px;
  border: 1px solid var(--deck-border);
  background: var(--deck-accent-bg);
  font-size: 11px; line-height: 1.2;
}

.source-chip img { width: 14px; height: 14px; object-fit: contain; }

.method-step {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(32,53,126,0.06);
}

.method-step:last-child { padding-bottom: 0; border-bottom: 0; }

.method-step span { color: var(--deck-accent); font-size: 11px; font-weight: 700; }

.method-step strong {
  display: block; font-size: 12px; line-height: 1.3; font-weight: 600;
}

.method-step p {
  margin: 2px 0 0;
  font-size: 11px; line-height: 1.4; color: var(--deck-muted);
}

.taxonomy-block { display: grid; gap: 10px; }

.taxonomy-block__title {
  font-size: 13px; font-weight: 600;
}

.taxonomy-block__lead {
  margin: 0; font-size: 11px; line-height: 1.45;
  color: var(--deck-muted);
}

.taxonomy-block__lead a {
  color: var(--deck-accent); text-decoration: none;
  border-bottom: 1px solid rgba(45,45,186,0.2);
}

.taxonomy-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

/* --- Search Screen --- */
.search-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.9fr);
  gap: 14px; align-items: end;
}

.search-hero__title {
  margin: 8px 0 0;
  font-size: clamp(28px, 2.8vw, 44px);
  line-height: 1.05;
}

.title-inline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.info-hint {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1px solid rgba(45,45,186,0.16);
  background: rgba(45,45,186,0.06);
  color: var(--deck-accent);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  cursor: help;
  transform: translateY(1px);
}

.info-hint:hover,
.info-hint:focus-visible {
  background: rgba(45,45,186,0.10);
  border-color: rgba(45,45,186,0.26);
  outline: none;
}

.search-hero__text {
  margin: 0; font-size: 14px; line-height: 1.5;
  color: var(--deck-muted);
}

/* --- Channel Grid (Search) --- */
.channel-grid {
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.channel-panel {
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: 6px;
  padding: 10px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
}

.channel-panel__head {
  display: flex; align-items: center; gap: 8px;
}

.channel-panel__head img { width: 22px; height: 22px; object-fit: contain; }
.channel-panel__head h3, .analysis-card h4 { margin: 0; }
.channel-panel__head h3 { font-size: 14px; line-height: 1.2; font-weight: 600; }

.channel-summary {
  display: grid; gap: 3px;
  padding: 7px 10px; border-radius: 8px;
  background: var(--deck-accent-bg);
  font-size: 10px; line-height: 1.35;
}

.channel-summary strong {
  color: var(--deck-accent); font-size: 10px; line-height: 1;
  text-transform: uppercase; letter-spacing: 0.06em;
}

.channel-summary span { color: var(--deck-text); }

.channel-panel__cards {
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
}

/* --- Analysis Cards --- */
.analysis-card {
  display: grid; align-content: start; gap: 5px;
  padding: 7px;
  border-radius: 8px;
  transition: background var(--transition-smooth);
}

.analysis-card:hover { background: rgba(45,45,186,0.03); }

.analysis-card--wide { grid-column: 1 / -1; }

.analysis-card h4 {
  font-size: 11px; line-height: 1.25; font-weight: 600;
  color: var(--deck-text);
}

.analysis-card p, .sov-split p, .source-columns p {
  margin: 0; font-size: 9px; line-height: 1.35;
  color: var(--deck-muted);
}

.sov-split, .source-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.sov-split div, .source-columns div {
  padding: 6px; border-radius: 8px;
  background: var(--deck-accent-bg);
}

.sov-split span, .source-columns span {
  display: block; margin-bottom: 3px;
  font-size: 9px; line-height: 1; color: var(--deck-accent); font-weight: 600;
}

/* --- Alice Section Banner --- */
.alice-section-banner {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 22px 32px;
  border-radius: var(--deck-radius);
  background: linear-gradient(90deg, #4f4fe0 0%, #2d2dba 50%, #1a1a6e 100%);
  color: #fff;
  box-shadow: 0 8px 32px rgba(45,45,186,0.30), inset 0 1px 0 rgba(255,255,255,0.08);
  margin-bottom: 4px;
  position: relative;
  overflow: hidden;
}

.alice-section-banner::before {
  content: '';
  position: absolute;
  top: -40%;
  right: -10%;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,0.06) 0%, transparent 70%);
  pointer-events: none;
}

.alice-section-banner::after {
  content: '';
  position: absolute;
  bottom: -30%;
  left: 20%;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(248,96,74,0.08) 0%, transparent 70%);
  pointer-events: none;
}

.alice-section-banner__icon {
  width: 52px;
  height: 52px;
  object-fit: contain;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  transition: transform 0.3s ease;
}

.alice-section-banner:hover .alice-section-banner__icon {
  transform: scale(1.08);
}

.alice-section-banner__text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  position: relative;
  z-index: 1;
}

.alice-section-banner__label {
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.50);
  font-weight: 600;
}

.alice-section-banner__title {
  margin: 0;
  font-size: clamp(22px, 2.2vw, 32px);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0,0,0,0.15);
}

.alice-section-banner__desc {
  margin: 0;
  font-size: 12px;
  color: rgba(255,255,255,0.60);
  letter-spacing: 0.01em;
}

.alice-section-banner--compact {
  gap: 16px;
  padding: 16px 24px;
}

.alice-section-banner--compact .alice-section-banner__icon {
  width: 42px;
  height: 42px;
}

.alice-section-banner--compact .alice-section-banner__title {
  font-size: clamp(20px, 2vw, 28px);
}

.alice-section-banner--compact .alice-section-banner__desc {
  font-size: 11px;
}

.alice-screen-summary {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(45,45,186,0.05) 0%, rgba(45,45,186,0.02) 100%);
  font-size: 12px;
  line-height: 1.55;
  color: var(--deck-text);
  text-align: left;
}

.alice-screen-summary strong {
  font-size: 12px;
  font-weight: 700;
}

.alice-screen-summary__list-title {
  margin-top: 8px;
  font-size: 11px;
  font-weight: 600;
  color: var(--deck-text);
}

.alice-screen-summary__list {
  margin: 6px 0 0;
  padding-left: 18px;
  font-size: 11px;
  line-height: 1.5;
  color: var(--deck-text);
}

.alice-screen-summary__list li + li {
  margin-top: 2px;
}

.screen-subhead-h3 {
  margin: 0 0 2px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--deck-text);
  letter-spacing: -0.01em;
}

.metric-strip-heading {
  margin: 2px 0 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--deck-text);
}

/* --- Gauge Ring (donut chart) --- */
.gauge-ring {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  position: relative;
  margin: 0 auto;
  overflow: hidden;
  background: conic-gradient(
    var(--gauge-color, var(--deck-accent)) 0deg,
    var(--gauge-color, var(--deck-accent)) max(0deg, calc((var(--gauge-pct, 0) * 3.6deg) - 2deg)),
    color-mix(in srgb, var(--gauge-color, var(--deck-accent)) 55%, rgba(45,45,186,0.06)) max(0deg, calc((var(--gauge-pct, 0) * 3.6deg) - 0.4deg)),
    rgba(45,45,186,0.10) calc(var(--gauge-pct, 0) * 3.6deg),
    rgba(45,45,186,0.06) 360deg
  );
  box-shadow: 0 4px 20px rgba(45,45,186,0.10);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.gauge-ring:hover {
  transform: scale(1.04);
  box-shadow: 0 8px 28px rgba(45,45,186,0.16);
}

.gauge-ring::before {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  background: conic-gradient(
    var(--gauge-color, var(--deck-accent)) 0deg,
    color-mix(in srgb, var(--gauge-color, var(--deck-accent)) 80%, white 20%) max(0deg, calc((var(--gauge-pct, 0) * 3.6deg) - 1deg)),
    transparent calc(var(--gauge-pct, 0) * 3.6deg),
    transparent 360deg
  );
  opacity: 0.15;
  filter: blur(6px);
  z-index: -1;
}

.gauge-ring__inner {
  position: absolute;
  inset: 16px;
  border-radius: 50%;
  background: var(--deck-surface);
  box-shadow: inset 0 2px 8px rgba(45,45,186,0.06);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
}

.gauge-ring__value {
  font-size: 24px;
  font-weight: 700;
  color: var(--gauge-color, var(--deck-accent));
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.gauge-ring__label {
  font-size: 10px;
  color: var(--deck-muted);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* --- Bar Charts (ig-viz) --- */
.ig-viz-bars { display: grid; gap: 5px; }

.ig-viz-bar-row {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) auto;
  gap: 8px; align-items: center;
  font-size: 11px; line-height: 1;
  padding: 3px 6px;
  border-radius: 6px;
  transition: background 0.2s ease, transform 0.2s ease;
  cursor: default;
  position: relative;
}

.ig-viz-bar-row:hover {
  background: rgba(45,45,186,0.05);
  transform: translateX(2px);
}

.ig-viz-bar-row:hover .ig-viz-bar-fill {
  filter: brightness(1.1);
}

/* Tooltip for bar rows — handled by JS cursor-following tooltip (donut-tooltip) */

.ig-viz-bar-row span { color: var(--deck-text); font-size: 11px; }

.ig-viz-bar-row strong {
  font-weight: 600; color: var(--deck-text);
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
}

.ig-viz-bar-track {
  height: 10px;
  border-radius: 5px;
  background: rgba(45,45,186,0.06);
  overflow: hidden;
  position: relative;
}

.ig-viz-bar-fill {
  display: block;
  height: 100%;
  border-radius: 5px;
  background: linear-gradient(90deg, rgba(45,45,186,0.25), rgba(45,45,186,0.45));
  transition: width 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  position: relative;
}

.ig-viz-bar-fill::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 5px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
}

.ig-viz-bar-row--accent .ig-viz-bar-fill {
  background: linear-gradient(90deg, var(--deck-accent), var(--deck-accent-light));
  box-shadow: 0 2px 8px rgba(45,45,186,0.2);
}

.ig-viz-bar-row--accent span { font-weight: 700; color: var(--deck-accent); }

/* --- Donut Charts --- */
.ig-viz-donut-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.ig-viz-donut {
  display: grid; gap: 4px; justify-items: center;
  padding: 6px;
  border-radius: 8px;
  transition: background var(--transition-smooth);
}

.ig-viz-donut:hover { background: rgba(45,45,186,0.04); }

.ig-viz-donut__chart {
  width: 48px; height: 48px;
  border-radius: 50%;
  position: relative;
}

.ig-viz-donut__chart::after {
  content: '';
  position: absolute;
  inset: 12px;
  border-radius: 50%;
  background: var(--deck-surface);
}

.ig-viz-donut__label {
  font-size: 10px; font-weight: 600;
  text-align: center;
}

.ig-viz-donut__legend {
  display: flex; flex-direction: column; gap: 2px;
}

.ig-viz-donut__legend span {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 9px; line-height: 1.2;
  color: var(--deck-muted);
}

.ig-viz-donut__legend i {
  display: inline-block;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--dot);
  flex-shrink: 0;
}

/* --- Tags --- */
.ig-viz-tags { display: flex; flex-wrap: wrap; gap: 5px; }

.ig-viz-tags span {
  display: inline-flex; align-items: center;
  padding: 4px 8px; border-radius: 999px;
  background: rgba(12,167,137,0.08);
  color: var(--deck-success);
  font-size: 10px; line-height: 1;
  font-weight: 500;
}

.risk-tags span {
  background: rgba(217,54,62,0.08);
  color: var(--deck-danger);
}

/* --- Tables --- */
.ig-viz-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 10px;
}

.ig-viz-table th {
  text-align: left;
  padding: 4px 5px;
  font-weight: 600;
  font-size: 9px;
  color: var(--deck-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid var(--deck-border);
}

.ig-viz-table td {
  padding: 3px 5px;
  font-size: 10px;
  border-bottom: 1px solid rgba(32,53,126,0.04);
}

.compact-table td { font-size: 9px; }

/* --- Search Comparison Cards --- */
.search-comparison {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.search-card,
.leaderboard-panel,
.risk-panel,
.sources-mini-panel {
  display: grid; gap: 10px;
  padding: 14px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
}

.search-card--alice {
  background:
    radial-gradient(circle at 12% 0, rgba(45,45,186,0.10), transparent 34%),
    var(--deck-surface);
}

.search-card--google {
  background:
    radial-gradient(circle at 12% 0, rgba(10,10,60,0.08), transparent 34%),
    var(--deck-surface);
}

.search-card__head { display: flex; align-items: center; gap: 7px; }
.search-card__head h3, .leaderboard-panel__title, .risk-panel__title, .sources-mini-panel__title {
  margin: 0; font-size: 14px; line-height: 1.25; font-weight: 600;
}

.search-card__metric span {
  display: block; font-size: 30px; line-height: 1;
  font-weight: 700; color: var(--deck-accent);
}

.search-card__metric p, .search-card__insight {
  margin: 4px 0 0; font-size: 11px; line-height: 1.45;
  color: var(--deck-muted);
}

/* --- Search Detail Grid --- */
.search-detail-grid {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.75fr) minmax(240px, 0.75fr);
  gap: 10px;
}

.leaderboard-list { display: grid; gap: 7px; }

.leaderboard-row {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) 56px;
  gap: 8px; align-items: center;
  font-size: 11px;
}

.leaderboard-row strong {
  text-align: right; color: var(--deck-text);
  font-weight: 600;
}

.leaderboard-row--brand { color: var(--deck-accent); }

.risk-panel, .sources-mini-panel { align-content: start; }

.source-stack { gap: 6px; }

.source-row {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr) 40px;
  gap: 8px; align-items: center;
  font-size: 11px;
}

.risk-table { font-size: 10px; }

/* --- AI Models Screen --- */
.models-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.9fr);
  gap: 14px; align-items: end;
}

.models-hero__title {
  margin: 8px 0 0;
  font-size: clamp(28px, 2.8vw, 44px);
  line-height: 1.05;
}

.models-hero__text {
  margin: 0; font-size: 14px; line-height: 1.5;
  color: var(--deck-muted);
}

/* --- Model Grid --- */
.model-grid {
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.model-card {
  display: grid; gap: 6px;
  padding: 10px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
  transition: all var(--transition-smooth);
}

.model-card:hover {
  box-shadow: var(--deck-shadow);
  transform: translateY(-1px);
}

.model-card__head {
  display: flex; align-items: center; gap: 6px;
}

.model-card__head img { width: 18px; height: 18px; object-fit: contain; }

.model-card__name {
  font-size: 12px; font-weight: 600;
}

.model-card__bars { display: grid; gap: 4px; }

.model-bar {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) auto;
  gap: 6px; align-items: center;
  font-size: 10px;
}

.model-bar__name { font-size: 10px; color: var(--deck-text); }

.model-bar__track {
  height: 8px;
  border-radius: 4px;
  background: rgba(45,45,186,0.06);
  overflow: hidden;
}

.model-bar__fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.model-bar__fill--demiand {
  background: linear-gradient(90deg, var(--c-demiand), var(--deck-accent-light));
}

.model-bar__fill--kitfort { background: var(--c-kitfort); opacity: 0.7; }
.model-bar__fill--polaris { background: var(--c-polaris); opacity: 0.7; }
.model-bar__fill--xiaomi { background: var(--c-xiaomi); opacity: 0.7; }
.model-bar__fill--tefal { background: var(--c-tefal); opacity: 0.7; }
.model-bar__fill--redmond { background: var(--c-redmond); opacity: 0.7; }
.model-bar__fill--gfgril { background: var(--c-gfgril); opacity: 0.7; }
.model-bar__fill--weissgauff { background: var(--c-weissgauff); opacity: 0.7; }
.model-bar__fill--narrazione { background: var(--c-narrazione); opacity: 0.7; }
.model-bar__fill--tuvio { background: var(--c-tuvio); opacity: 0.7; }
.model-bar__fill--midea { background: var(--c-midea); opacity: 0.7; }

.model-bar strong {
  font-weight: 600; font-size: 10px;
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
}

/* --- SOV Summary (All Models) --- */
.sov-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.sov-summary-panel {
  display: grid; gap: 8px;
  padding: 12px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
}

.sov-summary-panel__title {
  font-size: 12px; font-weight: 600;
}

/* --- Traffic Screen --- */
.traffic-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.9fr);
  gap: 14px; align-items: end;
}

.traffic-hero__title {
  margin: 8px 0 0;
  font-size: clamp(28px, 2.8vw, 44px);
  line-height: 1.05;
}

.traffic-hero__text {
  margin: 0; font-size: 14px; line-height: 1.5;
  color: var(--deck-muted);
}

.traffic-grid {
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.traffic-card {
  display: grid; gap: 8px;
  padding: 14px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
}

.traffic-card__title {
  font-size: 12px; font-weight: 600;
}

.traffic-card__subtitle {
  font-size: 10px; color: var(--deck-muted);
}

.traffic-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 10px;
}

.traffic-table th {
  text-align: left;
  padding: 3px 4px;
  font-size: 9px; font-weight: 600;
  color: var(--deck-muted);
  border-bottom: 1px solid var(--deck-border);
}

.traffic-table td {
  padding: 3px 4px;
  border-bottom: 1px solid rgba(32,53,126,0.04);
  font-variant-numeric: tabular-nums;
}

.traffic-table td:nth-child(n+2) { text-align: right; }

.traffic-chart {
  height: 60px;
  display: flex; align-items: flex-end; gap: 3px;
}

.traffic-bar {
  flex: 1;
  border-radius: 3px 3px 0 0;
  transition: height 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  position: relative;
  cursor: default;
}

.traffic-bar:hover { opacity: 0.8; }

.traffic-bar__label {
  position: absolute;
  bottom: -14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 8px;
  color: var(--deck-muted);
  white-space: nowrap;
}

.traffic-bar__value {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 8px;
  font-weight: 600;
  color: var(--deck-text);
  white-space: nowrap;
}

/* --- Conclusions Screen --- */
.conclusions-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.conclusion-card {
  display: grid; gap: 8px;
  padding: 14px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
  transition: all var(--transition-smooth);
}

.conclusion-card:hover {
  box-shadow: var(--deck-shadow);
  transform: translateY(-2px);
}

.conclusion-card--full { grid-column: 1 / -1; }

.conclusion-card--highlight {
  background: linear-gradient(135deg, rgba(45,45,186,0.04), rgba(45,45,186,0.02));
  border-color: rgba(45,45,186,0.2);
}

.conclusion-card__number {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--deck-accent);
  color: #fff;
  font-size: 12px; font-weight: 700;
}

.conclusion-card__title {
  font-size: 14px; font-weight: 700;
  line-height: 1.25;
}

.conclusion-card__text {
  margin: 0; font-size: 12px; line-height: 1.5;
  color: var(--deck-muted);
}

.conclusion-card__metric {
  display: flex; align-items: baseline; gap: 6px;
}

.conclusion-card__metric-value {
  font-size: 28px; font-weight: 700;
  color: var(--deck-accent);
  line-height: 1;
}

.conclusion-card__metric-label {
  font-size: 11px; color: var(--deck-muted);
}

/* --- Recommendation Card --- */
.recommendation-list { display: grid; gap: 6px; }

.recommendation-item {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 8px; align-items: start;
  padding: 8px;
  border-radius: 8px;
  background: var(--deck-accent-bg);
}

.recommendation-item__icon {
  display: flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--deck-accent);
  color: #fff;
  font-size: 11px;
}

.recommendation-item__text {
  font-size: 11px; line-height: 1.45;
  color: var(--deck-text);
}

.recommendation-item__text strong {
  color: var(--deck-accent);
}

/* --- Reputation Screens --- */
.reputation-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.reputation-card {
  display: grid; gap: 10px;
  padding: 14px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
  transition: all var(--transition-smooth);
}

.reputation-card:hover {
  box-shadow: var(--deck-shadow);
  transform: translateY(-1px);
}

.reputation-card__title {
  font-size: 13px; font-weight: 600;
}

.reputation-card--full { grid-column: 1 / -1; }

.reputation-query-note {
  font-size: 11px;
  line-height: 1.45;
  color: var(--deck-muted);
}

.reputation-query-list {
  display: grid;
  gap: 6px;
}

.reputation-query-list--wide {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.reputation-query-item {
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(45,45,186,0.10);
  background: rgba(45,45,186,0.04);
  font-size: 10px;
  line-height: 1.4;
  color: var(--deck-text);
}

.sentiment-model-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.sentiment-mini-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
}

.sentiment-mini-card__title {
  font-size: 12px;
  font-weight: 600;
}

.sentiment-mini-card__meta {
  margin-top: 4px;
  font-size: 10px;
  color: var(--deck-muted);
  line-height: 1.45;
}

.final-search-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.final-model-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.8fr);
  gap: 12px;
  align-items: start;
}

/* Knowledge depth stacked bars */
.depth-bar {
  display: flex;
  height: 20px;
  border-radius: 4px;
  overflow: hidden;
  background: rgba(45,45,186,0.06);
}

.depth-bar__segment {
  height: 100%;
  transition: width 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  position: relative;
  cursor: pointer;
}

.depth-bar__segment--high {
  background: var(--deck-success);
}

.depth-bar__segment--medium {
  background: var(--deck-warning);
}

.depth-bar__segment--low {
  background: var(--deck-danger);
}

/* Sentiment donut */
.sentiment-ring {
  width: 64px; height: 64px;
  border-radius: 50%;
  position: relative;
  flex-shrink: 0;
}

.sentiment-ring::after {
  content: '';
  position: absolute;
  inset: 16px;
  border-radius: 50%;
  background: var(--deck-surface);
}

/* Pros/Cons cards */
.pros-cons-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.pro-card, .con-card {
  display: grid; gap: 6px;
  padding: 14px;
  border-radius: var(--deck-radius-sm);
}

.pro-card {
  border: 1px solid rgba(12,167,137,0.2);
  background: rgba(12,167,137,0.03);
}

.con-card {
  border: 1px solid rgba(217,54,62,0.2);
  background: rgba(217,54,62,0.03);
}

.pro-item, .con-item {
  display: grid;
  grid-template-columns: 6px 1fr;
  gap: 8px; align-items: start;
  font-size: 11px; line-height: 1.45;
}

.pro-item::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--deck-success);
  margin-top: 4px;
}

.con-item::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--deck-danger);
  margin-top: 4px;
}

/* --- Footer --- */
.deck-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 16px;
  min-height: 48px;
  border-radius: var(--deck-radius);
  background: var(--deck-surface);
  border: 1px solid var(--deck-border);
  box-shadow: var(--deck-shadow-sm);
  position: fixed;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;
  max-width: min(calc(100% - 32px), 1768px);
  width: min(calc(100% - 32px), 1768px);
}

.deck-footer__left, .deck-footer__nav {
  display: flex; align-items: center; gap: 10px;
}

.deck-footer__counter {
  min-width: 44px; text-align: center;
  font-size: 13px; color: var(--deck-muted);
}

.deck-footer__counter span {
  color: var(--deck-text); font-weight: 600;
}

/* --- Buttons --- */
.ig-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 7px 16px;
  border: none; border-radius: 8px;
  font-size: 12px; font-weight: 600;
  cursor: pointer;
  transition: all var(--transition-smooth);
  outline: none;
  text-decoration: none;
}

.ig-btn:disabled {
  opacity: 0.4; cursor: default;
}

.ig-btn--primary {
  background: var(--deck-accent);
  color: #fff;
  box-shadow: 0 2px 8px rgba(45,45,186,0.25);
}

.ig-btn--primary:hover:not(:disabled) {
  background: var(--deck-accent-light);
  box-shadow: 0 4px 16px rgba(45,45,186,0.35);
  transform: translateY(-1px);
}

.ig-btn--outline {
  background: transparent;
  color: var(--deck-text);
  border: 1px solid var(--deck-border-strong);
}

.pdf-export-mode,
.pdf-export-mode body {
  overflow: visible;
  width: auto;
  height: auto;
  background: var(--deck-bg);
}

.pdf-export-mode .deck {
  width: auto;
  height: auto;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.pdf-export-mode .deck__shell {
  width: auto;
  height: auto;
  max-width: none;
  padding: 0;
  display: block;
}

.pdf-export-mode .deck-header,
.pdf-export-mode .deck-progress,
.pdf-export-mode .deck-footer {
  display: none !important;
}

/* PDF-only header for slides that have no section banner (intro/methodology) */
.slide-pdf-header {
  display: none;
}

.pdf-export-mode .slide-pdf-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  margin: 0 0 8px;
  padding: 8px 14px;
  border-radius: 10px;
  background: linear-gradient(135deg, #1a1a6e 0%, #2d2dba 100%);
  color: #fff;
  box-shadow: 0 4px 20px rgba(45,45,186,0.25);
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.pdf-export-mode .slide-pdf-header__left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.pdf-export-mode .slide-pdf-header__agency {
  width: 110px;
  height: auto;
  display: block;
}

.pdf-export-mode .slide-pdf-header__meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.pdf-export-mode .slide-pdf-header__kicker {
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
}

.pdf-export-mode .slide-pdf-header__name {
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  line-height: 1.2;
}

.pdf-export-mode .slide-pdf-header__date {
  font-size: 12px;
  color: rgba(255,255,255,0.7);
}

.pdf-export-mode .deck-main {
  position: static;
  min-height: 0;
  overflow: visible;
  border-radius: 0;
}

.pdf-export-mode .slide,
.pdf-export-mode .slide--active {
  position: relative;
  inset: auto;
  opacity: 1;
  transform: none;
  pointer-events: auto;
  overflow: visible;
  min-height: 0;
  height: auto;
  page-break-after: always;
  break-after: page;
  isolation: isolate;
  background: var(--deck-bg);
}

.pdf-export-mode .slide:last-of-type {
  page-break-after: auto;
  break-after: auto;
}

.pdf-export-mode .screen {
  min-height: 0;
  background: var(--deck-bg);
  align-content: start;
  padding: 6px 8px;
  gap: 4px;
}

.pdf-export-mode .screen--intro-centered,
.pdf-export-mode .screen--methodology-centered {
  align-content: start;
}

.pdf-export-mode .screen__body {
  gap: 8px;
}

.pdf-export-mode .screen--intro-centered .screen__body--intro {
  align-self: start;
  align-items: start;
}

.pdf-export-mode .screen--intro-centered .intro-side {
  justify-self: start;
}

.pdf-export-mode * {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
}

.pdf-export-mode .reputation-card,
.pdf-export-mode .traffic-card,
.pdf-export-mode .channel-panel,
.pdf-export-mode .metric-box,
.pdf-export-mode .conclusion48-kpi,
.pdf-export-mode .conclusion48-panel,
.pdf-export-mode .alice-screen-summary,
.pdf-export-mode .sentiment-mini-card,
.pdf-export-mode .pro-card,
.pdf-export-mode .con-card,
.pdf-export-mode .cluster-table-panel,
.pdf-export-mode .cluster-table-wrap,
.pdf-export-mode .wildcard-table-wrap,
.pdf-export-mode .source-table-wrap,
.pdf-export-mode .screen__body > section,
.pdf-export-mode .screen__body > div {
  background: #ffffff !important;
  box-shadow: none !important;
}

.pdf-export-mode .screen__body > * {
  break-inside: avoid;
}

/* Restore section-banner gradient in PDF export (it is a direct child of screen__body and would otherwise be flattened to white) */
.pdf-export-mode .screen__body > .alice-section-banner {
  background: linear-gradient(90deg, #4f4fe0 0%, #2d2dba 50%, #1a1a6e 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 8px 32px rgba(45,45,186,0.30), inset 0 1px 0 rgba(255,255,255,0.08) !important;
}

.pdf-export-mode .screen__body > .alice-section-banner .alice-section-banner__title,
.pdf-export-mode .screen__body > .alice-section-banner .alice-section-banner__desc,
.pdf-export-mode .screen__body > .alice-section-banner .alice-section-banner__label {
  color: #ffffff !important;
}

.pdf-export-mode .screen__body > * {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

/* E.3 compactness pass: tighten PDF export layout without changing data/HTML/JS */
.pdf-export-mode .screen {
  gap: 6px;
  padding: 6px 8px;
}

.pdf-export-mode .screen__body {
  gap: 4px;
}

.pdf-export-mode .metric-box,
.pdf-export-mode .model-card,
.pdf-export-mode .reputation-card,
.pdf-export-mode .traffic-card,
.pdf-export-mode .conclusion-card,
.pdf-export-mode .taxonomy-item,
.pdf-export-mode .methodology-card,
.pdf-export-mode .alice-screen-summary,
.pdf-export-mode .sentiment-mini-card,
.pdf-export-mode .pro-card,
.pdf-export-mode .con-card,
.pdf-export-mode .cluster-table-panel,
.pdf-export-mode .cluster-table-wrap,
.pdf-export-mode .wildcard-table-wrap,
.pdf-export-mode .source-table-wrap,
.pdf-export-mode .channel-panel,
.pdf-export-mode .conclusion48-kpi,
.pdf-export-mode .conclusion48-panel,
.pdf-export-mode .screen__body > section,
.pdf-export-mode .screen__body > div {
  padding: 6px 8px;
}

.pdf-export-mode .screen__grid--metrics-compact .metric-box {
  padding: 6px 8px;
}

.pdf-export-mode .screen__grid--metrics,
.pdf-export-mode .search-comparison,
.pdf-export-mode .model-grid,
.pdf-export-mode .traffic-grid,
.pdf-export-mode .reputation-grid,
.pdf-export-mode .pros-cons-grid,
.pdf-export-mode .sentiment-model-grid,
.pdf-export-mode .final-search-grid,
.pdf-export-mode .final-model-card,
.pdf-export-mode .methodology-scenarios,
.pdf-export-mode .taxonomy-block,
.pdf-export-mode .search-detail-grid,
.pdf-export-mode .models-hero,
.pdf-export-mode .traffic-hero,
.pdf-export-mode .search-hero,
.pdf-export-mode .leaderboard-list,
.pdf-export-mode .ig-viz-bars,
.pdf-export-mode .ig-viz-tags,
.pdf-export-mode .model-card__bars,
.pdf-export-mode .screen__grid--metrics-compact {
  gap: 4px;
}

/* User-facing missing-payload error state */
.slide-payload-error {
  margin: 16px;
  padding: 14px 16px;
  border-radius: 10px;
  background: #fff0f0;
  border: 1px solid #d9363e;
  color: #8b1e24;
  font-size: 13px;
  line-height: 1.45;
}

.slide-payload-error strong {
  display: block;
  margin-bottom: 6px;
  font-weight: 700;
}

.slide-payload-error code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 11px;
  background: rgba(217, 54, 62, 0.08);
  padding: 1px 4px;
  border-radius: 4px;
}

.slide-payload-error__hint {
  margin-top: 6px;
  font-size: 11px;
  color: #a6545a;
}

@page {
  size: A3 landscape;
  margin: 0;
}

.ig-btn--outline:hover:not(:disabled) {
  background: var(--deck-accent-bg);
  border-color: var(--deck-accent);
  color: var(--deck-accent);
}

/* --- Animations --- */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes slideInLeft {
  from { opacity: 0; transform: translateX(-20px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes slideInRight {
  from { opacity: 0; transform: translateX(20px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes countUp {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes barGrow {
  from { width: 0; }
}

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(45,45,186,0.2); }
  50% { box-shadow: 0 0 0 8px rgba(45,45,186,0); }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.animate-in {
  animation: fadeInUp 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.animate-in-delay-1 { animation-delay: 0.05s; opacity: 0; }
.animate-in-delay-2 { animation-delay: 0.1s; opacity: 0; }
.animate-in-delay-3 { animation-delay: 0.15s; opacity: 0; }
.animate-in-delay-4 { animation-delay: 0.2s; opacity: 0; }
.animate-in-delay-5 { animation-delay: 0.25s; opacity: 0; }
.animate-in-delay-6 { animation-delay: 0.3s; opacity: 0; }

/* Stagger animation for slide children */
.slide--active .screen__body > * {
  animation: fadeInUp 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.slide--active .screen__body > *:nth-child(1) { animation-delay: 0.05s; }
.slide--active .screen__body > *:nth-child(2) { animation-delay: 0.12s; }
.slide--active .screen__body > *:nth-child(3) { animation-delay: 0.19s; }
.slide--active .screen__body > *:nth-child(4) { animation-delay: 0.26s; }

/* Card hover micro-interaction */
.metric-box, .model-card, .conclusion-card, .traffic-card,
.reputation-card, .methodology-card, .taxonomy-item {
  will-change: transform;
}

/* --- Responsive --- */
@media (max-width: 1260px) {
  .screen__body--intro,
  .screen__body--methodology { grid-template-columns: 1fr; }
  .methodology-scenarios { grid-template-columns: 1fr; }
  .screen__grid--metrics,
  .search-comparison,
  .search-hero,
  .search-detail-grid,
  .models-hero,
  .traffic-hero { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .leaderboard-panel { grid-column: 1 / -1; }
  .model-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .traffic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reputation-grid { grid-template-columns: 1fr; }
  .pros-cons-grid { grid-template-columns: 1fr; }
  .sentiment-model-grid { grid-template-columns: 1fr; }
  .final-search-grid { grid-template-columns: 1fr; }
  .final-model-card { grid-template-columns: 1fr; }
}

@media (max-width: 980px) {
  /* Legacy template grids collapse; navigation stays single-slide. */
  .methodology-cards, .taxonomy-grid,
  .screen__grid--metrics, .passport-breakdown,
  .search-comparison, .search-hero, .search-detail-grid,
  .model-grid, .traffic-grid, .conclusions-grid,
  .sov-summary { grid-template-columns: 1fr; }
}

/* --- Interactive Donut Chart (page 4) --- */
.interactive-donut {
  position: relative;
  width: 100%;
  max-height: 290px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
}

.interactive-donut--compact {
  max-height: 245px;
}

.interactive-donut[data-size="large"] {
  max-height: 330px;
}

.interactive-donut[data-size="xlarge"] {
  max-height: 380px;
}

.interactive-donut svg {
  overflow: hidden;
}

.donut-tooltip {
  position: fixed;
  padding: 6px 12px;
  border-radius: 8px;
  background: var(--deck-text);
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  white-space: normal;
  max-width: 320px;
  pointer-events: none;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 100;
  box-shadow: 0 4px 16px rgba(10,10,60,0.25);
  line-height: 1.4;
}

.donut-tooltip--visible {
  opacity: 1;
  transform: translateY(0);
}

.donut-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 10px;
  margin-top: 10px;
}

.donut-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  color: var(--deck-muted);
  transition: opacity 0.2s ease, color 0.2s ease;
}

.donut-legend__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.donut-legend__dot--zero {
  background: transparent;
  border: 1px solid rgba(10,10,60,0.22);
}

.donut-legend__name {
  color: var(--deck-text);
  font-weight: 500;
}

.donut-legend__item--muted {
  opacity: 0.55;
}

.donut-zero-note {
  margin-top: 8px;
  font-size: 10px;
  line-height: 1.45;
  color: var(--deck-muted);
}

.cluster-table-panel {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
}

.slide[data-slide="18"] .cluster-table-panel,
.slide[data-slide="23"] .cluster-table-panel,
.slide[data-slide="28"] .cluster-table-panel,
.slide[data-slide="33"] .cluster-table-panel,
.slide[data-slide="38"] .cluster-table-panel,
.slide[data-slide="43"] .cluster-table-panel {
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr);
}

.slide[data-slide="18"] .cluster-table-wrap,
.slide[data-slide="23"] .cluster-table-wrap,
.slide[data-slide="28"] .cluster-table-wrap,
.slide[data-slide="33"] .cluster-table-wrap,
.slide[data-slide="38"] .cluster-table-wrap,
.slide[data-slide="43"] .cluster-table-wrap {
  min-height: 0;
}

.cluster-table-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}

.cluster-filter-chip {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.cluster-filter-chip span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(12,167,137,0.08);
  color: var(--deck-success);
  border: 1px solid rgba(12,167,137,0.16);
  font-size: 11px;
  font-weight: 600;
}

.cluster-filter-chip input {
  width: 14px;
  height: 14px;
  margin: 0 8px 0 0;
  accent-color: var(--deck-success);
  cursor: pointer;
}

.cluster-filter-chip--risk input {
  accent-color: var(--deck-danger);
}

.cluster-filter-chip--risk span {
  background: rgba(217,54,62,0.08);
  color: var(--deck-danger);
  border-color: rgba(217,54,62,0.16);
}

.cluster-filter-chip img {
  width: 14px;
  height: 14px;
  object-fit: contain;
}

.cluster-filter-chip input:not(:checked) + span {
  background: rgba(45,45,186,0.04);
  color: var(--deck-muted);
  border-color: rgba(45,45,186,0.10);
}

.cluster-product-filter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  font-size: 11px;
  color: var(--deck-muted);
  font-weight: 600;
}

.cluster-product-filter select {
  min-width: 170px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid var(--deck-border);
  background: #fff;
  color: var(--deck-text);
  font-size: 11px;
  font-weight: 600;
}

.cluster-table-wrap {
  border: 1px solid var(--deck-border);
  border-radius: 12px;
  overflow: hidden;
}

.cluster-table th,
.cluster-table td {
  padding: 9px 10px;
  vertical-align: top;
}

.cluster-table tbody tr + tr td {
  border-top: 1px solid rgba(45,45,186,0.08);
}

.cluster-table__cluster-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--deck-text);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  text-align: left;
}

.cluster-table__type {
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
}

.cluster-table__type--strong {
  color: var(--deck-success);
}

.cluster-table__type--weak {
  color: var(--deck-danger);
}

.cluster-table__nested {
  background: rgba(45,45,186,0.03);
}

.cluster-table__nested-inner {
  padding: 2px 0 2px 18px;
}

.cluster-table__nested-table {
  width: 100%;
  border-collapse: collapse;
}

.cluster-table__nested-table th,
.cluster-table__nested-table td {
  padding: 7px 8px;
  font-size: 10px;
  border-top: 1px solid rgba(45,45,186,0.08);
}

.cluster-table__nested-table th {
  color: var(--deck-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cluster-table__empty {
  text-align: center;
  color: var(--deck-muted);
  font-size: 11px;
  padding: 16px 10px;
}

.wildcard-table td:last-child,
.wildcard-table th:last-child {
  text-align: right;
  white-space: nowrap;
}

.wildcard-table th,
.wildcard-table td {
  font-size: 10px;
}

.wildcard-table__brand {
  font-weight: 700;
  color: var(--deck-text);
}

.wildcard-table__products {
  display: grid;
  gap: 4px;
  color: var(--deck-text);
}

.wildcard-table__product-line {
  line-height: 1.35;
}

.wildcard-table__count {
  font-weight: 700;
  color: var(--deck-accent);
}

.wildcard-table-wrap {
  display: block;
  height: 400px;
  max-height: 400px;
  overflow-y: scroll;
  overflow-x: hidden;
}

.slide[data-slide="7"] .wildcard-table-wrap,
.slide[data-slide="13"] .wildcard-table-wrap,
.slide[data-slide="19"] .wildcard-table-wrap,
.slide[data-slide="24"] .wildcard-table-wrap,
.slide[data-slide="29"] .wildcard-table-wrap,
.slide[data-slide="34"] .wildcard-table-wrap,
.slide[data-slide="39"] .wildcard-table-wrap,
.slide[data-slide="44"] .wildcard-table-wrap {
  width: 65%;
  margin: 0;
}

.slide[data-slide="7"] .wildcard-table th:nth-child(1),
.slide[data-slide="7"] .wildcard-table td:nth-child(1),
.slide[data-slide="13"] .wildcard-table th:nth-child(1),
.slide[data-slide="13"] .wildcard-table td:nth-child(1),
.slide[data-slide="19"] .wildcard-table th:nth-child(1),
.slide[data-slide="19"] .wildcard-table td:nth-child(1),
.slide[data-slide="24"] .wildcard-table th:nth-child(1),
.slide[data-slide="24"] .wildcard-table td:nth-child(1),
.slide[data-slide="29"] .wildcard-table th:nth-child(1),
.slide[data-slide="29"] .wildcard-table td:nth-child(1),
.slide[data-slide="34"] .wildcard-table th:nth-child(1),
.slide[data-slide="34"] .wildcard-table td:nth-child(1),
.slide[data-slide="39"] .wildcard-table th:nth-child(1),
.slide[data-slide="39"] .wildcard-table td:nth-child(1),
.slide[data-slide="44"] .wildcard-table th:nth-child(1),
.slide[data-slide="44"] .wildcard-table td:nth-child(1) {
  width: 28%;
}

.slide[data-slide="7"] .wildcard-table th:nth-child(2),
.slide[data-slide="7"] .wildcard-table td:nth-child(2),
.slide[data-slide="13"] .wildcard-table th:nth-child(2),
.slide[data-slide="13"] .wildcard-table td:nth-child(2),
.slide[data-slide="19"] .wildcard-table th:nth-child(2),
.slide[data-slide="19"] .wildcard-table td:nth-child(2),
.slide[data-slide="24"] .wildcard-table th:nth-child(2),
.slide[data-slide="24"] .wildcard-table td:nth-child(2),
.slide[data-slide="29"] .wildcard-table th:nth-child(2),
.slide[data-slide="29"] .wildcard-table td:nth-child(2),
.slide[data-slide="34"] .wildcard-table th:nth-child(2),
.slide[data-slide="34"] .wildcard-table td:nth-child(2),
.slide[data-slide="39"] .wildcard-table th:nth-child(2),
.slide[data-slide="39"] .wildcard-table td:nth-child(2),
.slide[data-slide="44"] .wildcard-table th:nth-child(2),
.slide[data-slide="44"] .wildcard-table td:nth-child(2) {
  width: 60%;
}

.slide[data-slide="7"] .wildcard-table th:nth-child(3),
.slide[data-slide="7"] .wildcard-table td:nth-child(3),
.slide[data-slide="13"] .wildcard-table th:nth-child(3),
.slide[data-slide="13"] .wildcard-table td:nth-child(3),
.slide[data-slide="19"] .wildcard-table th:nth-child(3),
.slide[data-slide="19"] .wildcard-table td:nth-child(3),
.slide[data-slide="24"] .wildcard-table th:nth-child(3),
.slide[data-slide="24"] .wildcard-table td:nth-child(3),
.slide[data-slide="29"] .wildcard-table th:nth-child(3),
.slide[data-slide="29"] .wildcard-table td:nth-child(3),
.slide[data-slide="34"] .wildcard-table th:nth-child(3),
.slide[data-slide="34"] .wildcard-table td:nth-child(3),
.slide[data-slide="39"] .wildcard-table th:nth-child(3),
.slide[data-slide="39"] .wildcard-table td:nth-child(3),
.slide[data-slide="44"] .wildcard-table th:nth-child(3),
.slide[data-slide="44"] .wildcard-table td:nth-child(3) {
  width: 12%;
}

.wildcard-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(255,255,255,0.98);
  color: var(--deck-muted);
  border-bottom: 1px solid var(--deck-border);
  box-shadow: inset 0 -1px 0 rgba(32,53,126,0.06);
}

.slide[data-slide="18"] .cluster-table thead th,
.slide[data-slide="23"] .cluster-table thead th,
.slide[data-slide="28"] .cluster-table thead th,
.slide[data-slide="33"] .cluster-table thead th,
.slide[data-slide="38"] .cluster-table thead th,
.slide[data-slide="43"] .cluster-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding-top: 12px;
  padding-bottom: 12px;
  background: rgba(255,255,255,0.98);
  color: var(--deck-muted);
  font-size: 11px;
  font-weight: 700;
  border-bottom: 1px solid var(--deck-border);
  box-shadow: inset 0 -1px 0 rgba(32,53,126,0.06);
}

.source-cluster-table-wrap {
  max-height: 420px;
  overflow: auto;
}

.source-analysis-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 12px;
  align-items: start;
}

.source-cluster-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(255,255,255,0.98);
  color: var(--deck-muted);
  border-bottom: 1px solid var(--deck-border);
  box-shadow: inset 0 -1px 0 rgba(32,53,126,0.06);
}

.source-cluster-table th,
.source-cluster-table td {
  padding: 7px 8px;
  font-size: 10px;
  line-height: 1.3;
  vertical-align: top;
}

.source-cluster-table th:nth-child(1),
.source-cluster-table td:nth-child(1) {
  width: 14%;
}

.source-cluster-table th:nth-child(2),
.source-cluster-table td:nth-child(2) {
  width: 22%;
}

.source-cluster-table th:nth-child(3),
.source-cluster-table td:nth-child(3) {
  width: 64%;
}

.source-cluster-list {
  display: grid;
  gap: 4px;
  color: var(--deck-text);
}

.source-cluster-list div {
  display: inline-flex;
}

.source-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.source-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
  white-space: nowrap;
}

.source-badge--own {
  background: #b85766;
}

.source-badge--ugc {
  background: #d9a100;
}

.source-badge--media {
  background: #2563eb;
}

.source-badge--marketplace {
  background: #0f9f7a;
}

.source-badge--other {
  background: #8a94a6;
}

.source-summary-card {
  margin-top: 0;
  padding: 12px;
  min-height: 420px;
}

/* --- Final block polish: slides 45-49 --- */
.slide[data-slide="45"] .screen__body,
.slide[data-slide="46"] .screen__body,
.slide[data-slide="47"] .screen__body,
.slide[data-slide="48"] .screen__body,
.slide[data-slide="49"] .screen__body {
  gap: 8px !important;
}

.slide[data-slide="45"] .search-hero__text,
.slide[data-slide="46"] .search-hero__text,
.slide[data-slide="47"] .search-hero__text,
.slide[data-slide="48"] .search-hero__text,
.slide[data-slide="49"] .search-hero__text {
  font-size: 11px;
  line-height: 1.42;
}

.slide[data-slide="45"] .reputation-card,
.slide[data-slide="46"] .reputation-card,
.slide[data-slide="47"] .reputation-card,
.slide[data-slide="48"] .reputation-card,
.slide[data-slide="49"] .traffic-card {
  gap: 8px;
  padding: 12px;
}

.slide[data-slide="45"] .alice-screen-summary,
.slide[data-slide="46"] .alice-screen-summary,
.slide[data-slide="47"] .alice-screen-summary,
.slide[data-slide="49"] .alice-screen-summary {
  margin-top: 0;
  padding: 10px 12px;
  font-size: 11px;
  line-height: 1.45;
}

.slide[data-slide="45"] .reputation-card__title,
.slide[data-slide="46"] .reputation-card__title,
.slide[data-slide="47"] .reputation-card__title,
.slide[data-slide="48"] .reputation-card__title,
.slide[data-slide="49"] .traffic-card__title {
  font-size: 12px;
}

.slide[data-slide="45"] .depth-bar {
  height: 18px;
}

.slide[data-slide="45"] .reputation-card > div[style*="font-size: 11px"],
.slide[data-slide="47"] .reputation-card > div[style*="font-size: 11px"] {
  line-height: 1.4;
}

.slide[data-slide="46"] .sentiment-model-grid {
  gap: 8px;
}

.slide[data-slide="46"] .sentiment-mini-card {
  gap: 12px;
  padding: 12px;
}

.slide[data-slide="46"] .sentiment-ring {
  width: 64px;
  height: 64px;
}

.slide[data-slide="46"] .sentiment-ring::after {
  inset: 16px;
}

.slide[data-slide="46"] .sentiment-mini-card__title {
  font-size: 12px;
}

.slide[data-slide="46"] .sentiment-mini-card__meta {
  margin-top: 3px;
  font-size: 10px;
  line-height: 1.35;
}

.slide[data-slide="47"] .pros-cons-grid {
  gap: 10px;
}

.slide[data-slide="47"] .pro-card,
.slide[data-slide="47"] .con-card {
  padding: 16px;
  gap: 8px;
}

.slide[data-slide="47"] .pro-item,
.slide[data-slide="47"] .con-item {
  font-size: 11px;
  line-height: 1.45;
}

.reputation-screen-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

.reputation-trace-controls {
  margin-top: -2px;
}

.reputation-trace-summary {
  display: grid;
  gap: 6px;
}

.reputation-trace-pill {
  padding: 7px 10px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.3;
}

.reputation-trace-pill--danger {
  background: rgba(217,54,62,0.08);
  color: var(--deck-danger);
}

.reputation-trace-pill--warning {
  background: rgba(244,180,0,0.12);
  color: #8a6400;
}

.reputation-trace-wrap {
  border: 1px solid rgba(45,45,186,0.10);
  border-radius: 10px;
  overflow: auto;
  max-height: 320px;
  background: rgba(255,255,255,0.88);
}

.reputation-trace-table {
  width: 100%;
  border-collapse: collapse;
}

.reputation-trace-table th,
.reputation-trace-table td {
  padding: 8px 9px;
  font-size: 10px;
  line-height: 1.35;
  vertical-align: top;
}

.reputation-trace-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(255,255,255,0.98);
  color: var(--deck-muted);
  border-bottom: 1px solid var(--deck-border);
  box-shadow: inset 0 -1px 0 rgba(32,53,126,0.06);
}

.reputation-trace-table tbody tr + tr td {
  border-top: 1px solid rgba(45,45,186,0.08);
}

.reputation-trace-table th:first-child,
.reputation-trace-table td:first-child {
  width: 132px;
}

.reputation-trace-table th:nth-child(2),
.reputation-trace-table td:nth-child(2) {
  width: 380px;
}

.reputation-trace-model {
  font-weight: 700;
  color: var(--deck-text);
}

.reputation-trace-meta {
  margin-bottom: 6px;
  font-size: 9px;
  font-weight: 700;
  color: var(--deck-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.reputation-trace-list,
.reputation-prompt-list {
  display: grid;
  gap: 4px;
}

.reputation-trace-list a {
  color: var(--deck-accent);
  text-decoration: none;
  word-break: break-word;
}

.reputation-trace-list a:hover {
  text-decoration: underline;
}

.reputation-trace-empty {
  padding: 18px 12px;
  text-align: center;
  color: var(--deck-muted);
  font-size: 11px;
}

.reputation-prompt-item {
  padding: 5px 7px;
  border-radius: 7px;
  background: rgba(45,45,186,0.04);
  color: var(--deck-text);
}

.reputation-trace-query {
  padding: 6px 8px;
  border-radius: 8px;
  background: rgba(45,45,186,0.04);
  color: var(--deck-text);
  line-height: 1.45;
}

.slide--conclusion-48 .screen {
  background: linear-gradient(180deg, #fbfcfe 0%, #f3f6fb 100%);
}

.conclusion48 {
  display: grid;
  grid-template-rows: auto auto auto auto auto;
  gap: 14px;
}

.conclusion48__hero {
  display: grid;
  gap: 6px;
  margin-bottom: 4px;
}

.conclusion48__subtitle {
  margin: 0;
  max-width: 900px;
  font-size: 14px;
  line-height: 1.45;
  color: var(--deck-muted);
}

.conclusion48__kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.conclusion48-kpi,
.conclusion48-panel,
.conclusion48-ratio,
.conclusion48-intent,
.conclusion48-niche {
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 12px 34px rgba(15, 23, 42, 0.06);
}

.conclusion48-kpi {
  min-height: 86px;
  padding: 12px 14px;
  border-radius: 18px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 6px;
  background: rgba(255, 255, 255, 0.82);
}

.conclusion48-kpi--muted {
  background: linear-gradient(180deg, rgba(226, 232, 240, 0.65), rgba(255, 255, 255, 0.88));
}

.conclusion48-kpi--success {
  background: linear-gradient(180deg, rgba(45, 45, 186, 0.08), rgba(255, 255, 255, 0.92));
}

.conclusion48-kpi--accent {
  background: linear-gradient(180deg, rgba(45, 45, 186, 0.12), rgba(255, 255, 255, 0.92));
}

.conclusion48-kpi--dark {
  background: linear-gradient(180deg, rgba(31, 41, 55, 0.08), rgba(255, 255, 255, 0.92));
}

.conclusion48-kpi__value {
  font-size: clamp(28px, 2.5vw, 38px);
  line-height: 0.95;
  font-weight: 800;
  letter-spacing: -0.05em;
  color: #111827;
}

.conclusion48-kpi__label {
  font-size: 12px;
  line-height: 1.35;
  color: var(--deck-muted);
  max-width: 140px;
}

.conclusion48__main {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: 12px;
}

.conclusion48__bottom {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 12px;
}

.conclusion48-panel {
  padding: 16px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(8px);
}

.conclusion48-panel__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.conclusion48-panel__title {
  margin: 0;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 700;
}

.conclusion48-inline-kpis {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.conclusion48-inline-kpis span {
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(45, 45, 186, 0.06);
  font-size: 11px;
  line-height: 1.2;
  color: #374151;
}

.conclusion48-bars,
.conclusion48-models {
  display: grid;
  gap: 10px;
}

.conclusion48-bars__row,
.conclusion48-models__row {
  display: grid;
  grid-template-columns: 96px 1fr 56px;
  align-items: center;
  gap: 10px;
}

.conclusion48-bars__name,
.conclusion48-models__name {
  font-size: 12px;
  line-height: 1.25;
  color: #111827;
}

.conclusion48-bars__track,
.conclusion48-models__track {
  height: 12px;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.18);
  overflow: hidden;
}

.conclusion48-bars__fill,
.conclusion48-models__fill {
  height: 100%;
  border-radius: inherit;
}

.conclusion48-bars__fill--alice {
  width: 2.1%;
  background: linear-gradient(90deg, #94a3b8 0%, #cbd5e1 100%);
}

.conclusion48-bars__fill--models {
  width: 62.2%;
  background: linear-gradient(90deg, #2d2dba 0%, #4f46e5 100%);
}

.conclusion48-bars__fill--google {
  width: 100%;
  background: linear-gradient(90deg, #3949ab 0%, #2d2dba 100%);
}

.conclusion48-bars__value,
.conclusion48-models__value {
  font-size: 12px;
  font-weight: 700;
  text-align: right;
  color: #111827;
}

.conclusion48-ratios {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.conclusion48-ratio {
  padding: 12px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(17, 24, 39, 0.03), rgba(45, 45, 186, 0.05));
}

.conclusion48-ratio__value {
  font-size: 28px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: #111827;
}

.conclusion48-ratio__label {
  margin-top: 6px;
  font-size: 11px;
  line-height: 1.3;
  color: var(--deck-muted);
}

.conclusion48-models__fill {
  background: linear-gradient(90deg, #5c6bc0 0%, #2d2dba 100%);
}

.conclusion48-models__row--zero .conclusion48-models__track {
  background: rgba(203, 213, 225, 0.35);
}

.conclusion48-models__row--zero .conclusion48-models__value,
.conclusion48-models__row--zero .conclusion48-models__name {
  color: #94a3b8;
}

.conclusion48-intents {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.conclusion48-intent {
  padding: 14px 12px;
  border-radius: 18px;
  text-align: center;
  background: linear-gradient(180deg, rgba(45, 45, 186, 0.04), rgba(255, 255, 255, 0.90));
}

.conclusion48-intent__name {
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
}

.conclusion48-intent__metric {
  font-size: 30px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: #111827;
}

.conclusion48-intent__caption {
  margin-top: 4px;
  font-size: 10px;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--deck-muted);
}

.conclusion48-intent__submetric {
  margin-top: 10px;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 700;
  color: #2d2dba;
}

.conclusion48-niches {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.conclusion48-niche {
  padding: 14px 12px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(243, 246, 251, 0.92));
}

.conclusion48-niche--primary {
  background: linear-gradient(180deg, rgba(45, 45, 186, 0.08), rgba(255, 255, 255, 0.94));
}

.conclusion48-niche__title {
  min-height: 34px;
  font-size: 12px;
  line-height: 1.35;
  font-weight: 700;
  color: #111827;
}

.conclusion48-niche__stats {
  margin-top: 6px;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 800;
  color: #111827;
}

.conclusion48__footer {
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
}

.conclusion48__footer-text {
  font-size: 13px;
  line-height: 1.4;
  font-weight: 700;
  color: #111827;
}

@media (max-width: 1100px) {
  .conclusion48__kpis,
  .conclusion48-niches {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .conclusion48__main,
  .conclusion48__bottom,
  .conclusion48-intents,
  .conclusion48-ratios {
    grid-template-columns: 1fr;
  }
}

.slide[data-slide="49"] .traffic-grid {
  gap: 8px;
}

.slide[data-slide="49"] .traffic-card__subtitle {
  font-size: 10px;
}

.slide[data-slide="49"] .traffic-chart {
  min-height: 190px;
}

.slide[data-slide="49"] .traffic-bar__value {
  font-size: 10px;
}

.slide[data-slide="49"] .traffic-bar__label {
  font-size: 9px;
}


.voice-brand {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  color: #fff;
  text-decoration: none;
}

.voice-brand:hover .voice-brand__name {
  color: rgba(255,255,255,.78);
}

.voice-brand__logo {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  object-fit: contain;
}

.voice-brand__name {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -.015em;
  line-height: 1;
  white-space: nowrap;
  transition: color var(--transition-smooth);
}

.deck-progress__item {
  text-decoration: none;
}

.deck-progress {
  grid-template-columns: repeat(10, minmax(0, 1fr));
}

a.deck-progress__item {
  width: 100%;
  box-sizing: border-box;
}

.deck-progress__stage-icon {
  width: 11px;
  height: 11px;
  flex: 0 0 11px;
  background-color: currentColor;
  -webkit-mask: var(--stage-icon) center / contain no-repeat;
  mask: var(--stage-icon) center / contain no-repeat;
}

.section-kicker.stage-kicker {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin: 0;
  gap: 8px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  font-size: clamp(22px, 2vw, 30px);
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-transform: none;
  font-weight: 700;
}

.stage-kicker__icon {
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  background-color: currentColor;
  -webkit-mask: var(--stage-icon) center / contain no-repeat;
  mask: var(--stage-icon) center / contain no-repeat;
}

.stage-kicker__text {
  min-width: 0;
}

/* Единый итоговый блок на экранах этапов CJM. */
.stage-conclusion {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(45, 45, 186, .18);
  border-radius: var(--deck-radius-sm);
  background: #fff;
  box-shadow: var(--deck-shadow-sm);
}

.stage-conclusion__icon {
  display: grid;
  min-height: 100%;
  place-items: center;
  background: var(--deck-accent);
}

.stage-conclusion__icon img {
  width: 28px;
  height: 28px;
  filter: brightness(0) invert(1);
}

.stage-conclusion > div:last-child {
  padding: 10px 14px 11px;
}

.stage-conclusion h2,
.stage-conclusion p {
  display: inline;
  margin: 0;
  color: var(--deck-text);
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: -.018em;
}

.stage-conclusion h2 { font-weight: 700; }
.stage-conclusion p { margin-left: 6px; }

/* Вводный вывод этапа занимает отдельную строку под заголовком. */
.selection-screen__intro,
.decision-screen__intro,
.compare-screen__intro,
.purchase-screen__intro,
.support-screen__intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 24px;
  row-gap: 0;
}

.selection-screen__intro > div,
.decision-screen__intro > div,
.compare-screen__intro > div,
.purchase-screen__intro > div,
.support-screen__intro > div {
  display: contents;
}

.selection-screen__intro .stage-kicker,
.decision-screen__intro .stage-kicker,
.compare-screen__intro .stage-kicker,
.purchase-screen__intro .stage-kicker,
.support-screen__intro .stage-kicker,
.selection-screen__lead,
.decision-screen__lead,
.compare-screen__lead,
.purchase-screen__lead,
.support-screen__lead {
  grid-column: 1 / -1;
  width: 100%;
  max-width: none;
  margin: 9px 0 0;
  font-size: 14px;
  line-height: 1.45;
}

.selection-screen__title,
.decision-screen__title,
.compare-screen__title,
.purchase-screen__title,
.support-screen__title {
  grid-column: 1;
}

.selection-screen__base,
.decision-screen__base,
.compare-screen__base,
.purchase-screen__base,
.support-screen__base {
  grid-column: 2;
  grid-row: 2;
  align-self: end;
}

@media (max-width: 720px) {
  .voice-brand__name { display: none; }
}

@media (max-width: 1100px) {
  .selection-screen__intro,
  .decision-screen__intro,
  .compare-screen__intro,
  .purchase-screen__intro,
  .support-screen__intro {
    grid-template-columns: 1fr;
  }

  .selection-screen__base,
  .decision-screen__base,
  .compare-screen__base,
  .purchase-screen__base,
  .support-screen__base {
    grid-column: 1;
    grid-row: auto;
  }
}

/* Мобильный режим: презентация становится обычной прокручиваемой страницей. */
/* Телефоны и планшеты в портретной ориентации: обычная прокручиваемая страница. */
@media (max-width: 900px) {
  html,
  body {
    height: auto;
    min-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
  }

  .deck {
    width: 100%;
    height: auto !important;
    min-height: 100dvh;
  }

  .deck__shell {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    height: auto !important;
    min-height: 0;
    padding: 8px 10px 16px !important;
    gap: 8px;
  }

  .deck-header {
    align-items: stretch;
    flex-direction: column;
    min-height: 0;
    padding: 10px 12px;
    gap: 9px;
  }

  .deck-header__left {
    width: 100%;
    flex-wrap: wrap;
    gap: 8px;
  }

  .voice-brand__name { display: inline; font-size: 12px; }
  .deck-header__meta { flex: 1 0 100%; gap: 3px; }
  .deck-header__name { font-size: 12px; line-height: 1.25; }
  .deck-header__date { align-self: flex-start; font-size: 12px; }

  .deck-progress {
    display: flex;
    width: calc(100% + 4px);
    margin-right: -4px;
    padding: 0 4px 4px 0;
    gap: 6px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .deck-progress::-webkit-scrollbar { display: none; }

  .deck-progress__item,
  a.deck-progress__item {
    width: auto;
    min-width: 112px;
    flex: 0 0 auto;
    padding: 7px 9px;
    font-size: 10px;
  }

  .deck-main {
    position: static;
    width: 100%;
    flex: 0 0 auto;
    min-height: 0 !important;
    overflow: visible;
  }

  .slide {
    position: static;
    inset: auto;
    display: none;
    height: auto;
    overflow: visible;
    transform: none;
    transition: none;
  }

  .slide--active { display: block; opacity: 1; }

  .screen {
    display: block !important;
    height: auto !important;
    min-height: 0;
    padding: 14px 4px 20px !important;
    overflow: visible !important;
  }

  .ig-btn { min-height: 44px; }

  .screen__body,
  .screen__body--intro,
  .screen__grid--metrics,
  .method-screen__bottom,
  .method-flow__steps,
  .measure-list,
  .cjm-map__stages,
  .need-screen__content,
  .selection-screen__grid,
  .selection-screen__bottom,
  .decision-screen__grid,
  .criteria-card,
  .layer-small-multiples,
  .compare-screen__bottom,
  .status-rows,
  .purchase-small-multiples,
  .purchase-screen__bottom,
  .local-rows,
  .action-flow,
  .support-screen__grid,
  .support-action__flow,
  .conclusion-screen__grid,
  .content-playbook,
  .content-actions,
  .channel-bars {
    grid-template-columns: 1fr !important;
  }

  .screen__body,
  .screen__body--intro,
  .method-screen__bottom,
  .need-screen__content,
  .selection-screen__grid,
  .selection-screen__bottom,
  .decision-screen__grid,
  .compare-screen__bottom,
  .purchase-screen__bottom,
  .support-screen__grid,
  .conclusion-screen__grid {
    gap: 12px;
  }

  .screen-01 .intro-copy { transform: none; }
  .screen-01__cover { height: min(62vw, 300px); margin-top: 16px; }
  .screen__grid--metrics { margin-top: 16px; }

  .method-screen__intro,
  .need-screen__intro,
  .selection-screen__intro,
  .decision-screen__intro,
  .compare-screen__intro,
  .purchase-screen__intro,
  .support-screen__intro,
  .conclusion-screen__intro { margin-bottom: 16px; }

  .cjm-map { overflow: visible; }
  .cjm-map__stages { height: auto; }
  .cjm-stage { min-height: 0; }
  .cjm-stage::after { display: none; }

  .need-screen__content,
  .need-insights,
  .brand-explorer { overflow: visible !important; }
  .need-screen__content { grid-template-rows: none !important; }
  .need-insights { grid-auto-flow: row; grid-auto-columns: auto; grid-template-rows: none !important; }
  .brand-explorer__scroll { max-height: 460px; }
  .need-insight-card { scroll-snap-align: none; }

  .section-kicker.stage-kicker {
    display: flex;
    width: 100%;
    max-width: 100%;
    /* Иконка этапа остаётся в одной строке с заголовком: переносится только текст. */
    flex-wrap: nowrap;
    align-items: flex-start;
    font-size: clamp(22px, 6.2vw, 24px);
    overflow-wrap: anywhere;
  }
  .section-kicker.stage-kicker .stage-kicker__icon {
    align-self: flex-start;
    margin-top: .08em;
  }
  .section-kicker.stage-kicker .stage-kicker__text {
    flex: 1 1 0;
    min-width: 0;
  }
  .stage-conclusion { grid-template-columns: 48px minmax(0, 1fr); }
  .stage-conclusion > div:last-child { padding: 10px 12px; }
  .stage-conclusion h2,
  .stage-conclusion p { font-size: 16px; line-height: 1.3; }
}

/* Компактная шапка для экранов уровня 430 px и уже. */
@media (max-width: 480px) {
  .deck__shell { padding-right: 12px !important; padding-left: 12px !important; }
  .deck-header { padding: 8px 10px; gap: 7px; }
  .voice-brand { gap: 7px; }
  .voice-brand__logo { width: 28px; height: 28px; }
  .voice-brand__name { display: inline; font-size: 12px; }
  .deck-header__meta { gap: 2px; }
  .deck-header__kicker { font-size: 9px; }
  .deck-header__name { font-size: 11px; line-height: 1.2; }
  .deck-header__date { font-size: 11px; }
  .deck-progress__item,
  a.deck-progress__item { min-width: 104px; min-height: 30px; padding: 6px 8px; }
}


.deck__shell { padding-bottom: 35px; }

.deck-footer {
  /* Override the starter template's centred, container-width footer. */
  position: fixed !important;
  z-index: 20;
  inset: auto 0 0 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100% !important;
  min-width: 0;
  max-width: none !important;
  box-sizing: border-box;
  margin: 0 !important;
  transform: none !important;
  min-height: 48px;
  padding: 8px 16px;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius) var(--deck-radius) 0 0;
  background: rgba(255,255,255,.97);
  box-shadow: var(--deck-shadow-sm);
  backdrop-filter: blur(10px);
}

.deck-footer__left,
.deck-footer__nav {
  display: flex;
  align-items: center;
  gap: 10px;
}

.deck-footer__status {
  color: var(--deck-accent);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.deck-footer__text {
  color: var(--deck-muted);
  font-size: 10px;
}

.deck-footer__counter {
  min-width: 40px;
  color: var(--deck-muted);
  font-size: 13px;
  text-align: center;
}

.deck-footer__counter span { color: var(--deck-text); font-weight: 600; }

.ig-btn {
  min-height: 30px;
  padding: 7px 16px;
  border: 1px solid transparent;
  border-radius: 8px;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: transform var(--transition-smooth), background var(--transition-smooth), border-color var(--transition-smooth), color var(--transition-smooth), box-shadow var(--transition-smooth);
}

.ig-btn--outline { border-color: var(--deck-border-strong); background: transparent; color: var(--deck-text); }
.ig-btn--outline:hover:not(:disabled) { background: var(--deck-accent-bg); border-color: rgba(45,45,186,.3); }
.ig-btn--primary { background: var(--deck-accent); color: #fff; box-shadow: 0 3px 10px rgba(45,45,186,.2); }
.ig-btn--primary:hover { background: var(--deck-accent-light); transform: translateY(-1px); }
.ig-btn:disabled { opacity: .4; cursor: default; }

@media (max-width: 900px) {
  .deck__shell { padding-bottom: calc(68px + env(safe-area-inset-bottom)) !important; }

  .deck-footer {
    position: fixed !important;
    z-index: 1000;
    inset: auto 0 0 0;
    width: 100% !important;
    min-width: 0;
    min-height: 0;
    display: block;
    margin: 0 !important;
    padding: 6px 10px calc(6px + env(safe-area-inset-bottom));
    border-radius: 10px 10px 0 0;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    isolation: isolate;
  }

  .deck-footer__left { display: none; }

  .deck-footer__nav {
    display: grid;
    width: 100%;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 8px;
  }

  .deck-footer__nav .ig-btn { width: 100%; min-height: 40px; padding: 6px 8px; font-size: 11px; }
  .deck-footer__counter { min-width: 34px; font-size: 12px; }
}

/* На мобильных нижняя навигация всегда доступна и не перекрывает контент. */
@media (max-width: 760px) {
  .deck__shell { padding-bottom: calc(68px + env(safe-area-inset-bottom)) !important; }

  .deck-footer {
    position: fixed !important;
    z-index: 1000;
    inset: auto 0 0 0;
    width: 100% !important;
    min-width: 0;
    min-height: 0;
    display: block;
    margin: 0 !important;
    padding: 6px 10px calc(6px + env(safe-area-inset-bottom));
    border-radius: 10px 10px 0 0;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    isolation: isolate;
  }

  .deck-footer__left { display: none; }

  .deck-footer__nav {
    display: grid;
    width: 100%;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 8px;
  }

  .deck-footer__nav .ig-btn { width: 100%; min-height: 40px; padding: 6px 8px; font-size: 11px; }
  .deck-footer__counter { min-width: 34px; font-size: 12px; }
}

@media print {
  .deck-footer { display: none !important; }
  .deck__shell { padding-bottom: 0; }
}

/* Во время подготовки PDF экран остаётся интерактивным до открытия диалога печати. */
@media screen {
  body.pdf-export-mode .deck-header { display: flex !important; }
  body.pdf-export-mode .deck-progress { display: grid !important; }
  body.pdf-export-mode .deck-footer { display: flex !important; }
}

@media screen and (max-width: 760px) {
  body.pdf-export-mode .deck__shell { padding-bottom: calc(68px + env(safe-area-inset-bottom)) !important; }
  body.pdf-export-mode .deck-header { flex-direction: column; }
  body.pdf-export-mode .deck-progress { display: flex !important; }
  body.pdf-export-mode .deck-footer { display: block !important; }
}

/* Ненавязчивая мобильная карточка: предлагает сохранить ссылку, но не блокирует чтение. */
.mobile-save-prompt { display: none; }

@media screen and (max-width: 760px) {
  .mobile-save-prompt {
    position: fixed;
    z-index: 1100;
    right: 0;
    bottom: calc(68px + env(safe-area-inset-bottom));
    left: 0;
    display: flex;
    justify-content: center;
    padding: 0 12px;
    box-sizing: border-box;
    pointer-events: none;
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .18s ease, transform .18s ease;
  }

  .mobile-save-prompt.is-visible {
    opacity: 1;
    transform: translateY(0);
  }

  .mobile-save-prompt__dialog {
    position: relative;
    width: min(100%, 520px);
    max-height: calc(100dvh - 86px);
    overflow: auto;
    overscroll-behavior: contain;
    padding: 17px 16px 14px;
    box-sizing: border-box;
    border: 1px solid rgba(45, 45, 186, .18);
    border-radius: 16px;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 14px 36px rgba(21, 24, 76, .22);
    pointer-events: auto;
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
  }

  .mobile-save-prompt__close {
    position: absolute;
    top: 7px;
    right: 7px;
    display: grid;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--deck-muted);
    cursor: pointer;
  }

  .mobile-save-prompt__close span { font-size: 28px; font-weight: 300; line-height: 1; }
  .mobile-save-prompt__close:hover,
  .mobile-save-prompt__close:focus-visible { background: var(--deck-accent-bg); color: var(--deck-accent); }

  .mobile-save-prompt__eyebrow {
    margin: 0 48px 5px 0;
    color: var(--deck-accent);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
  }

  .mobile-save-prompt h2 {
    margin: 0;
    padding-right: 38px;
    color: var(--deck-text);
    font-size: clamp(18px, 5vw, 21px);
    line-height: 1.16;
    letter-spacing: -.02em;
  }

  .mobile-save-prompt__dialog > p:not(.mobile-save-prompt__eyebrow):not(.mobile-save-prompt__status) {
    margin: 8px 0 0;
    color: var(--deck-muted);
    font-size: 13px;
    line-height: 1.38;
  }

  .mobile-save-prompt__share,
  .mobile-save-prompt__copy,
  .mobile-save-prompt__continue {
    width: 100%;
    min-height: 44px;
    border-radius: 10px;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
  }

  .mobile-save-prompt__share {
    margin-top: 14px;
    padding: 10px 14px;
    border: 1px solid var(--deck-accent);
    background: var(--deck-accent);
    color: #fff;
    box-shadow: 0 5px 12px rgba(45, 45, 186, .2);
  }

  .mobile-save-prompt__services {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-top: 8px;
  }

  .mobile-save-prompt__services a {
    display: grid;
    min-height: 40px;
    padding: 8px 6px;
    place-items: center;
    border: 1px solid var(--deck-border-strong);
    border-radius: 9px;
    background: #fff;
    color: var(--deck-text);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.1;
    text-align: center;
    text-decoration: none;
  }

  .mobile-save-prompt__copy {
    margin-top: 8px;
    padding: 9px 14px;
    border: 1px solid var(--deck-border-strong);
    background: #fff;
    color: var(--deck-accent);
  }

  .mobile-save-prompt__manual {
    display: grid;
    gap: 5px;
    margin-top: 8px;
    color: var(--deck-muted);
    font-size: 12px;
    line-height: 1.25;
  }

  .mobile-save-prompt__manual[hidden] { display: none !important; }

  .mobile-save-prompt__manual input {
    width: 100%;
    min-height: 40px;
    padding: 7px 9px;
    border: 1px solid var(--deck-border-strong);
    border-radius: 8px;
    background: #fff;
    color: var(--deck-text);
    font: inherit;
    font-size: 12px;
    box-sizing: border-box;
  }

  .mobile-save-prompt__bookmarks {
    margin-top: 8px;
    border-top: 1px solid var(--deck-border);
  }

  .mobile-save-prompt__bookmarks summary {
    min-height: 40px;
    padding: 11px 0 7px;
    color: var(--deck-text);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
  }

  .mobile-save-prompt__bookmarks p {
    margin: 0 0 4px;
    color: var(--deck-muted);
    font-size: 12px;
    line-height: 1.35;
  }

  .mobile-save-prompt__status {
    min-height: 17px;
    margin: 7px 0 0;
    color: var(--deck-accent);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
  }

  .mobile-save-prompt__continue {
    min-height: 38px;
    margin-top: 2px;
    padding: 8px 12px;
    border: 0;
    background: transparent;
    color: var(--deck-muted);
  }

  .mobile-save-prompt__share:hover,
  .mobile-save-prompt__share:focus-visible { background: var(--deck-accent-light); }
  .mobile-save-prompt__copy:hover,
  .mobile-save-prompt__copy:focus-visible,
  .mobile-save-prompt__services a:hover,
  .mobile-save-prompt__services a:focus-visible { border-color: rgba(45, 45, 186, .45); background: var(--deck-accent-bg); }
  .mobile-save-prompt__continue:hover,
  .mobile-save-prompt__continue:focus-visible { color: var(--deck-accent); text-decoration: underline; }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-save-prompt { transition: none; }
}

@media print {
  .mobile-save-prompt { display: none !important; }
}


.screen-01 {
  grid-template-rows: minmax(0, 1fr) auto auto;
  align-content: center;
}

.screen-01 .intro-copy__title {
  max-width: 900px;
  font-size: clamp(32px, 3vw, 52px);
}

.screen-01 .intro-copy__text {
  max-width: 820px;
  font-size: clamp(15px, 1.1vw, 18px);
}

.screen-01 .intro-copy__scope {
  display: block;
  margin-top: 8px;
  color: var(--deck-muted);
  font-size: 12px;
  line-height: 1.35;
}

.screen-01 .screen__grid--metrics-compact {
  grid-auto-rows: 1fr;
  align-items: stretch;
}

.screen-01 .screen__grid--metrics-compact .metric-box { height: 100%; }

.screen-01 .screen__body--intro {
  align-items: center;
}

.screen-01 .intro-copy { transform: translateY(-22px); }

.screen-01 .intro-copy__pdf {
  width: 300px;
  min-height: 50px;
  margin-top: 20px;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 12px;
}

.screen-01__cover {
  height: clamp(300px, 42vh, 480px);
  margin: 0;
  overflow: hidden;
}

.screen-01__cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.screen-01 .metric-box--channels .metric-box__icons {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  margin: 0;
}

.screen-01 .metric-box--channels .metric-box__icons img {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  object-fit: contain;
}

@media (max-width: 1040px) {
  .screen-01__cover { height: 260px; }
}

/* Резиновая компоновка титульного экрана. */
@media (max-width: 1200px) {
  .screen-01 .screen__body--intro { grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr); gap: clamp(18px, 3vw, 40px); }
  .screen-01 .intro-copy__title { font-size: clamp(30px, 4vw, 44px); }
  .screen-01 .intro-copy__text { font-size: clamp(14px, 1.6vw, 17px); }
  .screen-01__cover { height: clamp(240px, 32vw, 360px); }
}

@media (max-width: 900px) {
  .screen-01 { align-content: start; }
  .screen-01 .screen__body--intro { grid-template-columns: 1fr; gap: 20px; }
  .screen-01 .intro-copy { transform: none; }
  .screen-01 .intro-copy__title { max-width: 760px; font-size: clamp(30px, 5vw, 40px); }
  .screen-01__cover { width: min(100%, 680px); height: clamp(240px, 48vw, 360px); margin: 0 auto; }
  .screen-01 .intro-side { width: 100%; justify-self: stretch; }
  .screen-01 .screen__grid--metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .screen-01 .intro-copy__title { font-size: clamp(25px, 7vw, 30px); line-height: 1.1; }
  .screen-01 .intro-copy__text { font-size: 13px; line-height: 1.42; }
  .screen-01 .intro-copy__scope { margin-top: 7px; font-size: 12px; line-height: 1.35; }
  .screen-01 .intro-copy__pdf { width: 100%; margin-top: 16px; }
  .screen-01__cover { height: min(62vw, 280px); }
  .screen-01 .screen__grid--metrics { grid-template-columns: 1fr; }
  .screen-01 .metric-box--channels .metric-box__icons { flex-wrap: wrap; }
}


.method-screen {
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 12px;
}

.method-screen__intro { max-width: 980px; }
.method-screen__title { margin: 0; font-size: clamp(28px, 2.5vw, 42px); line-height: 1.06; letter-spacing: -.03em; }
.method-screen__lead { max-width: 1200px; margin: 8px 0 0; color: var(--deck-muted); font-size: 12px; line-height: 1.45; }

.method-flow,
.method-card,
.measure-panel {
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
}

.method-screen__bottom { display: grid; grid-template-columns: minmax(0, .68fr) minmax(0, 1.62fr); gap: 12px; align-items: stretch; }
.method-flow { display: grid; grid-template-rows: auto 1fr; gap: 7px; padding: 10px; }
.method-flow__head h2,
.cjm-map__head h2 { margin: 3px 0 0; color: var(--deck-text); font-size: 14px; line-height: 1.15; letter-spacing: -.015em; }
.method-flow__head .method-card__eyebrow { font-size: 12px; }
.method-flow__head h2 { font-size: 12px; }
.method-card__eyebrow { color: var(--deck-accent); font-size: 9px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.method-flow__steps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; margin: 0; padding: 0; list-style: none; }
.method-flow__steps li { position: relative; display: flex; align-items: flex-start; gap: 6px; min-width: 0; padding: 6px; border-radius: 7px; background: var(--deck-accent-bg); }
.method-flow__steps li:not(:last-child)::after { display: none; }
.method-flow__steps b { display: grid; width: 22px; height: 22px; flex: 0 0 22px; place-items: center; border-radius: 50%; background: var(--deck-accent); color: #fff; font-size: 10px; }
.method-flow__steps span { display: grid; gap: 3px; min-width: 0; }.method-flow__steps strong { color: var(--deck-text); font-size: 12px; line-height: 1.15; }.method-flow__steps small { color: var(--deck-muted); font-size: 12px; line-height: 1.22; }

.cjm-map { min-height: 0; padding: 10px; overflow: hidden; }
.cjm-map__label { margin: 0 0 6px; color: var(--deck-accent); font-size: 14px; font-weight: 700; line-height: 1.1; }
.cjm-map__stages { display: grid; height: min(calc(100% - 21px), 500px); grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.cjm-stage { position: relative; display: flex; min-width: 0; min-height: 0; flex-direction: column; padding: 9px; border: 1px solid rgba(45,45,186,.18); border-radius: 10px; background: linear-gradient(145deg, #fff, rgba(45,45,186,.035)); }
.cjm-stage:not(:last-child)::after { content: "→"; position: absolute; z-index: 1; top: 13px; right: -14px; color: var(--deck-accent); font-size: 17px; font-weight: 700; }
.cjm-stage__top { display: flex; align-items: flex-start; gap: 6px; min-height: 38px; }.cjm-stage__top b { display: grid; width: 21px; height: 21px; flex: 0 0 21px; place-items: center; border-radius: 50%; background: var(--deck-accent); color: #fff; font-size: 8px; }.cjm-stage__top h2 { margin: 1px 0 0; color: var(--deck-accent); font-size: 12px; line-height: 1.14; letter-spacing: -.01em; }
.cjm-stage__icon { width: 48px; height: 48px; align-self: center; margin: 3px 0 7px; filter: invert(18%) sepia(86%) saturate(2217%) hue-rotate(236deg) brightness(78%) contrast(98%); }
.cjm-stage__block { margin-top: 6px; }.cjm-stage__block > strong, .cjm-stage__track > strong { display: block; color: var(--deck-accent); font-size: 12px; line-height: 1.1; }.cjm-stage__icon + .cjm-stage__block p { margin: 4px 0 0; padding: 4px 5px; border-radius: 4px; background: var(--deck-accent-bg); }.cjm-stage__block p { margin: 4px 0 0; color: var(--deck-text); font-size: 12px; line-height: 1.24; }.cjm-stage__block ul { display: grid; gap: 4px; margin: 4px 0 0; padding: 0; list-style: none; }.cjm-stage__block li { color: var(--deck-text); font-size: 12px; line-height: 1.2; }.cjm-stage__block--pain > strong { color: var(--deck-warning); }.cjm-stage__block--pain li { color: #a9530c; }.cjm-stage__block--prompts { margin-top: 8px; }.cjm-stage__block--prompts li { padding: 4px 5px; border: 1px solid rgba(45,45,186,.12); border-radius: 5px; background: rgba(45,45,186,.045); color: var(--deck-text); font-size: 12px; line-height: 1.18; }
.cjm-stage__track { margin-top: 8px; padding-top: 7px; border-top: 1px solid var(--deck-border); }.cjm-stage__track span { display: block; margin-top: 4px; color: var(--deck-text); font-size: 12px; line-height: 1.22; }

.cjm-stage__block--pain ul { grid-template-rows: repeat(2, auto); }
.cjm-stage__block--pain li { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.measure-panel { padding: 13px 14px; }.measure-panel__head { display: flex; align-items: center; gap: 8px; }.measure-panel__head .method-card__eyebrow, .measure-panel__head h2 { margin: 0; color: var(--deck-text); font-size: 12px; letter-spacing: -.01em; }.measure-panel__head .method-card__eyebrow { color: var(--deck-accent); }.measure-panel__note { margin: 6px 0 0; color: var(--deck-muted); font-size: 12px; line-height: 1.25; }.measure-panel__note strong { color: var(--deck-text); }.measure-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 8px; align-items: stretch; }
.measure-list > div { display: grid; align-content: start; gap: 5px; min-width: 0; padding: 9px 10px; border: 1px solid var(--deck-border); border-radius: 8px; background: var(--deck-surface); }.measure-list b { color: var(--deck-text); font-size: 12px; line-height: 1.12; }.measure-list span { color: var(--deck-muted); font-size: 12px; line-height: 1.22; }.measure-list small { color: var(--deck-accent); font-size: 12px; font-weight: 500; line-height: 1.2; }.measure-list small strong { color: inherit; font-weight: 700; }

@media (max-width: 1120px) {
  .method-screen { overflow-y: auto; }.deck { height: auto; min-height: 100vh; }.deck__shell { height: auto; min-height: 100vh; }.deck-main { min-height: 880px; }
  .method-screen__bottom { grid-template-columns: 1fr; }.method-flow { grid-template-columns: 1fr; }.cjm-map__stages { height: auto; grid-template-columns: repeat(3, 1fr); }.cjm-stage { min-height: 340px; }.cjm-stage:nth-child(3)::after { display: none; }.measure-list { grid-template-columns: repeat(3, 1fr); }
}

/* Резиновая компоновка CJM и методологических блоков. */
@media (max-width: 1280px) and (min-width: 761px) {
  .method-screen__title { font-size: clamp(28px, 3.4vw, 38px); }
  .cjm-map__stages { gap: 10px; }
  .cjm-stage { padding: 8px; }
  .cjm-stage__icon { width: 42px; height: 42px; }
}

@media (max-width: 1120px) and (min-width: 761px) {
  .deck-main { position: static; min-height: 0; overflow: visible; }
  .slide { position: static; inset: auto; height: auto; overflow: visible; transform: none; transition: none; }
  .method-screen { overflow: visible; }
  .cjm-map { overflow: visible; }
  .cjm-map__stages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cjm-stage { min-height: 0; }
  .cjm-stage:nth-child(2n)::after { display: none; }
  .method-screen__bottom { grid-template-columns: 1fr; }
  .measure-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .method-screen__title { font-size: clamp(24px, 6.7vw, 29px); line-height: 1.1; }
  .method-screen__lead { margin-top: 7px; line-height: 1.4; }
  .cjm-map { padding: 10px; }
  .cjm-map__label { margin-bottom: 10px; }
  .cjm-map__stages { gap: 10px; }
  .cjm-stage { padding: 12px; }
  .cjm-stage__icon { width: 52px; height: 52px; margin: 5px 0 8px; }
  .cjm-stage__top { min-height: 0; }
  .cjm-stage__top h2 { font-size: 14px; }
  .cjm-stage__block { margin-top: 9px; }
  .cjm-stage__block--prompts { margin-top: 10px; }
  .method-screen__bottom { gap: 12px; }
  .method-flow,
  .measure-panel { padding: 12px; }
  .method-flow__steps,
  .measure-list { gap: 8px; }
}


.need-screen { grid-template-rows: auto minmax(0, 1fr) auto; gap: 12px; }
.need-screen__intro { display: flex; align-items: end; }
.need-screen__intro .section-kicker { font-size: 12px; }
.need-screen__lead { width: 100%; max-width: none; margin: 9px 0 0; color: var(--deck-muted); font-size: 14px; line-height: 1.45; }
.need-metrics,
.need-card,
.answer-card,
.need-screen__conclusion { border: 1px solid var(--deck-border); border-radius: var(--deck-radius-sm); background: var(--deck-surface); box-shadow: var(--deck-shadow-sm); }
.need-metrics { padding: 12px 14px; }.need-metrics__head { display: flex; align-items: baseline; gap: 8px; }.need-metrics__head > span { color: var(--deck-accent); font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }.need-metrics__head h2 { margin: 0; color: var(--deck-text); font-size: 14px; line-height: 1.2; }
.need-metrics__grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; margin-top: 10px; }.need-metrics__grid article { display: grid; align-content: start; gap: 4px; min-width: 0; padding: 9px 10px; border-radius: 8px; background: var(--deck-accent-bg); }.need-metrics__grid b { color: var(--deck-text); font-size: 12px; line-height: 1.12; }.need-metrics__grid strong { color: var(--deck-accent); font-size: 19px; line-height: 1; letter-spacing: -.03em; }.need-metrics__grid span { color: var(--deck-muted); font-size: 12px; line-height: 1.22; }

.need-screen__grid { display: grid; grid-template-columns: minmax(0,.88fr) minmax(0,1.12fr); gap: 12px; min-height: 0; }.need-card { padding: 15px; }.need-card__head { display: flex; justify-content: space-between; gap: 8px; }.need-card__head > div > span { color: var(--deck-accent); font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }.need-card__head h2 { margin: 3px 0 0; color: var(--deck-text); font-size: 16px; line-height: 1.2; letter-spacing: -.015em; }.need-card__head > img { width: 24px; height: 24px; }.need-card__note { margin: 8px 0 0; color: var(--deck-muted); font-size: 12px; line-height: 1.25; }
.category-bars { display: grid; gap: 12px; margin-top: 18px; }.category-bars > div { display: grid; grid-template-columns: 170px minmax(80px,1fr) 64px; gap: 8px; align-items: center; font-size: 12px; }.category-bars > div > span { color: var(--deck-text); font-weight: 500; }.category-bars > div > div { height: 10px; overflow: hidden; border-radius: 999px; background: rgba(45,45,186,.09); }.category-bars i { display: block; width: var(--bar); height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--deck-accent-light),var(--deck-accent)); }.category-bars b,.brand-dots b { color: var(--deck-accent); font-size: 12px; text-align: right; white-space: nowrap; }.category-bars small,.brand-dots small { color: var(--deck-muted); font-size: 10px; font-weight: 500; }
.brand-axis { display: grid; grid-template-columns: repeat(5,1fr); margin: 14px 68px 5px 120px; color: var(--deck-soft); font-size: 10px; }.brand-axis span:nth-child(n+2) { text-align: center; }.brand-axis span:last-child { text-align: right; }.brand-dots { display: grid; gap: 7px; }.brand-dots > div { display: grid; grid-template-columns: 112px minmax(80px,1fr) 64px; gap: 8px; align-items: center; }.brand-dots > div > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--deck-text); font-size: 12px; font-weight: 600; }.brand-dots > div > div { position: relative; height: 18px; background: repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),rgba(45,45,186,.12) calc(25% - 1px) 25%); }.brand-dots i { position: absolute; top: 50%; left: var(--dot); width: 11px; height: 11px; transform: translate(-50%,-50%); border: 2px solid #fff; border-radius: 50%; background: var(--deck-accent); box-shadow: 0 1px 4px rgba(45,45,186,.35); }.need-card__caution { display: flex; gap: 7px; margin-top: 13px; padding-top: 10px; border-top: 1px solid var(--deck-border); color: var(--deck-muted); font-size: 12px; line-height: 1.32; }.need-card__caution img { width: 17px; height: 17px; flex: 0 0 auto; }

.need-screen__conclusion { display:grid; grid-template-columns:70px minmax(0,1fr); overflow:hidden; padding:0; border:1px solid rgba(45,45,186,.18); background:#fff; }.need-screen__conclusion-icon { display:grid; place-items:center; min-height:100%; background:var(--deck-accent); }.need-screen__conclusion-icon img { width:28px; height:28px; filter:brightness(0) invert(1); }.need-screen__conclusion > div:last-child { padding:10px 14px 11px; }.need-screen__conclusion h2 { display:inline-block; margin:0; padding:3px 8px; border-radius:999px; background:rgba(45,45,186,.12); color:var(--deck-accent); font-size:12px; font-weight:700; letter-spacing:.04em; line-height:1.2; text-transform:uppercase; }.need-screen__conclusion p { margin:5px 0 0; color:var(--deck-text); font-size:20px; line-height:1.2; letter-spacing:-.018em; }

.brand-explorer { display:grid; grid-template-rows:auto auto minmax(0,1fr); width:64%; max-width:1000px; min-height:0; padding:14px; border:1px solid var(--deck-border); border-radius:var(--deck-radius-sm); background:var(--deck-surface); box-shadow:var(--deck-shadow-sm); }.brand-explorer__header { display:grid; grid-template-columns:1fr; align-items:start; gap:10px; }.brand-explorer__header > div:first-child > span { color:var(--deck-accent); font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }.brand-explorer__header h2 { margin:3px 0 0; color:var(--deck-text); font-size:20px; line-height:1.15; letter-spacing:-.02em; }.brand-explorer__header p { max-width:720px; margin:6px 0 0; color:var(--deck-muted); font-size:12px; line-height:1.35; }.brand-explorer__filters { display:grid; grid-template-columns:200px 260px; gap:8px; }.brand-explorer__filters label { display:grid; gap:4px; color:var(--deck-muted); font-size:12px; line-height:1.1; }.brand-explorer__filters input,.brand-explorer__filters select { width:100%; height:34px; padding:0 9px; border:1px solid var(--deck-border); border-radius:7px; outline:0; background:#fff; color:var(--deck-text); font:inherit; font-size:12px; }.brand-explorer__filters input:focus,.brand-explorer__filters select:focus { border-color:var(--deck-accent); box-shadow:0 0 0 3px rgba(45,45,186,.12); }.brand-explorer__meta { margin:11px 0 7px; color:var(--deck-muted); font-size:12px; line-height:1.25; }.brand-explorer__scroll { width:calc(100% - 8px); max-width:none; height:512px; min-height:0; margin:8px 0 0 8px; overflow:auto; border:1px solid var(--deck-border); border-radius:8px; background:transparent; scrollbar-color:var(--deck-border) transparent; }.brand-table { width:100%; min-width:0; border-collapse:collapse; table-layout:auto; }.brand-table th,.brand-table td { box-sizing:border-box; height:34px; padding:9px 10px; border-bottom:1px solid var(--deck-border); text-align:right; vertical-align:middle; font-size:12px; line-height:1.2; }.brand-table th { position:sticky; z-index:1; top:0; padding:0; background:#f7f8ff; }.brand-table th:first-child,.brand-table td:first-child { width:5%; min-width:80px; text-align:left; white-space:nowrap; }.brand-table th button { display:flex; width:100%; align-items:center; justify-content:flex-end; gap:5px; padding:9px 10px; border:0; background:transparent; color:var(--deck-text); cursor:pointer; font:inherit; font-size:12px; font-weight:700; text-align:inherit; }.brand-table th:first-child button { justify-content:flex-start; }.brand-table th button:hover,.brand-table th button.is-active { color:var(--deck-accent); }.brand-table th i { color:var(--deck-soft); font-size:13px; font-style:normal; }.brand-table th button.is-active i { color:var(--deck-accent); }.brand-table tbody tr:nth-child(even) { background:rgba(45,45,186,.025); }.brand-table tbody tr:hover { background:var(--deck-accent-bg); }.brand-table tbody tr:last-child td { border-bottom:0; }.brand-table td:first-child { color:var(--deck-text); font-weight:700; }.brand-table td:not(:first-child) { color:var(--deck-accent); font-variant-numeric:tabular-nums; }.brand-table .tone-positive { color:var(--deck-success)!important; }.brand-table .tone-negative { color:var(--deck-danger)!important; }.brand-table .brand-table__empty { padding:24px; color:var(--deck-muted); text-align:center!important; font-weight:400; }.brand-explorer__note { margin:9px 0 0; color:var(--deck-muted); font-size:12px; line-height:1.3; }

/* Пояснение и фильтры находятся на одной линии: текст слева, управление срезом справа. */
.brand-explorer__header { grid-template-columns:minmax(0,1fr) auto; column-gap:18px; row-gap:7px; align-items:center; }
.brand-explorer__title { grid-column:1 / -1; }
.brand-explorer__lead { grid-column:1; max-width:420px!important; margin:0!important; }
.brand-explorer__filters { grid-column:2; grid-row:2; }

@media (max-width: 1100px) { .need-screen { overflow-y: auto; }.need-metrics__grid { grid-template-columns: repeat(3,1fr); }.need-screen__grid { grid-template-columns: 1fr; }.need-screen__intro { align-items:flex-start; }.brand-explorer__header { grid-template-columns:1fr; align-items:start; }.brand-explorer__filters { grid-template-columns:repeat(2,minmax(0,1fr)); }.brand-explorer { width:100%; max-width:none; } }

.brand-table__th { display:flex; align-items:center; gap:4px; }.brand-table__th button { flex:1; width:auto!important; padding-right:4px!important; }.metric-tip { position:relative; display:inline-grid; width:15px; height:15px; flex:0 0 15px; place-items:center; border-radius:50%; background:rgba(45,45,186,.12); color:var(--deck-accent); cursor:help; font-size:11px; font-weight:700; line-height:1; }.metric-tip:focus-visible { outline:2px solid var(--deck-accent); outline-offset:2px; }.metric-tip::after { position:absolute; z-index:10; top:calc(100% + 8px); right:0; width:240px; padding:9px 10px; border-radius:7px; background:var(--deck-text); color:#fff; content:attr(data-tooltip); font-size:12px; font-weight:400; line-height:1.3; text-align:left; opacity:0; pointer-events:none; transform:translateY(-3px); transition:opacity .16s ease,transform .16s ease; }.metric-tip:hover::after,.metric-tip:focus::after { opacity:1; transform:translateY(0); }

.brand-table th:not(:first-child),.brand-table td:not(:first-child) { width:1%; }.brand-table th:not(:first-child) { white-space:normal; }.brand-table td:not(:first-child) { white-space:nowrap; }.brand-explorer__scroll::-webkit-scrollbar-track { background:transparent; }.channel-multiselect { position:relative; min-width:260px; }.channel-multiselect summary { display:grid; gap:4px; cursor:pointer; list-style:none; color:var(--deck-muted); font-size:12px; line-height:1.1; }.channel-multiselect summary::-webkit-details-marker { display:none; }.channel-multiselect summary b { display:flex; height:34px; align-items:center; justify-content:space-between; padding:0 9px; border:1px solid var(--deck-border); border-radius:7px; background:#fff; color:var(--deck-text); font-size:12px; font-weight:400; }.channel-multiselect summary b::after { color:var(--deck-accent); content:'⌄'; font-size:16px; line-height:1; }.channel-multiselect[open] summary b { border-color:var(--deck-accent); box-shadow:0 0 0 3px rgba(45,45,186,.12); }.channel-multiselect__options { position:absolute; z-index:20; top:calc(100% + 5px); right:0; display:grid; grid-template-columns:1fr 1fr; gap:12px; width:410px; padding:12px; border:1px solid var(--deck-border); border-radius:8px; background:#fff; box-shadow:var(--deck-shadow); }.channel-multiselect__options > div { display:grid; align-content:start; gap:7px; }.channel-multiselect__options strong { color:var(--deck-accent); font-size:12px; }.channel-multiselect__options label { display:flex; align-items:center; gap:6px; color:var(--deck-text); cursor:pointer; font-size:12px; }.channel-multiselect__options input { width:14px; height:14px; margin:0; accent-color:var(--deck-accent); }

.channel-multiselect__options label img { width:16px; height:16px; margin-left:0; object-fit:contain; }

.metric-tip::after { content:none; }.metric-tip-popover { position:fixed; z-index:100; width:min(260px,calc(100vw - 24px)); padding:9px 10px; border-radius:7px; background:var(--deck-text); box-shadow:0 8px 22px rgba(10,10,60,.24); color:#fff; font-size:12px; font-weight:400; line-height:1.3; opacity:0; pointer-events:none; transform:translateY(-3px); transition:opacity .16s ease,transform .16s ease; }.metric-tip-popover.is-visible { opacity:1; transform:translateY(0); }

.brand-table th:last-child,.brand-table td:last-child { padding-right:24px; }

.brand-table td:first-child small { display:block; margin-top:2px; color:var(--deck-muted); font-size:10px; font-weight:500; }.brand-table__row--site td:first-child { color:var(--deck-accent); }

.need-screen__conclusion h2 { vertical-align:baseline; }.need-screen__conclusion p { display:inline; margin:0 0 0 6px; }

.need-screen__conclusion h2 { padding:0; border-radius:0; background:transparent; color:var(--deck-text); font-size:20px; line-height:1.2; letter-spacing:-.018em; text-transform:none; }

.need-screen__conclusion h2,
.need-screen__conclusion p { font-size:13.33px; line-height:1.3; letter-spacing:normal; }

.brand-table th i {
  display: inline-flex;
  align-items: center;
  height: 1em;
  font-size: 8.67px;
  line-height: 1;
}

@media (max-width:1100px) {
  .brand-explorer__header { grid-template-columns:1fr; }
  .brand-explorer__title,
  .brand-explorer__lead,
  .brand-explorer__filters { grid-column:1; grid-row:auto; }
  .brand-explorer__lead { max-width:none!important; }
}

.need-screen__content {
  display: grid;
  grid-template-columns: minmax(0, 1.78fr) minmax(300px, .92fr);
  gap: 12px;
  min-height: 0;
}

.need-screen__content .brand-explorer {
  width: 100%;
  max-width: none;
}

.need-insights {
  display: grid;
  grid-template-rows: repeat(3, max-content);
  align-content: start;
  gap: 12px;
  min-height: 0;
}

.need-insight-card {
  min-height: 0;
  padding: 12px 12px 7px;
  overflow: hidden;
  border: 1px solid var(--deck-border);
  border-radius: var(--deck-radius-sm);
  background: var(--deck-surface);
  box-shadow: var(--deck-shadow-sm);
}

.need-insight-card__head > span {
  color: var(--deck-accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.need-insight-card__head h2 {
  margin: 3px 0 0;
  color: var(--deck-text);
  font-size: 14px;
  line-height: 1.18;
  letter-spacing: -.015em;
}

.need-insight-card__head > h2:first-child { margin-top: 0; }

.need-insight-card__note {
  margin: 6px 0 0;
  color: var(--deck-muted);
  font-size: 12px;
  line-height: 1.25;
}

.insight-bars {
  display: grid;
  gap: 6px;
  margin-top: 10px;
}

.insight-bars > div {
  display: grid;
  grid-template-columns: 116px minmax(30px, 1fr) 42px;
  gap: 6px;
  align-items: center;
  cursor: help;
}

.insight-bars > div:focus-visible { outline: 2px solid var(--deck-accent); outline-offset: 2px; border-radius: 3px; }

.insight-bar-popover {
  position: fixed;
  z-index: 100;
  max-width: min(260px, calc(100vw - 24px));
  padding: 9px 10px;
  border-radius: 7px;
  background: var(--deck-text);
  box-shadow: 0 8px 22px rgba(10,10,60,.24);
  color: #fff;
  font-size: 12px;
  line-height: 1.3;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-3px);
  transition: opacity .16s ease, transform .16s ease;
}

.insight-bar-popover.is-visible { opacity: 1; transform: translateY(0); }

.table-cell-popover {
  position: fixed;
  z-index: 100;
  max-width: min(300px, calc(100vw - 24px));
  padding: 9px 10px;
  border-radius: 7px;
  background: var(--deck-text);
  box-shadow: 0 8px 22px rgba(10,10,60,.24);
  color: #fff;
  font-size: 12px;
  line-height: 1.3;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-3px);
  transition: opacity .16s ease, transform .16s ease;
}

.table-cell-popover.is-visible { opacity: 1; transform: translateY(0); }

.brand-table td[data-table-tooltip] { cursor: help; }

.insight-bars span,
.insight-bars b {
  overflow: hidden;
  font-size: 12px;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.insight-bars span { color: var(--deck-text); }
.insight-bars b { color: var(--deck-accent); text-align: right; }

.insight-bars i {
  display: block;
  grid-column: 2;
  grid-row: 1;
  z-index: 1;
  width: var(--bar);
  height: 7px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--deck-accent-light), var(--deck-accent));
}

.insight-bars > div::before {
  display: block;
  grid-column: 2;
  grid-row: 1;
  height: 7px;
  border-radius: 999px;
  background: rgba(45,45,186,.1);
  content: "";
}

.insight-bars--channels { gap: 5px; margin-top: 9px; }
.insight-bars--channels i,
.insight-bars--channels > div::before { height: 6px; }
.insight-bars--channels > div { grid-template-columns: 140px minmax(30px, 1fr) 42px; }

.channel-insight__label {
  display: flex;
  align-items: center;
  gap: 4px;
  overflow: visible!important;
  white-space: normal!important;
}

.channel-insight__label img {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
}

.channel-insight__label em {
  display: block;
  min-width: 0;
  overflow: hidden;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.need-insight-card--path {
  background: linear-gradient(145deg, var(--deck-accent-bg), #fff 64%);
}

.need-path {
  display: grid;
  gap: 7px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.need-path li {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 7px;
  align-items: start;
}

.need-path img {
  width: 20px;
  height: 20px;
  filter: invert(18%) sepia(86%) saturate(2217%) hue-rotate(236deg) brightness(78%) contrast(98%);
}

.need-path b,
.need-path span { display: block; font-size: 12px; line-height: 1.2; }
.need-path b { color: var(--deck-text); }
.need-path span { margin-top: 2px; color: var(--deck-muted); }

@media (max-width:1100px) {
  .need-screen__content { grid-template-columns: 1fr; }
  .need-insights { grid-template-rows: auto; }
}

/* Экран заполняет доступную область, а прокрутка остаётся только внутри таблицы. */
.screen.need-screen {
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.need-screen__intro,
.need-screen__content,
.need-screen__content > *,
.need-insights,
.brand-explorer {
  min-height: 0;
}

.need-screen__content,
.need-insights,
.brand-explorer {
  overflow: hidden;
}

.brand-explorer {
  grid-template-rows: auto minmax(0, 1fr);
}

.brand-explorer__scroll {
  height: auto;
  max-height: none;
  min-height: 0;
}

/* Компактный режим для наиболее распространённых ноутбуков 1366×768 и 1440×900. */
@media (max-height: 820px) and (min-width: 761px) {
  .screen.need-screen { gap: 8px; padding-top: 12px; padding-bottom: 12px; }
  .need-screen__lead { margin-top: 6px; line-height: 1.32; }
  .brand-explorer { padding: 10px; }
  .need-insight-card { padding: 10px 10px 7px; }
  .brand-explorer__header { row-gap: 5px; }
  .need-insight-card__note { margin-top: 4px; line-height: 1.2; }
  .insight-bars { gap: 4px; margin-top: 6px; }
  .insight-bars--channels { gap: 3px; margin-top: 5px; }
  .need-path { gap: 4px; margin-top: 6px; }
}

@media (max-height: 680px) and (min-width: 761px) {
  .need-insight-card__note { display: none; }
  .need-insight-card__head h2 { font-size: 12px; }
  .need-path span { display: none; }
}

/* На планшетах: две колонки где хватает ширины, без принудительного 100vh. */
@media (max-width: 1100px) and (min-width: 761px) {
  .need-screen__content {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(240px, .9fr);
    gap: 12px;
    overflow: visible;
  }
  .need-insights {
    grid-template-rows: repeat(3, max-content);
    align-content: start;
    overflow: visible;
  }
  .brand-explorer__header { grid-template-columns: 1fr; align-items: start; }
  .brand-explorer__title,
  .brand-explorer__lead,
  .brand-explorer__filters { grid-column: 1; grid-row: auto; }
  .brand-explorer__lead { max-width: none !important; }
  .brand-explorer__scroll { max-height: min(52vh, 480px); }
}

/* На телефонах: потоковая страница, таблица сверху, инсайты — горизонтальная лента. */
@media (max-width: 760px) {
  .screen.need-screen,
  .need-screen,
  .e2-screen,
  .e3-screen,
  .e4-screen,
  .e5-screen,
  .e6-screen {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    gap: 10px;
    padding: 10px 4px 18px !important;
    overflow: visible !important;
  }
  .need-screen__lead { margin-top: 6px; font-size: 15px; line-height: 1.45; }
  .need-screen__content {
    display: block !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    gap: 10px;
    overflow: visible !important;
  }
  .need-screen__content .brand-explorer {
    width: 100% !important;
    max-width: none !important;
    margin-bottom: 10px;
    padding: 12px;
  }
  .brand-explorer__header,
  .brand-explorer__title,
  .brand-explorer__lead,
  .brand-explorer__filters { grid-column: 1; grid-row: auto; }
  .brand-explorer__header { grid-template-columns: 1fr; gap: 8px; }
  .brand-explorer__header h2 { font-size: 20px; line-height: 1.2; }
  .brand-explorer__lead { max-width: none !important; font-size: 14px; line-height: 1.4; }
  .brand-explorer__filters { grid-template-columns: 1fr !important; gap: 8px; }
  .channel-multiselect { min-width: 0; width: 100%; }
  .channel-multiselect__options {
    right: 0;
    left: 0;
    width: 100%;
    max-width: none;
    grid-template-columns: 1fr;
  }
  .brand-explorer__scroll {
    width: 100%;
    margin: 8px 0 0;
    max-height: min(55vh, 420px);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
  .brand-table { min-width: 640px; }
  .need-insights {
    display: flex !important;
    gap: 10px;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 2px 2px 8px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }
  .need-insight-card {
    flex: 0 0 min(82%, 300px);
    padding: 12px;
    overflow: hidden !important;
    scroll-snap-align: start;
  }
  .need-insight-card--path {
    flex: 0 0 min(92%, 360px) !important;
  }
  .need-insight-card__note { display: none; }
  .need-insight-card__head h2 { font-size: 16px; line-height: 1.25; }
  .insight-bars { gap: 4px; margin-top: 6px; }
  .insight-bars--channels { gap: 3px; margin-top: 5px; }
  .need-path { gap: 8px; margin-top: 8px; }
  .need-screen__conclusion {
    grid-template-columns: 52px minmax(0, 1fr) !important;
  }
  .need-screen__conclusion > div:last-child { padding: 10px 12px; }
  .need-screen__conclusion h2,
  .need-screen__conclusion p { font-size: 15px !important; line-height: 1.35 !important; }
}

/* На мобильных «Логика ответа» раскрывается в полноценную последовательность шагов. */
@media (max-width: 760px) {
  .need-insight-card--path { padding: 14px 14px 7px; }
  .need-insight-card--path .need-insight-card__head h2 { font-size: 16px; line-height: 1.2; }
  .need-path { gap: 10px; margin-top: 12px; }
  .need-path li { grid-template-columns: 28px minmax(0, 1fr); gap: 9px; }
  .need-path img { width: 24px; height: 24px; }
  .need-path b { font-size: 14px; line-height: 1.2; }
  .need-path span { display: block; margin-top: 3px; font-size: 12px; line-height: 1.35; }
}

/* Телефон и компактный планшет: оставляем таблицу прокручиваемой по X,
   но увеличиваем реальные зоны касания у её фильтров и подсказок. */
@media (max-width: 900px) {
  .brand-explorer__filters input,
  .brand-explorer__filters select,
  .channel-multiselect summary b {
    height: 40px;
    min-height: 40px;
  }

  .brand-table th button {
    min-height: 40px;
  }

  .metric-tip {
    width: 24px;
    height: 24px;
    flex-basis: 24px;
    font-size: 12px;
  }

  .brand-explorer__scroll {
    overscroll-behavior-x: contain;
    scrollbar-gutter: stable;
    touch-action: pan-x pan-y;
    -webkit-overflow-scrolling: touch;
  }

  .channel-multiselect__options {
    max-height: min(310px, calc(100dvh - 200px));
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .channel-multiselect__options label {
    min-height: 40px;
    padding: 5px 0;
  }
}


/* Экран 2 повторяет проверенный интерактивный паттерн этапа 1. */

/* Правая колонка: источники, логика ответа и распределение каналов. */
.e2-screen .need-insights { grid-template-rows:repeat(3, max-content); align-content:start; }


/* Общая интерактивная композиция этапов CJM 3–6. */

.stage-insight-card { background: linear-gradient(145deg, var(--deck-accent-bg), #fff 68%); }
.stage-insight-card--plain { background: var(--deck-surface); }
.stage-bars { display:grid; gap:7px; margin-top:10px; }
.stage-bars > div { display:grid; grid-template-columns:112px minmax(32px,1fr) 46px; gap:7px; align-items:center; cursor:help; }
.stage-bars span,.stage-bars b { overflow:hidden; font-size:12px; line-height:1.16; text-overflow:ellipsis; white-space:nowrap; }
.stage-bars span { color:var(--deck-text); }.stage-bars b { color:var(--deck-accent); text-align:right; }
.stage-bars i { display:block; z-index:1; grid-column:2; grid-row:1; width:var(--bar); height:7px; border-radius:999px; background:linear-gradient(90deg,var(--deck-accent-light),var(--deck-accent)); }
.stage-bars > div::before { display:block; grid-column:2; grid-row:1; height:7px; border-radius:999px; background:rgba(45,45,186,.1); content:""; }
.stage-bars > div:focus-visible { outline:2px solid var(--deck-accent); outline-offset:2px; border-radius:3px; }
.stage-bars--channels > div { grid-template-columns:142px minmax(32px,1fr) 46px; }
.stage-bars--channels .channel-insight__label { display:flex; align-items:center; gap:4px; overflow:visible; white-space:normal; }
.stage-bars--channels .channel-insight__label img { width:14px; height:14px; flex:0 0 14px; }
.stage-bars--channels .channel-insight__label em { overflow:hidden; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.stage-heatmap { display:grid; gap:5px; margin-top:9px; }
.stage-heatmap > div { display:grid; grid-template-columns:1.35fr repeat(5,minmax(30px,1fr)); gap:4px; align-items:stretch; }
.stage-heatmap__head span { display:grid; min-height:23px; align-items:end; color:var(--deck-muted); font-size:10px; line-height:1.08; text-align:center; }
.stage-heatmap__head span:first-child { text-align:left; }
.stage-heatmap > div > b { display:grid; align-content:center; color:var(--deck-text); font-size:12px; line-height:1.08; }
.stage-heatmap > div > b small { display:block; margin-top:3px; color:var(--deck-muted); font-size:10px; font-weight:500; }
.stage-heatmap .heat { display:grid; min-height:36px; place-items:center; border-radius:5px; color:var(--deck-text); cursor:help; font-size:10px; font-weight:700; }
.stage-heatmap .heat:focus-visible { outline:2px solid var(--deck-accent); outline-offset:2px; }
.heat-100{background:rgba(45,45,186,.26)}.heat-92{background:rgba(45,45,186,.24)}.heat-73{background:rgba(45,45,186,.19)}.heat-61{background:rgba(45,45,186,.16)}.heat-55{background:rgba(45,45,186,.14)}.heat-46{background:rgba(45,45,186,.12)}.heat-35{background:rgba(45,45,186,.10)}.heat-28{background:rgba(45,45,186,.08)}.heat-24{background:rgba(45,45,186,.065)}.heat-14{background:rgba(45,45,186,.045)}.heat-0{background:rgba(10,10,60,.025)}
.stage-rank-note { margin:8px 0 0; color:var(--deck-muted); font-size:12px; line-height:1.3; }

@media (max-width:760px) {
  .stage-bars { gap:6px; }
  .stage-bars > div { grid-template-columns:105px minmax(30px,1fr) 44px; }
  .stage-bars--channels > div { grid-template-columns:132px minmax(30px,1fr) 44px; }
  .stage-heatmap { min-width:295px; }
  .stage-heatmap__head span { font-size:9px; }
}



.e3-screen .need-insights { grid-template-rows:repeat(3, max-content); align-content:start; }
.e3-relationship-card { padding:10px 10px 8px; }
.e3-relationship-card__body { display:grid; grid-template-columns:minmax(165px,1.2fr) minmax(118px,.8fr); gap:8px; align-items:center; margin-top:4px; }
.e3-relationship-card__note { display:block; margin:0; padding-left:8px; border-left:2px solid rgba(45,45,186,.18); }
.e3-relationship-chart { display:block; width:100%; max-width:none; height:auto; margin:0; overflow:visible; }
.e3-sources-card { padding-bottom:8px; }
.e3-sources-card .need-insight-card__note { margin-top:4px; }
.e3-sources-card .stage-bars { gap:4px; margin-top:6px; }
.e3-relationship-chart__grid { stroke:rgba(45,45,186,.14); stroke-dasharray:3 3; }
.e3-relationship-chart__axis { stroke:rgba(20,22,64,.4); stroke-width:1; }
.e3-relationship-chart__axis-label { fill:var(--deck-muted); font-family:inherit; font-size:10px; }
.e3-relationship-chart__caption { fill:var(--deck-muted); font-family:inherit; font-size:10px; font-weight:600; }
.e3-relationship-chart__label { fill:var(--deck-text); font-family:inherit; font-size:11px; font-weight:700; }
.e3-relationship-chart__dot { fill:var(--deck-accent-light); stroke:#fff; stroke-width:2; filter:drop-shadow(0 1px 2px rgba(45,45,186,.25)); }
.e3-relationship-chart__dot--bosch { fill:var(--deck-accent); }
.e3-relationship-chart__dot--trw { fill:#27a86a; }
@media (max-height:820px) and (min-width:761px) { .e3-relationship-card { padding:8px 9px 7px; } .e3-relationship-card__body { gap:7px; margin-top:3px; } .e3-relationship-chart { height:96px; width:auto; justify-self:center; } }
@media (max-height:680px) and (min-width:761px) { .e3-relationship-chart { height:78px; } .e3-relationship-chart__caption { display:none; } }
@media (max-width:760px) { .e3-screen .need-insights { grid-template-rows:none; } }
@media (max-width:600px) { .e3-relationship-card__body { grid-template-columns:1fr; gap:6px; } .e3-relationship-chart { width:100%; max-width:100%; height:auto; margin:0 auto; } .e3-relationship-card__note { padding:6px 0 0; border-top:2px solid rgba(45,45,186,.18); border-left:0; } }



.e4-screen .need-insights { grid-template-rows:repeat(3, max-content); align-content:start; }
@media (max-width:760px) { .e4-screen .need-insights { grid-template-rows:none; } }



.e5-local-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:10px; }
.e5-local-list > div { display:grid; gap:2px; padding:8px; border-radius:7px; background:rgba(45,45,186,.06); cursor:help; }.e5-local-list b { color:var(--deck-text); font-size:12px; }.e5-local-list span { color:var(--deck-accent); font-size:15px; font-weight:700; }.e5-local-list small { color:var(--deck-muted); font-size:10px; }
.e5-local-compare { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:9px; }
.e5-local-region { min-width:0; padding:8px; border-radius:7px; background:rgba(45,45,186,.06); }
.e5-local-region__head { display:flex; align-items:baseline; justify-content:space-between; gap:5px; }
.e5-local-region__head b { color:var(--deck-text); font-size:12px; }
.e5-local-region__head small { color:var(--deck-muted); font-size:12px; white-space:nowrap; }
.e5-local-region__group { display:grid; gap:3px; margin-top:7px; }
.e5-local-region__group > span { color:var(--deck-muted); font-size:12px; font-weight:700; text-transform:uppercase; }
.e5-local-region__group > div { display:flex; align-items:baseline; justify-content:space-between; gap:4px; min-width:0; color:var(--deck-text); font-size:12px; line-height:1.2; cursor:help; }
.e5-local-region__group > div > span { min-width:0; overflow-wrap:anywhere; }
.e5-local-region__group b { color:var(--deck-accent); font-size:12px; white-space:nowrap; }
.e5-local-note { margin:7px 0 0; color:var(--deck-muted); font-size:12px; line-height:1.2; }
.e5-local-takeaway { margin:8px 0 0; padding:7px 8px; border-left:3px solid var(--deck-accent); border-radius:0 6px 6px 0; background:var(--deck-accent-bg); color:var(--deck-text); font-size:12px; line-height:1.25; }
.e5-source-status { display:grid; gap:8px; margin-top:12px; }.e5-source-status > div { display:grid; grid-template-columns:20px minmax(0,1fr) auto; gap:7px; align-items:center; padding:9px; border-radius:7px; background:rgba(45,45,186,.06); }.e5-source-status img { width:18px; height:18px; }.e5-source-status span { color:var(--deck-text); font-size:12px; }.e5-source-status b { color:var(--deck-accent); font-size:16px; }.e5-source-status small { grid-column:2 / -1; color:var(--deck-muted); font-size:10px; }
.e5-screen .need-insights { grid-template-rows:repeat(3, max-content); align-content:start; }
/* Локальный региональный срез убран из публичной композиции экрана. */
.e5-screen .need-insights [aria-labelledby="e5-local"] { display:none !important; }
@media (max-width:760px) { .e5-screen .need-insights { grid-template-rows:none; }.e5-local-list { grid-template-columns:1fr 1fr; }.e5-local-compare { grid-template-columns:1fr; }.e5-local-region__head small { white-space:normal; text-align:right; } }



.e6-screen .need-insights { grid-template-rows:repeat(3, max-content); align-content:start; }
@media (max-width:760px) { .e6-screen .need-insights { grid-template-rows:none; } }


.conclusion-screen {
  display:grid;
  grid-template-rows:repeat(4,auto);
  gap:12px;
  align-content:start;
  min-width:0;
}

.conclusion-screen__intro {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
}

.conclusion-screen__intro > div,
.conclusion-findings,
.conclusion-finding,
.conclusion-card,
.content-playbook,
.content-actions,
.content-actions article,
.channel-bars > div,
.conclusion-rankings li {
  min-width:0;
}

.conclusion-screen__title {
  max-width:1050px;
  margin:5px 0 0;
  font-size:clamp(28px,2.25vw,38px);
  line-height:1.08;
  letter-spacing:-.03em;
  overflow-wrap:anywhere;
}

.conclusion-screen__lead {
  max-width:none;
  width:100%;
  margin:9px 0 0;
  color:var(--deck-muted);
  font-size:14px;
  line-height:1.4;
}

.conclusion-findings {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.conclusion-finding {
  display:grid;
  grid-template-columns:24px 1fr;
  column-gap:6px;
  row-gap:5px;
  align-content:start;
  padding:10px 12px 9px;
  border:1px solid var(--deck-border);
  border-radius:var(--deck-radius-sm);
  background:var(--deck-surface);
  box-shadow:var(--deck-shadow-sm);
}

.conclusion-finding > span {
  display:grid;
  width:22px;
  height:22px;
  place-items:center;
  border-radius:50%;
  background:var(--deck-accent-bg);
  color:var(--deck-accent);
  font-size:12px;
  font-weight:800;
}

.conclusion-finding h2 {
  margin:1px 0 0;
  color:var(--deck-text);
  font-size:14px;
  line-height:1.1;
}

.conclusion-finding p {
  grid-column:1 / -1;
  margin:0;
  color:var(--deck-muted);
  font-size:16px;
  line-height:1.15;
}

.conclusion-screen__grid {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:12px;
}

.conclusion-card,
.content-playbook {
  padding:14px;
  border:1px solid var(--deck-border);
  border-radius:var(--deck-radius-sm);
  background:var(--deck-surface);
  box-shadow:var(--deck-shadow-sm);
}

.conclusion-card__head {
  display:flex;
  justify-content:space-between;
  gap:10px;
}

.conclusion-card__head > div > span,
.content-playbook__intro span {
  color:var(--deck-accent);
  font-size:12px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.content-playbook__intro span { font-size:10px; }

.conclusion-card__head h2 {
  margin:3px 0 0;
  font-size:17px;
  line-height:1.2;
}

.conclusion-card__head > img {
  width:24px;
  height:24px;
}

.conclusion-card__note {
  margin:8px 0;
  color:var(--deck-muted);
  font-size:12px;
  line-height:1.35;
}

.channel-bars {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px 16px;
  margin-top:10px;
}

.channel-bars > div {
  display:grid;
  grid-template-columns:72px minmax(70px,1fr) 94px;
  gap:6px;
  align-items:center;
}

.channel-bars span,
.channel-bars small {
  color:var(--deck-text);
  font-size:12px;
  line-height:1.15;
}

.channel-bars > div > i {
  display:grid;
  gap:2px;
}

.channel-bars b,
.channel-bars em,
.channel-bars strong {
  display:block;
  width:var(--w);
  height:5px;
  border-radius:999px;
}

.channel-bars b { background:var(--deck-accent); }
.channel-bars em { background:var(--deck-accent-light); }
.channel-bars strong { background:var(--deck-success); }
.channel-bars small { color:var(--deck-muted); text-align:right; }

.channel-legend {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:10px;
  color:var(--deck-muted);
  font-size:12px;
}

.channel-legend span { display:flex; align-items:center; gap:4px; }
.channel-legend i { width:10px; height:6px; border-radius:99px; }
.channel-legend span:nth-child(1) i { background:var(--deck-accent); }
.channel-legend span:nth-child(2) i { background:var(--deck-accent-light); }
.channel-legend span:nth-child(3) i { background:var(--deck-success); }

.conclusion-rankings {
  display:grid;
  gap:13px;
  margin-top:13px;
}

.conclusion-rankings > div > b {
  color:var(--deck-muted);
  font-size:12px;
  line-height:1.25;
}

.conclusion-rankings ol {
  display:grid;
  gap:7px;
  margin:8px 0 0;
  padding:0;
  list-style:none;
}

.conclusion-rankings li {
  display:grid;
  grid-template-columns:76px minmax(60px,1fr) 92px;
  gap:6px;
  align-items:center;
}

.conclusion-rankings span {
  color:var(--deck-text);
  font-size:12px;
  font-weight:600;
}

.conclusion-rankings i {
  display:block;
  width:var(--bar);
  height:7px;
  border-radius:99px;
  background:linear-gradient(90deg,var(--deck-accent-light),var(--deck-accent));
}

.conclusion-rankings em {
  color:var(--deck-muted);
  font-size:12px;
  font-style:normal;
  text-align:right;
}

.content-playbook {
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:16px;
  padding:13px 14px;
}

.content-playbook__intro {
  display:flex;
  gap:9px;
  align-items:start;
}

.content-playbook__intro img {
  width:22px;
  height:22px;
}

.content-playbook__intro h2 {
  margin:4px 0 0;
  font-size:16px;
  line-height:1.2;
}

.content-actions {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:9px;
}

.content-actions article {
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:7px;
  align-items:start;
}

.content-actions i {
  display:grid;
  width:21px;
  height:21px;
  place-items:center;
  border-radius:50%;
  background:var(--deck-accent);
  color:#fff;
  font-size:12px;
  font-style:normal;
  font-weight:700;
}

.content-actions b,
.content-actions span {
  display:block;
  font-size:12px;
  line-height:1.3;
}

.content-actions b { color:var(--deck-text); }
.content-actions span { margin-top:3px; color:var(--deck-muted); }

.conclusion-screen__footnote {
  margin:0;
  color:var(--deck-muted);
  font-size:12px;
  line-height:1.3;
}

/* На высоких десктопах свободную высоту занимает полезная аналитика,
   а не верхние тезисы или пустое поле внизу экрана. */
@media (min-width:1181px) and (min-height:950px) {
  .conclusion-screen { grid-template-rows:auto auto minmax(325px,1fr) auto; }

  .conclusion-card {
    display:flex;
    min-height:0;
    flex-direction:column;
  }

  .channel-bars {
    align-content:center;
    flex:1 1 auto;
    gap:18px 24px;
  }

  .channel-bars b,
  .channel-bars em,
  .channel-bars strong { height:7px; }

  .conclusion-rankings {
    align-content:space-evenly;
    flex:1 1 auto;
    gap:18px;
  }

  .conclusion-rankings ol { gap:10px; }
}

/* На невысоких ноутбуках: shell остаётся viewport-deck, активный слайд скроллится внутри. */
@media (max-height:820px) and (min-width:901px) {
  html, body {
    width: 100%;
    height: 100%;
    overflow: hidden;
  }
  .deck {
    height: 100vh !important;
    min-height: 0 !important;
  }
  .deck__shell {
    height: 100% !important;
    min-height: 0 !important;
    padding-bottom: 56px;
  }
  .deck-main {
    position: relative !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  .deck-main > .slide {
    position: absolute !important;
    inset: 0 !important;
    display: none !important;
    height: auto !important;
    max-height: 100% !important;
    overflow: auto !important;
    transform: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  .deck-main > .slide.slide--active {
    display: block !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  .conclusion-screen,
  .need-screen,
  .method-screen,
  .appendix-screen {
    height: auto !important;
    min-height: 100% !important;
    overflow: visible !important;
  }
}

@media (max-width:1180px) {
  .conclusion-screen__intro { align-items:flex-start; }
  .conclusion-screen__grid,
  .content-playbook { grid-template-columns:1fr; }
  .content-actions { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:760px) {
  .conclusion-screen { gap:10px; }
  .conclusion-screen__intro { display:grid; gap:12px; }
  .conclusion-screen__intro > div,
  .conclusion-screen__title,
  .conclusion-screen__lead { width:100%; max-width:100%; min-width:0; }
  .conclusion-screen__title { font-size:clamp(24px,8vw,32px); }
  .conclusion-screen__lead { font-size:13px; }
  .conclusion-findings,
  .channel-bars,
  .content-actions { grid-template-columns:1fr; }
  .conclusion-finding { padding:9px 10px 8px; }
  .conclusion-card,
  .content-playbook { padding:12px; }
  .channel-bars > div { grid-template-columns:82px minmax(70px,1fr) 92px; }
  .conclusion-finding h2,
  .conclusion-finding p,
  .conclusion-card__head h2,
  .content-playbook__intro h2,
  .content-actions b,
  .content-actions span { overflow-wrap:anywhere; }
}


.appendix-screen{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px;min-width:0}.appendix-screen__intro{display:flex;justify-content:space-between;gap:24px;align-items:end}.appendix-screen__intro h1{margin:5px 0 0;font-size:clamp(25px,2.35vw,38px);line-height:1.08;letter-spacing:-.03em}.appendix-screen__intro p{max-width:860px;margin:8px 0 0;color:var(--deck-muted);font-size:12px;line-height:1.4}.appendix-download{display:inline-flex;min-width:228px;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border-radius:9px;background:var(--deck-accent);color:#fff;font-size:12px;font-weight:700;text-decoration:none;box-shadow:0 7px 16px rgba(45,45,186,.2)}.appendix-download:hover{background:var(--deck-accent-light)}.appendix-download img{width:17px;height:17px;filter:brightness(0) invert(1)}.appendix-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.appendix-kpis>div{display:grid;grid-template-columns:22px 1fr;column-gap:7px;min-width:0;padding:10px 12px;border:1px solid var(--deck-border);border-radius:10px;background:var(--deck-surface);box-shadow:var(--deck-shadow-sm)}.appendix-kpis img{width:20px;height:20px;grid-row:span 2}.appendix-kpis b{font-size:18px;line-height:1;color:var(--deck-accent)}.appendix-kpis span{margin-top:3px;color:var(--deck-muted);font-size:10px;line-height:1.25}.appendix-screen__grid{display:grid;grid-template-columns:1.06fr .94fr;gap:12px;min-width:0;min-height:0}.appendix-card,.appendix-rules{min-width:0;padding:14px;border:1px solid var(--deck-border);border-radius:var(--deck-radius-sm);background:var(--deck-surface);box-shadow:var(--deck-shadow-sm)}.appendix-card__head{display:flex;justify-content:space-between;gap:10px;min-width:0}.appendix-card__head>div{min-width:0}.appendix-card__head>div>span,.appendix-rules__intro span{display:block;color:var(--deck-accent);font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.appendix-card__head h2,.appendix-rules__intro h2{margin:3px 0 0;font-size:15px;line-height:1.2}.appendix-card__head>img{width:22px;height:22px}.coverage-table{display:grid;min-width:0;max-width:100%;margin-top:10px;border:1px solid var(--deck-border);border-radius:8px;overflow:hidden}.coverage-table>div{display:grid;grid-template-columns:minmax(180px,1fr) 68px 70px 52px;gap:8px;align-items:center;min-height:29px;padding:5px 9px;border-top:1px solid rgba(10,10,60,.08)}.coverage-table>div:first-child{border-top:0}.coverage-table__head{background:rgba(45,45,186,.06);color:var(--deck-muted);font-size:8px;font-weight:700;text-transform:uppercase}.coverage-table b{font-size:10px;line-height:1.15}.coverage-table span,.coverage-table em{font-size:10px;font-style:normal;text-align:right;font-variant-numeric:tabular-nums}.coverage-table em{color:var(--deck-success);font-weight:700}.coverage-table__total{background:rgba(45,45,186,.05)}.coverage-table__total b,.coverage-table__total span{color:var(--deck-accent);font-weight:700}.appendix-fields{display:grid;gap:7px;margin:10px 0 0;padding:0;list-style:none}.appendix-fields li{display:grid;grid-template-columns:27px minmax(0,1fr);gap:8px;align-items:start}.appendix-fields i{display:grid;width:25px;height:25px;place-items:center;border-radius:6px;background:rgba(45,45,186,.09);color:var(--deck-accent);font-size:8px;font-style:normal;font-weight:700}.appendix-fields b{display:block;font-size:10px;line-height:1.2}.appendix-fields span{display:block;margin-top:2px;color:var(--deck-muted);font-size:9px;line-height:1.25}.appendix-catalog__note{margin:9px 0 0;padding-top:8px;border-top:1px solid rgba(10,10,60,.08);color:var(--deck-muted);font-size:9px;line-height:1.3}.appendix-rules{display:grid;grid-template-columns:.8fr 2.2fr;gap:18px;padding:12px 14px}.appendix-rules__intro{display:flex;gap:8px;align-items:flex-start;min-width:0}.appendix-rules__items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.appendix-rules__items b{display:block;font-size:10px;line-height:1.2}.appendix-rules__items span{display:block;margin-top:3px;color:var(--deck-muted);font-size:9px;line-height:1.3}@media(max-width:1000px){.deck,.deck__shell{height:auto;min-height:100vh}.deck-main{min-height:930px}.appendix-screen{overflow:visible}.appendix-screen__grid,.appendix-rules{grid-template-columns:1fr}.appendix-rules__items{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.appendix-screen{width:100%;max-width:100%;gap:12px;padding:0 4px;box-sizing:border-box}.appendix-screen__intro{display:grid;gap:14px;align-items:start}.appendix-screen__intro h1{font-size:clamp(25px,8vw,32px)}.appendix-screen__intro p{font-size:13px}.appendix-download{width:100%;min-width:0;min-height:48px}.appendix-kpis{grid-template-columns:1fr}.appendix-screen__grid{display:grid;min-width:0}.appendix-card,.appendix-rules{padding:12px}.coverage-table{width:100%;overflow-x:auto}.coverage-table>div{min-width:430px}.appendix-card__head h2,.appendix-rules__intro h2{font-size:16px}.appendix-fields b,.appendix-rules__items b{font-size:12px}.appendix-fields span,.appendix-catalog__note,.appendix-rules__items span{font-size:12px}.appendix-rules__items{grid-template-columns:1fr;gap:10px}.appendix-kpis b{font-size:20px}.appendix-kpis span{font-size:12px}}
.appendix-screen{padding-bottom:28px}
.appendix-kpis span,.appendix-card__head>div>span,.appendix-rules__intro span,.coverage-table__head,.coverage-table b,.coverage-table span,.coverage-table em,.appendix-fields i,.appendix-fields b,.appendix-fields span,.appendix-catalog__note,.appendix-rules__items b,.appendix-rules__items span{font-size:12px}


/* Mid widths that still use the desktop shell: only the active slide is laid out. */
@media (min-width: 901px) and (max-width: 1100px) {
  .deck-main { position: relative; display: block; overflow: hidden; min-height: 0; }
  .deck-main > .slide {
    position: absolute;
    inset: 0;
    display: none;
    opacity: 0;
    pointer-events: none;
    overflow: auto;
  }
  .deck-main > .slide.slide--active {
    display: block;
    opacity: 1;
    pointer-events: auto;
  }
}

.deck-progress__item { cursor: pointer; }
.deck-progress__item:focus-visible { outline: 2px solid var(--deck-accent); outline-offset: 2px; }

/* ============================================
   УЛУЧШЕНИЕ ДАШБОРДА: крупные шрифты и читаемость,
   инсайты — под таблицей в строчку,
   блок "Как AI помогает..." — под ними слева
   ============================================ */
@media (min-width: 761px) and (max-width: 1099px) {
  /* Планшеты: исходная компоновка — таблица + инсайты справа */
  .need-screen__content {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(250px, .85fr);
    grid-template-rows: auto;
    overflow: visible !important;
  }
  .need-screen__content .brand-explorer { height: 100%; }
  .need-insights {
    grid-template-rows: repeat(3, max-content) !important;
    align-content: start !important;
    overflow: visible !important;
  }
}

@media (min-width: 1100px) {
  /* --- Десктоп: таблица на всю ширину, инсайты под ней --- */

  /* Активный слайд этапа должен уметь скроллиться, если контент выше viewport */
  .slide[data-slide-key="need"],
  .slide[data-slide-key="selection"],
  .slide[data-slide-key="decision"],
  .slide[data-slide-key="comparison"],
  .slide[data-slide-key="purchase"],
  .slide[data-slide-key="support"],
  .slide[data-slide-key="methodology"],
  .slide[data-slide-key="conclusions"],
  .slide[data-slide-key="appendix"] {
    overflow-y: auto !important;
  }

  /* Экран: обычная потоковая страница без grid-сжатия */
  .screen.need-screen,
  .need-screen {
    display: block !important;
    height: auto !important;
    min-height: 100% !important;
    overflow: visible !important;
    grid-template-rows: none !important;
    gap: 12px;
  }

  /* Все контейнеры — без скрытия */
  .need-screen__content,
  .need-insights,
  .brand-explorer,
  .need-insight-card {
    overflow: visible !important;
    min-height: 0 !important;
  }

  /* Убираем скрытие прокрутки у слайда */
  .slide[data-slide-key="need"] {
    overflow-y: auto !important;
  }
  .slide[data-slide-key="selection"] {
    overflow-y: auto !important;
  }
  .slide[data-slide-key="decision"] {
    overflow-y: auto !important;
  }
  .slide[data-slide-key="comparison"] {
    overflow-y: auto !important;
  }
  .slide[data-slide-key="purchase"] {
    overflow-y: auto !important;
  }
  .slide[data-slide-key="support"] {
    overflow-y: auto !important;
  }

  /* Заголовок этапа, контент, вывод — просто блоки друг под другом */
  .need-screen__intro {
    margin-bottom: 12px;
  }

  /* Таблица занимает всю ширину, инсайты — под ней */
  .need-screen__content {
    display: block !important;
    width: 100%;
  }

  .need-screen__content .brand-explorer {
    width: 100%;
    margin-bottom: 12px;
  }

  /* Инсайты: в строчку (сетка из 2 колонок), карточки равной высоты */
  .need-insights,
  .e2-screen .need-insights,
  .e3-screen .need-insights,
  .e4-screen .need-insights,
  .e5-screen .need-insights,
  .e6-screen .need-insights {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: none !important;
    align-items: stretch;
    align-content: start;
    gap: 12px;
    width: 100%;
  }

  /* 5 этап: все инсайты квадратами по сетке — ничего не скрываем */
  .e5-screen .need-insights .need-insight-card {
    height: auto !important;
    align-content: start;
  }
  .e5-screen .need-insights .need-insight-card--path {
    grid-column: auto !important;
    width: auto !important;
    order: 0 !important;
  }
  .e5-screen .need-insights .stage-insight-card--plain,
  .e5-screen .need-insights .need-insight-card--local {
    height: auto !important;
    align-content: start;
  }

  /* Карточки внутри сетки растянуты до равной высоты */
  .need-insight-card {
    height: 100%;
  }

  /* Текстовый блок "Как AI ..." — всегда сверху на всю ширину,
     под ним 2 графика, как на 4 этапе (comparison), на всех этапах CJM */
  .need-insight-card--path {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    height: auto !important;
    order: -1 !important;
  }

  /* Таблица: компактная прокрутка */
  .brand-explorer__scroll {
    height: auto;
    max-height: 55vh;
    overflow-y: auto;
  }

  /* Увеличение шрифтов таблицы */
  .brand-table th button,
  .brand-table th,
  .brand-table td { font-size: 14px; line-height: 1.2; }
  .brand-table td { height: 40px; padding: 10px 12px; }
  .brand-table th button { padding: 9px 12px; }
  .brand-table th i { font-size: 10px; }
  .metric-tip { width: 18px; height: 18px; flex-basis: 18px; font-size: 12px; }

  /* Увеличение шрифтов заголовков и пояснений */
  .brand-explorer__header h2 { font-size: 22px; line-height: 1.15; }
  .brand-explorer__header > div:first-child > span { font-size: 14px; }
  .brand-explorer__lead { font-size: 14px; line-height: 1.4; }
  .brand-explorer__filters label { font-size: 13px; }
  .brand-explorer__filters input,
  .brand-explorer__filters select { font-size: 14px; height: 38px; }
  .channel-multiselect summary { font-size: 13px; }
  .channel-multiselect summary b { font-size: 14px; height: 38px; }
  .channel-multiselect__options strong { font-size: 13px; }
  .channel-multiselect__options label { font-size: 13px; }

  /* Увеличение шрифтов инсайт-карточек */
  .need-insight-card__head > span { font-size: 13px; }
  .need-insight-card__head h2 { font-size: 16px; line-height: 1.2; }
  .need-insight-card__note { font-size: 13px; line-height: 1.3; }

  /* Бар-диаграммы */
  .insight-bars span,
  .insight-bars b,
  .stage-bars span,
  .stage-bars b { font-size: 13px; }

  /* Шаги "Как AI ..." */
  .need-path b { font-size: 14px; }
  .need-path span { font-size: 13px; line-height: 1.25; }

  /* Экран: заголовок и вводный текст */
  .need-screen__intro .section-kicker { font-size: 14px; }
  .need-screen__lead { font-size: 16px; line-height: 1.45; }

  /* Итоговый вывод этапа */
  .need-screen__conclusion p { font-size: 15px; line-height: 1.25; }
  .need-screen__conclusion h2 { font-size: 15px; }

  /* Мелкие пояснения */
  .brand-explorer__meta,
  .brand-explorer__note,
  .stage-rank-note { font-size: 13px; }

  /* Инсайт-карточки: выравнивание по высоте */
  .need-insight-card {
    display: grid;
  }
}

/* =========================================================
   FINAL RESPONSIVE POLISH
   Cascade-winning rules for perfect adaptive across devices.
   Breakpoints: 1280 desktop · 1100 laptop · 900 tablet · 760 phone · 480 narrow
   ========================================================= */

/* Prevent any leftover absolute slides from stacking on mid widths. */
@media (max-width: 1100px) {
  .deck-main { position: relative; }
  .deck-main > .slide:not(.slide--active) {
    pointer-events: none;
  }
}

/* Laptop / small desktop: keep shell breathing room, no horizontal bleed. */
@media (max-width: 1280px) {
  .deck__shell {
    width: 100%;
    max-width: 100%;
    padding-left: 12px;
    padding-right: 12px;
  }
  .screen { min-width: 0; }
  .brand-explorer,
  .need-screen__content,
  .method-screen,
  .conclusion-screen,
  .appendix-screen { min-width: 0; }
}

/* Unified mobile page mode (phones + portrait tablets). */
@media (max-width: 900px) {
  html, body {
    height: auto !important;
    min-height: 100%;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  .deck {
    width: 100% !important;
    height: auto !important;
    min-height: 100dvh !important;
  }

  .deck__shell {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-width: 100% !important;
    padding: 8px 10px calc(76px + env(safe-area-inset-bottom)) !important;
    gap: 8px !important;
  }

  .deck-main {
    position: static !important;
    display: block !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  .deck-main > .slide {
    position: static !important;
    inset: auto !important;
    display: none !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: none !important;
  }

  .deck-main > .slide.slide--active {
    display: block !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .screen {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 12px 4px 20px !important;
    overflow: visible !important;
  }

  /* Header */
  .deck-header {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
    min-height: 0 !important;
    padding: 10px 12px !important;
  }
  .deck-header__left { width: 100%; flex-wrap: wrap; gap: 8px; }
  .deck-header__meta { flex: 1 0 100%; min-width: 0; }
  .deck-header__name {
    font-size: 12px !important;
    line-height: 1.3 !important;
    overflow-wrap: anywhere;
  }
  .deck-header__date { align-self: flex-start; }

  /* Section nav: horizontal chips */
  .deck-progress {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 6px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .deck-progress::-webkit-scrollbar { display: none; }
  .deck-progress__item,
  a.deck-progress__item {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 108px !important;
    min-height: 36px !important;
    padding: 8px 10px !important;
    font-size: 11px !important;
    white-space: nowrap;
  }

  /* Footer dock */
  .deck-footer {
    position: fixed !important;
    z-index: 1000 !important;
    inset: auto 0 0 0 !important;
    left: 0 !important;
    right: 0 !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom)) !important;
    border-radius: 12px 12px 0 0 !important;
    transform: none !important;
  }
  .deck-footer__left { display: none !important; }
  .deck-footer__nav {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
    gap: 8px !important;
    align-items: center;
  }
  .deck-footer__nav .ig-btn {
    width: 100%;
    min-height: 44px !important;
    padding: 8px 10px !important;
    font-size: 13px !important;
  }
  .deck-footer__counter {
    min-width: 42px;
    font-size: 13px;
    text-align: center;
  }

  /* Generic grids → single column */
  .screen__body,
  .screen__body--intro,
  .method-screen__bottom,
  .method-flow__steps,
  .measure-list,
  .cjm-map__stages,
  .need-screen__content,
  .selection-screen__grid,
  .selection-screen__bottom,
  .decision-screen__grid,
  .compare-screen__bottom,
  .purchase-screen__bottom,
  .support-screen__grid,
  .conclusion-screen__grid,
  .content-playbook,
  .content-actions,
  .channel-bars,
  .appendix-screen__grid,
  .appendix-rules {
    grid-template-columns: 1fr !important;
  }

  .screen__grid--metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  /* Touch-friendly controls */
  .ig-btn { min-height: 44px; }
  .brand-explorer__filters input,
  .brand-explorer__filters select,
  .channel-multiselect summary b {
    height: 44px !important;
    min-height: 44px !important;
    font-size: 14px !important;
  }
  .brand-table th button { min-height: 44px; }
  .metric-tip {
    width: 28px !important;
    height: 28px !important;
    flex-basis: 28px !important;
    font-size: 13px !important;
  }

  /* Tables: horizontal scroll instead of crushing columns */
  .brand-explorer__scroll {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    overflow: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  .brand-table { min-width: 640px; }
  .coverage-table { overflow-x: auto; }
  .coverage-table > div { min-width: 430px; }

  /* Multiselect dropdown fits viewport */
  .channel-multiselect { min-width: 0; width: 100%; }
  .channel-multiselect__options {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: none !important;
    max-height: min(50dvh, 320px);
    overflow-y: auto;
    grid-template-columns: 1fr !important;
  }

  /* Stage kickers / long titles */
  .section-kicker.stage-kicker {
    max-width: 100%;
    font-size: clamp(18px, 5.5vw, 22px) !important;
    overflow-wrap: anywhere;
  }
  .ig-h1,
  .method-screen__title,
  .conclusion-screen__title,
  .appendix-screen__intro h1 {
    overflow-wrap: anywhere;
    hyphens: auto;
  }

  /* CJM map stages stack */
  .cjm-map__stages {
    display: grid !important;
    grid-template-columns: 1fr !important;
    height: auto !important;
    gap: 10px !important;
  }
  .cjm-stage {
    min-height: 0 !important;
  }
  .cjm-stage::after { display: none !important; }

  /* Insights carousel on stage screens */
  .need-insights,
  .e2-screen .need-insights,
  .e3-screen .need-insights,
  .e4-screen .need-insights,
  .e5-screen .need-insights,
  .e6-screen .need-insights {
    display: flex !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding-bottom: 6px !important;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }
  .need-insight-card {
    flex: 0 0 min(82vw, 300px) !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    scroll-snap-align: start;
  }
  .need-insight-card--path {
    flex: 0 0 min(90vw, 340px) !important;
    order: 0 !important;
    grid-column: auto !important;
  }

  /* Conclusions / appendix readability */
  .conclusion-findings { grid-template-columns: 1fr !important; }
  .content-actions { grid-template-columns: 1fr !important; }
  .appendix-kpis { grid-template-columns: 1fr !important; }
  .appendix-rules__items { grid-template-columns: 1fr !important; }
  .appendix-download { width: 100%; min-width: 0; }

  /* Bars with long labels */
  .category-bars > div,
  .brand-dots > div,
  .channel-bars > div,
  .conclusion-rankings li {
    grid-template-columns: minmax(72px, 30%) minmax(0, 1fr) auto !important;
  }

  /* Popovers stay in viewport */
  .metric-tip-popover,
  .insight-bar-popover,
  .table-cell-popover {
    max-width: calc(100vw - 24px) !important;
  }
}

/* Narrow phones */
@media (max-width: 560px) {
  .screen__grid--metrics {
    grid-template-columns: 1fr !important;
  }
  .screen-01 .intro-copy__pdf {
    width: 100% !important;
  }
  .brand-explorer__filters {
    grid-template-columns: 1fr !important;
  }
  .deck-progress__item,
  a.deck-progress__item {
    min-width: 96px !important;
    font-size: 10px !important;
  }
  .need-metrics__grid {
    grid-template-columns: 1fr 1fr !important;
  }
  .measure-list {
    grid-template-columns: 1fr !important;
  }
  .e5-local-list {
    grid-template-columns: 1fr !important;
  }
}

/* Very narrow */
@media (max-width: 480px) {
  .deck__shell {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  .deck-header { padding: 8px 10px !important; }
  .voice-brand__logo { width: 28px; height: 28px; }
  .deck-header__name { font-size: 11px !important; }
  .screen-01 .intro-copy__title {
    font-size: clamp(22px, 7vw, 28px) !important;
    line-height: 1.12 !important;
  }
  .screen-01 .intro-copy__text { font-size: 13px !important; }
  .brand-table { min-width: 580px; }
  .need-insight-card {
    flex-basis: min(88vw, 280px) !important;
  }
}

/* Short laptop viewports: reinforce single-slide scroll, never stack slides. */
@media (max-height: 820px) and (min-width: 901px) {
  html, body {
    height: 100% !important;
    overflow: hidden !important;
  }
  .deck {
    height: 100vh !important;
    min-height: 0 !important;
  }
  .deck__shell {
    height: 100% !important;
    min-height: 0 !important;
    padding-bottom: 56px !important;
  }
  .deck-main {
    position: relative !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  .deck-main > .slide {
    position: absolute !important;
    inset: 0 !important;
    display: none !important;
    overflow: auto !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: none !important;
  }
  .deck-main > .slide.slide--active {
    display: block !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
  .slide,
  .deck-progress__item,
  .ig-btn,
  .metric-box,
  .mobile-save-prompt {
    transition: none !important;
  }
}

/* ============================================
   ПОЛЬЗОВАТЕЛЬСКИЕ ПРАВКИ ПО РЕЗУЛЬТАТАМ РЕВЬЮ
   1. Порядок блоков инсайтов — по HTML
   2. Мобайл: блоки вертикально, а не вбок
   3. Таблицы: полные значения без «30…»
   4. График «Видимость и рекомендации» крупнее
   5. Google AIO — строка не переносится
   6. Крупные шрифты и отступы между блоками
   ============================================ */

/* 1 + 6. Инсайт-блоки в порядке разметки; отступы этапов на десктопе */
@media (min-width: 1100px) {
  .need-insight-card--path {
    order: 0 !important;
    grid-column: auto !important;
    width: 100% !important;
    height: auto !important;
  }
  .need-screen__content .brand-explorer {
    margin-bottom: 16px;
  }
  .need-screen__lead {
    font-size: 17px;
    line-height: 1.5;
  }
}

/* 2. Мобайл: инсайты обычной колонкой вместо горизонтальной ленты */
@media (max-width: 900px) {
  .need-insights,
  .e2-screen .need-insights,
  .e3-screen .need-insights,
  .e4-screen .need-insights,
  .e5-screen .need-insights,
  .e6-screen .need-insights {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: none !important;
    gap: 12px !important;
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    scroll-snap-type: none !important;
    -webkit-overflow-scrolling: auto !important;
    padding-bottom: 0 !important;
  }
  .need-insight-card,
  .need-insight-card--path {
    flex: none !important;
    width: 100% !important;
    max-width: 100% !important;
    scroll-snap-align: none !important;
  }
}

/* 3. Таблицы брендов/продавцов: полные значения, без обрезки */
@media (min-width: 1100px) {
  .brand-table th:not(:first-child),
  .brand-table td:not(:first-child) {
    width: auto !important;
    min-width: 64px !important;
  }
  .brand-table th:first-child,
  .brand-table td:first-child {
    min-width: 130px;
  }
  .brand-table th:last-child,
  .brand-table td:last-child {
    padding-right: 14px;
  }
  .brand-table td {
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
  }
  .brand-explorer__scroll {
    overflow-x: auto !important;
    overflow-y: auto !important;
  }
}

/* 4. График «Видимость и рекомендации» — крупнее и по всей ширине карточки */
@media (min-width: 761px) {
  .e3-relationship-card__body {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .e3-relationship-chart {
    height: 175px !important;
    width: 100% !important;
    max-width: none !important;
  }
  .e3-relationship-card__note {
    padding-left: 0;
    border-left: 0;
    padding-top: 8px;
    border-top: 2px solid rgba(45,45,186,.18);
  }
}
@media (max-height: 820px) and (min-width: 761px) {
  .e3-relationship-chart {
    height: 150px !important;
  }
}

/* 5. Google AIO и прочие строки каналов — всегда в одну строку */
.channel-bars > div {
  grid-template-columns: 82px minmax(70px, 1fr) auto !important;
  gap: 8px !important;
}
.channel-bars small {
  white-space: nowrap !important;
  margin-left: auto;
  padding-left: 8px;
}

/* 6. Крупные шрифты и увеличенные отступы между блоками */
.deck__shell {
  gap: 12px;
}
.screen {
  gap: 16px;
  padding: 20px 22px;
}
.need-screen,
.method-screen,
.conclusion-screen,
.appendix-screen {
  gap: 16px;
}
.need-screen__lead,
.method-screen__lead,
.conclusion-screen__lead {
  font-size: 16px;
  line-height: 1.5;
}
.need-insight-card__head h2 {
  font-size: 17px;
  line-height: 1.2;
}
.need-insight-card__note {
  font-size: 14px;
  line-height: 1.35;
}
.insight-bars span,
.insight-bars b,
.stage-bars span,
.stage-bars b {
  font-size: 14px;
}
.need-path b {
  font-size: 15px;
}
.need-path span {
  font-size: 14px;
  line-height: 1.3;
}
.brand-explorer__header h2 {
  font-size: 24px;
  line-height: 1.15;
}
.brand-explorer__lead {
  font-size: 15px;
  line-height: 1.45;
}
.brand-explorer__meta,
.brand-explorer__note,
.stage-rank-note {
  font-size: 14px;
}
.section-kicker.stage-kicker .stage-kicker__text {
  font-size: clamp(24px, 2.2vw, 32px);
}

/* --- Дополнительное усиление читабельности (итерация 2) --- */
.need-screen__conclusion p,
.need-screen__conclusion h2,
.stage-conclusion h2,
.stage-conclusion p {
  font-size: 16px;
  line-height: 1.3;
}
.brand-explorer__lead,
.need-insight-card__note,
.measure-panel__note,
.method-flow__steps small,
.method-flow__steps strong,
.measure-list span,
.measure-list small,
.measure-list b,
.cjm-stage__block p,
.cjm-stage__block li,
.cjm-stage__block--prompts li,
.need-path span,
.content-actions span,
.conclusion-rankings em,
.conclusion-card__note,
.reputation-query-note {
  font-size: 14px;
  line-height: 1.4;
}
.need-insight-card__head h2,
.conclusion-finding h2,
.content-playbook__intro h2 {
  font-size: 18px;
  line-height: 1.2;
}
.brand-explorer__header h2 {
  font-size: 26px;
  line-height: 1.15;
}
.method-screen__lead,
.conclusion-screen__lead,
.brand-explorer__lead {
  font-size: 17px;
  line-height: 1.5;
}
.brand-table th button,
.brand-table th,
.brand-table td {
  font-size: 15px;
}
.brand-table td {
  height: 44px;
  padding: 11px 14px;
}
.insight-bars > div {
  grid-template-columns: 150px minmax(30px, 1fr) 56px;
}
.stage-bars > div {
  grid-template-columns: 140px minmax(32px, 1fr) 60px;
}
.insight-bars span,
.insight-bars b,
.stage-bars span,
.stage-bars b,
.channel-bars span,
.channel-bars small,
.conclusion-rankings span,
.conclusion-rankings em {
  font-size: 15px;
}
.conclusion-rankings li,
.channel-bars > div {
  gap: 10px;
}
.section-kicker.stage-kicker .stage-kicker__text {
  font-size: clamp(26px, 2.4vw, 34px);
}
.need-screen__lead,
.method-screen__lead {
  font-size: 18px;
  line-height: 1.5;
}
.channel-bars b,
.channel-bars em,
.channel-bars strong {
  height: 7px;
}
.screen__grid--metrics-compact .metric-box__value {
  font-size: 24px;
}
.screen__grid--metrics-compact .metric-box__text {
  font-size: 13px;
}
.metric-box__head {
  font-size: 13px;
}

/* Отделение итогового вывода от блоков контента */
.need-screen__conclusion,
.stage-conclusion {
  margin-top: 24px;
}
@media (max-width: 900px) {
  .need-screen__conclusion,
  .stage-conclusion {
    margin-top: 20px;
  }
}

/* Компактные отступы в блоке «Как AI…» на десктопе */
.need-insight-card--path {
  padding: 14px 16px;
}
.need-insight-card--path .need-path {
  gap: 6px;
  margin-top: 8px;
}
.need-insight-card--path .need-path li {
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 8px;
}
.need-insight-card--path .need-path li + li {
  margin-top: 0;
}
.need-insight-card--path .need-path b {
  margin-bottom: 1px;
}
.need-insight-card--path .need-path span {
  margin-top: 1px;
}


/* ======================================================================
   Mobile readability pass (2026-08-21)
   — не меняет структуру, порядок блоков и данные; только читаемость
   ====================================================================== */

/* Горизонтально прокручиваемые таблицы: едва заметная тень у правого края,
   которая сигнализирует, что в таблице есть скрытые справа колонки/значения.
   Тень исчезает сама, когда прокрутка достигает конца контента. */
.brand-explorer__scroll,
.coverage-table {
  background-image:
    linear-gradient(to right, var(--deck-surface) 30%, rgba(255,255,255,0)),
    linear-gradient(to left, var(--deck-surface) 30%, rgba(255,255,255,0)),
    radial-gradient(farthest-side at 0 50%, rgba(20,22,64,.16), rgba(20,22,64,0)),
    radial-gradient(farthest-side at 100% 50%, rgba(20,22,64,.16), rgba(20,22,64,0));
  background-repeat: no-repeat;
  background-size: 24px 100%, 24px 100%, 10px 100%, 10px 100%;
  background-position: left center, right center, left center, right center;
  background-attachment: local, local, scroll, scroll;
}

/* Мелкие подписи и цифры-бейджи — поднимаем минимальный размер шрифта,
   чтобы значения не «сжёвывались» на маленьком экране. */
@media (max-width: 900px) {
  .brand-table td:first-child small { font-size: 11px; }
  .cjm-stage__top b {
    width: 23px;
    height: 23px;
    flex: 0 0 23px;
    font-size: 11px;
  }
  .method-flow__steps b { font-size: 11px; }
}

/* Таблица «Матрица покрытия» в приложении: на мобильном экране умещаем все
   4 колонки без горизонтальной прокрутки — подпись этапа переносится на
   вторую строку при необходимости, значения не обрезаются и не скрываются. */
@media (max-width: 760px) {
  .coverage-table {
    overflow-x: visible;
    background-image: none;
  }
  .coverage-table > div {
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) 42px 50px 38px;
    gap: 6px;
    padding: 7px 8px;
  }
  .coverage-table > div > b {
    overflow-wrap: break-word;
    word-break: break-word;
    white-space: normal;
    hyphens: auto;
  }
  .coverage-table > .coverage-table__head {
    min-height: 72px;
    height: auto;
    align-items: end;
    padding-top: 8px;
    padding-bottom: 8px;
  }
  .coverage-table__head span:not(:first-child) {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    justify-self: center;
    white-space: nowrap;
    font-size: 9px;
    letter-spacing: 0;
    line-height: 1.3;
  }
}
@media (max-width: 380px) {
  .coverage-table > div {
    grid-template-columns: minmax(0, 1fr) 38px 46px 34px;
    gap: 4px;
    padding: 7px 6px;
  }
  .coverage-table > div > span,
  .coverage-table > div > em {
    font-size: 11px;
  }
  .coverage-table__head span:first-child {
    font-size: 11px;
  }
}

/* Кнопка «В начало» имела атрибут hidden, но .ig-btn задаёт display:flex
   с более высоким приоритетом источника (авторские стили всегда сильнее
   стилей браузера по умолчанию), поэтому атрибут hidden игнорировался —
   кнопка была видна на каждом слайде, футер становился в 2 раза выше и
   перекрывал блок «Вывод» внизу при прокрутке. Возвращаем hidden силу. */
.deck-footer [hidden] {
  display: none !important;
}

/* ======================================================================
   Desktop row alignment (2026-08-21)
   Карточки в одном ряду (карта CJM, метрики, выводы, шаги) имеют текст
   разной длины: у одной карточки заголовок/описание в 1 строку, у соседней
   в 2. Из-за этого следующий блок внутри карточки («Боли», «Формула:»,
   описание шага) стартовал на разной высоте, и ряд выглядел «рваным».
   Резервируем под переменные по длине блоки высоту в 2-3 строки — ровно
   столько, сколько реально требуется самому длинному варианту текста —
   чтобы следующий за ним блок всегда начинался на одной линии у всех
   карточек ряда. Текст и данные не меняются, только резерв места под них.
   Только для десктопной раскладки — на мобильной карточки идут в один
   столбец и это не требуется. */
@media (min-width: 761px) {
  /* Карта пути пользователя (CJM): блок «Цель» — до 3 строк */
  .cjm-stage__block:not(.cjm-stage__block--pain):not(.cjm-stage__block--prompts) p {
    min-height: 68px;
  }

  /* Метрики (АРХИТЕКТУРА ЗАМЕРА / измерение AI): описание — до 2 строк */
  .measure-list span {
    display: block;
    min-height: 40px;
  }

  /* Выводы исследования: заголовок карточки — до 2 строк */
  .conclusion-finding h2 {
    min-height: 44px;
  }

  /* Пять шагов к проверяемому контенту: заголовок шага — до 2 строк */
  .content-actions b {
    min-height: 32px;
  }
}
