/* Главная. Собрано скриптом разработка/главная/собрать.py из макетов — не править руками. */
/* Dragon Compass — дополнительные блоки сущностей. Подключать после style.css. */

/* Сроки с обратным отсчётом */
.deadlines { display: grid; gap: 10px; }
.dl { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto; gap: 16px; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 14px 18px; }
.dl .date { font: 700 18px/1.1 var(--font-display); }
.dl .date small { display: block; font: 500 12px var(--font-text); color: var(--muted); margin-top: 4px; }
.dl b { font: 600 16px var(--font-display); display: block; }
.dl span { font-size: 14px; color: var(--muted); }
.left { font: 600 13px var(--font-display); border-radius: 999px; padding: 6px 12px; background: var(--page); color: var(--ink); white-space: nowrap; }
.left.hot { background: var(--tag-bg); color: var(--tag-text); }
.dl.past { opacity: .55; }

/* План «за 12 / 9 / 6 / 3 месяца» */
.plan { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; position: relative; }
.plan .pm { background: var(--surface); border-radius: var(--radius-card); padding: 22px; border-top: 4px solid var(--line); }
.plan .pm.now { border-top-color: var(--brand); }
.plan .pm .when { font: 700 26px var(--font-display); color: var(--brand); letter-spacing: -0.02em; }
.plan .pm .when small { font: 500 13px var(--font-text); color: var(--muted); display: block; letter-spacing: 0; }
.plan .pm ul { padding-left: 18px; margin: 12px 0 0; font-size: 15px; }
.plan .pm li { margin: 6px 0; }

