/* Посадочная «Развитие операционного маркетинга» (макет Димы, Figma 2095:277:
   десктоп 1600 + мобилка 440). Каркас — crm-launch.css: заголовки, карточки,
   кнопки, темная секция, кейсы, CTA, FAQ, модалка. Здесь только то, чего
   на «Запуске CRM» нет, и отступы этого макета: между блоками 160, заголовок
   блока → контент 80. */

.ops {
  --crm-sec-pad: 80px;
}

/* ==================== ХИРО ==================== */

.ops-hero {
  padding-bottom: 0;
}

/* 920, а не 895 из макета: на сайте TikTok Sans чуть шире фигмовского,
   и «на себя» иначе падает на вторую строку. */
.ops-hero__title {
  max-width: 920px;
}

/* Экспорт из Figma: рука с монетами (2134:196) поверх ромбовидного паттерна
   (2095:662), паттерн растворяется к краям. Кадр 680×510 взят с запасом на
   хвосты паттерна, сама рука — 532×399 с отступом 7px сверху, как в макете. */
.ops-hero__img {
  width: 680px;
  max-width: 100%;
  height: auto;
  margin-top: 16px;
}

/* ==================== ПРОБЛЕМЫ ==================== */

/* Паттерн под рукой тает еще ~100px ниже картинки, поэтому сверху отбивка
   меньше обычной — визуально от руки до заголовка те же 160. */
.ops-problems {
  padding: 60px 0 160px;
}

/* Три карточки 456 в первом ряду и две по 692 во втором. */
.ops-problems__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
  margin-top: var(--crm-head-gap);
}

.ops-problems__grid> :nth-child(-n+3) {
  grid-column: span 2;
}

.ops-problems__grid> :nth-child(n+4) {
  grid-column: span 3;
}

.ops-problem {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 24px;
  border-radius: var(--crm-radius);
  background: #EBEBEB;
}

.ops-problem__ic {
  flex: none;
  width: 90px;
  height: 80px;
}

.ops-problem__text {
  font-size: 20px;
  font-weight: 400;
  line-height: 1.35;
  color: #000;
}

/* ==================== ТЁМНЫЙ БЛОК ==================== */

.ops-dark {
  padding: 160px 0;
  background-image: url(/assets/services/ops/dark-bg.webp);
}

.ops-trust__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: var(--crm-head-gap);
}

.ops-trust__grid .crm-card__body {
  gap: 24px;
}

/* Строка на 7px шире колонки из-за той же разницы шрифтов: пусть заходит
   в паддинг карточки, а не переносит одно слово на третью строку. */
@media (min-width: 1441px) {
  .ops-nowrap {
    white-space: nowrap;
  }
}

/* ---------- Оплата за результат ---------- */

/* --k масштабирует надпись с завитком: на мобилке она та же, только 0.764
   от десктопной (Figma 2148:8094). */
.ops-pay {
  --k: 1;
  position: relative;
  isolation: isolate;
  display: flex;
  gap: 24px;
  margin-top: 80px;
  border-radius: var(--crm-radius);
  overflow: hidden;
  background: #33200E;
  color: #fff;
}

.ops-pay__bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 1399px;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
}

.ops-pay__bg::before {
  content: "";
  position: absolute;
  left: -877px;
  top: -36px;
  width: 1483px;
  height: 263px;
  background: #FFB437;
  mix-blend-mode: color;
  opacity: .57;
}

.ops-pay__glow {
  position: absolute;
  left: -77px;
  top: -117px;
  width: 442px;
  height: 329px;
  background: url(/assets/services/ops/glow.svg) center/100% 100% no-repeat;
  mix-blend-mode: plus-lighter;
}

.ops-pay__art {
  position: relative;
  flex: none;
  width: calc(513px * var(--k));
  height: 172px;
  overflow: hidden;
}

.ops-pay__w1,
.ops-pay__w2 {
  position: absolute;
  line-height: 1.35;
  white-space: nowrap;
}

.ops-pay__w1 {
  left: calc(43px * var(--k));
  top: calc(25px * var(--k));
  font-size: calc(50.16px * var(--k));
  font-weight: 500;
  color: #fff;
}

/* Завиток лежит между словами: прикрывает низ «Оплаты», а «за результат»
   идет поверх него. Геометрия — центр, размер и поворот из макета. Размытие
   и прозрачность подобраны сверкой с рендером Figma: blur(10.9px) из
   экспорта в браузере мылит сильнее, чем в Figma. */
.ops-pay__swirl {
  position: absolute;
  left: calc(-130.98px * var(--k));
  top: calc(221px * var(--k));
  width: calc(1401.085px * var(--k));
  height: calc(287.197px * var(--k));
  max-width: none;
  transform: translate(-50%, -50%) rotate(-19.11deg);
  filter: blur(calc(5.45px * var(--k)));
  opacity: .7;
}

.ops-pay__w2 {
  left: calc(131px * var(--k));
  top: calc(64px * var(--k));
  font-size: calc(56.544px * var(--k));
  font-weight: 600;
  font-style: italic;
}

