/* Premium clinic - editorial motion layer */

html {
  scroll-behavior: smooth;
  scroll-padding-top: max(5.75rem, env(safe-area-inset-top, 0px) + 4.75rem);
  scroll-padding-bottom: max(5.5rem, env(safe-area-inset-bottom, 0px) + 1rem);
}

@media (min-width: 768px) {
  html {
    scroll-padding-bottom: 1rem;
  }
}

@supports (height: 100dvh) {
  @media (max-width: 767px) {
    .hero-cinematic {
      min-height: 100dvh;
    }
  }
}

.tap-target {
  min-height: 44px;
  align-items: center;
}

.scroll-rail-x {
  scroll-padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
  scroll-padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
  -webkit-overflow-scrolling: touch;
}

.noise {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 30;
  opacity: 0.04;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E");
}

.hero-mesh {
  background:
    radial-gradient(ellipse 100% 80% at 0% 0%, rgba(158, 139, 104, 0.14), transparent 55%),
    radial-gradient(ellipse 70% 50% at 100% 20%, rgba(245, 240, 232, 0.9), transparent),
    linear-gradient(165deg, #fdfcf9 0%, #f5f0e8 45%, #fdfcf9 100%);
}

.hero-vignette {
  box-shadow: inset 0 0 120px rgba(28, 27, 26, 0.04);
}

.hero-frame .group\/media {
  border-radius: inherit;
}

.page-loader {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fdfcf9;
  transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.65s step-end;
}

.page-loader.is-done {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.page-loader__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
}

.page-loader__line {
  display: block;
  height: 1px;
  width: 5rem;
  background: linear-gradient(90deg, transparent, rgba(158, 139, 104, 0.55), transparent);
}

.section-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(158, 139, 104, 0.35), transparent);
}

.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity 1s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.floating-card {
  animation: floaty 8s ease-in-out infinite;
}

@keyframes floaty {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}

[data-nav].is-scrolled .nav-shell {
  margin-top: 0.5rem;
  box-shadow: 0 20px 60px rgba(28, 27, 26, 0.08);
}

details summary::-webkit-details-marker {
  display: none;
}

.btn-magnetic {
  will-change: transform;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
}

.service-card {
  will-change: transform;
}


.mobile-cta span {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
}

@media (hover: hover) and (pointer: fine) {
  .mobile-cta:hover span {
    transform: translateY(-2px);
    box-shadow: 0 24px 60px rgba(28, 27, 26, 0.15);
  }
}

@media (min-width: 768px) {
  .mobile-cta {
    display: none;
  }
}

.services-rail {
  mask-image: linear-gradient(90deg, transparent, #000 2%, #000 98%, transparent);
}

.footer-link {
  color: inherit;
  text-decoration: none;
}

.footer-link:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}
