/* =========================================================
   0. ШРИФТЫ И ПЕРЕМЕННЫЕ
   ========================================================= */
/* Убедитесь, что шрифт Sofia Pro подключен в HTML или через @font-face */
:root {
  --pink: #EE5A70;
  --pink-2: #E24960;
  --purple: #7C4DBC;
  --magenta: #B44BB8;
  --orange: #F58A4B;
  --yellow: #FFC53D;
  --bg: #F1F0EE;
  --dark: #221F1F;
  --gray: #8B8B8B;
  
  --r-lg: 32px;
  --r-md: 22px;
  --r-sm: 14px;
  
  --fd: 'Sofia Pro', system-ui, -apple-system, sans-serif;
  --fb: 'Sofia Pro', system-ui, -apple-system, sans-serif;
  
  --fan-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -16 161 157'%3E%3Cpath d='M72.4982 -8.99176C78.4674 -13.3653 90.7676 -7.54728 104.271 4.78765C103.806 1.04071 104.417 -1.75124 106.262 -3.10341C111.783 -7.14837 126.261 3.22327 138.599 20.0624C150.937 36.9017 156.463 53.8319 150.942 57.8771C149.096 59.2295 146.25 58.97 142.816 57.3967C150.507 73.9879 152.347 87.4682 146.378 91.8415C141.855 95.1551 133.699 92.6182 124.138 85.8296C136.714 111.692 140.056 132.988 130.893 139.702C121.733 146.413 102.441 136.814 81.577 117.039C85.162 128.191 85.1202 136.724 80.6004 140.036C74.6285 144.412 62.3192 138.586 48.8084 126.239C49.2793 129.999 48.6701 132.8 46.8205 134.155C41.2996 138.2 26.822 127.829 14.484 110.989C2.14607 94.1502 -3.38031 77.2199 2.14063 73.1747C3.99076 71.8192 6.84675 72.0828 10.291 73.6661C2.59322 57.0664 0.749737 43.5777 6.72059 39.2027C11.2405 35.8909 19.3905 38.4229 28.9442 45.2027C16.3771 19.3499 13.0395 -1.93682 22.1991 -8.64813C31.3609 -15.361 50.6591 -5.75701 71.5282 14.0269C67.9363 2.86428 67.9756 -5.67804 72.4982 -8.99176Z'/%3E%3C/svg%3E");
}

/* =========================================================
   1. БАЗОВЫЕ СТИЛИ
   ========================================================= */
[hidden] { display: none !important; }
* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--fb);
  background: var(--bg);
  color: var(--dark);
  overflow-x: hidden;
}

img { max-width: 100%; display: block; }
.container { max-width: 1280px; margin: 0 auto; padding: 0 24px; }

h1, h2, h3 {
  font-family: var(--fd);
  text-transform: uppercase;
  margin: 0;
}

.section-title {
  font-size: clamp(24px, 3.4vw, 40px);
  font-weight: 800;
}

.section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 36px;
}

/* =========================================================
   2. КОМПОНЕНТЫ: КНОПКИ И НАВИГАЦИЯ
   ========================================================= */
.btn {
  display: inline-block;
  padding: 14px 30px;
  border: 1px solid var(--dark);
  border-radius: 999px;
  background: #fff;
  font: 700 11px/1 var(--fb);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--dark);
  text-decoration: none;
  box-shadow: 0 4px 0 rgba(0,0,0,.15);
  transition: .2s;
}
.btn:hover { transform: translateY(-2px); }
.btn--ghost {
  background: transparent;
  border-color: var(--purple);
  color: var(--purple);
  box-shadow: none;
}

.section-nav { display: flex; gap: 14px; }
.nav-btn {
  background: none;
  border: 0;
  cursor: pointer;
  color: var(--pink);
  padding: 4px;
}
.nav-btn svg {
  width: 26px;
  height: 26px;
  stroke: currentColor;
  stroke-width: 3;
  fill: none;
}
.projects .nav-btn { color: var(--yellow); }
.graduates .nav-btn { color: var(--purple); }

/* Кнопки-овалы (sketch) */
.btn-sketch, .btn-sketchmain, .btn-sketchnews {
  position: relative;
  display: inline-block;
  font-family: var(--fd);
  font-weight: 800;
  font-size: clamp(13px, 1.5vw, 17px);
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--purple);
  text-decoration: none;
  transition: transform .2s;
}
.btn-sketch { padding: 28px 70px; }
.btn-sketchmain, .btn-sketchnews { padding: 20px 40px; margin-top: 20px; }

.btn-sketch__oval {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  pointer-events: none;
  transition: transform .25s;
}
.btn-sketch__oval--purple { border: 3px solid var(--purple); transform: rotate(-2.5deg); height: 90px; }
.btn-sketch__oval--purplenews { border: 3px solid var(--purple); transform: rotate(-2.5deg); height: 60px; }
.btn-sketch__oval--white { border: 3px solid #fff; transform: rotate(10deg); background: white; height: 90px; }
.btn-sketch__main--black { border: 3px solid #000; transform: rotate(-6deg); height: 64px; }

.btn-sketch__text { position: relative; z-index: 1; }
.btn-sketch__maintext { color: black; }

.btn-sketch:hover { transform: scale(1.04); }
.btn-sketch:active { transform: scale(.98); }
.btn-sketch:hover .btn-sketch__oval--purple { transform: rotate(-4deg); }
.btn-sketch:hover .btn-sketch__oval--white { transform: rotate(4deg); }
.btn-sketchmain:hover .btn-sketch__main--black { transform: rotate(4deg); }
.btn-sketch:focus-visible {
  outline: 2px solid var(--purple);
  outline-offset: 8px;
  border-radius: 999px;
}

/* =========================================================
   3. ШАПКА (HEADER)
   ========================================================= */
.header {
  padding: 28px 0 10px;
  position: relative;
  z-index: 10;
  background: #fff;
  max-width: 1512px;
  margin: auto;
}
.header__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  position: relative;
}
.logo {
  font-family: var(--fd);
  font-weight: 900;
  font-size: clamp(28px, 3.6vw, 44px);
  letter-spacing: .05em;
  color: var(--pink);
  text-decoration: none;
  text-transform: uppercase;
}
.logo img {
  height: 33px;
  width: 481px;
  margin: auto;
}
.menu {
  display: flex;
  gap: 30px;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
  justify-content: center;
}
.menu a {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--pink);
  text-decoration: none;
}
.menu li._active a { color: var(--dark); }
.header__burger { display: none; }

/* =========================================================
   4. HERO СЕКЦИЯ
   ========================================================= */
.hero {
  padding: 20px 0 80px;
  position: relative;
  z-index: 2;
  background: #fff;
  border-radius: 0 0 300px 300px;
  margin-bottom: 50px;
  max-width: 1512px;
  margin-left: auto;
  margin-right: auto;
}

/* Исправление Swiper */
.hero .swiper { overflow: hidden !important; }
.hero .swiper-slide {
  overflow: visible !important;
  height: auto !important;
}

.hero__slide {
  position: relative;
  overflow: visible !important;
  min-height: 500px;
  width: 100%;
}

