/* ============================================================
   web22.ru — стили страницы /kejsy (листинг карточек кейсов)
   Компоненты: hero-статы/финал/плитка — page-home.css,
   сноска .dev-seo — page-razrabotka.css.
   Форматы карточек: A (спарклайн) · B (сторителлинг) ·
   C (было→стало) · E (широкая-якорь, сеть) · F (маска-регресс).
   Медиа-оверрайды — после базовых правил.
   ============================================================ */

/* ===================== HERO ===================== */
.hero--kejsy { padding: 72px 0 64px; }

.hero--kejsy .hero__layout {
  grid-template-columns: 1.05fr 0.95fr;
}

.hero--kejsy .hero__inner { max-width: 640px; }
.hero--kejsy .hero__stats { margin-top: var(--space-8); }

/* ---------- Иллюстрация: сеть проектов (паттерн .monit/.czcalc) ---------- */
.kjnet {
  border-radius: var(--r-lg);
  border: 1px solid var(--border-str);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.015)), var(--bg-elev);
  box-shadow: 0 30px 80px -30px rgba(0, 0, 0, 0.8), 0 0 60px -20px var(--glow);
  padding: var(--space-5);
  backdrop-filter: blur(6px);
}

.kjnet__head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 13px;
  border-bottom: 1px solid var(--border);
}
.kjnet__dots { display: inline-flex; gap: 5px; }
.kjnet__dots i {
  width: 9px; height: 9px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
}
.kjnet__title {
  font: 500 12.5px/1 var(--mono);
  color: var(--text-2);
  letter-spacing: 0.02em;
}
.kjnet__badge {
  margin-left: auto;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px dashed var(--border-str);
  font: 500 10.5px/1.3 var(--mono);
  letter-spacing: 0.06em;
  color: var(--muted);
  text-transform: uppercase;
}

.kjnet__rows {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-top: var(--space-4);
}
.kjnet__row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border-radius: var(--r-sm);
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.02);
  font-size: 12.5px;
  color: var(--text-2);
}
.kjnet__city { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kjnet__val {
  font: 600 12.5px/1 var(--mono);
  color: var(--text);
  white-space: nowrap;
}
.kjnet__arr { flex: none; width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; }
.kjnet__arr--up { border-bottom: 6px solid var(--ok); }
.kjnet__arr--down { border-top: 6px solid #f87171; }
.kjnet__arr--flat { width: 8px; height: 2px; background: var(--muted); border: none; border-radius: 2px; }

.kjnet__verdict {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: var(--space-4);
  padding: 12px 14px;
  border-radius: var(--r-md);
  border: 1px solid rgba(52, 211, 153, 0.35);
  background: rgba(52, 211, 153, 0.07);
  font-size: 13.5px;
  color: var(--text-2);
}
.kjnet__verdict b { color: var(--ok); }
.kjnet__verdict-dot {
  flex: none;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--ok);
  box-shadow: 0 0 10px var(--ok);
}

@media (max-width: 1024px) {
  .hero--kejsy .hero__layout { grid-template-columns: 1fr; }
  .hero--kejsy .hero__visual { max-width: 520px; }
}

@media (max-width: 640px) {
  .hero--kejsy .hero__visual { max-width: 440px; margin-top: var(--space-6); }
  .kjnet__rows { grid-template-columns: 1fr; }
}

/* ===================== ЛИСТИНГ КЕЙСОВ ===================== */
.kc-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-5);
}

.kc {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-6);
}

/* широкая карточка-якорь (формат E) */
.kc--e { grid-column: 1 / -1; }

.kc__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.kc__badge {
  padding: 5px 12px;
  border-radius: 999px;
  border: 1px solid rgba(91, 140, 255, 0.35);
  background: rgba(46, 107, 255, 0.10);
  font: 600 12px/1 var(--mono);
  color: var(--accent-2);
}

.kc__date {
  font: 500 11px/1.3 var(--mono);
  letter-spacing: 0.05em;
  color: var(--muted);
  text-transform: uppercase;
}

.kc__title {
  font-size: 19px;
  font-weight: 700;
}

.kc__figure {
  font: 700 clamp(26px, 2.6vw, 34px)/1.15 var(--mono);
  letter-spacing: -0.03em;
  margin-top: 2px;
}

.kc__figure-unit {
  font: 500 15px/1 var(--font);
  color: var(--muted);
  letter-spacing: 0;
}

.kc__figure-note {
  font-size: 13px;
  color: var(--muted);
}

/* --- спарклайн (формат A) --- */
.kc__spark { margin-top: var(--space-2); }
.kc__spark svg { width: 100%; height: 64px; }
.kc__spark-line {
  stroke: #5b8cff;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.kc__spark-area { opacity: 0.9; }

/* --- было → стало (формат C) --- */
.kc__wb {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-top: var(--space-2);
  padding: var(--space-5);
  border-radius: var(--r-md);
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.02);
}
.kc__wb-cell { display: grid; gap: 4px; }
.kc__wb-cell b {
  font: 700 30px/1 var(--mono);
  letter-spacing: -0.03em;
  color: var(--muted);
}
.kc__wb-cell--to b { color: var(--text); }
.kc__wb-cell span { font-size: 12px; color: var(--muted); }
.kc__wb svg { color: var(--accent-2); flex: none; }

