/* ============================================================
   Прелоадер — чёрный экран с анимацией логотипа на время загрузки.
   ============================================================ */
#preloader {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: #0d0d0f;
  display: grid;
  place-items: center;
  transition: opacity 0.5s ease;
}
#preloader.is-hidden { opacity: 0; pointer-events: none; }
#preloader svg { width: min(220px, 45vw); height: auto; overflow: visible; }

#preloader .mark-1 {
  fill: none; stroke: #c7a165; stroke-width: 1.6;
  stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 100; stroke-dashoffset: 100;
  animation: preloaderDraw 0.8s cubic-bezier(.6,.05,.2,1) forwards;
}
#preloader .mark-2 {
  fill: none; stroke: #c7a165; stroke-width: 1.6;
  stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 100; stroke-dashoffset: 100;
  animation: preloaderDraw 0.65s cubic-bezier(.4,0,.2,1) 0.6s forwards;
}
#preloader .txt-left {
  fill: #fff; opacity: 0;
  transform: translateX(-14px);
  animation: preloaderAppear 0.7s cubic-bezier(.2,.7,.2,1) 1s forwards;
}
#preloader .txt-right {
  fill: #fff; opacity: 0;
  transform: translateX(14px);
  animation: preloaderAppear 0.7s cubic-bezier(.2,.7,.2,1) 1s forwards;
}
@keyframes preloaderDraw   { to { stroke-dashoffset: 0; } }
@keyframes preloaderAppear { to { opacity: 1; transform: translateX(0); } }

@media (prefers-reduced-motion: reduce) {
  #preloader .mark-1, #preloader .mark-2 { animation: none; stroke-dashoffset: 0; }
  #preloader .txt-left, #preloader .txt-right { animation: none; opacity: 1; transform: none; }
}

.services_wrap {
  padding: 60px 0;
  background: #000;
  color: #fff;
}