.hero__media--left, .hero__media--right {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 1;
  background-position: 0% 50%;
  background-size: cover;
  background-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.hero__media--left {
  left: 0;
  right: 50%;
  margin-left: -118px;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 424 510'%3E%3Cpath d='M117.046 7.88003C134.757 -9.83075 178.896 3.27402 230.418 37.5532C226.931 25.2618 227.536 15.6084 233.011 10.1328C249.393 -6.24752 303.16 20.9623 353.106 70.9078C403.051 120.854 430.261 174.623 413.88 191.004C408.404 196.48 398.749 197.083 386.454 193.594C420.728 245.111 433.829 289.246 416.12 306.955C402.702 320.374 374.113 316.102 338.636 298.337C394.028 378.338 416.182 447.838 388.997 475.022C361.819 502.2 292.345 480.063 212.368 424.7C230.107 460.147 234.365 488.709 220.955 502.12C203.236 519.839 159.062 506.714 107.51 472.399C111.022 484.729 110.428 494.413 104.941 499.901C88.5597 516.282 34.791 489.072 -15.1547 439.126C-65.1003 389.18 -92.3103 335.411 -75.9294 319.03C-70.44 313.541 -60.7516 312.947 -48.4158 316.464C-82.7179 264.922 -95.836 220.761 -78.1202 203.044C-64.7094 189.634 -36.1452 193.892 -0.69677 211.632C-56.0545 131.658 -78.189 62.1889 -51.0121 35.0114C-23.8283 7.82754 45.6679 29.9797 125.665 85.3674C107.898 49.8892 103.627 21.299 117.046 7.88003Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 424 510'%3E%3Cpath d='M117.046 7.88003C134.757 -9.83075 178.896 3.27402 230.418 37.5532C226.931 25.2618 227.536 15.6084 233.011 10.1328C249.393 -6.24752 303.16 20.9623 353.106 70.9078C403.051 120.854 430.261 174.623 413.88 191.004C408.404 196.48 398.749 197.083 386.454 193.594C420.728 245.111 433.829 289.246 416.12 306.955C402.702 320.374 374.113 316.102 338.636 298.337C394.028 378.338 416.182 447.838 388.997 475.022C361.819 502.2 292.345 480.063 212.368 424.7C230.107 460.147 234.365 488.709 220.955 502.12C203.236 519.839 159.062 506.714 107.51 472.399C111.022 484.729 110.428 494.413 104.941 499.901C88.5597 516.282 34.791 489.072 -15.1547 439.126C-65.1003 389.18 -92.3103 335.411 -75.9294 319.03C-70.44 313.541 -60.7516 312.947 -48.4158 316.464C-82.7179 264.922 -95.836 220.761 -78.1202 203.044C-64.7094 189.634 -36.1452 193.892 -0.69677 211.632C-56.0545 131.658 -78.189 62.1889 -51.0121 35.0114C-23.8283 7.82754 45.6679 29.9797 125.665 85.3674C107.898 49.8892 103.627 21.299 117.046 7.88003Z' fill='black'/%3E%3C/svg%3E");
  -webkit-mask-position: left center;
  mask-position: left center;
  transform: rotate(-4deg);
  transform-origin: left center;
}

.hero__media--right {
  left: 50%;
  right: 0;
  margin-right: -115px;
  margin-top: 92px;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 483 570'%3E%3Cpath d='M248.638 0.291544C280.287 -3.90038 315.947 37.4158 345.221 104.641C382.303 81.8488 415.335 74.4867 436.479 87.7279C456.695 100.388 462.608 129.735 456.024 168.082C530.236 165.998 582.597 179.36 591.491 207.479C604.247 247.811 523.554 305.796 402.232 348.784C411.182 470.531 388.704 563.76 344.392 569.63C312.791 573.816 277.188 532.628 247.939 465.578C210.932 488.28 177.977 495.596 156.869 482.377C136.614 469.692 130.715 440.257 137.361 401.801C62.8465 403.97 10.2395 390.615 1.32322 362.424C-11.4402 322.068 69.3531 264.039 190.791 221.044C181.86 99.3429 204.339 6.16005 248.638 0.291544Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 483 570'%3E%3Cpath d='M248.638 0.291544C280.287 -3.90038 315.947 37.4158 345.221 104.641C382.303 81.8488 415.335 74.4867 436.479 87.7279C456.695 100.388 462.608 129.735 456.024 168.082C530.236 165.998 582.597 179.36 591.491 207.479C604.247 247.811 523.554 305.796 402.232 348.784C411.182 470.531 388.704 563.76 344.392 569.63C312.791 573.816 277.188 532.628 247.939 465.578C210.932 488.28 177.977 495.596 156.869 482.377C136.614 469.692 130.715 440.257 137.361 401.801C62.8465 403.97 10.2395 390.615 1.32322 362.424C-11.4402 322.068 69.3531 264.039 190.791 221.044C181.86 99.3429 204.339 6.16005 248.638 0.291544Z' fill='black'/%3E%3C/svg%3E");
  -webkit-mask-position: right center;
  mask-position: right center;
  transform: rotate(4deg);
  transform-origin: right center;
}

.hero__content {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 60px 20px;
  max-width: 520px;
  margin: auto;
}
.hero__title {
  font-size: clamp(20px, 2.2vw, 30px);
  font-weight: 800;
  margin-bottom: 16px;
}
.hero__text {
  font-size: 13px;
  line-height: 1.55;
  max-width: 340px;
  margin: 0 auto 24px;
}

/* =========================================================
   5. ВЕЕР (FAN)
   ========================================================= */
.fan {
  padding: 50px 0 10px;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.fan__wrap {
  position: relative;
  height: 800px;
  max-width: 1280px;
  margin: 0 auto;
}
.fan__card {
  position: absolute;
  left: var(--x);
  top: var(--y);
  z-index: var(--z);
  width: 261px;
  height: 342px;
  border-radius: 24px;
  overflow: hidden;
  color: #fff;
  display: flex;
  flex-direction: column;
  transform: rotate(var(--r));
  box-shadow: 0 24px 48px rgba(0,0,0,.18);
  transition: transform .25s;
}
.fan__card:hover { transform: rotate(var(--r)) translateY(-12px); }
.fan__card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.fan__wordmark, .fan__quote { position: relative; z-index: 1; }
.fan__wordmark {
  font-family: var(--fd);
  font-weight: 800;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: .02em;
  padding: 20px 18px 0;
}
.fan__quote {
  margin-top: auto;
  padding: 0 18px 22px;
  font-size: 12px;
  line-height: 1.5;
  font-weight: 500;
}
.fan__photo {
  position: absolute;
  inset: 0;
  background: center/cover no-repeat;
}
.fan__more {
  text-align: center;
  margin: 10px 0 60px;
  position: relative;
  z-index: 6;
}

/* Карточки веера */
.fan__card:nth-child(1) { --x: 1%; --y: 330px; --r: -16deg; --z: 1; background: var(--yellow); }
.fan__card:nth-child(1)::after { background: #BE4A71; -webkit-mask: var(--fan-shape) 99% -65%/109 auto no-repeat; mask: var(--fan-shape) 99% -65%/109% auto no-repeat; }
.fan__card:nth-child(2) { --x: 9%; --y: 60px; --r: -8deg; --z: 2; background: #1c0f16; }
.fan__card:nth-child(3) { --x: 19%; --y: 210px; --r: -6deg; --z: 3; background: var(--pink); }
.fan__card:nth-child(3)::after { background: repeating-radial-gradient(circle at 120% 115%, transparent 0 64px, rgba(255,197,61,.75) 64px 66px); }
.fan__card:nth-child(4) { --x: 26%; --y: 30px; --r: -12deg; --z: 4; background: #0e0a12; }
.fan__card:nth-child(5) { --x: 35%; --y: 120px; --r: 6deg; --z: 4; background: var(--orange); }
.fan__card:nth-child(5)::after { background: radial-gradient(closest-side, var(--yellow) 97%, transparent) 50% 92%/125% 72% no-repeat; }
.fan__card:nth-child(6) { --x: 49%; --y: 200px; --r: 2deg; --z: 4; background: var(--magenta); }
.fan__card:nth-child(6)::after { background: radial-gradient(closest-side, rgba(64,21,74,.35) 97%, transparent) 50% 40%/140% 80% no-repeat; }
.fan__card:nth-child(7) { --x: 58%; --y: 140px; --r: 8deg; --z: 5; background: #141212; }
.fan__card:nth-child(8) { --x: 69%; --y: 80px; --r: 12deg; --z: 6; background: #8f1620; }
.fan__card:nth-child(9) { --x: 71%; --y: 330px; --r: 15deg; --z: 7; background: var(--purple); }
.fan__card:nth-child(9)::after { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 92'%3E%3Cpath fill='%23EE5A70' d='M50 88C22 62 4 44 4 27 4 13 15 4 27 4c9 0 18 5 23 14C55 9 64 4 73 4c12 0 23 9 23 23 0 17-18 35-47 61z'/%3E%3C/svg%3E") 50% 36%/88% auto no-repeat; }

/* =========================================================
   6. ПРОЕКТЫ
   ========================================================= */
.projects {
  background: var(--pink);
  border-radius: var(--r-lg);
  padding: 52px 0 60px;
  color: #fff;
  margin-bottom: 70px;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.projects .section-title { color: #fff; }

.project-card {
  display: block;
  text-decoration: none;
  color: inherit;
}
.project-card__media {
  position: relative;
  margin: 20px 0 56px;
}
.project-card__big {
  position: relative;
  width: 92%;
  margin-left: auto;
  transform: rotate(-8deg);
}
.project-card__big::before {
  content: "";
  position: absolute;
  inset: 0;
  transform: translate(16px, -16px);
  border: 8px solid var(--yellow);
  border-radius: 50%;
}
.project-card__big img {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  border-radius: 50%;
}
.project-card__bubble {
  position: absolute;
  width: 48%;
  z-index: 2;
}
.project-card__bubble img {
  display: block;
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  border-radius: 50%;
  border: 8px solid var(--yellow);
}
.project-card__title {
  font: 700 15px/1.55 var(--fb);
  text-transform: none;
  max-width: 440px;
  color: #fff;
}

.projects .swiper-slide:nth-child(3n+2) .project-card__big::before,
.projects .swiper-slide:nth-child(3n+2) .project-card__bubble img { border-color: var(--purple); }
.projects .swiper-slide:nth-child(3n) .project-card__big::before,
.projects .swiper-slide:nth-child(3n) .project-card__bubble img { border-color: var(--magenta); }

.projects .swiper-slide:nth-child(odd) .project-card__bubble { top: -34px; left: -4%; transform: rotate(9deg); }
.projects .swiper-slide:nth-child(even) .project-card__bubble { bottom: -46px; right: -4%; transform: rotate(-9deg); }

/* Сетка проектов (внутренняя страница) */
.projects-page { padding: 24px 0 80px; }
.projects-page__hero {
  max-width: 1280px;
  margin: 0 auto 36px;
  padding: 0 24px;
}
.projects-page__hero img {
  display: block;
  width: 100%;
  height: 320px;
  object-fit: cover;
  border-radius: var(--r-lg);
}
.projects-page__title { margin-bottom: 28px; }
.projects-page__empty {
  font-size: 14px;
  color: var(--gray);
}
.projects-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  align-items: stretch;
}
.projects-grid__item { height: 100%; }

.project-grid-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border-radius: var(--r-md);
  overflow: hidden;
  text-decoration: none;
  color: var(--dark);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
  transition: transform 0.2s;
}
.project-grid-card:hover { transform: translateY(-4px); }
.project-grid-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.project-grid-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 20px;
}
.project-grid-card__title {
  font: 800 16px/1.4 var(--fb);
  text-transform: none;
  margin: 0 0 10px;
}
.project-grid-card__text {
  font-size: 13px;
  line-height: 1.55;
  color: #555;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 6;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.project-grid-card__more {
  margin-top: auto;
  padding-top: 18px;
  font: 700 11px/1 var(--fb);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pink);
}

/* Детальная страница проекта */
.project-detail { padding: 40px 0 80px; }
.project-detail__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 440px;
  gap: 56px;
  align-items: start;
  background: white;
  padding: 66px 0 66px 72px;
  border-radius: 82px;
}
.project-detail__content { max-width: 760px; }
.project-detail__meta { margin: 0 0 24px; }
.project-detail__row {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid #E7E3DC;
  font-size: 14px;
}
.project-detail__row:last-child { border-bottom: 0; }
.project-detail__label {
  color: #ffffff;
  font-weight: 700;
  background: #EA5160;
  border-radius: 32px;
  text-align: center;
  padding: 4px 17px;
}
.project-detail__value { font-weight: 700; }
.project-detail__docs { margin-top: 36px; }
.project-detail__docs-title {
  font-size: 18px;
  font-weight: 800;
  margin-bottom: 16px;
}
/* Базовая защита таблицы от переполнения */
.docs-table {
  background: #fff;
  border: 1px solid #E7E3DC;
  border-radius: var(--r-sm);
  overflow: hidden;
  width: 100%;
  min-width: 0; /* Ключевое: разрешает сжиматься внутри grid/flex */
}

/* Строка документа */
.doc-row {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 14px;
  align-items: start; /* Было center — при переносе текста иконка уезжала */
  padding: 14px 18px;
  text-decoration: none;
  color: var(--dark);
  border-bottom: 1px solid #E7E3DC;
  transition: background 0.15s;
  min-width: 0; /* Ключевое: разрешает grid-элементу сжиматься */
}

/* Тип документа (иконка/бейдж) — не даем сжиматься */
.doc-row__type {
  font: 800 11px/1 var(--fb);
  letter-spacing: 0.08em;
  color: var(--pink);
  flex-shrink: 0;
  white-space: nowrap;
}

/* Название документа — разрешаем перенос длинных слов */
.doc-row__name {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  min-width: 0; /* Ключевое: без этого длинные слова ломают grid */
  word-break: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
}

/* Защита мета-данных проекта от длинных значений */
.project-detail__value {
  min-width: 0;
  word-break: break-word;
  overflow-wrap: break-word;
}

.project-detail__label {
  min-width: 0;
  word-break: break-word;
  overflow-wrap: break-word;
}
.doc-row__name {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}
.project-detail__links {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.project-detail__links a {
  display: inline-block;
  padding: 10px 18px;
  border: 1px solid var(--purple);
  border-radius: 999px;
  font: 700 11px/1 var(--fb);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--purple);
  text-decoration: none;
}
.project-detail__links a:hover {
  background: var(--purple);
  color: #fff;
}
.project-detail__media { position: relative; }
.project-detail__oval {
  position: relative;
  margin: 0 0 64px;
}
.project-detail__oval::before {
  content: "";
  position: absolute;
  inset: 0;
  transform: translate(16px, -16px);
  border: 8px solid var(--yellow);
  border-radius: 50%;
}
.project-detail__oval img {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 50%;
}
.project-detail__oval:nth-child(2n) { transform: rotate(3deg); }
.project-detail__oval:nth-child(2n)::before {
  border-color: var(--purple);
  transform: translate(-16px, 16px);
}
.project-detail__oval:nth-child(3n) { transform: rotate(-3deg); }
.project-detail__oval:nth-child(3n)::before { border-color: var(--magenta); }
.project-detail__oval:last-child { margin-bottom: 16px; }

/* Табы проектов */
.projects-tabs {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 40px;
  padding: 0 0 20px;
  border-bottom: 2px solid #E7E3DC;
}
.projects-tabs__item {
  display: inline-block;
  padding: 12px 24px;
  border: 1px solid #E7E3DC;
  border-radius: 999px;
  background: #fff;
  font: 700 13px/1 var(--fb);
  color: var(--dark);
  text-decoration: none;
  transition: all 0.2s;
}
.projects-tabs__item:hover {
  border-color: var(--pink);
  color: var(--pink);
}
.projects-tabs__item--active {
  background: var(--pink);
  border-color: var(--pink);
  color: #fff;
}
.projects-tabs__item--active:hover {
  background: var(--pink-2);
  border-color: var(--pink-2);
  color: #fff;
}

/* =========================================================
   7. ЭКСПЕРТЫ И ВЫПУСКНИКИ
   ========================================================= */
.experts {
  padding: 10px 0 60px;
  position: relative;
  z-index: 1;
}
.expert-card {
  background: #fff;
  border-radius: var(--r-md);
  padding: 24px 20px;
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
  height: 100%;
}
.expert-card__photo {
  display: block;
  width: 170px;
  height: 200px;
  object-fit: cover;
  border-radius: 50%;
  margin: 0 auto 20px;
}
.expert-card__name {
  font: 800 15px/1.3 var(--fb);
  margin-bottom: 10px;
}
.expert-card__about {
  font-size: 11px;
  line-height: 1.5;
  color: #555;
}

.graduates {
  padding: 0 0 70px;
  position: relative;
  z-index: 1;
}
.grad-card {
  border-radius: var(--r-md);
  padding: 24px 20px;
  color: #fff;
  height: 100%;
}
.grad-card__photo {
  display: block;
  width: 170px;
  height: 200px;
  object-fit: cover;
  border-radius: 50%;
  margin: 0 auto 20px;
}
.grad-card__name {
  display: inline-block;
  font: 800 14px/1.3 var(--fb);
  background: rgba(0,0,0,.18);
  padding: 8px 12px;
  border-radius: 10px;
  margin-bottom: 12px;
}
.grad-card__about {
  font-size: 11px;
  line-height: 1.5;
}
.graduates .swiper-slide:nth-child(4n+1) .grad-card { background: var(--pink); }
.graduates .swiper-slide:nth-child(4n+2) .grad-card { background: var(--orange); }
.graduates .swiper-slide:nth-child(4n+3) .grad-card { background: var(--magenta); }
.graduates .swiper-slide:nth-child(4n+4) .grad-card { background: var(--purple); }

/* =========================================================
   8. ЛЕНТА-МАРКИЗА
   ========================================================= */
.marquee {
  position: relative;
  height: 150px;
  margin: 30px 0 60px;
  overflow: hidden;
  z-index: 0;
}
.marquee__line {
  position: absolute;
  left: -10%;
  width: 120%;
  overflow: hidden;
}
.marquee__line--1 { top: 45px; transform: rotate(2.5deg); background: var(--purple); }
.marquee__line--2 { top: 78px; transform: rotate(-2.5deg); background: var(--pink); }
.marquee__track {
  display: flex;
  align-items: center;
  gap: 28px;
  width: max-content;
  padding: 10px 0;
  animation: mq 26s linear infinite;
}
.marquee__line--2 .marquee__track { animation-direction: reverse; }
.marquee__track span {
  font-family: var(--fd);
  font-weight: 800;
  font-size: 14px;
  text-transform: uppercase;
  color: var(--yellow);
  white-space: nowrap;
}
.marquee__line--1 .marquee__track span { color: var(--orange); }
.marquee__track i { color: var(--yellow); font-style: normal; }
@keyframes mq { to { transform: translateX(-50%); } }

/* =========================================================
   9. НОВОСТИ
   ========================================================= */
.news {
  background: #fff;
  border-radius: var(--r-lg);
  padding: 52px 0 60px;
  margin-bottom: 70px;
  position: relative;
  z-index: 1;
}
.news__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.news-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  border-radius: var(--r-sm);
  overflow: hidden;
  outline: none;
  background: white;
}
.news-card:focus-visible {
  outline: 2px solid var(--pink);
  outline-offset: 4px;
}
.news-card:hover img { transform: scale(1.02); }
.news-card img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  border-radius: 23px;
  margin-bottom: 14px;
  display: block;
}
.news-card__placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: var(--r-sm);
  margin-bottom: 14px;
  background: linear-gradient(135deg, var(--pink), var(--purple));
}
.news-card__date {
  font-size: 11px;
  color: var(--gray);
  margin-bottom: 8px;
  padding: 10px 18px 0;
}
.news-card__title {
  font: 800 14px/1.45 var(--fb);
  text-transform: none;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color .2s;
  padding: 0 18px;
}
.news-card:hover .news-card__title { color: var(--pink); }
.news-card__text {
  font-size: 12px;
  line-height: 1.5;
  color: var(--gray);
  margin-top: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-card__rubric, .news-card__tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(238, 90, 112, .1);
  color: var(--pink);
  font: 700 10px/1 var(--fb);
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: 10px;
  text-decoration: none;
}
.news-card__rubric:hover, .news-card__tag:hover {
  background: var(--pink);
  color: #fff;
}

/* Детальная страница новости */
.news-page {
  padding: 40px 0 80px;
  position: relative;
  z-index: 1;
}
.news-page .section-head { margin-bottom: 28px; }
.news-page .section-title { font-size: clamp(28px, 3.4vw, 44px); }
.news-page__empty {
  padding: 40px 24px;
  background: #fff;
  border-radius: var(--r-md);
  color: var(--gray);
  font-size: 14px;
}
.news-page__controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  margin: 0 0 32px;
  padding: 20px 22px;
  background: #fff;
  border-radius: var(--r-md);
}
.news-page__search, .news-page__filter, .news-page__actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.news-page__label {
  font: 700 11px/1 var(--fb);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--gray);
}
.news-page__input, .news-page__select, .news-page__btn {
  min-height: 44px;
  border-radius: 999px;
  font: 600 13px/1.2 var(--fb);
  transition: .2s;
}
.news-page__input, .news-page__select {
  padding: 0 18px;
  border: 1px solid rgba(34, 31, 31, .12);
  background: #fff;
  color: var(--dark);
  outline: none;
}
.news-page__input { min-width: 280px; }
.news-page__input::placeholder { color: var(--gray); }
.news-page__input:focus, .news-page__select:focus {
  border-color: var(--pink);
  box-shadow: 0 0 0 3px rgba(238, 90, 112, .12);
}
.news-page__select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding-right: 38px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%23221F1F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 12px auto;
}
.news-page__btn {
  padding: 0 22px;
  border: 1px solid var(--dark);
  background: #fff;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--dark);
  cursor: pointer;
  box-shadow: 0 4px 0 rgba(0, 0, 0, .15);
}
.news-page__btn:hover { transform: translateY(-2px); }
.news-page__reset {
  font-size: 12px;
  font-weight: 700;
  color: var(--pink);
  text-decoration: underline;
}
.news-page__reset:hover { color: var(--pink-2); }

