@import url('https://fonts.googleapis.com/css2?family=Nata+Sans:wght@100..900&family=Nunito+Sans:wght@400;500;700&display=swap');

/* =========================================================
   Astana Tourism 2026 — новые блоки поверх старого шаблона
   Макет: 1920px, контейнер 1680px, боковые отступы 120px

   Старые стили шаблона грузятся на всех страницах, причём styles.css
   подключается повторно (через ShowHead) уже после этого файла, поэтому:
   - токены с префиксом --at- (в styles.css уже есть --blue и --slate);
   - селекторы начинаются с класса блока (.topbar, .header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer), так
     они специфичнее старых правил и не задевают старые страницы;
   - .container переопределяется только внутри новых блоков.
   ========================================================= */

:root{
  --at-blue:#0A5CDD;
  --at-ink:#0C0F24;
  --at-slate:#576F92;
  --at-slate-lt:#718DB7;
  --at-tint:#F4F9FE;
  --at-line:#EAF1FA;
  --at-yellow:#DDAC0A;
  --at-muted-day:#B5B6CB;
  --at-footer-input:#A1AEC2;

  --at-pad:120px;
  --at-maxw:1680px;
  --at-r:6px;

  --at-font:'Nata Sans','Segoe UI',system-ui,-apple-system,sans-serif;
}

/* ---------- фон главной ---------- */
/* Главная собрана из новых блоков, а старый styles.css красит html и body в #1b406c.
   Белим только главную: на остальных страницах старый белый текст пропал бы на белом.
   html тоже — у body height:100% (один экран), ниже первого экрана и в отступе
   над подвалом виден фон html */
