:root {
  --ease-out: cubic-bezier(.23, 1, .32, 1);
  --ease-in-out: cubic-bezier(.77, 0, .175, 1);
  --focus-ring: 0 0 0 3px #151515, 0 0 0 5px #40bdf2;
}

html {
  scroll-behavior: smooth;
}

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

::selection {
  color: #101010;
  background: #76d2f8;
}

h1,
h2,
.h1,
.h2,
.heading,
.heading-cta {
  letter-spacing: -.025em;
  text-wrap: balance;
}

.par,
.answer-rich-text,
.heading-slider {
  text-wrap: pretty;
}

a,
button,
[role="button"] {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.button {
  box-shadow: 0 1px 0 rgb(255 255 255 / 24%) inset, 0 12px 32px rgb(64 189 242 / 12%);
  transition: transform 140ms var(--ease-out), box-shadow 220ms ease, background-color 180ms ease;
  will-change: transform;
}

.button:hover {
  box-shadow: 0 1px 0 rgb(255 255 255 / 28%) inset, 0 14px 38px rgb(64 189 242 / 20%);
}

.button:active {
  transform: scale(.97);
  transition-duration: 90ms;
}

.button:focus-visible,
.arrow:focus-visible,
.email-link:focus-visible,
.logo-link:focus-visible,
.footer-logo-link:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

.button.white {
  box-shadow: 0 1px 0 rgb(255 255 255 / 85%) inset, 0 12px 32px rgb(0 0 0 / 16%);
}

.image-button-second {
  display: none !important;
}

.image-button-first,
.image-button-first.hovered {
  width: 20px !important;
  max-width: 20px !important;
  margin-right: 0 !important;
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) !important;
  transition: transform 180ms var(--ease-out) !important;
}

.arrow {
  box-shadow: 0 1px 0 rgb(255 255 255 / 24%) inset, 0 8px 22px rgb(0 0 0 / 16%);
  transition: transform 140ms var(--ease-out), background-color 180ms ease, color 180ms ease, box-shadow 180ms ease;
  will-change: transform;
}

.arrow:active {
  transform: scale(.92);
  transition-duration: 90ms;
}

.arrow.swiper-button-disabled {
  box-shadow: none;
  cursor: default;
  opacity: .72;
}

.swiper-pagination-bullet {
  transition: background-color 160ms ease;
}

.slider-item {
  background: linear-gradient(145deg, rgb(31 31 31 / 96%), rgb(23 23 23 / 96%));
  border-color: rgb(255 255 255 / 9%);
  box-shadow: 0 22px 60px rgb(0 0 0 / 18%), 0 1px 0 rgb(255 255 255 / 4%) inset;
}

.image-default-wrapper {
  border-radius: 18px;
  box-shadow: 0 24px 70px rgb(0 0 0 / 24%);
  overflow: hidden;
}

.cta-card-wrapper {
  box-shadow: 0 30px 90px rgb(0 0 0 / 30%);
}

.actual-cta-content {
  box-shadow: 0 1px 0 rgb(255 255 255 / 5%) inset;
}

.faq_parent {
  background: rgb(27 27 27 / 92%);
  border: 1px solid rgb(255 255 255 / 6%);
  box-shadow: 0 12px 36px rgb(0 0 0 / 0%);
  transition: background-color 180ms ease, border-color 180ms ease, box-shadow 220ms ease;
}

.faq_parent.is-open {
  background: rgb(30 30 30 / 96%);
  border-color: rgb(255 255 255 / 11%);
  box-shadow: 0 16px 42px rgb(0 0 0 / 18%);
}

.faq_trigger {
  appearance: none;
  color: inherit;
  background: transparent;
  border: 0;
  text-align: left;
  font: inherit;
  transition: background-color 160ms ease;
}

.faq_trigger:active {
  background-color: rgb(255 255 255 / 3%);
}

.faq_trigger:focus-visible {
  outline: 2px solid #40bdf2;
  outline-offset: -3px;
  border-radius: 14px;
}

.faq_answer[hidden] {
  display: none;
}

.plus-faq,
.minus-faq {
  transition: transform 220ms var(--ease-out), opacity 160ms ease;
  will-change: transform, opacity;
}

.plus-faq {
  opacity: 1;
  transform: rotate(0deg) scale(1);
}

.minus-faq {
  opacity: 0;
  transform: rotate(-90deg) scale(.92);
}

.faq_parent.is-open .plus-faq {
  opacity: 0;
  transform: rotate(90deg) scale(.92);
}

.faq_parent.is-open .minus-faq {
  opacity: 1;
  transform: rotate(0deg) scale(1);
}

.logo-link,
.footer-logo-link,
.email-link {
  border-radius: 6px;
}

@media (hover: hover) and (pointer: fine) {
  .button:hover {
    transform: translate3d(0, -2px, 0);
  }

  .button:hover .image-button-first,
  .button:hover .image-button-first.hovered {
    transform: translate3d(3px, 0, 0) !important;
  }

  .button:active {
    transform: translate3d(0, 0, 0) scale(.97);
  }

  .arrow:not(.swiper-button-disabled):hover {
    transform: translate3d(0, -2px, 0);
    box-shadow: 0 1px 0 rgb(255 255 255 / 28%) inset, 0 12px 28px rgb(0 0 0 / 22%);
  }

  .arrow:not(.swiper-button-disabled):active {
    transform: translate3d(0, 0, 0) scale(.92);
  }
}

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

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

  .part-images,
  .locations-wrapper {
    animation: none !important;
    transform: none !important;
  }
}

@media (prefers-reduced-transparency: reduce) {
  .faq_parent,
  .slider-item {
    background: #1d1d1d;
  }
}

@media (prefers-contrast: more) {
  .faq_parent,
  .slider-item {
    border-color: #737373;
  }

  .par,
  .answer-rich-text,
  .answer-rich-text p {
    color: #d4d4d4;
  }
}