/* Пагинация */
.pager {
  display: flex;
  gap: 8px;
  justify-content: center;
  align-items: center;
  margin-top: 44px;
  flex-wrap: wrap;
}
.pager a, .pager span {
  display: inline-flex;
  min-width: 38px;
  height: 38px;
  padding: 0 12px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #fff;
  border: 1px solid transparent;
  font-weight: 700;
  font-size: 13px;
  color: var(--dark);
  text-decoration: none;
  transition: .2s;
}
.pager a:hover {
  transform: translateY(-1px);
  background: var(--pink);
  color: #fff;
}
.pager a:focus-visible, .pager span:focus-visible {
  outline: 2px solid var(--pink);
  outline-offset: 2px;
}
.pager span {
  background: var(--pink);
  color: #fff;
}
.pager .pager__dots {
  background: transparent;
  border: 0;
  box-shadow: none;
  cursor: default;
  min-width: auto;
  padding: 0 6px;
  color: var(--gray);
  transform: none;
}

/* Детальная новость (объединенная) */
.detail {
  max-width: 860px;
  margin: 0 auto;
  padding: 40px 24px 80px;
}
.detail h2 {
  font-family: var(--fd);
  font-size: 18px;
  font-weight: 800;
  text-transform: uppercase;
  margin: 24px 0 10px;
}
.detail__back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--pink);
  margin-bottom: 28px;
  text-decoration: none;
  transition: .2s;
}
.detail__back:hover {
  color: var(--pink-2);
  transform: translateX(-2px);
}
.detail__date {
  font-size: 12px;
  color: var(--gray);
  margin-bottom: 12px;
}
.detail__title {
  font-size: clamp(22px, 3vw, 34px);
  line-height: 1.15;
  font-weight: 800;
  margin-bottom: 28px;
  text-align: center;
}
.detail__img {
  width: 100%;
  display: block;
  border-radius: var(--r-md);
  margin-bottom: 28px;
  background: var(--bg);
}
.detail__text {
  font-size: 15px;
  line-height: 1.7;
}
.detail__text p { margin: 0 0 18px; }
.detail__text a {
  color: var(--pink);
  text-decoration: underline;
}
.detail__text a:hover { color: var(--pink-2); }
.detail__text img { border-radius: var(--r-sm); }
.detail__text h2, .detail__text h3 { margin: 28px 0 14px; }
.detail__text ul, .detail__text ol {
  margin: 0 0 18px;
  padding-left: 20px;
}
.detail__text li { margin-bottom: 8px; }
.detail__author {
  margin-top: 28px;
  font-size: 13px;
  color: var(--dark);
}
.detail__author strong {
  color: var(--gray);
  font-weight: 700;
}
.detail__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}
.detail__tag, .detail__rubric {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(238, 90, 112, .1);
  color: var(--pink);
  font: 700 10px/1 var(--fb);
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
}
.detail__tag:hover, .detail__rubric:hover {
  background: var(--pink);
  color: #fff;
}
.detail__links, .detail__docs {
  margin-top: 28px;
  padding: 24px;
  background: #fff;
  border-radius: var(--r-md);
}
.detail__links-title, .detail__docs-title {
  margin-bottom: 14px;
  font: 800 12px/1 var(--fb);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--gray);
}
.detail__links ul, .detail__docs ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.detail__links a, .detail__docs a {
  font-size: 13px;
  font-weight: 700;
  color: var(--pink);
  text-decoration: none;
}
.detail__links a:hover, .detail__docs a:hover { text-decoration: underline; }
.detail__share {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 32px;
}
.detail__share-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--gray);
}
.detail__gallery {
  display: grid;
  gap: 24px;
  margin-top: 28px;
}
.detail__gallery .detail__img { margin-bottom: 0; }

