/* =========================================================================
   Luxoos — Cartes produit montées dans Brizy
   (accueil, sommiers & têtes de lit, sur-matelas & accessoires, ensembles)

   Ces cartes n'ont pas de classe dédiée : elles sont repérées par leur
   structure, une colonne Brizy dont le pied contient un bouton vers une
   fiche produit (/produit/…). Les classes brz-css-xxxx changent à chaque
   modification dans Brizy, elles ne sont donc pas utilisées ici.

   Carte    : .brz-columns:has(> … > .brz-btn[href*="/produit/"])
   Rangée   : .brz-row:has(> carte)
   ========================================================================= */

/* ------------------------------------------------ Avis clients (partout) */

/* Ligne « Avis clients + 5 étoiles » : retirée des cartes, à toutes les
   largeurs. Les avis des fiches produit ne sont pas concernés. */
.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
	> .brz-column__items
	> .brz-row__container:has(.brz-wrapper-clone > .brz-icon__container:nth-child(5)) {
	display: none !important;
}

/* ------------------------------------------- Bloc prix + bouton (partout) */

/* Le bouton est en retrait dans le fond crème, avec la même marge sur les
   quatre côtés. Sans cela il touchait le bas du fond (et ses bords sur
   ordinateur), et Brizy décalait le fond de 10 px en mobile. */
.brz .brz-columns:has(> .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-bg {
	margin: 0 !important;
	border-radius: 10px !important;
	overflow: hidden;
}

.brz .brz-column__items:has(> .brz-wrapper-clone > .brz-btn[href*="/produit/"]) {
	margin: 0 !important;

}

.brz .brz-column__items > .brz-wrapper-clone:has(> .brz-btn[href*="/produit/"]) {
	margin: 8px 0 0 !important;
}

.brz .brz-column__items:has(> .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-wrapper {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.brz .brz-wrapper-clone > .brz-btn[href*="/produit/"] {
	padding-left: 12px !important;
	padding-right: 12px !important;
	border-radius: 6px !important;
	/* Libellés longs (« Composer mon ensemble Harmony ») : retour à la ligne
	   plutôt que de sortir du bouton. */
	white-space: normal !important;
}

/* --------------------------------- Espace autour de la liste (partout) */

/* Au-dessus : la liste était collée au bouton qui la précède. */
.brz .brz-wrapper-clone + .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) {
	margin-top: 40px !important;
}

/* En dessous : les cartes touchaient la section suivante. Sur l'accueil
   (ordinateur), elles restent posées sur le bas de la section, comme sur
   la maquette. */
.brz .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]):last-child {
	margin-bottom: 64px !important;
}

@media (min-width: 992px) {
	body.home .brz .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]):last-child {
		margin-bottom: 0 !important;
	}
}

@media (max-width: 991px) {
	.brz .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]):last-child {
		margin-bottom: 28px !important;
	}
}

/* Entre deux rangées de cartes qui se suivent (page Ensembles : une rangée
   par taille). */
.brz .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) + .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) {
	margin-top: 32px !important;
}

/* Ordinateur, hors accueil : bas de carte arrondi, comme sur tablette et
   mobile, les cartes n'étant pas posées sur le bas de la section. */
@media (min-width: 992px) {
	body:not(.home) .brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-bg {
		border-radius: 0 0 22px 22px !important;
		overflow: hidden;
	}

	body:not(.home) .brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-bg > .brz-bg-color {
		border-radius: 1000px 1000px 0 0;
	}
}

/* ------------------------------------------------- Visuel dans l'arche */

/* Quand la carte commence directement par le visuel (pas d'espace Brizy
   au-dessus), il est descendu pour que ses angles restent dans l'arche. */
.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
	> .brz-column__items > .brz-wrapper:first-child:has(> .brz-image) {
	margin-top: 48px !important;
}

/* Ordinateur, hors accueil : visuels ramenés à la même hauteur et à 62 % de
   la carte, image entière. Les photos carrées ou à fond blanc (lot
   d'oreillers, couette) dépassaient de l'arche. */
@media (min-width: 992px) {
	body:not(.home) .brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-wrapper > .brz-image {
		max-width: 62% !important;
		margin-left: auto;
		margin-right: auto;
	}

	body:not(.home) .brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-wrapper > .brz-image .brz-picture {
		height: 190px !important;
		padding-top: 0 !important;
	}

	body:not(.home) .brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-wrapper > .brz-image .brz-picture > .brz-img {
		position: absolute !important;
		top: 0 !important;
		left: 0 !important;
		width: 100% !important;
		height: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		object-fit: contain;
	}
}