/* Сессии экзамена */
.sessions .tbl td:first-child { font: 600 16px var(--font-display); }
.status { display: inline-block; border-radius: 999px; padding: 4px 10px; font: 500 12px var(--font-display); }
.status.open { background: #E3F4EA; color: #1E7F4F; }
.status.soon { background: var(--tag-bg); color: var(--tag-text); }
.status.closed { background: var(--page); color: var(--muted); }

/* Чек-лист «подхожу ли» */
.fit { display: grid; gap: 8px; }
.fit label { display: flex; gap: 12px; align-items: flex-start; background: var(--page); border-radius: 12px; padding: 12px 14px; font-size: 15px; }
.fit input { accent-color: var(--button); width: 20px; height: 20px; margin-top: 1px; flex: none; }
.fit-result { margin-top: 14px; border-radius: 14px; padding: 16px 18px; background: #E3F4EA; color: #14532D; font-size: 15px; }
.fit-result b { font-family: var(--font-display); }

/* Карточка пути / продукта */
.pathcard { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border: 1px solid var(--line); border-radius: var(--radius-card); overflow: hidden; background: var(--surface); }
.pathcard div { padding: 16px 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.pathcard div:nth-child(3n) { border-right: 0; }
.pathcard small { display: block; font-size: 12px; color: var(--muted); }
.pathcard b { font: 600 17px var(--font-display); }

/* Шкала надёжности А/Б/В/Г */
.grade { display: inline-flex; width: 30px; height: 30px; border-radius: 8px; align-items: center; justify-content: center; font: 700 15px var(--font-display); color: #fff; background: var(--ink); }
.grade.a { background: #1E7F4F; } .grade.b { background: #3C8D5F; } .grade.c { background: #C98A12; } .grade.d { background: var(--cinnabar-700); }

/* Кейс студента */
.case { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 0; overflow: hidden; padding: 0; }
.case .side { background: var(--ink); color: #fff; padding: 22px; }
.case .side .ava { background: rgba(255,255,255,.12); color: #fff; margin-bottom: 12px; }
.case .side small { color: #9FB0CC; display: block; font-size: 13px; }
.case .body { padding: 22px 26px; }
.case .route { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font: 500 14px var(--font-display); margin: 10px 0; }
.case .route i { color: var(--brand); font-style: normal; }
.placeholder { border: 1.5px dashed var(--line); background: transparent; color: var(--muted); }

/* Совет практика */
.quote { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; background: var(--surface); border-radius: var(--radius-card); padding: 22px; margin: 24px 0; border: 1px solid var(--line); }
.quote .ava { width: 56px; height: 56px; font-size: 16px; }
.quote p { font: 500 18px/1.5 var(--font-display); margin: 0 0 8px; letter-spacing: -0.01em; }
.quote small { color: var(--muted); font-size: 14px; }

/* Пометка «нет данных» */
.nodata { display: inline-flex; gap: 6px; align-items: center; color: var(--muted); font-size: 14px; font-style: italic; }
.nodata::before { content: "◌"; color: var(--cinnabar-400); font-style: normal; }
.rate { font-size: 13px; color: var(--muted); }

/* Плавающий мессенджер (телефон) */
.fab { display: none; position: fixed; right: 16px; bottom: 16px; z-index: 9; width: 58px; height: 58px; border-radius: 50%; background: #229ED9; color: #fff; align-items: center; justify-content: center; font: 700 22px var(--font-display); box-shadow: 0 10px 24px rgba(19,33,60,.25); text-decoration: none; }

/* Меню на телефоне (показ в макете) */
.mmenu { background: var(--surface); border-radius: 0 0 20px 20px; padding: 8px 24px 24px; box-shadow: 0 20px 40px rgba(19,33,60,.12); }
.mmenu a { display: flex; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; font: 600 18px var(--font-display); }
.mmenu .btn { margin-top: 18px; }

/* Мега-меню (компьютер) */
.mega { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.mega h4 { font: 600 13px var(--font-display); color: var(--muted); margin: 0 0 10px; text-transform: uppercase; letter-spacing: .04em; }
.mega a { display: block; color: var(--ink); text-decoration: none; font-size: 15px; padding: 5px 0; }

/* Входит / не входит */
.incl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.incl ul { list-style: none; padding: 0; margin: 0; }
.incl li { padding: 8px 0 8px 28px; position: relative; font-size: 15px; border-bottom: 1px solid var(--line); }
.incl .yes li::before { content: "✓"; position: absolute; left: 0; color: #1E7F4F; font-weight: 700; }
.incl .no li::before { content: "—"; position: absolute; left: 0; color: var(--muted); }

/* Оплата этапами */
.pay { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pay .card b { font: 700 22px var(--font-display); color: var(--brand); display: block; }

/* Калькулятор */
.calc { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 16px; }
.field { margin-bottom: 16px; }
.field label { display: block; font: 600 14px var(--font-display); margin-bottom: 8px; }
.seg { display: flex; flex-wrap: wrap; gap: 6px; }
.seg span { border: 1px solid var(--line); border-radius: 999px; padding: 8px 14px; font: 500 14px var(--font-display); background: var(--surface); }
.seg span.on { background: var(--ink); color: #fff; border-color: var(--ink); }
.total { background: var(--ink); color: #fff; border-radius: var(--radius-card); padding: 26px; }
.total .sum { font: 800 44px var(--font-display); letter-spacing: -0.03em; }
.total .row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.12); font-size: 15px; color: #C7D1E2; }
.total .row b { color: #fff; font-weight: 500; }

/* Автор */
.authorhead { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 32px; align-items: center; }
.photo { width: 180px; height: 180px; border-radius: 24px; background: var(--tag-bg); color: var(--tag-text); display: flex; align-items: center; justify-content: center; font: 700 48px var(--font-display); }
.stats { display: flex; gap: 28px; flex-wrap: wrap; margin-top: 18px; }
.stats b { font: 800 30px var(--font-display); display: block; letter-spacing: -0.02em; }
.stats span { font-size: 13px; color: var(--muted); }

/* Хаб раздела */
.hubgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.hubgrid .card b { font: 600 19px/1.3 var(--font-display); display: block; margin: 10px 0 6px; }
.hubgrid .card span { font-size: 14px; color: var(--muted); }
.hubgrid .big { grid-column: span 2; background: var(--ink); color: #fff; }
.hubgrid .big span { color: #9FB0CC; }

/* Регионы подачи (виза, страна) */
.regions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.regions .card { padding: 18px; }
.regions b { font: 600 16px var(--font-display); display: block; }
.regions span { font-size: 14px; color: var(--muted); }

/* ===== Планшет ===== */
@media (min-width: 641px) and (max-width: 1100px) {
  .layout { grid-template-columns: 220px minmax(0, 1fr); gap: 24px; }
  .cat { grid-template-columns: 240px minmax(0, 1fr); }
  .bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ucards { grid-template-columns: minmax(0, 1fr); }
  .grid3, .hubgrid, .regions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plan, .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nav { gap: 16px; font-size: 14px; }
  .final { grid-template-columns: 1fr; }
  .hero[style*="grid"] { grid-template-columns: 1fr !important; }
}

/* ===== Телефон ===== */
@media (max-width: 640px) {
  .dl { grid-template-columns: minmax(0, 1fr) auto; }
  .dl .date { grid-column: 1 / -1; }
  .plan, .pay, .incl, .calc, .hubgrid, .regions { grid-template-columns: minmax(0, 1fr); }
  .hubgrid .big { grid-column: auto; }
  .pathcard { grid-template-columns: 1fr 1fr; }
  .pathcard div:nth-child(3n) { border-right: 1px solid var(--line); }
  .pathcard div:nth-child(2n) { border-right: 0; }
  .case { grid-template-columns: minmax(0, 1fr); }
  .authorhead { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .photo { width: 120px; height: 120px; font-size: 34px; }
  .fab { display: flex; }
  .total .sum { font-size: 36px; }
}

/* Планшет вертикально (641–900): оглавление сверху, одна колонка */
@media (min-width: 641px) and (max-width: 900px) {
  .layout, .cat { grid-template-columns: minmax(0, 1fr); }
  .toc { position: static; }
  .toc a:nth-of-type(n+5) { display: none; }
  .filters { display: none; }
  .mfilters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
  .ucards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quiz, .calc { grid-template-columns: minmax(0, 1fr); }
  .header .wrap { gap: 20px; }
  .header img { height: 36px; }
  .hero { padding: 32px; }
}

/* Общие правки для телефона: карточка пути не шире экрана, длинные кнопки переносятся */
.pathcard { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 640px) {
  .pathcard { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .btn { white-space: normal; height: auto; min-height: var(--button-height); padding: 12px 20px; text-align: center; line-height: 1.25; }
}

/* ===== Первый экран (hero-studenty) ===== */

.hs { position: relative; overflow: hidden; height: 820px; background: radial-gradient(55% 75% at 50% 45%, #FFFFFF 0%, #F3F5F9 50%, #E7EBF2 100%); }
.hs::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 140px; background: linear-gradient(rgba(238,241,246,0), var(--page, #EEF1F6)); z-index: 3; pointer-events: none; }
.hs .switch { z-index: 6; }
.hs svg.line { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.hs svg.back { z-index: 1; } .hs svg.front { z-index: 3; }
.gate-scene { opacity: 0; transform: scale(1.08); transform-box: fill-box; transform-origin: center; transition: opacity 1.2s ease .9s, transform 2.4s cubic-bezier(.2,.8,.2,1) .9s; }
.gate-scene.in { opacity: 1; transform: scale(1); }
.gate-ring { fill: none; stroke: var(--brand); stroke-width: 40; stroke-linecap: butt; }
.gate-dial { opacity: 0; transform-box: view-box; transition: opacity .6s ease 1.4s; }
.gate-dial.in { opacity: 1; }
.gate-dial .rot { transform-box: view-box; transform: rotate(var(--from)); transition: transform 2.6s cubic-bezier(.25,1.35,.4,1) 1.5s; }
.gate-dial.in .rot { transform: rotate(var(--to)); }
.gate-dial text { font-family: 'Noto Serif SC', serif; font-weight: 900; fill: #fff; }
.gate-dial .dg { font: 600 12px var(--font-display); fill: var(--muted); letter-spacing: .02em; }
.gate-dial .lbl { font-family: var(--font-display); font-weight: 600; fill: #fff; }
.gate-thin { fill: none; stroke: var(--brand); stroke-width: 2; opacity: 0; transition: opacity .8s ease 1.6s; }
.gate-thin.in { opacity: .55; }
.gate-mark { fill: var(--brand); opacity: 0; transform: translateY(8px); transform-box: fill-box; transition: opacity .6s ease 1.9s, transform .6s ease 1.9s; }
.gate-mark.in { opacity: 1; transform: none; }
.gate-ring.draw { animation: draw 1.6s cubic-bezier(.65,0,.35,1) forwards; }
.gate-shadow { fill: url(#gshade); }
@keyframes draw { to { stroke-dashoffset: 0; } }
.hs-side { position: absolute; }
.hs-side .hs-cards { position: relative; }

.stage, .stage-m { position: absolute; inset: 0; }
.hs-person { position: absolute; left: calc(50% + 200px); bottom: 0; height: 74%; aspect-ratio: 5 / 7; transform: translateX(-50%) translateY(24px); opacity: 0; z-index: 2; transition: opacity .6s ease, transform .8s cubic-bezier(.2, .8, .2, 1); }
.hs-person.in { opacity: 1; transform: translateX(-50%) translateY(0); }
.hs-person svg { width: 100%; height: 100%; display: block; }
.hs-person img { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; display: block; }
.hs-person .ph { position: absolute; bottom: 120px; left: 50%; transform: translateX(-50%); background: rgba(255,255,255,.85); border: 1px dashed var(--line); border-radius: 999px; padding: 6px 14px; font: 500 12px var(--font-display); color: var(--muted); white-space: nowrap; }

.hs .wrap { position: relative; height: 100%; z-index: 4; pointer-events: none; }
.hs .wrap > * { pointer-events: auto; }
.hs-text { position: absolute; left: 24px; top: 50%; transform: translateY(-56%); max-width: 520px; }
.hs-text h1 { font-size: clamp(36px, 3.5vw, 52px); line-height: 1.06; }
.hs-text p { font-size: 19px; }
.hs-text h1 .nb { white-space: nowrap; }
.hs-text h1 em { margin-top: 8px; font-size: .62em; line-height: 1.2; }
.hs-text h1 em { font-style: normal; color: var(--brand); display: block; }
.hs-text .hs-path { margin: 22px 0 24px; } .hs-text .hs-path p { margin: 10px 0 0; }
.hs-text p { font-size: 18px; margin: 18px 0 28px; }
.hs-side { position: absolute; right: 0; top: auto; bottom: 120px; transform: none; width: 290px; z-index: 5; }
.hs-side .hs-cards .card { background: rgba(255,255,255,.94); backdrop-filter: blur(6px); box-shadow: 0 18px 40px rgba(19,33,60,.16); }
.hs-side .more { background: #fff; padding: 6px 10px; border-radius: 8px; }
.hs-side .more { display: inline-block; margin-top: 14px; font: 500 15px var(--font-display); color: var(--ink); text-decoration: none; border-bottom: 1.5px solid var(--brand); padding-bottom: 2px; }
.hs-side h3 i { width: 30px; height: 30px; border-radius: 50%; background: var(--ink); color: #fff; font-style: normal; font-size: 15px; display: inline-flex; align-items: center; justify-content: center; }
.hs-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.hs-cards .card { padding: 16px 16px 14px; min-height: 118px; gap: 14px; display: flex; flex-direction: column; justify-content: space-between; box-shadow: 0 10px 30px rgba(19,33,60,.07); }
.hs-cards b { font: 700 22px/1.1 var(--font-display); letter-spacing: -.02em; white-space: nowrap; }
.hs-cards span { font-size: 13px; color: var(--muted); }
.fade { transition: opacity .45s ease, transform .55s cubic-bezier(.2,.8,.2,1); }
.out .fade { opacity: 0; transform: translateY(14px); }
.hs-cards .card:nth-child(2) { transition-delay: .08s; }

.switch { position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%); display: flex; gap: 8px; background: #fff; border-radius: 999px; padding: 8px; box-shadow: 0 12px 34px rgba(19,33,60,.10); }
.sw { display: flex; align-items: center; gap: 12px; padding: 6px 22px 6px 6px; border-radius: 999px; cursor: pointer; border: 0; background: transparent; text-align: left; position: relative; overflow: hidden; }
.sw .av { width: 46px; height: 46px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center; font: 700 15px var(--font-display); color: #fff; }
.sw b { display: block; white-space: nowrap; font: 600 16px var(--font-display); color: var(--muted); transition: color .3s; }
.sw small { font-size: 12px; color: var(--muted); white-space: nowrap; }
.sw.on { background: #fff; box-shadow: 0 4px 14px rgba(19,33,60,.10); }
.sw.on b { color: var(--ink); }
.sw .bar { position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--brand); }
.sw.on .bar { animation: prog 11s linear forwards; }
@keyframes prog { to { width: 100%; } }
.note { max-width: 1200px; margin: 24px auto; padding: 0 24px; font-size: 14px; color: var(--muted); }

@media (max-width: 1100px) {
  .hs { height: auto; padding-bottom: 28px; }
  .hs .wrap { height: auto; display: flex; flex-direction: column; }
  .hs-text, .hs-side, .switch { position: relative; inset: auto; transform: none; left: auto; right: auto; bottom: auto; top: auto; width: auto; max-width: 620px; }
  .hs-text { padding-top: 40px; order: 1; }
  .stage-m { order: 2; position: relative; inset: auto; height: 600px; margin: 0 -24px; }
  .switch { order: 3; z-index: 5; margin-top: -48px; overflow-x: auto; align-self: center; max-width: 100%; scrollbar-width: none; }
  .switch::-webkit-scrollbar { display: none; }
  .sw { flex: none; }
  .hs-side { order: 4; margin-top: 22px; }
  .hs-side .hs-cards { max-width: 420px; }
  .hs-person { height: 84%; left: 50%; }
  .switch { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 18px, #000 calc(100% - 18px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 18px, #000 calc(100% - 18px), transparent 100%); }
}
@media (max-width: 640px) {
  .hs-text { padding-top: 28px; }
  .hs-text p { font-size: 16px; margin: 12px 0 20px; }
  .stage-m { height: 430px; }
  .switch { border-radius: 18px; margin-top: -36px; align-self: stretch; }
  .sw { flex: none; padding: 6px 14px 6px 6px; } .sw .av { width: 38px; height: 38px; } .sw small { display: none; }
  .hs-side { margin-top: 18px; }
  .hs-cards .card { min-height: 96px; } .hs-cards b { font-size: 20px; }
}

/* Кнопка подбора с печатью 龙: иероглиф пишется кистью при появлении, наведении и нажатии */
.seal-btn { opacity: 1; display: inline-flex; align-items: center; gap: 14px; height: 62px; padding: 0 26px 0 9px; border-radius: 14px; background: var(--ink); color: #fff; font: 500 17px var(--font-display); text-decoration: none; transition: background .25s, transform .2s, box-shadow .25s; }
.seal-btn, .seal-btn:hover, .seal-btn:focus, .seal-btn:visited { color: #fff !important; text-decoration: none !important; }
.seal-btn:hover { background: #1D2E50; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(19,33,60,.22); }
.seal-btn .dc-seal { transition: background .25s, transform .25s; }
.seal-btn:hover .dc-seal { background: var(--cinnabar-600, #D82D18); transform: rotate(-4deg); }
.seal-btn:active { transform: scale(.98); }
.seal-btn .dc-seal { width: 46px; height: 46px; border-radius: 10px; background: var(--brand); display: flex; align-items: center; justify-content: center; flex: none; }
@media (max-width: 640px) { .seal-btn { display: flex; width: 100%; height: 58px; padding-right: 18px; font-size: 16px; } .seal-btn .dc-seal { width: 42px; height: 42px; } }

/* ===== Блоки главной (glavnaya) ===== */

  /* Главная — только компьютер (1440). Планшет и телефон — следующим шагом. */
  
  .wrap { max-width: 1240px; }

  /* Первый экран */
  .h-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; margin-top: 24px; }
  .h-hero .main { padding: 48px; display: flex; flex-direction: column; }
  .h-hero h1 { font-size: 56px; max-width: 640px; }
  .h-hero h1 em { font-style: normal; color: var(--brand); }
  .h-hero .lead { font-size: 19px; max-width: 620px; margin: 20px 0 28px; }
  .trust { display: flex; gap: 22px; margin-top: auto; padding-top: 32px; font-size: 14px; color: var(--muted); }
  .trust span::before { content: "✓ "; color: #1E7F4F; font-weight: 700; }

  .qstart { padding: 32px; display: flex; flex-direction: column; }
  .qstart .qstep { font: 600 13px var(--font-display); color: var(--muted); }
  .qstart h3 { font-size: 24px; margin: 6px 0 16px; }
  .qopts { display: grid; gap: 8px; }
  .qopt { display: flex; align-items: center; gap: 12px; border: 1.5px solid var(--line); border-radius: 14px; padding: 12px 16px; cursor: pointer; background: var(--surface); text-align: left; font: inherit; color: inherit; }
  .qopt i { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--line); flex: none; }
  .qopt b { font: 600 16px var(--font-display); display: block; }
  .qopt small { font-size: 13px; color: var(--muted); }
  .qopt.on { border-color: var(--button); background: var(--tag-bg); }
  .qopt.on i { border: 7px solid var(--button); }
  .who { display: flex; gap: 6px; margin: 16px 0; }
  .who span { flex: 1; text-align: center; border: 1px solid var(--line); border-radius: 999px; padding: 9px 0; font: 500 14px var(--font-display); cursor: pointer; }
  .who span.on { background: var(--ink); color: #fff; border-color: var(--ink); }
  .qstart .btn { justify-content: center; }
  .qstart .fine { font-size: 13px; color: var(--muted); margin-top: 10px; text-align: center; }

  .h-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
  .h-facts .card { padding: 22px 24px; }

  /* Заголовки секций */
  .sec { margin-top: 72px; }
  .sechead { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 20px; }
  .sechead h2 { margin: 0; font-size: 36px; }
  .sechead p { margin: 8px 0 0; color: var(--muted); max-width: 640px; }
  .more { font: 500 15px var(--font-display); color: var(--link); text-decoration: none; white-space: nowrap; }

  /* Пути */
  .paths { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .path { text-decoration: none; color: var(--ink); display: flex; flex-direction: column; gap: 6px; min-height: 196px; transition: transform .15s, box-shadow .15s; }
  .path:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(19,33,60,.08); }
  .path .ico { font: 700 15px var(--font-display); width: 44px; height: 44px; border-radius: 12px; background: var(--tag-bg); color: var(--tag-text); display: flex; align-items: center; justify-content: center; margin-bottom: 8px; }
  .path b { font: 600 20px/1.25 var(--font-display); }
  .path span { font-size: 14px; color: var(--muted); }
  .path .meta { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line); font: 500 14px var(--font-display); display: flex; justify-content: space-between; }
  .path .meta i { font-style: normal; color: var(--brand); }
  .path.dark { background: var(--ink); color: #fff; }
  .path.dark span { color: #9FB0CC; }
  .path.dark .ico { background: rgba(255,255,255,.1); color: #fff; }
  .path.dark .meta { border-color: rgba(255,255,255,.14); }

  /* Сроки */
  .dlwrap { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; }
  .dlside { background: var(--ink); color: #fff; }
  .dlside h3 { color: #fff; font-size: 24px; margin: 0 0 10px; }
  .dlside p { color: #C7D1E2; font-size: 15px; }
  .dlside .sub { display: grid; gap: 10px; margin-top: 18px; }
  .dlside input { height: 50px; border-radius: 12px; border: 0; padding: 0 16px; font: 16px var(--font-text); }

  /* Гранты */
  .grants { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
  .glist { display: grid; gap: 10px; }
  .gitem { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; text-decoration: none; color: var(--ink); padding: 18px 22px; }
  .gitem b { font: 600 17px var(--font-display); display: block; }
  .gitem span { font-size: 14px; color: var(--muted); }
  .gitem .amt { font: 700 18px var(--font-display); color: var(--brand); text-align: right; white-space: nowrap; }
  .gitem .amt small { display: block; font: 400 12px var(--font-text); color: var(--muted); }

  /* Вузы и города */
  .unis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .unis .ucard { text-decoration: none; color: var(--ink); }
  .cities { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
  .city { text-decoration: none; color: var(--ink); padding: 18px 20px; }
  .city b { font: 600 18px var(--font-display); display: block; }
  .city span { font-size: 13px; color: var(--muted); }

  /* Стоимость */
  .cost { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 16px; }
  .cost .tbl td b { font-family: var(--font-display); }
  .total .hint { font-size: 13px; color: #9FB0CC; margin-top: 12px; }
  .total .btn { width: 100%; justify-content: center; margin-top: 16px; }
  .seg span { cursor: pointer; }
  .dlside .seg span, .total .seg span { background: transparent; color: #fff; border-color: rgba(255,255,255,.28); }
  .dlside .seg span.on, .total .seg span.on { background: #fff; color: var(--ink); border-color: #fff; }
  .cost .tbl td { white-space: nowrap; }
  .cost .tbl td:first-child { white-space: normal; }
  .lform select { padding-right: 30px; text-overflow: ellipsis; }
  .nav > div.open .dd { display: block; }

  /* Как помогаем */
  .ladder { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .rung { display: flex; flex-direction: column; gap: 10px; }
  .rung .lvl { font: 600 13px var(--font-display); color: var(--muted); }
  .rung h3 { margin: 0; font-size: 22px; }
  .rung ul { margin: 4px 0 0; padding-left: 18px; font-size: 15px; }
  .rung li { margin: 5px 0; }
  .rung .pr { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 12px; }
  .rung .pr b { font: 700 20px var(--font-display); }
  .rung.main { outline: 2px solid var(--brand); }
  .promise { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
  .promise .card { padding: 22px 24px; }
  .promise h4 { font: 600 16px var(--font-display); margin: 0 0 8px; }
  .promise p { font-size: 15px; color: var(--muted); margin: 0; }

  /* Люди */
  .people { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
  .person { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 18px; align-items: start; }
  .person .photo { width: 88px; height: 88px; border-radius: 20px; font-size: 26px; }
  .person b { font: 600 19px var(--font-display); display: block; }
  .person small { color: var(--muted); font-size: 14px; display: block; margin: 2px 0 8px; }
  .person p { font-size: 15px; margin: 0 0 8px; }
  .howcheck { background: var(--tag-bg); }
  .howcheck ol { padding-left: 18px; margin: 10px 0 14px; font-size: 15px; }
  .howcheck li { margin: 5px 0; }

  /* Кейсы */
  .cases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .cases .placeholder { border-radius: var(--radius-card); padding: 28px; min-height: 180px; }
  .cases .placeholder b { font: 600 17px var(--font-display); color: var(--ink); display: block; margin-bottom: 6px; }
  .cases .route { display: flex; flex-wrap: wrap; gap: 6px; font: 500 14px var(--font-display); margin-top: 12px; color: var(--ink); }
  .cases .route i { font-style: normal; color: var(--brand); }

  /* Свежее */
  .fresh { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .fresh .mini { padding: 22px; }
  .fresh .date { font-size: 13px; color: var(--muted); margin-top: 10px; display: block; }

  /* FAQ */
  .faq { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 40px; }
  .faq h2 { margin: 0 0 12px; font-size: 36px; }

  /* Финальная форма */
  .lead-final { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); padding: 52px; gap: 48px; align-items: start; }
  .lead-final .msgr { display: flex; gap: 8px; margin-top: 22px; }
  .lead-final .msgr a { height: 44px; padding: 0 18px; border-radius: 999px; background: rgba(255,255,255,.1); color: #fff; text-decoration: none; display: inline-flex; align-items: center; font: 500 15px var(--font-display); }
  .lead-final ul { margin: 18px 0 0; padding-left: 18px; color: #C7D1E2; font-size: 15px; }
  .lead-final li { margin: 6px 0; }
  .lform { background: var(--surface); color: var(--ink); border-radius: 18px; padding: 28px; display: grid; gap: 14px; }
  .lform .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .lform label { font: 600 13px var(--font-display); display: block; margin-bottom: 6px; color: var(--ink); }
  .lform input, .lform select { width: 100%; height: 48px; border-radius: 12px; border: 1px solid var(--line); padding: 0 14px; font: 15px var(--font-text); background: var(--surface); color: var(--ink); }
  .lform .seg span { padding: 8px 14px; }
  .lform .btn { justify-content: center; width: 100%; }
  .lform .fine { font-size: 12px; color: var(--muted); margin: 0; }
  .opt-link { font-size: 13px; color: var(--link); cursor: pointer; }



  /* ===== Фото ===== */
  .ph { position: relative; background: var(--img) center/cover no-repeat, repeating-linear-gradient(135deg, #E3E8F0 0 14px, #D9DFEA 14px 28px); overflow: hidden; }
  .ph .phl { position: absolute; left: 12px; bottom: 12px; right: 12px; font: 500 12px var(--font-text); color: var(--muted); background: rgba(255,255,255,.85); border-radius: 8px; padding: 6px 9px; }
  .ph.ok .phl { display: none; }

  /* Первый экран на всю ширину */
  .hero-x { width: 100vw; margin-left: calc(50% - 50vw); position: relative; height: 800px; background: url('../фото/hero-shanghai.jpg') center 18%/cover no-repeat; }
  .hero-x::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(19,33,60,0) 0%, rgba(19,33,60,0) 46%, rgba(19,33,60,.55) 66%, rgba(19,33,60,.93) 100%); }
  .hero-x .wrap { position: relative; height: 100%; display: grid; grid-template-columns: minmax(0, 1.35fr) 400px; gap: 40px; align-items: end; padding-bottom: 48px; }
  .hero-x .txt { color: #fff; }
  .hero-x .tag { background: rgba(255,255,255,.16); color: #fff; backdrop-filter: blur(6px); }
  .hero-x h1 { color: #fff; font-size: 58px; margin-top: 16px; max-width: 820px; text-shadow: 0 2px 24px rgba(19,33,60,.35); }
  .hero-x h1 em { font-style: normal; color: #FF8A78; }
  .hero-x .lead { color: #E6EBF4; font-size: 19px; max-width: 700px; margin: 18px 0 26px; }
  .hero-x .btn.ghost { background: rgba(255,255,255,.14); color: #fff; border-color: rgba(255,255,255,.4); backdrop-filter: blur(6px); }
  .hero-x .trust { color: #C7D1E2; padding-top: 22px; margin-top: 0; }
  .hero-x .trust span::before { color: #7FD6A4; }
  .hero-x .qstart { box-shadow: 0 30px 60px rgba(19,33,60,.35); }
  .hero-x .credit { position: absolute; right: 16px; top: 12px; font-size: 11px; color: rgba(19,33,60,.55); }
  .h-facts { margin-top: -0px; }

  /* Мозаика «жизнь студента» */
  .mosaic { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: 260px 260px; gap: 12px; }
  .mosaic .ph { border-radius: var(--radius-card); }
  .mosaic .big { grid-column: span 2; grid-row: span 2; }
  .mosaic .cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 20px 18px; background: linear-gradient(180deg, rgba(19,33,60,0), rgba(19,33,60,.8)); color: #fff; font: 600 17px/1.3 var(--font-display); }
  .mosaic .big .cap { font-size: 24px; padding: 60px 28px 26px; }
  .mosaic .cap small { display: block; font: 400 14px var(--font-text); color: #D5DDEA; margin-top: 4px; }
  .mosaic .ph .phl { top: 12px; bottom: auto; }

  /* Пути с фото */
  .paths .path { padding: 0; overflow: hidden; min-height: 0; gap: 0; }
  .path .ph { height: 168px; }
  .path .pb { padding: 18px 22px 20px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
  .path.dark .ph { opacity: .95; }

  /* Вузы и города с фото */
  .unis .ucard { padding: 0; overflow: hidden; gap: 0; }
  .ucard .uimg { height: 170px; }
  .unis .ucard.promo { padding: 28px; }
  .ucard .ub { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 12px; }
  .cities .city { padding: 0; height: 220px; position: relative; overflow: hidden; border-radius: var(--radius-card); display: block; }
  .cities .city .ph { position: absolute; inset: 0; }
  .cities .city .ct { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 18px 16px; background: linear-gradient(180deg, rgba(19,33,60,0), rgba(19,33,60,.85)); }
  .cities .city b { color: #fff; } .cities .city span { color: #D5DDEA; }
  .cities .city .ph .phl { top: 10px; bottom: auto; }

  /* Гранты, помощь, финал */
  .gph { height: 200px; border-radius: var(--radius-card); }
  .rung .ph { height: 150px; margin: -28px -28px 6px; }
  .rung { overflow: hidden; }
  .lead-final { position: relative; overflow: hidden; background: var(--ink); }
  .lead-final .bg .phl { top: 14px; left: 14px; right: auto; bottom: auto; }
  .lead-final > div, .lead-final > form { position: relative; z-index: 2; }
  .lead-final .fphoto { margin-top: 28px; height: 300px; border-radius: 20px; background-position: 58% 30%; background-size: 150% auto; }
  .person .photo.ph { color: transparent; }

  /* Страны в первом экране */
  .hero-x .countries { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 20px; }
  .hero-x .countries a { height: 34px; padding: 0 12px; border-radius: 999px; background: rgba(255,255,255,.16); color: #fff; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; font: 500 14px var(--font-display); backdrop-filter: blur(6px); }
  .hero-x .countries a:hover { background: rgba(255,255,255,.28); }

  /* О нас */
  .about { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 16px; }
  .about .txt { padding: 40px; }
  .about .txt h2 { margin: 0 0 14px; font-size: 36px; }
  .about .txt p { font-size: 17px; }
  .about .nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 24px 0; }
  .about .nums b { font: 800 34px var(--font-display); letter-spacing: -0.02em; display: block; color: var(--brand); }
  .about .nums span { font-size: 13px; color: var(--muted); }
  .about .diff { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; margin: 4px 0 24px; padding: 0; list-style: none; font-size: 15px; }
  .about .diff li { padding-left: 26px; position: relative; }
  .about .diff li::before { content: "✓"; position: absolute; left: 0; color: #1E7F4F; font-weight: 700; }
  .about .side { display: grid; grid-template-rows: minmax(300px, 1fr) auto; gap: 12px; }
  .about .side .ph { border-radius: var(--radius-card); }
  .about .duo { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .about .duo .card { padding: 20px; display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 14px; align-items: start; }
  .about .duo .photo { width: 64px; height: 64px; border-radius: 16px; font-size: 20px; }
  .about .duo b { font: 600 16px var(--font-display); display: block; }
  .about .duo small { font-size: 13px; color: var(--muted); display: block; margin-top: 2px; }

  /* Специальности */
  .specs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
  .spec { padding: 0; overflow: hidden; text-decoration: none; color: var(--ink); display: flex; flex-direction: column; }
  .spec { transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s; }
  .spec:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(19,33,60,.12); }
  .spec .sicon { height: 132px; display: flex; align-items: flex-end; justify-content: center; padding-top: 14px; }
  .spec .sicon img { height: 118px; width: auto; mix-blend-mode: multiply; transition: transform .5s cubic-bezier(.2,.8,.2,1); }
  .spec:hover .sicon img { transform: translateY(-6px) rotate(-4deg) scale(1.06); }
  .spec .sb { padding: 12px 18px 18px; display: flex; flex-direction: column; flex: 1; }
  .spec .sgo { margin-top: auto; padding-top: 12px; font: 500 13px var(--font-display); font-style: normal; color: var(--brand); opacity: 0; transform: translateX(-6px); transition: opacity .3s, transform .3s; }
  .spec:hover .sgo { opacity: 1; transform: none; }
  .spec b { font: 600 17px/1.25 var(--font-display); display: block; }
  .spec span { font-size: 13px; color: var(--muted); display: block; margin-top: 4px; }

  /* Справочник */
  .guide { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .guide .card { padding: 24px; }
  .guide h3 { font-size: 18px; margin: 12px 0 10px; }
  .guide a { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-top: 1px solid var(--line); color: var(--ink); text-decoration: none; font-size: 15px; }
  .guide a:hover { color: var(--link); }
  .guide a small { color: var(--muted); font-size: 12px; white-space: nowrap; }
  .guide .gi { width: 40px; height: 40px; border-radius: 12px; background: var(--tag-bg); color: var(--tag-text); display: flex; align-items: center; justify-content: center; font: 700 16px var(--font-display); }

  /* Страны */
  /* Откуда вы поступаете: карта маршрутов + панель страны */
  .cm { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 16px; }
  .cm-map { background: #fff; border-radius: 20px; overflow: hidden; min-height: 420px; }
  .cm-map svg { width: 100%; height: 100%; display: block; }
  .cm-dots circle { fill: #E3E8F0; }
  .cm-route { fill: none; stroke: var(--line); stroke-width: 2; stroke-dasharray: 4 7; transition: stroke .3s, stroke-width .3s; }
  .cm-route.on { stroke: var(--brand); stroke-width: 2.6; stroke-dasharray: none; }
  .cm-city { cursor: pointer; }
  .cm-city .p { fill: #fff; stroke: var(--ink); stroke-width: 2; transition: fill .3s, stroke .3s; }
  .cm-city.on .p { fill: var(--brand); stroke: var(--brand); }
  .cm-city .halo { fill: var(--brand); opacity: 0; }
  .cm-city.on .halo { animation: cmHalo 1.6s ease-out infinite; }
  @keyframes cmHalo { 0% { opacity: .35; r: 8; } 100% { opacity: 0; r: 26; } }
  .cm-city text { font: 600 14px var(--font-display); fill: var(--ink); }
  .cm-city text.c { font: 500 12px var(--font-text, Inter); fill: var(--muted); }
  .cm-city:hover text { fill: var(--brand); }
  .cm-cn circle { fill: var(--brand); }
  .cm-cn text { font: 900 22px 'Noto Serif SC', serif; fill: #fff; }
  .cm-cn text.cap { font: 600 14px var(--font-display); fill: var(--ink); }
  .cm-plane { fill: var(--brand); }
  .cm-panel { background: var(--ink); color: #fff; border-radius: 20px; padding: 28px; display: flex; flex-direction: column; }
  .cm-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 22px; }
  .cm-tabs button { border: 1px solid rgba(255,255,255,.18); background: none; color: #C7D1E2; border-radius: 999px; padding: 7px 12px; font: 500 13px var(--font-display); cursor: pointer; transition: background .2s, color .2s; }
  .cm-tabs button:hover { color: #fff; border-color: rgba(255,255,255,.4); }
  .cm-tabs button.on { background: #fff; color: var(--ink); border-color: #fff; }
  .cm-panel h3 { font: 700 28px var(--font-display); margin: 0 0 6px; color: #fff; }
  .cm-from { color: #9FB0CC; font-size: 14px; margin-bottom: 20px; }
  .cm-rows { display: grid; gap: 10px; margin-bottom: 22px; }
  .cm-row { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; align-items: center; background: rgba(255,255,255,.06); border-radius: 12px; padding: 12px 14px; }
  .cm-row i { width: 38px; height: 38px; border-radius: 10px; background: rgba(232,67,46,.2); color: #FF8A78; display: flex; align-items: center; justify-content: center; font: 900 18px 'Noto Serif SC', serif; font-style: normal; }
  .cm-row b { display: block; font: 600 14px var(--font-display); }
  .cm-row span { display: block; font-size: 13px; color: #C7D1E2; margin-top: 2px; }
  .cm-go { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; background: #D82D18; color: #fff !important; text-decoration: none; border-radius: 12px; padding: 14px 18px; font: 500 15px var(--font-display); transition: background .2s; }
  .cm-go:hover { background: var(--brand); }
  .cm-fade { transition: opacity .25s, transform .3s cubic-bezier(.2,.8,.2,1); }
  .cm-panel.out .cm-fade { opacity: 0; transform: translateY(6px); }

  .consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--muted); line-height: 1.4; }
  .consent input { width: 18px !important; height: 18px !important; flex: none; margin-top: 1px; accent-color: var(--button); padding: 0 !important; }
  .lform label.consent, .dlside label.consent { display: flex; font: 400 13px/1.4 var(--font-text); margin: 0; }
  .consent.dark { color: #C7D1E2; } .consent.dark a { color: #fff; }

  /* Пометки макета (не для сайта) */
  .mk { display: inline-block; font: 500 11px var(--font-text); color: #8A6D00; background: #FFF4CC; border-radius: 6px; padding: 2px 7px; vertical-align: middle; }

  /* Цифры под первым экраном: светлые карточки, красная линия, иероглиф-водяной знак, счёт и появление */
  .h-facts { position: relative; z-index: 5; margin-top: 28px; }
  .h-facts .hf { position: relative; overflow: hidden; background: #fff; color: var(--ink); border-top: 3px solid var(--brand); box-shadow: 0 14px 34px rgba(19,33,60,.07); opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .7s cubic-bezier(.2,.8,.2,1), box-shadow .3s; }
  .h-facts.on .hf { opacity: 1; transform: none; }
  .h-facts.on .hf:nth-child(2) { transition-delay: .12s; } .h-facts.on .hf:nth-child(3) { transition-delay: .24s; } .h-facts.on .hf:nth-child(4) { transition-delay: .36s; }
  .h-facts .hf:hover { box-shadow: 0 18px 40px rgba(19,33,60,.12); }
  .h-facts .hf::after { content: attr(data-ch); position: absolute; right: -6px; bottom: -26px; font: 900 96px 'Noto Serif SC', serif; color: var(--brand); opacity: .07; pointer-events: none; }
  .h-facts .hf .k, .h-facts .hf .n { color: var(--muted); }
  .h-facts .hf .v { color: var(--ink); }
  .h-facts .hf .v b { color: var(--brand); font-weight: inherit; font-variant-numeric: tabular-nums; }
  .no-js .h-facts .hf { opacity: 1; transform: none; }

  /* Карточки путей: появление волной, при наведении — подъём, приближение фото, метка, смена описания, красная линия */
  .paths.anim .path { overflow: hidden; opacity: 0; transform: translateY(26px); transition: opacity .6s ease, transform .7s cubic-bezier(.2,.8,.2,1), box-shadow .35s; }
  .paths.anim.on .path { opacity: 1; transform: none; }
  .paths.anim.on .path:nth-child(4n+2) { transition-delay: .08s; } .paths.anim.on .path:nth-child(4n+3) { transition-delay: .16s; } .paths.anim.on .path:nth-child(4n+4) { transition-delay: .24s; }
  .paths.anim.on .path:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(19,33,60,.16); transition-delay: 0s; }
  .paths.anim .path .ph { position: relative; overflow: hidden; }
  .paths.anim .path .ph::after { content: ""; position: absolute; inset: 0; background: inherit; background-size: cover; background-position: center; transition: transform 1.1s cubic-bezier(.2,.8,.2,1); }
  .paths.anim .path:hover .ph::after { transform: scale(1.08); }
  .paths.anim .pbadge { position: absolute; z-index: 2; left: 12px; top: 12px; background: #fff; color: var(--cinnabar-700); border-radius: 999px; padding: 5px 12px; font: 500 13px var(--font-display); transform: translateY(-48px); transition: transform .4s cubic-bezier(.2,.8,.2,1); }
  .paths.anim .path:hover .pbadge { transform: none; }
  .paths.anim .pd { position: relative; display: block; min-height: 2.9em; }
  .paths.anim .pd > span { display: block; transition: opacity .3s, transform .35s; }
  .paths.anim .pd2 { position: absolute; inset: 0; opacity: 0; transform: translateY(8px); color: var(--ink); font-weight: 500; }
  .paths.anim .path.dark .pd2 { color: #fff; }
  .paths.anim .path:hover .pd1 { opacity: 0; transform: translateY(-8px); }
  .paths.anim .path:hover .pd2 { opacity: 1; transform: none; }
  .paths.anim .meta { position: relative; }
  .paths.anim .meta::before { content: ""; position: absolute; left: 0; top: -1px; height: 2px; width: 0; background: var(--brand); transition: width .5s cubic-bezier(.2,.8,.2,1); }
  .paths.anim .path:hover .meta::before { width: 100%; }
  .paths.anim .meta i { transition: transform .35s; }
  .paths.anim .path:hover .meta i { transform: translateX(6px); }
  @media (hover: none) { .paths.anim .pbadge { transform: none; } }
  /* Сроки: шкала времени */
  .tl { position: relative; padding-top: 4px; }
  .tl-line { position: absolute; left: 0; right: 0; top: 96px; height: 3px; background: var(--line); border-radius: 3px; }
  .tl-fill { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: linear-gradient(90deg, var(--brand), #F2A08F 60%, var(--line)); border-radius: 3px; transition: width 1.6s cubic-bezier(.2,.8,.2,1); }
  .tl.in .tl-fill { width: 100%; }
  .tl-now { position: absolute; left: 0; top: 14px; font: 600 12px var(--font-display); color: var(--brand); text-transform: uppercase; letter-spacing: .06em; }
  .tl-now::before { content: ""; position: absolute; left: 0; top: -20px; width: 11px; height: 11px; border-radius: 50%; background: var(--brand); box-shadow: 0 0 0 0 rgba(232,67,46,.5); animation: tlPulse 1.8s infinite; }
  @keyframes tlPulse { 70% { box-shadow: 0 0 0 10px rgba(232,67,46,0); } 100% { box-shadow: 0 0 0 0 rgba(232,67,46,0); } }
  .tl-row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; padding-left: 70px; position: relative; }
  .tl-i { display: flex; flex-direction: column; opacity: 0; transform: translateY(12px); transition: opacity .5s, transform .6s cubic-bezier(.2,.8,.2,1); transition-delay: calc(var(--d) * .12s + .3s); }
  .tl.in .tl-i { opacity: 1; transform: none; }
  .tl-n { font: 600 15px var(--font-display); color: var(--muted); height: 52px; display: flex; align-items: baseline; gap: 6px; }
  .tl-n b { font: 700 40px/1 var(--font-display); color: var(--ink); letter-spacing: -.02em; }
  .tl-i.hot .tl-n b { color: var(--brand); }
  .tl-date { font: 500 13px var(--font-text); color: var(--muted); height: 28px; }
  .tl-dot { width: 15px; height: 15px; border-radius: 50%; background: #fff; border: 3px solid var(--ink); margin: 2px 0 18px; position: relative; z-index: 1; transition: transform .25s; }
  .tl-i.hot .tl-dot { border-color: var(--brand); }
  .tl-card { flex: 1; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 16px 16px 18px; transition: transform .3s, box-shadow .3s, border-color .3s; position: relative; }
  .tl-card::before { content: ""; position: absolute; left: 4px; top: -19px; width: 1px; height: 18px; background: var(--line); }
  .tl-card b { display: block; font: 600 16px/1.3 var(--font-display); margin-bottom: 6px; }
  .tl-card span { display: block; font-size: 14px; color: var(--muted); line-height: 1.45; }
  .tl-i:hover .tl-card { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(19,33,60,.10); border-color: transparent; }
  .tl-i:hover .tl-dot { transform: scale(1.35); }
  /* Сроки: напоминание — тёмная полоса */
  .remind { margin-top: 32px; background: var(--ink); color: #fff; border-radius: 20px; padding: 22px 24px; display: grid; grid-template-columns: minmax(0, 1.1fr) auto minmax(0, 1fr); gap: 22px; align-items: center; }
  .rm-t { display: flex; gap: 14px; align-items: center; }
  .rm-ic { flex: none; width: 46px; height: 46px; border-radius: 12px; background: rgba(232,67,46,.2); color: #FF8A78; display: flex; align-items: center; justify-content: center; font: 900 22px 'Noto Serif SC', serif; }
  .rm-t b { display: block; font: 600 18px var(--font-display); }
  .rm-t div span { display: block; font-size: 13px; color: #C7D1E2; margin-top: 4px; }
  .remind .seg { max-width: 330px; }
  .remind .seg span { background: transparent; color: #C7D1E2; border-color: rgba(255,255,255,.2); padding: 6px 11px; font-size: 13px; cursor: pointer; }
  .remind .seg span.on { background: #fff; color: var(--ink); border-color: #fff; }
  .rm-f { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  .rm-f input:not([type]) { height: 48px; border-radius: 12px; border: 0; padding: 0 14px; font: 15px var(--font-text); min-width: 0; }
  .rm-f .btn { height: 48px; }
  .rm-f .rm-tg { grid-column: 1 / -1; justify-content: center; height: 52px; }
  .rm-f .rm-note { grid-column: 1 / -1; font-size: 12px; color: #9FB0CC; line-height: 1.4; }
  /* Гранты: фото во всю ширину с формой поверх */
  .gband { position: relative; border-radius: 24px; overflow: hidden; min-height: 600px; display: flex; align-items: center; justify-content: flex-end; padding: 32px; }
  .gband-ph { position: absolute; inset: 0; background-position: 30% center; transform: scale(1.04); transition: transform 1.6s cubic-bezier(.2,.8,.2,1); }
  .gband.in .gband-ph { transform: none; }
  .gband::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(19,33,60,.82) 0%, rgba(19,33,60,0) 42%), linear-gradient(270deg, rgba(19,33,60,.35), rgba(19,33,60,0) 45%); pointer-events: none; }
  .gband-cap { position: absolute; left: 36px; bottom: 32px; z-index: 2; color: #fff; max-width: 540px; }
  .gband-k { display: inline-block; font: 600 12px var(--font-display); text-transform: uppercase; letter-spacing: .08em; background: var(--brand); border-radius: 999px; padding: 6px 12px; margin-bottom: 12px; }
  .gband-cap b { display: block; font: 700 30px/1.15 var(--font-display); letter-spacing: -.01em; }
  .gband-cap em { font-style: normal; color: #FFB4A6; white-space: nowrap; }
  .gquiz { position: relative; z-index: 2; width: 440px; box-shadow: 0 24px 60px rgba(19,33,60,.28); }
  .gcards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
  .gc { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 8px; padding: 22px; text-decoration: none; color: var(--ink); transition: transform .3s, box-shadow .3s; }
  .gc::after { content: attr(data-ch); position: absolute; right: -8px; bottom: -30px; font: 900 100px 'Noto Serif SC', serif; color: var(--brand); opacity: .07; pointer-events: none; transition: opacity .3s, transform .5s; }
  .gc:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(19,33,60,.12); }
  .gc:hover::after { opacity: .14; transform: rotate(-6deg); }
  .gc-k { font: 600 12px var(--font-display); color: var(--brand); text-transform: uppercase; letter-spacing: .06em; }
  .gc b { font: 600 18px/1.3 var(--font-display); }
  .gc > span:not(.gc-k) { font-size: 14px; color: var(--muted); line-height: 1.45; }
  .gc-a { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); font: 700 18px var(--font-display); color: var(--ink); }
  .gc-a small { display: block; font: 500 12px var(--font-text); color: var(--muted); margin-top: 2px; }

  /* ===== Почему Китай: компас (закреплён слева) + 4 остановки по 2 довода ===== */
  .wy { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 56px; }
  .wy-side { position: sticky; top: 96px; height: calc(100vh - 130px); min-height: 560px; display: flex; flex-direction: column; justify-content: center; }
  .wy-k { font: 600 13px var(--font-display); color: var(--brand); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; }
  .wy-side h2 { font: 800 52px/1.02 var(--font-display); letter-spacing: -.03em; margin: 0 0 14px; }
  .wy-side p { color: var(--muted); font-size: 18px; line-height: 1.5; margin: 0 0 26px; max-width: 420px; }
  .wy-cmp { width: min(320px, 100%); aspect-ratio: 1; }
  .wy-cmp svg { width: 100%; height: 100%; overflow: visible; }
  .wy-cmp .rim { fill: #fff; stroke: var(--line); stroke-width: 2; }
  .wy-cmp .rim2 { fill: none; stroke: var(--brand); stroke-width: 3; stroke-dasharray: 3 9; opacity: .5; }
  .wy-cmp .tk { stroke: var(--ink); stroke-width: 2; opacity: .25; } .wy-cmp .tk.big { opacity: .6; stroke-width: 3; }
  .wy-cmp .hz { font: 900 30px 'Noto Serif SC', serif; fill: var(--ink); opacity: .25; transition: opacity .4s, fill .4s; }
  .wy-cmp .hz.on { fill: var(--brand); opacity: 1; }
  .wy-cmp .needle { transition: transform 1s cubic-bezier(.3,1.5,.5,1); transform-origin: 160px 160px; }
  .wy-prog { display: flex; align-items: center; gap: 14px; margin-top: 22px; font: 600 14px var(--font-display); color: var(--muted); }
  .wy-bar { flex: 0 0 160px; height: 4px; background: var(--line); border-radius: 4px; overflow: hidden; }
  .wy-bar i { display: block; height: 100%; width: 25%; background: var(--brand); transition: width .6s cubic-bezier(.2,.8,.2,1); }
  .wy-cta { margin-top: 26px; align-self: flex-start; }
  .wy-stop { min-height: 88vh; display: flex; flex-direction: column; justify-content: center; gap: 16px; padding: 40px 0; }
  .wy-sh { font: 600 13px var(--font-display); color: var(--muted); text-transform: uppercase; letter-spacing: .08em; display: flex; align-items: center; gap: 10px; }
  .wy-sh b { font: 900 22px 'Noto Serif SC', serif; color: var(--brand); }
  .wy-adv { background: var(--surface); border-radius: 24px; padding: 28px 30px; display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 24px; align-items: center; opacity: .25; transform: translateY(24px) scale(.98); transition: opacity .6s, transform .7s cubic-bezier(.2,.8,.2,1), box-shadow .4s; }
  .wy-stop.on .wy-adv { opacity: 1; transform: none; box-shadow: 0 18px 44px rgba(19,33,60,.08); }
  .wy-stop.on .wy-adv + .wy-adv { transition-delay: .12s; }
  .wy-ic img { width: 110px; height: 110px; object-fit: contain; filter: drop-shadow(0 10px 14px rgba(19,33,60,.12)); }
  .wy-big { font: 800 44px/1 var(--font-display); letter-spacing: -.02em; }
  .wy-big small { font: 600 18px var(--font-display); color: var(--muted); letter-spacing: 0; margin-left: 6px; }
  .wy-big em { font-style: normal; color: var(--brand); }
  .wy-adv h3 { font: 700 21px var(--font-display); margin: 10px 0 6px; }
  .wy-adv h3.wy-h-only { font-size: 30px; margin-top: 0; }
  .wy-adv p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
  .wy-src { display: block; margin-top: 10px; font-size: 12px; color: #8A94A8; text-decoration: none; }
  a.wy-src:hover { color: var(--brand); }
  /* ===== Полоса доверия ===== */
  .home > .trustbar { margin-top: 48px; }
  .tr { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .tr > div { padding: 26px 24px; display: flex; flex-direction: column; gap: 6px; }
  .tr > div + div { border-left: 1px solid var(--line); }
  .tr b { font: 800 34px/1 var(--font-display); color: var(--brand); }
  .tr > div:last-child b { font-family: 'Noto Serif SC', serif; font-weight: 900; }
  .tr span { font-size: 14px; color: var(--muted); line-height: 1.4; }
  /* ===== Квиз на весь экран ===== */
  .home > .quiz { margin-top: 136px; border-radius: 28px; min-height: calc(100vh - 150px); }
  .quiz { position: relative; background: var(--ink); color: #fff; display: flex; align-items: center; overflow: hidden; }
  .quiz::before { content: "龙"; position: absolute; right: -6vw; bottom: -14vw; font: 900 46vw/1 'Noto Serif SC', serif; color: #fff; opacity: .035; pointer-events: none; }
  .qz-in { position: relative; width: 100%; margin: 0 auto; padding: 64px 56px; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 56px; align-items: center; }
  .qz-k { display: inline-block; font: 600 12px var(--font-display); text-transform: uppercase; letter-spacing: .08em; background: var(--brand); border-radius: 999px; padding: 6px 12px; }
  .qz-head h2 { color: #fff; font: 800 46px/1.05 var(--font-display); letter-spacing: -.02em; margin: 18px 0 14px; }
  .qz-head p { color: #C7D1E2; font-size: 18px; line-height: 1.5; margin: 0; }
  .qz-box { scroll-margin-top: 80px; background: #fff; color: var(--ink); border-radius: 24px; padding: 32px; min-height: 400px; display: flex; flex-direction: column; justify-content: center; box-shadow: 0 30px 80px rgba(0,0,0,.3); }
  .qz-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; font: 500 13px var(--font-display); color: var(--muted); }
  .qz-back { border: 0; background: none; font: 500 14px var(--font-display); color: var(--muted); cursor: pointer; padding: 0; }
  .qz-back:hover { color: var(--brand); }
  .qz-bar { height: 4px; background: var(--page); border-radius: 4px; margin: 12px 0 24px; overflow: hidden; }
  .qz-bar i { display: block; height: 100%; background: var(--brand); transition: width .5s cubic-bezier(.2,.8,.2,1); }
  .qz-q { font: 700 26px/1.2 var(--font-display); margin: 0 0 20px; }
  .qz-opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .qz-opt { text-align: left; border: 1.5px solid var(--line); background: #fff; border-radius: 16px; padding: 18px; cursor: pointer; font: 600 17px var(--font-display); color: var(--ink); transition: border-color .2s, background .2s, transform .2s; }
  .qz-opt small { display: block; font: 400 13px var(--font-text); color: var(--muted); margin-top: 4px; }
  .qz-opt:hover { border-color: var(--brand); background: #FDF1EF; transform: translateY(-2px); }
  .qz-step { animation: qzIn .45s cubic-bezier(.2,.8,.2,1); display: flex; flex-direction: column; }
  @keyframes qzIn { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }
  .qz-res { border-radius: 18px; padding: 22px 24px; background: var(--page); margin-bottom: 18px; }
  .qz-res .lt { display: inline-flex; align-items: center; gap: 8px; font: 600 13px var(--font-display); text-transform: uppercase; letter-spacing: .06em; }
  .qz-res .lt::before { content: ""; width: 12px; height: 12px; border-radius: 50%; background: currentColor; }
  .qz-res .lt.g { color: #15803D; } .qz-res .lt.y { color: #B45309; } .qz-res .lt.r { color: var(--b700, #B32614); }
  .qz-res h3 { font: 700 24px/1.2 var(--font-display); margin: 8px 0 8px; }
  .qz-res p { margin: 0 0 6px; color: var(--ink); font-size: 15px; line-height: 1.5; }
  .qz-res ul { margin: 8px 0 0; padding-left: 18px; color: var(--ink); font-size: 15px; line-height: 1.6; }
  .qz-lead { display: grid; gap: 10px; }
  .qz-lead b { font: 600 16px var(--font-display); }
  .qz-lead .row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
  .qz-lead input:not([type]) { height: 50px; border: 1.5px solid var(--line); border-radius: 12px; padding: 0 14px; font: 15px var(--font-text); min-width: 0; }
  .qz-lead .btn { justify-content: center; }
  .qz-lead .consent { font-size: 12px; }
  .qz-tg { justify-content: center; }
  /* ===== Справочник — компактно ===== */
  .gc-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 28px; border-top: 1px solid var(--line); padding-top: 22px; }
  .gc-cols b { display: block; font: 600 15px var(--font-display); margin-bottom: 8px; }
  .gc-cols a { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; font-size: 14px; color: var(--ink); text-decoration: none; border-bottom: 1px dashed var(--line); }
  .gc-cols a:hover { color: var(--brand); }
  .gc-cols a small { color: var(--muted); font-size: 12px; }
  /* ===== Кнопка снизу на телефоне ===== */
  .m-sticky { display: none; }
  /* Стоимость: реальные прайсы */
  .pex { display: grid; gap: 10px; align-content: start; }
  .px { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 20px; padding: 22px 24px; align-items: center; }
  .px-k { display: block; font: 600 12px var(--font-display); color: var(--brand); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px; }
  .px-l b { display: block; font: 600 18px/1.3 var(--font-display); }
  .px-l > span:last-child { display: block; font-size: 14px; color: var(--muted); margin-top: 4px; }
  .px-r { text-align: right; }
  .px-r b { display: block; font: 800 26px/1.1 var(--font-display); white-space: nowrap; }
  .px-r span { font-size: 13px; color: var(--muted); white-space: nowrap; }
  .px-src { grid-column: 1 / -1; font-size: 12px; color: #8A94A8; text-decoration: none; }
  .px-src:hover { color: var(--brand); }
  .px-note { margin: 6px 4px 0; font-size: 14px; color: var(--muted); line-height: 1.5; }
  /* Истории студентов */
  .story { position: relative; background: var(--surface); border-radius: var(--radius-card); padding: 26px; display: flex; flex-direction: column; gap: 14px; transition: transform .3s, box-shadow .3s; }
  .story:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(19,33,60,.10); }
  .st-fake { position: absolute; top: 14px; right: 14px; font: 600 11px var(--font-display); color: #8A6D00; background: #FFF4CC; border-radius: 6px; padding: 3px 8px; }
  .st-who { display: flex; align-items: center; gap: 12px; }
  .st-av { width: 46px; height: 46px; border-radius: 50%; background: var(--brand); color: #fff; display: flex; align-items: center; justify-content: center; font: 700 18px var(--font-display); flex: none; }
  .st-who b { display: block; font: 600 17px var(--font-display); }
  .st-who small { font-size: 13px; color: var(--muted); }
  .st-txt { margin: 0; font-size: 15px; line-height: 1.55; color: var(--ink); }
  .story .route { margin-top: 0; }
  .st-res { margin-top: auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; border-top: 1px solid var(--line); padding-top: 14px; }
  .st-res b { display: block; font: 700 17px var(--font-display); color: var(--brand); white-space: nowrap; }
  .st-res small { font-size: 12px; color: var(--muted); line-height: 1.3; }
  /* Формы: ошибки, тема, «заявка принята» */
  input.bad { border-color: #E8432E !important; box-shadow: 0 0 0 3px rgba(232,67,46,.15); }
  .lf-err, .lf-soon { display: block; font-size: 12px; color: #E8432E; margin-top: 4px; }
  .lf-soon { color: #9FB0CC; } .qz-lead .lf-soon, .lform .lf-soon { color: var(--muted); }
  .lf-topic { font: 600 13px var(--font-display); color: var(--b700, #B32614); background: #FDF1EF; border-radius: 8px; padding: 8px 12px; }
  .lf-ok { text-align: center; padding: 28px 10px; display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--ink); }
  .lf-ok .lf-ic { width: 56px; height: 56px; border-radius: 50%; background: #E3F4EA; color: #15803D; display: flex; align-items: center; justify-content: center; font: 700 26px var(--font-display); }
  .lf-ok b { font: 700 22px var(--font-display); } .lf-ok p { margin: 0; color: var(--muted); font-size: 15px; }
  .lf-test { color: #8A6D00; background: #FFF4CC; border-radius: 6px; padding: 4px 8px; font-size: 12px; }
  button.btn { cursor: pointer; font-family: var(--font-display); }
  /* Карточка вуза: шапка с сокращением (стили были только в style.css макетов, в тему не попадали) */
  .ucard .top { display: flex; gap: 14px; align-items: center; }
  .ucard .logo { width: 52px; height: 52px; border-radius: 14px; background: var(--page); display: flex; align-items: center; justify-content: center; font: 700 14px var(--font-display); color: var(--ink); flex: none; }
  .ucard h3 { margin: 0; font-size: 18px; line-height: 1.25; }
  .ucard .city { font-size: 14px; color: var(--muted); margin-top: 2px; }
  .ladder .pr b { white-space: nowrap; }
  .msgr a { white-space: nowrap; }
  .msgr + .lf-soon { margin-top: 10px; color: #9FB0CC; }

/* ===== Главная: планшет и телефон (макет главной был только для компьютера) ===== */
html, body { overflow-x: clip; }
@media (max-width: 1100px) {
  .specs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .h-facts, .paths, .ctry, .cities, .guide, .fresh { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .unis, .ladder, .promise, .people, .cases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dlwrap, .grants, .cost, .about, .faq, .lead-final { grid-template-columns: minmax(0, 1fr); }
  .lead-final { padding: 32px; gap: 24px; }
  .mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; grid-auto-rows: 220px; }
  .mosaic > :first-child { grid-column: span 2; }
  .sechead { flex-direction: column; align-items: flex-start; gap: 10px; }
}
@media (max-width: 640px) {
  .h-facts, .paths, .unis, .ladder, .promise, .people, .cases, .fresh, .guide { grid-template-columns: minmax(0, 1fr); }
  .specs, .ctry, .cities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spec .sgo { opacity: 1; transform: none; }
  .mosaic { grid-template-columns: minmax(0, 1fr); grid-auto-rows: 200px; }
  .mosaic > :first-child { grid-column: auto; }
  .lead-final { padding: 24px 18px; }
  .row2 { grid-template-columns: minmax(0, 1fr) !important; }
  .home h2 { font-size: 26px; }
}
@media (max-width: 640px) {
  .about .nums { gap: 14px; flex-wrap: wrap; }
  .about .nums > * { min-width: 0; flex: 1 1 40%; }
  .about .diff { grid-template-columns: minmax(0, 1fr) !important; }
  .about .duo { grid-template-columns: minmax(0, 1fr) !important; }
  .hs-text .hs-path { margin: 14px 0 18px; }
}
/* Откуда вы поступаете: на планшете и телефоне — без карты, вкладки + панель */
@media (max-width: 1100px) {
  .cm { grid-template-columns: minmax(0, 1fr); }
  .cm-map { display: none; }
}
@media (max-width: 640px) {
  .cm-panel { padding: 20px; }
  .cm-tabs { flex-wrap: nowrap; overflow-x: auto; margin: 0 -20px 18px; padding: 0 20px; scrollbar-width: none; }
  .cm-tabs::-webkit-scrollbar { display: none; }
  .cm-tabs button { flex: none; }
  .cm-panel h3 { font-size: 24px; }
}
/* Сроки и гранты: планшет и телефон */
@media (max-width: 1100px) {
  .tl-line { display: none; }
  .tl-row { grid-template-columns: minmax(0, 1fr); gap: 12px; padding-left: 26px; border-left: 3px solid var(--line); margin-left: 6px; }
  .tl-i { display: grid; grid-template-columns: 130px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 16px; position: relative; }
  .tl-n { height: auto; grid-column: 1; grid-row: 1; }
  .tl-n b { font-size: 32px; }
  .tl-date { height: auto; grid-column: 1; grid-row: 2; }
  .tl-dot { position: absolute; left: -36px; top: 10px; margin: 0; }
  .tl-card { grid-column: 2; grid-row: 1 / 3; }
  .tl-card::before { display: none; }
  .remind { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .remind .seg { max-width: none; }
  .gband { display: block; min-height: 0; padding: 0; background: var(--surface); }
  .gband-ph { position: relative; height: 380px; transform: none; }
  .gband::after { bottom: auto; height: 380px; }
  .gband-cap { top: 250px; bottom: auto; left: 24px; right: 24px; }
  .gquiz { width: auto; box-shadow: none; border-radius: 0; }
  .gcards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .tl-i { grid-template-columns: minmax(0, 1fr); }
  .tl-n, .tl-date, .tl-card { grid-column: 1; grid-row: auto; }
  .tl-date { margin-bottom: 8px; }
  .rm-f { grid-template-columns: minmax(0, 1fr); }
  .gband-ph, .gband::after { height: 300px; }
  .gband-cap { top: 170px; }
  .gband-cap b { font-size: 22px; }
  .gcards { grid-template-columns: minmax(0, 1fr); }
}
/* Почему Китай, полоса доверия, квизы, справочник, кнопка снизу — планшет и телефон */
@media (max-width: 1100px) {
  .wy { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .wy-side { position: sticky; top: 64px; z-index: 5; height: auto; min-height: 0; flex-direction: row; align-items: center; gap: 14px; padding: 12px 0; background: var(--page); }
  .wy-side .wy-k, .wy-side p, .wy-cta, .wy-prog { display: none; }
  .wy-side h2 { font-size: 28px; margin: 0; order: 2; }
  .wy-cmp { width: 64px; flex: none; order: 1; }
  .wy-stop { min-height: 0; padding: 18px 0; }
  .tr { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tr > div:nth-child(3) { border-left: 0; } .tr > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .qz-in { grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 56px 24px; }
  .qz-head h2 { font-size: 36px; }
  .gc-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .wy-adv { grid-template-columns: 72px minmax(0, 1fr); gap: 16px; padding: 20px; }
  .wy-ic img { width: 72px; height: 72px; }
  .wy-big { font-size: 28px; } .wy-big small { display: block; margin: 4px 0 0; font-size: 14px; }
  .wy-adv h3 { font-size: 18px; }
  .tr b { font-size: 28px; } .tr > div { padding: 18px 14px; }
  .quiz { min-height: 0; }
  .qz-in { padding: 48px 16px; }
  .qz-head h2 { font-size: 30px; } .qz-head p { font-size: 16px; }
  .qz-box { padding: 22px 18px; min-height: 0; }
  .qz-q { font-size: 22px; }
  .qz-opts { grid-template-columns: minmax(0, 1fr); }
  .qz-lead .row { grid-template-columns: minmax(0, 1fr); }
  .gc-cols { grid-template-columns: minmax(0, 1fr); }
  .m-sticky { display: flex; position: fixed; left: 16px; right: 88px; bottom: 16px; z-index: 50; height: 56px; align-items: center; justify-content: center; border-radius: 14px; background: #D82D18; color: #fff !important; font: 500 16px var(--font-display); text-decoration: none; box-shadow: 0 10px 24px rgba(216,45,24,.35); }
  .home { padding-bottom: 80px; }
}
@media (max-width: 1100px) { .home > .quiz { margin-top: 96px; border-radius: 24px; min-height: 0; } .qz-in { padding: 48px 28px; } }
@media (max-width: 640px) { .home > .quiz { margin-top: 72px; border-radius: 20px; } }
@media (max-width: 640px) { .lead-final .fphoto { height: 220px; background-size: cover; background-position: 58% center; } }
@media (max-width: 640px) { .px { grid-template-columns: minmax(0, 1fr); } .px-r { text-align: left; } }
/* ===== Телефон: длинные списки карточек — листаются пальцем вбок (пути, вузы), фильтры — в одну строку ===== */
@media (max-width: 640px) {
  .home .paths, .home .unis { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin: 0 -16px; padding: 0 16px 10px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .home .paths::-webkit-scrollbar, .home .unis::-webkit-scrollbar { display: none; }
  .home .paths > *, .home .unis > * { flex: 0 0 82%; scroll-snap-align: start; scroll-margin-left: 16px; }
  .home .chips { flex-wrap: nowrap !important; overflow-x: auto; margin: 16px -16px 0; padding: 0 16px 4px; scrollbar-width: none; }
  .home .chips::-webkit-scrollbar { display: none; }
  .home .chips > * { flex: none; }
  .mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 170px; }
  .mosaic > :first-child { grid-column: span 2; }
  .mosaic .cap { font-size: 14px; padding: 30px 12px 12px; }
  .mosaic .big .cap { font-size: 20px; padding: 40px 16px 16px; }
  .mosaic .cap small { font-size: 12px; }
  .about .txt { padding: 24px 20px; }
  .about .txt h2 { font-size: 28px; line-height: 1.15; }
  .about .nums b { font-size: 26px; }
  .rm-tg { font-size: 15px; }
}
@media (max-width: 380px) { .about .nums { gap: 10px; } .about .nums b { font-size: 22px; } }
/* Планшет: три тарифа и три обещания — без «сироты» во второй строке */
@media (min-width: 900px) and (max-width: 1100px) { .ladder, .promise { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 641px) and (max-width: 899px) { .ladder { grid-template-columns: minmax(0, 1fr); } .promise { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* ===== iPhone / Android / Windows / Mac ===== */
/* iPhone не приближает страницу при вводе, если шрифт поля ≥16 px */
@media (max-width: 1100px) { .home input:not([type=checkbox]):not([type=radio]), .home select, .home textarea { font-size: 16px !important; } }
/* Кнопка снизу — над полоской жестов iPhone */
@media (max-width: 640px) { .m-sticky { bottom: calc(16px + env(safe-area-inset-bottom, 0px)); } .home { padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)); } }
/* Сенсорные экраны: эффекты «при наведении» не залипают, текст карточек путей виден сразу */
@media (hover: none) {
  .paths.anim .path .pd1 { opacity: 1 !important; transform: none !important; }
  .paths.anim .path .pd2 { display: none !important; }
  .story:hover, .gc:hover, .spec:hover, .tl-i:hover .tl-card, .wy-adv:hover { transform: none; }
  .spec .sgo { opacity: 1; transform: none; }
  .home a, .home button { -webkit-tap-highlight-color: rgba(232,67,46,.12); }
}
/* Windows: в каруселях не показываем полосу прокрутки */
.home .paths, .home .unis, .home .chips, .cm-tabs { scrollbar-width: none; }
/* Системная настройка «уменьшить движение» (iOS, Android, Windows, macOS) */
@media (prefers-reduced-motion: reduce) {
  .home *, .home *::before, .home *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
/* ===== Первый экран на планшете и телефоне: все 5 путей видны сразу, без прокрутки вбок; карточки «профучилище / курсы» ниже ===== */
@media (max-width: 1100px) {
  .hs .switch { flex-wrap: wrap; justify-content: center; overflow: visible; -webkit-mask-image: none; mask-image: none; border-radius: 22px; max-width: 100%; }
  .hs-side { margin-top: 28px; }
}
@media (max-width: 640px) {
  .hs .switch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 8px; align-self: stretch; }
  .hs .sw { padding: 5px 10px 5px 5px; gap: 9px; border-radius: 14px; min-width: 0; }
  .hs .sw .av { width: 34px; height: 34px; font-size: 13px; }
  .hs .sw b { font-size: 14px; }
  .hs .sw:last-child { grid-column: 1 / -1; justify-self: center; }
  .hs .sw .bar { left: 10px; max-width: calc(100% - 20px); }
}

/* ===== Главная, версия 2: тихие блоки между «громкими» ===== */
.quiet .qk { display: inline-block; font: 600 12px var(--font-display); color: var(--brand); text-transform: uppercase; letter-spacing: .08em; }
/* Как мы работаем: 3 шага + цена консультации */
.qsteps { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); gap: 28px 48px; align-items: start; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 44px 0; }
.qs-h { grid-column: 1 / -1; }
.qs-h h2 { margin: 10px 0 0; font-size: 32px; line-height: 1.15; }
.qs-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; counter-reset: qs; }
.qs-list li { counter-increment: qs; display: flex; flex-direction: column; gap: 8px; }
.qs-list li::before { content: "0" counter(qs); font: 700 44px/1 var(--font-display); color: transparent; -webkit-text-stroke: 1.5px var(--brand); margin-bottom: 8px; }
.qs-list b { font: 600 18px var(--font-display); }
.qs-list span { font-size: 15px; color: var(--muted); line-height: 1.5; }
.qs-cta { display: flex; flex-direction: column; gap: 4px; background: var(--surface); border-radius: 18px; padding: 22px; }
.qs-cta small { font: 500 13px var(--font-display); color: var(--muted); }
.qs-cta b { font: 700 36px/1.1 var(--font-display); }
.qs-cta span { font-size: 14px; color: var(--muted); margin-bottom: 14px; }
.qs-cta .btn { justify-content: center; }
/* Тихая строка цены */
.qline { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 28px; align-items: center; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 28px 0; }
.qline p { margin: 0; font-size: 20px; line-height: 1.45; color: var(--ink); }
.qline p b { font-family: var(--font-display); font-weight: 600; }
/* Строка стран под путями */
.pcountry { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 18px; }
.pcountry span { font: 500 15px var(--font-display); color: var(--muted); margin-right: 6px; }
.pcountry a { border: 1px solid var(--line); background: var(--surface); border-radius: 999px; padding: 8px 14px; font: 500 14px var(--font-display); color: var(--ink); text-decoration: none; transition: border-color .2s, color .2s; }
.pcountry a:hover { border-color: var(--brand); color: var(--b700, #B32614); }
/* Куда вы едете: 3 фото мест */
.places { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.place { aspect-ratio: 4 / 5; border-radius: var(--radius-card, 20px); }
.place::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(19,33,60,.82), rgba(19,33,60,0) 50%); }
.place .phl { top: 12px; bottom: auto; }
.place .pc { position: absolute; left: 22px; right: 22px; bottom: 20px; z-index: 1; color: #fff; }
.place .pc b { display: block; font: 600 20px var(--font-display); }
.place .pc span { font-size: 14px; color: #D5DDEA; }
@media (max-width: 1100px) {
  .qsteps { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .qline { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .places { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .place { aspect-ratio: 3 / 4; }
}
@media (max-width: 640px) {
  .qs-list { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .qs-list li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 2px 12px; }
  .qs-list li::before { grid-row: 1 / 3; font-size: 36px; margin: 0; }
  .qline p { font-size: 17px; }
  .places { grid-template-columns: minmax(0, 1fr); }
  .place { aspect-ratio: 4 / 3; }
}
/* Больше воздуха между блоками (обе версии главной) */
.home > .sec, .home > .final { margin-top: 136px; }
.home > .quiet { margin-top: 112px; }
.home > .quiet + .sec { margin-top: 112px; }
@media (max-width: 1100px) { .home > .sec, .home > .final { margin-top: 96px; } .home > .quiet, .home > .quiet + .sec { margin-top: 80px; } }
@media (max-width: 640px) { .home > .sec, .home > .final { margin-top: 72px; } .home > .quiet, .home > .quiet + .sec { margin-top: 60px; } }

/* карточка специальности без своей страницы (ещё не опубликована) — не выглядит ссылкой */
.spec[data-soon] .sgo { display: none; }
.spec[data-soon] { cursor: default; }
.spec[data-soon]:hover { transform: none; }

/* высота блока результата не меняется при разных ответах — фото рядом не «прыгает» */
.fit-result { min-height: calc(3 * 1.6em + 40px); line-height: 1.6; box-sizing: border-box; }

/* Финальная форма: колонка слева тянется по высоте формы, фото заполняет остаток, лицо не режется */
@media (min-width: 901px) {
  .lead-final { align-items: stretch; }
  .lead-final > div:first-child { display: flex; flex-direction: column; }
  .lead-final .fphoto { flex: 1 1 auto; height: auto; min-height: 240px; background-size: cover; background-position: 50% 22%; }
}