/* =========================================================
   10. УЧРЕДИТЕЛИ / ПАРТНЕРЫ
   ========================================================= */
.fp {
  padding: 0 0 80px;
  position: relative;
  z-index: 1;
}
.fp-tabs {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin-bottom: 40px;
  font-family: var(--fd);
  font-weight: 800;
  font-size: clamp(18px, 2.4vw, 28px);
  text-transform: uppercase;
}
.fp-tabs .sep {
  color: var(--pink);
  transform: rotate(20deg);
}
.fp-tab {
  background: none;
  border: 0;
  cursor: pointer;
  font: inherit;
  color: #F3B7C0;
  padding: 0;
}
.fp-tab._active { color: var(--pink); }
.logos {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
  margin-bottom: 10px;
}
.logos__item {
  background: #fff;
  border-radius: var(--r-sm);
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
}
.logos__item img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* =========================================================
   11. КОНТАКТЫ И ДИРЕКЦИЯ
   ========================================================= */
.halfs {
  max-width: 1280px;
  margin: 40px auto 0;
  padding: 0 20px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  align-items: start;
}
.halfs--indent { margin-bottom: 60px; }
.halfs, .halfs *, .halfs *::before, .halfs *::after { box-sizing: border-box; }
.halfs__part {
  background: #f6f6f6;
  border-radius: 28px;
  padding: 44px 40px;
}
.halfs__part--col { display: flex; flex-direction: column; }

