/* ============================================================
   СПБ Переезд — steps
   Блок «Как проходит переезд». Четыре карточки с пунктирным
   коннектором и плашкой гарантии под ними.
   Нумерация здесь смысловая — это реальная последовательность.
   ============================================================ */

.sp-steps-sec{
  position:relative;overflow:hidden;
  background:linear-gradient(160deg,#fafcff 0%, var(--bg-2) 45%, #eaf0f9 100%);
}
.sp-steps-sec > .sp-wrap{position:relative;z-index:1}

/* --- точечный декор --- */
.sp-steps-sec::before,
.sp-steps-sec::after{
  content:"";position:absolute;pointer-events:none;
  background-image:radial-gradient(circle, rgba(31,95,240,.20) 1.7px, transparent 1.7px);
  background-size:16px 16px;
}
.sp-steps-sec::before{
  right:0;top:0;width:250px;height:210px;opacity:.5;
  -webkit-mask-image:linear-gradient(225deg,#000,transparent 72%);
          mask-image:linear-gradient(225deg,#000,transparent 72%);
}
.sp-steps-sec::after{
  left:0;bottom:0;width:200px;height:230px;opacity:.4;
  -webkit-mask-image:linear-gradient(45deg,#000,transparent 72%);
          mask-image:linear-gradient(45deg,#000,transparent 72%);
}

/* --- сетка --- */
.sp-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}

/* --- карточка шага --- */
.sp-step{
  display:flex;flex-direction:column;background:var(--card);
  border-radius:var(--r-lg);padding:28px 26px 26px;
  box-shadow:0 1px 2px rgba(12,22,38,.04),0 10px 28px rgba(12,22,38,.055);
}

/* верхняя строка: номер + пунктирный коннектор */
.sp-step__top{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.sp-step__num{
  width:54px;height:54px;border-radius:50%;background:var(--brand-soft);flex:none;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-display);font-weight:700;font-size:18px;color:var(--brand);
}
.sp-step__line{
  flex:1;height:7px;position:relative;
  background-image:radial-gradient(circle, #9dc0ff 1.6px, transparent 1.6px);
  background-size:9px 7px;background-repeat:repeat-x;background-position:left center;
}
.sp-step__line::after{
  content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);
  width:7px;height:7px;border-radius:50%;background:var(--brand);
}
/* у последнего шага вести некуда */
.sp-step:last-child .sp-step__line{display:none}

/* иконка */
.sp-step__ic{
  width:62px;height:62px;border-radius:var(--r);background:var(--brand-soft);flex:none;
  display:flex;align-items:center;justify-content:center;margin-bottom:22px;
}
.sp-step__ic svg{width:29px;height:29px;stroke:var(--brand);fill:none;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}

.sp-step h3{font-family:var(--f-display);font-size:19px;font-weight:700;color:var(--ink);
  margin:0 0 11px;letter-spacing:-.015em;line-height:1.3}
.sp-step p{margin:0 0 22px;font-size:15px;line-height:1.6;color:var(--ink-2)}

/* тайминг */
.sp-step__time{
  display:inline-flex;align-items:center;gap:9px;align-self:flex-start;margin-top:auto;
  background:var(--brand-soft);color:var(--brand);border-radius:var(--r-sm);
  padding:10px 15px;font-size:14px;font-weight:600;letter-spacing:-.01em;
}
.sp-step__time svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ============================================================
   Плашка гарантии под шагами
   ============================================================ */
.sp-steps-note{
  display:flex;align-items:center;gap:30px;margin-top:34px;
  background:#e9f0fa;border-radius:var(--r-lg);padding:24px 32px;
}
.sp-steps-note__main{display:flex;align-items:center;gap:20px;flex:1;min-width:0}
.sp-steps-note__ic{
  width:56px;height:56px;border-radius:50%;background:#d8e5f8;flex:none;
  display:flex;align-items:center;justify-content:center;
}
.sp-steps-note__ic svg{width:26px;height:26px;stroke:var(--brand);fill:none;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}
.sp-steps-note h3{font-family:var(--f-display);font-size:17px;font-weight:700;
  color:var(--ink);margin:0;letter-spacing:-.01em}
.sp-steps-note p{margin:5px 0 0;font-size:14.5px;color:var(--ink-2);line-height:1.5}

.sp-steps-note__side{
  display:flex;align-items:center;gap:16px;flex:none;max-width:300px;
  padding-left:30px;border-left:1px solid #cbdaf0;
}
.sp-steps-note__side svg{width:30px;height:30px;stroke:var(--brand);fill:none;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;flex:none}
.sp-steps-note__side span{font-size:14.5px;color:var(--ink-2);line-height:1.45}

/* ============================================================
   Адаптив
   ============================================================ */
@media(max-width:1080px){
  .sp-steps{grid-template-columns:repeat(2,1fr)}
  /* при переносе строк коннектор указывал бы в пустоту */
  .sp-step__line{display:none}
  .sp-step__top{margin-bottom:22px}
}

@media(max-width:860px){
  .sp-steps-note{flex-direction:column;align-items:flex-start;gap:20px;padding:22px 24px}
  .sp-steps-note__side{max-width:none;padding-left:0;padding-top:20px;
    border-left:none;border-top:1px solid #cbdaf0;width:100%}
}

@media(max-width:620px){
  .sp-steps{grid-template-columns:1fr;gap:12px}

  /* Компактная раскладка: номер+иконка слева, текст справа.
     Убирает пустоту от вертикального стека. */
  .sp-step{padding:18px;display:grid;
    grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;
    column-gap:16px;row-gap:0;align-items:start}

  /* левая колонка: номер над иконкой, узкая */
  .sp-step__top{grid-column:1;grid-row:1;margin:0 0 10px;
    flex-direction:column;gap:8px;align-items:center}
  .sp-step__num{width:38px;height:38px;font-size:14px}
  .sp-step__ic{grid-column:1;grid-row:2;width:38px;height:38px;margin:0;
    align-self:start;justify-self:center}
  .sp-step__ic svg{width:19px;height:19px}

  /* правая колонка: заголовок, текст, время — плотно */
  .sp-step h3{grid-column:2;grid-row:1;font-size:17px;margin:0 0 6px;align-self:center}
  .sp-step p{grid-column:2;grid-row:2;font-size:14px;line-height:1.5;margin:0 0 12px}
  .sp-step__time{grid-column:2;grid-row:3;justify-self:start;margin:0}
  .sp-step__top + .sp-step__ic{margin-top:0}

  .sp-steps-sec::before,.sp-steps-sec::after{display:none}
}
