/**
 * DAHU PRICING - Styles
 * ======================
 * Remplace les fonctions suivantes de functions.php (blocs <style> injectés
 * en PHP via wp_head, un par rôle) :
 *   - apply_custom_css_for_customer_and_guests()
 *   - apply_custom_style_for_professionnel_or()
 *   - apply_custom_style_for_admin()
 *   - apply_custom_style_for_argent()
 *   - hide_bundle_prices_by_role()  (partie affichage/masquage uniquement,
 *     la logique état-dépendante reste gérée par dahu-pricing-role-display.js)
 *
 * Ces règles s'appuient sur des classes ajoutées au <body> par
 * includes/class-dahu-pricing-body-classes.php, calculées à partir de la
 * cartographie configurable en Réglages > Tarification Annad (et non plus
 * de noms de rôle codés en dur) :
 *   .dahu-role-guest    -> visiteur non connecté ou rôle "customer"
 *   .dahu-role-or       -> niveau tarifaire "Or"
 *   .dahu-role-argent   -> niveau tarifaire "Argent"
 *   .dahu-role-admin    -> rôle listé comme "admin" dans les réglages
 *
 * Avantage par rapport à l'ancien système : une seule évaluation des rôles
 * (dans le body_class), au lieu de 4 fonctions wp_head qui refont chacune
 * is_user_logged_in()/current_user_can() séparément.
 */

/* ------------------------------------------------------------------ */
/* Visiteurs / clients particuliers                                    */
/* ------------------------------------------------------------------ */

.dahu-role-guest del,
.dahu-role-guest ins .amount::before,
.dahu-role-guest .price.summary_element_content .woocommerce-Price-amount.amount::before {
	display: none;
}

.dahu-role-guest.single-product div.product p.price,
.dahu-role-guest.product-type-variable div.product .price {
	font-size: 2em !important;
	padding-right: 10px !important;
	text-align: right;
	font-weight: 600;
}

.dahu-role-guest.product-type-variable .woocommerce-variation-price span.price {
	visibility: visible !important;
	max-height: 40px !important;
}

.dahu-role-guest.product-type-composite .price {
	font-size: 1.3em !important;
}

.dahu-role-guest.product-type-variable .single_variation span.price {
	font-size: 1.8em;
	text-align: right;
}

/* ------------------------------------------------------------------ */
/* Professionnel Or                                                     */
/* ------------------------------------------------------------------ */

.dahu-role-or .ywcrbp-role-price-rule {
	visibility: hidden !important;
	max-height: 0 !important;
	height: 0 !important;
}

/* ------------------------------------------------------------------ */
/* Professionnel Argent                                                 */
/* ------------------------------------------------------------------ */
/* Le préfixe de texte devant le prix est géré depuis la v0.3.0 par
   dahu-pricing-role-display.js (libellés configurables en Réglages >
   Tarification Annad), plus par CSS ::before. Voir .dahu-price-label
   plus bas. */

/* ------------------------------------------------------------------ */
/* Administrateur                                                       */
/* ------------------------------------------------------------------ */

.dahu-role-admin .product-type-simple .ywcrbp-role-price-rule {
	display: none;
}

/* Remplacée depuis la v0.3.0 par le switch Pro/Client (voir plus bas,
   body.dahu-price-mode-client) qui gère désormais dynamiquement la
   visibilité du prix pro pour TOUS les rôles, y compris admin — l'ancienne
   règle masquait le prix ins en permanence pour un admin, même volontaire,
   même sur un compte cumulant aussi un rôle Or/Argent (c'était d'ailleurs
   la cause du bug de test découvert précédemment). */

/* ------------------------------------------------------------------ */
/* Prix Pro Bundles - visibilité selon rôle                             */
/* Remplace hide_bundle_prices_by_role() : avant, le masquage de         */
/* .bundle_price pour les rôles pro/admin passait par un setTimeout()   */
/* de 500ms en JS (pour laisser le temps à Composite Products d'injecter */
/* l'élément). Le CSS est appliqué immédiatement et sans course contre   */
/* la montre, quel que soit le moment où l'élément apparaît dans le DOM. */
/* ------------------------------------------------------------------ */

.dahu-role-or .bundle_price,
.dahu-role-argent .bundle_price,
.dahu-role-admin .bundle_price {
	display: none !important;
	font-size: 0 !important;
}