html:has(body.home),
body.home{ background-color:#fff; }

/* ---------- база новых блоков ---------- */
/* старый styles.css задаёт body белый текст и Montserrat */
:is(.topbar, .header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer){
  font-family:var(--at-font);
  font-size:16px;
  line-height:1.3;
  color:var(--at-ink);
}
:where(.topbar, .header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) *,
:where(.topbar, .header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) *::before,
:where(.topbar, .header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) *::after{ box-sizing:border-box; }
:where(.topbar, .header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) :is(h1, h2, h3, p, ul){ margin:0; padding:0; }
:where(.topbar, .header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) ul{ list-style:none; }
:where(.topbar, .header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) a{ color:inherit; text-decoration:none; }
:where(.topbar, .header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) img{ display:block; max-width:100%; height:auto; }
:where(.topbar, .header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) :is(button, input){ margin:0; border:0; font:inherit; color:inherit; }
:where(.topbar, .header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) button{ padding:0; background:none; cursor:pointer; }
:where(.topbar, .header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) :is(input, button, a):focus-visible{
  outline:2px solid var(--at-blue);
  outline-offset:2px;
}

:is(.topbar, .header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .container{
  width:100%;
  max-width:calc(var(--at-maxw) + var(--at-pad) * 2);
  margin-inline:auto;
  padding-inline:var(--at-pad);
}

/* ---------- кнопки ---------- */
:is(.header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  height:60px;
  padding:0 13px;
  border-radius:var(--at-r);
  font-size:16px;
  font-weight:400;
  line-height:1;
  white-space:nowrap;
  transition:background-color .18s ease, color .18s ease, box-shadow .18s ease;
}
:is(.header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .btn--blue{ background:var(--at-blue); color:#fff; }
:is(.header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .btn--blue:hover{ background:#084ec0; }
:is(.header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .btn--light{ background:var(--at-tint); color:var(--at-ink); }
:is(.header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .btn--light:hover{ background:#e6f0fd; }
:is(.header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .btn--white{ background:#fff; color:var(--at-blue); }
:is(.header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .btn--white:hover{ background:#eef4fe; }
:is(.header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .btn--yellow{ background:var(--at-yellow); color:#1F1F1F; }
:is(.header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .btn--yellow:hover{ background:#c99a05; }
:is(.header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .btn--sm{ height:45px; padding:0 13px; }
:is(.header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .btn--ico{ padding:0 12px; gap:6px; }
:is(.header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .ico-arrow{ width:24px; height:24px; flex:none; }

/* =========================================================
   TOPBAR
   ========================================================= */
/* выше шапки, чтобы список языков ложился поверх неё */
.topbar{ position:relative; z-index:30; border-bottom:1px solid var(--at-line); background:#fff; }
.topbar .topbar__in{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:50px;
}
.topbar .topbar__slogan{ font-size:14px; }
.topbar .topbar__right{ display:flex; align-items:center; gap:10px; }

.topbar .socials{ display:flex; align-items:center; }
.topbar .socials--sm{ gap:10px; }
.topbar .socials--sm img{ width:24px; height:24px; }
.topbar .socials a{ display:block; transition:opacity .18s ease; }
.topbar .socials a:hover{ opacity:.75; }

/* старый styles.css красит кнопки в белый — цвет задаём явно */
.topbar .pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  height:34px;
  padding:0 12px;
  border-radius:var(--at-r);
  background:var(--at-tint);
  font-size:14px;
  color:var(--at-ink);
  white-space:nowrap;
  transition:background-color .18s ease;
}
.topbar .pill:hover{ background:#e6f0fd; }
.topbar .pill :is(img, svg){ width:18px; height:18px; flex:none; }
.topbar .pill svg{ color:var(--at-blue); }
.topbar a.pill{ font-size:15px; }

/* список языков: старый .header__langs рассчитан на тёмный фон */
.topbar .header__langs{
  top:calc(100% + 6px);
  left:auto;
  right:0;
  width:auto;
  min-width:100%;
  padding:6px;
  border-radius:var(--at-r);
  background:#fff;
  box-shadow:0 18px 40px rgba(9,42,94,.18);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
.topbar .header__lang{ margin:0; color:var(--at-ink); text-align:left; }
.topbar .header__lang a{
  display:block;
  padding:8px 12px;
  border-radius:4px;
  font-size:14px;
  color:var(--at-ink);
  white-space:nowrap;
}
.topbar .header__lang a:hover{ background:var(--at-tint); }
.topbar .header__lang--active a{ color:var(--at-blue); }

/* =========================================================
   HEADER
   ========================================================= */
/* header.header — специфичнее старого .header (отступы 92px сверху и 67px снизу) */
header.header{ position:relative; z-index:20; margin:0; padding:0; background:#fff; }
/* старый JS вешает .fixed при прокрутке — в новом дизайне шапка не липкая */
header.header.fixed{
  position:relative;
  top:auto;
  z-index:20;
  padding:0;
  background:#fff;
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  -webkit-animation:none;
  animation:none;
}

.header .header__in{ display:flex; align-items:center; height:86px; }

.header .nav{ margin-left:60px; }
/* пунктов меню больше и они длиннее макетных — промежуток меньше макетных 31px */
.header .nav__list{ display:flex; align-items:center; gap:18px; }
.header .nav__link{
  display:inline-flex;
  align-items:center;
  gap:14px;
  height:45px;
  padding:0 12px;
  border-radius:var(--at-r);
  font-size:16px;
  font-weight:400;
  white-space:nowrap;
  transition:background-color .18s ease, color .18s ease;
}
.header .nav__link:hover{ background:var(--at-tint); }
.header .nav__caret{
  width:0; height:0; flex:none;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:5px solid var(--at-slate);
}

/* подменю (bitrix:menu): открывается по наведению, как раньше */
.header .header__subs{
  top:0;
  z-index:30;
  width:280px;
  padding:6px;
  border-radius:var(--at-r);
  background:#fff;
  box-shadow:0 18px 40px rgba(9,42,94,.18);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
.header .header__subs::after{ display:none; }
.header .nav__list > li:hover .header__subs,
.header .nav__list > li:focus-within .header__subs{ opacity:1; visibility:visible; }
.header .header__subs .links__item{ margin:0; }
.header .header__subs .links__item a{
  display:block;
  margin:0;
  padding:10px 12px;
  border-radius:4px;
  font-size:16px;
  color:var(--at-ink);
  transition:background-color .18s ease;
}
.header .header__subs .links__item a:hover{ background:var(--at-tint); }

.header .header__actions{ margin-left:auto; display:flex; align-items:center; gap:10px; }

.header .burger{ display:none; color:var(--at-ink); }

/* =========================================================
   HERO
   ========================================================= */
/* Общий фон hero: стопы заданы в абсолютных px от верха секции */
.hero-bg{
  background:
    /* белый низ секции */
    linear-gradient(180deg, rgba(255,255,255,0) 743px, #fff 758px),
    /* мятное пятно справа сверху */
    radial-gradient(600px 600px at 92% 0%, rgba(167,239,184,.32) 0%, rgba(167,239,184,.30) 30%, rgba(167,239,184,0) 100%),
    /* голубое пятно слева снизу */
    radial-gradient(780px 950px at 180px 806px, rgba(10,92,221,.11) 0%, rgba(10,92,221,.075) 40%, rgba(10,92,221,0) 100%),
    #F4F9FE;
}
/* мягкая тень под хедером — только на главной */
.hero-bg--shadow{
  background:
    linear-gradient(180deg, rgba(120,135,150,.065) 0%, rgba(120,135,150,0) 16px),
    linear-gradient(180deg, rgba(255,255,255,0) 743px, #fff 758px),
    radial-gradient(600px 600px at 92% 0%, rgba(167,239,184,.32) 0%, rgba(167,239,184,.30) 30%, rgba(167,239,184,0) 100%),
    radial-gradient(780px 950px at 180px 806px, rgba(10,92,221,.11) 0%, rgba(10,92,221,.075) 40%, rgba(10,92,221,0) 100%),
    #F4F9FE;
}

.hero{ padding-top:87px; }
.hero .hero__in{ display:flex; align-items:stretch; gap:144px; }
/* колонка сжимаема: 854 = 1680 − 144 − 682 при полном контейнере */
.hero .hero__left{ flex:1 1 auto; width:auto; min-width:0; }

.hero .hero__title{
  width:1000px;
  max-width:none;
  font-size:96px;
  line-height:96px;
  font-weight:700;
}
.hero .hero__title span{ color:var(--at-blue); }

.hero .hero__feats{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:16px 32px;
  margin-top:55px;
}
.hero .hero__feats li{
  display:flex;
  align-items:center;
  gap:10px;
  height:24px;
  font-size:16px;
  color:var(--at-slate);
  white-space:nowrap;
}
.hero .hero__feats img{ width:24px; height:24px; flex:none; }

/* карточка статистики */
.hero .stats{
  margin-top:116px;
  display:grid;
  grid-template-columns:242px 292px auto;
  height:236px;
  padding:66px 61px 61px;
  border-radius:var(--at-r);
  background:linear-gradient(180deg, rgba(10,92,221,.075) 0%, rgba(10,92,221,.02) 100%);
  border:1px solid rgba(10,92,221,.09);
}
.hero .stats__num{ font-size:40px; line-height:40px; font-weight:700; white-space:nowrap; }
.hero .stats__label{
  margin-top:26px;
  font-size:16px;
  line-height:21px;
  color:var(--at-slate);
}
.hero .stats__item:nth-child(1) .stats__label{ max-width:150px; }
.hero .stats__item:nth-child(2) .stats__label{ max-width:170px; }
.hero .stats__item:nth-child(3) .stats__label{ max-width:205px; }

/* форма-заявка */
.hero .lead{
  flex:0 0 682px;
  width:682px;
  position:relative;
  overflow:hidden;
  padding:60px 61px;
  border-radius:var(--at-r) var(--at-r) 0 0;
  background:var(--at-blue);
}
.hero .lead::before,
.hero .lead::after{
  content:'';
  position:absolute;
  right:-180px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.16);
  pointer-events:none;
}
.hero .lead::before{ width:760px; height:760px; bottom:-330px; }
.hero .lead::after{ width:560px; height:560px; bottom:-230px; right:-120px; }

.hero .lead__inner{
  position:relative;
  z-index:1;
  padding:50px;
  border-radius:var(--at-r);
  background:rgba(255,255,255,.057);
}
.hero .lead__title{ font-size:24px; line-height:30px; font-weight:700; color:#fff; }
.hero .lead__sub{
  margin-top:12px;
  font-size:16px;
  line-height:20px;
  color:rgba(255,255,255,.86);
}
.hero .lead__form{ margin-top:31px; display:flex; flex-direction:column; gap:10px; }

.hero .field{
  display:flex;
  align-items:center;
  width:100%;
  height:53px;
  padding:0 18px;
  border-radius:var(--at-r);
  background:rgba(255,255,255,.216);
  color:#fff;
  font-size:16px;
  text-align:left;
}
.hero .field::placeholder{ color:rgba(255,255,255,.92); }
.hero .lead__submit{ margin-top:10px; height:61px; }

/* кастомный select */
.hero .select{ position:relative; }
.hero .select__btn{ justify-content:space-between; gap:12px; cursor:pointer; }
.hero .select__value{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hero .select__caret{
  width:0; height:0; flex:none;
  border-left:6px solid transparent;
  border-right:6px solid transparent;
  border-top:6px solid rgba(255,255,255,.85);
  transition:transform .18s ease;
}
.hero .select.is-open .select__caret{ transform:rotate(180deg); }
.hero .select__list{
  position:absolute;
  z-index:5;
  top:calc(100% + 6px);
  left:0; right:0;
  max-height:220px;
  overflow-y:auto;
  padding:6px;
  border-radius:var(--at-r);
  background:#fff;
  box-shadow:0 18px 40px rgba(9,42,94,.28);
  display:none;
}
.hero .select.is-open .select__list{ display:block; }
.hero .select__list li{
  padding:10px 12px;
  border-radius:4px;
  font-size:16px;
  color:var(--at-ink);
  cursor:pointer;
}
.hero .select__list li:hover{ background:var(--at-tint); }

/* =========================================================
   НАПРАВЛЕНИЯ
   ========================================================= */
.dirs{ margin-top:80px; }
.dirs .dirs__box{
  position:relative;
  height:629px;
  padding:74px;
  border-radius:var(--at-r);
  background:var(--at-slate);
  overflow:hidden;
}
/* пульс — встроенный SVG в разметке, лежит под текстом и слайдером */
.dirs .dirs__ekg{
  position:absolute;
  left:0;
  top:265px;
  width:683px;
  height:253px;
  max-width:none;
  pointer-events:none;
}
.dirs .dirs__left{ position:relative; z-index:1; width:609px; }
.dirs .dirs__title{ font-size:64px; line-height:64px; font-weight:700; color:#fff; }
.dirs .dirs__text{
  margin-top:20px;
  max-width:480px;
  font-size:20px;
  line-height:26px;
  color:#fff;
}
.dirs .dirs__left .btn{ margin-top:30px; height:61px; }
.dirs .dirs__left .btn--light{ color:var(--at-blue); }

/* квадратные стрелки слайдера (43px) */
.dirs .dirs__nav{
  position:absolute;
  left:74px;
  bottom:70px;
  display:flex;
  gap:6px;
  z-index:2;
}
/* фон кнопок — в CSS: во встроенных SVG только стрелка */
.dirs .sq-arrow{
  display:grid;
  place-items:center;
  width:43px;
  height:43px;
  flex:none;
  border-radius:var(--at-r);
  background:var(--at-blue);
  transition:opacity .18s ease;
}
.dirs .sq-arrow[data-dir-prev]{ background:var(--at-slate-lt); }
.dirs .sq-arrow svg{ width:24px; height:24px; }
.dirs .sq-arrow[disabled]{ opacity:.5; cursor:default; }
.dirs .sq-arrow:not([disabled]):hover{ opacity:.88; }

.dirs .dirs__slider{
  position:absolute;
  left:683px;
  top:75px;
  right:0;
  height:484px;
  overflow:hidden;
}
.dirs .dirs__track{
  display:flex;
  gap:16px;
  transition:transform .45s cubic-bezier(.4,0,.2,1);
}
/* карточка — ссылка на клинику направления */
.dirs .dcard{ display:block; flex:0 0 427px; width:427px; }
.dirs .dcard__img{ width:427px; height:376px; object-fit:cover; border-radius:var(--at-r); }
.dirs .dcard__foot{
  margin-top:11px;
  height:97px;
  padding:0 18px 0 26px;
  border-radius:var(--at-r);
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.dirs .dcard__name{ font-size:20px; line-height:26px; font-weight:500; }
.dirs .dcard__go{
  display:grid;
  place-items:center;
  flex:none;
  width:62px;
  height:62px;
  border-radius:var(--at-r);
  background:var(--at-blue);
  transition:opacity .18s ease;
}
.dirs .dcard__go svg{ width:34px; height:34px; }
.dirs .dcard:hover .dcard__go{ opacity:.88; }

/* =========================================================
   ЗАГОЛОВОК СЕКЦИИ
   ========================================================= */
:is(.top-clinics, .latest-news, .events) .shead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:40px;
}
:is(.top-clinics, .latest-news, .events) .shead__title{ font-size:64px; line-height:1.05; font-weight:700; }
:is(.top-clinics, .latest-news, .events) .shead__sub{ margin-top:17px; font-size:20px; line-height:26px; }
:is(.top-clinics, .latest-news, .events) .shead .btn{ flex:none; margin-top:3px; }
:is(.top-clinics, .latest-news, .events) .shead--tight{ align-items:center; }
:is(.top-clinics, .latest-news, .events) .shead--tight .btn{ margin-top:0; }

/* =========================================================
   КЛИНИКИ (шаблон news.list/clinics)
   ========================================================= */
/* .clinics занят страницей /clinics/, поэтому корень блока — .top-clinics */
.top-clinics{ padding-top:79px; }
.top-clinics .ccards{ display:flex; gap:30px; margin-top:81px; }
/* карточка — ссылка; колонкой, чтобы низ карточек совпадал при длинных названиях */
.top-clinics .ccard{ display:flex; flex-direction:column; flex:1 1 0; min-width:0; }
.top-clinics .ccard__media{ position:relative; border-radius:var(--at-r); overflow:hidden; }
.top-clinics .ccard__media img{ width:100%; height:408px; object-fit:cover; }
/* в макете 159px под строку рейтинга; рейтинга в инфоблоке нет — высота по содержимому */
.top-clinics .ccard__body{
  flex:1 0 auto;
  margin-top:10px;
  padding:25px;
  border-radius:var(--at-r);
  background:var(--at-tint);
}
.top-clinics .ccard__row{ display:flex; align-items:center; justify-content:space-between; gap:16px; }
.top-clinics .ccard__name{ font-size:20px; line-height:26px; font-weight:500; }
.top-clinics .ccard__go{ flex:none; }
.top-clinics .ccard__go img{ width:62px; height:62px; border-radius:var(--at-r); }
.top-clinics .ccard:hover .ccard__go img{ opacity:.88; }

/* =========================================================
   НОВОСТИ (шаблон news.list/news)
   ========================================================= */
/* .news занят старыми стилями, поэтому корень блока — .latest-news */
.latest-news{ padding-top:78px; }
.latest-news .ncards{ display:flex; gap:30px; margin-top:79px; }
.latest-news .ncard{
  position:relative;
  display:block;
  flex:1 1 0;
  min-width:0;
  height:249px;
  border-radius:var(--at-r);
  overflow:hidden;
}
.latest-news .ncard__img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
/* в макете затемнение «зашито» в картинки, у настоящих превью его нет —
   без градиента белый текст на светлом фото не читается */
.latest-news .ncard::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(12,15,36,0) 30%, rgba(12,15,36,.75) 100%);
  pointer-events:none;
}
.latest-news .ncard__body{
  position:absolute;
  z-index:1;
  left:26px;
  right:26px;
  bottom:29px;
  color:#fff;
}
/* длинные заголовки обрезаются многоточием, как в макете */
.latest-news .ncard__title{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
  overflow:hidden;
  font-size:16px;
  line-height:22px;
  font-weight:500;
}
.latest-news .ncard__date{ display:block; margin-top:19px; font-size:14px; color:rgba(255,255,255,.9); }
.latest-news .ncard:hover .ncard__img{ transform:scale(1.03); }

/* =========================================================
   ПАРТНЁРСТВО — по Figma: блок 1683×479, шрифт Nunito Sans.
   Вся композиция задана в долях ширины блока (cqw, контейнер — .container),
   поэтому на любом десктопе блок выглядит как макет, только меньше.
   В комментариях — размеры в макете
   ========================================================= */
.partner{ padding-top:80px; font-family:'Nunito Sans', var(--at-font); }
.partner .container{ container-type:inline-size; }
.partner .partner__box{
  position:relative;
  height:28.46cqw;                        /* 479 */
  padding:0 4.4cqw;                       /* 74 */
  border-radius:var(--at-r);
  background:var(--at-blue);
  overflow:hidden;
  display:flex;
  align-items:center;
}
/* Пульс рисуется здесь же SVG-картинкой (вектор 1683×258, 135 от верха блока),
   поэтому файл на сервере не нужен. viewBox расширен на 6 сверху и снизу под
   толщину линии. <img class="partner__ekg"> в разметке больше не нужен — прячем */
.partner .partner__box::before{
  content:'';
  position:absolute;
  left:0;
  top:7.66cqw;                            /* 135 − 6 */
  width:100%;
  height:16.04cqw;                        /* 258 + 12 */
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -6 1684 270' fill='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1684' y2='0' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='.5' stop-color='%230A5CDD'/%3E%3Cstop offset='1' stop-color='%2374AEFF'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0 132.8H1111.7L1133.5 78.9L1171.1 184.8L1191.1 132.8H1271.1L1318.3 0L1409.3 257.7L1453.4 132.8H1509.7L1531.3 78.4L1566.8 178.6L1586.7 132.8H1684' stroke='url(%23g)' stroke-width='10' stroke-linejoin='round'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
  pointer-events:none;
}
.partner .partner__ekg{ display:none; }
.partner .partner__text{ position:relative; z-index:2; }
.partner .partner__title{
  font-size:clamp(40px, 3.8cqw, 64px);    /* 64 */
  line-height:1;
  font-weight:700;
  color:#fff;
  white-space:nowrap;
}
.partner .partner__desc{
  max-width:27.5em;                       /* 550 */
  margin-top:1em;                         /* 20 */
  font-size:clamp(15px, 1.19cqw, 20px);   /* 20 */
  line-height:1.35;                       /* 27 */
  color:#fff;
}
.partner .partner__text .btn{
  height:auto;
  margin-top:1.875em;                     /* 30 */
  padding:1.25em .75em;                   /* 20 12, высота 62 */
  font-size:clamp(14px, .95cqw, 16px);    /* 16 */
  line-height:1.375;                      /* 22 */
  font-weight:500;
}
.partner .partner__pic{
  position:absolute;
  z-index:1;
  right:2.08cqw;                          /* 35 */
  bottom:0;
  width:41.24cqw;                         /* 694×480 */
  height:auto;
  max-width:none;
}

/* =========================================================
   КАЛЕНДАРЬ СОБЫТИЙ (данные — allSchedules из js/index.js)
   ========================================================= */
.events{ padding-top:78px; }

.events .cal{ margin-top:80px; }
.events .cal__switchers{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:38px;
}
.events .switcher{ display:flex; align-items:center; gap:17px; }
.events .switcher__vals{ display:flex; align-items:baseline; gap:16px; }
.events .switcher__val{
  font-size:24px;
  line-height:1;
  font-weight:500;
  color:var(--at-ink);
  opacity:.22;
  white-space:nowrap;
  transition:opacity .18s ease, color .18s ease;
}
.events .switcher__val:hover{ opacity:.5; }
.events .switcher__val.is-current{ color:var(--at-blue); opacity:1; cursor:default; }
.events .switcher__arw{
  width:0; height:0; flex:none;
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
  opacity:.4;
  transition:opacity .18s ease;
}
.events .switcher__arw:hover{ opacity:.75; }
.events .switcher__arw--prev{ border-right:8px solid var(--at-blue); }
.events .switcher__arw--next{ border-left:8px solid var(--at-blue); }

/* position:relative — от неё считается offsetLeft, когда лента подкручивается к выбранному дню */
.events .cal__days{
  position:relative;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  margin-top:45px;
}
.events .cal__day{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding-top:21px;
}
.events .cal__wd{
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  font-size:14px;
  line-height:1;
  color:var(--at-muted-day);
  white-space:nowrap;
}
.events .cal__num{
  position:relative;
  isolation:isolate;
  display:flex;
  align-items:center;
  justify-content:center;
  height:41px;
  font-size:24px;
  line-height:1;
  color:var(--at-muted-day);
}
.events .cal__num::before{
  content:'';
  position:absolute;
  z-index:-1;
  left:50%; top:50%;
  transform:translate(-50%,-50%);
  width:41px; height:41px;
  border-radius:50%;
  border:1px solid transparent;
}
.events .cal__day.is-future .cal__wd{ color:var(--at-ink); }
.events .cal__day.is-future .cal__num{ color:var(--at-ink); }
.events .cal__day.is-marked .cal__num{ color:var(--at-blue); }
.events .cal__day.is-marked .cal__num::before{ border-color:var(--at-blue); }
.events .cal__day.is-selected .cal__num{ color:#fff; }
.events .cal__day.is-selected .cal__num::before{ background:var(--at-blue); border-color:var(--at-blue); }
.events .cal__day:hover:not(.is-selected) .cal__num::before{ background:var(--at-tint); }

/* карточки событий; без ссылки карточка — div, у неё нет тени при наведении */
.events .ecards{ display:flex; gap:30px; margin-top:51px; }
.events .ecard{
  flex:1 1 0;
  min-width:0;
  height:173px;
  padding:22px;
  border-radius:var(--at-r);
  background:var(--at-tint);
  display:flex;
  gap:20px;
  transition:box-shadow .18s ease;
}
.events .ecard--accent{ background:var(--at-blue); color:#fff; }
.events a.ecard:hover{ box-shadow:0 12px 28px rgba(9,42,94,.14); }
/* в данных не фото, а логотипы разных пропорций — вписываем целиком на белую подложку */
.events .ecard__img{
  flex:none;
  width:243px;
  height:129px;
  padding:12px;
  object-fit:contain;
  background:#fff;
  border-radius:var(--at-r);
}
.events .ecard__body{ display:flex; flex-direction:column; min-width:0; }
.events .ecard__date{ margin-top:2px; font-size:14px; color:var(--at-blue); }
.events .ecard--accent .ecard__date{ color:#fff; }
/* названия длинные (часть — с <br> и описанием) — две строки, как в макете */
.events .ecard__title{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  margin-top:18px;
  font-size:20px;
  line-height:26px;
  font-weight:700;
}
.events .ecard__go{ margin-top:auto; }
.events .ecard__go svg{ width:24px; height:24px; color:var(--at-blue); }
.events .ecard--accent .ecard__go svg{ color:#fff; }
.events .ecards__empty{ font-size:16px; color:var(--at-slate); }

/* =========================================================
   КАРТА
   ========================================================= */
/* .map занят старыми стилями (страницы санаториев и достопримечательностей) */
.city-map{ padding-top:80px; }
.city-map .city-map__box{ border-radius:12px; overflow:hidden; }
.city-map .city-map__box iframe{ display:block; width:100%; height:651px; border:0; }

/* =========================================================
   ПОДВАЛ (footer.php)
   ========================================================= */
/* .footer и .footer__* заняты старыми стилями (и блоком .slash__menu в header.php) */
.site-footer{
  margin-top:80px;
  padding:80px 0 78px;
  background:var(--at-slate);
  color:#fff;
}
.site-footer .site-footer__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
}
.site-footer .site-footer__title{ font-size:48px; line-height:68px; font-weight:400; }

.site-footer .subscribe{ display:flex; flex:none; }
.site-footer .subscribe__input{
  width:287px;
  height:68px;
  padding:0 32px;
  border-radius:var(--at-r) 0 0 var(--at-r);
  background:var(--at-footer-input);
  color:#fff;
  font-size:20px;
}
.site-footer .subscribe__input::placeholder{ color:rgba(255,255,255,.85); }
.site-footer .subscribe__btn{
  width:150px;
  height:68px;
  border-radius:0 var(--at-r) var(--at-r) 0;
  background:var(--at-blue);
  color:#fff;
  font-size:20px;
  font-weight:500;
  transition:background-color .18s ease;
}
.site-footer .subscribe__btn:hover{ background:#084ec0; }

.site-footer .site-footer__divider{ height:1px; margin-top:41px; background:rgba(255,255,255,.15); }

.site-footer .site-footer__mid{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  margin-top:60px;
}
.site-footer .site-footer__logos{ display:flex; align-items:center; gap:32px; margin-left:10px; }
.site-footer .site-footer__logos a:first-child img{ width:122px; height:45px; }
.site-footer .site-footer__logos a:last-child img{ width:73px; height:30px; }
/* белой версии логотипа в ассетах нет — перекрашиваем цветную */
.site-footer .site-footer__logo-white{ filter:brightness(0) invert(1); }
.site-footer .site-footer__nav{ display:flex; align-items:center; gap:32px; font-size:14px; }
.site-footer .site-footer__nav a{ transition:opacity .18s ease; }
.site-footer .site-footer__nav a:hover{ opacity:.7; }

.site-footer .site-footer__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  margin-top:38px;
}
.site-footer .site-footer__copy{ font-size:14px; }
.site-footer .site-footer__end{ display:flex; align-items:center; gap:32px; }
.site-footer .socials{ display:flex; align-items:center; }
.site-footer .socials--lg{ gap:10px; }
.site-footer .socials--lg img{ width:34px; height:34px; }
.site-footer .socials a{ display:block; transition:opacity .18s ease; }
.site-footer .socials a:hover{ opacity:.75; }
/* подпись разработчика (в макете её нет): серый логотип на тёмном фоне — белым и приглушённо */
.site-footer .site-footer__dev img{
  width:90px;
  height:32px;
  filter:brightness(0) invert(1);
  opacity:.6;
  transition:opacity .18s ease;
}
.site-footer .site-footer__dev:hover img{ opacity:1; }

/* =========================================================
   АДАПТИВ
   ========================================================= */

@media (max-width:1900px){
  .header .nav{ margin-left:36px; }
  /* меню сайта длиннее макетного — вторая кнопка перестаёт помещаться уже здесь */
  .header .header__actions .btn--light{ display:none; }

  /* --- hero перестаёт быть фиксированным --- */
  .hero .hero__in{ gap:80px; }
  .hero .hero__title{ width:auto; }
  .hero .lead{ flex:0 0 620px; width:620px; padding:48px; }
  .hero .lead__inner{ padding:40px; }
  .hero .stats{ height:auto; grid-template-columns:repeat(3,1fr); gap:24px; padding:56px 48px; }
  .hero .stats__label{ max-width:none !important; }
}

@media (max-width:1750px){
  :root{ --at-pad:60px; }
}

@media (max-width:1560px){
  .header .nav{ margin-left:28px; }
  .header .nav__list{ gap:12px; }
  .header .nav__link{ padding:0 8px; }
}

@media (max-width:1500px){
  .hero .hero__title{ font-size:76px; line-height:80px; }
  .hero .hero__feats{ margin-top:44px; gap:24px; }
  .hero .stats{ margin-top:80px; }
  .hero .lead{ flex-basis:560px; width:560px; }

  .dirs .dirs__title{ font-size:52px; line-height:1.06; }
  .dirs .dirs__box{ height:auto; padding:56px; }
  .dirs .dirs__left{ width:44%; }
  .dirs .dirs__slider{ position:static; height:auto; margin-top:40px; }
  .dirs .dirs__nav{ position:static; margin-top:32px; }
  /* блок перестраивается (слайдер уходит под текст) — пульс прятался бы за карточками невпопад */
  .dirs .dirs__ekg{ display:none; }

  :is(.top-clinics, .latest-news, .events) .shead__title{ font-size:52px; line-height:1.06; }

  .site-footer .site-footer__title{ font-size:40px; line-height:1.2; }
}

/* мобильное меню: в макете с 1200px, но меню сайта шире макетного */
@media (max-width:1440px){
  .header .burger{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:44px;
    height:44px;
    margin-left:auto;
    order:3;
  }
  .header .burger span{ display:block; height:2px; background:currentColor; border-radius:2px; }

  .header .nav{
    order:4;
    display:none;
    width:100%;
    margin:0;
    padding:12px 0 20px;
  }
  .header .nav.is-open{ display:block; }
  .header .nav__list{ flex-direction:column; align-items:stretch; gap:4px; }
  .header .nav__link{ height:48px; padding:0 12px; }
  .header .nav__caret{ display:none; }
  /* подменю раскрыты прямо в списке: на тач-экранах нет hover */
  .header .header__subs{
    position:static;
    width:auto;
    padding:0 0 8px 12px;
    opacity:1;
    visibility:visible;
    background:none;
    box-shadow:none;
  }

  .header .header__in{ flex-wrap:wrap; height:auto; padding-block:14px; }
  .header .header__actions{ order:2; margin-left:16px; }
  .header .header__actions .btn--ico{ padding:0 16px; font-size:14px; }
  .header .header__actions .btn--ico span{ display:none; }
  .header .header__actions .btn--ico::after{ content:'Консультация'; }
}

@media (max-width:1300px){
  .hero .hero__title{ font-size:64px; line-height:68px; }
  .hero .lead{ flex-basis:500px; width:500px; padding:40px; }
  .hero .lead__inner{ padding:32px; }
  .hero .stats__num{ font-size:34px; line-height:36px; }

  .top-clinics .ccard__name{ font-size:18px; line-height:24px; }
  .top-clinics .ccard__go img{ width:48px; height:48px; }
}

@media (max-width:1200px){
  .topbar .topbar__slogan{ display:none; }
  .topbar .topbar__right{ margin-left:auto; }

  .hero .stats{ grid-template-columns:1fr; gap:28px; padding:36px; }
  .hero .stats__label{ margin-top:12px; }

  .dirs .dirs__left{ width:100%; }
  .dirs .dirs__text{ max-width:none; }

  .top-clinics .ccards{ flex-wrap:wrap; }
  .top-clinics .ccard{ flex:1 1 calc(50% - 15px); }
  .top-clinics .ccard__media img{ height:340px; }

  .latest-news .ncards{ flex-wrap:wrap; }
  .latest-news .ncard{ flex:1 1 calc(50% - 15px); }

  .events .ecards{ flex-direction:column; }
  .events .ecard{ height:auto; }
  /* календарь уезжает в горизонтальный скролл */
  .events .cal__days{
    justify-content:flex-start;
    gap:14px;
    overflow-x:auto;
    padding-bottom:10px;
    scrollbar-width:thin;
  }
  .events .cal__day{ flex:none; min-width:41px; }
}

@media (max-width:1024px){
  :root{ --at-pad:32px; }

  .hero{ padding-top:48px; }
  .hero .hero__in{ flex-direction:column; gap:40px; }
  .hero .hero__title{ font-size:clamp(34px,6.2vw,60px); line-height:1.06; }
  .hero .hero__feats{ gap:16px 24px; margin-top:32px; }
  .hero .stats{ margin-top:40px; padding:40px; }
  .hero .lead{
    flex:1 1 auto;
    width:100%;
    padding:32px;
    border-radius:var(--at-r);
  }
  .hero .lead__inner{ padding:28px; }
  .hero .lead::before,
  .hero .lead::after{ display:none; }

  /* лента уходит в нативную прокрутку со snap; стрелки листают её же */
  .dirs{ margin-top:56px; }
  .dirs .dirs__box{ padding:40px; }
  .dirs .dirs__title{ font-size:clamp(30px,5vw,52px); line-height:1.1; }
  .dirs .dirs__slider{
    margin-inline:-40px;
    padding-inline:40px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
  }
  .dirs .dirs__track{ transform:none !important; }
  .dirs .dcard{ scroll-snap-align:start; }

  .top-clinics{ padding-top:56px; }
  :is(.top-clinics, .latest-news, .events) .shead{ flex-direction:column; align-items:flex-start; gap:24px; }
  :is(.top-clinics, .latest-news, .events) .shead .btn{ margin-top:0; }
  :is(.top-clinics, .latest-news, .events) .shead__title{ font-size:clamp(30px,5vw,52px); line-height:1.1; }
  :is(.top-clinics, .latest-news, .events) .shead--tight{ align-items:flex-start; }
  .top-clinics .ccards{ margin-top:36px; }

  .latest-news{ padding-top:56px; }
  .latest-news .ncards{ margin-top:36px; }

  .partner{ padding-top:56px; }
  .partner .partner__title{ font-size:clamp(30px,5vw,52px); line-height:1.1; white-space:normal; }
  /* padding-bottom:0 => низ фото совпадает с низом баннера, провала нет */
  .partner .partner__box{ height:auto; padding:40px 40px 0; flex-direction:column; align-items:flex-start; }
  .partner .partner__text{ width:100%; max-width:none; }
  .partner .partner__desc{ max-width:none; }
  .partner .partner__pic{
    position:static;
    display:block;
    width:min(100%, 460px);
    height:auto;
    margin:8px auto 0;
  }
  /* фото уходит в поток под текст — пульс рисовался бы поверх него */
  .partner .partner__box::before{ display:none; }

  .events{ padding-top:56px; }
  .events .cal{ margin-top:48px; }
  .events .cal__switchers{ flex-wrap:wrap; gap:20px; }

  .city-map{ padding-top:56px; }
  .city-map .city-map__box iframe{ height:420px; }

  .site-footer{ margin-top:56px; padding:56px 0; }
  .site-footer .site-footer__top{ flex-direction:column; align-items:flex-start; gap:24px; }
  .site-footer .site-footer__title{ font-size:clamp(26px,4.4vw,40px); line-height:1.2; }
  .site-footer .subscribe{ width:100%; }
  /* min-width:0 — иначе intrinsic-ширина инпута (~222px) не даёт форме сжиматься */
  .site-footer .subscribe__input{ flex:1 1 auto; width:auto; min-width:0; padding:0 20px; font-size:16px; }
  .site-footer .subscribe__btn{ width:auto; padding:0 26px; font-size:16px; }
  .site-footer .site-footer__divider{ margin-top:32px; }
  .site-footer .site-footer__mid{ flex-direction:column; align-items:flex-start; gap:28px; margin-top:32px; }
  .site-footer .site-footer__logos{ margin-left:0; }
  .site-footer .site-footer__nav{ flex-wrap:wrap; gap:16px 24px; }
  .site-footer .site-footer__bottom{ flex-direction:column; align-items:flex-start; gap:24px; margin-top:32px; }
}

@media (max-width:768px){
  .hero .stats{ padding:28px; }

  .dirs .dcard{ flex-basis:320px; width:320px; }
  .dirs .dcard__img{ width:100%; height:290px; }
  .dirs .dcard__foot{ height:80px; padding:0 16px 0 20px; }
  .dirs .dcard__go{ width:48px; height:48px; }
  .dirs .dcard__go svg{ width:28px; height:28px; }

  .top-clinics .ccard{ flex:1 1 100%; }
  .top-clinics .ccard__media img{ height:300px; }
  .top-clinics .ccard__body{ padding:20px; }

  .latest-news .ncard{ flex:1 1 100%; height:230px; }

  .events .ecard{ flex-direction:column; }
  .events .ecard__img{ width:100%; height:180px; }
}

@media (max-width:560px){
  :root{ --at-pad:16px; }

  .topbar .topbar__in{ height:44px; }
  .topbar .pill span{ display:none; }
  .topbar .pill{ padding:0 10px; }

  .header .header__logo img{ width:104px; height:38px; }
  .header .header__actions{ margin-left:12px; }
  .header .header__actions .btn--ico{ padding:0 12px; font-size:13px; gap:4px; }
  .header .burger{ width:38px; }

  :is(.header, .hero, .dirs, .top-clinics, .latest-news, .partner, .events, .city-map, .site-footer) .btn{ height:52px; }
  .hero .hero__feats li{ font-size:15px; }

  .dirs .dirs__box{ padding:28px; }
  .dirs .dirs__slider{ margin-inline:-28px; padding-inline:28px; }

  .partner .partner__box{ padding:28px 28px 0; }
  .partner .partner__pic{ width:min(100%, 320px); margin-top:0; }

  .events .switcher__val{ font-size:20px; }
  .events .cal__num{ font-size:20px; }

  .city-map .city-map__box iframe{ height:320px; }

  .site-footer .site-footer__logos{ gap:20px; }
}

@media (max-width:400px){
  /* «Сентябрь Октябрь Ноябрь» в 20px не помещается в 288px контента */
  .events .cal__switchers{ gap:16px; }
  .events .switcher{ gap:10px; }
  .events .switcher__vals{ gap:10px; }
  .events .switcher__val{ font-size:16px; }
}
