:root{
  --gvm-duration:460ms;
  --gvm-distance:14px;
  --gvm-ease:cubic-bezier(.22,.72,.24,1);
}

/* ---------- PRELOADER ---------- */
.gvm-preloader{
  display:none;
}

html.gvm-preloader-on{
  scrollbar-gutter:stable;
}

html.gvm-preloading{
  overflow:hidden!important;
}

html.gvm-preloader-on .gvm-preloader{
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  min-height:100svh;
  padding:24px;
  background:
    radial-gradient(circle at 50% 42%,rgba(220,216,40,.13),transparent 26%),
    #F7F8F4;
  opacity:1;
  visibility:visible;
  pointer-events:all;
  transition:
    opacity 420ms cubic-bezier(.22,.72,.24,1),
    visibility 0s linear 420ms;
}

.gvm-preloader-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  width:min(330px,72vw);
}

.gvm-preloader-logo{
  width:min(290px,68vw);
  height:auto;
  display:block;
  opacity:0;
  transform:translate3d(0,8px,0) scale(.965);
  animation:
    gvmLogoEnter 650ms cubic-bezier(.22,.72,.24,1) 70ms forwards,
    gvmLogoBreathe 1350ms ease-in-out 720ms infinite alternate;
}

.gvm-preloader-line{
  position:relative;
  width:min(170px,44vw);
  height:3px;
  margin-top:20px;
  overflow:hidden;
  border-radius:99px;
  background:rgba(23,27,34,.08);
}

.gvm-preloader-line::after{
  content:"";
  position:absolute;
  inset:0;
  width:42%;
  border-radius:inherit;
  background:#DCD828;
  transform:translate3d(-120%,0,0);
  animation:gvmLineTravel 980ms cubic-bezier(.22,.72,.24,1) 240ms infinite;
}

.gvm-preloader.is-leaving{
  opacity:0!important;
  pointer-events:none!important;
}

.gvm-preloader.is-leaving .gvm-preloader-logo{
  animation:none;
  opacity:0;
  transform:scale(1.035);
  transition:
    opacity 300ms ease,
    transform 360ms cubic-bezier(.22,.72,.24,1);
}

@keyframes gvmLogoEnter{
  to{
    opacity:1;
    transform:translate3d(0,0,0) scale(1);
  }
}

@keyframes gvmLogoBreathe{
  from{transform:scale(1)}
  to{transform:scale(1.018)}
}

@keyframes gvmLineTravel{
  0%{transform:translate3d(-120%,0,0)}
  70%,100%{transform:translate3d(340%,0,0)}
}

/* ---------- REVEALS ---------- */
.gvm-ready .gvm-item{
  opacity:.001;
  transform:translate3d(0,var(--gvm-distance),0);
  transition:
    opacity var(--gvm-duration) var(--gvm-ease),
    transform var(--gvm-duration) var(--gvm-ease);
  transition-delay:var(--gvm-delay,0ms);
}

.gvm-ready .gvm-item.gvm-in{
  opacity:1;
  transform:translate3d(0,0,0);
}

.gvm-done{
  opacity:1!important;
  transform:none!important;
}

@media (hover:hover) and (pointer:fine){
  .gv-btn,
  .gv-pref,
  .gv-dest-card,
  .gv-package,
  .gv-service-card,
  .gv-value-card,
  .gv-service-visual,
  .gv-about-point{
    transition:
      transform 200ms var(--gvm-ease),
      box-shadow 220ms ease,
      border-color 220ms ease!important;
  }

  .gv-btn:hover{
    transform:translate3d(0,-2px,0);
  }

  .gv-dest-card:hover,
  .gv-package:hover,
  .gv-service-card:hover,
  .gv-value-card:hover,
  .gv-service-visual:hover,
  .gv-about-point:hover{
    transform:translate3d(0,-4px,0);
  }
}

.gv-btn:active,
.gv-pref:active,
.gv-swap-route:active,
.gv-planner-continue:active:not(:disabled){
  transform:scale(.98)!important;
}

@media (max-width:767px){
  :root{
    --gvm-duration:340ms;
    --gvm-distance:9px;
  }

  .gvm-ready .gvm-item{
    transition-delay:min(var(--gvm-delay,0ms),70ms);
  }

  .gvm-preloader-inner{
    width:min(280px,74vw);
  }

  .gvm-preloader-logo{
    width:min(245px,70vw);
  }

  .gvm-preloader-line{
    margin-top:16px;
  }
}

@media (prefers-reduced-motion:reduce){
  .gvm-preloader-logo,
  .gvm-preloader-line::after{
    animation:none!important;
  }

  .gvm-preloader-logo{
    opacity:1!important;
    transform:none!important;
  }

  .gvm-item,
  .gvm-in,
  .gvm-done{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}