/* Slide-to-verify styles — flush thumb, brand base color */
.slider-verify {
  --slider-base: #60bf19;
  --slider-track: #d9d9d9;
  display: block;
  width: 100%;
  line-height: normal;
  text-align: left;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
}

.slider-track {
  display: block;
  position: relative;
  height: 54px;
  border-radius: 0;
  background: var(--slider-track);
  overflow: hidden;
  outline: none;
}

.slider-track:focus-visible {
  box-shadow: 0 0 0 2px rgba(96, 191, 25, 0.45);
}

.slider-progress {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0;
  background: var(--slider-base);
  transition: none;
  z-index: 0;
}

.slider-hint,
.slider-success-text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  letter-spacing: 0.04em;
  pointer-events: none;
  z-index: 1;
}

.slider-hint {
  color: #fff;
}

.slider-success-text {
  color: #fff;
  opacity: 0;
}

/* Full-height flush thumb (底色 + 白箭头) */
.slider-thumb {
  position: absolute;
  top: 0;
  left: 0;
  width: 54px;
  height: 100%;
  border-radius: 0;
  background: var(--slider-base);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: none;
  cursor: grab;
  z-index: 2;
  will-change: transform;
}

.slider-thumb-icon {
  display: block;
  overflow: visible;
}

.slider-verify.is-dragging .slider-thumb {
  cursor: grabbing;
}

.slider-verify.is-loading .slider-thumb {
  opacity: 0.85;
  pointer-events: none;
}

.slider-verify.is-verified .slider-progress {
  width: 100% !important;
  background: var(--slider-base);
}

.slider-verify.is-verified .slider-hint {
  opacity: 0;
}

.slider-verify.is-verified .slider-success-text {
  opacity: 1;
}

.slider-verify.is-verified .slider-thumb {
  background: var(--slider-base);
  color: #fff;
  pointer-events: none;
}

.slider-verify.is-error .slider-track {
  animation: slider-shake 0.35s ease;
}

@keyframes slider-shake {

  0%,
  100% {
    transform: translateX(0);
  }

  25% {
    transform: translateX(-6px);
  }

  75% {
    transform: translateX(6px);
  }
}

/* When slider is present, hide the native CF7 submit visually */
.wpcf7 form:has(.slider-verify) input.wpcf7-submit,
.wpcf7 form:has(.slider-verify) button.wpcf7-submit {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  border: 0 !important;
}

.wpcf7 .slider-verify,
.wpcf7 .wpcf7-form-control-wrap:has(.slider-verify) {
  width: 100%;
  display: block;
}

.wpcf7 .wpcf7-form-control-wrap:has(.slider-verify) .wpcf7-not-valid-tip {
  display: block;
  margin-top: 8px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  text-align: left;
}

.buttonContainer:has(.slider-verify) {
  display: block;
  height: auto;
  min-height: 54px;
  line-height: normal;
}

@media (max-width: 767px) {

  .slider-hint,
  .slider-success-text {
    font-size: 15px;
  }
}