/* ------------------------------------------------------ Tablette et mobile */

@media (max-width: 991px) {

	/* Rangée : trois cartes par ligne sur tablette (une seule sur mobile, plus
	   bas), centrées quand la ligne n'est pas complète. */
	.brz .brz-row:has(> .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) {
		justify-content: center !important;
		align-items: stretch !important;
		gap: 28px 16px;
	}

	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) {
		flex: 0 1 calc((100% - 32px) / 3) !important;
		max-width: calc((100% - 32px) / 3) !important;
	}

	/* Fond de la carte : arche en haut, angles arrondis en bas. */
	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-bg {
		margin: 0 !important;
		border-radius: 0 0 22px 22px !important;
		overflow: hidden;
	}

	/* L'arche est portée par le calque de couleur : sur un même élément, le
	   navigateur réduirait l'arrondi du bas en proportion de celui du haut. */
	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-bg > .brz-bg-color {
		border-radius: 1000px 1000px 0 0;
	}

	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-column__items {
		height: 100%;
		margin: 0 !important;
		padding: 0 14px 16px !important;
	}

	/* Espace au-dessus de l'image (creux de l'arche) et avant le prix. */
	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-wrapper > .brz-spacer {
		height: 14px !important;
	}

	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-wrapper:first-child > .brz-spacer {
		height: 64px !important;
	}

	/* Image : contenue dans l'arche, jamais plus large que la carte. */
	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-wrapper > .brz-image {
		max-width: 58% !important;
		margin-left: auto;
		margin-right: auto;
	}

	/* Même hauteur pour tous les visuels, image entière (les photos en
	   hauteur dépassaient de l'arche). */
	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-wrapper > .brz-image .brz-picture {
		height: 120px !important;
		padding-top: 0 !important;
	}

	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-wrapper > .brz-image .brz-picture > .brz-img {
		position: absolute !important;
		top: 0 !important;
		left: 0 !important;
		width: 100% !important;
		height: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		object-fit: contain;
	}

	/* Textes : le style « Titre 4 » de Brizy monte à 24–30 px sur ces écrans. */
	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-wrapper > .brz-rich-text :is(h1, h2, h3, h4, h5, h6, p) {
		font-size: 14px !important;
		line-height: 1.5 !important;
		font-weight: 400 !important;
	}

	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-wrapper > .brz-rich-text :is(h1, h2, h3, h4, h5, h6, p):has(> strong:only-child) {
		font-size: 16px !important;
		line-height: 1.3 !important;
	}

	/* Pied : le bloc prix + bouton reste en bas quelle que soit la longueur du texte. */
	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-row__container:last-child {
		margin-top: auto !important;
	}

	.brz .brz-column__items:has(> .brz-wrapper-clone > .brz-btn[href*="/produit/"]) {
		padding: 8px 0 0 0!important;
	}

	.brz .brz-column__items:has(> .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-wrapper .brz-rich-text p {
		font-size: 15px !important;
		line-height: 1.4 !important;
	}

	/* Bouton : un CSS Brizy le force à 100 % de large ; ses marges latérales
	   (retirées plus haut) le faisaient sortir de la carte. */
	.brz .brz-wrapper-clone > .brz-btn[href*="/produit/"] {
		padding-left: 12px !important;
		padding-right: 12px !important;
		font-size: 14px !important;
		line-height: 1.2 !important;
		white-space: normal !important;
	}
}

@media (max-width: 767px) {

	/* Une carte par ligne, largeur plafonnée pour garder la forme de l'arche. */
	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) {
		flex: 0 1 100% !important;
		max-width: 360px !important;
	}

	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-column__items {
		padding: 0 18px 20px !important;
	}

	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-wrapper > .brz-image .brz-picture {
		height: 150px !important;
	}

	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-wrapper > .brz-rich-text :is(h1, h2, h3, h4, h5, h6, p) {
		font-size: 15px !important;
	}

	.brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])
		> .brz-column__items > .brz-wrapper > .brz-rich-text :is(h1, h2, h3, h4, h5, h6, p):has(> strong:only-child) {
		font-size: 18px !important;
	}

	.brz .brz-column__items:has(> .brz-wrapper-clone > .brz-btn[href*="/produit/"]) {
		padding: 10px 0 0 0 !important;
	}

	.brz .brz-column__items:has(> .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-wrapper .brz-rich-text p {
		font-size: 17px !important;
	}

	.brz .brz-wrapper-clone > .brz-btn[href*="/produit/"] {
		font-size: 15px !important;
	}
}

