/*
 * Fiche produit WooCommerce : refonte visuelle de la section "Produits
 * associés" — tous les produits sur une seule ligne (flex nowrap, jamais de
 * retour à la ligne), images en ratio fixe avec zoom au survol, bouton
 * "En savoir plus" harmonisé avec le bouton "BOOK AN APPOINTMENT".
 *
 * Sélecteurs volontairement redondants (avec/sans le tag "section", avec/sans
 * la classe "products" en plus de "related") : le CSS de WooCommerce définit
 * déjà les colonnes en float/pourcentage sur des sélecteurs très proches, et
 * l'ordre de chargement des feuilles de style entre plugin/thème n'est pas
 * garanti — d'où aussi les !important.
 */

.woocommerce .related.products,
.woocommerce-page .related.products,
.woocommerce section.related,
.woocommerce-page section.related {
	margin-top: 60px;
}

.woocommerce .related.products ul.products,
.woocommerce-page .related.products ul.products,
.woocommerce section.related ul.products,
.woocommerce-page section.related ul.products {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	gap: 28px !important;
	width: 100% !important;
	max-width: none !important;
}

.woocommerce .related.products ul.products li.product,
.woocommerce-page .related.products ul.products li.product,
.woocommerce section.related ul.products li.product,
.woocommerce-page section.related ul.products li.product {
	flex: 1 1 0 !important;
	min-width: 0 !important;
	width: auto !important;
	float: none !important;
	clear: none !important;
	margin: 0 !important;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

/* Image : ratio fixe, recadrage cover, léger zoom au survol de la carte. */
.woocommerce .related.products ul.products li.product a,
.woocommerce-page .related.products ul.products li.product a,
.woocommerce section.related ul.products li.product a,
.woocommerce-page section.related ul.products li.product a {
	display: block;
	overflow: hidden;
}

/*
 * "video" couvre les fiches produit avec vidéo en boucle (plugin Woo Video,
 * balise <video class="wvc-loop-video">) : sans ce ciblage explicite, une
 * vidéo garde sa taille intrinsèque et fait exploser la largeur de sa
 * colonne dans la grille.
 */
.woocommerce .related.products ul.products li.product a img,
.woocommerce-page .related.products ul.products li.product a img,
.woocommerce section.related ul.products li.product a img,
.woocommerce-page section.related ul.products li.product a img,
.woocommerce .related.products ul.products li.product a video,
.woocommerce-page .related.products ul.products li.product a video,
.woocommerce section.related ul.products li.product a video,
.woocommerce-page section.related ul.products li.product a video {
	aspect-ratio: 3 / 4;
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	object-fit: cover !important;
	margin: 0 0 20px !important;
	transition: transform 0.5s ease;
}

.woocommerce .related.products ul.products li.product:hover a img,
.woocommerce-page .related.products ul.products li.product:hover a img,
.woocommerce section.related ul.products li.product:hover a img,
.woocommerce-page section.related ul.products li.product:hover a img,
.woocommerce .related.products ul.products li.product:hover a video,
.woocommerce-page .related.products ul.products li.product:hover a video,
.woocommerce section.related ul.products li.product:hover a video,
.woocommerce-page section.related ul.products li.product:hover a video {
	transform: scale(1.04);
}

/* Titre du produit. */
.woocommerce .related.products ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page .related.products ul.products li.product .woocommerce-loop-product__title,
.woocommerce section.related ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page section.related ul.products li.product .woocommerce-loop-product__title {
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 10px;
}

/* Prix, quand affiché. */
.woocommerce .related.products ul.products li.product .price,
.woocommerce-page .related.products ul.products li.product .price,
.woocommerce section.related ul.products li.product .price,
.woocommerce-page section.related ul.products li.product .price {
	display: block;
	font-size: 14px;
	margin-bottom: 16px;
	opacity: 0.8;
}

/* Bouton, aligné en bas de carte même si les descriptions ont des hauteurs différentes. */
.woocommerce .related.products ul.products li.product .button,
.woocommerce-page .related.products ul.products li.product .button,
.woocommerce section.related ul.products li.product .button,
.woocommerce-page section.related ul.products li.product .button {
	margin-top: auto;
	width: 100%;
	font-size: 11px;
	letter-spacing: 0.08em;
	padding: 13px 20px !important;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.woocommerce .related.products ul.products li.product .button:hover,
.woocommerce-page .related.products ul.products li.product .button:hover,
.woocommerce section.related ul.products li.product .button:hover,
.woocommerce-page section.related ul.products li.product .button:hover {
	background-color: #111 !important;
	border-color: #111 !important;
	color: #fff !important;
}

/*
 * Sous 576px, garder tous les produits sur une seule ligne mais en scroll
 * horizontal plutôt que de les compresser jusqu'à devenir illisibles :
 * chaque carte garde une largeur confortable, l'utilisateur balaie pour voir
 * les suivantes.
 */
@media (max-width: 575.98px) {
	.woocommerce .related.products ul.products,
	.woocommerce-page .related.products ul.products,
	.woocommerce section.related ul.products,
	.woocommerce-page section.related ul.products {
		overflow-x: auto !important;
		-webkit-overflow-scrolling: touch;
		gap: 16px !important;
		padding-bottom: 8px;
	}

	.woocommerce .related.products ul.products li.product,
	.woocommerce-page .related.products ul.products li.product,
	.woocommerce section.related ul.products li.product,
	.woocommerce-page section.related ul.products li.product {
		flex: 0 0 78% !important;
	}
}
