/* Womansway — дизайн-система (ядро Поступашкина, Sky variant) */

:root {
  color-scheme: light;
  --bg: #eef6ff;
  --bg-2: #f7fbff;
  --card: #ffffff;
  --line: #dbeafe;
  --ink: #0f2942;
  --ink-2: #475569;
  --ink-3: #94a3b8;
  --blue: #2563eb;
  --blue-deep: #1d4ed8;
  --blue-soft: #dbeafe;
  --yellow: #fcd34d;
  --yellow-bright: #f59e0b;
  --pink: #fbcfe8;
  --pink-soft: #fce7f3;
  --green: #34d399;
  --green-deep: #059669;
  --red: #ef4444;
  --shadow: 0 2px 4px rgba(15, 41, 66, 0.04), 0 12px 28px rgba(15, 41, 66, 0.06);
  --shadow-lg: 0 4px 8px rgba(15, 41, 66, 0.05), 0 20px 48px rgba(15, 41, 66, 0.1);
  /* смысловые чипы: зелёный = проходит/ок, янтарный = внимание/платно,
     красный = не проходит/ошибка, синий = информация */
  --ok-bg: #e6f7ee;   --ok-ink: #0e7c3f;   --ok-line: #9bd9ba;
  --warn-bg: #fff7ed; --warn-ink: #b45309; --warn-line: #f2d78c;
  --err-bg: #fdeaea;  --err-ink: #b91c1c;  --err-line: #efa89b;
  --info-bg: #eef4ff; --info-ink: #1d4ed8; --info-line: #cfe0fb;
  --violet: #7c3aed;
  --violet-bg: #f3e8ff;
  --veil: rgba(255, 255, 255, 0.66);
  --overlay: rgba(255, 255, 255, 0.4);
  --bg-grad-1: #dbeafe;
  --bg-grad-2: #fef3c7;
  --nav-bg: rgba(238, 246, 255, 0.85);
  --pop-bg: #0f2942;  --pop-ink: #ffffff;
  --on-yellow: #0f2942; /* текст на жёлтых кнопках/бейджах — тёмный в обеих темах */
  --theme-meta: #fcd34d;
}

/* Тёмная палитра — ТОЛЬКО по явному выбору кнопкой (data-theme="dark").
   По умолчанию сайт всегда светлый; авто-старт по prefers-color-scheme убран
   (Юра 18.08.2026: «по умолчанию должно быть яркий»). */
html[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0d1a2b;
  --bg-2: #13233a;
  --card: #182b44;
  --line: #273c58;
  --ink: #e8eef7;
  --ink-2: #b3c2d6;
  --ink-3: #7e91a8;
  --blue: #60a5fa;
  --blue-deep: #2359c9;
  --blue-soft: #1f3a5e;
  --yellow: #fcd34d;
  --yellow-bright: #d97706;
  --pink: #9d4d76;
  --pink-soft: #55324a;
  --green: #0ea36b;
  --green-deep: #4ade80;
  --red: #ef4444;
  --shadow: 0 2px 4px rgba(0, 0, 0, 0.3), 0 12px 28px rgba(0, 0, 0, 0.35);
  --shadow-lg: 0 4px 8px rgba(0, 0, 0, 0.35), 0 20px 48px rgba(0, 0, 0, 0.45);
  --ok-bg: rgba(52, 211, 153, 0.13);  --ok-ink: #5fdd9d;  --ok-line: rgba(52, 211, 153, 0.4);
  --warn-bg: rgba(245, 158, 11, 0.14); --warn-ink: #fbbf24; --warn-line: rgba(245, 158, 11, 0.4);
  --err-bg: rgba(239, 68, 68, 0.14);  --err-ink: #f87171;  --err-line: rgba(239, 68, 68, 0.45);
  --info-bg: rgba(96, 165, 250, 0.13); --info-ink: #8ab7f8; --info-line: rgba(96, 165, 250, 0.4);
  --violet: #a78bfa;
  --violet-bg: rgba(167, 139, 250, 0.15);
  --veil: rgba(255, 255, 255, 0.07);
  --overlay: rgba(10, 22, 38, 0.6);
  --bg-grad-1: #14263e;
  --bg-grad-2: #26241a;
  --nav-bg: rgba(13, 26, 43, 0.85);
  --pop-bg: #0a1626;  --pop-ink: #e8eef7;
  --theme-meta: #0d1a2b;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Nunito', system-ui, -apple-system, sans-serif;
  background: var(--bg);
  background-image:
    radial-gradient(ellipse 800px 400px at 10% 0%, var(--bg-grad-1) 0%, transparent 60%),
    radial-gradient(ellipse 600px 400px at 90% 0%, var(--bg-grad-2) 0%, transparent 60%);
  background-attachment: fixed;
  color: var(--ink);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3 { font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--blue); }

.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* ─── Навигация ──────────────────────────── */
.nav {
  padding: 20px 0;
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--nav-bg);
  backdrop-filter: blur(10px);
}
.nav-inner { display: flex; align-items: center; justify-content: space-between; }
.logo {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: var(--ink);
  font-weight: 900;
  font-size: 22px;
}
.logo-cat {
  width: 44px; height: 44px;
  background: var(--yellow);
  border-radius: 14px;
  display: flex; align-items: end; justify-content: center;
  overflow: hidden;
  transform: rotate(-4deg);
  box-shadow: 0 4px 0 var(--yellow-bright);
}
.logo-cat img { width: 56px; margin-bottom: -3px; }
.nav-links { display: flex; flex-wrap: nowrap; white-space: nowrap; gap: 28px; list-style: none; }
.nav-links a {
  color: var(--ink-2);
  text-decoration: none;
  font-size: 15px;
  font-weight: 700;
  position: relative;
}
.nav-links a:hover, .nav-links a.active { color: var(--blue); }
.nav-menu-toggle, .nav-mobile-actions { display: none; }
.nav-inner > .nav-mobile-cta-head { display: none; }

/* ─── Кнопки ─────────────────────────────── */
.btn {
  background: var(--yellow);
  color: var(--on-yellow);
  padding: 12px 22px;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 800;
  font-size: 15px;
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 4px 0 var(--yellow-bright);
  transition: transform .1s, box-shadow .1s;
  font-family: inherit;
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 6px 0 var(--yellow-bright); }
.btn:active { transform: translateY(2px); box-shadow: 0 2px 0 var(--yellow-bright); }
.btn-blue { background: var(--blue); color: white; box-shadow: 0 4px 0 var(--blue-deep); }
.btn-blue:hover { box-shadow: 0 6px 0 var(--blue-deep); }
.btn-white { background: var(--card); color: var(--ink); box-shadow: 0 4px 0 var(--blue-soft); }
.btn-white:hover { box-shadow: 0 6px 0 var(--blue-soft); }

