/* ==========================================================================
   Pages catalogue (troisième agent) : carte produit (miniature #3), listings (catégorie, Boutique, promotions,
   nouveautés, meilleures ventes), fiche produit. Chargé après projet.css (module logia_socle).
   Specs : ~/figma/specs/01-accueil.md (composant:carte-produit), 02-boutique.md, 03-categorie.md, 04-promotions.md,
   05-produit.md. Couleurs : variables de projet.css (--pb-accent, --pb-gris-fonce, --pb-fond).
   ========================================================================== */
:root, body {
	--pb-bordure-carte: rgba(64, 64, 63, .5);
	/* Textes gris (référence, « − », onglets inactifs) : 75 % pour un contraste de 4,6:1 (le gris des bordures : 2,6:1). */
	--pb-texte-attenue: rgba(64, 64, 63, .75);
	--pb-bordure-pastille: rgba(64, 64, 63, .15);
	--pb-top-ventes: #FFAB48;
	--pb-ico-chevron: url("/img/cms/socma/commun/chevron-bas-blanc.svg");
	--pb-ico-trier: url("/img/cms/socma/boutique/icone-trier.svg");
	--pb-ico-fleche-fil: url("/img/cms/socma/categorie/fil-ariane-chevron.svg");
}

/* Libellés du catalogue saisis en CAPITALES (« ABREUVEMENT ») : affichés avec une seule majuscule (les accents manquants
   restent à corriger dans le catalogue). */
.pb-casse-phrase,
.pb-titre-categorie .elementor-heading-title,
.pb-fil-ariane .ce-breadcrumb__item > *,
.pb-arbre-categories .elementor-item,
.pb-arbre-categories .elementor-sub-item,
.pb-facettes .elementor-field-label,
.pb-carte-categorie .ce-product-meta__value {
	text-transform: lowercase;
}

.pb-titre-categorie .elementor-heading-title::first-letter,
.pb-fil-ariane .ce-breadcrumb__item > *::first-letter,
.pb-arbre-categories :is(.elementor-item, .elementor-sub-item)::first-letter,
.pb-facettes .elementor-field-label::first-letter,
.pb-carte-categorie .ce-product-meta__value::first-letter {
	text-transform: uppercase;
}

/* ==========================================================================
   Carte produit (miniature #3, composant:carte-produit) : photo 261,74 × 313,47 bordée, rayon en haut à gauche et en bas
   à droite, badge en haut à gauche, bouton « + » en bas à droite ; catégorie, nom, prix (prix barré à gauche).
   Survol : bordure rouge (maquette) et photo légèrement zoomée.
   ========================================================================== */
.pb-carte-produit,
.pb-carte-produit > .elementor-container,
.pb-carte-produit .pb-carte-col > .elementor-column-wrap,
.pb-carte-produit .pb-carte-col > .elementor-column-wrap > .elementor-widget-wrap {
	padding: 0 !important;
}

.pb-carte-produit .pb-carte-col > .elementor-column-wrap > .elementor-widget-wrap {
	display: flex;
	flex-direction: column;
	align-content: flex-start;
}

.pb-carte-produit .pb-carte-photo {
	position: relative;
	width: 100%;
	aspect-ratio: 261.74 / 313.47;
	overflow: hidden;
	isolation: isolate;
	background-color: #fff;
	border: 1px solid var(--pb-bordure-carte);
	border-radius: 30px 0 30px 0;
	transition: border-color .3s ease;
}

.pb-carte-produit .pb-carte-photo > .elementor-container,
.pb-carte-produit .pb-carte-photo .elementor-row,
.pb-carte-produit .pb-carte-photo .elementor-column,
.pb-carte-produit .pb-carte-photo .elementor-column-wrap,
.pb-carte-produit .pb-carte-photo .elementor-widget-wrap {
	height: 100%;
}

.pb-carte-produit .pb-carte-photo .elementor-widget-wrap {
	position: relative;
}

.pb-carte-produit .pb-carte-image,
.pb-carte-produit .pb-carte-image .elementor-widget-container,
.pb-carte-produit .pb-carte-image .ce-product-image,
.pb-carte-produit .pb-carte-image a {
	height: 100%;
}

.pb-carte-produit .pb-carte-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}

.pb-carte-produit:is(:hover, :focus-within) .pb-carte-photo {
	border-color: var(--pb-accent);
}

.pb-carte-produit:is(:hover, :focus-within) .pb-carte-image img {
	transform: scale(1.04);
}

/* Badges (composant:badge-promo) : remise en rouge, « Top ventes » en orange. */
.pb-carte-produit .pb-carte-badges {
	z-index: 2;
	width: auto !important;
	max-width: calc(100% - 40px);
}

.pb-carte-produit .pb-carte-badges .ce-product-badges {
	gap: 6px;
}

:is(.pb-carte-produit, .pb-fiche-badges) .ce-product-badge {
	min-width: 0;
	padding: 9px 18px;
	border-radius: 300px;
	font-family: "Oxanium", sans-serif;
	font-weight: 600;
	font-size: .875rem;
	line-height: 1;
	letter-spacing: -.02em;
	white-space: nowrap;
	color: #fff;
	background-color: var(--pb-accent);
}

:is(.pb-carte-produit, .pb-fiche-badges) .ce-product-badge-onsale {
	/* Texte foncé : blanc sur l'orange de la maquette donnait 1,9:1 de contraste. */
	color: #0D0D0D;
	background-color: var(--pb-top-ventes);
}

/* Bouton « + » : disque rouge de 40 px, inversé au survol ; le libellé reste lu par les lecteurs d'écran. */
.pb-carte-produit .pb-carte-ajout {
	z-index: 2;
}

.pb-carte-produit .pb-carte-ajout .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--pb-accent);
	border-radius: 50%;
	color: #fff;
	background-color: var(--pb-accent);
	transition: background-color .3s ease, color .3s ease, transform .25s ease, box-shadow .25s ease;
}

.pb-carte-produit .pb-carte-ajout .elementor-button-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.pb-carte-produit .pb-carte-ajout .elementor-button-icon {
	margin: 0 !important;
	font-size: 1.125rem;
	line-height: 0;
}

.pb-carte-produit .pb-carte-ajout .elementor-button:is(:hover, :focus-visible) {
	color: var(--pb-accent);
	background-color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 20px -8px rgba(0, 0, 0, .35);
}

/* Produit indisponible : pastille « Rupture de stock » lisible au lieu d'un « + » gris sans explication. */
.pb-carte-produit .pb-carte-ajout .elementor-button:is([disabled], .disabled, [aria-disabled="true"]) {
	width: auto;
	padding: 0 14px;
	border-color: transparent;
	border-radius: 100px;
	color: var(--pb-gris-fonce);
	background-color: #E6E6E6;
	opacity: 1;
	transform: none;
	box-shadow: none;
	cursor: not-allowed;
}

