/*
 * Lona Commerce — icône du panier animée.
 *
 * Réglages par variables, posées par Elementor sur .lc-carticon :
 *   --lc-ci-size      taille du symbole
 *   --lc-ci-badge     diamètre du compteur
 *   --lc-ci-duration  durée de l'animation
 */

.lc-carticon-wrap{display:flex;align-items:center;}
.lc-carticon{--lc-ci-size:26px;--lc-ci-badge:18px;--lc-ci-duration:750ms;position:relative;display:inline-flex;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:8px;color:var(--lc-ink,#241713);text-decoration:none;line-height:1;transition:color .2s;}
.lc-carticon:hover,.lc-carticon:focus-visible{color:var(--lc-accent,#8c5a35);}
.lc-carticon:focus-visible{outline:2px solid var(--lc-accent,#8c5a35);outline-offset:2px;border-radius:var(--lc-radius-sm,6px);}

.lc-carticon-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--lc-ci-size);height:var(--lc-ci-size);transform-origin:50% 60%;}
.lc-carticon-svg{display:block;width:100%;height:100%;}
.lc-carticon-custom{display:inline-flex;font-size:var(--lc-ci-size);line-height:1;}
.lc-carticon-custom svg{width:var(--lc-ci-size);height:var(--lc-ci-size);fill:currentColor;}

.lc-carticon-label,.lc-carticon-total{font-size:15px;font-weight:600;white-space:nowrap;}
.lc-carticon-total:empty{display:none;}

/* Compteur */
.lc-carticon-count{position:absolute;top:calc(var(--lc-ci-badge) * -0.45);right:calc(var(--lc-ci-badge) * -0.55);min-width:var(--lc-ci-badge);height:var(--lc-ci-badge);padding:0 calc(var(--lc-ci-badge) * .28);border-radius:999px;background:var(--lc-accent,#8c5a35);color:#fff;font-size:calc(var(--lc-ci-badge) * .62);font-weight:700;line-height:var(--lc-ci-badge);text-align:center;box-sizing:border-box;box-shadow:0 0 0 2px var(--lc-paper,#fff);}
.lc-carticon--badge-top-left .lc-carticon-count{right:auto;left:calc(var(--lc-ci-badge) * -0.55);}
.lc-carticon--badge-inline .lc-carticon-icon{width:auto;gap:6px;}
.lc-carticon--badge-inline .lc-carticon-svg,.lc-carticon--badge-inline .lc-carticon-custom{width:var(--lc-ci-size);height:var(--lc-ci-size);flex:0 0 auto;}
.lc-carticon--badge-inline .lc-carticon-count{position:static;box-shadow:none;}
.lc-carticon-count.is-empty{background:var(--lc-line,#e6dccb);color:var(--lc-muted,#6e5b50);}
.lc-carticon--hide-empty .lc-carticon-count.is-empty{display:none;}

/* -------------------------------------------------------------- Mouvements */

.lc-carticon.is-added .lc-carticon-icon{animation-duration:var(--lc-ci-duration);animation-timing-function:cubic-bezier(.28,.84,.42,1);animation-fill-mode:both;}
.lc-carticon.is-added[data-anim="bounce"] .lc-carticon-icon{animation-name:lc-ci-bounce;}
.lc-carticon.is-added[data-anim="jump"] .lc-carticon-icon{animation-name:lc-ci-jump;}
.lc-carticon.is-added[data-anim="shake"] .lc-carticon-icon{animation-name:lc-ci-shake;animation-timing-function:ease-in-out;}
.lc-carticon.is-added[data-anim="swing"] .lc-carticon-icon{animation-name:lc-ci-swing;animation-timing-function:ease-in-out;transform-origin:50% 0;}
.lc-carticon.is-added[data-anim="pulse"] .lc-carticon-icon{animation-name:lc-ci-pulse;}
.lc-carticon.is-added .lc-carticon-count{animation:lc-ci-pop calc(var(--lc-ci-duration) * .7) cubic-bezier(.28,.84,.42,1) both;}

@keyframes lc-ci-bounce{
	0%{transform:translateY(0) scale(1,1);}
	15%{transform:translateY(0) scale(1.12,.86);}
	40%{transform:translateY(-38%) scale(.94,1.08);}
	62%{transform:translateY(0) scale(1.06,.94);}
	78%{transform:translateY(-12%) scale(1,1);}
	100%{transform:translateY(0) scale(1,1);}
}
@keyframes lc-ci-jump{
	0%{transform:translateY(0) rotate(0);}
	30%{transform:translateY(-45%) rotate(-12deg);}
	55%{transform:translateY(0) rotate(6deg);}
	75%{transform:translateY(-8%) rotate(-3deg);}
	100%{transform:translateY(0) rotate(0);}
}
@keyframes lc-ci-shake{
	0%,100%{transform:rotate(0);}
	15%{transform:rotate(-14deg);}
	30%{transform:rotate(12deg);}
	45%{transform:rotate(-9deg);}
	60%{transform:rotate(6deg);}
	75%{transform:rotate(-3deg);}
}
@keyframes lc-ci-swing{
	0%,100%{transform:rotate(0);}
	20%{transform:rotate(18deg);}
	40%{transform:rotate(-12deg);}
	60%{transform:rotate(7deg);}
	80%{transform:rotate(-3deg);}
}
@keyframes lc-ci-pulse{
	0%{transform:scale(1);}
	30%{transform:scale(1.28);}
	55%{transform:scale(.92);}
	75%{transform:scale(1.06);}
	100%{transform:scale(1);}
}
@keyframes lc-ci-pop{
	0%{transform:scale(.4);}
	55%{transform:scale(1.4);}
	80%{transform:scale(.92);}
	100%{transform:scale(1);}
}

/*
 * « +1 » qui monte au-dessus de l'icône et s'efface. Clair, cerné d'accent :
 * il ne doit pas se confondre avec le compteur, plein et foncé.
 */
.lc-carticon-plus{position:absolute;left:50%;top:0;z-index:2;padding:1px 7px;border:1px solid var(--lc-accent,#8c5a35);border-radius:999px;background:var(--lc-cream,#f8f3eb);color:var(--lc-accent,#8c5a35);font-size:12px;font-weight:700;line-height:1.4;white-space:nowrap;pointer-events:none;animation:lc-ci-plus 1s ease-out forwards;}
.lc-carticon-plus--down{animation-name:lc-ci-plus-down;}
@keyframes lc-ci-plus{
	0%{opacity:0;transform:translate(-50%,0) scale(.6);}
	20%{opacity:1;transform:translate(-50%,-80%) scale(1.05);}
	70%{opacity:1;transform:translate(-50%,-150%) scale(1);}
	100%{opacity:0;transform:translate(-50%,-210%) scale(.95);}
}
/* Icône tout en haut de l'écran : pas de place au-dessus, le « +1 » descend. */
@keyframes lc-ci-plus-down{
	0%{opacity:0;transform:translate(-50%,-40%) scale(.6);}
	20%{opacity:1;transform:translate(-50%,10%) scale(1.05);}
	70%{opacity:1;transform:translate(-50%,70%) scale(1);}
	100%{opacity:0;transform:translate(-50%,120%) scale(.95);}
}

/* Photo du produit en vol vers le panier (créée puis retirée par le script) */
.lc-carticon-flyer{position:fixed;z-index:100000;margin:0;object-fit:cover;border-radius:12px;box-shadow:0 14px 30px -10px rgba(36,23,19,.45);pointer-events:none;will-change:transform,opacity;}

/*
 * Mouvement réduit, demandé par l'appareil : ni vol, ni saut, ni « +1 » —
 * seulement un bref changement de teinte, pour qu'on voie tout de même que le
 * panier a changé.
 */
@media (prefers-reduced-motion: reduce){
	.lc-carticon.is-added .lc-carticon-icon,
	.lc-carticon.is-added .lc-carticon-count{animation:none;}
	.lc-carticon.is-added{color:var(--lc-accent,#8c5a35);}
	.lc-carticon-plus,.lc-carticon-flyer{display:none;}
}
