/*!
 * NIK / DRIN — Cursore luminoso · CSS
 * Il pallino sostituisce la freccia di sistema solo quando lo script è attivo
 * (classe .ndc-active su <html>). Se il JS non parte, resta il cursore normale.
 */

/* ── 1. Colori ───────────────────────────────────────────────────────────
   --awb-color1 / 4 / 5 / 7 = posizioni 1 (bianco), 4 ("Nik"), 5 ("Drin") e 7 (antracite)
   della palette globale di Avada. I valori dopo la virgola sono gli HEX ufficiali
   delle Fondamenta, usati solo se la variabile Avada non esiste.            */
:root {
  --ndc-nik: var(--awb-color4, #CD3661);
  --ndc-drin: var(--awb-color5, #35A8CC);
  --ndc-neutral: var(--awb-color7, #3D3D3D); /* antracite: sezioni chiare */
  --ndc-white: var(--awb-color1, #FFFFFF);
  --ndc-neutral-dark: var(--ndc-white);   /* bianco: sezioni scure (.ndc-dark) */

  /* Colore del testo delle etichette, scelto per il contrasto */
  --ndc-nik-ink: var(--ndc-white);
  --ndc-drin-ink: var(--ndc-white);
  --ndc-neutral-ink: var(--ndc-white);
  --ndc-neutral-dark-ink: var(--ndc-neutral);

  /* Bordo del pallino, come il contorno del cursore classico:
     bianco sui pallini colorati, antracite sul pallino bianco */
  --ndc-ring: var(--ndc-white);
  --ndc-ring-dark: var(--ndc-neutral);
  --ndc-ring-width: 1.5px;

  --ndc-dot-size: 12px;
}

/* ── 2. Nasconde la freccia di sistema ───────────────────────────────────
   Le aree escluse (campi di testo, .ndc-native) e tutto il loro contenuto
   non ricevono "cursor:none": lì il browser usa i suoi cursori normali.    */
html.ndc-active,
html.ndc-active *:not(:is(
  textarea,
  [contenteditable]:not([contenteditable="false"]),
  input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="image"]),
  .ndc-native, [data-cursor="native"]
), :is(.ndc-native, [data-cursor="native"]) *),
html.ndc-active *:not(:is(.ndc-native, [data-cursor="native"]), :is(.ndc-native, [data-cursor="native"]) *)::before,
html.ndc-active *:not(:is(.ndc-native, [data-cursor="native"]), :is(.ndc-native, [data-cursor="native"]) *)::after {
  cursor: none !important;
}

/* Il cursore si eredita: l'area esclusa riparte da "auto", così non eredita
   il "none" della pagina (era il motivo per cui non si vedeva nulla). */
html.ndc-active :is(
  textarea,
  [contenteditable]:not([contenteditable="false"]),
  input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="image"])
) {
  cursor: text;
}
html.ndc-active :is(.ndc-native, [data-cursor="native"]) {
  cursor: auto;
}

/* ── 3. Elementi del cursore ───────────────────────────────────────────── */
#nikdrin-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  z-index: 2147483647;
  pointer-events: none !important;
  user-select: none;
  -webkit-user-select: none;
  opacity: 0;
  color: var(--ndc-neutral);
  will-change: transform;
  transition: opacity 120ms ease, color 155ms linear;
}
#nikdrin-cursor.ndc-visible { opacity: 1; }

#nikdrin-cursor[data-tone="nik"]          { color: var(--ndc-nik); }
#nikdrin-cursor[data-tone="drin"]         { color: var(--ndc-drin); }
#nikdrin-cursor[data-tone="neutral-dark"] { color: var(--ndc-neutral-dark); --ndc-ring: var(--ndc-ring-dark); }

/* Scia (canvas 216×216 centrato sul pallino) */
#nikdrin-cursor .ndc-trail {
  position: absolute;
  left: -108px;
  top: -108px;
  width: 216px;
  height: 216px;
  opacity: 0;
}

/* Pallino: il suo centro è il punto esatto del click */
#nikdrin-cursor .ndc-dot {
  position: absolute;
  left: 0;
  top: 0;
  width: var(--ndc-dot-size);
  height: var(--ndc-dot-size);
  border-radius: 50%;
  translate: -50% -50%;
  background: currentColor;
  /* a riposo: solo alone luminoso (bordo e ombra a spessore zero) */
  box-shadow:
    0 0 0 0 var(--ndc-ring),
    0 0 0 0 transparent,
    0 0 12px color-mix(in srgb, currentColor 30%, transparent);
  transition: scale 160ms ease, opacity 160ms ease, box-shadow 160ms ease;
}
/* Sopra link e pulsanti il pallino si ingrandisce (sostituisce la "manina") */
#nikdrin-cursor.ndc-hover .ndc-dot {
  scale: 1.75;
  opacity: .85;
  /* bordo + ombra, come il cursore classico, solo sugli elementi cliccabili */
  box-shadow:
    0 0 0 var(--ndc-ring-width) var(--ndc-ring),
    0 1px 3px 1px color-mix(in srgb, var(--ndc-neutral) 55%, transparent),
    0 0 12px color-mix(in srgb, currentColor 30%, transparent);
}
#nikdrin-cursor.ndc-down .ndc-dot              { scale: .75; }
#nikdrin-cursor.ndc-hover.ndc-down .ndc-dot    { scale: 1.35; }

/* Etichetta */
#nikdrin-cursor .ndc-label {
  position: absolute;
  left: 0;
  top: 0;
  max-width: 250px;
  padding: 5px 10px;
  border-radius: 3px;
  background: currentColor;
  font-family: inherit;          /* eredita la tipografia del sito */
  font-size: 11px;
  font-weight: 700;
  line-height: 17px;
  letter-spacing: .02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  opacity: 0;
  translate: 0 3px;
  transition: opacity 110ms ease, translate 110ms ease;
}
#nikdrin-cursor .ndc-label span { color: var(--ndc-neutral-ink); }
#nikdrin-cursor[data-tone="nik"] .ndc-label span          { color: var(--ndc-nik-ink); }
#nikdrin-cursor[data-tone="drin"] .ndc-label span         { color: var(--ndc-drin-ink); }
#nikdrin-cursor[data-tone="neutral-dark"] .ndc-label span { color: var(--ndc-neutral-dark-ink); }
#nikdrin-cursor.ndc-has-label .ndc-label { opacity: 1; translate: 0 0; }

/* ── 4. Sicurezza: niente effetto su touch, senza hover o in stampa ─────── */
@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce), print {
  #nikdrin-cursor { display: none !important; }
}