/* Offcanvas — мобильное меню */
#mobile-nav .mobile-nav__bar {
  background: #0a0a0a;
  width: 300px;
  padding: 26px 26px 34px;
  display: flex;
  flex-direction: column;
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
}
.mobile-nav__close { position: absolute; top: 18px; right: 18px; margin: 0; color: #fff; z-index: 2; }
.mobile-nav__menu a.uk-offcanvas-close { position: static; top: auto; right: auto; margin: 0; width: auto; height: auto; }
.mobile-nav__logo { max-width: 130px; margin: 8px 0 30px; }
.mobile-nav__logo img { width: 100%; display: block; }
.mobile-nav__menu { display: flex; flex-direction: column; }
.mobile-nav__menu a {
  padding: 15px 0;
  font-size: 16px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #e8e8e8;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.09);
  transition: color 0.2s ease;
}
.mobile-nav__menu a:hover { color: #c7a165; }
.mobile-nav__contacts { margin-top: auto; padding-top: 30px; }
.mobile-nav__label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.4);
  margin-bottom: 14px;
}
.mobile-nav__phone,
.mobile-nav__mail {
  display: block;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  transition: color 0.2s ease;
}
.mobile-nav__phone { font-size: 19px; margin-bottom: 8px; }
.mobile-nav__mail { font-size: 15px; font-weight: 400; color: #cbcbcb; }
.mobile-nav__phone:hover,
.mobile-nav__mail:hover { color: #c7a165; }

.block_title h3 {
  color: #fff;
  font-weight: 300;
  text-transform: none;
  letter-spacing: -0.4px;
  font-size: clamp(28px, 3.2vw, 40px);
  line-height: 1.06;
  position: relative;
  margin: 0;
}

.block_title h3::after {
    width: 40px;
    height: 1px;
    background: rgba(199, 161, 101, 0.4);
    content: '';
    position: absolute;
    left: 0;
    bottom: -16px;
}

.services_list__item a {
    color:#fff;
}

.intservices_wrap {
  padding: 60px 0;
  background: #000;
  color: #fff;
}

.intservices_list__item {
  position: relative;
  border: 1px solid #6f6f6f;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 20px !important;
  text-align: center;
  padding: 0 20px 10px;
}

.intservices_list__item a {
    color:#fff;
}

.intservices_list__item > img {
    border-radius: 10px;
}


.intservices_list__item-info {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    left: 0;
    padding: 80px 20px 20px;
    
    background: linear-gradient(
        to top right,
        rgba(0, 0, 0, 0.8) 0%,
        rgba(0, 0, 0, 0) 70%
    );
}

@media all and (max-width: 640px) {
    .intservices_list__item-info {
        padding: 20px;
    }
}

.intservices_list__item-info img {
    width: 50px;
    border-radius: 50%;
}

@media all and (max-width: 640px) {
    .intservices_list__item-info img {
        width: 30px;
    }
}

.intservices_list__item-title {
    margin-top: 10px;
    font-size: 1.125em;
    line-height: 1.3;
    font-size: 0.975em;
}

@media all and (max-width: 640px) {
    .intservices_list__item-title {
        font-size: 0.975em;
    }
}

.intservices_list__item-icon {
    text-align: center;
}

.intservices_list__item-icon img {
    max-width: 130px;
}

@media all and (max-width: 640px) {
    .intservices_list__item-icon img {
        max-width: 100%;
    }
}

.hrline_wrap {
  background: transparent;
}

.hrline {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, #303033 18%, #303033 82%, transparent 100%);
}

.cases_wrap {
  padding: 60px 0;
  background: #000;
}


.cases_list__item {
  border: 1px solid #6f6f6f;
  border-radius: 10px;
}

.cases_list__item-img {
  overflow: hidden;
  margin-bottom: 10px;
}

.cases_list__item-img img {
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    max-width: 100%;
}

.cases_list__item-title {
    padding: 10px 20px;
    color: #fff;
    line-height: 1.3;
}

.cases_list__item-title a {
    color: #fff;
    text-decoration: none;
}

.cases_list__item-description {
    line-height: 1.3;
    font-size: 0.825em;
    padding: 0 20px;
    color: #bebebe;
}

.cases_list__item-line {
  padding: 10px 20px 20px;
  line-height: 1.3;
}

.cases_list__item-line a {
  color: #fbac25;
  font-size: 0.825em;
}

.cases_list__item-line a {
  background-image: url(../img/icon_r.jpg);
  display: block;
  width: 100%;
  background-position: 100% 1px;
  background-repeat: no-repeat;
  background-size: 20px;
}

.logos_wrap {
  padding: 60px 0;
  background: #000;
}

.logos_list {
  padding: 0 20px;
}

.block_description {
  color: #959595;
  max-width: 250px;
  line-height: 1.3;
}

footer {
    padding: 60px 0;
    background: #000;
    border-top: 1px solid #343434;
    line-height: 1.3;
}

.footer_logo {
    width: 100%;
    max-width: 140px;
}

.footer_contact__icon {
    display: block;
    color: #c7a165;
    margin-right: 10px;
}
.footer_contact__icon svg {
    width: 24px;
    height: 24px;
    display: block;
}

.footer_contact {
    color: #f0f0f0;
    font-size: 0.925em;
}

.footer_contact a {
    color: #f0f0f0;
    text-decoration: none;
}

.footer_contact__phones { display: flex; flex-direction: column; gap: 4px; }

.footer_contact a:hover {
    color: #fff;
    text-decoration: none;
}

.footer_soc {
    display: flex;
    align-items: center;
    gap: 12px;
}
.footer_soc a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid rgba(199,161,101,0.4);
    color: #c7a165;
    text-decoration: none;
    font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.4px;
    transition: color 0.22s ease, border-color 0.22s ease, background 0.22s ease;
}
.footer_soc a svg {
    width: 19px;
    height: 19px;
    display: block;
}
.footer_soc a:hover {
    color: #fff;
    border-color: #c7a165;
    background: rgba(199,161,101,0.14);
}

.case_id {
    padding: 60px 0;
}

/* ============================================================
   Шаг 3: золото = только интерактив + один акцент на секцию.
   Декоративное золото приглушено; золото проявляется на hover.
   ============================================================ */
/* Крупные контурные иконки блока «Дополнительные услуги» (детально — Шаг 4) */
.intservices_list__item-icon img { filter: grayscale(0.65) brightness(0.78); opacity: 0.82; transition: filter 0.25s ease, opacity 0.25s ease; }
.intservices_list__item:hover .intservices_list__item-icon img { filter: none; opacity: 1; }

/* ============================================================
   Шаг 4: глубина фона + типографическая иерархия секций.
   Единый модуль: eyebrow -> крупный заголовок -> воздух -> контент.
   ============================================================ */
body { background: #0d0d0f; }

/* Микро-градации фона между секциями (почти-чёрный, едва заметная разница) */
.services_wrap    { background: #0d0d0f; padding: 88px 0; }
.intservices_wrap { background: #141416; padding: 88px 0; }
.cases_wrap       { background: #0d0d0f; padding: 88px 0; }
.logos_wrap       { background: #141416; padding: 80px 0; }
.feedback_wrap    { background-color: #0d0d0f; padding: 88px 0; }
footer            { background: #0d0d0f; }

/* Мягкое перо на стыках — блоки не стыкуются встык */
.services_wrap, .intservices_wrap, .cases_wrap, .logos_wrap, .feedback_wrap {
  position: relative;
  box-shadow: inset 0 44px 60px -60px rgba(0,0,0,0.75), inset 0 -44px 60px -60px rgba(0,0,0,0.75);
}

/* Надстрочник секции (в стиле hero) */
.block_eyebrow {
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.45);
  margin-bottom: 14px;
}
/* Акцентное слово заголовка — единственный смысловой золотой акцент на секцию */
.block_title h3 .block_accent {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 500;
  color: #c7a165;
  letter-spacing: 0;
}
.block_title h3 { font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif; }
.block_title { margin-bottom: 30px; }

/* Больше воздуха в карточках услуг (подписи не теснятся) */
.intservices_list__item-title { margin-top: 14px; }

/* Мобилка: компактнее паддинги секций, заголовок мельче — Шаг 1 не ломаем */
@media all and (max-width: 640px) {
  .services_wrap, .intservices_wrap, .cases_wrap, .feedback_wrap { padding: 52px 0; }
  .logos_wrap { padding: 46px 0; }
  .block_title { margin-bottom: 26px; }
  .block_title h3 { font-size: clamp(26px, 7vw, 32px); }
  .block_eyebrow { letter-spacing: 3px; margin-bottom: 10px; }
}


/* ============================================================
   Шаг 5: движение + переделка стоковых элементов.
   Hover — только десктоп (hover:hover); мобилка — :active-состояния.
   ============================================================ */
a { transition: color 0.22s ease; }

/* Единый hairline-бордер карточек + плавные переходы */
.services_list__item, .cases_list__item, .intservices_list__item {
  border-color: rgba(255,255,255,0.09);
  transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}
.services_list__item > a > img,
.cases_list__item-img img { transition: transform 0.5s ease; }

/* Доп. услуги: маленькая монохромная иконка, аккуратная карточка */
.intservices_list__item { padding: 30px 18px 24px; background: rgba(255,255,255,0.015); }
.intservices_list__item-icon img {
  max-width: 52px;
  filter: grayscale(1) brightness(1.7);
  opacity: 0.55;
  transition: filter 0.28s ease, opacity 0.28s ease, transform 0.28s ease;
}
.intservices_list__item-title { color: #cfcfcf; font-size: 1em; }

/* Плавное золотое подчёркивание текстовых ссылок */
.cases_list__item-title a,
.footer_contact a {
  background-image: linear-gradient(#c7a165, #c7a165);
  background-size: 0% 1px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: background-size 0.28s ease, color 0.22s ease;
  padding-bottom: 2px;
}
.cases_list__item-line a { transition: color 0.22s ease, background-position 0.28s ease; }

/* --- Hover-состояния (десктоп) --- */
@media (hover: hover) and (min-width: 641px) {
  .services_list__item:hover,
  .cases_list__item:hover {
    transform: translateY(-6px);
    border-color: rgba(199,161,101,0.5);
    box-shadow: 0 18px 42px -18px rgba(0,0,0,0.82), 0 0 0 1px rgba(199,161,101,0.14);
  }
  .services_list__item:hover > a > img,
  .cases_list__item:hover .cases_list__item-img img { transform: scale(1.113) translateY(var(--py, 0px)); }
  .intservices_list__item:hover {
    transform: translateY(-4px);
    border-color: rgba(199,161,101,0.4);
    box-shadow: 0 14px 30px -18px rgba(0,0,0,0.75);
  }
  .intservices_list__item:hover .intservices_list__item-icon img {
    filter: none; opacity: 1; transform: translateY(-2px);
  }
  .cases_list__item-title a:hover,
  .footer_contact a:hover { color: #c7a165; background-size: 100% 1px; }
  .cases_list__item-line a:hover { color: #c7a165; background-position: calc(100% + 5px) 1px; }
}

/* --- Tap-состояния (мобилка), раскладку Шага 1 не трогаем --- */
@media all and (max-width: 640px) {
  .services_list__item:active,
  .cases_list__item:active,
  .intservices_list__item:active {
    transform: scale(0.985);
    border-color: rgba(199,161,101,0.4);
  }
  .intservices_list__item-icon img { max-width: 46px; opacity: 0.7; }
}


/* ============================================================
   Шапка для внутренних страниц (case.html и т.п.) — на главной
   вместо шапки используется .th-hero со своим встроенным баром.
   ============================================================ */
header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 980;
  background: transparent;
  transition: background 0.3s ease, padding 0.3s ease, box-shadow 0.3s ease, -webkit-backdrop-filter 0.3s ease, backdrop-filter 0.3s ease;
}
header::before {
  content: "";
  position: absolute; left: 0; right: 0; top: 0; height: 150px;
  background: linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 100%);
  pointer-events: none; z-index: -1;
  transition: opacity 0.3s ease;
}
header.is-stuck {
  background: rgba(10,10,11,0.72);
  -webkit-backdrop-filter: blur(12px) saturate(1.1);
  backdrop-filter: blur(12px) saturate(1.1);
  box-shadow: inset 0 -1px 0 rgba(255,255,255,0.06), 0 10px 30px -20px rgba(0,0,0,0.9);
}
header.is-stuck::before { opacity: 0; }
header .uk-navbar-nav > li > a { min-height: auto; }

.brand-logo { display: block; width: 100%; height: auto; }
.header_logo { display: block; line-height: 0; width: 100%; max-width: 150px; }


/* Показ десктоп / мобайл шапки по брейкпоинту 960px */
.header_mob { display: none; }
@media all and (max-width: 959px) {
  header { padding: 14px 0; }
  header.is-stuck { padding: 10px 0; }
  .header_desk { display: none !important; }
  .header_mob {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }
  .header_mob .header_logo { max-width: 130px; margin: 0; }
}

/* Бургер (мобильная шапка внутренних страниц) */
.header_burger {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 46px;
  height: 46px;
  padding: 0 11px;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 6px;
  cursor: pointer;
  flex: 0 0 auto;
}
.header_burger span {
  display: block;
  height: 2px;
  width: 100%;
  background: #fff;
  border-radius: 2px;
  transition: background 0.2s ease;
}
.header_burger:hover { border-color: #c7a165; }
.header_burger:hover span { background: #c7a165; }

/* --- Десктоп-раскладка (>= 960px) --- */
@media all and (min-width: 960px) {
  header { padding: 22px 0; }
  header.is-stuck { padding: 13px 0; }
  .header_desk { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
  .header_logo { max-width: 122px; transition: max-width 0.3s ease; }
  header.is-stuck .header_logo { max-width: 108px; }

  .header_left { display: flex; align-items: center; gap: 24px; }
  .header_contacts { display: flex; flex-direction: column; gap: 3px; font-family: 'Manrope', sans-serif; line-height: 1.25; padding-left: 24px; border-left: 1px solid rgba(255,255,255,0.22); }
  .header_contacts a { text-decoration: none; letter-spacing: 0.02em; transition: color 0.2s ease; }
  .header_phone { color: #fff; font-size: 13px; font-weight: 600; }
  .header_mail { color: rgba(255,255,255,0.6); font-size: 12px; }
  .header_contacts a:hover { color: #c7a165; }

  .header_nav { display: flex; align-items: center; gap: 12px; }
  .header_nav a {
    display: inline-flex; align-items: center; padding: 7px 16px; border: 1px solid rgba(255,255,255,0.55); border-radius: 999px; background: transparent;
    font-family: 'Manrope', sans-serif; font-size: 13px; letter-spacing: 0.01em; color: #fff; text-decoration: none;
    transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
  }
  .header_nav a:hover { color: #141416; border-color: #c7a165; background: #c7a165; }
}


/* Фикс: единый плотный отступ под заголовком секции на всех блоках
   (перебиваем внешние .services_title/.intservices_title) */
.services_title.block_title,
.intservices_title.block_title,
.cases_title.block_title { margin-bottom: 30px; }
@media all and (max-width: 640px) {
  .services_title.block_title,
  .intservices_title.block_title,
  .cases_title.block_title { margin-bottom: 26px; }
}

/* Отступ между заголовком/фильтром кейсов и сеткой самих кейсов
   (иначе строка с табами вплотную примыкает к карточкам) */
.cases_list { margin-top: 40px; }
@media all and (max-width: 640px) {
  .cases_list { margin-top: 26px; }
}


/* ============================================================
   Шаг 8: секция «Обсудим ваше событие» — премиальный контакт-блок.
   Форма удалена. Телефон/соцсети — главные; реквизиты — самые тихие.
   ============================================================ */
.feedback_wrap { position: relative; overflow: hidden; background-image: none; }
.feedback_glow {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(58% 85% at 90% 18%, rgba(199,161,101,0.16), rgba(199,161,101,0) 60%);
}
.feedback_wrap > .uk-container { position: relative; z-index: 1; }
.contact_grid { align-items: flex-start; }

.contact_lead { margin: 20px 0 0; max-width: 300px; font-size: 16px; line-height: 1.55; color: #9c9c9c; }

.contact_card { display: flex; flex-direction: column; }
.contact_line {
  display: flex; flex-direction: column; gap: 5px;
  padding: 20px 0; text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  transition: padding-left 0.28s ease;
}
.contact_line:first-child { border-top: 1px solid rgba(255,255,255,0.08); }
.contact_line__label {
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 11px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase;
  color: rgba(255,255,255,0.4);
}
.contact_line--tel { gap: 2px; }
.contact_line--tel .contact_line__value { font-size: clamp(20px, 2.3vw, 30px); }
.contact_line__value {
  display: block; text-decoration: none;
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: clamp(26px, 3vw, 40px); font-weight: 300; letter-spacing: -0.5px;
  color: #f2f2f2; transition: color 0.2s ease;
}

.contact_soc { padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
.contact_soc__label {
  display: block; font-family: 'Manrope', sans-serif;
  font-size: 11px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase;
  color: rgba(255,255,255,0.4); margin-bottom: 14px;
}
.contact_soc__list { display: flex; gap: 12px; }
.soc_btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 54px; height: 54px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.18); color: rgba(255,255,255,0.62);
  text-decoration: none;
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 700; font-size: 15px; letter-spacing: 0.5px;
  transition: color 0.22s ease, border-color 0.22s ease, transform 0.22s ease;
}
.soc_btn svg { width: 22px; height: 22px; display: block; }
.soc_btn--max { font-size: 12px; }

.contact_meta { padding-top: 22px; }
.contact_addr { font-size: 14px; line-height: 1.5; color: #9c9c9c; margin-bottom: 9px; }
.contact_req { font-size: 12px; line-height: 1.5; color: #6a6a6a; letter-spacing: 0.2px; }

/* Hover — только десктоп (дисциплина золота: золото на hover) */
@media (hover: hover) and (min-width: 641px) {
  .contact_line:hover { padding-left: 10px; text-decoration: none; }
  .contact_line:hover .contact_line__value { color: #c7a165; text-decoration: none; }
  .soc_btn:hover { color: #c7a165; border-color: rgba(199,161,101,0.6); transform: translateY(-3px); text-decoration: none; }
}
/* Tap-состояния на мобилке */
.contact_line:active .contact_line__value { color: #c7a165; }
.soc_btn:active { color: #c7a165; border-color: rgba(199,161,101,0.6); }

/* Мобилка: одна колонка, крупные тап-цели */
@media all and (max-width: 640px) {
  .contact_lead { margin-top: 16px; max-width: none; }
  .contact_line { padding: 17px 0; }
  .contact_line__value { font-size: 27px; }
  .soc_btn { width: 58px; height: 58px; }
  .contact_soc__list { gap: 14px; }
}


/* ============================================================
   Шаг 9: композиционное разнообразие + глубина.
   ============================================================ */

/* Доп. услуги: заголовок по центру (смена ритма), лента с тонкими разделителями */
.intservices_wrap .block_title, .intservices_wrap .block_eyebrow { text-align: center; }
.intservices_wrap .block_title h3::after { left: 50%; transform: translateX(-50%); }
.intservices_wrap .intservices_list { margin-top: 4px; }
.intservices_wrap .intservices_list__item {
  border: none; border-radius: 0; background: transparent;
  box-shadow: none; margin-bottom: 0 !important; padding: 12px 16px 8px;
}
@media all and (min-width: 960px) {
  .intservices_list .uk-grid > div + div .intservices_list__item {
    border-left: 1px solid rgba(255,255,255,0.09);
  }
}
/* убрать подъём-hover рамки у ленты (нет карточки) — оставить только иконку */
@media (hover: hover) and (min-width: 641px) {
  .intservices_wrap .intservices_list__item:hover { transform: none; box-shadow: none; border-color: transparent; }
}


/* Тонкие крупные цифры-надстрочники за заголовком секции */
.block_title[data-num] { position: relative; }
.block_title[data-num]::before {
  content: attr(data-num);
  position: absolute; z-index: 0;
  top: -0.62em; left: -6px;
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 500; font-style: italic;
  font-size: clamp(90px, 12vw, 150px); line-height: 1;
  color: rgba(255,255,255,0.035);
  pointer-events: none; user-select: none;
}
.intservices_wrap .block_title[data-num]::before { left: 50%; transform: translateX(-50%); }
.block_title[data-num] > * { position: relative; z-index: 1; }

/* Мягкая золотая подсветка низа страницы (за секцией услуг) */
.services_wrap { position: relative; }
.services_wrap::after {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  right: -8%; top: 8%; width: 46%; height: 60%;
  background: radial-gradient(closest-side, rgba(199,161,101,0.10), rgba(199,161,101,0) 72%);
}
.services_wrap > .uk-container { position: relative; z-index: 1; }

@media all and (max-width: 640px) {
  .block_title[data-num]::before { font-size: 74px; top: -0.5em; }
}


/* ============================================================
   Шаг 10: блок «Кейсы» — приведение к языку карточек услуг.
   Затемнённое фото, единая типографика, тот же радиус/тень/hover,
   премиальные фильтр-табы (золото — только интерактивный акцент).
   ============================================================ */
/* Карточка — тёмная подложка, единый радиус и hairline как у услуг */
.cases_list__item {
  border: 1px solid rgba(255,255,255,0.09) !important;
  border-radius: 12px;
  overflow: hidden;
  background: #131315;
  display: flex; flex-direction: column;
}
/* Затемняющий градиент поверх фото (как в карточках услуг) */
.cases_list__item-img { position: relative; margin-bottom: 0; border-radius: 0; }
.cases_list__item-img::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(19,19,21,0) 20%, rgba(19,19,21,0.35) 52%, rgba(19,19,21,0.72) 80%, rgba(19,19,21,0.98) 100%);
}
.cases_list__item-img img {
  border-radius: 0 !important;
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: saturate(0.82) brightness(0.62) contrast(1.02);
  transition: transform 0.5s ease, filter 0.4s ease;
}
/* Единый типографический ритм подписи */
.cases_list__item-title {
  padding: 18px 20px 6px;
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1.05em; font-weight: 600; line-height: 1.3; color: #f2f2f2;
}
.cases_list__item-title a { color: #f2f2f2; }
.cases_list__item-description {
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 0.85em; line-height: 1.5; padding: 0 20px; color: #9c9c9c;
}
.cases_list__item-line { padding: 14px 20px 20px; margin-top: auto; }
/* «Подробнее о проекте» — золото как интерактивный акцент, стрелка тоньше */
.cases_list__item-line a {
  color: rgba(199,161,101,0.9);
  font-size: 0.8em; font-weight: 600; letter-spacing: 0.4px;
  background-size: 16px; background-position: 100% 2px;
}

/* --- Фильтр-табы: убрать золотую заливку/пилюли, тонкий premium-вид ---
   Размер/отступы/рамка зафиксированы для ЛЮБОГО состояния (ссылка, hover,
   active, focus) — !important нужен, чтобы перебить встроенные правила
   UIkit (.uk-subnav-pill > * > :first-child), у которых выше специфичность.
   Меняется только цвет (плавно) и golden underline у активного пункта. */
.cases_nav { display: flex; flex-wrap: wrap; gap: 6px 4px; margin: 0; padding: 0; }
.cases_nav > li { padding-left: 0 !important; margin: 0 !important; }
.cases_nav a,
.cases_nav a:link,
.cases_nav a:visited,
.cases_nav a:hover,
.cases_nav a:focus,
.cases_nav a:active,
.cases_nav .uk-active a {
  display: inline-block !important;
  box-sizing: border-box !important;
  border: none !important; border-radius: 0 !important; background: none !important;
  margin: 0 !important; padding: 6px 14px !important;
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: 12px !important; font-weight: 600 !important; letter-spacing: 0.6px !important;
  line-height: 1.4 !important; text-transform: none !important;
  position: relative; transform: none !important;
  transition: color 0.22s ease !important;
  outline: none;
}
.cases_nav a { color: rgba(255,255,255,0.5) !important; }
.cases_nav a:hover, .cases_nav a:focus { color: #fff !important; }
.cases_nav .uk-active a { color: #c7a165 !important; }
/* тонкое золотое подчёркивание активного */
.cases_nav .uk-active a::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 0; height: 1px;
  background: #c7a165;
}
.cases_nav a:first-child, .cases_nav > li:first-child a { padding-left: 0 !important; }
.cases_nav > li:first-child .uk-active a::after,
.cases_nav li:first-child.uk-active a::after { left: 0; }

/* Hover карточки кейса — точно как у услуг (подъём + зум + осветление фото) */
@media (hover: hover) and (min-width: 641px) {
  .cases_list__item:hover {
    transform: translateY(-6px);
    border-color: rgba(199,161,101,0.5) !important;
    box-shadow: 0 18px 42px -18px rgba(0,0,0,0.82), 0 0 0 1px rgba(199,161,101,0.14);
  }
  .cases_list__item:hover .cases_list__item-img img { transform: scale(1.113) translateY(var(--py, 0px)); filter: saturate(0.95) brightness(0.78) contrast(1.02); }
}
/* Мобилка: тап-цель у ссылки, ровные табы (фиксированный размер, без прыжка на hover) */
@media all and (max-width: 640px) {
  .cases_nav { gap: 4px 2px; }
  .cases_nav a,
  .cases_nav a:hover,
  .cases_nav a:focus,
  .cases_nav a:active,
  .cases_nav .uk-active a { padding: 6px 10px !important; font-size: 11px !important; }
}


/* ============================================================
   Шаг 11: сетка «Наши услуги» — карточки строго одинакового
   размера. Фото приглушено (ч/б, затемнено) по умолчанию,
   натуральный цвет проявляется на hover/tap.
   ============================================================ */
.services_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.services_list__item {
  position: relative;
  height: 192px;
  border: 1px solid rgba(255,255,255,0.09);
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 0 !important;
}
.services_list__item > a { display: block; height: 100%; }
.services_list__item > a > img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: grayscale(0.9) brightness(0.55) contrast(1.05);
  transition: filter 0.55s ease, transform 0.6s ease;
}
.services_list__item-info {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 20px 18px 16px;
  background: linear-gradient(to top, rgba(0,0,0,0.86) 0%, rgba(0,0,0,0.5) 42%, rgba(0,0,0,0.08) 78%, rgba(0,0,0,0) 100%);
}
.services_list__item-info img {
  order: -1; width: 32px; margin-bottom: 8px;
  filter: grayscale(1) brightness(1.6); opacity: 0.68;
  transition: filter 0.3s ease, opacity 0.3s ease;
}
.services_list__item-title { margin: 0; max-width: 100%; font-size: 0.92em; line-height: 1.3; }

@media (hover: hover) and (min-width: 641px) {
  .services_list__item:hover > a > img { filter: grayscale(0) brightness(1) contrast(1); transform: scale(1.06); }
  .services_list__item:hover .services_list__item-info img { filter: none; opacity: 1; }
}
.services_list__item:active > a > img { filter: grayscale(0) brightness(1) contrast(1); }
.services_list__item:active .services_list__item-info img { filter: none; opacity: 1; }

@media all and (min-width: 640px) {
  .services_list { grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .services_list__item { height: 250px; border-radius: 16px; }
  .services_list__item-info { padding: 26px 22px 20px; }
  .services_list__item-info img { width: 42px; margin-bottom: 10px; }
  .services_list__item-title { font-size: 1.05em; }
}
@media all and (min-width: 960px) {
  .services_list__item { height: 280px; }
}


/* ============================================================
   Шаг 13: «Наши партнёры» — монохром, единая высота, hover-glow.
   Логотипы белые на чёрном фоне JPG → гасим яркость и убираем
   чёрную подложку блендом, чтобы не было светлой полосы.
   ============================================================ */
.logos_wrap { background: #101012; }
.logos_list { padding: 0 24px; }
.logos_list .uk-slider-items > li {
  display: flex; align-items: center; justify-content: center;
  padding: 18px 20px;
}
.logos_list .uk-slider-items > li img {
  width: auto; max-width: 100%;
  height: 38px; object-fit: contain;
  mix-blend-mode: lighten;
  filter: grayscale(1) brightness(0.62);
  opacity: 0.6;
  transition: filter 0.3s ease, opacity 0.3s ease;
}
@media (hover: hover) and (min-width: 641px) {
  .logos_list .uk-slider-items > li img:hover {
    filter: grayscale(1) brightness(1);
    opacity: 1;
  }
}
.logos_list .uk-slider-items > li img:active {
  filter: grayscale(1) brightness(1); opacity: 1;
}

/* Стрелки карусели — приглушённый тон, золото на hover */
.logos_list [uk-slidenav-previous],
.logos_list [uk-slidenav-next] {
  color: rgba(255,255,255,0.34) !important;
  transition: color 0.22s ease;
}
.logos_list [uk-slidenav-previous]:hover,
.logos_list [uk-slidenav-next]:hover,
.logos_list [uk-slidenav-previous]:focus,
.logos_list [uk-slidenav-next]:focus { color: #c7a165 !important; }

/* Планшет: 3 логотипа в ряд, мобилка: 2 (базовые классы уже дают это) */
@media all and (max-width: 640px) {
  .logos_list { padding: 0 14px; }
  .logos_list .uk-slider-items > li { padding: 14px 12px; }
  .logos_list .uk-slider-items > li img { height: 30px; }
}


/* ============================================================
   Шаг 15: «Дополнительные услуги» — плотнее, карточки hairline,
   крупнее иконки, золотой акцент, меньше пустот.
   ============================================================ */
/* Сократить вертикальные пустоты секции + золотая подсветка-акцент */
.intservices_wrap { padding: 62px 0 !important; position: relative; overflow: hidden; }
.intservices_wrap::after {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  left: 50%; bottom: -30%; transform: translateX(-50%);
  width: 70%; height: 80%;
  background: radial-gradient(closest-side, rgba(199,161,101,0.10), rgba(199,161,101,0) 72%);
}
.intservices_wrap > .uk-container { position: relative; z-index: 1; }
.intservices_wrap .block_title { margin-bottom: 30px !important; }

/* Плотная сетка карточек */
.intservices_wrap .intservices_list .uk-grid { margin-left: -14px; }
.intservices_wrap .intservices_list .uk-grid > * { padding-left: 14px; }

/* Карточка: hairline-граница + фон чуть светлее секции */
.intservices_wrap .intservices_list__item {
  border: 1px solid rgba(255,255,255,0.09) !important;
  border-radius: 12px;
  background: rgba(255,255,255,0.028) !important;
  box-shadow: none;
  padding: 34px 20px 26px !important;
  margin-bottom: 14px !important;
  text-align: center;
  transition: transform 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease, background 0.28s ease;
}
/* карточки имеют собственную рамку — старые левые разделители Шага 9 гасим ниже */

/* Иконки — крупнее и выразительнее */
.intservices_wrap .intservices_list__item-icon { margin-bottom: 16px; }
.intservices_wrap .intservices_list__item-icon img {
  max-width: 64px !important;
  filter: grayscale(1) brightness(1.8);
  opacity: 0.62;
  transition: filter 0.28s ease, opacity 0.28s ease, transform 0.28s ease;
}
.intservices_wrap .intservices_list__item-title {
  font-size: 1.02em; color: #d6d6d6; line-height: 1.4; margin-top: 0;
}

/* Hover — подъём + золотой акцент рамки/иконки (десктоп) */
@media (hover: hover) and (min-width: 641px) {
  .intservices_wrap .intservices_list__item:hover {
    transform: translateY(-5px) !important;
    border-color: rgba(199,161,101,0.45) !important;
    background: rgba(199,161,101,0.05) !important;
    box-shadow: 0 16px 34px -20px rgba(0,0,0,0.8) !important;
  }
  .intservices_wrap .intservices_list__item:hover .intservices_list__item-icon img {
    filter: none; opacity: 1; transform: translateY(-2px);
  }
}
.intservices_wrap .intservices_list__item:active { border-color: rgba(199,161,101,0.4) !important; }

/* Планшет 2×2, мобилка 2×2 компактно */
@media all and (max-width: 640px) {
  .intservices_wrap { padding: 46px 0 !important; }
  .intservices_wrap .intservices_list__item { padding: 24px 14px 18px !important; }
  .intservices_wrap .intservices_list__item-icon img { max-width: 52px !important; }
  .intservices_wrap .intservices_list__item-title { font-size: 0.92em; }
}

@media all and (min-width: 960px) {
  .intservices_wrap .intservices_list .uk-grid > div + div .intservices_list__item { border-left: 1px solid rgba(255,255,255,0.09) !important; }
}


/* ============================================================
   Шаг 17: ЕДИНАЯ СИСТЕМА ОСВЕЩЕНИЯ (эталон — контактный блок).
   Тёплый золотой свет, 1 glow на секцию, направление сверху.
   Микро-градации фона + краевые виньетки. Только CSS-градиенты.
   ============================================================ */
/* Контекст наложения + отсечение вылетающих градиентов */
.services_wrap, .intservices_wrap, .cases_wrap, .logos_wrap, .feedback_wrap {
  position: relative; overflow: hidden;
}
.services_wrap > .uk-container,
.intservices_wrap > .uk-container,
.cases_wrap > .uk-container,
.logos_wrap > .uk-container,
.feedback_wrap > .uk-container { position: relative; z-index: 2; }

/* --- Краевая виньетка (объём) — ::before на тёмных секциях --- */
.services_wrap::before, .intservices_wrap::before, .cases_wrap::before,
.logos_wrap::before, .feedback_wrap::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(125% 105% at 50% 34%, rgba(0,0,0,0) 58%, rgba(0,0,0,0.42) 100%);
}

/* --- Тёплый золотой glow: один на секцию, из верхней зоны --- */
/* Услуги — за flagship-карточкой (верх-лево центральной зоны) */
.services_wrap::after {
  content: ""; position: absolute; z-index: 1; pointer-events: none;
  top: -6%; left: 6%; right: auto; width: 56%; height: 74%;
  background: radial-gradient(closest-side, rgba(199,161,101,0.11), rgba(199,161,101,0) 72%);
}
/* Доп. услуги — за центральным заголовком (верх-центр) */
.intservices_wrap::after {
  content: ""; position: absolute; z-index: 1; pointer-events: none;
  top: -12%; left: 50%; bottom: auto; transform: translateX(-50%);
  width: 62%; height: 66%;
  background: radial-gradient(closest-side, rgba(199,161,101,0.10), rgba(199,161,101,0) 70%);
}
/* Кейсы — за карточками (верх-право) */
.cases_wrap::after {
  content: ""; position: absolute; z-index: 1; pointer-events: none;
  top: -8%; right: -4%; width: 54%; height: 66%;
  background: radial-gradient(closest-side, rgba(199,161,101,0.09), rgba(199,161,101,0) 72%);
}
/* Партнёры — тихий тёплый след (верх-центр), самый слабый */
.logos_wrap::after {
  content: ""; position: absolute; z-index: 1; pointer-events: none;
  top: -14%; left: 50%; transform: translateX(-50%); width: 60%; height: 60%;
  background: radial-gradient(closest-side, rgba(199,161,101,0.06), rgba(199,161,101,0) 72%);
}
/* Контакты — эталон: тёплый угловой свет (верх-право) */
.feedback_glow {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(80% 150% at 92% 6%, rgba(199,161,101,0.13), rgba(199,161,101,0.06) 34%, rgba(199,161,101,0) 68%);
}

/* --- Микро-градации фона: соседние секции чуть отличаются --- */
.services_wrap    { background: #0d0d0f; }
.intservices_wrap { background: #141417 !important; }
.cases_wrap       { background: #0e0e10; }
.logos_wrap       { background: #131316; }
.feedback_wrap    { background-color: #0d0d0f; }


/* ============================================================
   СТРАНИЦА КЕЙСА (case.html) — наследует тёмную тему, золото,
   Manrope + Playfair, систему света и анимации главной.
   ============================================================ */
.case-main { background: #0d0d0f; }

/* Верхний блок: отступ под fixed-хедер + заголовок */
.case_head { position: relative; overflow: hidden; padding: 140px 0 44px; background: #0d0d0f; }
.case_head::after {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  top: -20%; right: -4%; width: 52%; height: 90%;
  background: radial-gradient(closest-side, rgba(199,161,101,0.10), rgba(199,161,101,0) 72%);
}
.case_head > .uk-container { position: relative; z-index: 1; }

/* Хлебные крошки / возврат */
.case_back {
  display: inline-flex; align-items: center; gap: 9px;
  font-family: 'Manrope', -apple-system, sans-serif;
  font-size: 12px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
  color: rgba(255,255,255,0.5); text-decoration: none;
  transition: color 0.22s ease, gap 0.22s ease; margin-bottom: 26px;
}
.case_back__arrow { color: #c7a165; font-size: 15px; line-height: 1; transition: transform 0.22s ease; }
.case_back:hover { color: #fff; }
.case_back:hover .case_back__arrow { transform: translateX(-4px); }

.case_eyebrow {
  font-family: 'Manrope', -apple-system, sans-serif;
  font-size: 12px; font-weight: 600; letter-spacing: 4px; text-transform: uppercase;
  color: rgba(255,255,255,0.45); margin-bottom: 16px;
}
.case_title {
  font-family: 'Manrope', -apple-system, sans-serif;
  margin: 0; font-weight: 300; letter-spacing: -0.6px; line-height: 1.05;
  font-size: clamp(34px, 5vw, 62px); color: #f4f4f4;
}
.case_title .case_title__accent {
  font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-weight: 500;
  color: #c7a165; letter-spacing: 0;
}
.case_tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.case_tag {
  font-family: 'Manrope', sans-serif; font-size: 11px; font-weight: 600;
  letter-spacing: 1.4px; text-transform: uppercase; color: rgba(255,255,255,0.6);
  border: 1px solid rgba(255,255,255,0.14); border-radius: 100px; padding: 7px 15px;
}

/* Вводное фото — moody-обработка как карточки услуг/кейсов */
.case_hero_wrap { padding: 0 0 8px; background: #0d0d0f; }
.case_hero {
  position: relative; border-radius: 14px; overflow: hidden;
  border: 1px solid rgba(255,255,255,0.08);
  aspect-ratio: 21 / 9;
}
.case_hero img { width: 100%; height: 100%; object-fit: cover; display: block;
  filter: saturate(0.82) brightness(0.66) contrast(1.02); }
.case_hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(13,13,15,0) 42%, rgba(13,13,15,0.55) 100%),
              radial-gradient(120% 120% at 50% 30%, rgba(0,0,0,0) 58%, rgba(0,0,0,0.4) 100%);
}

/* Тело: Задачи + KPI */
.case_body { position: relative; overflow: hidden; padding: 60px 0 30px; background: #0d0d0f; }
.case_body::after {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  top: 4%; left: 2%; width: 46%; height: 70%;
  background: radial-gradient(closest-side, rgba(199,161,101,0.07), rgba(199,161,101,0) 72%);
}
.case_body > .uk-container { position: relative; z-index: 1; }
.case_block__eyebrow {
  font-family: 'Manrope', sans-serif; font-size: 12px; font-weight: 600;
  letter-spacing: 4px; text-transform: uppercase; color: rgba(255,255,255,0.45);
  margin-bottom: 12px;
}
.case_block__title {
  font-family: 'Manrope', sans-serif; margin: 0 0 26px; font-weight: 300;
  font-size: clamp(24px, 2.6vw, 34px); line-height: 1.1; letter-spacing: -0.3px; color: #f2f2f2;
}
.case_block__title .accent { font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-weight: 500; color: #c7a165; }

/* Список задач — тонкие золотые маркеры + hairline-разделители */
.case_tasks { list-style: none; margin: 0; padding: 0; }
.case_tasks li {
  position: relative; padding: 16px 0 16px 30px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  font-family: 'Manrope', sans-serif; font-size: 16px; line-height: 1.5; color: #cdcdcd;
}
.case_tasks li:first-child { border-top: 1px solid rgba(255,255,255,0.08); }
.case_tasks li::before {
  content: ""; position: absolute; left: 2px; top: 24px;
  width: 7px; height: 7px; background: #c7a165; transform: rotate(45deg);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.case_tasks li:hover { color: #ededed; }
.case_tasks li:hover::before { transform: rotate(45deg) scale(1.25); box-shadow: 0 0 12px rgba(199,161,101,0.7); }

/* KPI — премиальная панель */
.case_kpi {
  border: 1px solid rgba(255,255,255,0.09); border-radius: 14px;
  background: rgba(255,255,255,0.025); padding: 30px 30px 32px;
}
.case_kpi__lead { font-family: 'Manrope', sans-serif; font-size: 17px; line-height: 1.62; color: #c4c4c4; margin: 0; }
.case_kpi__stats { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
.case_kpi__stat { flex: 1 1 130px; padding: 18px 20px; border: 1px solid rgba(255,255,255,0.08); border-radius: 10px; background: rgba(199,161,101,0.04); }
.case_kpi__num { font-family: 'Manrope', sans-serif; font-weight: 300; font-size: 34px; letter-spacing: -1px; color: #c7a165; line-height: 1; }
.case_kpi__label { font-family: 'Manrope', sans-serif; font-size: 12px; letter-spacing: 0.4px; color: #9a9a9a; margin-top: 8px; line-height: 1.4; }

/* Галерея-слайдер */
.case_gallery { position: relative; overflow: hidden; padding: 40px 0 70px; background: #0d0d0f; }
.case_gallery__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 26px; }
.case_gallery__nav { display: flex; gap: 8px; }
.case_gallery__nav a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; border-radius: 100px;
  border: 1px solid rgba(255,255,255,0.18); color: rgba(255,255,255,0.6);
  transition: color 0.22s ease, border-color 0.22s ease, background 0.22s ease;
}
.case_gallery__nav a:hover { color: #c7a165; border-color: rgba(199,161,101,0.6); background: rgba(199,161,101,0.06); }
.case_gallery__item {
  position: relative; border-radius: 12px; overflow: hidden;
  border: 1px solid rgba(255,255,255,0.08); aspect-ratio: 4 / 3; background: #131315;
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.case_gallery__item a { display: block; width: 100%; height: 100%; }
.case_gallery__item img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: saturate(0.82) brightness(0.66) contrast(1.02);
  transition: transform 0.3s ease, filter 0.3s ease;
}
.case_gallery__item:hover img { transform: scale(1.04); filter: saturate(0.9) brightness(0.72) contrast(1.02); }
.case_gallery__item::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 3;
  background: linear-gradient(180deg, rgba(13,13,15,0) 55%, rgba(13,13,15,0.5) 100%);
}
@media (hover: hover) and (min-width: 641px) {
  .case_gallery__item:hover { transform: translateY(-5px); border-color: rgba(199,161,101,0.4); box-shadow: 0 18px 40px -20px rgba(0,0,0,0.85); }
}

@media all and (max-width: 959px) {
  .case_head { padding: 108px 0 34px; }
  .case_hero { aspect-ratio: 16 / 9; }
}
@media all and (max-width: 640px) {
  .case_head { padding: 96px 0 26px; }
  .case_body { padding: 44px 0 20px; }
  .case_kpi { padding: 24px 20px 26px; }
  .case_tasks li { font-size: 15px; padding-left: 26px; }
  .case_gallery { padding: 30px 0 52px; }
  .case_gallery__nav a { width: 42px; height: 42px; }
  .case_hero { aspect-ratio: 4 / 3; }
}


/* ============================================================
   ПАРТНЁРЫ — бесконечная лента логотипов (22, продублированы ×2
   для бесшовного цикла). По умолчанию приглушённый монохром,
   на hover — цветная версия + пауза прокрутки.
   ============================================================ */
.partners { position: relative; z-index: 2; }
.partners_title { text-align: center; margin-bottom: 48px !important; }
.partners_title .block_title h3::after,
.partners_title.block_title h3::after { left: 50%; transform: translateX(-50%); }

.partners_marquee {
  width: 100%;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
/* Ширина = auto (max-content) — сумма двух дорожек, поэтому translateX(-50%)
   двигает ровно на одну дорожку и цикл получается бесшовным. Раньше анимация
   висела на самом .partners_marquee (width:100%), и -50% считался от его
   узкой видимой ширины, а не от реальной ширины контента — отсюда обрыв
   после первых 4-5 логотипов. */
.partners_marquee__inner {
  display: flex;
  width: max-content;
  animation: partnersScroll 45s linear infinite;
  will-change: transform;
  backface-visibility: hidden;
}
.partners_marquee:hover .partners_marquee__inner { animation-play-state: paused; }
.partners_track { display: flex; align-items: center; flex-shrink: 0; }
@keyframes partnersScroll {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .partners_marquee__inner { animation: none; }
}

.plogo {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  flex: 0 0 auto;
  width: 216px; height: 132px;
  padding: 0 22px;
}
.plogo img {
  position: absolute;
  max-width: 80%; max-height: 72px; width: auto; height: auto;
  object-fit: contain;
  transition: opacity 0.26s ease;
}
.plogo__w { opacity: 0.78; }
.plogo__c { opacity: 0; }
@media (hover: hover) and (min-width: 641px) {
  .plogo:hover .plogo__w { opacity: 0; }
  .plogo:hover .plogo__c { opacity: 1; }
}
/* Tap на мобилке — цвет по нажатию */
.plogo:active .plogo__w { opacity: 0; }
.plogo:active .plogo__c { opacity: 1; }

/* Оптический баланс: выравниваем по плотности, а не по рамке (увеличено ~1.7×) */
/* тяжёлые/широкие — уменьшить */
.plogo:has(img[src*="plogo_eurochem"]) img,
.plogo:has(img[src*="plogo_amazone"]) img,
.plogo:has(img[src*="plogo_grimme"]) img,
.plogo:has(img[src*="plogo_kverneland"]) img,
.plogo:has(img[src*="plogo_gazprom"]) img,
.plogo:has(img[src*="plogo_sibur"]) img,
.plogo:has(img[src*="plogo_bayer"]) img { max-height: 58px; }
/* тонкие/мелкие — подтянуть */
.plogo:has(img[src*="plogo_syngenta"]) img,
.plogo:has(img[src*="plogo_agroeco"]) img,
.plogo:has(img[src*="plogo_sber_"]) img,
.plogo:has(img[src*="plogo_samokat"]) img,
.plogo:has(img[src*="plogo_kws"]) img,
.plogo:has(img[src*="plogo_pirelli"]) img { max-height: 86px; }
.plogo:has(img[src*="plogo_t2"]) img,
.plogo:has(img[src*="plogo_x5"]) img { max-height: 96px; }

/* Логотипы с мелкими дескрипторами: показываем крупнее, чтобы читалась
   основная часть, а мелкий подтекст ушёл в спокойный фон */
.plogo:has(img[src*="plogo_uralchem"]) img,
.plogo:has(img[src*="plogo_agroterra"]) img,
.plogo:has(img[src*="plogo_moybiznes"]) img,
.plogo:has(img[src*="plogo_sberzdorovie"]) img,
.plogo:has(img[src*="plogo_agroexpert"]) img { max-height: 80px; }

@media all and (max-width: 959px) {
  .partners_marquee__inner { animation-duration: 32s; }
  .plogo { width: 176px; height: 112px; padding: 0 18px; }
  .plogo img { max-height: 60px; }
  .plogo:has(img[src*="plogo_eurochem"]) img,
  .plogo:has(img[src*="plogo_amazone"]) img,
  .plogo:has(img[src*="plogo_grimme"]) img,
  .plogo:has(img[src*="plogo_kverneland"]) img,
  .plogo:has(img[src*="plogo_gazprom"]) img,
  .plogo:has(img[src*="plogo_sibur"]) img,
  .plogo:has(img[src*="plogo_bayer"]) img { max-height: 48px; }
  .plogo:has(img[src*="plogo_syngenta"]) img,
  .plogo:has(img[src*="plogo_agroeco"]) img,
  .plogo:has(img[src*="plogo_sber_"]) img,
  .plogo:has(img[src*="plogo_samokat"]) img,
  .plogo:has(img[src*="plogo_kws"]) img,
  .plogo:has(img[src*="plogo_pirelli"]) img { max-height: 70px; }
  .plogo:has(img[src*="plogo_t2"]) img,
  .plogo:has(img[src*="plogo_x5"]) img { max-height: 78px; }
  .plogo:has(img[src*="plogo_uralchem"]) img,
  .plogo:has(img[src*="plogo_agroterra"]) img,
  .plogo:has(img[src*="plogo_moybiznes"]) img,
  .plogo:has(img[src*="plogo_sberzdorovie"]) img,
  .plogo:has(img[src*="plogo_agroexpert"]) img { max-height: 64px; }
}
@media all and (max-width: 640px) {
  .partners_title { margin-bottom: 30px !important; }
  .partners_marquee__inner { animation-duration: 25s; }
  .plogo { width: 140px; height: 92px; padding: 0 14px; }
  .plogo img { max-height: 50px; }
  /* на мобилке сразу цветные — hover недоступен */
  .plogo__w { opacity: 0; }
  .plogo__c { opacity: 1; }
  .plogo:has(img[src*="plogo_eurochem"]) img,
  .plogo:has(img[src*="plogo_amazone"]) img,
  .plogo:has(img[src*="plogo_grimme"]) img,
  .plogo:has(img[src*="plogo_kverneland"]) img,
  .plogo:has(img[src*="plogo_gazprom"]) img,
  .plogo:has(img[src*="plogo_sibur"]) img,
  .plogo:has(img[src*="plogo_bayer"]) img { max-height: 40px; }
  .plogo:has(img[src*="plogo_syngenta"]) img,
  .plogo:has(img[src*="plogo_agroeco"]) img,
  .plogo:has(img[src*="plogo_sber_"]) img,
  .plogo:has(img[src*="plogo_samokat"]) img,
  .plogo:has(img[src*="plogo_kws"]) img,
  .plogo:has(img[src*="plogo_pirelli"]) img { max-height: 58px; }
  .plogo:has(img[src*="plogo_t2"]) img,
  .plogo:has(img[src*="plogo_x5"]) img { max-height: 64px; }
  .plogo:has(img[src*="plogo_uralchem"]) img,
  .plogo:has(img[src*="plogo_agroterra"]) img,
  .plogo:has(img[src*="plogo_moybiznes"]) img,
  .plogo:has(img[src*="plogo_sberzdorovie"]) img,
  .plogo:has(img[src*="plogo_agroexpert"]) img { max-height: 54px; }
}

/* ============================================================
   ЭТАП 3 — Reveal при скролле (fade-in + лёгкий подъём).
   Срабатывает один раз (JS снимает наблюдение после появления).
   Полностью отключён при prefers-reduced-motion: reduce — элемент
   .js-reveal добавляется скриптом только если движение разрешено,
   поэтому без этого медиа-условия ничего не потребуется откатывать.
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  .js-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.65s ease-out, transform 0.65s ease-out;
  }
  .js-reveal.is-visible { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   ЭТАП 3 — Лёгкий параллакс-дрейф фото в карточках услуг/кейсов.
   --py задаётся скриптом (только десктоп, только без reduced-motion).
   Небольшой запас zoom (scale 1.05 → 1.113 на hover) нужен, чтобы
   дрейф не обнажал край фото; тот же приём, что и в hero Ken Burns.
   Блок живёт внутри уже существующего hover-only медиа-условия —
   на мобильных/тач эти правила не применяются вообще.
   ============================================================ */
@media (hover: hover) and (min-width: 641px) {
  .services_list__item > a > img,
  .cases_list__item-img img { transform: scale(1.05) translateY(var(--py, 0px)); }
}

/* ============================================================
   HERO — фоновое видео + геометрические маски (ТУЛС ИВЕНТ)
   ============================================================ */
@font-face { font-family: 'Actay Wide'; src: url('../fonts/ActayWide-Bold.otf') format('opentype'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Actay'; src: url('../fonts/Actay-Regular.otf') format('opentype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Carolina'; src: url('../fonts/ofont.ru_Carolina.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }

.th-hero {
  --gold: #c7a165;
  --gold-line: #c7a165;
  position: relative;
  height: calc(90vh + 20px);
  min-height: calc(90vh + 20px);
  background: #0d0d0f;
  color: #fff;
  overflow: hidden;
  font-family: 'Actay Wide', 'Manrope', sans-serif;
  isolation: isolate;
}

/* ---- СЛОЙ 1: видео-контейнер (правая часть) ---- */
.th-mask { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.th-mask__video-box { position: absolute; top: 0; bottom: 0; right: 0; left: 38%; overflow: hidden; }
.th-mask__poster, .th-mask__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.th-mask__poster { z-index: 1; }
.th-mask__video { z-index: 2; }

/* ---- СЛОЙ 3: маски-треугольники поверх видео ---- */
.th-mask__wedge { position: absolute; inset: 0; z-index: 4; background: #0d0d0f; opacity: 1; pointer-events: none; }
.th-mask__wedge--1 { clip-path: polygon(33% -50%, 65% 50%, 33% 165%); }
.th-mask__wedge--2 { clip-path: polygon(calc(100% + 150px) -50%, calc(68% + 150px) 50%, calc(100% + 150px) 165%); }
.th-mask__wedge--brown {
  z-index: 5;
  background: linear-gradient(to top, #6e4525, #805535);
  clip-path: polygon(calc(100% + 190px) -50%, calc(68% + 190px) 50%, calc(100% + 190px) 165%);
}
.th-mask__wedge--tint {
  z-index: 7;
  background: linear-gradient(to top, #7a5031, #946949);
  opacity: 0.4;
  clip-path: polygon(calc(37% - 45px) -20%, calc(71% + 45px) -20%, calc(54% + 50px) calc(78% - 105px));
}
.th-mask__wedge--tint2 {
  z-index: 7;
  background: linear-gradient(to top, #7a5031, #946949);
  opacity: 0.4;
  clip-path: polygon(calc(57% + 155px) -20%, calc(91% + 295px) -20%, calc(74% + 200px) calc(78% - 105px));
}

/* мягкое затемнение под навигацией */
.th-mask__edge { position: absolute; inset: 0; z-index: 5; pointer-events: none; background:
    linear-gradient(180deg, #0d0d0f 0%, rgba(13,13,15,0) 11%),
    linear-gradient(0deg, #0d0d0f 0%, rgba(13,13,15,0.55) 22%, rgba(13,13,15,0) 46%); }

/* ---- внутренняя раскладка ---- */
.th-wrap { position: relative; z-index: 8; display: flex; flex-direction: column; height: calc(90vh - 76px); min-height: calc(90vh - 76px); padding-top: 42px; padding-bottom: 54px; gap: 24px; }

.th-bar { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.th-bar__left { display: flex; align-items: center; gap: 30px; }

.th-logo { display: inline-flex; align-items: center; text-decoration: none; }
.th-logo img { display: block; height: 64px; width: auto; }

.th-contacts { display: flex; flex-direction: column; gap: 3px; font-family: 'Manrope', sans-serif; line-height: 1.25; padding-left: 30px; border-left: 1px solid rgba(255,255,255,0.22); }
.th-contacts a { text-decoration: none; letter-spacing: 0.02em; transition: color 0.2s ease; }
.th-contacts__phone { color: #fff; font-size: 14px; font-weight: 600; }
.th-contacts__mail { color: rgba(255,255,255,0.6); font-size: 12.5px; }
.th-contacts a:hover { color: var(--gold); }

/* навигация-пилюли */
.th-nav ul { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; margin: 0; padding: 0; }
.th-nav a {
  display: inline-flex; align-items: center; padding: 7px 16px; border: 1px solid rgba(255,255,255,0.55); border-radius: 999px; background: transparent;
  font-family: 'Manrope', sans-serif; font-size: 13px; letter-spacing: 0.01em; color: #fff; text-decoration: none;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}
.th-nav a:hover { color: #141416; border-color: #c7a165; background: #c7a165; }
.th-burger { display: none; width: 50px; height: 50px; border: 1px solid var(--gold-line); border-radius: 12px; background: transparent; align-items: center; justify-content: center; flex-direction: column; gap: 5px; cursor: pointer; }
.th-burger span { display: block; width: 22px; height: 2px; background: var(--gold); }

/* заголовок */
.th-body { flex: 1; min-height: 0; display: flex; align-items: center; }
.th-title {
  margin: 0; max-width: 50%; font-family: 'Actay Wide', sans-serif; font-weight: 700;
  font-size: clamp(26px, 3.3vw, 50px); line-height: 0.71; letter-spacing: -0.015em; color: #f5f2ec; text-wrap: balance;
}
.th-title__script { font-family: 'Carolina', cursive; font-weight: 400; letter-spacing: 0; font-size: 1.12em; color: #f4efe6; padding: 0 0.06em; }
.th-title__script--big { display: inline-block; font-size: 2.25em; line-height: 1; }

/* нижний блок: контактные иконки */
.th-foot { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.th-ic {
  position: relative; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: none; border-radius: 0;
  color: var(--gold); text-decoration: none; transition: color 0.25s ease;
}
.th-ic::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; transition: inset 0.25s ease;
  background:
    linear-gradient(currentColor,currentColor) top left / 11px 1.5px,
    linear-gradient(currentColor,currentColor) top left / 1.5px 11px,
    linear-gradient(currentColor,currentColor) top right / 11px 1.5px,
    linear-gradient(currentColor,currentColor) top right / 1.5px 11px,
    linear-gradient(currentColor,currentColor) bottom left / 11px 1.5px,
    linear-gradient(currentColor,currentColor) bottom left / 1.5px 11px,
    linear-gradient(currentColor,currentColor) bottom right / 11px 1.5px,
    linear-gradient(currentColor,currentColor) bottom right / 1.5px 11px;
  background-repeat: no-repeat;
}
.th-ic:hover { color: #fff; }
.th-ic:hover::before { inset: -4px; }
.th-ic svg { width: 18px; height: 18px; }

/* ---- планшет ---- */
@media all and (max-width: 1100px) {
  .th-mask__video-box { left: 34%; }
  .th-title { max-width: 50%; }
}
@media all and (max-width: 960px) {
  .th-hero { height: auto; min-height: auto; }
  .th-wrap { height: auto; min-height: auto; padding-top: 26px; padding-bottom: 40px; gap: 30px; }
  .th-nav { display: none; }
  .th-contacts { display: none; }
  .th-burger { display: inline-flex; }
  .th-mask__video-box { left: 0; }
  .th-mask__video { display: block; }
  .th-mask__wedge--1 { clip-path: polygon(0% -50%, 37.4% 50%, 0% 150%); }
  .th-mask__wedge--2 { clip-path: polygon(100% -50%, 78% 50%, 100% 150%); }
  .th-mask__wedge--brown { clip-path: polygon(calc(100% + 40px) -50%, calc(78% + 40px) 50%, calc(100% + 40px) 150%); }
  .th-mask__wedge--tint { clip-path: polygon(calc(-5% - 55px) -20%, calc(52% + 55px) -20%, calc(24% + 20px) calc(65% - 20px)); }
  .th-mask__wedge--tint2 { clip-path: polygon(calc(15% + 165px) -20%, calc(72% + 305px) -20%, calc(44% + 240px) calc(65% - 20px)); }
  .th-mask__edge {
    background:
      linear-gradient(0deg, #0d0d0f 3%, rgba(13,13,15,0.5) 44%, rgba(13,13,15,0.12) 100%),
      linear-gradient(90deg, rgba(13,13,15,0.5) 0%, rgba(13,13,15,0) 58%);
  }
  .th-body { min-height: 60vh; }
  .th-title { max-width: 100%; line-height: 0.92; }
  .th-title__script--big { font-size: 1.7em; }
}
@media all and (max-width: 640px) {
  .th-title { font-size: clamp(30px, 9vw, 46px); line-height: 1.29; }
  .th-title__script--big { font-size: 2.6em; margin-bottom: 0.08em; }
  .th-foot { gap: 10px; }
  .th-ic { width: 38px; height: 38px; }
}

/* ============================================================
   Кастомный курсор: точка (мгновенно) + кольцо (lerp-догон)
   ============================================================ */
body, a, button, input, textarea, select, label { cursor: none; }
@media (hover: none) { * { cursor: auto; } }
.cursor-dot, .cursor-ring {
  position: fixed; top: 0; left: 0;
  pointer-events: none; z-index: 100000;
  border-radius: 100px; will-change: transform;
}
.cursor-dot {
  width: 6px; height: 6px;
  margin-left: -3px; margin-top: -3px;
  background: #c7a165;
}
.cursor-ring {
  width: 32px; height: 32px;
  margin-left: -16px; margin-top: -16px;
  border: 1px solid rgba(199,161,101,0.7);
  transition: width 0.25s ease, height 0.25s ease,
              margin 0.25s ease, background-color 0.25s ease,
              border-color 0.25s ease;
}
.cursor-ring.is-active {
  width: 54px; height: 54px;
  margin-left: -27px; margin-top: -27px;
  background: rgba(199,161,101,0.12);
  border-color: rgba(199,161,101,0.5);
}
@media (hover: none) { .cursor-dot, .cursor-ring { display: none; } }
