/* Global custom cursor (index.html — buiten SPA #root) */
#entuin-cursor {
  position: fixed;
  inset: 0;
  z-index: 100001;
  pointer-events: none;
}

#cursor-dot {
  width: 8px;
  height: 8px;
  background: white;
  border-radius: 50%;
  position: fixed;
  top: 0;
  left: 0;
  will-change: transform;
  mix-blend-mode: difference;
  pointer-events: none;
}

#cursor-ring {
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  position: fixed;
  top: 0;
  left: 0;
  will-change: transform;
  transition: width 0.25s cubic-bezier(0.22, 0.68, 0, 1), height 0.25s cubic-bezier(0.22, 0.68, 0, 1),
    border-color 0.2s;
  mix-blend-mode: difference;
  pointer-events: none;
}

body:has(a:hover) #cursor-ring,
body:has(button:hover) #cursor-ring {
  width: 64px;
  height: 64px;
  border-color: hsl(195 55% 42%);
}

/* Verberg duplicate cursor markup uit geladen HTML pagina's */
#root #cursor,
#root #cursor-dot,
#root #cursor-ring {
  display: none !important;
}

/* Hide custom cursor on touch devices */
@media (hover: none), (pointer: coarse) {
  #entuin-cursor,
  #cursor-dot,
  #cursor-ring {
    display: none !important;
  }

  body {
    cursor: auto !important;
  }
}

/* Mobile nav — reliable tap target above page content */
.nav-hamburger {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.mobile-menu {
  -webkit-overflow-scrolling: touch;
}

/* Mobile/tablet menu — fade + slide in from right (overlay, not page transition) */
@media (max-width: 860px) {
  .mobile-menu {
    opacity: 1 !important;
    transform: translate3d(100%, 0, 0);
    transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1) !important;
    will-change: transform;
  }

  .mobile-menu.open {
    transform: translate3d(0, 0, 0);
  }
}

/* Gesprek drawer — keep vertical top→bottom on all breakpoints */
@media (max-width: 860px) {
  .gesprek-drawer {
    transform: translateY(-100%);
    transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .gesprek-drawer.open {
    transform: translateY(0);
  }
}

html.entuin-pt-lock .mobile-menu.open {
  pointer-events: none;
}

html.entuin-scroll-lock body {
  overflow: hidden !important;
}

/* Mobile: restore vertical scroll when no overlay/menu lock is active */
@media (hover: none), (pointer: coarse) {
  html {
    scroll-behavior: auto !important;
  }

  html:not(.entuin-pt-lock):not(.entuin-scroll-lock),
  html:not(.entuin-pt-lock):not(.entuin-scroll-lock) body {
    overflow-x: hidden;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    height: auto;
    min-height: 100%;
    touch-action: pan-y;
    overscroll-behavior-y: auto;
  }

  #entuin-page-transition:not(.is-active) {
    pointer-events: none !important;
    visibility: hidden !important;
  }
}

/* iOS tel: links — inherit color, no underline */
a[href^="tel:"],
a[x-apple-data-detectors] {
  color: inherit !important;
  text-decoration: none !important;
}
