/* Shared AJAX form feedback (contact / newsletter / quote) */
.ajax-form-message {
  display: none;
  align-items: flex-start;
  gap: 0.75rem;
  width: 100%;
  margin: 0 0 1rem;
  padding: 0.95rem 1.1rem;
  border-radius: 12px;
  border: 1px solid transparent;
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.45;
}

.ajax-form-message:not([hidden]) {
  display: flex;
}

.ajax-form-message__icon {
  flex-shrink: 0;
  width: 1.35rem;
  height: 1.35rem;
  margin-top: 0.05rem;
}

.ajax-form-message__text {
  flex: 1;
}

.ajax-form-message.is-success {
  color: #1f6b3a;
  background: #eaf7ef;
  border-color: #b7e0c4;
}

.ajax-form-message.is-error {
  color: #9b1c1c;
  background: #fdecec;
  border-color: #f2b8b5;
}

.footer-newsletter-block .ajax-form-message.footer-newsletter-message {
  margin-top: 0.75rem;
  margin-bottom: 0;
}

.btn-loading-label {
  display: inline-flex;
  align-items: baseline;
  gap: 0;
}

.btn-loading-dots {
  display: inline-flex;
  width: 1.1em;
  overflow: hidden;
  margin-left: 0.05em;
}

.btn-loading-dots span {
  opacity: 0;
  animation: user-front-btn-dot 1.2s infinite;
}

.btn-loading-dots span:nth-child(1) {
  animation-delay: 0s;
}
.btn-loading-dots span:nth-child(2) {
  animation-delay: 0.2s;
}
.btn-loading-dots span:nth-child(3) {
  animation-delay: 0.4s;
}

@keyframes user-front-btn-dot {
  0%,
  20% {
    opacity: 0;
  }
  40%,
  100% {
    opacity: 1;
  }
}

button.is-loading,
.common-btn.is-loading,
.common__btn.is-loading,
.theme-btn.is-loading {
  pointer-events: none;
  opacity: 0.85;
  cursor: wait;
}

.common__btn.is-loading .btn-loading-label,
.common-btn.is-loading .btn-loading-label {
  display: inline-flex;
  align-items: baseline;
}
