html {
  scroll-behavior: smooth;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

[data-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

.solutions-track {
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-left: max(1.5rem, calc((100% - 80rem) / 2 + 1.5rem));
  padding-right: max(1.5rem, calc((100% - 80rem) / 2 + 1.5rem));
  scroll-padding-left: max(1.5rem, calc((100% - 80rem) / 2 + 1.5rem));
  scroll-padding-right: max(1.5rem, calc((100% - 80rem) / 2 + 1.5rem));
}

@media (min-width: 1024px) {
  .solutions-track {
    padding-left: max(3rem, calc((100% - 80rem) / 2 + 3rem));
    padding-right: max(3rem, calc((100% - 80rem) / 2 + 3rem));
    scroll-padding-left: max(3rem, calc((100% - 80rem) / 2 + 3rem));
    scroll-padding-right: max(3rem, calc((100% - 80rem) / 2 + 3rem));
  }
}

.solutions-track::-webkit-scrollbar {
  display: none;
}

[data-partner-nav-item] [data-partner-nav-name] {
  display: inline-block;
  transform-origin: left center;
  transform: scale(1);
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

[data-partner-nav-item].is-active [data-partner-nav-name] {
  transform: scale(1.08);
}

[data-partner-nav-item] [data-partner-nav-cert] {
  display: inline-block;
  text-align: right;
  opacity: 0;
  transform: translateX(10px);
  transition: opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1), transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

[data-partner-nav-item].is-active [data-partner-nav-cert] {
  opacity: 1;
  transform: translateX(0);
}

.btn-submit {
  position: relative;
  display: flex;
  margin-left: auto;
  margin-right: auto;
  max-width: 48rem;
  overflow: hidden;
  transition: max-width 0.45s cubic-bezier(0.22, 1, 0.36, 1), padding 0.45s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.2s ease, color 0.2s ease;
}

.btn-submit.is-checking {
  max-width: 3rem;
  padding-left: 0;
  padding-right: 0;
}

.btn-submit.is-error,
.btn-submit.is-error:hover {
  max-width: 3rem;
  padding-left: 0;
  padding-right: 0;
  background-color: #dc2626;
  border-color: #dc2626;
  color: #ffffff;
}

.btn-submit .btn-state-loading,
.btn-submit .btn-state-check,
.btn-submit .btn-state-error,
.btn-submit .btn-state-success {
  display: none;
}

.btn-submit.is-loading .btn-state-idle {
  display: none;
}

.btn-submit.is-loading .btn-state-loading {
  display: inline-flex;
}

.btn-submit.is-checking .btn-state-idle,
.btn-submit.is-checking .btn-state-loading,
.btn-submit.is-checking .btn-state-error {
  display: none;
}

.btn-submit.is-checking .btn-state-check {
  display: inline-flex;
}

.btn-submit.is-error .btn-state-idle,
.btn-submit.is-error .btn-state-loading,
.btn-submit.is-error .btn-state-check,
.btn-submit.is-error .btn-state-success {
  display: none;
}

.btn-submit.is-error .btn-state-error {
  display: inline-flex;
}

.btn-submit.is-icon-fade .btn-state-check,
.btn-submit.is-icon-fade .btn-state-error {
  opacity: 0;
  transition: opacity 0.25s ease;
}

.btn-submit.is-success .btn-state-idle,
.btn-submit.is-success .btn-state-loading,
.btn-submit.is-success .btn-state-check,
.btn-submit.is-success .btn-state-error {
  display: none;
}

.btn-submit.is-success .btn-state-success {
  display: inline-flex;
}

@keyframes spinLoader {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.animate-spin-loader {
  animation: spinLoader 0.9s linear infinite;
}

@keyframes drawCheck {
  from {
    stroke-dashoffset: 24;
  }
  to {
    stroke-dashoffset: 0;
  }
}

.animate-draw-check {
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
  animation: drawCheck 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes drawCross {
  from {
    stroke-dashoffset: 20;
  }
  to {
    stroke-dashoffset: 0;
  }
}

.animate-draw-cross-1,
.animate-draw-cross-2 {
  stroke-dasharray: 20;
  stroke-dashoffset: 20;
}

.animate-draw-cross-1 {
  animation: drawCross 0.3s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.animate-draw-cross-2 {
  animation: drawCross 0.3s cubic-bezier(0.22, 1, 0.36, 1) 0.14s forwards;
}

@keyframes fieldShake {
  0%,
  100% {
    transform: translateX(0);
  }
  15%,
  45%,
  75% {
    transform: translateX(-8px);
  }
  30%,
  60%,
  90% {
    transform: translateX(8px);
  }
}

.animate-shake {
  animation: fieldShake 0.52s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}

.is-field-error input,
.is-field-error textarea {
  border-color: #f87171;
  box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.25);
}

.is-field-error label,
label.is-field-error {
  color: #fca5a5;
}

label.is-field-error input[type="checkbox"] {
  border-color: #f87171;
  box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.25);
}

@keyframes feedbackRingFill {
  from {
    stroke-dashoffset: 56.55;
  }
  to {
    stroke-dashoffset: 0;
  }
}

.feedback-progress-ring {
  transform: rotate(-90deg);
  transform-origin: 12px 12px;
  stroke-dasharray: 56.55;
  stroke-dashoffset: 56.55;
}

.is-countdown-active .feedback-progress-ring {
  animation: feedbackRingFill var(--feedback-duration, 5000ms) linear forwards;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
  [data-partner-nav-item] [data-partner-nav-name],
  [data-partner-nav-item] [data-partner-nav-cert],
  .btn-submit {
    transition: none;
  }
  .animate-spin-loader,
  .animate-draw-check,
  .animate-draw-cross-1,
  .animate-draw-cross-2,
  .is-countdown-active .feedback-progress-ring {
    animation: none;
    stroke-dashoffset: 0;
  }
  .animate-shake {
    animation: none;
  }
}
