/* HYPNO.GURU v13 interaction repair: direct cursor hotspot positioning and explicit action hit areas. */

/* Use the pointer coordinates as the element's actual fixed left/top anchor. This avoids
   transform/margin interpolation and keeps the visible ring centered during hover resize. */
body.has-custom-cursor .custom-cursor,
body.has-custom-cursor .custom-cursor.is-hover {
  position: fixed !important;
  inset: auto !important;
  left: var(--cursor-x, -100px) !important;
  top: var(--cursor-y, -100px) !important;
  width: 26px !important;
  height: 26px !important;
  margin: 0 !important;
  pointer-events: none !important;
  transform: translate(-50%, -50%) !important;
  transition: width 160ms var(--ease-emphasis), height 160ms var(--ease-emphasis), background-color 160ms var(--ease-out), border-color 160ms var(--ease-out), opacity 160ms var(--ease-out) !important;
  will-change: left, top, width, height;
}

body.has-custom-cursor .custom-cursor.is-hover {
  width: 44px !important;
  height: 44px !important;
}

/* Keep the cursor visual itself out of hit testing even if a legacy selector wins. */
body.has-custom-cursor .custom-cursor,
body.has-custom-cursor .custom-cursor * {
  pointer-events: none !important;
}

/* Explicitly restore reliable hit testing for every interactive control. */
button,
a,
input,
textarea,
select,
summary,
label,
[role="button"] {
  -webkit-tap-highlight-color: transparent !important;
}

button,
a.action-link,
a.plain-button,
.plain-button,
.menu-button,
.question-actions button,
.review-actions button,
.prepared-actions button,
.contact-choice label,
.choice-card,
.consent-row,
.mobile-panel a,
.mobile-panel button {
  position: relative !important;
  z-index: 4 !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}

button,
a.action-link,
a.plain-button,
.plain-button,
.menu-button,
.question-actions button,
.review-actions button,
.prepared-actions button,
.contact-choice label,
.choice-card,
.consent-row,
.mobile-panel a,
.mobile-panel button {
  cursor: pointer !important;
}

input[type="text"],
input[type="email"],
input[type="tel"],
textarea,
select {
  pointer-events: auto !important;
  touch-action: manipulation !important;
}

.request-experience .question-actions,
.request-experience .review-actions,
.request-experience .prepared-actions,
.request-experience .contact-choice,
.request-experience .consent-row,
.site-header,
.header-actions,
.menu-button,
.mobile-panel {
  isolation: isolate;
}

.request-experience .question-actions,
.request-experience .review-actions,
.request-experience .prepared-actions {
  position: relative !important;
  z-index: 5 !important;
}

@media (hover: none), (pointer: coarse) {
  /* The custom cursor is decorative on touch devices; native touch hit testing remains. */
  body.has-custom-cursor .custom-cursor,
  body.has-custom-cursor .custom-cursor * {
    display: none !important;
  }

  button,
  a,
  input,
  textarea,
  select,
  summary,
  label,
  [role="button"] {
    touch-action: manipulation !important;
  }
}
