/* Site-wide custom code (was Webflow head code + registered scripts) */

@font-face {
  font-family: Jost;
  src: url('/fonts/Jost-Variable-latin-ext.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 5.5rem;
}
body {
  background: #f8f5f0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1,
h2,
h3,
h4 {
  text-wrap: balance;
}
p {
  text-wrap: pretty;
}
:focus-visible {
  outline: 2px solid #c5a46d;
  outline-offset: 3px;
}
.nav_menu.is-open {
  display: flex;
}
.nav_brand {
  text-decoration: none;
}
.button.is-large:not(.is-secondary):not(input)::after {
  content: '\2192';
  margin-left: 0.5rem;
  transition: transform 0.25s;
}
.button.is-large:not(.is-secondary):hover::after {
  transform: translateX(3px);
}
.check-list_icon {
  position: relative;
}
.check-list_icon::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 46%;
  width: 0.3rem;
  height: 0.55rem;
  border: solid #c5a46d;
  border-width: 0 1.5px 1.5px 0;
  transform: translate(-50%, -50%) rotate(45deg);
}
.home-service_image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.service-card_list {
  list-style: none;
  padding-left: 0;
}
.service-card_list-item {
  position: relative;
  padding-left: 1.5rem;
}
.service-card_list-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.8em;
  width: 0.75rem;
  height: 1px;
  background: #c5a46d;
}
.process-tabs_link {
  cursor: pointer;
}
.process-tabs_link.is-active,
.process-tabs_link.is-active:hover {
  background: #14213d;
  color: #f8f5f0;
}
.process-tabs_pane.is-active {
  opacity: 1;
  visibility: visible;
}
.process-tabs_image {
  transform: scale(1.04);
  transition: transform 1.2s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.process-tabs_pane.is-active .process-tabs_image {
  transform: none;
}
.blog-card_component {
  transition:
    background-color 0.4s cubic-bezier(0.22, 0.61, 0.36, 1),
    border-color 0.4s cubic-bezier(0.22, 0.61, 0.36, 1),
    transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1),
    box-shadow 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.blog-card_component:hover {
  background-color: #1d2f55f2;
  transform: translateY(-4px);
  box-shadow: 0 1rem 2rem -1rem #0000008c;
}
.blog-card_component:hover .blog-card_arrow {
  background: #c5a46d;
  border-color: #c5a46d;
  color: #14213d;
}
.blog-card_arrow {
  transition:
    background-color 0.25s,
    color 0.25s,
    border-color 0.25s;
}
.w-dyn-item {
  height: 100%;
}
.contact_component::before {
  content: '';
  position: absolute;
  left: -3rem;
  bottom: -5rem;
  width: 22rem;
  aspect-ratio: 4/5;
  background: url('/images/vq-mark-navy.svg') center/contain no-repeat;
  opacity: 0.05;
  pointer-events: none;
}
select.form_input {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 2.75rem;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2314213d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E") no-repeat right 1rem center/1rem;
}
input.button {
  cursor: pointer;
  justify-self: start;
}
input.button:hover {
  background: #14213d;
  border-color: #14213d;
  color: #f8f5f0;
}
.contact_component .button:hover {
  background: #14213d;
  border-color: #14213d;
  color: #f8f5f0;
}
.js [data-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1),
    transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition-delay: var(--d, 0s);
}
.js [data-reveal].is-in {
  opacity: 1;
  transform: none;
}
.modal {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  visibility: hidden;
  transition: visibility 0s linear 0.45s;
}
.modal.is-open {
  visibility: visible;
  transition-delay: 0s;
}
.modal_backdrop {
  position: absolute;
  inset: 0;
  background: rgba(14, 24, 44, 0.72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 0;
  transition: opacity 0.4s;
}
.modal.is-open .modal_backdrop {
  opacity: 1;
}
.modal_dialog {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  width: min(100%, 60rem);
  max-height: calc(100dvh - 3rem);
  border-radius: 1rem;
  background: #f8f5f0;
  color: #14213d;
  box-shadow: 0 2.5rem 6rem rgba(8, 14, 28, 0.55);
  overflow: hidden;
  opacity: 0;
  transform: translateY(28px) scale(0.97);
  transition:
    opacity 0.35s,
    transform 0.5s cubic-bezier(0.2, 0.9, 0.25, 1);
}
.modal.is-open .modal_dialog {
  opacity: 1;
  transform: none;
  transition-delay: 0.05s;
}
.modal_side {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 2.5rem;
  background: #14213d;
  color: #f8f5f0;
  overflow: hidden;
}
.modal_side::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: linear-gradient(90deg, #c5a46d, transparent 70%);
}
.modal_side::after {
  content: '';
  position: absolute;
  right: -4.5rem;
  bottom: -5.5rem;
  width: 17rem;
  aspect-ratio: 4/5;
  background: url('/images/vq-mark-light.svg') center/contain no-repeat;
  opacity: 0.06;
}
.modal_mark {
  height: 2.75rem;
  width: auto;
  align-self: flex-start;
  margin-bottom: 2.5rem;
}
.modal_title {
  margin: 1rem 0 0;
  font-size: clamp(1.5rem, 2.4vw, 1.875rem);
  line-height: 1.2;
  font-weight: 500;
}
.modal_lead {
  margin: 1rem 0 0;
  font-size: 1.0625rem;
  color: rgba(248, 245, 240, 0.72);
}
.modal_checks {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 0.75rem;
  margin: auto 0 0;
  padding: 2.5rem 0 0;
  list-style: none;
  font-size: 1rem;
}
.modal_checks li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.modal_main {
  padding: 3.75rem 2.5rem 2.5rem;
  overflow-y: auto;
}
.modal_close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 1px solid rgba(20, 33, 61, 0.16);
  border-radius: 50%;
  background: #f8f5f0;
  color: #14213d;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  transition:
    background-color 0.25s,
    color 0.25s,
    transform 0.4s;
}
.modal_close:hover {
  background: #14213d;
  color: #f8f5f0;
  transform: rotate(90deg);
}
.modal .form_field-wrapper {
  opacity: 0;
  transform: translateY(10px);
  transition:
    opacity 0.45s,
    transform 0.45s;
}
.modal.is-open .form_field-wrapper {
  opacity: 1;
  transform: none;
}
.modal.is-open .form_field-wrapper:nth-child(1) {
  transition-delay: 0.16s;
}
.modal.is-open .form_field-wrapper:nth-child(2) {
  transition-delay: 0.2s;
}
.modal.is-open .form_field-wrapper:nth-child(3) {
  transition-delay: 0.24s;
}
.modal.is-open .form_field-wrapper:nth-child(4) {
  transition-delay: 0.28s;
}
.modal.is-open .form_field-wrapper:nth-child(5) {
  transition-delay: 0.32s;
}
.modal.is-open .form_field-wrapper:nth-child(6) {
  transition-delay: 0.38s;
}
.modal-open,
.modal-open body {
  overflow: hidden;
}
@media (max-width: 760px) {
  .modal {
    padding: 0;
    place-items: end stretch;
  }
  .modal_dialog {
    grid-template-columns: 1fr;
    width: 100%;
    max-height: 94dvh;
    border-radius: 1rem 1rem 0 0;
    overflow-y: auto;
    transform: translateY(100%);
  }
  .modal_side {
    padding: 1.5rem 1.25rem;
  }
  .modal_mark,
  .modal_checks,
  .modal_side::after {
    display: none;
  }
  .modal_title {
    margin-top: 0.75rem;
  }
  .modal_main {
    padding: 1.25rem 1.25rem 1.75rem;
    overflow: visible;
  }
  .modal_close {
    background: transparent;
    border-color: rgba(248, 245, 240, 0.18);
    color: #f8f5f0;
  }
}
.preloader {
  display: none;
}
.intro body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 99;
  background: #14213d;
  animation: pl-lift 0.9s cubic-bezier(0.76, 0, 0.24, 1) 2.15s forwards;
}
.intro .preloader {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  pointer-events: none;
}
.preloader_inner {
  display: grid;
  justify-items: center;
  gap: 1.5rem;
  animation: pl-out 0.45s ease 1.95s forwards;
}
.preloader_mark {
  width: 4.5rem;
  height: auto;
  overflow: visible;
}
.pl-v {
  clip-path: inset(0 0 100% 0);
  animation: pl-wipe 0.8s cubic-bezier(0.65, 0, 0.35, 1) 0.15s forwards;
}
.pl-ring {
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
  transform: rotate(-24deg) scale(0.94);
  animation: pl-in 0.9s ease 0.45s forwards;
}
.pl-tail {
  opacity: 0;
  transform: translate(-70px, -150px);
  animation: pl-in 0.55s ease 1.05s forwards;
}
.preloader_type {
  height: 0.8125rem;
  width: auto;
  opacity: 0;
  animation: pl-fade 0.6s ease 1.15s forwards;
}
.preloader_line {
  width: 7rem;
  height: 1px;
  background: #c5a46d;
  transform: scaleX(0);
  transform-origin: left;
  animation: pl-line 0.9s cubic-bezier(0.65, 0, 0.35, 1) 1.1s forwards;
}
@keyframes pl-wipe {
  to {
    clip-path: inset(0);
  }
}
@keyframes pl-in {
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes pl-fade {
  to {
    opacity: 1;
  }
}
@keyframes pl-line {
  to {
    transform: scaleX(1);
  }
}
@keyframes pl-out {
  to {
    opacity: 0;
    transform: translateY(-10px);
  }
}
@keyframes pl-lift {
  to {
    transform: translateY(-100%);
    visibility: hidden;
  }
}
@keyframes fade-up {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes hero-zoom {
  from {
    transform: scale(1.08);
  }
  to {
    transform: none;
  }
}
.intro .home-hero_image {
  animation: hero-zoom 2.4s cubic-bezier(0.22, 0.61, 0.36, 1) 1.9s both;
}
.intro .nav_container,
.intro .home-hero_content > *,
.intro .home-hero_bottom {
  animation: fade-up 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
.intro .nav_container {
  animation-delay: 2.45s;
}
.intro .home-hero_content > :nth-child(1) {
  animation-delay: 2.5s;
}
.intro .home-hero_content > :nth-child(2) {
  animation-delay: 2.6s;
}
.intro .home-hero_content > :nth-child(3) {
  animation-delay: 2.72s;
}
.intro .home-hero_content > :nth-child(4) {
  animation-delay: 2.84s;
}
.intro .home-hero_bottom {
  animation-delay: 3s;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .js [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .modal_dialog,
  .modal_backdrop,
  .modal .form_field-wrapper,
  .process-tabs_pane,
  .process-tabs_image {
    transition: none;
  }
}

/* Base styles */
body {
  font-family: Jost, sans-serif;
  font-size: 1.125rem;
  line-height: 1.55;
  color: #14213d;
}
.blog-article_rich h2 {
  margin: 2.5rem 0 0;
  font-size: clamp(1.75rem, 2.6vw, 2.25rem);
  line-height: 1.2;
  font-weight: 500;
  color: #f8f5f0;
}
.blog-article_rich h3 {
  margin: 1.75rem 0 0;
  font-size: 1.3125rem;
  line-height: 1.3;
  font-weight: 500;
  color: #f8f5f0;
}
.blog-article_rich p {
  margin: 1rem 0 0;
}
.blog-article_rich > :first-child {
  margin-top: 0;
}
.blog-article_rich ul {
  display: grid;
  gap: 0.5rem;
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}
.blog-article_rich li {
  position: relative;
  padding-left: 1.5rem;
}
.blog-article_rich li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.8em;
  width: 0.75rem;
  height: 1px;
  background: #c5a46d;
}
.blog-hero_card .button:hover,
.service-overview_card .button:hover,
.process-tabs_panel .button:hover {
  background: #f8f5f0;
  border-color: #f8f5f0;
}
.section_service-hero .button:hover,
.legal_content .button:hover {
  background: #14213d;
  border-color: #14213d;
  color: #f8f5f0;
}

/* FAQ (pricing page) */
.faq_question::-webkit-details-marker {
  display: none;
}
.faq_question::marker {
  content: '';
}
.faq_item[open] .faq_icon {
  transform: rotate(45deg);
  background: #14213d;
  border-color: #14213d;
  color: #f8f5f0;
}
/* The "+" glyph sits off-centre in Jost, so the plus is drawn with two bars instead */
.faq_icon {
  position: relative;
  font-size: 0;
}
.faq_icon::before,
.faq_icon::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.75rem;
  height: 1.5px;
  background: currentColor;
  transform: translate(-50%, -50%);
}
.faq_icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.faq_question:hover .faq_question-text {
  color: #4d5f85;
}
.pricing-faq_intro .heading-style-h2 {
  margin-top: 1.5rem;
}

/* Language switch */
.lang_switch {
  display: flex;
  gap: 0.125rem;
  flex: none;
  margin-right: -1.5rem;
  padding: 0.2rem;
  border: 1px solid rgba(248, 245, 240, 0.18);
  border-radius: 100vw;
}
.lang_btn {
  padding: 0.3rem 0.6rem;
  border: 0;
  border-radius: 100vw;
  background: none;
  color: #f8f5f0;
  font: 500 0.8125rem/1 Jost, sans-serif;
  letter-spacing: 0.08em;
  cursor: pointer;
  opacity: 0.7;
}
.lang_btn.is-active {
  background: #c5a46d;
  color: #14213d;
  opacity: 1;
}
.skiptranslate iframe,
#goog-gt-tt {
  display: none !important;
}
body {
  top: 0 !important;
}
@media (max-width: 991px) {
  .lang_switch {
    margin: 0 0 0 auto;
  }
  .nav_menu-button {
    margin-left: 0.75rem !important;
  }
}

/* Contact form honeypot */
.form_hp {
  display: none;
}

/* Phones: short opener, hero content painted immediately for a faster LCP */
@media (max-width: 767px) {
  .intro body::before { animation-duration: 0.45s; animation-delay: 0.8s; }
  .intro .preloader_inner { animation-duration: 0.2s; animation-delay: 0.7s; }
  .intro .pl-v { animation-duration: 0.4s; animation-delay: 0s; }
  .intro .pl-ring { animation-duration: 0.4s; animation-delay: 0.1s; }
  .intro .pl-tail { animation-duration: 0.3s; animation-delay: 0.3s; }
  .intro .preloader_type { animation-duration: 0.3s; animation-delay: 0.3s; }
  .intro .preloader_line { animation-duration: 0.4s; animation-delay: 0.25s; }
  .intro .home-hero_image { animation: none; }
  .intro .nav_container, .intro .home-hero_content > *, .intro .home-hero_bottom { animation: none; }
}