.dahu-role-guest .prix_pro_bundle {
	display: none !important;
}

/* ------------------------------------------------------------------ */
/* Paiement à la livraison (COD) réservé Or / Argent                    */
/* Remplace hide_cod_except_gold_silver_roles() : l'ancienne version    */
/* utilisait un MutationObserver + une boucle setInterval(200ms) sur    */
/* 5 secondes pour masquer l'option. Le CSS s'applique sans délai et    */
/* sans dépendre du timing d'injection AJAX du bloc de paiement.        */
/* ------------------------------------------------------------------ */

body:not(.dahu-role-or):not(.dahu-role-argent) li.wc_payment_method.payment_method_cod {
	display: none !important;
}

/* ------------------------------------------------------------------ */
/* Libellés inline devant les prix (del = client, ins = pro) et marge   */
/* Injectés par dahu-pricing-role-display.js et dahu-pricing-         */
/* composite.js, texte configurable en Réglages > Tarification Annad.   */
/* Remplace les règles CSS ::before auparavant codées en dur dans le    */
/* thème (css_additionel.txt).                                          */
/* ------------------------------------------------------------------ */

.dahu-price-label {
	font-size: 0.85em;
	opacity: 0.85;
	margin-right: 0.35em;
}

.dahu-margin {
	font-size: 0.9em;
	margin-top: 0.2em;
}

.dahu-margin--cart {
	padding: 0.75em 1em;
	margin-top: 0.5em;
	background: #f3f38254;
	border-radius: 10px;
}

/* ------------------------------------------------------------------ */
/* Switch "Afficher les prix Pro" (dahu-pricing-toggle.js)             */
/* Visible pour les niveaux Or/Argent ET les rôles "admin" configurés   */
/* (chargé conditionnellement côté PHP). Inséré dans le bloc panier du  */
/* menu.                                                                */
/* ------------------------------------------------------------------ */

#block-23,
#block-50,
#block-51 {
	display: flex !important;
	align-items: center;
	gap: 0.6em;
}

.dahu-price-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0px 10px 0px 10px;
	cursor: pointer;
	user-select: none;
	font-size: 0.8rem;
	color: #32373c;
	white-space: nowrap;
}

.dahu-price-toggle__label {
	font-weight: 600;
	letter-spacing: 0.02em;
	opacity: 1;
	transition: opacity 0.2s ease;
}

body.dahu-price-mode-client .dahu-price-toggle__label {
	opacity: 0.4;
}

.dahu-price-toggle__switch {
	position: relative;
	display: inline-block;
	width: 2.4em;
	height: 1.3em;
	flex-shrink: 0;
}

.dahu-price-toggle__input {
	opacity: 0;
	width: 0;
	height: 0;
	position: absolute;
}

.dahu-price-toggle__slider {
	position: absolute;
	inset: 0;
	background-color: #c7c7c7;
	border-radius: 999px;
	transition: background-color 0.2s ease;
}

.dahu-price-toggle__slider::before {
	content: "";
	position: absolute;
	height: 1em;
	width: 1em;
	left: 0.15em;
	top: 0.15em;
	background-color: white;
	border-radius: 50%;
	transition: transform 0.2s ease;
	box-shadow: rgba(0, 0, 0, 0.25) 0px 1px 3px;
}

.dahu-price-toggle__input:checked + .dahu-price-toggle__slider {
	background-color: #bbcf0e;
}

.dahu-price-toggle__input:checked + .dahu-price-toggle__slider::before {
	transform: translateX(1.1em);
}

.dahu-price-toggle__input:focus-visible + .dahu-price-toggle__slider {
	outline: 2px solid #32373c;
	outline-offset: 2px;
}

@media (max-width: 768px) {
	.dahu-price-toggle__label {
		display: none;
	}
}

/* Mode "Client uniquement" : masque tout ce qui représente le prix Pro.
   Purement visuel — n'affecte ni le calcul, ni le prix réellement utilisé
   au panier/paiement. */

body.dahu-price-mode-client ins,
body.dahu-price-mode-client .dahu-pro-line,
body.dahu-price-mode-client .dahu-price-label,
body.dahu-price-mode-client .dahu-margin {
	display: none !important;
}