/* ─── Hero ───────────────────────────────── */
.hero {
  padding: 40px 0 64px;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 48px;
  align-items: center;
}
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--card);
  border: 2px solid var(--blue-soft);
  border-radius: 100px;
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 700;
  color: var(--blue);
  margin-bottom: 24px;
}
.eyebrow .pulse {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--green);
  animation: pulse 2s infinite;
}
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.4} }
.hero h1 { font-size: clamp(36px, 6vw, 64px); margin-bottom: 24px; }
.hero h1 .blue { color: var(--blue); }
.hero h1 .stroke {
  background: var(--yellow);
  color: var(--on-yellow);
  padding: 0 8px;
  display: inline-block;
  transform: rotate(-2deg);
  border-radius: 8px;
}
.hero .lead { font-size: 18px; color: var(--ink-2); max-width: 540px; margin-bottom: 32px; font-weight: 500; }
.hero-actions { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
.hero-actions .small { font-size: 13px; color: var(--ink-3); display: flex; align-items: center; gap: 6px; font-weight: 600; }

/* hero image card */
.hero-image { position: relative; text-align: center; }
.hero-image .bg-card {
  background: var(--card);
  border-radius: 32px;
  padding: 40px 32px 0;
  box-shadow: var(--shadow-lg);
  position: relative;
  overflow: hidden;
}
.hero-image .bg-card::before {
  content: '';
  position: absolute;
  width: 320px; height: 320px;
  background: var(--yellow);
  border-radius: 50%;
  top: -60px; left: -80px;
  opacity: .3;
  filter: blur(40px);
}
.hero-image .bg-card::after {
  content: '';
  position: absolute;
  width: 220px; height: 220px;
  background: var(--blue);
  border-radius: 50%;
  bottom: -60px; right: -60px;
  opacity: .15;
  filter: blur(40px);
}
.hero-image img { position: relative; max-width: 100%; height: auto; filter: drop-shadow(0 16px 32px rgba(15, 41, 66, 0.18)); }
.float-card {
  position: absolute;
  background: var(--card);
  border-radius: 16px;
  padding: 12px 16px;
  box-shadow: var(--shadow);
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 10px;
  z-index: 2;
}
.float-card .icon {
  width: 36px; height: 36px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
}
.fc-1 { top: 8%; left: -8%; transform: rotate(-4deg); }
.fc-1 .icon { background: var(--blue-soft); }
.fc-2 { top: 55%; right: -6%; transform: rotate(3deg); }
.fc-2 .icon { background: var(--warn-bg); }
.fc-3 { bottom: 8%; left: -4%; transform: rotate(2deg); }
.fc-3 .icon { background: var(--pink-soft); }
.float-card .small { font-size: 11px; color: var(--ink-3); font-weight: 600; margin-top: 2px; }

/* ─── Trust strip ────────────────────────── */
.trust-strip {
  margin-top: 56px;
  background: var(--card);
  border-radius: 24px;
  padding: 24px 32px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  box-shadow: var(--shadow);
}
.trust-item { text-align: center; }
.trust-num { font-size: 36px; font-weight: 900; color: var(--blue); line-height: 1; letter-spacing: -0.03em; }
.trust-label { font-size: 13px; color: var(--ink-2); margin-top: 6px; font-weight: 600; }
.trust-divider { width: 1px; background: var(--line); }

/* ─── Section ────────────────────────────── */
.section { padding: 80px 0; }
.section-head { text-align: center; margin-bottom: 48px; }
.section-head .tag {
  display: inline-block;
  background: var(--blue-soft);
  color: var(--blue);
  padding: 6px 14px;
  border-radius: 100px;
  font-size: 13px;
  font-weight: 800;
  margin-bottom: 16px;
}
.section-head h2 { font-size: clamp(28px, 4.5vw, 44px); margin-bottom: 12px; }
.section-head h2 em { font-style: normal; color: var(--blue); }
.section-head p { color: var(--ink-2); font-size: 17px; max-width: 580px; margin: 0 auto; font-weight: 500; }

/* ─── Tools ──────────────────────────────── */
.tools {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.tool-card {
  background: var(--card);
  border-radius: 24px;
  padding: 28px 24px;
  box-shadow: var(--shadow);
  transition: transform .25s;
  cursor: pointer;
  border-top: 6px solid;
  position: relative;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
}
.tool-card:hover { transform: translateY(-8px); }
.tool-card.c1 { border-color: var(--blue); }
.tool-card.c2 { border-color: var(--yellow-bright); }
.tool-card.c3 { border-color: #ec4899; }
.tool-card.c4 { border-color: #10b981; }
.tool-card .img-wrap {
  height: 140px;
  display: flex; align-items: end; justify-content: center;
  margin-bottom: 16px;
}
/* width/height-атрибуты (anti-CLS) + только max-* давали сплющенных котов:
   высота капится, ширина остаётся атрибутной. auto возвращает пропорции. */
.tool-card img { max-height: 100%; max-width: 100%; width: auto; height: auto; }
.tool-card h3 { font-size: 19px; margin-bottom: 8px; }
.tool-card p { font-size: 14px; color: var(--ink-2); line-height: 1.5; margin-bottom: 16px; font-weight: 500; flex: 1; }
.tool-link { color: var(--blue); font-weight: 800; font-size: 14px; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }

/* ─── Search panel ───────────────────────── */
.search-panel {
  background: var(--card);
  border-radius: 32px;
  padding: 40px;
  box-shadow: var(--shadow-lg);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
}
.search-panel > * { min-width: 0; }
.search-panel .tag {
  display: inline-block; background: var(--blue-soft); color: var(--blue);
  padding: 6px 14px; border-radius: 100px; font-size: 13px; font-weight: 800; margin-bottom: 16px;
}
.search-panel h3 { font-size: 28px; margin-bottom: 12px; }
.search-panel h3 em { font-style: normal; color: var(--blue); }
.search-panel p { color: var(--ink-2); margin-bottom: 24px; font-size: 15px; font-weight: 500; }
.fields { display: flex; flex-direction: column; gap: 12px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field label { font-size: 12px; font-weight: 800; color: var(--ink-2); text-transform: uppercase; letter-spacing: 0.08em; }
.field input, .field select {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  background: var(--bg-2);
  border: 2px solid var(--blue-soft);
  border-radius: 14px;
  padding: 14px 18px;
  font-size: 15px;
  font-family: inherit;
  font-weight: 600;
  color: var(--ink);
  outline: none;
  transition: border-color .15s;
}
.field input:focus, .field select:focus { border-color: var(--blue); }
.search-result {
  background: var(--bg-2);
  border-radius: 20px;
  padding: 24px;
  border: 2px solid var(--blue-soft);
}
.search-result .count { font-size: 14px; color: var(--ink-2); margin-bottom: 12px; font-weight: 600; }
.search-result .count .b { color: var(--blue); font-weight: 900; }
.uni-card {
  background: var(--card);
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
  border: 1px solid var(--line);
}
.uni-card .uni-name { font-weight: 700; }
.uni-card .uni-meta { font-size: 12px; color: var(--ink-3); font-weight: 600; }
.uni-card .score { background: var(--green); color: white; padding: 4px 10px; border-radius: 100px; font-size: 12px; font-weight: 800; }
.uni-card.warn .score { background: var(--yellow-bright); }
.uni-card.low .score { background: var(--red); }

/* ─── Directions ─────────────────────────── */
.dir-section {
  background: var(--card);
  border-radius: 32px;
  padding: 48px;
  box-shadow: var(--shadow);
}
.dir-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.dir-tile {
  background: var(--bg-2);
  border-radius: 20px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  cursor: pointer;
  transition: background .15s, transform .15s;
  border: 2px solid transparent;
  text-decoration: none;
  color: inherit;
}
.dir-tile:hover { background: var(--card); border-color: var(--blue-soft); transform: translateY(-4px); }
.dir-icon {
  height: 100px;
  background: var(--card);
  border-radius: 14px;
  display: flex; align-items: end; justify-content: center;
  overflow: hidden;
}
.dir-icon img { max-height: 100%; max-width: 100%; width: auto; height: auto; object-fit: contain; }
.dir-tile h4 { font-size: 15px; line-height: 1.2; font-weight: 800; }
.dir-tile .meta {
  display: flex; justify-content: space-between;
  font-size: 13px; color: var(--ink-2); font-weight: 600;
}
.dir-tile .salary { color: var(--green-deep); font-weight: 800; }

/* ─── Steps ──────────────────────────────── */
.steps-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.step-card {
  background: var(--card);
  border-radius: 24px;
  padding: 32px 24px;
  text-align: center;
  box-shadow: var(--shadow);
}
.step-card .num {
  width: 56px; height: 56px;
  background: var(--yellow);
  color: var(--on-yellow);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  font-weight: 900;
  margin: 0 auto 20px;
  box-shadow: 0 4px 0 var(--yellow-bright);
}
.step-card h3 { font-size: 19px; margin-bottom: 8px; }
.step-card p { font-size: 14px; color: var(--ink-2); font-weight: 500; line-height: 1.5; }

/* ─── CTA ────────────────────────────────── */
.cta {
  background: var(--card);
  border-radius: 32px;
  padding: 56px;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 32px;
  align-items: center;
  box-shadow: var(--shadow-lg);
  position: relative;
  overflow: hidden;
  margin: 32px 0;
}
.cta::before {
  content: '';
  position: absolute;
  width: 400px; height: 400px;
  background: var(--yellow);
  border-radius: 50%;
  top: -200px; right: 30%;
  opacity: .15;
  filter: blur(40px);
}
.cta h2 { font-size: clamp(28px, 4vw, 40px); margin-bottom: 14px; position: relative; }
.cta h2 em { font-style: normal; color: var(--blue); }
.cta p { color: var(--ink-2); margin-bottom: 24px; font-size: 16px; max-width: 460px; position: relative; font-weight: 500; }
.cta-actions { display: flex; gap: 12px; flex-wrap: wrap; position: relative; }
.cta-img { text-align: center; position: relative; }
.cta-img img { max-width: 280px; width: auto; height: auto; margin: 0 auto; }

/* ─── Footer ─────────────────────────────── */
footer { padding: 40px 0; color: var(--ink-2); font-size: 14px; font-weight: 600; }
.foot-row { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
footer a { color: var(--ink-2); text-decoration: none; margin: 0 8px; }
footer a:hover { color: var(--blue); }

/* ─── Stub page ──────────────────────────── */
.stub-page {
  padding: 80px 0;
}
.stub-card {
  background: var(--card);
  border-radius: 32px;
  padding: 64px 48px;
  box-shadow: var(--shadow-lg);
  text-align: center;
  position: relative;
  overflow: hidden;
  max-width: 720px;
  margin: 0 auto;
}
.stub-card::before {
  content: '';
  position: absolute;
  width: 320px; height: 320px;
  background: var(--yellow);
  border-radius: 50%;
  top: -120px; left: 50%; transform: translateX(-50%);
  opacity: .2;
  filter: blur(60px);
}
.stub-card img.cat {
  position: relative;
  max-width: 260px;
  margin: 0 auto 24px;
  filter: drop-shadow(0 12px 24px rgba(15, 41, 66, 0.18));
}
.stub-card .badge {
  position: relative;
  display: inline-block;
  background: var(--blue-soft);
  color: var(--blue);
  padding: 6px 14px;
  border-radius: 100px;
  font-size: 13px;
  font-weight: 800;
  margin-bottom: 16px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.stub-card h1 { position: relative; font-size: clamp(28px, 4vw, 44px); margin-bottom: 16px; }
.stub-card h1 em { font-style: normal; color: var(--blue); }
.stub-card .lead { position: relative; color: var(--ink-2); font-size: 17px; max-width: 480px; margin: 0 auto 28px; font-weight: 500; line-height: 1.55; }
.stub-card .actions { position: relative; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

.feature-list {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.feature-list .item {
  background: var(--card);
  border-radius: 16px;
  padding: 20px;
  text-align: center;
  border: 1px solid var(--line);
}
.feature-list .item .ico {
  width: 48px; height: 48px;
  border-radius: 12px;
  background: var(--blue-soft);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  margin: 0 auto 12px;
}
.feature-list .item h4 { font-size: 16px; margin-bottom: 4px; }
.feature-list .item p { font-size: 13px; color: var(--ink-2); font-weight: 500; }

/* ─── Шапка: бургер до 1199 px (11.09.2026, Юра: «вузы налезают на Поступашкин») ───
   Логотип + 9 ссылок + тема + «Приём-2027» просят ~1150 px даже в плотном виде, а контейнер
   даёт 1152 только от 1200 px. Раньше бургер включался с 900 px, и на 901–1199 шапка
   вылезала за экран (страница ездила вбок на 100–300 px), а выше flex сжимал зазоры в 0. */
@media (max-width: 1199px) {
  .nav-inner { position: relative; }
  .nav-links {
    display: none;
    position: absolute;
    top: calc(100% + 12px);
    left: 0;
    right: 0;
    flex-direction: column;
    gap: 2px;
    padding: 10px;
    white-space: normal;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: var(--shadow-lg);
    z-index: 60;
  }
  .nav-links.is-open { display: flex; }
  .nav-links li { width: 100%; }
  .nav-links li > a:not(.btn) { display: block; padding: 10px 12px; border-radius: 10px; }
  .nav-links li > a:not(.btn):hover,
  .nav-links li > a:not(.btn).active { background: var(--blue-soft); }
  .nav-inner > .theme-toggle--desktop,
  .nav-inner > .nav-desktop-cta { display: none; }
  .nav-menu-toggle {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    padding: 0;
    border: 2px solid var(--blue-soft);
    border-radius: 12px;
    background: var(--card);
    color: var(--ink);
    font: inherit;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
  }
  .nav-menu-toggle:hover { border-color: var(--blue); }
  .nav-menu-toggle .nmt-close { display: none; }
  .nav-menu-toggle[aria-expanded="true"] .nmt-open { display: none; }
  .nav-menu-toggle[aria-expanded="true"] .nmt-close { display: inline; }
  .nav-inner > .nav-mobile-cta-head {
    display: inline-flex;
    padding: 9px 12px;
    font-size: 13px;
    line-height: 1;
    white-space: nowrap;
    box-shadow: 0 3px 0 var(--yellow-bright);
  }
  .nav-mobile-actions { display: flex; padding: 8px 2px 2px; }
  .nav-mobile-actions > .theme-toggle--mobile {
    width: 100%;
    flex: 1 1 auto;
    gap: 7px;
    margin: 0;
    padding: 0 12px;
    color: var(--ink);
    font: inherit;
    font-weight: 800;
  }
}
/* кнопку «Приём-2027» — к бургеру, а не в середину шапки (на узком телефоне места нет) */
@media (min-width: 480px) and (max-width: 1199px) {
  .nav-inner > .nav-mobile-cta-head { margin-left: auto; margin-right: 12px; }
}
/* на планшете и узком ноутбуке меню — выпадающий список под бургером, а не простыня во всю ширину */
@media (min-width: 601px) and (max-width: 1199px) {
  .nav-links { left: auto; right: 24px; width: 320px; }   /* 24px = padding .container: край меню по краю бургера */
}

/* ─── Mobile ─────────────────────────────── */
@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; padding: 24px 0 48px; }
  .float-card { display: none; }
  .trust-strip { grid-template-columns: repeat(2, 1fr); }
  .tools { grid-template-columns: 1fr 1fr; }
  .search-panel { grid-template-columns: 1fr; padding: 28px; }
  .dir-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dir-grid > * { min-width: 0; }
  .dir-tile { padding: 16px; }
  .dir-tile h4 { overflow-wrap: anywhere; }
  .dir-tile .meta { flex-wrap: wrap; gap: 4px; }
  .dir-section { padding: 28px; }
  .steps-row { grid-template-columns: 1fr; }
  .cta { grid-template-columns: 1fr; padding: 32px; text-align: center; }
  .cta-actions { justify-content: center; }
  .stub-card { padding: 40px 24px; }
  .feature-list { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .nav { padding: 12px 0; }
  .logo { font-size: 19px; gap: 9px; }
  .logo-cat { width: 40px; height: 40px; border-radius: 12px; }
}

@media (max-width: 384px) {
  .logo-word { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
}

@media (max-width: 360px) {
  .tools { grid-template-columns: 1fr; }
}

/* ===== Каталог: страница вуза (/catalog/{slug}) =====
   Классы вместо inline-стилей — та же вёрстка, лёгкий HTML
   (раньше один шаблон плодил ~3500 inline style= на крупных вузах). */
.vz { padding-top: 40px; }
.vz-back-row { margin-bottom: 24px; }
.vz-back { color: var(--ink-2); text-decoration: none; font-weight: 600; }

.vz-hero { background: var(--card); border-radius: 32px; padding: 48px; box-shadow: var(--shadow-lg); position: relative; overflow: hidden; }
.vz-hero__blob { position: absolute; top: -100px; right: -100px; width: 300px; height: 300px; background: var(--yellow); border-radius: 50%; opacity: .15; filter: blur(40px); }
.vz-hero__grid { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: start; }
.vz-eyebrow { font-size: 12px; font-weight: 700; color: var(--blue); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 16px; }
.vz-h1 { font-size: clamp(28px, 4vw, 44px); margin-bottom: 12px; }
.vz-subtitle { font-size: 17px; color: var(--ink-2); font-weight: 500; margin-bottom: 24px; }

.vz-stats { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 20px; }
.vz-stat { background: var(--bg-2); border-radius: 14px; padding: 14px 20px; }
.vz-stat__label { font-size: 12px; color: var(--ink-3); font-weight: 600; text-transform: uppercase; }
.vz-stat__num { font-size: 24px; font-weight: 900; color: var(--blue); margin-top: 4px; }
.vz-stat__num.is-green { color: var(--green-deep); }
.vz-stat__big { font-size: 17px; font-weight: 800; margin-top: 4px; line-height: 1.3; }
.vz-stat__reg { font-size: 17px; font-weight: 700; margin-top: 4px; }
.vz-stat__note { font-size: 11px; color: var(--ink-3); margin-top: 2px; }

.vz-facts { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.vz-fact { background: var(--card); border: 1px solid var(--blue-soft); border-radius: 100px; padding: 6px 14px; font-size: 13px; font-weight: 600; color: var(--ink-2); }

.vz-contacts { background: var(--bg-2); border-radius: 14px; padding: 14px 20px; margin-bottom: 24px; font-size: 13px; line-height: 1.8; }
.vz-link { color: var(--blue); text-decoration: none; }

.vz-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.vz-cat { max-width: 200px; filter: drop-shadow(0 12px 24px rgba(15, 41, 66, 0.18)); }

.vz-block { margin-top: 32px; background: var(--card); border-radius: 24px; box-shadow: var(--shadow); }
.vz-block--ep { padding: 28px 32px; }
.vz-block--profs { padding: 20px 32px; }
.vz-profs-label { font-size: 12px; font-weight: 800; color: var(--ink-3); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 10px; }
.vz-profchips { display: flex; flex-wrap: wrap; gap: 8px; }
.vz-profchip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; background: var(--blue-soft); color: var(--blue); border-radius: 100px; font-size: 14px; font-weight: 700; text-decoration: none; transition: background .15s, color .15s; }
.vz-profchip:hover { background: var(--blue); color: white; }
.vz-profchip__n { font-size: 12px; font-weight: 800; opacity: .65; }
.vz-catsay { display: flex; align-items: flex-end; gap: 18px; padding: 22px 28px; background: linear-gradient(120deg, var(--blue-soft), var(--card)); }
.vz-catsay__cat { width: 86px; flex-shrink: 0; filter: drop-shadow(0 6px 12px rgba(15, 41, 66, .15)); }
.vz-catsay__bubble { position: relative; background: var(--card); border-radius: 18px; padding: 16px 20px; font-size: 15px; font-weight: 600; line-height: 1.6; box-shadow: var(--shadow); }
.vz-catsay__bubble::before { content: ''; position: absolute; left: -9px; bottom: 22px; border: 9px solid transparent; border-right-color: var(--card); border-left: none; }
.vz-catsay__label { font-size: 11px; font-weight: 800; color: var(--blue); text-transform: uppercase; letter-spacing: .07em; margin-bottom: 6px; }
@media (max-width: 560px) { .vz-catsay { flex-direction: column; align-items: flex-start; } .vz-catsay__bubble::before { display: none; } }
.vz-block--prog { padding: 32px; }
.vz-empty { margin-top: 32px; padding: 48px; background: var(--card); border-radius: 24px; border: 2px dashed var(--blue-soft); text-align: center; }
.vz-empty-h3 { font-size: 22px; margin-bottom: 8px; }

.vz-ep-h3 { font-size: 22px; margin-bottom: 6px; }
.vz-ep-sub { font-size: 13px; color: var(--ink-3); margin-bottom: 18px; }
.vz-ep-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.vz-ep { background: var(--bg-2); border-radius: 12px; padding: 12px 16px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.vz-ep__cat { font-size: 13px; font-weight: 600; color: var(--ink-2); line-height: 1.3; }
.vz-ep__badge { background: var(--ink-3); color: #fff; border-radius: 100px; padding: 4px 12px; font-size: 13px; font-weight: 800; white-space: nowrap; }
.vz-ep__badge.is-pos { background: var(--green); }

.vz-prog-head { margin-bottom: 20px; }
.vz-prog-h3 { font-size: 24px; }
.vz-accent { font-style: normal; color: var(--blue); }
.vz-lvl { margin-bottom: 16px; padding: 16px 20px; background: var(--bg-2); border-radius: 16px; }
.vz-lvl__sum { font-size: 15px; font-weight: 800; cursor: pointer; user-select: none; }
.vz-lvl__list { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.vz-muted { color: var(--ink-3); font-weight: 600; }
.vz-note { margin-top: 16px; font-size: 12px; color: var(--ink-3); text-align: center; }

/* программная карточка — повторяется сотни раз, главный источник веса */
.pc { text-decoration: none; color: inherit; background: var(--card); border-radius: 12px; padding: 12px 16px; display: grid; grid-template-columns: 1fr auto auto auto; gap: 16px; align-items: center; transition: transform .12s, box-shadow .12s; }
.pc:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(15, 41, 66, .08); }
.pc__name { font-size: 14px; font-weight: 700; line-height: 1.2; }
.pc__meta { font-size: 12px; color: var(--ink-3); margin-top: 2px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pc__yr { background: var(--ink-3); color: #fff; padding: 1px 8px; border-radius: 100px; font-size: 10px; font-weight: 800; }
.pc__yr.is-fresh { background: var(--green); }
.pc__ege { background: var(--blue-soft); color: var(--blue); padding: 1px 8px; border-radius: 100px; font-size: 10px; font-weight: 700; }
.pc__quota { background: var(--warn-bg); color: var(--warn-ink); padding: 1px 8px; border-radius: 100px; font-size: 10px; font-weight: 700; }
.pc__hist { font-size: 11px; color: var(--ink-3); margin-top: 5px; }
.pc__hy { color: var(--ink-2); font-weight: 700; }
.pc__hy.is-fresh { color: var(--green-deep); }
.pc__col { text-align: right; font-size: 12px; color: var(--ink-3); font-weight: 600; }
.pc__val--budget { font-size: 18px; font-weight: 900; color: var(--green-deep); line-height: 1; }
.pc__val--places { font-size: 16px; font-weight: 800; color: var(--blue); line-height: 1; }
.pc__val--contract { font-size: 16px; font-weight: 800; color: var(--ink-2); line-height: 1; }

.o65 { opacity: .65; }
.o45 { opacity: .45; }
.c-green { color: var(--green-deep); }
.c-ink2 { color: var(--ink-2); }
.vz-cat-wrap { text-align: center; }
.vz-empty p { color: var(--ink-2); font-weight: 500; }

/* ─── Страница вуза — мобильная адаптация ───────────────
   Раньше у /catalog/{slug} вообще не было mobile-правил: hero-сетка
   `1fr auto` не сворачивалась, кот стоял сбоку и зажимал заголовок,
   полное название, статы и бейджи в ~120px колонку. */
@media (max-width: 720px) {
  .vz { padding-top: 16px; }
  .vz-back-row { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-bottom: 16px; font-size: 13px; }

  .vz-hero { padding: 22px 18px; border-radius: 22px; }
  .vz-hero__grid { grid-template-columns: 1fr; gap: 6px; }
  /* кот — небольшим акцентом в правом верхнем углу, текст на всю ширину */
  .vz-cat-wrap { order: -1; text-align: right; margin: -4px -4px -10px 0; }
  .vz-cat { max-width: 104px; margin-left: auto; }

  .vz-eyebrow { margin-bottom: 8px; }
  .vz-h1 { font-size: 25px; }
  .vz-subtitle { font-size: 14px; line-height: 1.4; margin-bottom: 18px; }

  .vz-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 16px; }
  .vz-stat { padding: 11px 13px; }
  .vz-stat__num { font-size: 21px; }
  .vz-stat__big, .vz-stat__reg { font-size: 15px; }

  .vz-facts { gap: 6px; margin-bottom: 16px; }
  .vz-fact { padding: 5px 11px; font-size: 12px; }

  .vz-contacts { padding: 12px 16px; margin-bottom: 18px; line-height: 1.7; }

  .vz-actions { gap: 10px; }
  .vz-actions .btn { flex: 1 1 100%; justify-content: center; }

  .vz-block--prog, .vz-block--ep { padding: 20px 15px; }
  .vz-block--profs { padding: 16px 15px; }
  .vz-prog-h3 { font-size: 20px; }
  .vz-lvl { padding: 12px 14px; }
  .vz-lvl__list { gap: 6px; }

  .pc { gap: 4px 10px; padding: 11px 13px; }
  .pc__col { font-size: 11px; }
  .pc__val--budget { font-size: 16px; }
  .pc__val--places, .pc__val--contract { font-size: 14px; }
}

/* ==========================================================================
   LEGAL PAGES (Правовая информация: ПД, согласие, конфиденциальность,
   соглашение/оферта, cookies). Палитра Sky.
   ========================================================================== */

.lg-hero {
  background: linear-gradient(135deg, var(--blue) 0%, var(--blue-deep) 100%);
  padding: 4rem 1.5rem 3rem;
  text-align: center;
}
.lg-hero h1 {
  font-size: 2rem; font-weight: 800; color: #fff;
  letter-spacing: -0.03em; margin-bottom: 0.5rem;
}
.lg-hero p { font-size: 0.95rem; color: rgba(255,255,255,0.85); max-width: 640px; margin: 0 auto; }
.lg-hero .lg-update-badge {
  display: inline-block; margin-top: 1rem;
  font-size: 0.82rem;
  background: rgba(255,255,255,0.18);
  color: #fff;
  padding: 6px 16px; border-radius: 20px;
}

.lg-layout {
  max-width: 1100px;
  margin: 0 auto;
  padding: 2.5rem 1.5rem 4rem;
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 3rem;
}

.lg-toc {
  position: sticky;
  top: 88px;
  align-self: start;
}
.lg-toc h4 {
  font-size: 0.78rem; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--ink-3);
  margin-bottom: 12px; font-weight: 700;
}
.lg-toc a {
  display: block; font-size: 0.85rem;
  color: var(--ink-2);
  text-decoration: none;
  padding: 6px 12px;
  border-left: 2px solid transparent;
  margin-left: -2px;
  transition: all .2s;
  line-height: 1.4;
}
.lg-toc a:hover, .lg-toc a.active {
  color: var(--blue);
  border-left-color: var(--blue);
  background: var(--blue-soft);
}

.lg-content {
  background: var(--card);
  border-radius: 20px;
  box-shadow: var(--shadow);
  padding: 2.5rem 2.75rem;
}
.lg-content h2 {
  font-size: 1.3rem; font-weight: 700;
  color: var(--ink);
  margin-top: 2.5rem; margin-bottom: 0.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  letter-spacing: -0.02em;
}
.lg-content h2:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.lg-content h3 {
  font-size: 1.05rem; font-weight: 600;
  color: var(--ink);
  margin-top: 1.5rem; margin-bottom: 0.5rem;
}
.lg-content p {
  font-size: 0.95rem; color: var(--ink-2);
  line-height: 1.75; margin-bottom: 1rem;
}
.lg-content ul {
  margin: 0.5rem 0 1rem 1.5rem;
  font-size: 0.95rem; color: var(--ink-2);
  line-height: 1.75;
}
.lg-content ul li { margin-bottom: 0.4rem; }
.lg-content a { color: var(--blue); text-decoration: none; }
.lg-content a:hover { text-decoration: underline; }
.lg-content strong { color: var(--ink); }

.lg-highlight-box {
  background: var(--blue-soft);
  border-left: 4px solid var(--blue);
  border-radius: 0 8px 8px 0;
  padding: 1rem 1.25rem;
  margin: 1.25rem 0;
}
.lg-highlight-box p { color: var(--info-ink); margin-bottom: 0; }

.lg-warning-box {
  background: var(--warn-bg);
  border-left: 4px solid var(--yellow-bright);
  border-radius: 0 8px 8px 0;
  padding: 1rem 1.25rem;
  margin: 1.25rem 0;
}
.lg-warning-box p { color: var(--warn-ink); margin-bottom: 0; }

.lg-danger-box {
  background: var(--err-bg);
  border-left: 4px solid var(--red);
  border-radius: 0 8px 8px 0;
  padding: 1rem 1.25rem;
  margin: 1.25rem 0;
}
.lg-danger-box p { color: var(--err-ink); margin-bottom: 0; }

.lg-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0;
  font-size: 0.88rem;
}
.lg-content table th {
  text-align: left;
  padding: 10px 14px;
  background: var(--bg-2);
  font-weight: 700;
  color: var(--ink);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  border-bottom: 2px solid var(--line);
}
.lg-content table td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
  color: var(--ink-2);
  line-height: 1.5;
  vertical-align: top;
}

/* Карточки-ссылки на индексе /legal */
.lg-index {
  max-width: 760px; margin: 0 auto; padding: 8px 16px 40px;
}
.lg-index-grid { display: grid; gap: 14px; }
.lg-index-card {
  display: block; background: var(--card);
  border: 1px solid var(--line); border-radius: 14px;
  padding: 18px 20px; text-decoration: none; color: var(--ink);
  transition: border-color .15s, box-shadow .15s, transform .15s;
}
.lg-index-card:hover {
  border-color: var(--blue);
  box-shadow: 0 6px 18px rgba(37,99,235,.1);
  transform: translateY(-1px);
}
.lg-index-card b { display: block; font-size: 17px; font-weight: 700; margin-bottom: 4px; }
.lg-index-card span { display: block; font-size: 14px; color: var(--ink-2); }
.lg-index-note { margin-top: 22px; font-size: 13px; color: var(--ink-3); line-height: 1.6; }
.lg-index-note a { color: var(--blue); }

.lg-footer {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 1.5rem 3rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.85rem;
  color: var(--ink-3);
}
.lg-footer a { color: var(--blue); text-decoration: none; }
.lg-footer a:hover { text-decoration: underline; }

@media (max-width: 900px) {
  .lg-layout { grid-template-columns: 1fr; gap: 0; }
  .lg-toc { display: none; }
  .lg-content { padding: 2rem 1.25rem; }
  .lg-hero { padding: 3rem 1.25rem 2rem; }
  .lg-hero h1 { font-size: 1.5rem; }
}

/* Cookie-уведомление (информационный баннер) */
.pfb-cookie {
  position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 900;
  max-width: 680px; margin: 0 auto;
  display: flex; gap: 14px; align-items: center;
  background: var(--card); border: 1px solid var(--line);
  box-shadow: var(--shadow-lg); border-radius: 14px;
  padding: 12px 16px;
}
.pfb-cookie[hidden] { display: none; }
.pfb-cookie__text { font-size: 13px; color: var(--ink-2); line-height: 1.5; }
.pfb-cookie__short { display: none; }
.pfb-cookie__text a { color: var(--blue); text-decoration: none; }
.pfb-cookie__text a:hover { text-decoration: underline; }
.pfb-cookie__btn {
  flex: 0 0 auto;
  background: var(--blue); color: #fff; border: none; border-radius: 100px;
  padding: 9px 22px; font-weight: 800; font-size: 14px; cursor: pointer;
  font-family: inherit;
}
.pfb-cookie__btn:hover { background: var(--blue-deep); }
@media (max-width: 560px) {
  .pfb-cookie {
    left: 8px; right: 8px; bottom: 8px;
    flex-direction: row; align-items: center; text-align: left; gap: 8px;
    padding: 9px 10px; border-radius: 12px;
  }
  .pfb-cookie__long { display: none; }
  .pfb-cookie__short { display: inline; }
  .pfb-cookie__text { font-size: 11.5px; line-height: 1.35; }
  .pfb-cookie__btn { padding: 8px 13px; font-size: 12px; }
}

/* ── Подсказка в шапке таблицы: значок «?», текст по наведению или тапу ── */
.th-hint {
  position: relative;
  cursor: help;
  outline: none;
  white-space: nowrap;
}
.th-hint::after {
  content: '?';
  display: inline-block;
  margin-left: 4px;
  width: 13px;
  height: 13px;
  line-height: 13px;
  border-radius: 50%;
  background: var(--blue-soft);
  color: var(--blue);
  font-size: 9px;
  font-weight: 800;
  text-align: center;
  vertical-align: 1px;
}
.th-hint .th-pop {
  display: none;
  position: absolute;
  top: calc(100% + 7px);
  right: 0;
  z-index: 60;
  width: 250px;
  max-width: 76vw;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--pop-bg);
  color: var(--pop-ink);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-transform: none;
  letter-spacing: normal;
  text-align: left;
  white-space: normal;
  box-shadow: var(--shadow-lg);
}
.th-hint:hover .th-pop,
.th-hint:focus .th-pop,
.th-hint:focus-within .th-pop { display: block; }
.th-hint--left .th-pop { right: auto; left: 0; }

/* ── Переключатель темы (#11070) ─────────────────────────── */
.theme-toggle {
  width: 40px; height: 40px;
  border: 2px solid var(--blue-soft);
  border-radius: 12px;
  background: var(--card);
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0;
  flex: 0 0 auto;
  transition: border-color .15s, transform .1s;
}
.theme-toggle:hover { border-color: var(--blue); transform: translateY(-1px); }
.theme-toggle .tt-sun { display: none; }
html[data-theme="dark"] .theme-toggle .tt-sun { display: inline; }
html[data-theme="dark"] .theme-toggle .tt-moon { display: none; }
.nav-inner .theme-toggle { margin-left: 12px; margin-right: 12px; }
@media (max-width: 1199px) {
  .nav-inner .theme-toggle { margin-left: auto; }
}
/* Шапка на десктопе (≥1200): зазор между логотипом, меню, темой и кнопкой не схлопывается
   (gap), ссылки плотнее. Блок стоит ПОСЛЕ .nav-inner .theme-toggle {margin 12px}, чтобы его
   перебить. Запас при 1152 px — ~16 px: новую ссылку в шапку — только перемерив ширину. */
@media (min-width: 1200px) {
  .nav-inner { gap: 20px; }
  .nav-links { gap: 16px; }
  .nav-links a { font-size: 14px; }
  .nav-inner .theme-toggle { margin-left: 0; margin-right: 0; }
  .nav-inner > .nav-desktop-cta { padding-left: 16px; padding-right: 16px; }
}

/* Подсказки по тапу (28.08.2026). На телефоне hover не существует, и 118
   объяснений на страницах приёма были недоступны большинству — отсюда отзывы
   «порог это что?» при готовом ответе в title. Пунктир показывает, что здесь
   есть объяснение; пузырь открывается по тапу и закрывается вторым тапом. */
.has-tip {
  border-bottom: 1px dotted var(--ink-3);
  cursor: help;
}
.tap-tip {
  position: absolute;
  z-index: 9999;
  max-width: 320px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--card);
  color: var(--ink);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
  box-shadow: var(--shadow);
}
.tap-tip[hidden] { display: none; }

/* ═══ Womansway — свои правила поверх ядра (13.09.2026) ═══ */
.hero--single { grid-template-columns: 1fr; max-width: 800px; }
.tool-card .tool-icon { font-size: 40px; line-height: 1; margin-bottom: 14px; }
.section .container > h1 { margin-bottom: 16px; }
.section ul { padding-left: 1.2em; color: var(--ink-2); line-height: 1.6; }
.section ul li { margin-bottom: 8px; }
.section h2 { margin: 28px 0 12px; font-size: 24px; }

/* ═══ Womansway: хаб, список номеров, плеер тренажёра (14.09.2026) ═══ */
.gd-hero { padding: 40px 0 8px; }
.gd-hero--sm { padding: 28px 0 0; }
.gd-hero h1 { font-size: clamp(28px, 4.5vw, 44px); margin: 12px 0 14px; }
.gd-hero h1 em { font-style: normal; color: var(--blue); }
.gd-badge { display: inline-block; background: var(--card); border: 2px solid var(--blue-soft); border-radius: 100px; padding: 6px 14px; font-size: 13px; font-weight: 700; color: var(--blue); }
.gd-lead { font-size: 17px; color: var(--ink-2); max-width: 720px; font-weight: 500; }
.gd-crumbs { font-size: 13px; color: var(--ink-3); font-weight: 600; }
.gd-crumbs a { color: var(--ink-2); text-decoration: none; }
.gd-crumbs a:hover { color: var(--blue); }
.gd-section { padding: 28px 0 40px; }
.gd-section h2 { font-size: 24px; margin-bottom: 18px; }
.gd-section--how { padding-bottom: 60px; }

.gd-exams { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.gd-group-title { font-size: 26px; margin: 0 0 16px; }
.gd-exam__stats .muted { display: none; }
.gd-exam { display: flex; flex-direction: column; gap: 8px; background: var(--card); border-radius: 24px; padding: 28px; box-shadow: var(--shadow); text-decoration: none; color: var(--ink); border: 2px solid transparent; transition: transform .12s, border-color .12s; }
.gd-exam:hover { transform: translateY(-3px); border-color: var(--blue-soft); }
.gd-exam__emoji { font-size: 34px; line-height: 1; }
.gd-exam h2 { font-size: 22px; margin: 4px 0 0; }
.gd-exam p { color: var(--ink-2); font-size: 14px; font-weight: 500; }
.gd-exam__stats { display: flex; flex-direction: column; gap: 4px; margin-top: 10px; font-size: 14px; color: var(--ink-2); }
.gd-exam__stats b { color: var(--ink); font-size: 16px; }
.gd-exam__stats .muted { color: var(--ink-3); }
.gd-exam__cta { margin-top: auto; padding-top: 14px; color: var(--blue); font-weight: 800; font-size: 14px; }

.gd-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.gd-step { background: var(--bg-2); border: 1px solid var(--line); border-radius: 18px; padding: 18px 20px; display: flex; gap: 14px; align-items: flex-start; }
.gd-step span { flex: 0 0 34px; height: 34px; border-radius: 10px; background: var(--yellow); color: var(--on-yellow); font-weight: 900; display: inline-flex; align-items: center; justify-content: center; }
.gd-step p { color: var(--ink-2); font-size: 14px; font-weight: 500; }

.gd-numbers { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }
.gd-num { background: var(--card); border-radius: 20px; padding: 20px 22px; box-shadow: var(--shadow); scroll-margin-top: 90px; }
.gd-num--p2 { opacity: .75; background: var(--bg-2); box-shadow: none; border: 1px dashed var(--line); }
.gd-num__head { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.gd-num__n { flex: 0 0 auto; background: var(--blue-soft); color: var(--blue); font-weight: 900; border-radius: 10px; padding: 4px 10px; font-size: 14px; }
.gd-num h2 { font-size: 17px; margin: 0; }
.gd-num__meta { font-size: 13px; color: var(--ink-3); font-weight: 600; margin-bottom: 10px; }
.gd-num__list { list-style: none; display: flex; flex-direction: column; gap: 4px; }
.gd-num__list li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; background: var(--bg-2); }
.gd-num__list a { text-decoration: none; font-weight: 700; font-size: 14px; color: var(--ink); }
.gd-num__list a:hover { color: var(--blue); }
.gd-num__cnt { font-size: 12px; color: var(--ink-3); font-weight: 700; white-space: nowrap; }

/* плеер */
[hidden] { display: none !important; }   /* иначе .pl-actions{display:flex}/.btn{inline-flex} перебивают hidden */
.gd-section--player { padding-top: 20px; }
.pl { max-width: 820px; }
.pl-card { background: var(--card); border-radius: 24px; padding: 28px 30px; box-shadow: var(--shadow-lg); }
.pl-head { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; font-size: 13px; font-weight: 700; color: var(--ink-3); }
.pl-topic { color: var(--blue); }
.pl-stem { font-size: 17px; line-height: 1.6; }
.pl-stem p, .pl-solution p { margin-bottom: 10px; }
.pl-stem ol, .pl-stem ul, .pl-solution ol, .pl-solution ul { margin: 6px 0 12px 22px; }
.pl-stem li, .pl-solution li { margin-bottom: 4px; }
.tbl-wrap { overflow-x: auto; margin: 10px 0 14px; }
.tbl { border-collapse: collapse; font-size: 15px; min-width: 240px; }
.tbl th, .tbl td { border: 1px solid var(--line); padding: 6px 10px; text-align: center; }
.tbl th { background: var(--bg-2); font-weight: 700; }
.pl-img { margin: 12px 0; text-align: center; }
.pl-img img { display: inline-block; max-width: 100%; max-height: 360px; background: #fff; border-radius: 12px; padding: 6px; }
html[data-theme="dark"] .pl-img img { background: #f3f6fb; }
.katex-display { overflow-x: auto; overflow-y: hidden; padding: 4px 0; }
.pl-form { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 18px; }
.pl-input { flex: 1 1 200px; max-width: 320px; font: inherit; font-size: 18px; font-weight: 700; padding: 12px 14px; border: 2px solid var(--line); border-radius: 12px; background: var(--bg-2); color: var(--ink); }
.pl-input:focus { outline: none; border-color: var(--blue); }
.pl-input:disabled { opacity: .7; }
.pl-skip { background: none; border: none; color: var(--ink-3); font: inherit; font-weight: 700; cursor: pointer; padding: 8px; }
.pl-skip:hover { color: var(--ink-2); }
.pl-choices { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.pl-choice { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border: 2px solid var(--line); border-radius: 12px; cursor: pointer; background: var(--bg-2); font-size: 16px; }
.pl-choice:has(input:checked) { border-color: var(--blue); background: var(--info-bg); }
.pl-choice input { accent-color: var(--blue); width: 18px; height: 18px; }
.pl-choice__n { font-weight: 800; color: var(--ink-3); }
.pl-verdict { margin-top: 16px; padding: 12px 16px; border-radius: 12px; font-size: 15px; border: 1px solid; }
.pl-verdict--ok { background: var(--ok-bg); color: var(--ok-ink); border-color: var(--ok-line); }
.pl-verdict--err { background: var(--err-bg); color: var(--err-ink); border-color: var(--err-line); }
.pl-answer { font-weight: 800; }
.pl-solution { margin-top: 14px; padding: 16px 18px; border-radius: 14px; background: var(--bg-2); border: 1px solid var(--line); font-size: 15px; line-height: 1.6; }
.pl-solution__title { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); margin-bottom: 8px; }
.pl-note { font-size: 12px; color: var(--ink-3); margin-top: 8px; }
.pl-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.pl-dots { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px 4px; }
.pl-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--line); }
.pl-dot.cur { background: var(--yellow); box-shadow: 0 0 0 3px var(--card), 0 0 0 5px var(--yellow); }
.pl-dot.ok { background: var(--green); }
.pl-dot.err { background: var(--red); }
.pl-result { text-align: center; }
.pl-result__score { font-size: 22px; font-weight: 700; color: var(--ink-2); margin-bottom: 6px; }
.pl-result__score b { font-size: 56px; line-height: 1; display: block; letter-spacing: -.03em; }
.pl-result__score.ok b { color: var(--green-deep); }
.pl-result__score.mid b { color: var(--yellow-bright); }
.pl-result__score.err b { color: var(--red); }
.pl-result__txt { color: var(--ink-2); font-weight: 600; margin-bottom: 18px; }
.pl-result__wrong { text-align: left; background: var(--bg-2); border: 1px solid var(--line); border-radius: 14px; padding: 14px 18px; margin-bottom: 8px; }
.pl-result__wrong ul { list-style: none; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.pl-result .pl-actions { justify-content: center; }

@media (max-width: 900px) {
  .gd-exams, .gd-steps { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .gd-numbers { grid-template-columns: 1fr; }
  .pl-card { padding: 20px 16px; border-radius: 18px; }
  .pl-stem { font-size: 16px; }
  .pl-input { max-width: none; }
  .pl-actions .btn { width: 100%; justify-content: center; }
}

/* Часть 2 — самопроверка (14.09.2026) */
.pl-verdict--neutral { background: var(--bg-2); color: var(--ink); border-color: var(--line); }
.pl-selfnote { font-size: 14px; color: var(--ink-2); margin: 4px 0 12px; }
.pl-self { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 18px; padding: 16px; border: 1px dashed var(--line); border-radius: 16px; }
.pl-self__q { flex: 1 1 100%; font-weight: 800; }
.pl-self .btn[disabled] { opacity: .55; }
.pl-self .btn.is-chosen { opacity: 1; outline: 3px solid var(--blue); outline-offset: 2px; }
.pl-ai { margin-left: auto; font-weight: 800; color: var(--blue); text-decoration: none; }
.pl-ai:hover { text-decoration: underline; }
@media (max-width: 560px) { .pl-ai { margin-left: 0; flex: 1 1 100%; } }

/* Часть 2 — проверка решения ИИ в задаче (15.09.2026) */
.pl-aicheck { margin-top: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.pl-ai-hint { margin: 0; flex: 1 1 240px; }
.pl-ai-form { flex: 1 1 100%; display: flex; flex-direction: column; gap: 10px; padding: 16px; border: 1px dashed var(--line); border-radius: 16px; background: var(--bg-2); }
.pl-ai-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.pl-ai-files { margin: 0; }
.pl-ai-text { width: 100%; font: inherit; font-size: 15px; padding: 10px 12px; border: 2px solid var(--line); border-radius: 12px; background: var(--card); color: var(--ink); resize: vertical; }
.pl-ai-text:focus { outline: none; border-color: var(--blue); }
.pl-ai-status { margin: 0; display: inline-flex; align-items: center; gap: 8px; }
.pl-spin { width: 14px; height: 14px; border: 2px solid var(--line); border-top-color: var(--blue); border-radius: 50%; animation: pl-spin .8s linear infinite; }
@keyframes pl-spin { to { transform: rotate(360deg); } }
.pl-ai-res { display: flex; flex-direction: column; gap: 8px; }
.pl-ai-head { margin-top: 0; }
.pl-ai-form .btn[disabled] { opacity: .55; cursor: default; }
.pl-ai-sum { font-size: 15px; line-height: 1.5; }
.pl-ai-errs { list-style: none; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.pl-ai-errs li { padding: 10px 12px; border-radius: 12px; background: var(--err-bg); color: var(--err-ink); border: 1px solid var(--err-line); }
.pl-ai-fix { margin-top: 4px; color: var(--ink); }
.pl-self .pl-ai { background: none; border: none; color: var(--blue); font: inherit; font-weight: 700; cursor: pointer; padding: 8px 0; text-decoration: underline; }
@media (max-width: 560px) { .pl-aicheck .btn, .pl-ai-row .btn { width: 100%; justify-content: center; } }

/* ── Жалоба на задачу в плеере (15.09.2026) ── */
.pl-report-wrap { margin-top: 18px; padding-top: 12px; border-top: 1px dashed var(--line); }
.pl-report-open { background: none; border: none; padding: 4px 0; font: inherit; font-size: 13px; font-weight: 700; color: var(--ink-3); cursor: pointer; }
.pl-report-open:hover { color: var(--warn-ink); text-decoration: underline; }
.pl-report { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 16px; background: var(--warn-bg); border: 1px solid var(--warn-line); }
.pl-report__title { font-weight: 800; font-size: 15px; }
.pl-report__type { font: inherit; font-size: 15px; padding: 9px 12px; border: 2px solid var(--line); border-radius: 12px; background: var(--card); color: var(--ink); }
.pl-report .pl-ai-text { background: var(--card); }
.pl-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.pl-report-status { font-size: 13px; }
.pl-report-status--ok { color: var(--ok-ink); font-weight: 700; }

/* Соответствие «буква → цифра» (18.09.2026) */
.pl-match { flex: 0 0 100%; max-width: 560px; display: flex; flex-direction: column; gap: 4px;
  padding: 14px 16px 12px; border: 1px solid var(--line); border-radius: 18px; background: var(--bg-2); }
.pl-match__row { display: flex; align-items: center; gap: 10px; padding: 5px 8px; border-radius: 12px; border: 2px solid transparent; cursor: pointer; }
.pl-match__row:hover:not(.is-cur) { background: var(--card); }
.pl-match__row.is-cur { border-color: var(--blue); background: var(--card); }
.pl-match__row.is-miss { border-color: var(--err-line); background: var(--err-bg); }
.pl-match__row.is-ok { border-color: var(--ok-line); background: var(--ok-bg); }
.pl-match__row.is-err { border-color: var(--err-line); background: var(--err-bg); }
.pl-match__l { flex: 0 0 24px; font-weight: 900; font-size: 16px; text-align: center; color: var(--ink-2); }
.pl-match__row.is-cur .pl-match__l, .pl-match__row.is-ok .pl-match__l, .pl-match__row.is-err .pl-match__l { color: var(--ink); }
.pl-match__opts { display: flex; flex-wrap: wrap; gap: 6px; }
.pl-match__d { min-width: 38px; height: 38px; padding: 0 8px; border-radius: 10px; border: 2px solid var(--line); background: var(--card); color: var(--ink); font: inherit; font-weight: 800; font-size: 16px; cursor: pointer; transition: background .12s, border-color .12s; }
.pl-match__d:hover:not(:disabled) { border-color: var(--blue); }
.pl-match__d.is-on { background: var(--blue); border-color: var(--blue); color: #fff; }
.pl-match__d:disabled { cursor: default; opacity: .5; }
.pl-match__d.is-on:disabled { opacity: 1; }
.pl-match__row.is-err .pl-match__d.is-on { background: var(--red); border-color: var(--red); color: #fff; }
.pl-match__d.is-right { opacity: 1; border-color: var(--green); color: var(--green-deep); }
.pl-match__row.is-ok .pl-match__d.is-right { background: var(--green); border-color: var(--green); color: #fff; }

/* бланк ответа: буквы сверху, выбранные цифры снизу */
.pl-match__foot { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; padding-top: 10px; border-top: 1px dashed var(--line); }
.pl-match__cap { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-3); }
.pl-match__sum { display: inline-flex; border: 2px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--card); }
.pl-match__sum span { display: flex; flex-direction: column; min-width: 34px; text-align: center; }
.pl-match__sum span + span { border-left: 2px solid var(--line); }
.pl-match__sum b { font-size: 11px; font-weight: 800; color: var(--ink-3); background: var(--bg-2); padding: 2px 0; border-bottom: 1px solid var(--line); }
.pl-match__sum i { font-style: normal; font-size: 17px; font-weight: 800; color: var(--ink-3); padding: 3px 0 4px; }
.pl-match__sum span.is-filled i { color: var(--blue); }
@media (max-width: 560px) {
  .pl-match { width: 100%; padding: 12px 10px 10px; }
  .pl-match__d { min-width: 42px; height: 42px; }
  .pl-match__row { gap: 8px; padding: 5px 4px; }
  .pl-match__foot { gap: 8px; }
}

/* Выбор номера(ов) из списка (18.09.2026) */
.pl-pick { flex: 0 0 100%; max-width: 560px; display: flex; flex-direction: column; gap: 8px;
  padding: 14px 16px 12px; border: 1px solid var(--line); border-radius: 18px; background: var(--bg-2); }
.pl-pick__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.pl-pick__d { min-width: 46px; height: 46px; padding: 0 10px; border-radius: 12px; border: 2px solid var(--line); background: var(--card); color: var(--ink); font: inherit; font-weight: 800; font-size: 18px; cursor: pointer; transition: background .12s, border-color .12s; }
.pl-pick__d:hover:not(:disabled) { border-color: var(--blue); }
.pl-pick__d.is-on { background: var(--blue); border-color: var(--blue); color: #fff; }
.pl-pick__d:disabled { cursor: default; opacity: .5; }
.pl-pick__d.is-on:disabled, .pl-pick__d.is-ok, .pl-pick__d.is-err, .pl-pick__d.is-right { opacity: 1; }
.pl-pick__d.is-ok { background: var(--green); border-color: var(--green); color: #fff; }
.pl-pick__d.is-err { background: var(--red); border-color: var(--red); color: #fff; }
.pl-pick__d.is-right { border-color: var(--green); color: var(--green-deep); background: var(--ok-bg); }
.pl-pick__foot { display: flex; align-items: center; gap: 10px; min-height: 26px; }
.pl-pick__cap { font-size: 13px; font-weight: 700; color: var(--ink-3); }
.pl-pick__cap b { font-size: 15px; color: var(--ink); letter-spacing: .08em; }
.pl-pick.is-seq-ok .pl-pick__cap b { color: var(--ok-ink); }
.pl-pick.is-seq-err .pl-pick__cap b { color: var(--err-ink); }
.pl-pick__bs { margin-left: auto; min-width: 40px; height: 32px; border-radius: 10px; border: 2px solid var(--line); background: var(--card); color: var(--ink-2); font: inherit; font-size: 15px; cursor: pointer; }
.pl-pick__bs:hover:not(:disabled) { border-color: var(--blue); color: var(--ink); }
.pl-pick__bs:disabled { opacity: .45; cursor: default; }
@media (max-width: 560px) { .pl-pick { width: 100%; padding: 12px 10px 10px; } .pl-pick__d { min-width: 48px; height: 48px; } }

/* Карточки (18.09.2026) */
.gd-section--cards { padding-bottom: 0; }
.gd-cards-cta { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; background: var(--card); border: 2px dashed var(--line); border-radius: 20px; padding: 18px 22px; text-decoration: none; color: inherit; }
.gd-cards-cta:hover { border-color: var(--blue); }
.gd-cards-cta__emoji { font-size: 30px; }
.gd-cards-cta__txt { flex: 1 1 260px; font-size: 14px; color: var(--ink-2); line-height: 1.5; }
.gd-cards-cta__txt b { font-size: 17px; color: var(--ink); }
.gd-cards-cta__go { font-weight: 800; color: var(--blue); white-space: nowrap; }
.gd-decks { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.gd-deck { display: block; background: var(--card); border-radius: 18px; padding: 18px 20px; box-shadow: var(--shadow); text-decoration: none; color: inherit; border: 2px solid transparent; }
.gd-deck:hover { border-color: var(--blue); }
.gd-deck h2 { font-size: 16px; margin: 0 0 6px; }
.gd-deck__meta { font-size: 13px; color: var(--ink-3); font-weight: 700; margin: 0; }
.gd-deck__bar { height: 6px; border-radius: 4px; background: var(--line); margin-top: 12px; overflow: hidden; display: none; }
.gd-deck__bar span { display: block; height: 100%; width: var(--p, 0%); background: var(--green); border-radius: 4px; }
.gd-deck__known { display: none; font-size: 12px; font-weight: 700; color: var(--green-deep); margin-top: 6px; }
.gd-deck.is-started .gd-deck__bar, .gd-deck.is-started .gd-deck__known { display: block; }

.cards { max-width: 720px; }
.cd-top { display: flex; justify-content: space-between; align-items: center; font-size: 13px; font-weight: 700; color: var(--ink-3); margin-bottom: 10px; }
.cd-box { letter-spacing: .1em; color: var(--yellow-bright); }
.cd-card { background: var(--card); border-radius: 24px; padding: 34px 30px; box-shadow: var(--shadow-lg); min-height: 210px; display: flex; flex-direction: column; justify-content: center; cursor: pointer; border: 2px solid transparent; }
.cd-card:focus-visible { outline: none; border-color: var(--blue); }
.cd-text { font-size: 21px; line-height: 1.45; font-weight: 700; text-align: center; }
.cd-back .cd-text { font-size: 18px; font-weight: 500; text-align: left; }
.cd-q { font-size: 15px; font-weight: 800; color: var(--blue); text-align: left; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px dashed var(--line); }
.cd-hint { margin-top: 14px; font-size: 14px; color: var(--ink-2); background: var(--bg-2); border-radius: 12px; padding: 10px 12px; }
.cd-hint-tap { margin-top: 18px; text-align: center; font-size: 12px; color: var(--ink-3); font-weight: 700; }
.cd-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; justify-content: center; }
.cd-done { background: var(--card); border-radius: 24px; padding: 30px; box-shadow: var(--shadow-lg); text-align: center; }
.cd-done__score { font-size: 20px; font-weight: 700; color: var(--ink-2); }
.cd-done__score b { font-size: 52px; line-height: 1; display: block; letter-spacing: -.03em; }
.cd-done__score.ok b { color: var(--green-deep); }
.cd-done__score.mid b { color: var(--yellow-bright); }
.cd-done__score.err b { color: var(--red); }
.cd-done__txt { color: var(--ink-2); font-weight: 600; margin: 10px 0 18px; }
@media (max-width: 560px) {
  .cd-card { padding: 26px 18px; border-radius: 18px; min-height: 180px; }
  .cd-text { font-size: 19px; }
  .cd-actions .btn { flex: 1 1 100%; justify-content: center; }
}
