/* DiazUX Studio · Senior UX/UI cleanup
   Objetivo: claridad, control, accesibilidad y una experiencia profesional sin efectos hover invasivos. */

:root {
  --dxs-focus: #FFD400;
  --dxs-focus-shadow: rgba(255, 212, 0, .28);
}

html {
  scroll-behavior: smooth;
}

body {
  cursor: auto !important;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.cursor,
.cursor-ring,
#cursor,
#cursorRing,
#cur,
#ring,
#page-transition,
.card-glare {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Hover limpio: se eliminan movimientos, deformaciones, scramble y cursores magnéticos.
   Se conservan cambios de color/borde porque ayudan a reconocer elementos interactivos. */
:where(
  a, button, [role="button"],
  .btn-primary, .btn-prim, .btn-secondary, .btn-outline, .btn-ghost,
  .nav-cta, .plan-cta, .service-arrow, .read-link,
  .project-card, .proj-card, .case-card, .blog-card, .post-card,
  .service-card, .plan-card, .member-card, .team-card, .price-card,
  .hero-card, .hero-orb-card, .mcard, .esp-card, .vino-row, .gitem, .ig-item,
  [data-tilt]
) {
  cursor: pointer;
  will-change: auto !important;
}

:where(
  .btn-primary, .btn-prim, .btn-secondary, .btn-outline, .btn-ghost,
  .nav-cta, .plan-cta, .service-arrow, .read-link,
  .project-card, .proj-card, .case-card, .blog-card, .post-card,
  .service-card, .plan-card, .member-card, .team-card, .price-card,
  .hero-card, .hero-orb-card, .mcard, .esp-card, .vino-row, .gitem, .ig-item,
  [data-tilt]
):hover {
  transform: none !important;
}

:where(.btn-primary, .btn-prim, .btn-secondary, .btn-outline, .btn-ghost, .nav-cta, .plan-cta, .form-submit, .service-arrow, .read-link) {
  transition-property: background-color, background, color, border-color, opacity !important;
}

:where(.btn-primary:hover, .btn-prim:hover, .nav-cta:hover, .plan-cta:hover, .service-arrow:hover, .read-link:hover) {
  letter-spacing: .12em !important;
}

:where(.btn-secondary:hover, .btn-outline:hover) {
  letter-spacing: .14em !important;
}

:where(.form-submit:hover) {
  letter-spacing: .15em !important;
}

:where(.btn-ghost:hover) {
  gap: 8px !important;
}

:where(.project-card:hover .project-card-bg, .project-card:hover .project-card-img, .featured-post:hover .featured-img) {
  transform: none !important;
}

:where(.title-scramble-hover, .title-scramble-hover:hover,
  h1:hover, h2:hover, h3:hover,
  .hero-title:hover, .section-title:hover, .page-title:hover, .cta-title:hover,
  .proj-name:hover, .service-title:hover, .plan-title:hover, .member-name:hover,
  .post-title:hover, .faq-question:hover) {
  text-shadow: none !important;
}

/* Focus visible real: más importante que hover para accesibilidad. */
:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--dxs-focus) !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 6px var(--dxs-focus-shadow) !important;
}

:where(input, textarea, select) {
  min-height: 44px;
}

:where(button, .btn-primary, .btn-prim, .btn-secondary, .btn-outline, .btn-ghost, .nav-cta, .plan-cta) {
  min-height: 44px;
  touch-action: manipulation;
}

img {
  max-width: 100%;
}

/* Jerarquía y lectura en páginas densas */
:where(p, li) {
  text-wrap: pretty;
}

:where(h1, h2, h3) {
  text-wrap: balance;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
