/* « Suivre mes vins » - la cloche.
   Une cloche et non un coeur : on ne met pas en favori, on demande a etre
   prevenu. L'etat plein/trait dit si l'on suit deja. */

.dv-suivi {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    font-family: inherit;
    cursor: pointer;
    border-radius: 8px;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}

.dv-suivi-ico { flex: none; }

/* L'emplacement garde sa taille quand la cloche s'efface : sans lui, le
   bouton se retrecit d'un cran a chaque clic. */
.dv-suivi-slot {
    position: relative;
    flex: none;
    display: inline-flex;
    width: 18px;
    height: 18px;
}

/* --- Le clic : un tour de roue plutot qu'un bouton mort --- */
.dv-suivi.is-busy { cursor: progress; }
.dv-suivi.is-busy .dv-suivi-ico { opacity: 0; }
.dv-suivi.is-busy .dv-suivi-txt { opacity: .55; }

.dv-suivi.is-busy .dv-suivi-slot::after {
    content: "";
    position: absolute;
    inset: 1px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    opacity: .8;
    animation: dv-suivi-tourne .6s linear infinite;
}

@keyframes dv-suivi-tourne {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .dv-suivi.is-busy .dv-suivi-slot::after { animation-duration: 2s; }
}

/* --- Sur la fiche produit : une offre de repli, pas un second panier ---
   Elle se pose sous les icones de reassurance et emprunte leur discretion :
   le seul geste qui doit peser sur cette page, c'est l'ajout au panier. */
.dv-suivi--fiche {
    width: 100%;
    margin-top: .75em;
    padding: .85em 1.2em;
    background: var(--color-white);
    border: 1px solid #DDDFE6;
    color: #5F6169;
    font-size: var(--fs-text-phone);
    font-weight: var(--fw-medium);
    line-height: 1.35;
    text-align: left;
}

.dv-suivi--fiche:hover {
    border-color: var(--color-light-black);
    color: var(--color-light-black);
}

/* Suivi : l'encre, jamais l'or - le bandeau de prix est deja jaune, la cloche
   s'y serait fondue. Le fond gris tres clair suffit a dire « c'est fait ». */
.dv-suivi--fiche.is-on {
    background: #F5F6F8;
    border-color: var(--color-light-black);
    color: var(--color-light-black);
    font-weight: var(--fw-bold);
}

/* --- Dans le bandeau de prix, quand la bouteille est epuisee ---
   Elle occupe la place du prix : meme surface, meme or, meme poids. Le bandeau
   cede tout son rembourrage au bouton, sinon l'etat « suivi » ne teinterait
   qu'une bande au milieu de l'or. */
.produit-left-card-bottom--alerte { padding: 0; }

.dv-suivi--prix {
    width: 100%;
    padding: 1.35em 1em;
    border: none;
    border-radius: 0 0 16px 16px;
    background: transparent;
    color: var(--color-light-black);
    font-size: var(--fs-text);
    font-weight: var(--fw-bold);
}

.dv-suivi--prix .dv-suivi-ico,
.dv-suivi--prix .dv-suivi-slot { width: 21px; height: 21px; }

.dv-suivi--prix:hover { background: rgba(24, 24, 28, .06); }

/* Suivi : l'or reste, mais le bandeau s'assombrit d'un souffle - assez pour
   dire « c'est enregistre », pas assez pour changer la carte de couleur. */
.dv-suivi--prix.is-on { background: rgba(24, 24, 28, .09); }

/* --- Sur une carte en rupture : la cloche prend la place du panier --- */
.dv-suivi--carte {
    width: 38px;
    height: 38px;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--color-white);
}

.dv-suivi--carte:hover { color: var(--color-yellow); }
.dv-suivi--carte.is-on { color: var(--color-yellow); }

/* --- Dans la page du compte --- */
.dv-suivi--compte {
    padding: .55em 1em;
    background: var(--color-white);
    border: 1px solid #D9DBE1;
    color: var(--color-dark-grey);
    font-size: var(--fs-text-phone);
    font-weight: var(--fw-medium);
}

.dv-suivi--compte:hover { color: var(--color-black); border-color: var(--color-black); }
.dv-suivi--compte.is-on { color: var(--color-light-black); border-color: var(--color-light-black); }
