/* =========================================================================
   Luxoos — Fiche produit composite (WPC Composite Products)
   Encart « Votre configuration » : éléments inclus, options, prix total.
   Chargée par inc/composite-setup.php, après product.css (mêmes variables).
   Les !important répondent à ceux de l'extension et aux styles en ligne
   posés par son menu déroulant (ddslick).
   ========================================================================= */

.lux-product__cart .wooco_wrap {
	margin: 0 0 1.25rem;
	padding: 1.25rem;
	background: var(--lux-white, #fff);
	border: 1px solid var(--lux-prod-rule);
	border-radius: 16px;
	box-shadow: 0 10px 30px rgba(21, 43, 68, 0.06);
	font-size: 0.9rem;
	color: var(--lux-prod-text);
}

.lux-composite__title {
	margin: 0 0 0.25rem;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--lux-prod-text);
}

/* --------------------------------------------------------------- Éléments */

.lux-product__cart .wooco_components .wooco_component {
	margin: 0.5rem 0 0;
	padding: 0;
	border: 0;
}

.lux-product__cart .wooco_components .wooco_component_name {
	margin: 1rem 0 0;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--lux-prod-muted);
}

/* L'astérisque rouge « obligatoire » n'apporte rien : l'élément est imposé. */
.lux-product__cart .wooco_components .wooco_component_required .wooco_component_name::after {
	content: none;
}

.lux-product__cart .wooco_component_product {
	display: block;
	margin: 0.4rem 0 0;
}

.lux-product__cart .wooco_component_product_selection {
	display: block;
	padding: 0;
}

.lux-product__cart .wooco_component_product_selection > label:empty {
	display: none;
}

/* ------------------------------------------------- Ligne produit (ddslick) */

.lux-product__cart .wooco_component_product_selection .dd-container {
	position: relative;
	width: 100% !important;
}

