/* ============================================================
   WEGAM — Curseur unique « liquid glass »
   Fleche stylisee en verre liquide, palette charte :
   rouge #fb0301, ivoire #F2F0EB, noir #0D0D0D.
   ============================================================ */

/* L'ancien carre n'est plus utilise. */
.wg-square {
  display: none !important;
}

/* Le petit carre du label projet faisait doublon avec le curseur. */
.wg-cur__btn {
  display: none !important;
}

@media (pointer: fine) {
  html,
  body,
  body * {
    cursor: none !important;
  }
}

.wg-cursor {
  position: fixed;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  z-index: 2147483647;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.25s ease;
  will-change: transform;
}

.wg-cursor.is-visible {
  opacity: 1;
}

/* ---- La fleche ---- */
.wg-cursor__arrow {
  position: absolute;
  left: 0;
  top: 0;
  width: 50px;
  height: 50px;
  transform: translate(-6px, -6px);
  transform-origin: 6px 6px;
  transition: transform 0.26s cubic-bezier(0.22, 1, 0.36, 1),
              filter 0.26s ease, opacity 0.2s ease;
  filter:
    drop-shadow(0 6px 10px rgba(0, 0, 0, 0.45))
    drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35));
  will-change: transform;
}

.wg-cursor__arrow svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

/* Chant : volume sombre decale sous la face, aretes arrondies */
.wg-cursor__depth {
  fill: url(#wg-cur-depth);
  stroke: #2b0000;
  stroke-width: 2.2;
  stroke-linejoin: round;
}

/* Face laquee */
.wg-cursor__face {
  fill: url(#wg-cur-face);
  stroke: rgba(255, 236, 232, 0.62);
  stroke-width: 0.9;
  stroke-linejoin: round;
  transition: fill 0.22s ease, stroke 0.22s ease;
}

/* Reflet large + point speculaire + arete interne */
.wg-cursor__gloss {
  fill: url(#wg-cur-gloss);
}

.wg-cursor__spec {
  fill: #ffffff;
  opacity: 0.72;
}

.wg-cursor__inner {
  fill: rgba(255, 255, 255, 0.16);
}

/* ---- Etat lien / bouton : plus grand, plus lumineux, halo rouge ---- */
.wg-cursor.is-link .wg-cursor__arrow {
  transform: translate(-6px, -6px) scale(1.18);
  filter:
    drop-shadow(0 0 9px rgba(251, 3, 1, 0.85))
    drop-shadow(0 6px 12px rgba(0, 0, 0, 0.42));
}

.wg-cursor.is-link .wg-cursor__face {
  fill: url(#wg-cur-face-link);
  stroke: #ffffff;
}

.wg-cursor.is-link .wg-cursor__spec {
  opacity: 0.9;
}

/* ---- Clic ---- */
.wg-cursor.is-down .wg-cursor__arrow {
  transform: translate(-6px, -6px) scale(0.92);
}

/* ---- Chargement : fleche attenuee + anneau rouge qui tourne ---- */
.wg-cursor__ring {
  position: absolute;
  left: 10px;
  top: 10px;
  width: 44px;
  height: 44px;
  margin: -22px 0 0 -22px;
  border-radius: 50%;
  border: 2px solid rgba(251, 3, 1, 0.18);
  border-top-color: #fb0301;
  opacity: 0;
  transition: opacity 0.25s ease;
  animation: wg-cursor-spin 0.75s linear infinite;
}

@keyframes wg-cursor-spin {
  to { transform: rotate(360deg); }
}

.wg-cursor.is-loading .wg-cursor__ring {
  opacity: 1;
}

.wg-cursor.is-loading .wg-cursor__arrow {
  opacity: 0.4;
}

/* ---- Jamais sur tactile ---- */
@media (pointer: coarse) {
  .wg-cursor {
    display: none !important;
  }
}
