  /* Центрируем и подстраиваем ширину под содержимое */
  .blockMod.stepMod {
      display: none;       /* скрыта по умолчанию */
      width: 100%;         /* будет растягиваться до max-width */
      max-width: 700px;    /* ограничение на десктопе */
      margin: 0 auto;      /* центрирование */
      box-sizing: border-box; /* паддинги учитываются в ширину */
  }

  .blockMod.stepMod .mapsModalBl .lineMap {
      width: auto;
      height: auto;
  }

  /* Адаптив */
  @media (max-width: 720px) {
      .blockMod.stepMod {
          max-width: 90%;   /* на мобильных ширина до 90% экрана */
      }
  }
  /* Стили только для формы и шагов */
  .stepMod .steps { min-height: 220px; }
  .stepMod .step { display: none; opacity: 0; transform: translateY(10px); transition: all .22s ease; color: #fff; }
  .stepMod .step.active { display: block; opacity: 1; transform: none; }

  .stepMod .options { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
  .stepMod .options.two-cols .option { flex: 1 1 calc(50% - 10px); }

  .stepMod .option { display: flex; align-items: center; gap: 10px; font-size: 15px; color: #fff; }
  .stepMod .option input { transform: scale(1.05); display: none; }

  /* Радио-кнопки на тёмном фоне */
  .stepMod .option span {
    display: block;
    padding: 10px 12px;
    border: 2px solid rgba(255,255,255,0.5);
    border-radius: 8px;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s ease;
    background: rgba(255,255,255,0.05);
  }

  .stepMod .option input[type="radio"]:checked + span {
    border-color: #fff;
    background: rgba(255,255,255,0.2);
  }

  /* Поля ввода */
  .stepMod .field input {
    width: 100%;
    padding: 10px;
    border: 1px solid rgba(255,255,255,0.5);
    border-radius: 4px;
    background: rgba(255,255,255,0.1);
    color: #fff;
  }

  .stepMod .field input.error { border-color: red; }
  .stepMod .errorText { color: #ffb3b3; font-size: 13px; }

  /* Финальный шаг */
  .stepMod .finalStepGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
  .stepMod .finalText { font-size: 15px; line-height: 1.4; color: #fff; }
  .stepMod .contactFields { display: flex; flex-direction: column; gap: 12px; }

  /* Кнопки */
  .stepMod .modalFooter { display: flex; gap: 10px; justify-content: flex-end; padding: 14px 0; }
  .stepMod .btn { background: #2d7cf7; color: #fff; padding: 10px 14px; border-radius: 6px; border: none; cursor: pointer; }
  .stepMod .btn[disabled] { opacity: 0.5; cursor: not-allowed; }
  .stepMod .btn.submit { background: #27ae60; }

  /* Адаптив */
  @media(max-width:720px){ .stepMod .finalStepGrid{ grid-template-columns:1fr } }
  @media(max-width:520px){ .stepMod .modalFooter{ flex-direction: column-reverse; align-items: stretch } }

  .btn.submit.loading {
    position: relative;
    pointer-events: none;
    opacity: 0.8;
    background-image: repeating-linear-gradient(
      45deg,
      rgba(255,255,255,0.2) 0,
      rgba(255,255,255,0.2) 10px,
      transparent 10px,
      transparent 20px
    );
    background-size: 200% 200%;
    animation: stripeMove 1s linear infinite;
  }

  @keyframes stripeMove {
    from { background-position: 0 0; }
    to { background-position: 40px 0; }
  }