.pb-carte-produit .pb-carte-ajout .elementor-button:is([disabled], .disabled, [aria-disabled="true"]) .elementor-button-icon {
	display: none;
}

.pb-carte-produit .pb-carte-ajout .elementor-button:is([disabled], .disabled, [aria-disabled="true"])::after {
	content: "Rupture de stock";
	color: var(--pb-gris-fonce) !important;
	font-family: "Amiko", sans-serif;
	font-size: .875rem;
	font-weight: 700;
	white-space: nowrap;
}

/* Textes de la carte (Oxanium) : catégorie rouge, nom en capitales, prix ; prix barré à gauche du prix. Retrait de
   20 px sous la photo (maquette : 20 à 29 px selon la carte). */
.pb-carte-produit :is(.pb-carte-categorie, .pb-carte-nom, .pb-carte-prix) {
	padding-inline: 20px 8px;
}

.pb-carte-produit .pb-carte-categorie {
	margin-top: 12px;
}

.pb-carte-produit .pb-carte-categorie .ce-product-meta__label {
	display: none;
}

.pb-carte-produit .pb-carte-categorie .ce-product-meta__value {
	display: inline-block;
	font-family: "Oxanium", sans-serif;
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.2;
	color: var(--pb-accent);
}

.pb-carte-produit .pb-carte-categorie a.ce-product-meta__value:is(:hover, :focus-visible) {
	color: var(--pb-accent-survol);
	text-decoration: underline;
}

.pb-carte-produit .pb-carte-nom {
	margin-top: 4px;
}

.pb-carte-produit .pb-carte-nom .ce-product-name {
	margin: 0;
	font-family: "Oxanium", sans-serif;
	font-weight: 500;
	font-size: 1.125rem;
	line-height: 1.2;
	text-transform: uppercase;
	color: #000;
}

/* Nom sur 2 lignes réservées (3 en mobile) : les prix d'une rangée restent alignés ; un mot plus long que la carte
   (« POULET/PINTADE ») se coupe au lieu d'être masqué, un nom plus long finit par « … ». */
.pb-carte-produit .pb-carte-nom .ce-product-name {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	min-height: 2.4em;
	overflow-wrap: break-word;
}

@media (max-width: 767px) {
	/* Cartes de 169 px en mobile : retrait réduit, un mot comme « CONTREPOIDS » tient sur la ligne. */
	.pb-carte-produit :is(.pb-carte-categorie, .pb-carte-nom, .pb-carte-prix) {
		padding-inline: 12px 4px;
	}

	.pb-carte-produit .pb-carte-nom .ce-product-name {
		-webkit-line-clamp: 3;
		line-clamp: 3;
		min-height: 3.6em;
	}
}

.pb-carte-produit .pb-carte-nom .ce-product-name a {
	color: inherit;
	transition: color .2s ease;
}

.pb-carte-produit .pb-carte-nom .ce-product-name a:is(:hover, :focus-visible) {
	color: var(--pb-accent);
}

.pb-carte-produit .pb-carte-prix {
	margin-top: 8px;
}

.pb-carte-produit .pb-carte-prix .ce-product-prices {
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 8px;
}

.pb-carte-produit .pb-carte-prix .ce-product-price {
	font-family: "Oxanium", sans-serif;
	font-weight: 700;
	font-size: 1.625rem;
	line-height: 1.1;
	color: #000;
}

.pb-carte-produit .pb-carte-prix .ce-product-price-regular {
	font-family: "Oxanium", sans-serif;
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.2;
	color: var(--pb-accent);
	text-decoration: line-through;
}

@media (max-width: 767px) {
	.pb-carte-produit .pb-carte-photo {
		border-radius: 20px 0 20px 0;
	}

	.pb-carte-produit .pb-carte-ajout .elementor-button {
		width: 36px;
		height: 36px;
	}

	:is(.pb-carte-produit) .ce-product-badge {
		padding: 7px 12px;
	}

	.pb-carte-produit .pb-carte-nom .ce-product-name {
		font-size: 1rem;
	}

	.pb-carte-produit .pb-carte-prix .ce-product-price {
		font-size: 1.375rem;
	}
}

/* ==========================================================================
   Bandeau titre des listings (hero_interieur) : photo de la catégorie, ou photo par défaut sans image de catégorie ;
   surtitre « Nos produits » sur la Boutique (catégorie racine), « Catégorie » ailleurs.
   ========================================================================== */
.pb-hero-listing {
	background-color: #EFEFEF;
	background-image: url("/img/cms/socma/categorie/hero-fond.webp");
	background-position: 50% 57%;
	background-size: cover;
	background-repeat: no-repeat;
}

body:not(.category-depth-level-1) .pb-seul-racine,
body.category-depth-level-1 .pb-sauf-racine {
	display: none;
}

/* ==========================================================================
   Barre du listing : fil d'Ariane (page courante en rouge) et « Trier par » (pilule gris foncé ; la liste native passe
   par-dessus, transparente : clic et clavier ouvrent les options de tri).
   ========================================================================== */
.pb-fil-ariane .ce-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pb-fil-ariane .ce-breadcrumb__item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: "Amiko", sans-serif;
	font-size: 1rem;
	line-height: 1.3;
	color: var(--pb-gris-fonce);
}

/* Mobile : une seule ligne, le nom du produit tronqué (sinon un chevron restait seul en bout de ligne). */
@media (max-width: 767px) {
	.pb-fil-ariane .ce-breadcrumb ol {
		flex-wrap: nowrap;
	}

	.pb-fil-ariane .ce-breadcrumb__item {
		flex: none;
	}

	.pb-fil-ariane .ce-breadcrumb__item:last-child {
		flex: 0 1 auto;
		min-width: 0;
	}

	.pb-fil-ariane .ce-breadcrumb__item:last-child > * {
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
	}
}

/* Écart porté par le gap : sans le padding 0 10px de CE, le fil commence au bord du contenu sur toutes les pages. */
.pb-fil-ariane .ce-breadcrumb__item > * {
	display: inline-block;
	padding-inline: 0;
}

.pb-fil-ariane .ce-breadcrumb__item:not(:last-child)::after {
	content: "" !important;
	display: inline-block;
	width: 8px;
	height: 8px;
	background-color: var(--pb-gris-fonce);
	-webkit-mask: var(--pb-ico-chevron) center / contain no-repeat;
	mask: var(--pb-ico-chevron) center / contain no-repeat;
	transform: rotate(-90deg);
}