.ops-pay__body {
  position: relative;
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  padding: 30px 24px;
}

.ops-pay__text {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ops-pay__title {
  font-size: 24px;
  font-weight: 500;
  line-height: 1.35;
}

.ops-pay__sub {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.35;
  opacity: .5;
}

.ops-pay .link-more {
  line-height: 1.35;
}

/* ---------- Кейсы и CTA ---------- */

.ops-results {
  margin-top: 160px;
}

.ops-cta {
  margin-top: 80px;
  min-height: 140px;
  padding: 26px 60px 26px 50px;
  background: #33200E;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

/* ==================== КАЖДЫЙ МЕСЯЦ ==================== */

.ops-month {
  padding: 160px 0 var(--crm-sec-pad);
}

.ops-month__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 24px;
  margin-top: var(--crm-head-gap);
}

.ops-month__card {
  position: relative;
  isolation: isolate;
  height: 228px;
  padding: 24px;
  border-radius: var(--crm-radius);
  overflow: hidden;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* Подложка из макета: кадр 338×430, сдвинутый на 121 вверх, в нем текстура
   на 84% со своим поворотом у каждой карточки и градиент в режиме color. */
.ops-month__bg {
  position: absolute;
  left: 0;
  top: -121px;
  width: 338px;
  height: 430.412px;
  overflow: hidden;
  isolation: isolate;
  background: #000;
}

.ops-month__bg img {
  position: absolute;
  max-width: none;
  object-fit: cover;
  opacity: .84;
}

.ops-month__bg::after,
.ops-banner__bg::after {
  content: "";
  position: absolute;
  background: var(--crm-gradient);
  mix-blend-mode: color;
}

.ops-month__bg::after {
  left: -680px;
  top: -790px;
  width: 1602px;
  height: 2076px;
}

.ops-month__card--1 img {
  left: 0;
  top: -142px;
  width: 550px;
  height: 742px;
  transform: scaleX(-1);
}

.ops-month__card--2 img {
  left: -166px;
  top: -170px;
  width: 552px;
  height: 746px;
  transform: scaleY(-1);
}

.ops-month__card--3 img {
  left: 0;
  top: -114px;
  width: 344.445px;
  height: 465px;
  transform: rotate(180deg);
}

/* Повернутая на -135° текстура 475×642 по центру квадрата 790 (-167; -191). */
.ops-month__card--4 img,
.ops-month__card--5 img {
  left: -9.77px;
  top: -117.27px;
  width: 475.224px;
  height: 641.553px;
  transform: rotate(-135deg);
}

.ops-month__text {
  position: relative;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.15;
  color: #fff;
}

/* ==================== ПРОЦЕССЫ И ОТЧЕТНОСТЬ ==================== */

.ops-reports {
  padding: var(--crm-sec-pad) 0 120px;
}

.ops-reports__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: var(--crm-head-gap);
}

.ops-report {
  gap: 24px;
}

.ops-report__img {
  width: 100%;
  height: 280px;
  object-fit: cover;
  border-radius: 8px;
  background: #F2EFEA;
}

/* ==================== БАННЕР ==================== */

/* Картинка вылезает над карточкой на 78px, поэтому сверху отбивка 200 - 78. */
.ops-banner {
  padding: 80px 0 var(--crm-sec-pad);
}

.ops-banner__card {
  position: relative;
  min-height: 318px;
  border-radius: var(--crm-radius);
}

.ops-banner__bg {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  isolation: isolate;
  background: #000;
}

.ops-banner__bg img {
  position: absolute;
  left: -136px;
  top: -740px;
  width: 1568px;
  height: 2116px;
  max-width: none;
  object-fit: cover;
  opacity: .84;
  transform: rotate(180deg);
}

.ops-banner__bg::after {
  left: 0;
  top: -902px;
  width: 1581px;
  height: 2076px;
}

.ops-banner__body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  max-width: 801px;
  padding: 43px 50px 43px;
}

