/* ===== КАК ЭТО РАБОТАЕТ ===== */
#process {
  background: var(--bg);
}

.process-header {
  max-width: var(--max-w);
  margin: 0 auto clamp(56px, 7vw, 96px);
  text-align: center;
}

.process-heading {
  font-family: var(--font-display);
  font-size: clamp(28px, 4vw, 52px);
  font-weight: 300;
  font-style: italic;
  color: var(--text);
  letter-spacing: -0.02em;
}

/* --- Шаги --- */
.process-steps {
  max-width: var(--max-w);
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  gap: 0;
}

/* Коннектор между шагами */
.process-connector {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--line-light-solid), transparent);
  margin-top: 22px;
  min-width: 24px;
  transform-origin: left center;
}

.process-step {
  flex: 0 0 auto;
  width: clamp(200px, 28vw, 320px);
  display: flex;
  flex-direction: column;
}

/* Контент шага */
.process-step-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 20px;
  border-top: 2px solid var(--maroon);
}

.process-step-num {
  font-family: var(--font-display);
  font-size: var(--text-label);
  letter-spacing: var(--ls-num);
  color: var(--maroon);
}

.process-step-title {
  font-family: var(--font-display);
  font-size: var(--text-h3);
  font-weight: 300;
  font-style: italic;
  color: var(--text);
  line-height: 1.3;
}

.process-step-body {
  font-family: var(--font-display);
  font-size: var(--text-body);
  color: var(--text-muted);
  line-height: 1.7;
}

/* --- Мобиль: editorial timeline --- */
@media (max-width: 767px) {
  .process-steps {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    position: relative;
    padding-left: 28px; /* место для золотой линии */
  }

  /* Непрерывная золотая вертикальная линия — editorial luxury */
  /* left: 14px = середина 28px-паддинга; совпадает с центрами точек (step.left=28px + dot.left=-14px → center=14px) */
  .process-steps::before {
    content: '';
    position: absolute;
    left: 14px;
    top: 10px;
    bottom: 14px; /* заканчивается у центра последней точки, не свисает */
    width: 1px;
    background: linear-gradient(
      180deg,
      transparent 0%,
      var(--logo-gold) 10%,
      var(--logo-gold) 90%,
      transparent 100%
    );
  }

  /* Убрать старые разрывы между шагами */
  .process-connector {
    display: none;
  }

  .process-step {
    width: 100%;
    position: relative;
    padding: 0 0 48px 20px;
  }

  /* Точка-маркер на линии — с золотым ореолом (ювелирный штрих) */
  .process-step::before {
    content: '';
    position: absolute;
    left: -14px;
    top: 11px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--logo-gold);
    transform: translateX(-50%);
    z-index: 1;
    box-shadow: 0 0 0 3px rgba(201, 162, 84, 0.18);
  }

  .process-step:last-child {
    padding-bottom: 0;
  }

  /* Убрать красную верхнюю линию каждого шага */
  .process-step-content {
    border-top: none;
    padding-top: 0;
    gap: 10px;
  }

  /* Номера скрыты — точка на линии уже даёт порядок */
  .process-step-num {
    display: none;
  }

  .process-step-title {
    font-size: clamp(20px, 5vw, 26px);
    margin-bottom: 6px;
  }

  .process-step-body {
    font-size: clamp(14px, 3.5vw, 16px);
    line-height: 1.7;
    color: var(--text-muted);
  }
}

/* --- Планшет: timeline сохраняется --- */
@media (min-width: 768px) and (max-width: 1023px) {
  .process-step {
    width: clamp(160px, 22vw, 240px);
  }
}

/* Десктоп: компенсация увеличения зоны "ОБСУДИТЬ ЗАДАЧУ" на 16px
   (см. services.css) — уменьшаем padding-bottom секции на те же 16px */
@media (min-width: 1024px) {
  #process {
    padding-bottom: 56px;
  }
}