.pb-fil-ariane .ce-breadcrumb__item a {
	color: var(--pb-gris-fonce);
	transition: color .2s ease;
}

.pb-fil-ariane .ce-breadcrumb__item a:is(:hover, :focus-visible) {
	color: var(--pb-accent);
}

.pb-fil-ariane .ce-breadcrumb__item [aria-current] {
	color: var(--pb-accent);
}

/* Fil d'Ariane recomposé de la Boutique (liste d'icônes : Accueil › nom de la catégorie). */
.pb-fil-racine .elementor-icon-list-items {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin: 0 !important;
	padding: 0;
}

.pb-fil-racine .elementor-icon-list-item {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	margin: 0 !important;
	padding: 0 !important;
}

.pb-fil-racine .elementor-icon-list-item::after {
	display: none !important;
}

.pb-fil-racine .elementor-icon-list-item + .elementor-icon-list-item::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	background-color: var(--pb-gris-fonce);
	-webkit-mask: var(--pb-ico-chevron) center / contain no-repeat;
	mask: var(--pb-ico-chevron) center / contain no-repeat;
	transform: rotate(-90deg);
}

.pb-fil-racine .elementor-icon-list-text {
	display: inline-block;
	padding: 0 !important;
	font-family: "Amiko", sans-serif;
	font-size: 1rem;
	line-height: 1.3;
	color: var(--pb-gris-fonce) !important;
	transition: color .2s ease;
}

.pb-fil-racine a:is(:hover, :focus-visible) .elementor-icon-list-text,
.pb-fil-racine .elementor-icon-list-item:last-child .elementor-icon-list-text {
	color: var(--pb-accent) !important;
}

.pb-fil-racine .elementor-icon-list-item:last-child .elementor-icon-list-text {
	text-transform: lowercase;
}

.pb-fil-racine .elementor-icon-list-item:last-child .elementor-icon-list-text::first-letter {
	text-transform: uppercase;
}

.pb-tri .elementor-widget-container {
	display: flex;
	justify-content: flex-end;
}

.pb-tri .ce-sort-order {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
	margin: 0;
	padding: 8px 12px 8px 14px;
	border: 1px solid var(--pb-gris-fonce);
	border-radius: 100px;
	color: #fff;
	background-color: var(--pb-gris-fonce);
	cursor: pointer;
	transition: background-color .3s ease, color .3s ease, transform .25s ease, box-shadow .25s ease;
}

.pb-tri .ce-sort-order label {
	margin: 0;
	padding: 0;
	font-family: "Amiko", sans-serif;
	font-weight: 700;
	font-size: 1rem;
	line-height: 1;
	color: inherit !important;
	cursor: pointer;
}

.pb-tri .ce-sort-order::after {
	content: "";
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: var(--pb-ico-trier) center / contain no-repeat;
	mask: var(--pb-ico-trier) center / contain no-repeat;
}

.pb-tri .ce-sort-order .elementor-select-wrapper {
	position: absolute;
	inset: 0;
	z-index: 1;
	width: 100%;
}

.pb-tri .ce-sort-order .elementor-select-wrapper::before {
	display: none;
}

.pb-tri .ce-sort-order select {
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	opacity: 0;
	font-size: 1rem;
	cursor: pointer;
}

.pb-tri .ce-sort-order:is(:hover, :focus-within) {
	color: var(--pb-gris-fonce);
	background-color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 20px -8px rgba(0, 0, 0, .35);
}

.pb-tri .ce-sort-order:has(select:focus-visible) {
	outline: 2px solid var(--pb-accent);
	outline-offset: 3px;
}

/* ==========================================================================
   Colonne « Filtrez votre recherche » : panneau blanc arrondi à droite, qui déborde à gauche jusqu'au bord de l'écran.
   ========================================================================== */
.pb-filtres-col {
	align-self: flex-start;
}

.pb-filtres-col > .elementor-column-wrap {
	position: relative;
	isolation: isolate;
}

.pb-filtres-col > .elementor-column-wrap::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: 0;
	right: 0;
	bottom: 0;
	left: -100vw;
	background-color: #fff;
	border: 1px solid var(--pb-bordure-carte);
	border-left: 0;
	border-radius: 0 50px 50px 0;
}

