:root {
  --accent: #4F46E5;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: #F7F8FB;
  color: #475569;
  font-family: 'Manrope', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

* {
  box-sizing: border-box;
}

a {
  color: #4F46E5;
  text-decoration: none;
}

a:hover {
  color: #0F172A;
}

input,
select,
textarea,
button {
  font-family: 'Manrope', system-ui, sans-serif;
}

img {
  max-width: 100%;
}

:focus-visible {
  outline: 3px solid rgba(79, 70, 229, .35);
  outline-offset: 3px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.form-alert {
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  padding: 13px 15px;
}

.form-alert--error {
  background: #FFF1F2;
  border: 1px solid #FECDD3;
  color: #BE123C;
}

.form-alert--success {
  background: #EEF2FF;
  border: 1px solid #C7D2FE;
  color: #3730A3;
}

.field-error {
  color: #E11D48;
  font-size: 12px;
  font-weight: 700;
}

.hp-field {
  left: -10000px;
  position: absolute;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.g-recaptcha {
  min-height: 78px;
}

@keyframes itdDrip {
  0% {
    transform: translateY(0);
    opacity: 0;
  }

  15%,
  85% {
    opacity: 1;
  }

  100% {
    transform: translateY(46px);
    opacity: 0;
  }
}

@keyframes itdPulse {
  0%,
  100% {
    opacity: .35;
  }

  50% {
    opacity: 1;
  }
}

@keyframes itdBar {
  from {
    transform: scaleY(0);
  }

  to {
    transform: scaleY(1);
  }
}

@media (max-width: 1000px) {
  [data-mobile-hide] {
    display: none !important;
  }

  [data-mobile-grid="1"] {
    grid-template-columns: 1fr !important;
  }

  [data-mobile-grid="2"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  header > div {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  section,
  footer {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  h1 {
    font-size: 40px !important;
  }

  h2 {
    font-size: 31px !important;
  }
}

@media (max-width: 640px) {
  [data-mobile-grid="2"] {
    grid-template-columns: 1fr !important;
  }

  header > div {
    height: 66px !important;
    gap: 12px !important;
  }

  header img {
    height: 44px !important;
  }

  header a[href="#contact"] {
    font-size: 13px !important;
    padding: 10px 13px !important;
  }

  #home {
    padding-top: 130px !important;
    padding-bottom: 72px !important;
  }

  h1 {
    font-size: 34px !important;
  }

  h2 {
    font-size: 28px !important;
  }

  p {
    overflow-wrap: anywhere;
  }

  .g-recaptcha {
    transform: scale(.86);
    transform-origin: 0 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }
}
