/* Keep pre-login nav CTAs visually stable across marketing pages. */
.velo-loginlink,
.velo-loginlink:hover,
.velo-loginlink:focus-visible {
  background: #fff !important;
  color: #15132E !important;
  border-color: rgba(255, 255, 255, 0.86) !important;
  filter: none !important;
}

.velo-loginlink + a[href*="appointments/schedules"],
.velo-loginlink + a[href*="appointments/schedules"]:hover,
.velo-loginlink + a[href*="appointments/schedules"]:focus-visible,
.nav-cta[href*="appointments/schedules"],
.nav-cta[href*="appointments/schedules"]:hover,
.nav-cta[href*="appointments/schedules"]:focus-visible {
  background: #7C3AED !important;
  color: #fff !important;
  border-color: #7C3AED !important;
  filter: none !important;
}

footer .foot > div:first-child,
footer .velo-foot > div:first-child {
  transform: translateY(-7px);
}

footer .velo-footer-social {
  margin-top: -4px !important;
}

@media (hover: hover) and (pointer: fine) {
  footer a {
    transition:
      color 0.18s ease,
      opacity 0.18s ease,
      transform 0.18s cubic-bezier(.22,.61,.36,1);
  }

  footer .velo-footer-social {
    border: 1px solid transparent;
    color: inherit;
  }

  footer .velo-footer-social svg {
    display: block;
  }

  footer a:hover,
  footer a:focus-visible {
    color: #7C3AED !important;
    opacity: 1;
  }

  footer .velo-footer-social:hover,
  footer .velo-footer-social:focus-visible {
    background: #F3F0FF;
    border-color: #E2D9FF;
  }

  footer a[style*="inline-flex"]:hover,
  footer .btn:hover {
    transform: translateY(-2px) !important;
  }

  a[style*="inline-flex"],
  button[style*="inline-flex"] {
    transition:
      transform 0.2s cubic-bezier(.22,.61,.36,1),
      box-shadow 0.2s cubic-bezier(.22,.61,.36,1),
      filter 0.2s ease,
      background-color 0.2s ease,
      border-color 0.2s ease !important;
    will-change: transform, filter;
  }

  a[style*="inline-flex"]:hover,
  button[style*="inline-flex"]:hover {
    transform: translateY(-4px) scale(1.035) !important;
    filter: brightness(1.06) saturate(1.04);
    box-shadow: 0 24px 48px -20px rgba(21, 19, 46, 0.52) !important;
  }

  .card:hover {
    transform: translateY(-6px) scale(1.012) !important;
    box-shadow: 0 28px 58px -26px rgba(21, 19, 46, 0.38) !important;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .v-rise {
    filter: blur(6px);
    transform: translateY(22px) scale(.988);
  }

  .v-rise.v-in {
    filter: none;
    transform: none;
  }
}

@media (max-width: 860px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  div[style*="position:sticky"][style*="top:0"] {
    padding: 10px 10px 0 !important;
  }

  div[style*="position:sticky"][style*="top:0"] nav {
    grid-template-columns: auto auto !important;
    gap: 10px !important;
    padding: 9px 10px 9px 12px !important;
    border-radius: 22px !important;
  }

  div[style*="justify-self:end"] {
    gap: 8px !important;
  }

  div[style*="justify-self:end"] > a:not(.velo-loginlink) {
    display: none !important;
  }

  .velo-loginlink {
    display: none !important;
  }

  .velo-burger {
    display: inline-flex !important;
    flex: 0 0 auto !important;
  }

  #veloMenu {
    left: 10px !important;
    right: 10px !important;
    top: calc(100% + 6px) !important;
  }

  .foot,
  .velo-foot {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
}

@media (max-width: 520px) {
  h1 {
    font-size: clamp(34px, 11vw, 42px) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.025em !important;
  }

  h2 {
    font-size: clamp(25px, 8vw, 34px) !important;
    line-height: 1.08 !important;
  }

  p {
    font-size: 16px !important;
  }

  [style*="padding:88px 32px"],
  [style*="padding:96px 32px"],
  [style*="padding:100px 32px"],
  [style*="padding:110px 32px"],
  [style*="padding:80px 32px"],
  [style*="padding:72px 32px"],
  [style*="padding:56px 32px"],
  [style*="padding:48px 32px"],
  [style*="padding:40px 32px"],
  [style*="padding:8px 32px"] {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  [style*="padding:84px 32px"],
  [style*="padding:86px 32px"],
  [style*="padding:92px 32px"] {
    padding: 64px 20px !important;
  }

  a[style*="padding:15px"],
  a[style*="padding:14px"],
  a[style*="padding:13px 24px"],
  a[style*="padding:13px 32px"] {
    justify-content: center !important;
    max-width: 100% !important;
    white-space: nowrap !important;
  }

  section a[style*="padding:15px"],
  section a[style*="padding:14px"],
  section a[style*="padding:13px 24px"],
  section a[style*="padding:13px 32px"] {
    width: 100% !important;
  }

  .cards {
    gap: 16px !important;
  }

  .card {
    border-radius: 14px !important;
  }

  .svc-grid {
    gap: 18px !important;
  }

  .svc-col,
  .svc-col:nth-child(2),
  .svc-col:nth-child(3) {
    padding: 30px 22px !important;
    border-radius: 16px !important;
  }

  .svc-badge.popular {
    top: -14px !important;
    padding: 8px 16px !important;
    letter-spacing: 0.14em !important;
  }

}

@media (max-width: 360px) {
  div[style*="position:sticky"][style*="top:0"] nav {
    padding: 8px 9px 8px 10px !important;
  }

  div[style*="font-size:21px"] {
    font-size: 19px !important;
  }

  div[style*="font-size:10px"][style*="letter-spacing:0.14em"] {
    font-size: 9px !important;
  }
}