.title-decor {
  margin: 0 0 30px;
  font-family: var(--fd);
  font-weight: 700;
  font-size: 28px;
  line-height: 1.25;
  text-transform: uppercase;
  color: #171717;
}

.contacts, .cinfo {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.contacts__line, .cinfo__line {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  font-size: 15px;
  font-weight: 600;
  color: #171717;
  line-height: 1.4;
}
.contacts__line img, .cinfo__line img {
  width: 20px;
  height: 20px;
  flex: none;
  margin-top: 2px;
}
.contacts__line a, .cinfo__line a {
  color: inherit;
  text-decoration: none;
  transition: color .2s;
}
.contacts__line a:hover { color: #f2a71b; }

.map-widget, .cmap {
  margin-top: 30px;
  height: 260px;
  border-radius: 20px;
  overflow: hidden;
  background: #e9e9e9;
}
.map-widget iframe, .cmap iframe {
  display: block;
  width: 100% !important;
  height: 100% !important;
  border: 0;
}

.cform {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px 24px;
}
.cform__field { display: flex; flex-direction: column; }
.cform__field--full { grid-column: 1 / -1; }
.cform__label {
  display: block;
  font-family: var(--fb);
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 8px;
  color: #171717;
}
.cform input[type="text"], .cform input[type="email"], .cform textarea {
  width: 100%;
  background: #e9e9e9;
  border: 0;
  border-radius: 16px;
  padding: 14px 18px;
  font-family: var(--fb);
  font-size: 14px;
  outline: none;
  transition: background .2s;
}
.cform input[type="text"]:focus, .cform input[type="email"]:focus, .cform textarea:focus {
  background: #dedede;
}
.cform textarea {
  min-height: 130px;
  resize: vertical;
}
.cform__field--agree {
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
  font-size: 13px;
  color: #3a3a3a;
  cursor: pointer;
}
.cform__field--agree input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.cform__checkbox {
  flex: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #e2e2e2;
  position: relative;
  transition: .15s;
}
.cform__field--agree input:checked ~ .cform__checkbox { background: #f0506a; }
.cform__field--agree input:checked ~ .cform__checkbox::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 8px;
  height: 5px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg);
}
.cform__submit {
  grid-column: 1 / -1;
  justify-self: center;
  margin-top: 10px;
  background: none;
  border: 2px solid #171717;
  border-radius: 999px;
  padding: 12px 42px;
  cursor: pointer;
  transition: .2s;
  font-family: var(--fd);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: #171717;
}
.cform__submit:hover {
  background: #171717;
  color: #fff;
}

/* Дирекция */
.direction {
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px 20px 100px;
}
.direction__title {
  margin: 0 0 100px;
  font-family: var(--fd);
  font-weight: 800;
  font-size: 34px;
  text-transform: uppercase;
  text-align: center;
  letter-spacing: .5px;
  color: #171717;
}
.direction__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 90px 28px;
  align-items: start;
}
.pc-card {
  background: #f6f6f6;
  border-radius: 24px;
  padding: 0 22px 28px;
}
.pc-photo {
  width: 100%;
  max-width: 210px;
  margin: -80px auto 18px;
  position: relative;
}
.pc-photo img, .pc-photo__ph {
  display: block;
  width: 100%;
  aspect-ratio: .78;
  object-fit: cover;
  border-radius: 50%;
}
.pc-photo__ph { background: #d9d9d9; }
.pc-name {
  position: absolute;
  left: -8px;
  bottom: 28px;
  background: #fff;
  border-radius: 10px;
  padding: 10px 16px;
  margin: 0;
  max-width: 160px;
  font-family: var(--fd);
  font-weight: 800;
  font-size: 18px;
  line-height: 1.2;
}
.pc-post {
  font-size: 13px;
  line-height: 1.45;
  margin: 0 0 16px;
  color: #2b2b2b;
}
.pc-links {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pc-link {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 600;
  color: #171717;
  text-decoration: none;
}
.pc-link img {
  width: 18px;
  height: 18px;
  flex: none;
}
.direction__pager {
  margin-top: 60px;
  text-align: center;
}

/* =========================================================
   12. ФУТЕР
   ========================================================= */
.footer {
  padding: 60px 0 50px;
  position: relative;
  overflow: hidden;
  background: white;
  border-radius: 137px 137px 0 0;
}
.footer__inner {
  display: grid;
  grid-template-columns: 1.3fr .8fr 1fr 1fr;
  gap: 32px;
  position: relative;
  z-index: 1;
}
.logo--footer { font-size: 34px; }
.footer__brand p {
  font-size: 12px;
  color: var(--pink);
  margin: 10px 0 0;
}
.footer__social {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.footer__social a {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  font-weight: 700;
  color: var(--pink);
  text-decoration: none;
}
.soc {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: var(--pink);
  color: #fff;
  font: 800 10px/26px var(--fb);
  text-align: center;
  font-style: normal;
}
.footer__col a, .footer__col p {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: var(--pink);
  text-decoration: none;
  margin: 0 0 8px;
}
.footer__label {
  display: block;
  font-size: 11px;
  color: #C98A94;
  margin-bottom: 12px;
}
.footer__decor {
  position: absolute;
  right: -40px;
  top: 0;
  width: 260px;
  opacity: .9;
}

/* =========================================================
   13. ВНУТРЕННИЕ СТРАНИЦЫ: ОБЩИЕ ЭЛЕМЕНТЫ
   ========================================================= */
/* ===== универсальный header для всех внутренних страниц ===== */
.page-header {
    position: relative;
    height: 706px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    color: #fff;
    display: flex;
    flex-direction: column;
    margin-bottom: 40px;
	background-size: auto;
    /* убираем overflow: hidden и z-index, чтобы мобильное меню было поверх всего */
}

.page-header::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(34, 31, 31, 0.45) 0%,
        rgba(34, 31, 31, 0.15) 35%,
        rgba(34, 31, 31, 0.65) 100%
    );
    pointer-events: none;
}

.page-header__container {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.page-header__top {
  display: grid;
  align-items: center;
  gap: 24px;
  padding: 28px 0 10px;
}
.page-header__logo { display: inline-flex; align-items: center; }
.page-header__logo img {
  display: block;
  height: 33px;
  width: 481px;
  margin: auto;
}
.page-header__nav { display: flex; justify-content: center; }
.page-header__nav .menu {
  display: flex;
  gap: 30px;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
  justify-content: center;
}
.page-header__nav .menu a {
  font: 800 11px/1 var(--fb);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
  transition: color 0.15s;
}
.page-header__nav .menu li._active a { color: var(--yellow); }
.page-header__bottom {
  margin-top: auto;
  padding-bottom: 60px;
}
.page-header__title {
  font-family: var(--fd);
  font-weight: 800;
  font-size: clamp(32px, 5vw, 64px);
  line-height: 1.05;
  text-transform: uppercase;
  color: #fff;
  margin: 0;
  text-align: center;
}
.page-header .header__burger { display: none; }
.page-header .header__burger span,
.page-header .header__burger span::before,
.page-header .header__burger span::after { background: #fff; }

.experts-page { padding: 40px 0 80px; }
.experts-page__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

/* О программе */
.about-page { padding: 40px 0 80px; }
.about-section { margin-bottom: 64px; }
.about-section__title { margin-bottom: 28px; }
.about-text {
  font-size: 15px;
  line-height: 1.7;
  max-width: 860px;
  color: var(--dark);
}
.about-text p { margin: 0 0 16px; }
.about-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.about-card {
  background: #fff;
  border-radius: var(--r-md);
  padding: 28px 24px;
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
  transition: transform .2s;
  height: 100%;
}
.about-card:hover { transform: translateY(-4px); }
.about-card__icon {
  font-size: 36px;
  margin-bottom: 16px;
}
.about-card__title {
  font: 800 16px/1.3 var(--fb);
  text-transform: uppercase;
  margin-bottom: 12px;
  color: var(--dark);
}
.about-card__text {
  font-size: 13px;
  line-height: 1.55;
  color: #555;
  margin: 0;
}
.about-section--highlight {
  background: var(--pink);
  border-radius: var(--r-lg);
  padding: 52px 48px;
  color: #fff;
}
.about-section--highlight .section-title { color: #fff; }
.about-highlight {
  font-size: clamp(18px, 2.5vw, 28px);
  line-height: 1.5;
  font-weight: 700;
  max-width: 900px;
}
.about-highlight p { margin: 0 0 20px; }
.about-highlight p:last-child { margin-bottom: 0; }

/* Медиа */
.media-block {
  padding: 0 0 60px;
  position: relative;
  z-index: 1;
}
.media-block__empty {
  padding: 30px 24px;
  background: #fff;
  border-radius: var(--r-md);
  color: var(--gray);
  font-size: 14px;
}
.media-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.media-grid--video { grid-template-columns: repeat(2, 1fr); }
.media-card {
  display: block;
  text-decoration: none;
  color: inherit;
  border-radius: var(--r-sm);
  overflow: hidden;
}
.media-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--r-sm);
  margin-bottom: 14px;
  display: block;
  background: var(--bg);
  transition: transform .25s;
}
.media-card:hover img { transform: scale(1.02); }
.media-card__placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: var(--r-sm);
  margin-bottom: 14px;
  background: linear-gradient(135deg, var(--pink), var(--purple));
}
.media-card__date {
  font-size: 11px;
  color: var(--gray);
  margin-bottom: 8px;
}
.media-card__title {
  font: 800 14px/1.45 var(--fb);
  text-transform: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color .2s;
}
.media-card:hover .media-card__title { color: var(--pink); }
.media-card__media {
  position: relative;
  display: block;
  border-radius: var(--r-sm);
  overflow: hidden;
  margin-bottom: 14px;
}
.media-card__media img { margin-bottom: 0; }
.media-grid--video .media-card img,
.media-grid--video .media-card__placeholder { aspect-ratio: 16 / 9; }
.media-card__play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--pink);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .2);
  transition: .2s;
}
.media-card__play svg {
  width: 22px;
  height: 22px;
  fill: #fff;
  margin-left: 4px;
}
.media-card:hover .media-card__play {
  transform: translate(-50%, -50%) scale(1.08);
  background: var(--pink-2);
}

