/* Favoris — couleurs reprises du thème (palette globale Kadence), modifiables via --vm-fav-* dans le CSS additionnel. */
:root {
	--vm-fav-accent: var(--global-palette1, var(--wp--preset--color--primary, #2b45a6));
	--vm-fav-heart: #c0392b;
	--vm-fav-ink: var(--global-palette3, #1b2220);
	--vm-fav-muted: var(--global-palette5, #5d6864);
	--vm-fav-line: var(--global-palette7, #d9ddd9);
	--vm-fav-surface: var(--global-palette9, #ffffff);
}

/* Cœur sur la boutique (coin de la vignette) */
.products li.product, .wc-block-grid__product { position: relative; }
.vm-fav-btn { cursor: pointer; line-height: 0; }
.vm-fav-btn.vm-fav-loop {
	position: absolute; top: 10px; right: 10px; z-index: 5; width: 38px; height: 38px; padding: 0; margin: 0;
	display: flex; align-items: center; justify-content: center; border-radius: 50%; border: 0;
	background: rgba(255, 255, 255, .92); box-shadow: 0 1px 6px rgba(0, 0, 0, .18); color: var(--vm-fav-ink);
}
.vm-fav-btn.vm-fav-loop:hover, .vm-fav-btn.vm-fav-loop:focus { background: #fff; color: var(--vm-fav-heart); }
.vm-fav-heart { fill: transparent; stroke: currentColor; stroke-width: 1.8; transition: fill .15s, transform .15s; }
.vm-fav-btn.is-fav { color: var(--vm-fav-heart); }
.vm-fav-btn.is-fav .vm-fav-heart { fill: currentColor; }
.vm-fav-btn.vm-fav-pop .vm-fav-heart { transform: scale(1.3); }
.vm-fav-btn:focus-visible { outline: 2px solid var(--vm-fav-accent); outline-offset: 2px; }

/* Le thème ne doit pas restyler le cœur (fond, bordure, ombre des boutons). */
.vm-fav-btn.vm-fav-loop, .vm-fav-btn.vm-fav-loop:hover, .vm-fav-btn.vm-fav-loop:focus, .vm-fav-btn.vm-fav-loop:active {
	background: rgba(255, 255, 255, .94) !important; border: 0 !important; padding: 0 !important; min-height: 0 !important;
	width: 38px !important; height: 38px !important; text-decoration: none !important; outline-offset: 2px;
}
.vm-fav-btn.vm-fav-loop:not(.is-fav) { color: var(--vm-fav-ink) !important; }
.vm-fav-btn.vm-fav-loop:hover:not(.is-fav) { color: var(--vm-fav-heart) !important; }
.vm-fav-btn.is-fav { color: var(--vm-fav-heart) !important; }
.vm-fav-btn.vm-fav-single, .vm-fav-btn.vm-fav-single:hover, .vm-fav-btn.vm-fav-single:focus {
	background: var(--vm-fav-surface) !important; text-decoration: none !important; min-height: 0 !important;
}
.vm-fav-btn.vm-fav-single:not(.is-fav):not(:hover) { color: var(--vm-fav-ink) !important; }
.vm-fav-btn.vm-fav-single:hover { color: var(--vm-fav-heart) !important; }

/* Bouton sur la fiche produit */
.vm-fav-single-wrap { margin: 0 0 1em; }
.vm-fav-btn.vm-fav-single {
	display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; line-height: 1.2;
	border: 1px solid var(--vm-fav-line); background: var(--vm-fav-surface); color: var(--vm-fav-ink); font: inherit; font-size: .95em;
}
.vm-fav-btn.vm-fav-single:hover { border-color: var(--vm-fav-heart); color: var(--vm-fav-heart); background: var(--vm-fav-surface); }
.vm-fav-btn.vm-fav-single.is-fav { border-color: var(--vm-fav-heart); }

/* Compteur (menu et code court [vm_favoris_compteur]) */
.vm-fav-header { position: relative; display: inline-flex; align-items: center; color: inherit; }
.vm-fav-header .vm-fav-heart { width: 22px; height: 22px; }
.vm-fav-count, .vm-fav-menu-count {
	display: inline-block; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; margin-left: 4px;
	background: var(--vm-fav-heart); color: #fff; font-size: 11px; font-weight: 600; line-height: 18px; text-align: center; vertical-align: 1px;
}
.vm-fav-header .vm-fav-count { position: absolute; top: -6px; right: -10px; margin: 0; }
.vm-fav-count[hidden], .vm-fav-menu-count[hidden] { display: none; }

/* Message après ajout */
.vm-fav-toast {
	position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); z-index: 99999; max-width: calc(100vw - 32px);
	transform: translate(-50%, 20px); opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s;
	background: var(--vm-fav-ink); color: #fff; padding: 10px 18px; border-radius: 999px; font-size: 14px;
}
.vm-fav-toast.is-on { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.vm-fav-toast a { color: #fff; text-decoration: underline; margin-left: 8px; font-weight: 600; }

/* Page « Mes favoris » */
.vm-favs { color: var(--vm-fav-ink); }
.vm-favs-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin-bottom: 20px; }
.vm-favs-count { margin: 0; font-weight: 600; }
.vm-favs-hint { margin: 0; color: var(--vm-fav-muted); font-size: .9em; flex: 1 1 200px; }
.vm-favs-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.vm-favs-clear, .vm-favs-remove, .vm-favs-no {
	background: none !important; border: 0 !important; padding: 4px 0 !important; box-shadow: none !important;
	color: var(--vm-fav-muted) !important; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; font: inherit; font-size: .9em;
}
.vm-favs-clear:hover, .vm-favs-remove:hover { color: var(--vm-fav-heart) !important; }
.vm-favs-confirm { font-size: .9em; }
.vm-favs-yes { background: var(--vm-fav-heart) !important; color: #fff !important; border: 0; border-radius: 6px; padding: 5px 12px !important; cursor: pointer; font: inherit; font-size: .95em; }
.vm-favs-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 24px; }
.vm-favs-item { margin: 0; display: flex; flex-direction: column; gap: 10px; border: 1px solid var(--vm-fav-line); border-radius: 10px; padding: 12px; background: var(--vm-fav-surface); }
.vm-favs-img { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1; background: rgba(0, 0, 0, .03); border-radius: 6px; overflow: hidden; }
.vm-favs-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.vm-favs-sold { position: absolute; top: 8px; left: 8px; background: var(--vm-fav-ink); color: #fff; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; }
.vm-favs-item.is-sold img { opacity: .5; filter: grayscale(.6); }
.vm-favs-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.vm-favs-title { font-weight: 600; color: inherit; text-decoration: none; }
.vm-favs-title:hover { text-decoration: underline; }
.vm-favs-meta { font-size: .85em; color: var(--vm-fav-muted); }
.vm-favs-price { font-weight: 600; font-variant-numeric: tabular-nums; }
.vm-favs-btns { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: auto; }
.vm-favs-btns .button { flex: 1 1 100%; text-align: center; }
.vm-favs-link { font-size: .9em; color: var(--vm-fav-accent); }
.vm-favs-empty { text-align: center; padding: 40px 16px; color: var(--vm-fav-muted); }
@media (max-width: 480px) { .vm-favs-grid { grid-template-columns: 1fr 1fr; gap: 12px; } .vm-favs-item { padding: 8px; } }