.ops-banner__text {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ops-banner__title {
  font-size: 36px;
  font-weight: 500;
  line-height: 1.15;
  color: #fff;
}

.ops-banner__sub {
  font-size: 20px;
  font-weight: 400;
  line-height: 1.35;
  color: #fff;
  opacity: .5;
}

.ops-banner__img {
  position: absolute;
  z-index: 1;
  right: 0;
  top: -78px;
  width: 534px;
  height: auto;
  pointer-events: none;
}

/* ==================== FAQ ==================== */

.ops .faq-body p+p,
.ops .faq-body ul+p {
  margin-top: 12px;
}

.ops .faq-body ul {
  margin: 8px 0 0;
  padding-left: 22px;
  list-style: disc;
}

.ops .faq-body li {
  font-size: 16px;
  line-height: 1.45;
  color: #1D2D2C;
}

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

/* Переносы, которые есть только в мобильном макете. */
.ops-br-m {
  display: none;
}

@media (max-width: 1400px) {
  .ops-banner__body {
    max-width: calc(100% - 440px);
  }

  .ops-banner__img {
    width: 440px;
    top: -50px;
  }
  /* Переносы в описаниях карточек рассчитаны на колонку 284px. */
  .ops-trust__grid .crm-card__text br {
    display: none;
  }
}

@media (max-width: 1300px) {
  .ops-month__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 1100px) {
  .ops {
    --crm-sec-pad: 70px;
  }

  .ops-problems {
    padding-bottom: 140px;
  }

  .ops-problems__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .ops-problems__grid> :nth-child(n) {
    grid-column: span 1;
  }

  .ops-problems__grid> :last-child {
    grid-column: span 2;
  }

  .ops-dark {
    padding: 120px 0;
  }

  .ops-trust__grid,
  .ops-reports__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .ops-results {
    margin-top: 120px;
  }

  .ops-month {
    padding-top: 140px;
  }

  .ops-banner__body {
    max-width: 60%;
  }

  .ops-banner__img {
    width: 400px;
    top: -40px;
  }

  .ops-br-d {
    display: none;
  }
}

@media (max-width: 860px) {
  .ops-pay {
    flex-direction: column;
  }

  .ops-pay__bg {
    width: 100%;
  }

  .ops-pay__body {
    padding: 0 24px 30px;
  }

  .ops-cta {
    padding: 30px 24px;
  }

  .ops-banner__body {
    max-width: none;
    padding: 180px 24px 30px;
  }

  .ops-banner__img {
    width: 300px;
    top: -60px;
    right: 50%;
    transform: translateX(50%);
  }

  .ops-banner .crm-btn--yellow {
    width: 100%;
  }
}

@media (max-width: 640px) {
  .ops {
    --crm-sec-pad: 50px;
  }

  .ops-hero__img {
    width: 100%;
    margin-top: 8px;
  }

  .ops-problems {
    padding: 30px 0 80px;
  }

  .ops-problems__grid {
    grid-template-columns: 1fr;
  }

  .ops-problems__grid> :last-child {
    grid-column: span 1;
  }

  .ops-problem__text {
    font-size: 16px;
  }

  .ops-dark {
    padding: 100px 0;
  }

  /* Ленты: правила .crm-scroller из crm-launch.css, но display у сеток
     задан здесь, ниже по каскаду, поэтому возвращаем flex явно. */
  .ops-trust__grid,
  .ops-reports__grid {
    display: flex;
  }

  .ops-trust__grid .crm-ico {
    width: 24px;
    height: 24px;
  }

  .ops-br-m {
    display: inline;
  }

  .ops-trust__grid .crm-card__text br {
    display: inline;
  }

  /* Мобилка по макету 2148:8094: надпись сверху, текст под ней. */
  .ops-pay {
    --k: .764;
    flex-direction: column;
    /* 61 от низа карточек, минус 4px нижнего паддинга ленты */
    margin-top: 57px;
  }

  .ops-pay__bg {
    width: 100%;
  }

  .ops-pay__glow {
    left: -249.3px;
    top: -242.3px;
    width: 640.6px;
    height: 504.6px;
    background-image: url(/assets/services/ops/glow-m.svg);
  }

  .ops-pay__art {
    display: block;
    width: 100%;
    height: 157px;
  }

  .ops-pay__body {
    padding: 0 24px 30px;
  }

  .ops-results {
    margin-top: 100px;
  }

  .ops-cta {
    margin-top: 60px;
  }

  .ops-cta .crm-btn--yellow {
    min-height: 87px;
  }

  .ops-month {
    padding-top: 100px;
  }

  .ops-month__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .ops-month__card {
    padding: 24px 16px;
  }

  .ops-month__card--5 {
    grid-column: span 2;
  }

  .ops-month__card--5 .ops-month__bg {
    top: -155px;
    width: 100%;
    height: 499px;
  }

  .ops-month__text {
    font-size: 18px;
  }

  .ops-reports {
    padding-bottom: 80px;
  }

  .ops-reports__grid>.ops-report {
    flex-basis: 332px;
  }

  .ops-report .crm-card__title {
    font-size: 18px;
  }

  /* Картинка над карточкой: 275×236, по центру, вылезает на 117px. */
  .ops-banner {
    padding-top: 119px;
  }

  .ops-banner__body {
    padding: 129px 24px 30px;
  }

  .ops-banner__img {
    width: 275px;
    top: -117px;
  }

  .ops-banner__bg img {
    left: -57px;
    top: -201.1px;
    width: 662px;
    height: 893.7px;
    transform: rotate(174.45deg);
  }

  .ops-banner__bg::after {
    left: -1008px;
    top: -1804px;
    width: 3162px;
    height: 4152px;
  }

  .ops-banner__title {
    font-size: 24px;
  }

  .ops-banner__sub {
    font-size: 16px;
  }

  .ops-banner .crm-btn--yellow {
    min-height: 87px;
  }

  .ops .crm-faq__item summary {
    font-size: 18px;
  }

  .ops .crm-faq__ic {
    width: 50px;
    height: 50px;
  }
}