/* Видео модалка */
.video-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.video-modal[hidden] { display: none; }
.video-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 15, 20, .82);
}
.video-modal__dialog {
  position: relative;
  width: min(960px, 100%);
}
.video-modal__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: var(--r-md);
  overflow: hidden;
  background: #000;
  box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
}
.video-modal__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.video-modal__close {
  position: absolute;
  right: -14px;
  top: -14px;
  z-index: 2;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: var(--pink);
  color: #fff;
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .35);
  transition: .2s;
}
.video-modal__close:hover {
  background: var(--pink-2);
  transform: scale(1.06);
}

/* Заглушка "Скоро" */
.soon {
  position: relative;
  min-height: calc(100vh - 200px);
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 60px 0 90px;
}
.soon__card {
  position: relative;
  z-index: 2;
  max-width: 640px;
  margin: 0 auto;
  background: #fff;
  border-radius: var(--r-lg);
  padding: 60px 48px;
  text-align: center;
  box-shadow: 0 24px 60px rgba(0,0,0,.10);
}
.soon__badge {
  display: inline-block;
  padding: 10px 22px;
  border-radius: 999px;
  background: var(--yellow);
  color: var(--dark);
  font: 800 12px/1 var(--fb);
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 24px;
}
.soon__title {
  font-family: var(--fd);
  font-weight: 800;
  font-size: clamp(24px, 3.4vw, 38px);
  text-transform: uppercase;
  margin-bottom: 18px;
}
.soon__text {
  font-size: 15px;
  line-height: 1.7;
  color: #555;
  max-width: 440px;
  margin: 0 auto 32px;
}
.soon__actions {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}
.soon__decor {
  position: absolute;
  width: 420px;
  aspect-ratio: 16/10;
  border-radius: 50%;
  z-index: 1;
  pointer-events: none;
}
.soon__decor--left {
  left: -140px;
  bottom: -80px;
  background: var(--purple);
  transform: rotate(-10deg);
  box-shadow: 0 0 0 14px rgba(124,77,188,.25);
}
.soon__decor--right {
  right: -150px;
  top: -60px;
  background: var(--pink);
  transform: rotate(8deg);
  box-shadow: 0 0 0 14px rgba(238,90,112,.25);
}