.pb-filtres-col > .elementor-column-wrap > .elementor-widget-wrap {
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

.pb-filtres-titre {
	margin-bottom: 40px;
}

.pb-filtres-titre .elementor-heading-title {
	margin: 0;
}

/* En-têtes des blocs de filtres : pilule rouge, chevron blanc (vers le haut : bloc ouvert). */
.pb-filtre-titre .elementor-heading-title,
.pb-facettes .ce-filters__tab {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-height: 34px;
	margin: 0;
	padding: 8px 14px 8px 13px;
	border-radius: 100px;
	font-family: "Oxanium", sans-serif;
	font-weight: 700;
	font-size: .875rem;
	line-height: 1.2;
	color: #fff;
	background-color: var(--pb-accent);
}

.pb-filtre-titre .elementor-heading-title::after {
	content: "";
	flex: none;
	width: 12px;
	height: 7px;
	background-color: currentColor;
	-webkit-mask: var(--pb-ico-chevron) center / contain no-repeat;
	mask: var(--pb-ico-chevron) center / contain no-repeat;
	transform: rotate(180deg);
}

.pb-facettes .ce-filters__tab {
	cursor: pointer;
	transition: background-color .25s ease;
}

.pb-facettes .ce-filters__tab:is(:hover, :focus-visible) {
	background-color: var(--pb-accent-survol);
}

.pb-facettes .ce-filters__title {
	color: inherit;
}

.pb-facettes .ce-filters__title[data-count]:not([data-count="0"])::after {
	content: " (" attr(data-count) ")";
}

.pb-facettes .ce-filters__tab-icon {
	display: inline-flex;
	font-size: .75rem;
	line-height: 0;
}

.pb-facettes .ce-filters__tab-icon i {
	width: 12px;
	height: 7px;
	background-color: currentColor;
	-webkit-mask: var(--pb-ico-chevron) center / contain no-repeat;
	mask: var(--pb-ico-chevron) center / contain no-repeat;
}

.pb-facettes .ce-filters__tab-icon i::before {
	content: none;
}

/* Écarts : 16 px sous un en-tête, 50 px entre deux blocs. */
.pb-filtres-col .pb-arbre-categories,
.pb-filtres-col .pb-selection {
	margin-top: 16px;
}

.pb-filtres-col .pb-facettes,
.pb-filtres-col .pb-filtre-titre:not(:first-of-type) {
	margin-top: 50px;
}

.pb-facettes .ce-filters {
	gap: 50px;
}

.pb-facettes .ce-filters .elementor-field-group {
	margin: 0;
	padding: 0;
}

.pb-facettes .ce-filters .elementor-field-subgroup {
	margin-top: 16px;
	gap: 6px;
	padding: 0 20px;
	max-height: none;
}

/* Arbre des catégories : pastilles (catégorie courante en gris foncé, ses sous-catégories dépliées, trait rouge). */
.pb-arbre-categories .elementor-menu-toggle {
	display: none !important;
}

.pb-arbre-categories nav.elementor-nav--dropdown {
	display: block !important;
	position: static !important;
	max-height: none !important;
	margin: 0 !important;
	overflow: visible !important;
	background: transparent;
	box-shadow: none;
	transform: none !important;
}

.pb-arbre-categories .elementor-nav {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 0 20px;
}

.pb-arbre-categories .elementor-nav li {
	margin: 0 !important;
	border: 0 !important;
}

.pb-arbre-categories a.elementor-item {
	display: block;
	position: relative;
	min-height: 27px;
	padding: 4px 30px 4px 15px !important;
	border: 1px solid var(--pb-bordure-pastille) !important;
	border-radius: 100px;
	font-family: "Amiko", sans-serif;
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.2;
	color: #000 !important;
	background-color: #fff !important;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

.pb-arbre-categories a.elementor-item:is(:hover, :focus-visible),
.pb-arbre-categories a.elementor-item.highlighted {
	border-color: var(--pb-gris-fonce) !important;
}

.pb-arbre-categories li:is(.current-menu-item, .current-menu-ancestor) > a.elementor-item {
	border-color: var(--pb-gris-fonce) !important;
	color: #fff !important;
	background-color: var(--pb-gris-fonce) !important;
}

.pb-arbre-categories .sub-arrow {
	position: absolute;
	top: 50%;
	right: 13px;
	display: inline-flex;
	margin: 0 !important;
	padding: 0 !important;
	transform: translateY(-50%);
	font-size: 0;
	line-height: 0;
}

.pb-arbre-categories .sub-arrow i {
	width: 9px;
	height: 6px;
	background-color: currentColor;
	-webkit-mask: var(--pb-ico-chevron) center / contain no-repeat;
	mask: var(--pb-ico-chevron) center / contain no-repeat;
	transition: transform .25s ease;
}

.pb-arbre-categories .sub-arrow i::before {
	content: none;
}

.pb-arbre-categories li:is(.current-menu-item, .current-menu-ancestor) > a .sub-arrow i,
.pb-arbre-categories a.highlighted .sub-arrow i {
	transform: rotate(180deg);
}

.pb-arbre-categories .sub-menu {
	position: static !important;
	width: auto !important;
	min-width: 0 !important;
	margin: 6px 0 6px 17px !important;
	padding: 0 0 0 0 !important;
	border-left: 1px solid var(--pb-accent);
	background: transparent !important;
	box-shadow: none !important;
}

.pb-arbre-categories li:is(.current-menu-item, .current-menu-ancestor) > .sub-menu {
	display: block !important;
}

.pb-arbre-categories a.elementor-sub-item {
	display: block;
	min-height: 26px;
	padding: 4px 12px !important;
	border: 0 !important;
	font-family: "Amiko", sans-serif;
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.2;
	color: #000 !important;
	background: transparent !important;
}

.pb-arbre-categories a.elementor-sub-item:is(:hover, :focus-visible),
.pb-arbre-categories .current-menu-item > a.elementor-sub-item,
.pb-arbre-categories .current-menu-ancestor > a.elementor-sub-item {
	color: var(--pb-accent) !important;
}

/* Sélection (Meilleures ventes, Promotions) : mêmes pastilles que l'arbre, page courante en gris foncé. */
.pb-selection .elementor-icon-list-items {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 0 20px;
}

.pb-selection .elementor-icon-list-item {
	margin: 0 !important;
	padding: 0 !important;
}

.pb-selection .elementor-icon-list-item::after {
	display: none;
}

.pb-selection .elementor-icon-list-item > a {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 27px;
	padding: 4px 15px;
	border: 1px solid var(--pb-bordure-pastille);
	border-radius: 100px;
	color: #000;
	background-color: #fff;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

.pb-selection .elementor-icon-list-text {
	padding: 0 !important;
	font-family: "Amiko", sans-serif;
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.2;
	color: inherit !important;
}

.pb-selection .elementor-icon-list-item > a:is(:hover, :focus-visible) {
	border-color: var(--pb-gris-fonce);
}

body#best-sales .pb-selection .elementor-icon-list-item:nth-child(1) > a,
body#prices-drop .pb-selection .elementor-icon-list-item:nth-child(2) > a {
	border-color: var(--pb-gris-fonce);
	color: #fff;
	background-color: var(--pb-gris-fonce);
}

/* Facettes (ps_facetedsearch) : options en pastilles, marques en tuiles sur 2 colonnes, prix en curseur rouge. */
.pb-facettes .elementor-field-option {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	min-height: 27px;
	padding: 4px 13px 4px 15px;
	border: 1px solid var(--pb-bordure-pastille);
	border-radius: 100px;
	color: #000;
	background-color: #fff;
	transition: border-color .25s ease, background-color .25s ease, color .25s ease;
}

.pb-facettes .elementor-field-option .ce-checkbox,
.pb-facettes .elementor-field-option .ce-radio {
	display: none;
}

.pb-facettes .elementor-field-option .elementor-field-label {
	display: block;
	flex: 1;
	margin: 0;
	font-family: "Amiko", sans-serif;
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.2;
	color: inherit;
}

.pb-facettes .elementor-field-option:is(:hover, :focus-visible) {
	border-color: var(--pb-gris-fonce);
}

.pb-facettes .elementor-field-option[aria-checked="true"] {
	border-color: var(--pb-gris-fonce);
	color: #fff;
	background-color: var(--pb-gris-fonce);
}

.pb-facettes .elementor-field-group:has(> [data-type="manufacturer"]) .elementor-field-subgroup {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 11px 25px;
	padding: 0;
}

.pb-facettes .elementor-field-group:has(> [data-type="manufacturer"]) .elementor-field-option {
	justify-content: center;
	min-height: 71px;
	padding: 8px;
	border: 1px solid var(--pb-bordure-carte);
	border-radius: 11px;
	text-align: center;
}

.pb-facettes .elementor-field-group:has(> [data-type="manufacturer"]) .elementor-field-option[aria-checked="true"] {
	border-color: var(--pb-accent);
	color: #000;
	background-color: #fff;
}

.pb-facettes .elementor-field-type-slider .elementor-field-subgroup {
	margin-top: 40px;
	padding: 0;
}

.pb-facettes .ce-dual-range {
	--ce-range-height: 1px;
	--ce-range-active-color: var(--pb-accent);
	--ce-range-thumb-color: var(--pb-accent);
	--ce-range-thumb-size: 16px;
	--ce-range-thumb-border-width: 0px;
	background-color: var(--pb-bordure-carte);
}

.pb-facettes .elementor-field-type-slider .elementor-field-label {
	display: flex;
	justify-content: space-between;
	width: 100%;
	margin-top: 14px;
	font-size: 0;
	text-transform: none;
}

.pb-facettes .elementor-field-type-slider .elementor-field-label > span {
	font-family: "Amiko", sans-serif;
	font-size: 1rem;
	line-height: 1.2;
	color: #000;
}

.pb-facettes .ce-filters__clear {
	margin: 0;
}

.pb-facettes .ce-filters__clear .elementor-button {
	padding: 8px 16px;
	border: 1px solid var(--pb-gris-fonce);
	border-radius: 100px;
	font-family: "Amiko", sans-serif;
	font-weight: 700;
	font-size: .875rem;
	color: var(--pb-gris-fonce);
	background-color: #fff;
}

.pb-facettes .ce-filters__clear .elementor-button:is(:hover, :focus-visible) {
	color: #fff;
	background-color: var(--pb-gris-fonce);
}

/* En desktop, l'arbre des catégories sert de filtre « Catégories » : la facette n'apparaît que dans la fenêtre des
   filtres (tablette et mobile). */
@media (min-width: 1025px) {
	.pb-facettes .elementor-field-group:has(> [data-type="category"]) {
		display: none;
	}
}

/* Flèches déportées (Remote Arrow, fleches_carrousel()) : les carrousels de produits ont la navigation du socle
   (pb-carrousel-nav) ; règles gardées pour un carrousel à flèches déportées. Flèche « précédent » = « suivant » en miroir,
   grisée au bout ; masquées quand tout tient à l'écran (les deux grisées). */
.pb-fleches-carrousel .remote-arrow-wrapper {
	gap: 11px;
}

.pb-fleches-carrousel .remote-arrow-left {
	transform: scaleX(-1);
}

.pb-fleches-carrousel .remote-arrow-button {
	border-radius: 50%;
	transition: opacity .2s ease, transform .25s ease, box-shadow .25s ease;
}

.pb-fleches-carrousel .remote-arrow-button:not([disabled]):is(:hover, :focus-visible) {
	transform: translateY(-2px);
	box-shadow: 0 10px 20px -8px rgba(0, 0, 0, .35);
}

.pb-fleches-carrousel .remote-arrow-button:not([disabled]) .remote-arrow:hover {
	opacity: 1;
}

.pb-fleches-carrousel .remote-arrow-button[disabled] {
	opacity: .25;
}

.pb-fleches-carrousel:not(:has(.remote-arrow-button:not([disabled]))) {
	display: none;
}

/* Remote Arrow ne grise pas « suivant » quand Swiper verrouille un carrousel dont tout tient à l'écran : flèches masquées
   d'après le nombre de cartes (5 visibles en desktop, 3 en tablette, 1 en mobile). */
@media (min-width: 1025px) {
	.pb-carrousel-produits:not(:has(.swiper-slide:nth-child(6))) + .pb-fleches-carrousel {
		display: none;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.pb-carrousel-produits:not(:has(.swiper-slide:nth-child(4))) + .pb-fleches-carrousel {
		display: none;
	}
}

@media (max-width: 767px) {
	.pb-carrousel-produits:not(:has(.swiper-slide:nth-child(2))) + .pb-fleches-carrousel {
		display: none;
	}
}

/* ==========================================================================
   Grille de produits et « Voir + de produits »
   ========================================================================== */
.pb-grille-produits .ce-product-grid {
	align-items: start;
}

.pb-voir-plus .elementor-button[aria-current] {
	opacity: .6;
	pointer-events: none;
}

/* Grille vide (aucun produit pour ces filtres) : bloc du thème recentré. */
.pb-grille-produits #js-product-list-top,
.pb-grille-produits .page-not-found {
	padding: 40px;
	border-radius: 30px 0 30px 0;
	background-color: #fff;
}

/* ==========================================================================
   Panneau blanc sous la grille (carrousel de produits + FAQ) et décors de fond (forme de l'accueil à 5 %).
   ========================================================================== */
.pb-panneau-listing .pb-carrousel-produits {
	width: 100%;
}

.pb-panneau-listing .pb-faq-listing {
	width: 100%;
}

.pb-cat-deco {
	position: relative;
}

.pb-cat-deco::before {
	content: "";
	position: absolute;
	z-index: -1;
	width: 836px;
	height: 730px;
	background: url("/img/cms/socma/commun/decor-fond-cta-gauche.svg") center / contain no-repeat;
	pointer-events: none;
}

/* Le dessin est recadré en haut et à droite (bords droits cachés par la grille dans la maquette) : sur une grille courte
   (une seule promotion), ces bords seraient visibles, ils s'estompent. */
.pb-cat-deco--haut::before {
	left: calc(50% - 50vw - 115px);
	bottom: -136px;
	-webkit-mask-image: linear-gradient(to bottom, transparent, #000 35%), linear-gradient(to left, transparent, #000 30%);
	-webkit-mask-composite: source-in;
	mask-image: linear-gradient(to bottom, transparent, #000 35%), linear-gradient(to left, transparent, #000 30%);
	mask-composite: intersect;
}

.pb-cat-deco--bas::before {
	left: calc(50% - 50vw - 288px);
	top: -22px;
}

/* ==========================================================================
   Tablette et mobile : filtres dans la fenêtre « Filtrer » (bouton à côté des pastilles de sélection), grille sur
   3 colonnes dès 900 px, 2 colonnes en dessous.
   ========================================================================== */
@media (max-width: 1024px) {
	.pb-filtres-col {
		align-self: auto;
	}

	.pb-filtres-col > .elementor-column-wrap::before {
		display: none;
	}

	.pb-filtres-col > .elementor-column-wrap > .elementor-widget-wrap {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		gap: 8px;
		margin-bottom: 32px;
	}

	.pb-filtres-col :is(.pb-filtres-titre, .pb-filtre-titre, .pb-arbre-categories) {
		display: none;
	}

	.pb-filtres-col :is(.pb-facettes, .pb-selection) {
		width: auto !important;
		margin: 0 !important;
	}

	.pb-facettes .ce-filters__toggle .elementor-button {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		min-height: 36px;
		padding: 8px 14px;
		border: 1px solid var(--pb-gris-fonce);
		border-radius: 100px;
		font-family: "Amiko", sans-serif;
		font-weight: 700;
		font-size: .875rem;
		line-height: 1;
		color: #fff;
		background-color: var(--pb-gris-fonce);
	}

	.pb-facettes .ce-filters__toggle .elementor-button:is(:hover, :focus-visible) {
		color: var(--pb-gris-fonce);
		background-color: #fff;
	}

	.pb-facettes .ce-filters__toggle .elementor-button-icon {
		order: 2;
		margin: 0 !important;
		line-height: 0;
	}

	.pb-facettes .ce-filters__toggle .elementor-button-icon :is(svg, img) {
		width: 16px;
		height: 16px;
	}

	.pb-selection .elementor-icon-list-items {
		flex-direction: row;
		flex-wrap: wrap;
		padding: 0;
	}

	.pb-selection .elementor-icon-list-item > a {
		min-height: 36px;
		padding: 8px 16px;
	}

	/* Fenêtre des filtres ouverte : panneau blanc à gauche, mêmes blocs qu'en desktop. */
	.pb-facettes .ce-filters__container.ce-filters--shown .ce-filters {
		width: min(340px, 88vw);
		padding: 70px 24px 32px;
		border-radius: 0 30px 30px 0;
	}

	.pb-facettes .ce-filters__container .dialog-lightbox-close-button {
		margin: 20px;
		font-size: 1.5rem;
		color: var(--pb-gris-fonce);
	}

	.pb-cat-deco::before {
		width: 560px;
		height: 490px;
	}
}

@media (max-width: 899px) and (min-width: 768px) {
	.pb-grille-produits .ce-product-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 767px) {
	.pb-barre-tri {
		margin-top: 16px;
	}

	.pb-barre-tri > .elementor-column-wrap > .elementor-widget-wrap {
		justify-content: flex-start;
	}

	.pb-filtres-col > .elementor-column-wrap > .elementor-widget-wrap {
		margin-bottom: 24px;
	}

	.pb-cat-deco::before {
		width: 400px;
		height: 350px;
	}
}

/* ==========================================================================
   Listing sans résultat (modèle CE_LISTING_NO_RESULTS) : carte blanche à la place de la grille.
   ========================================================================== */
.pb-sans-resultat {
	border: 1px solid var(--pb-bordure-carte);
	border-radius: 30px 0 30px 0;
	background-color: #fff;
}

.pb-sans-resultat .pb-rangee-boutons--gauche > .elementor-column-wrap > .elementor-widget-wrap {
	justify-content: flex-start;
}

.pb-sans-resultat .pb-rangee-boutons--gauche .elementor-widget-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
}

/* ==========================================================================
   Fiche produit (modèle CE_PRODUCT, spec 05) : galerie à gauche, zone d'achat à droite, onglets, produits associés.
   ========================================================================== */
.pb-cat-deco--droite::before {
	right: calc(50% - 50vw - 282px);
	top: 185px;
}

.pb-fiche-galerie > .elementor-column-wrap > .elementor-widget-wrap {
	position: relative;
}

/* Galerie : photo principale bordée, arrondie en bas à droite ; miniatures en dessous (3 visibles), flèches de part et
   d'autre des miniatures (rendues par le widget dans la photo principale : déplacées sous elle, le reste du défilement
   restant coupé aux bords de la photo). */
.pb-galerie .elementor-main-swiper {
	aspect-ratio: 610 / 541.7;
	overflow: visible;
	clip-path: polygon(0 0, 100% 0, 100% 100%, calc(100% + 60px) 100%, calc(100% + 60px) calc(100% + 240px), -60px calc(100% + 240px), -60px 100%, 0 100%);
	border: 1px solid var(--pb-bordure-carte);
	border-radius: 0 0 30px 0;
	background-color: #fff;
}

.pb-galerie .elementor-main-swiper .swiper-wrapper,
.pb-galerie .elementor-main-swiper .swiper-slide,
.pb-galerie .elementor-main-swiper .swiper-slide-inner {
	height: 100%;
}

.pb-galerie .elementor-main-swiper .swiper-slide {
	overflow: hidden;
	border-radius: 0 0 29px 0;
	background-color: #fff;
}

.pb-galerie .elementor-main-swiper .swiper-slide-inner {
	display: block;
}

.pb-galerie .elementor-main-swiper .elementor-carousel-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.pb-galerie .elementor-thumbnails-swiper {
	margin: 0 34px;
}

.pb-galerie .elementor-thumbnails-swiper .swiper-slide {
	aspect-ratio: 173.5 / 116;
	overflow: hidden;
	border: 1px solid var(--pb-bordure-carte);
	border-radius: 15px 0 15px 0;
	background-color: #fff;
	cursor: pointer;
	transition: border-color .25s ease;
}

.pb-galerie .elementor-thumbnails-swiper .swiper-slide:is(:hover, .swiper-slide-thumb-active) {
	border-color: var(--pb-accent);
}

.pb-galerie .elementor-thumbnails-swiper .swiper-slide a {
	display: block;
	height: 100%;
}

.pb-galerie .elementor-thumbnails-swiper .elementor-carousel-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pb-galerie .elementor-thumbnails-swiper .swiper-scrollbar {
	display: none;
}

.pb-galerie .elementor-main-swiper .elementor-swiper-button {
	top: calc(100% + 22px + (100% - 68px) * 116 / 173.5 * .5 / 3) !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin: 0 !important;
	color: var(--pb-gris-fonce);
	transform: translateY(-50%) !important;
}

.pb-galerie .elementor-main-swiper .elementor-swiper-button-prev {
	left: 3px !important;
	right: auto !important;
}

.pb-galerie .elementor-main-swiper .elementor-swiper-button-next {
	right: 3px !important;
	left: auto !important;
}

.pb-galerie .elementor-main-swiper .elementor-swiper-button svg {
	width: 14px;
	height: 8px;
	fill: none;
}

.pb-galerie .elementor-main-swiper .elementor-swiper-button-prev svg {
	transform: rotate(90deg);
}

.pb-galerie .elementor-main-swiper .elementor-swiper-button-next svg {
	transform: rotate(-90deg);
}

.pb-galerie .elementor-main-swiper .elementor-swiper-button:is(:hover, :focus-visible) {
	color: var(--pb-accent);
}

.pb-galerie .elementor-main-swiper .elementor-swiper-button.swiper-button-disabled {
	opacity: .25;
}

/* Une seule photo : ni miniatures ni flèches. */
.pb-galerie:not(:has(.elementor-thumbnails-swiper .swiper-slide:nth-child(2))) :is(.elementor-thumbnails-swiper, .elementor-swiper-button) {
	display: none !important;
}

.pb-galerie .elementor-swiper + .elementor-swiper {
	margin-top: 22px;
}

/* Zone d'achat : catégorie, nom (H1), référence, résumé, prix (prix barré au-dessus), quantité et bouton (le bouton
   recouvre la fin de la pilule de quantité), disponibilité et délai. */
.pb-fiche-categorie .elementor-heading-title {
	font-family: "Oxanium", sans-serif;
	font-weight: 700;
	font-size: 1.125rem;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--pb-accent);
}

.pb-fiche-categorie .elementor-heading-title a {
	color: inherit;
	transition: color .2s ease;
}

.pb-fiche-categorie .elementor-heading-title a:is(:hover, :focus-visible) {
	color: var(--pb-accent-survol);
}

.pb-fiche-nom {
	margin-top: 11px;
}

.pb-fiche-nom .ce-product-name {
	margin: 0;
	color: #000;
}

/* Noms de produits saisis en minuscules : première lettre en capitale. */
.pb-fiche-nom .ce-product-name {
	display: block;
}

.pb-fiche-nom .ce-product-name::first-letter {
	text-transform: uppercase;
}

.pb-fiche-reference {
	margin-top: 4px;
}

.pb-fiche-reference .ce-product-meta__label {
	display: none;
}

.pb-fiche-reference .ce-product-meta__value {
	font-family: "Amiko", sans-serif;
	font-size: 1rem;
	line-height: 1.3;
	color: var(--pb-texte-attenue);
}

.pb-fiche-resume {
	max-width: 520px;
	margin-top: 22px;
}

.pb-fiche-resume,
.pb-fiche-resume p {
	font-family: "Amiko", sans-serif;
	font-size: 1rem;
	line-height: 1.3;
	color: #000;
}

.pb-fiche-resume p:last-child {
	margin-bottom: 0;
}

.pb-fiche-prix {
	margin-top: 29px;
}

.pb-fiche-prix .ce-product-prices {
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 10px;
	row-gap: 2px;
}

.pb-fiche-prix .ce-product-price-regular {
	flex-basis: 100%;
	font-family: "Oxanium", sans-serif;
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.2;
	color: var(--pb-accent);
	text-decoration: line-through;
}

.pb-fiche-prix .ce-product-price {
	font-family: "Oxanium", sans-serif;
	font-weight: 700;
	font-size: 2.375rem;
	line-height: 1.15;
	letter-spacing: -.02em;
	color: #000;
}

.pb-fiche-prix .ce-tax-shipping-delivery-label {
	font-family: "Amiko", sans-serif;
	font-size: 1rem;
	color: var(--pb-gris-fonce);
}

.pb-fiche-panier {
	margin-top: 22px;
}

.pb-fiche-panier .elementor-widget-wrap {
	flex-wrap: nowrap;
	align-items: center;
}

.pb-fiche-quantite .ce-product-quantity {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 125px;
	height: 39px;
	margin: 0;
	padding: 0 46px 0 12px;
	border: 1px solid var(--pb-bordure-carte);
	border-radius: 100px;
	background-color: #fff;
}

/* Taille forcée (CE les fait de 34 × 44 px) : le « + » reste à 68 px du bord, hors des 34 px que recouvre le bouton. */
.pb-fiche-quantite .ce-product-quantity__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px !important;
	min-width: 0 !important;
	height: 28px !important;
	padding: 0 !important;
	font-size: .75rem;
	color: var(--pb-texte-attenue);
	cursor: pointer;
	transition: color .2s ease;
}

.pb-fiche-quantite .ce-product-quantity__btn:hover {
	color: var(--pb-accent);
}

.pb-fiche-quantite input[type="number"] {
	width: 30px;
	min-height: 0;
	height: 28px;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: center;
	font-family: "Amiko", sans-serif;
	font-weight: 700;
	font-size: 1rem;
	color: #000;
	-moz-appearance: textfield;
	appearance: textfield;
}

.pb-fiche-quantite input[type="number"]::-webkit-inner-spin-button,
.pb-fiche-quantite input[type="number"]::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.pb-fiche-ajout {
	position: relative;
	z-index: 1;
	margin-left: -34px;
}

/* Bouton d'ajout de la fiche à la hauteur de la pilule de quantité (39 px, maquette), pas aux 48 px des autres boutons. */
.pb-fiche-ajout.pb-bouton .elementor-button {
	min-height: 39px !important;
	padding-block: 0 !important;
}

.pb-fiche-ajout .elementor-button {
	min-height: 39px;
	padding: 10px 20px;
	box-shadow: 0 2px 1px rgba(189, 106, 108, .5);
}

.pb-fiche-ajout .elementor-button:is([disabled], .disabled, [aria-disabled="true"]) {
	border-color: transparent;
	color: #fff !important;
	background-color: #A6A6A5 !important;
	box-shadow: none;
	transform: none;
	cursor: not-allowed;
}

.pb-fiche-stock {
	margin-top: 21px;
}

.pb-fiche-stock .ce-product-stock__availability {
	gap: 8px;
}

.pb-fiche-stock .ce-product-stock__availability i {
	font-size: .8125rem;
	color: #11D000;
}

.pb-fiche-stock :is(.ce-product-stock--out-of-stock, .ce-product-stock--backorder) i {
	color: #D00000;
}

.pb-fiche-stock .ce-product-stock__availability-label {
	font-family: "Amiko", sans-serif;
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.3;
	color: #000;
}

.pb-fiche-delai {
	margin-top: 21px;
	margin-left: 4px;
}

.pb-fiche-delai:not(:has(.ce-product-meta__detail)) {
	display: none;
}

.pb-fiche-delai .ce-product-meta__label {
	display: none;
}

.pb-fiche-delai .ce-product-meta__value {
	font-family: "Amiko", sans-serif;
	font-size: 1rem;
	line-height: 1.3;
	color: rgba(64, 64, 63, .75);
}

.pb-fiche-delai .ce-product-meta__value::before {
	content: "- ";
	font-weight: 600;
	color: #000;
}

/* Onglets (boutons radio de la barre, :has() pour le panneau affiché ; sans :has(), les blocs s'empilent). */
.pb-onglets-barre {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 6px;
	padding-left: 9px;
}

.pb-onglet-radio {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	opacity: 0;
}

.pb-onglet-titre {
	margin: 0;
	padding: 0 20px;
	font-family: "Oxanium", sans-serif;
	font-weight: 700;
	font-size: 1.125rem;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--pb-texte-attenue);
	cursor: pointer;
	transition: color .2s ease;
}

.pb-onglet-titre:hover,
.pb-onglet-radio:checked + .pb-onglet-titre {
	color: #000;
}

.pb-onglet-radio:checked + .pb-onglet-titre::first-letter {
	color: var(--pb-accent);
}

.pb-onglet-radio:focus-visible + .pb-onglet-titre {
	outline: 2px solid var(--pb-accent);
	outline-offset: 4px;
	border-radius: 4px;
}

.pb-onglet-panneau {
	max-width: 1354px;
	margin-top: 11px;
	padding: 25px 29px 0;
}

/* Tablette et mobile : titres d'onglets et texte au bord du contenu, comme le H1 et la galerie (le retrait de 29 px est
   propre à la maquette desktop). */
@media (max-width: 1024px) {
	.pb-onglets-barre {
		padding-left: 0;
	}

	.pb-onglet-titre:first-of-type {
		padding-left: 0;
	}

	.pb-onglet-panneau {
		padding-inline: 0;
	}
}

.pb-onglet-panneau,
.pb-onglet-panneau p,
.pb-onglet-panneau li {
	font-family: "Amiko", sans-serif;
	font-size: 1rem;
	line-height: 1.4;
	color: #000;
}

.pb-onglet-caracteristiques .ce-product-features {
	width: 100%;
	max-width: 900px;
	border-collapse: collapse;
}

.pb-onglet-caracteristiques .ce-product-features__row {
	border-bottom: 1px solid var(--pb-bordure-pastille);
}

.pb-onglet-caracteristiques .ce-product-features__label,
.pb-onglet-caracteristiques .ce-product-features__value {
	padding: 12px 16px 12px 0;
	text-align: left;
	vertical-align: top;
}

.pb-onglet-caracteristiques .ce-product-features__label {
	width: 33%;
	font-weight: 700;
}

.pb-onglet-documents .ce-attachment {
	align-items: flex-start;
	gap: 14px;
	margin-bottom: 16px;
}

.pb-onglet-documents .elementor-icon {
	font-size: 1.25rem;
	color: var(--pb-accent);
}

.pb-onglet-documents .elementor-icon-box-title {
	font-weight: 700;
	color: #000;
}

.pb-onglet-documents .elementor-icon-box-title:is(:hover, :focus-visible) {
	color: var(--pb-accent);
}

@supports selector(:has(*)) {
	.pb-onglets .pb-onglet-panneau {
		display: none;
	}

	.pb-onglets:has(#pb-onglet-description:checked) .pb-onglet-description,
	.pb-onglets:has(#pb-onglet-caracteristiques:checked) .pb-onglet-caracteristiques,
	.pb-onglets:has(#pb-onglet-documents:checked) .pb-onglet-documents {
		display: block;
	}

	.pb-onglets:not(:has(.pb-onglet-caracteristiques .ce-product-features)) [for="pb-onglet-caracteristiques"],
	.pb-onglets:not(:has(.pb-onglet-documents .ce-product-attachments)) [for="pb-onglet-documents"] {
		display: none;
	}
}

@media (max-width: 1024px) {
	.pb-cat-deco--droite::before {
		top: 420px;
	}
}

/* Tablette portrait : galerie puis zone d'achat empilées (côte à côte dès 900 px). */
@media (min-width: 768px) and (max-width: 899px) {
	.pb-fiche-corps > .elementor-container > .elementor-row {
		flex-wrap: wrap;
	}

	.pb-fiche-corps .pb-fiche-galerie,
	.pb-fiche-corps .pb-fiche-achat {
		width: 100% !important;
	}

	.pb-fiche-corps .pb-fiche-galerie > .elementor-column-wrap {
		padding: 0 0 48px !important;
	}

	.pb-fiche-corps .pb-fiche-achat > .elementor-column-wrap {
		padding-top: 0 !important;
	}
}

@media (max-width: 767px) {
	.pb-galerie .elementor-thumbnails-swiper {
		margin: 0 28px;
	}

	.pb-galerie .elementor-main-swiper .elementor-swiper-button {
		top: calc(100% + 22px + (100% - 56px) * 116 / 173.5 * .5 / 3) !important;
		left: auto;
	}

	.pb-galerie .elementor-main-swiper .elementor-swiper-button-prev {
		left: 0 !important;
	}

	.pb-galerie .elementor-main-swiper .elementor-swiper-button-next {
		right: 0 !important;
	}

	.pb-fiche-prix .ce-product-price {
		font-size: 2rem;
	}

	.pb-onglets-barre {
		padding-left: 0;
	}

	.pb-onglet-titre {
		padding: 0 12px 0 0;
		font-size: 1rem;
	}

	.pb-onglet-panneau {
		padding: 20px 0 0;
	}
}

.pb-fiche-prix.ce-product-prices--layout-stacked .ce-product-prices {
	flex-direction: row;
}

.pb-fiche-quantite .ce-product-quantity__btn,
.pb-fiche-quantite .ce-product-quantity__btn:hover {
	border: 0;
	background: transparent;
}

/* ==========================================================================
   Desktop étroit (1025 à 1465 px) : section() de la lib n'a pas de marge latérale en desktop (contenu de 1386 px, padding
   0), le contenu toucherait les bords de l'écran. Marge de 40 px (celle de la tablette) sur les sections des pages
   catalogue, jusqu'à ce que la lib la pose elle-même.
   ========================================================================== */
@media (min-width: 1025px) and (max-width: 1465px) {
	:is(.pb-listing, .pb-panneau-listing, .pb-temoignages, .pb-fiche, .pb-fiche-associes),
	body:is(#category, #prices-drop, #best-sales, #new-products, #product) :is(.pb-cta, .pb-reassurance) {
		padding-left: 40px !important;
		padding-right: 40px !important;
	}
}

/* Desktop étroit : pastilles de l'arbre des catégories sur une ligne (« Materiel d'abattage » passait sur 2 lignes). */
@media (min-width: 1025px) and (max-width: 1280px) {
	/* Colonne de filtres étroite : pastilles de sélection à 0,875rem (minimum des pastilles), « Meilleures ventes » tient. */
	.pb-selection .elementor-icon-list-item > a {
		padding-inline: 8px !important;
	}

	.pb-selection .elementor-icon-list-text {
		font-size: .875rem !important;
	}

	.pb-arbre-categories a.elementor-item {
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
		padding-inline: 10px !important;
	}
}

/* Grille sur 3 colonnes en desktop étroit (cartes trop serrées à 4 sous 1280 px). */
@media (min-width: 1025px) and (max-width: 1279px) {
	.pb-grille-produits .ce-product-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}