/* --- мини-таблица сети (формат E) --- */
.kc__net {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-3);
  margin-top: var(--space-2);
}
.kc__net-cell {
  display: flex;
  align-items: baseline;
  gap: 7px;
  padding: 10px 12px;
  border-radius: var(--r-sm);
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.02);
}
.kc__net-city { font-size: 12px; color: var(--muted); }
.kc__net-cell b { font: 600 14px/1 var(--mono); color: var(--text); }

.kc__arr { flex: none; width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; }
.kc__arr--up { border-bottom: 6px solid var(--ok); align-self: center; }
.kc__arr--down { border-top: 6px solid #f87171; align-self: center; }
.kc__arr--flat { width: 8px; height: 2px; background: var(--muted); border: none; align-self: center; border-radius: 2px; }

.kc__net-note { font-size: 12px; color: var(--muted); }

/* --- сторителлинг (формат B) --- */
.kc__story {
  display: grid;
  gap: 10px;
  margin: var(--space-2) 0 0;
  padding: var(--space-4) var(--space-5);
  border-radius: var(--r-md);
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.02);
}
.kc__story-row { display: grid; grid-template-columns: 96px 1fr; gap: 12px; }
.kc__story dt {
  font: 600 11.5px/1.5 var(--mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.kc__story dd { margin: 0; font-size: 13.5px; line-height: 1.6; color: var(--text-2); }

/* --- чипы --- */
.kc__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: var(--space-2);
}
.kc__chip {
  padding: 5px 11px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.025);
  font: 500 11.5px/1 var(--mono);
  color: var(--text-2);
}

/* --- строка-результат / мораль --- */
.kc__result {
  margin-top: auto;
  padding-top: var(--space-4);
  border-top: 1px dashed var(--border-str);
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--text-2);
}

.kc__moral {
  padding: var(--space-4) var(--space-5);
  border-radius: var(--r-md);
  border: 1px dashed rgba(248, 113, 113, 0.4);
  background: rgba(248, 113, 113, 0.05);
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--text-2);
}

.kc__cta {
  margin-top: var(--space-2);
  font-size: 14px;
  font-weight: 600;
}

/* --- маска (формат F): приглушённый дизайн --- */
.kc--muted { opacity: 0.88; }
.kc--muted .kc__badge {
  border-color: rgba(118, 130, 155, 0.35);
  background: rgba(118, 130, 155, 0.08);
  color: var(--muted);
}
.kc--muted .kc__figure { color: #f87171; }
.kc--muted:hover { opacity: 1; }
.kc--muted { transition: opacity var(--t-med) ease; }

/* ===================== ОПЫТ (ведётся = растёт) ===================== */
.exp {
  display: grid;
  gap: var(--space-5);
}

.exp__row {
  display: grid;
  gap: var(--space-3);
}

.exp__tag {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  justify-self: start;
  padding: 6px 14px;
  border-radius: 999px;
  font: 600 12.5px/1 var(--mono);
}
.exp__tag--up {
  border: 1px solid rgba(52, 211, 153, 0.35);
  background: rgba(52, 211, 153, 0.08);
  color: var(--ok);
}
.exp__tag--down {
  border: 1px solid rgba(248, 113, 113, 0.35);
  background: rgba(248, 113, 113, 0.07);
  color: #f87171;
}

.exp__dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--ok);
  box-shadow: 0 0 10px var(--ok);
}
.exp__dot--down {
  background: #f87171;
  box-shadow: 0 0 10px rgba(248, 113, 113, 0.7);
}

.exp__cells {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}

.exp__row--down .exp__cells { grid-template-columns: repeat(2, 1fr); }

.exp__cell {
  display: grid;
  gap: 5px;
  padding: var(--space-4) var(--space-5) var(--space-5);
}

.exp__cell svg { width: 100%; height: 56px; }

.exp__line { fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.exp__line--up { stroke: #34d399; }
.exp__line--down { stroke: #f87171; stroke-dasharray: 4 6; }
.exp__area { fill: rgba(52, 211, 153, 0.12); }

.exp__cell b {
  font: 600 14px/1.3 var(--mono);
  color: var(--text);
}
.exp__cell span { font-size: 12.5px; color: var(--muted); }

.exp__cell--down { opacity: 0.85; }
.exp__cell--down b { color: var(--text-2); font-weight: 600; }

.exp__big {
  font: 700 34px/1 var(--mono);
  letter-spacing: -0.03em;
  color: #f87171;
  padding-top: 6px;
}

.exp__out {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: var(--space-5) var(--space-6);
  border-radius: var(--r-md);
  border: 1px dashed rgba(251, 191, 36, 0.45);
  background: rgba(251, 191, 36, 0.05);
  font-size: 15px;
  color: var(--text);
}
.exp__out svg { flex: none; color: var(--warn); }
.exp__out a { font-weight: 600; white-space: nowrap; }

/* источник данных */
.kc__src {
  margin-top: var(--space-6);
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--muted);
}

@media (max-width: 1024px) {
  .kc__net { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
  .kc-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .kc__story-row { grid-template-columns: 1fr; gap: 2px; }
  .kc__wb { flex-wrap: wrap; }
}
