/**
 * [Trésor] Panier global : lien panier dans le menu + panier flottant.
 *
 * Les couleurs, la typographie et la taille du bouton sont pilotées par les
 * variables CSS posées inline par le plugin (options « Trésor »).
 */

.ct-global-cart {
	--ct-icon-color: #291d1c;
	--ct-icon-hover-color: #c37155;
	--ct-count-bg: #c37155;
	--ct-count-color: #ffffff;
	--ct-icon-gap: 8px;
	--ct-icon-size: 24px;
	--ct-label-family: inherit;
	--ct-label-size: inherit;
	--ct-label-weight: inherit;
	--ct-label-style: inherit;
	--ct-label-transform: inherit;
	--ct-label-spacing: inherit;
	--ct-float-size: 58px;
	--ct-float-icon-size: 48%;
	--ct-float-radius: 14px;

	display: inline-flex;
	align-items: center;
	list-style: none;
}

/* Le theme Lettery pose .mil-link (display: inline-block) sur les liens de
   menu : meme specificite, charge avant. Nos regles sont donc scopees sous
   .ct-global-cart pour passer devant, quel que soit l'ordre de chargement
   (sans cela le panier n'est pas en flex : pas de gap, bulle collee a l'icone). */
.ct-global-cart .ct-global-cart__link,
.ct-global-cart .ct-global-cart__float-link {
	display: inline-flex;
	align-items: center;
	gap: var(--ct-icon-gap, 8px);
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	box-shadow: none;
	color: var(--ct-icon-color);
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	vertical-align: middle;
	transition: color 0.2s ease;
}

.ct-global-cart .ct-global-cart__link:hover,
.ct-global-cart .ct-global-cart__link:focus-visible,
.ct-global-cart .ct-global-cart__float-link:hover,
.ct-global-cart .ct-global-cart__float-link:focus-visible {
	color: var(--ct-icon-hover-color);
	text-decoration: none;
}

.ct-global-cart .ct-global-cart__link:focus-visible,
.ct-global-cart .ct-global-cart__float-link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.ct-global-cart .ct-global-cart__icon-wrap {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: var(--ct-icon-size, 24px);
	height: var(--ct-icon-size, 24px);
	color: currentColor;
}

.ct-global-cart .ct-global-cart__icon {
	display: block;
	width: 100%;
	height: 100%;
}

.ct-global-cart__label {
	font-family: var(--ct-label-family, inherit);
	font-size: var(--ct-label-size, inherit);
	font-weight: var(--ct-label-weight, inherit);
	font-style: var(--ct-label-style, inherit);
	text-transform: var(--ct-label-transform, inherit);
	letter-spacing: var(--ct-label-spacing, inherit);
	white-space: nowrap;
}

/* Pastille compteur : même classe que le widget Elementor pour que les
   fragments AJAX WooCommerce mettent les deux à jour.
   Badge de notification : 17 px, arrondi, centré sur la ligne. */
.ct-global-cart .ct-cart-link__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: center;
	flex: 0 0 auto;
	min-width: 17px;
	height: 17px;
	padding: 0 3px;
	border-radius: 999px;
	background-color: var(--ct-count-bg);
	color: var(--ct-count-color);
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
}

/* Panier du menu : la pastille est une propriété de l'icône, superposée
   dans son coin haut-droit (léger débordement, 4 px). */
.ct-global-cart .ct-global-cart__icon-wrap .ct-cart-link__count {
	position: absolute;
	top: -8px;
	right: -10px;
}

/* Panier flottant ------------------------------------------------------- */

.ct-global-cart.ct-global-cart--float {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 9999;
}

.ct-global-cart.ct-global-cart--float .ct-global-cart__float-link {
	position: relative;
	justify-content: center;
	width: var(--ct-float-size);
	height: var(--ct-float-size);
	border-radius: 50%;
	background-color: #ffffff;
	border: 1px solid rgba(41, 29, 28, 0.12);
	box-shadow: 0 6px 20px rgba(41, 29, 28, 0.16);
}

.ct-global-cart.ct-global-cart--float[data-shape="radius"] .ct-global-cart__float-link {
	border-radius: var(--ct-float-radius);
}

.ct-global-cart.ct-global-cart--float .ct-global-cart__icon-wrap {
	width: var(--ct-float-icon-size, 48%);
	height: var(--ct-float-icon-size, 48%);
}

.ct-global-cart.ct-global-cart--float .ct-cart-link__count {
	position: absolute;
	top: -3px;
	right: -3px;
	box-shadow: 0 0 0 0;
}

@media screen and (max-width: 767px) {
	.ct-global-cart.ct-global-cart--float {
		right: 16px;
		bottom: 16px;
	}

	.ct-global-cart__label {
		white-space: normal;
	}
}

/* Le toast (notification d'ajout au panier) se cale au-dessus du panier
   flottant pour ne pas le masquer. */
body:has(.ct-global-cart--float) .tresor-toast {
	bottom: calc(24px + var(--ct-float-size, 58px) + 16px);
}

@media screen and (max-width: 767px) {
	body:has(.ct-global-cart--float) .tresor-toast {
		bottom: calc(16px + var(--ct-float-size, 58px) + 16px);
	}
}
