/* =========================================================
   captcha.min.css — slider-капча.
   Прямоугольные элементы в стиле сайта (без скруглений).
   Опирается на токены из theme.min.css.
   ========================================================= */

.c-captcha {
  position: relative;
  width: 100%;
  height: 48px;
  margin: 20px 0 16px;
  border: 1px solid var(--c-border);
  background: var(--c-bg-alt);
  user-select: none;
  -webkit-user-select: none;
  overflow: hidden;
  touch-action: none;
}

/* Заливка — растёт по мере перетаскивания */
.c-captcha__fill {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 0;
  background: var(--c-accent);
  opacity: 0.14;
  transition: width 0.05s linear, background 0.3s ease, opacity 0.3s ease;
  pointer-events: none;
}

/* Текст-подсказка по центру дорожки */
.c-captcha__text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  color: var(--c-text-mute);
  transition: opacity 0.25s ease;
  pointer-events: none;
  z-index: 1;
}

/* Ползунок — квадратный, акцентный */
.c-captcha__handle {
  position: absolute;
  top: 0;
  left: 0;
  width: 48px;
  height: 48px;
  background: var(--c-accent);
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
  transition: left 0.15s cubic-bezier(0.22, 0.61, 0.36, 1), background 0.25s ease;
  z-index: 2;
  border: 0;
  padding: 0;
  outline: none;
}
.c-captcha__handle:active { cursor: grabbing; }
.c-captcha__handle:focus-visible {
  box-shadow: 0 0 0 3px rgba(176, 10, 39, 0.25);
}

/* Иконки внутри ползунка */
.c-captcha__icon-arrow,
.c-captcha__icon-check { display: block; }
.c-captcha__icon-check { display: none; }

/* Состояние "перетаскивают" — ползунок без transition left */
.c-captcha.is-dragging .c-captcha__handle { transition: left 0s; }

/* Состояние "успех" */
.c-captcha.is-done {
  border-color: #14602c;
}
.c-captcha.is-done .c-captcha__fill {
  background: #14602c;
  opacity: 0.18;
}
.c-captcha.is-done .c-captcha__handle {
  background: #14602c;
  cursor: default;
}
.c-captcha.is-done .c-captcha__icon-arrow { display: none; }
.c-captcha.is-done .c-captcha__icon-check { display: block; }
.c-captcha.is-done .c-captcha__text {
  opacity: 0;
}

/* Состояние "ошибка" — ползунок вернулся не доконца */
.c-captcha.is-error {
  border-color: var(--c-accent);
  animation: c-captcha-shake 0.4s ease;
}
.c-captcha.is-error .c-captcha__fill {
  background: var(--c-accent);
  opacity: 0.2;
}
@keyframes c-captcha-shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-4px); }
  40% { transform: translateX(4px); }
  60% { transform: translateX(-3px); }
  80% { transform: translateX(3px); }
}

/* Отключённая капча (на случай, если JS ещё не загрузился) */
.c-captcha[data-disabled="1"] {
  opacity: 0.6;
  pointer-events: none;
}

/* Мобильные размеры */
@media (max-width: 600px) {
  .c-captcha { height: 44px; }
  .c-captcha__handle { width: 44px; height: 44px; }
  .c-captcha__text { font-size: 13px; }
}
/* Кнопка отправки, пока капча не решена (ставится JS)
   — форма выключена визуально и по клику, но остаётся доступной
   для скринридеров через aria-disabled. */
.button.is-locked,
.button[aria-disabled="true"] {
  opacity: 0.55;
  cursor: not-allowed;
  position: relative;
}
.button.is-locked:hover,
.button[aria-disabled="true"]:hover {
  background: var(--c-accent);
  filter: none;
}
/* Убираем shine-эффект для заблокированной кнопки */
.button.is-locked::before,
.button[aria-disabled="true"]::before {
  display: none;
}

/* Форма: слабая приглушённость, пока капча не решена */
.form--write-us.is-locked .form__item_input,
.c-cta-form.is-locked .c-cta-form__input {
  opacity: 0.7;
}