.lux-product__cart .wooco_component_product_selection .dd-select {
	position: relative;
	width: 100% !important;
	background: var(--lux-white, #fff) !important;
	border: 1px solid var(--lux-prod-rule);
	border-radius: var(--lux-radius, 10px);
	cursor: pointer;
	transition: border-color var(--lux-transition, 160ms ease), box-shadow var(--lux-transition, 160ms ease);
}

.lux-product__cart .wooco_component_product_selection .dd-select:hover {
	border-color: var(--lux-navy, #1b3a5f);
}

/* Élément imposé (un seul produit, obligatoire) : simple ligne, pas un menu. */
.lux-product__cart .wooco_component_required.wooco_component_has_1 .dd-select {
	background: var(--lux-prod-card) !important;
	border-color: transparent;
	cursor: default;
}

.lux-product__cart .wooco_component_product_selection .dd-selected,
.lux-product__cart .wooco_component_product_selection .dd-option {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.6rem 0.75rem;
	overflow: visible;
	font-weight: 400;
	color: var(--lux-prod-text);
	text-decoration: none;
}

/* Place du chevron sur les menus. */
.lux-product__cart .wooco_component:not(.wooco_component_required.wooco_component_has_1) .dd-selected {
	padding-right: 2.4rem;
}

.lux-product__cart .wooco_component_product_selection .dd-selected-image,
.lux-product__cart .wooco_component_product_selection .dd-option-image {
	flex: 0 0 52px;
	float: none;
	width: 52px;
	max-width: 52px;
	height: 52px;
	margin: 0;
	object-fit: cover;
	background: var(--lux-white, #fff);
	border-radius: 8px;
}

/* « Sans cette option » : pas d'image d'attente WooCommerce. */
.lux-product__cart .wooco_component_product_selection img[src*="woocommerce-placeholder"] {
	display: none;
}

.lux-product__cart .wooco_component_product_selection .dd-selected-text,
.lux-product__cart .wooco_component_product_selection .dd-option-text {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.35 !important;
	color: var(--lux-prod-text);
	cursor: inherit;
}

/* Prix de l'élément, à droite. */
.lux-product__cart .wooco_component_product_selection .dd-desc {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	overflow: visible;
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--lux-prod-text);
	white-space: nowrap;
}

.lux-product__cart .wooco_component_product_selection .dd-desc *,
.lux-product__cart .wooco_component_product_selection .dd-desc {
	white-space: nowrap;
}

.lux-product__cart .wooco_component_product_selection .dd-desc > span {
	margin: 0;
}

.lux-product__cart .wooco_component_product_selection .dd-desc:empty,
.lux-product__cart .wooco_component_product_selection .dd-desc > span:empty {
	display: none;
}

.lux-product__cart .wooco_component_product_selection .dd-desc .sale-price {
	display: flex;
	flex-direction: column-reverse;
	align-items: flex-end;
}

/* Mention de stock (« Disponible sur commande ») sous le prix. */
.lux-product__cart .wooco_component_product_selection .dd-desc .stock {
	font-size: 0.72rem;
	font-weight: 400;
	color: var(--lux-prod-muted);
}

.lux-product__cart .wooco_wrap del {
	font-size: 0.75rem;
	font-weight: 400;
	color: var(--lux-prod-muted);
	opacity: 0.8;
}

.lux-product__cart .wooco_wrap ins {
	background: none;
	text-decoration: none;
}

/* Chevron du menu (le triangle noir d'origine est fait de bordures). */
.lux-product__cart .wooco_component_product_selection .dd-pointer {
	position: absolute;
	top: 50%;
	right: 1rem;
	width: 9px;
	height: 9px;
	margin: -7px 0 0;
	border: solid var(--lux-prod-text);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
	transition: transform var(--lux-transition, 160ms ease);
}

/* !important : ddslick impose son triangle sur le menu ouvert. */
.lux-product__cart .wooco_component_product_selection .dd-pointer-up {
	margin-top: -2px;
	border: solid var(--lux-prod-text) !important;
	border-width: 0 2px 2px 0 !important;
	transform: rotate(-135deg);
}

/* Liste déroulante */

.lux-product__cart .wooco_component_product_selection .dd-options {
	width: 100% !important;
	margin: 0.3rem 0 0 !important;
	border: 1px solid var(--lux-prod-rule);
	border-radius: var(--lux-radius, 10px);
	box-shadow: 0 16px 40px rgba(21, 43, 68, 0.14);
}

.lux-product__cart .wooco_component_product_selection .dd-option {
	min-height: calc(52px + 1.2rem);
	border-bottom: 1px solid var(--lux-prod-rule);
	cursor: pointer;
}

.lux-product__cart .wooco_component_product_selection .dd-options li:last-child .dd-option {
	border-bottom: 0;
}

.lux-product__cart .wooco_component_product_selection .dd-option:hover {
	background: var(--lux-prod-card);
}

.lux-product__cart .wooco_component_product_selection .dd-option-selected,
.lux-product__cart .wooco_component_product_selection .dd-option-selected:hover {
	background: var(--lux-prod-benefit);
}

/* ------------------------------------------------------- Récapitulatif */

/* « Votre sélection » répète les lignes du dessus. */
.lux-product__cart .wooco_wrap .wooco-selected {
	display: none !important;
}

.lux-product__cart .wooco_wrap .wooco-summary {
	display: block;
	margin: 1.1rem 0 0;
	padding: 0.9rem 0 0;
	border-top: 1px solid var(--lux-prod-rule);
}

.lux-product__cart .wooco_wrap .wooco-total {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.15rem 0.6rem;
	font-size: 0.9rem;
	font-weight: 600;
}

/* Le libellé est un texte nu : le premier élément (prix) part à droite. */
.lux-product__cart .wooco_wrap .wooco-total > :first-child {
	margin-left: auto;
}

.lux-product__cart .wooco_wrap .wooco-total > ins,
.lux-product__cart .wooco_wrap .wooco-total > .amount {
	font-size: 1.15rem;
	font-weight: 700;
}

.lux-product__cart .wooco_wrap .wooco-total > del {
	font-size: 0.85rem;
}

.lux-product__cart .wooco_wrap .wooco-count:empty {
	display: none;
}

.lux-product__cart .wooco_wrap .wooco-alert {
	margin: 0.9rem 0 0;
	padding: 0.65rem 0.85rem;
	font-size: 0.8rem;
	line-height: 1.45;
	color: var(--lux-prod-text);
	background: var(--lux-prod-benefit);
	border: 0;
	border-radius: var(--lux-radius, 10px);
}

.lux-product__cart .wooco_wrap .wooco-text:not(.wooco-summary):not(.wooco-alert) {
	margin: 0.75rem 0 0;
	font-size: 0.85rem;
	line-height: 1.55;
}

/* ------------------------------------------------------------- Mobile */

@media (max-width: 520px) {
	.lux-product__cart .wooco_wrap {
		padding: 1rem;
		border-radius: 14px;
	}

	.lux-product__cart .wooco_component_product_selection .dd-selected,
	.lux-product__cart .wooco_component_product_selection .dd-option {
		gap: 0.6rem;
		padding: 0.55rem 0.6rem;
	}

	.lux-product__cart .wooco_component_product_selection .dd-selected-image,
	.lux-product__cart .wooco_component_product_selection .dd-option-image {
		flex-basis: 44px;
		width: 44px;
		max-width: 44px;
		height: 44px;
	}

	.lux-product__cart .wooco_component_product_selection .dd-selected-text,
	.lux-product__cart .wooco_component_product_selection .dd-option-text {
		font-size: 0.8rem;
	}

	.lux-product__cart .wooco_component_product_selection .dd-desc {
		font-size: 0.8rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.lux-product__cart .wooco_component_product_selection .dd-select,
	.lux-product__cart .wooco_component_product_selection .dd-pointer {
		transition-duration: 0.01ms;
	}
}