/* =========================================================
   14. АДАПТИВНОСТЬ (СГРУППИРОВАННАЯ)
   ========================================================= */

/* Планшеты и небольшие десктопы (до 1100px) */
@media (max-width: 1100px) {
  .direction__grid { grid-template-columns: repeat(3, 1fr); }
  .news__grid { grid-template-columns: repeat(2, 1fr); }
  .media-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Планшеты (до 1060px) */
@media (max-width: 1060px) {
  .news__grid { grid-template-columns: repeat(2, 1fr); }
}

/* Планшеты портрет и крупные мобильные (до 960px) */
@media (max-width: 960px) {
  .hero__slide { grid-template-columns: 1fr; }
  .hero__media { max-width: 420px; margin: 0 auto; }
  .hero__media--left, .hero__media--right { display: none; }
  
  .fan { padding-top: 20px; }
  .fan__wrap {
    height: auto;
    display: flex;
    flex-direction: column;
    padding: 10px 0 40px;
    overflow: visible;
  }
  .fan__card {
    position: relative;
    left: auto;
    top: auto;
    width: auto;
    aspect-ratio: 132.43/173.54;
    border-radius: clamp(10px, 3.65vw, 16px);
    margin-top: -24.3%;
    transform: rotate(var(--r));
  }
  .fan__card:first-child { margin-top: 0; }
  .fan__card:nth-child(odd) {
    --r: -8.78deg;
    align-self: flex-start;
    margin-left: 8%;
    z-index: 11;
  }
  .fan__card:nth-child(even) {
    --r: 3.41deg;
    align-self: flex-end;
    margin-right: 9.6%;
  }
  .fan__wordmark { font-size: 24px; text-align: center; }
  .fan__quote { font-size: 13px; }
  
  .news__grid { grid-template-columns: 1fr 1fr; }
  .footer__inner { grid-template-columns: 1fr 1fr; }
  .experts-page__grid { grid-template-columns: 1fr 1fr; }
  .projects-grid { grid-template-columns: 1fr 1fr; }
  .projects-page__hero img { height: 260px; }
  
  .project-detail__layout {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 40px 24px;
    border-radius: 32px;
  }
  .project-detail__media {
    order: -1;
    max-width: 520px;
    margin: 0 auto;
  }
  .project-detail__row { grid-template-columns: 1fr; gap: 4px; }
  
  .project-card__bubble {
    position: relative;
    width: 80%;
    margin: -40px auto 20px;
    top: auto; left: auto; bottom: auto; right: auto;
    transform: rotate(0deg) !important;
  }
  .project-card__big {
    width: 100%;
    transform: rotate(0deg);
  }
  .project-card__big::before {
    transform: translate(8px, -8px);
    border-width: 4px;
  }
  
  .news-page__controls {
    flex-direction: column;
    align-items: stretch;
  }
  .news-page__search, .news-page__filter { width: 100%; }
  .news-page__search .news-page__input, .news-page__input--date {
    flex: 1 1 auto;
    min-width: 0;
  }
  .news-page__select { flex: 1 1 auto; min-width: 0; }
  .news-page__input { width: 100%; min-width: 0; }
  
  .page-header {
    height: auto;
    min-height: 560px;
    padding-bottom: 0;
    border-radius: 0 0 60px 60px;
  }
  .page-header__top { grid-template-columns: auto auto; justify-content: space-between; }
  .page-header__nav { display: none; }
  .page-header .header__burger {
    display: block;
    background: none;
    border: 0;
    width: 32px;
    height: 24px;
    cursor: pointer;
    position: relative;
  }
  .page-header__bottom { padding-bottom: 40px; }
  .page-header__logo img { height: 44px; }
  
  .contacts-page__grid, .halfs { grid-template-columns: 1fr; }
  .direction__grid { grid-template-columns: repeat(2, 1fr); }
  .about-cards { grid-template-columns: 1fr 1fr; }
}

/* Мобильные устройства (до 900px) */
@media (max-width: 900px) {
  .contacts-page__grid { grid-template-columns: 1fr; }
  .direction__grid { grid-template-columns: repeat(2, 1fr); }
  .halfs { grid-template-columns: 1fr; }
}

/* Мобильные устройства (до 640px) */
@media (max-width: 640px) {
  .news__grid { grid-template-columns: 1fr; gap: 22px; }
  .media-grid, .media-grid--video { grid-template-columns: 1fr; }
  .experts-page__grid { grid-template-columns: 1fr; }
  .logos { grid-template-columns: repeat(2, 1fr); }
  .projects-grid { grid-template-columns: 1fr; }
  .projects-page__hero img { height: 200px; }
  .about-cards { grid-template-columns: 1fr; }
  .about-section--highlight { padding: 36px 24px; }
  
  .pager { margin-top: 32px; }
  .pager a, .pager span {
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
    font-size: 12px;
  }
  
  .detail { padding: 24px 16px 60px; }
  .detail__links, .detail__docs { padding: 18px; }
  
  .news-page { padding: 28px 0 60px; }
  .news-card__title { -webkit-line-clamp: 4; }
  
  .projects-tabs { gap: 8px; }
  .projects-tabs__item { padding: 10px 18px; font-size: 12px; }
  
  .footer__inner { grid-template-columns: 1fr; text-align: center; }
  .footer__social { align-items: center; }
  .footer__decor { display: none; }
  .footer { border-radius: 32px 32px 0 0; }
  
  .page-header {
    min-height: 400px;
    border-radius: 0 0 32px 32px;
  }
  .page-header__title { font-size: clamp(24px, 8vw, 36px); }
  
  .fan__card { flex: 0 0 85vw; height: 360px; }
  
  .video-modal { padding: 16px; }
  .video-modal__close { right: 8px; top: 8px; }
  
  .soon { padding: 40px 0 60px; }
  .soon__card { padding: 44px 24px; }
  .soon__decor { width: 260px; }
  .soon__decor--left { left: -120px; bottom: -60px; }
  .soon__decor--right { right: -120px; top: -40px; }
}

/* Маленькие мобильные устройства (до 600px) */
@media (max-width: 600px) {
  .contacts-page__card, .halfs__part { padding: 32px 24px; }
  .cform { grid-template-columns: 1fr; }
  .direction__grid { grid-template-columns: 1fr; }
  .direction__title { font-size: 26px; margin-bottom: 90px; }
  .title-decor { font-size: 22px; }
  .map-widget { height: 220px; }
  .pc-photo { margin: -40px auto 18px; max-width: 160px; }
  .pc-name { font-size: 16px; padding: 8px 12px; bottom: 16px; }
}

/* Самые маленькие экраны (до 320px) */
@media (max-width: 400px) {
  .project-detail__layout { padding: 20px !important; }
  .page-header__title { font-size: 16px;         padding: 10px; }
  .page-header__logo img { height: auto; }
  .page-header {        min-height: 200px;}
  .project-detail {
    padding: 0px 20px 40px 0;
}
.project-detail__content {
    
    max-width: 400px;
}
}

/* ===== бургер ===== */
.header__burger {
    display: none;
    width: 34px;
    height: 24px;
    background: none;
    border: 0;
    padding: 0;
    position: relative;
    z-index: 1200;
    cursor: pointer;
}

.header__burger span {
    display: block;
    height: 3px;
    border-radius: 2px;
    background: var(--pink);
    position: relative;
    transition: 0.2s;
}

.header__burger span::before,
.header__burger span::after {
    content: "";
    display: block;
    height: 3px;
    border-radius: 2px;
    background: var(--pink);
    position: absolute;
    left: 0;
    right: 0;
    transition: 0.2s;
}

.header__burger span::before {
    top: -8px;
}

.header__burger span::after {
    top: 8px;
}

.page-header .header__burger span,
.page-header .header__burger span::before,
.page-header .header__burger span::after {
    background: #fff;
}

.header__burger.is-open span {
    background: transparent;
}

.header__burger.is-open span::before {
    top: 0;
    transform: rotate(45deg);
    background: #fff;
}

.header__burger.is-open span::after {
    top: 0;
    transform: rotate(-45deg);
    background: #fff;
}

@media (max-width: 960px) {
    .header__nav,
    .page-header__nav {
        display: none;
    }

    .header__burger,
    .page-header .header__burger {
        display: block;
    }
}

/* ===== мобильное меню ===== */
@media (max-width: 960px) {
    body.menu-open {
        overflow: hidden;
    }

    body.menu-open .header__nav,
    body.menu-open .page-header__nav {
        display: flex;
        position: fixed;
        inset: 0;
        z-index: 1100;
        background: rgba(34, 31, 31, 0.96);
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 80px 24px;
    }

    body.menu-open .header__nav .menu,
    body.menu-open .page-header__nav .menu {
        display: flex;
        flex-direction: column;
        gap: 22px;
        flex-wrap: nowrap;
        justify-content: center;
    }

    body.menu-open .header__nav a,
    body.menu-open .page-header__nav a {
        color: #fff;
        font-size: 15px;
    }

    body.menu-open .header__burger,
    body.menu-open .page-header .header__burger {
        position: fixed;
        top: 28px;
        right: 24px;
    }
}