/* ------------------------------------------------ Page Ensembles (mobile) */

/* Les neuf cartes sont rangées par taille (une rangée Brizy par taille, une
   colonne par gamme). Sur mobile, où elles s'empilent, elles sont regroupées
   par gamme : les trois Mood, puis les trois Harmony, puis les trois Loundge.
   Les rangées sont « dissoutes » et les cartes ordonnées selon leur colonne. */
@media (max-width: 767px) {
	body.page-id-824 .brz .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]),
	body.page-id-824 .brz .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-row {
		display: contents !important;
	}

	body.page-id-824 .brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) {
		flex: 0 0 auto !important;
		width: 100%;
		align-self: center;
		margin: 0 0 28px !important;
	}

	body.page-id-824 .brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]):nth-child(1) { order: 1; }
	body.page-id-824 .brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]):nth-child(2) { order: 2; }
	body.page-id-824 .brz .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]):nth-child(3) { order: 3; }

	/* La première carte de la liste reprend l'espace au-dessus des rangées. */
	body.page-id-824 .brz .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]):not(.brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) ~ .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])) .brz-columns:has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]):nth-child(1) {
		margin-top: 12px !important;
	}
}




  /* -------------------------------- Une carte sur deux en jaune (hors accueil) */

  /* Comme sur l'accueil, où l'alternance est réglée carte par carte dans
     Brizy : carte blanche avec bloc prix crème, puis carte jaune avec bloc
     prix blanc. Ici elle est automatique et en quinconce : cartes paires des
     rangées impaires, cartes impaires des rangées paires. Les rangées sont
     comptées parmi les seules rangées de cartes. */
  body:not(.home) .brz .brz-row__container:nth-child(odd of .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items
  > .brz-wrapper-clone > .brz-btn[href*="/produit/"])) > .brz-row > .brz-columns:nth-child(even):has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items >
  .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-bg > .brz-bg-color,
  body:not(.home) .brz .brz-row__container:nth-child(even of .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns >
  .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])) > .brz-row > .brz-columns:nth-child(odd):has(> .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns >
  .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-bg > .brz-bg-color {
        background-color: #f0e0b2 !important;
  }

  body:not(.home) .brz .brz-row__container:nth-child(odd of .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns > .brz-column__items
  > .brz-wrapper-clone > .brz-btn[href*="/produit/"])) > .brz-row > .brz-columns:nth-child(even) .brz-columns:has(> .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) > .brz-bg >
  .brz-bg-color,
  body:not(.home) .brz .brz-row__container:nth-child(even of .brz-row__container:has(> .brz-row > .brz-columns > .brz-column__items > .brz-row__container > .brz-row--inner > .brz-columns >
  .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"])) > .brz-row > .brz-columns:nth-child(odd) .brz-columns:has(> .brz-column__items > .brz-wrapper-clone > .brz-btn[href*="/produit/"]) >
  .brz-bg > .brz-bg-color {
        background-color: #fff !important;
  }

  /* Page Matelas ([luxoos_produits]) : même quinconce, compté sur les cartes
     visibles pour rester régulier quand un filtre en masque. Sur 3 colonnes
     (et sur 1), une carte sur deux suffit. */
  .lux-products__grid > .lux-products__card:nth-child(even of :not([hidden])) {
        background: #f0e0b2;
  }

  .lux-products__grid > .lux-products__card:nth-child(even of :not([hidden])) .lux-products__price {
        background: #fff;
  }

  /* Sur 2 colonnes, une carte sur deux donnerait une colonne blanche et une
     jaune : on prend la 2e et la 3e de chaque groupe de quatre. */
  @media (min-width: 561px) and (max-width: 960px) {
        .lux-products__grid > .lux-products__card:nth-child(n of :not([hidden])) {
                background: var(--lux-white, #fff);
        }

        .lux-products__grid > .lux-products__card:nth-child(n of :not([hidden])) .lux-products__price {
                background: var(--lux-prd-cream);
        }

        .lux-products__grid > .lux-products__card:nth-child(4n + 2 of :not([hidden])),
        .lux-products__grid > .lux-products__card:nth-child(4n + 3 of :not([hidden])) {
                background: #f0e0b2;
        }

        .lux-products__grid > .lux-products__card:nth-child(4n + 2 of :not([hidden])) .lux-products__price,
        .lux-products__grid > .lux-products__card:nth-child(4n + 3 of :not([hidden])) .lux-products__price {
                background: #fff;
        }
  }