/**
 * Catalogue et fiche produit — feuille dédiée.
 *
 * Chargée uniquement sur le listing (boutique, archives, recherche produit) et la
 * fiche produit. Mobile d'abord ; points de rupture : 690 px, 1000 px (barre de
 * filtres desktop, fiche en deux colonnes).
 *
 * Les couleurs, polices, boutons, champs de formulaire, titres, colonnes et
 * espacements de la grille viennent des variables CSS du Customizer Blocksy
 * (`--theme-*`, `--shop-columns`, `--grid-columns-gap`). Les valeurs littérales
 * ne servent que de repli hors Blocksy.
 *
 * @package Blocksy_Child_Freeperie
 * @since   3.0.0
 */

/* ==========================================================================
   1. Jetons (dérivés du Customizer)
   ========================================================================== */

:root {
	--fp-green: var(--theme-palette-color-1, #38b449);
	--fp-green-dark: var(--theme-palette-color-2, #2d8f3a);
	--fp-ink: var(--theme-headings-color, var(--theme-palette-color-3, #2d2d2d));
	--fp-ink-2: var(--theme-text-color, var(--theme-palette-color-4, #4f4f4f));
	/* Surfaces et accent : indépendants des numéros de palette (leur rôle varie selon
	   les sites : en prod la couleur 5 est un vert clair, la 7 un fond). */
	--fp-bg: var(--theme-palette-color-8, #ffffff);
	--fp-bg-soft: #f5f5f3;
	--fp-accent: #d97757;
	--fp-font: var(--theme-font-family, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
	--fp-field-border: var(--theme-form-field-border-initial-color, #d3d6d1);
	--fp-field-focus: var(--theme-form-field-border-focus-color, var(--fp-green));
	--fp-field-bg: var(--theme-form-field-background-initial-color, var(--fp-bg));
	--fp-field-radius: var(--theme-form-field-border-radius, 3px);
	--fp-btn-radius: var(--theme-button-border-radius, 4px);
	--fp-radius: 12px;
	--fp-radius-sm: 8px;
	--fp-shadow: 0 1px 2px rgba(20, 30, 20, 0.06), 0 8px 24px rgba(20, 30, 20, 0.08);
	--fp-shadow-lg: 0 16px 48px rgba(20, 30, 20, 0.18);
	--fp-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	/* Décalage sous l'en-tête fixe, même formule que Blocksy (.sticky-gallery). */
	--fp-sticky-top: calc(50px + var(--admin-bar, 0px) + var(--theme-frame-size, 0px) + var(--header-sticky-offset, 0px) + var(--header-sticky-height-animated, calc(var(--header-sticky-height, 0px) * var(--sticky-shrink, 100) / 100)));

	/* Repli pour les navigateurs sans color-mix(). */
	--fp-green-soft: #eaf7ed;
	--fp-green-line: #bfe6c7;
	--fp-muted: #7d827e;
	--fp-line: #e6e8e4;
	--fp-line-strong: #d3d6d1;
	--fp-danger: #c0392b;
	--fp-gold-soft: #fdf6e3;
}

@supports (color: color-mix(in srgb, red 50%, white)) {
	:root {
		--fp-bg-soft: color-mix(in srgb, var(--fp-ink) 4%, var(--fp-bg));
		--fp-green-soft: color-mix(in srgb, var(--fp-green) 12%, var(--fp-bg));
		--fp-green-line: color-mix(in srgb, var(--fp-green) 35%, var(--fp-bg));
		--fp-muted: color-mix(in srgb, var(--fp-ink-2) 65%, var(--fp-bg));
		--fp-line: color-mix(in srgb, var(--fp-ink-2) 14%, transparent);
		--fp-line-strong: color-mix(in srgb, var(--fp-ink-2) 24%, transparent);
		--fp-gold-soft: color-mix(in srgb, var(--fp-accent) 14%, var(--fp-bg));
	}
}

/* ==========================================================================
   2. Base de page
   ========================================================================== */

.fp-catalog,
.fp-product {
	font-family: var(--fp-font);
	color: var(--fp-ink-2);
	-webkit-font-smoothing: antialiased;
}

.fp-catalog *,
.fp-product * {
	box-sizing: border-box;
}

.fp-catalog .fp-btn,
.fp-product .fp-btn,
:is(.fp-catalog, .fp-drawer) .fp-facet,
:is(.fp-catalog, .fp-drawer) .fp-chip,
.fp-catalog .fp-card__body,
.fp-product .fp-trust,
.fp-product .fp-specs,
.fp-product .fp-crumbs {
	font-size: 14px;
	line-height: 1.5;
}

.fp-catalog a,
.fp-product a {
	text-decoration: none;
}

.fp-catalog button,
.fp-product button {
	font: inherit;
	color: inherit;
}

.fp-catalog .screen-reader-text,
.fp-product .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.fp-catalog .woocommerce-notices-wrapper:empty,
.fp-product .woocommerce-notices-wrapper:empty {
	display: none;
}

/* Titres : typographie du Customizer, seules les marges sont ajustées. */
.fp-catalog__title,
.fp-product__title,
.fp-section-title,
.fp-empty__title {
	margin: 0;
}

/* ==========================================================================
   3. Composants partagés
   ========================================================================== */

.fp-ico {
	width: 1.15em;
	height: 1.15em;
	flex: 0 0 auto;
	vertical-align: -0.2em;
}

/* Boutons : couleurs, rayon, police, casse et hauteur du Customizer (Blocksy → Boutons). */
.fp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: var(--theme-button-min-height, 40px);
	padding: var(--theme-button-padding, 0 18px);
	border: var(--theme-button-border, 1px solid transparent);
	border-radius: var(--fp-btn-radius);
	background: transparent;
	font-family: var(--theme-button-font-family, inherit);
	font-size: var(--theme-button-font-size, 14px);
	font-weight: var(--theme-button-font-weight, 600);
	text-transform: var(--theme-button-text-transform, none);
	letter-spacing: var(--theme-button-letter-spacing, normal);
	line-height: 1.2;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color 0.15s, color 0.15s, border-color 0.15s, transform 0.15s var(--fp-ease), box-shadow 0.15s;
	-webkit-tap-highlight-color: transparent;
}

.fp-btn:focus-visible {
	outline: 2px solid var(--fp-field-focus);
	outline-offset: 2px;
}

.fp-btn--primary {
	background: var(--theme-button-background-initial-color, var(--fp-green));
	color: var(--theme-button-text-initial-color, #fff) !important;
	box-shadow: var(--theme-button-shadow, none);
}

.fp-btn--primary:hover {
	background: var(--theme-button-background-hover-color, var(--fp-green-dark));
	color: var(--theme-button-text-hover-color, #fff) !important;
}

.fp-btn--primary:active {
	transform: translateY(1px);
}

.fp-btn--outline {
	border: 1px solid var(--fp-line-strong);
	background: var(--fp-bg);
	color: var(--fp-ink);
}

.fp-btn--outline:hover {
	border-color: var(--fp-ink);
}

.fp-btn--ghost {
	color: var(--fp-ink-2);
}

.fp-btn--ghost:hover {
	background: var(--fp-bg-soft);
	color: var(--fp-ink);
}

.fp-btn--sm {
	min-height: 34px;
	padding: 0 14px;
	font-size: 13px;
}

.fp-btn--lg {
	min-height: max(52px, var(--theme-button-min-height, 40px));
}

.fp-btn[disabled] {
	cursor: default;
	opacity: 0.6;
	box-shadow: none;
}

.fp-btn.is-loading {
	position: relative;
	color: transparent !important;
}

.fp-btn.is-loading::after,
.fp-card__add.is-loading::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 18px;
	height: 18px;
	border: 2px solid rgba(255, 255, 255, 0.5);
	border-top-color: #fff;
	border-radius: 50%;
	animation: fp-spin 0.7s linear infinite;
}

@keyframes fp-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Champs : bordure, fond, rayon et couleur de focus du Customizer (Blocksy → Formulaires). */
:is(.fp-catalog, .fp-drawer) input.fp-search__input,
:is(.fp-catalog, .fp-drawer) input.fp-facet__search-input,
:is(.fp-catalog, .fp-drawer) .fp-price__field input,
:is(.fp-catalog, .fp-drawer) select.fp-sort__select {
	font-family: var(--fp-font);
	color: var(--fp-ink);
	background: var(--fp-field-bg);
	border: var(--theme-form-field-border-width, 1px) solid var(--fp-field-border);
	border-radius: var(--fp-field-radius);
	-webkit-appearance: none;
	appearance: none;
}

:is(.fp-catalog, .fp-drawer) input.fp-search__input:focus,
:is(.fp-catalog, .fp-drawer) input.fp-facet__search-input:focus,
:is(.fp-catalog, .fp-drawer) .fp-price__field input:focus,
:is(.fp-catalog, .fp-drawer) select.fp-sort__select:focus {
	outline: none;
	border-color: var(--fp-field-focus);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--fp-field-focus) 18%, transparent);
}

/* Badge Pépite */
.fp-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 9px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1;
}

.fp-badge--pepite {
	background: var(--fp-ink);
	color: #ffd766;
}

.fp-badge--pepite .fp-ico {
	color: #7ee88f;
	width: 13px;
	height: 13px;
}

/* Bloc prix */
.fp-price-block {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.fp-price-block__main {
	font-weight: 700;
	font-size: 15px;
	line-height: 1.2;
	color: var(--fp-ink);
}

.fp-price-block__circu {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px;
	font-size: 12px;
	color: var(--fp-green-dark);
	line-height: 1.3;
}

.fp-price-block__circu-amount {
	font-weight: 700;
}

.fp-price-block__circu-label {
	font-weight: 500;
}

.fp-price-block__info {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	margin-left: 2px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--fp-muted);
	cursor: pointer;
}

.fp-price-block__info:hover,
.fp-price-block__info[aria-expanded="true"] {
	color: var(--fp-green-dark);
	background: var(--fp-green-soft);
}

.fp-price-block__info .fp-ico {
	width: 15px;
	height: 15px;
}

.fp-price-block--single .fp-price-block__main {
	font-size: 30px;
	letter-spacing: -0.01em;
}

.fp-price-block--single .fp-price-block__circu {
	font-size: 15px;
	gap: 6px;
}

.fp-price-block--single .fp-price-block__circu-amount {
	font-size: 18px;
}

.fp-price-block--single .fp-price-block__info {
	width: 24px;
	height: 24px;
}

.fp-price-block--single .fp-price-block__info .fp-ico {
	width: 18px;
	height: 18px;
}

/* Infobulle « avec 1 don » */
.fp-tip {
	position: absolute;
	z-index: 1200;
	padding: 14px 36px 14px 16px;
	border-radius: var(--fp-radius);
	background: var(--fp-ink);
	color: #fff;
	font-family: var(--fp-font);
	font-size: 13px;
	line-height: 1.5;
	box-shadow: var(--fp-shadow-lg);
	animation: fp-pop 0.18s var(--fp-ease);
}

.fp-tip strong {
	display: block;
	margin-bottom: 4px;
	color: #9ff0ab;
	font-size: 14px;
}

.fp-tip p {
	margin: 0 0 8px;
	color: rgba(255, 255, 255, 0.88);
}

.fp-tip a {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: #fff;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.fp-tip__close {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	cursor: pointer;
}

.fp-tip__close .fp-ico {
	width: 16px;
	height: 16px;
	vertical-align: middle;
}

@keyframes fp-pop {
	from {
		opacity: 0;
		transform: translateY(-4px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

/* Toast */
.fp-toast {
	position: fixed;
	left: 50%;
	bottom: 24px;
	z-index: 1300;
	display: flex;
	align-items: center;
	gap: 14px;
	max-width: calc(100vw - 32px);
	padding: 12px 18px;
	border-radius: 999px;
	background: var(--fp-ink);
	color: #fff;
	font-family: var(--fp-font);
	font-size: 14px;
	font-weight: 600;
	box-shadow: var(--fp-shadow-lg);
	transform: translate(-50%, 20px);
	opacity: 0;
	pointer-events: none;
	transition: transform 0.25s var(--fp-ease), opacity 0.25s;
}

.fp-toast.is-visible {
	transform: translate(-50%, 0);
	opacity: 1;
	pointer-events: auto;
}

.fp-toast--error {
	background: var(--fp-danger);
}

.fp-toast__action {
	color: #9ff0ab;
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
}

.fp-has-stickybar .fp-toast {
	bottom: 88px;
}

/* ==========================================================================
   4. Catalogue — en-tête
   ========================================================================== */

.fp-catalog__head {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0 0 14px;
}

/* Titre de tête (quand le bandeau Blocksy est désactivé) : plus discret que le H1 global. */
.fp-catalog__title {
	font-size: clamp(22px, 2.4vw, 30px);
	line-height: 1.2;
}

.fp-catalog__heading {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 12px;
}

.fp-catalog__count {
	margin: 0;
	font-size: 13px;
	color: var(--fp-muted);
}

.fp-search {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
}

.fp-search > .fp-ico {
	position: absolute;
	left: 14px;
	width: 18px;
	height: 18px;
	color: var(--fp-muted);
	pointer-events: none;
}

.fp-catalog input.fp-search__input {
	width: 100%;
	height: 44px;
	padding: 0 40px 0 42px;
	font-size: 15px;
}

.fp-search__input::placeholder {
	color: var(--fp-muted);
}

.fp-search__input::-webkit-search-cancel-button {
	display: none;
}

.fp-search__clear {
	position: absolute;
	right: 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--fp-bg-soft);
	color: var(--fp-ink-2);
	cursor: pointer;
}

/* ==========================================================================
   5. Catalogue — barre de filtres (mobile d'abord)
   ========================================================================== */

.fp-bar {
	position: relative;
	z-index: 20;
}

.fp-bar__mobile {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 2px 0 10px;
}

.fp-bar__open {
	flex: 1 1 auto;
	justify-content: flex-start;
}

.fp-bar__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--fp-green);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
}

.fp-bar__desktop-sort {
	display: none;
}

/* Tri */
.fp-sort {
	position: relative;
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
}

.fp-sort__label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.fp-catalog select.fp-sort__select {
	height: 40px;
	padding: 0 34px 0 16px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.fp-sort > .fp-ico {
	position: absolute;
	right: 12px;
	width: 16px;
	height: 16px;
	pointer-events: none;
	color: var(--fp-muted);
}

/* Tiroir mobile */
.fp-drawer {
	position: fixed;
	inset: 0;
	z-index: 1100;
	display: flex;
	flex-direction: column;
	background: var(--fp-bg);
	transform: translateY(100%);
	visibility: hidden;
	transition: transform 0.3s var(--fp-ease), visibility 0s 0.3s;
}

.fp-drawer-open .fp-drawer {
	transform: none;
	visibility: visible;
	transition: transform 0.3s var(--fp-ease);
}

.fp-drawer-open {
	overflow: hidden;
}

.fp-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px;
	padding-top: max(14px, env(safe-area-inset-top));
	border-bottom: 1px solid var(--fp-line);
}

.fp-drawer__title {
	font-size: 18px;
	font-weight: 700;
	color: var(--fp-ink);
}

.fp-drawer__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--fp-bg-soft);
	cursor: pointer;
}

.fp-drawer__foot {
	display: flex;
	gap: 10px;
	padding: 12px 16px;
	padding-bottom: max(12px, env(safe-area-inset-bottom));
	border-top: 1px solid var(--fp-line);
	background: var(--fp-bg);
}

.fp-drawer__foot .fp-btn--primary {
	flex: 1 1 auto;
	min-height: 48px;
}

[data-fp-apply-label].is-loading {
	opacity: 0.6;
}

.fp-facets {
	flex: 1 1 auto;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	margin: 0;
}

/* Facette (ligne d'accordéon sur mobile) */
.fp-facet {
	border-bottom: 1px solid var(--fp-line);
}

.fp-facet__toggle {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	min-height: 56px;
	padding: 10px 16px;
	border: 0;
	background: transparent;
	text-align: left;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.fp-facet__label {
	font-weight: 600;
	font-size: 15px;
	flex: 0 0 auto;
	color: var(--fp-ink);
}

.fp-facet__summary {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	text-align: right;
	font-size: 13px;
	color: var(--fp-green-dark);
	font-weight: 500;
}

.fp-facet__num {
	display: none;
}

.fp-facet__toggle > .fp-ico {
	width: 18px;
	height: 18px;
	color: var(--fp-muted);
	transition: transform 0.2s var(--fp-ease);
}

.fp-facet.is-open .fp-facet__toggle > .fp-ico {
	transform: rotate(180deg);
}

.fp-facet__panel {
	padding: 0 16px 12px;
}

.fp-facet__search {
	position: relative;
	margin: 0 0 10px;
}

.fp-facet__search > .fp-ico {
	position: absolute;
	left: 12px;
	top: 50%;
	width: 16px;
	height: 16px;
	transform: translateY(-50%);
	color: var(--fp-muted);
	pointer-events: none;
}

/* `:is(.fp-catalog, .fp-drawer)` : sur mobile le tiroir est déplacé sous <body>, hors de #fp-catalog. */
:is(.fp-catalog, .fp-drawer) input.fp-facet__search-input {
	width: 100%;
	height: 38px;
	padding: 0 12px 0 36px;
	font-size: 14px;
}

.fp-facet__search-input::-webkit-search-cancel-button {
	display: none;
}

.fp-facet__body {
	max-height: 50vh;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.fp-facet[data-layout="pills"] .fp-facet__body,
.fp-facet[data-layout="colors"] .fp-facet__body {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	max-height: none;
}

.fp-facet__empty,
.fp-facet__noresult {
	margin: 8px 0;
	font-size: 13px;
	color: var(--fp-muted);
}

.fp-facet__foot {
	display: none;
	justify-content: flex-end;
	gap: 8px;
	padding-top: 10px;
}

/* Option liste (case à cocher) */
.fp-opt {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 40px;
	padding: 4px 2px;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.fp-opt[hidden],
.fp-size[hidden],
.fp-sizegroup[hidden] {
	display: none;
}

.fp-opt input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.fp-opt__box {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	border: 1.5px solid var(--fp-line-strong);
	border-radius: 6px;
	background: var(--fp-bg);
	transition: background-color 0.12s, border-color 0.12s;
}

.fp-opt__box::after {
	content: "";
	width: 5px;
	height: 9px;
	margin-top: -2px;
	border: solid #fff;
	border-width: 0 2.5px 2.5px 0;
	transform: rotate(45deg);
	opacity: 0;
}

.fp-opt input:checked + .fp-opt__box {
	background: var(--theme-form-selection-field-active-color, var(--fp-green));
	border-color: var(--theme-form-selection-field-active-color, var(--fp-green));
}

.fp-opt input:checked + .fp-opt__box::after {
	opacity: 1;
}

.fp-opt input:focus-visible + .fp-opt__box,
.fp-opt input:focus-visible + .fp-opt__swatch {
	outline: 2px solid var(--fp-field-focus);
	outline-offset: 2px;
}

.fp-opt__label {
	flex: 1 1 auto;
	font-size: 14px;
}

.fp-opt__count {
	font-size: 12px;
	color: var(--fp-muted);
	font-variant-numeric: tabular-nums;
}

/* Pastilles (genre, saison) */
.fp-facet[data-layout="pills"] .fp-opt {
	min-height: 38px;
	padding: 0 14px;
	border: 1px solid var(--fp-line-strong);
	border-radius: 999px;
	gap: 6px;
}

.fp-facet[data-layout="pills"] .fp-opt__box {
	display: none;
}

.fp-facet[data-layout="pills"] .fp-opt:has(input:checked) {
	border-color: var(--fp-green);
	background: var(--fp-green-soft);
	color: var(--fp-green-dark);
	font-weight: 600;
}

/* Couleurs : familles, puis nuances en retrait */
.fp-facet[data-layout="colors"] .fp-facet__body {
	display: block;
	max-height: 50vh;
}

.fp-family {
	padding: 2px 0;
}

.fp-family--has-children {
	margin-bottom: 4px;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--fp-line);
}

.fp-opt--family .fp-opt__label {
	font-weight: 600;
}

.fp-family__title {
	padding: 8px 2px 4px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--fp-muted);
}

/* Listes (catégories) : nuances en liste indentée plutôt qu'en puces */
.fp-facet[data-layout="list"] .fp-family__children {
	display: block;
	padding-left: 14px;
}

.fp-facet[data-layout="list"] .fp-family__children .fp-opt {
	min-height: 36px;
	padding: 2px 4px;
	gap: 10px;
}

.fp-facet[data-layout="list"] .fp-family__children .fp-opt__label {
	flex: 1 1 auto;
	font-size: 14px;
}

.fp-facet[data-layout="list"] .fp-family--has-children {
	border-bottom: 0;
}

.fp-family__children {
	display: flex;
	flex-wrap: wrap;
	gap: 2px 8px;
	padding-left: 30px;
}

.fp-family__children .fp-family {
	display: contents;
}

.fp-family__children .fp-opt {
	min-height: 30px;
	padding: 2px 6px 2px 2px;
	gap: 6px;
}

.fp-family__children .fp-opt__swatch {
	width: 16px;
	height: 16px;
}

.fp-family__children .fp-opt__label {
	flex: 0 0 auto;
	font-size: 13px;
}

.fp-opt__swatch {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 1px solid rgba(0, 0, 0, 0.12);
	box-shadow: inset 0 0 0 2px #fff;
}

.fp-opt__swatch--none {
	background: repeating-linear-gradient(45deg, #eee 0 4px, #fff 4px 8px);
}

.fp-opt input:checked + .fp-opt__swatch {
	box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px var(--fp-green);
}

/* Tailles */
.fp-sizegroup {
	margin-bottom: 12px;
}

.fp-sizegroup__title {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--fp-muted);
}

.fp-sizegroup__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
	gap: 8px;
}

.fp-size {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 4px 6px;
	border: 1px solid var(--fp-line-strong);
	border-radius: var(--fp-radius-sm);
	cursor: pointer;
	text-align: center;
	-webkit-tap-highlight-color: transparent;
	transition: border-color 0.12s, background-color 0.12s;
}

.fp-size input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.fp-size__label {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.1;
	color: var(--fp-ink);
}

.fp-size__sub {
	font-size: 10px;
	color: var(--fp-muted);
	line-height: 1.2;
}

.fp-size:has(input:checked) {
	border-color: var(--fp-green);
	background: var(--fp-green-soft);
}

.fp-size:has(input:checked) .fp-size__label {
	color: var(--fp-green-dark);
}

.fp-size:has(input:focus-visible) {
	outline: 2px solid var(--fp-field-focus);
	outline-offset: 1px;
}

/* Prix */
.fp-price__quick {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 12px;
}

.fp-chip-btn {
	min-height: 36px;
	padding: 0 14px;
	border: 1px solid var(--fp-line-strong);
	border-radius: 999px;
	background: var(--fp-bg);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
}

.fp-chip-btn.is-active {
	border-color: var(--fp-green);
	background: var(--fp-green-soft);
	color: var(--fp-green-dark);
	font-weight: 600;
}

.fp-price__range {
	display: flex;
	align-items: center;
	gap: 10px;
}

.fp-price__field {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex: 1 1 0;
	font-size: 12px;
	color: var(--fp-muted);
}

:is(.fp-catalog, .fp-drawer) .fp-price__field input {
	width: 100%;
	height: 40px;
	padding: 0 28px 0 12px;
	font-size: 14px;
	-moz-appearance: textfield;
}

.fp-price__field input::-webkit-outer-spin-button,
.fp-price__field input::-webkit-inner-spin-button {
	-webkit-appearance: none;
}

.fp-price__field em {
	position: absolute;
	right: 12px;
	bottom: 11px;
	font-style: normal;
	color: var(--fp-muted);
}

.fp-price__dash {
	margin-top: 18px;
	color: var(--fp-muted);
}

/* ==========================================================================
   6. Catalogue — puces actives et recherches sauvegardées
   ========================================================================== */

.fp-chips {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 -16px 12px;
	padding: 0 16px;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.fp-chips::-webkit-scrollbar {
	display: none;
}

.fp-chips[hidden] {
	display: none;
}

.fp-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex: 0 0 auto;
	min-height: 34px;
	padding: 0 10px 0 14px;
	border-radius: 999px;
	background: var(--fp-green-soft);
	color: var(--fp-green-dark);
	font-size: 13px;
	font-weight: 600;
	transition: background-color 0.12s;
}

.fp-chip:hover {
	background: var(--fp-green-line);
}

.fp-chip .fp-ico {
	width: 15px;
	height: 15px;
}

.fp-chips__reset {
	flex: 0 0 auto;
	padding: 0 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--fp-ink-2);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Recherches sauvegardées : une pastille par profil, panneau au clic. */
.fp-saved {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 14px;
}

.fp-profile-wrap {
	position: relative;
}

.fp-profile {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 38px;
	padding: 0 12px 0 5px;
	border: 1px solid var(--fp-line-strong);
	border-radius: 999px;
	background: var(--fp-bg);
	font-size: 13px;
	font-weight: 600;
	color: var(--fp-ink);
	cursor: pointer;
	white-space: nowrap;
	transition: border-color 0.12s, background-color 0.12s;
	-webkit-tap-highlight-color: transparent;
}

.fp-profile:hover {
	border-color: var(--fp-ink);
}

.fp-profile.is-active {
	border-color: var(--fp-green);
	background: var(--fp-green-soft);
}

.fp-profile > .fp-ico {
	width: 16px;
	height: 16px;
	color: var(--fp-muted);
	transition: transform 0.2s var(--fp-ease);
}

.fp-profile-wrap.is-open .fp-profile > .fp-ico {
	transform: rotate(180deg);
}

.fp-profile__avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--fp-green);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
}

.fp-profile--save {
	border-style: dashed;
}

.fp-profile--save .fp-profile__avatar {
	background: var(--fp-accent);
	font-size: 18px;
	line-height: 1;
}

.fp-profile--manage {
	padding-left: 12px;
	color: var(--fp-ink-2);
	font-weight: 500;
}

.fp-profile__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--fp-accent);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
}

.fp-profile__panel {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	z-index: 70;
	width: 320px;
	max-width: calc(100vw - 32px);
	padding: 6px;
	border-radius: var(--fp-radius);
	background: var(--fp-bg);
	box-shadow: var(--fp-shadow-lg);
	animation: fp-pop 0.16s var(--fp-ease);
}

.fp-profile__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.fp-profile__search {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 10px;
	border-radius: var(--fp-radius-sm);
	color: var(--fp-ink);
}

.fp-profile__search:hover {
	background: var(--fp-bg-soft);
}

.fp-profile__search.is-active {
	background: var(--fp-green-soft);
}

.fp-profile__search-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1 1 auto;
}

.fp-profile__search-text strong {
	font-size: 14px;
	font-weight: 600;
}

.fp-profile__search-text small {
	font-size: 12px;
	color: var(--fp-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fp-profile__manage {
	display: block;
	margin-top: 4px;
	padding: 10px;
	border-top: 1px solid var(--fp-line);
	font-size: 13px;
	font-weight: 600;
	color: var(--fp-green-dark);
}

@media (max-width: 689.98px) {
	/* Mobile : la photo prime. Écart de grille réduit (l'option Blocksy n'est pas
	   responsive) et texte en quatre lignes courtes, titre sur une ligne. */
	[data-products].fp-grid {
		--grid-columns-gap: 12px;
		--grid-rows-gap: 24px;
	}

	.fp-card .fp-card__title {
		-webkit-line-clamp: 1;
	}

	.fp-card .fp-card__body {
		padding-top: 6px;
		gap: 1px;
	}

	/* Barre « Filtres » collante : reste accessible pendant le défilement infini, calée
	   sous l'en-tête fixe de Blocksy quand il y en a un. */
	.fp-bar {
		position: sticky;
		top: calc(var(--admin-bar, 0px) + var(--header-sticky-height-animated, calc(var(--header-sticky-height, 0px) * var(--sticky-shrink, 100) / 100)));
		margin: 0 -16px;
		padding: 8px 16px 0;
		background: var(--fp-bg);
	}

	.fp-bar__mobile {
		padding-bottom: 8px;
	}

	.fp-profile-wrap {
		position: static;
	}

	.fp-profile__panel {
		left: 0;
		right: 0;
		width: auto;
		max-width: none;
	}

	.fp-profile--save .fp-profile__name {
		max-width: 120px;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}

/* ==========================================================================
   7. Catalogue — grille et cartes
   Colonnes et espacements : règles Blocksy sur [data-products] (Customizer).
   ========================================================================== */

.fp-results {
	position: relative;
	transition: opacity 0.15s;
}

.fp-catalog.is-loading .fp-results {
	opacity: 0.45;
	pointer-events: none;
}

.fp-catalog.is-loading::after {
	content: "";
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1400;
	height: 3px;
	width: 40%;
	background: var(--fp-green);
	animation: fp-progress 1s var(--fp-ease) infinite;
}

@keyframes fp-progress {
	from {
		transform: translateX(-100%);
	}
	to {
		transform: translateX(260%);
	}
}

ul.fp-grid {
	margin: 0;
	padding: 0;
	list-style: none;
}

.fp-card {
	position: relative;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
}

/* Cartes encadrées (Customizer → type de carte 2 et 3) */
[data-products="type-2"] .fp-card,
[data-products="type-3"] .fp-card {
	background: var(--fp-bg);
	border-radius: var(--theme-border-radius, var(--fp-radius-sm));
	box-shadow: var(--theme-box-shadow, var(--fp-shadow));
	overflow: hidden;
}

[data-products="type-2"] .fp-card__body,
[data-products="type-3"] .fp-card__body {
	padding: 10px 12px 14px;
}

[data-products="type-2"] .fp-card__media,
[data-products="type-3"] .fp-card__media {
	border-radius: 0;
}

.fp-card__media {
	position: relative;
	display: block;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	border-radius: var(--theme-border-radius, var(--fp-radius-sm));
	background: var(--fp-bg-soft);
}

.fp-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s var(--fp-ease), opacity 0.3s;
}

.fp-card__img--hover {
	position: absolute;
	inset: 0;
	opacity: 0;
}

@media (hover: hover) {
	.fp-card[data-hover="zoom-in"] .fp-card__media:hover .fp-card__img {
		transform: scale(1.06);
	}

	.fp-card[data-hover="zoom-out"] .fp-card__media .fp-card__img {
		transform: scale(1.06);
	}

	.fp-card[data-hover="zoom-out"] .fp-card__media:hover .fp-card__img {
		transform: scale(1);
	}

	.fp-card[data-hover="swap"] .fp-card__media:hover .fp-card__img--hover {
		opacity: 1;
	}
}

.fp-card .fp-badge--pepite {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 2;
}

.fp-card__incart {
	position: absolute;
	left: 8px;
	bottom: 8px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 9px;
	border-radius: 999px;
	background: var(--fp-green);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
}

.fp-card__incart[hidden] {
	display: none;
}

.fp-card__incart .fp-ico {
	width: 13px;
	height: 13px;
	stroke-width: 3;
}

.fp-card__visual {
	position: relative;
}

.fp-card__add {
	position: absolute;
	right: 8px;
	bottom: 8px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.95);
	color: var(--fp-ink);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.16);
	cursor: pointer;
	transition: transform 0.15s var(--fp-ease), background-color 0.15s, color 0.15s, opacity 0.15s;
	-webkit-tap-highlight-color: transparent;
}

.fp-card__add .fp-ico {
	width: 18px;
	height: 18px;
}

.fp-card__add:hover {
	background: var(--fp-green);
	color: #fff;
}

.fp-card__add.is-loading {
	background: var(--fp-green);
	color: transparent;
}

.fp-card__add[disabled],
.fp-card.is-in-cart .fp-card__add {
	display: none;
}

.fp-card__body {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 8px 2px 0;
}

.fp-card__brand {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--fp-ink);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fp-card__brand:hover {
	color: var(--theme-link-hover-color, var(--fp-green-dark));
}

.fp-card__title {
	margin: 0;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.35;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.fp-card__title a {
	color: inherit;
}

.fp-card__meta,
.fp-card__desc {
	font-size: 12px;
	color: var(--fp-muted);
	line-height: 1.3;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fp-card__desc {
	white-space: normal;
}

.fp-card .fp-price-block {
	margin-top: 4px;
}

/* ==========================================================================
   8. Catalogue — pagination et état vide
   ========================================================================== */

.fp-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 6px;
	margin: 32px 0 8px;
}

.fp-pagination__page,
.fp-pagination__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 10px;
	border: 1px solid var(--fp-line-strong);
	border-radius: 999px;
	font-weight: 600;
	font-size: 14px;
	color: var(--fp-ink);
	transition: border-color 0.12s, background-color 0.12s;
}

.fp-pagination__page:hover,
.fp-pagination__arrow:hover {
	border-color: var(--fp-ink);
}

.fp-pagination__page.is-current {
	background: var(--fp-ink);
	border-color: var(--fp-ink);
	color: #fff;
}

.fp-pagination__gap {
	padding: 0 4px;
	color: var(--fp-muted);
}

.fp-pagination__list {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 6px;
}

/* « Charger plus » / infini : les numéros restent pour les robots, le script les masque. */
.fp-pagination--load_more,
.fp-pagination--infinite_scroll {
	flex-direction: column;
	gap: 12px;
}

.fp-js .fp-pagination--load_more .fp-pagination__list,
.fp-js .fp-pagination--infinite_scroll .fp-pagination__list {
	display: none;
}

.fp-pagination__status {
	margin: 0;
	font-size: 13px;
	color: var(--fp-muted);
}

.fp-loadmore {
	min-width: 240px;
}

.fp-loadmore.is-loading {
	position: relative;
	color: transparent !important;
}

.fp-loadmore.is-loading::after {
	border-color: rgba(0, 0, 0, 0.15);
	border-top-color: var(--fp-ink);
}

.fp-js .fp-pagination--infinite_scroll .fp-loadmore {
	opacity: 0.7;
}

.fp-empty {
	padding: 48px 16px;
	text-align: center;
}

.fp-empty__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: var(--fp-bg-soft);
	color: var(--fp-muted);
}

.fp-empty__icon .fp-ico {
	width: 28px;
	height: 28px;
}

.fp-empty__text {
	max-width: 420px;
	margin: 8px auto 18px;
}

/* ==========================================================================
   9. Fiche produit
   ========================================================================== */

.fp-crumbs {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 12px;
	font-size: 13px;
	color: var(--fp-muted);
}

.fp-crumbs__back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 32px;
	font-weight: 600;
	color: var(--fp-ink-2);
}

.fp-crumbs__back:hover {
	color: var(--fp-green-dark);
}

.fp-crumbs__back .fp-ico {
	transition: transform 0.15s var(--fp-ease);
}

.fp-crumbs__back:hover .fp-ico {
	transform: translateX(-3px);
}

/* Encadré d'achat : prix, bouton, informations supplémentaires */
.fp-buybox {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 20px;
	border: 1px solid var(--fp-line);
	border-radius: var(--fp-radius);
	background: var(--fp-bg);
	box-shadow: var(--fp-shadow);
}

.fp-buybox .fp-layer--info {
	padding-top: 14px;
	border-top: 1px solid var(--fp-line);
}

.fp-gallery__track {
	border: 1px solid var(--fp-line);
}

.fp-crumbs__list {
	display: none;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fp-crumbs__list li + li::before {
	content: "›";
	margin-right: 8px;
}

.fp-product__layout {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

/* Galerie */
.fp-product__media {
	margin: 0 -16px;
}

.fp-gallery {
	position: relative;
}

.fp-gallery__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	background: var(--fp-bg-soft);
}

.fp-gallery__track::-webkit-scrollbar {
	display: none;
}

.fp-gallery__track:focus-visible {
	outline: 2px solid var(--fp-field-focus);
}

.fp-gallery__slide {
	flex: 0 0 100%;
	display: block;
	aspect-ratio: 1 / 1;
	scroll-snap-align: start;
	cursor: zoom-in;
}

.fp-gallery__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fp-gallery__badge {
	position: absolute;
	top: 12px;
	left: 28px;
	z-index: 2;
}

.fp-gallery__dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 10px;
	display: flex;
	justify-content: center;
	gap: 6px;
}

.fp-gallery__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.6);
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15);
	transition: transform 0.15s, background-color 0.15s;
}

.fp-gallery__dot.is-active {
	background: #fff;
	transform: scale(1.3);
}

.fp-gallery__thumbs {
	display: none;
}

/* Résumé */
.fp-product__summary {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.fp-product__brandline {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
}

.fp-product__brand {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--fp-green-dark);
}

.fp-product__brand:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.fp-product__meta {
	font-size: 14px;
	color: var(--fp-muted);
}

.fp-layer {
	margin: 0;
}

.fp-layer--divider {
	border: 0;
	border-top: 1px solid var(--fp-line);
	margin: 0;
}

.fp-layer--price {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.fp-buybox__pepite {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 0;
	padding: 10px 12px;
	border-radius: var(--fp-radius-sm);
	background: var(--fp-gold-soft);
	font-size: 13px;
	line-height: 1.45;
}

.fp-buybox__pepite .fp-ico {
	color: var(--fp-green);
	margin-top: 2px;
}

.fp-buybox__callout {
	display: flex;
	gap: 10px;
	padding: 12px 14px;
	border-radius: var(--fp-radius-sm);
	background: var(--fp-green-soft);
	font-size: 13px;
	line-height: 1.5;
}

.fp-buybox__callout p {
	margin: 0;
}

.fp-buybox__callout b {
	color: var(--fp-green-dark);
}

.fp-buybox__callout-icon {
	font-size: 20px;
	line-height: 1.2;
}

.fp-buy {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
}

.fp-buy__add {
	width: 100%;
}

.fp-buy__add.is-added {
	opacity: 1;
}

.fp-buy__view[hidden] {
	display: none;
}

.fp-buybox__unique {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 8px 0 0;
	font-size: 12px;
	color: var(--fp-muted);
}

.fp-buybox__unique .fp-ico {
	color: var(--fp-green);
	width: 16px;
	height: 16px;
}

.fp-buybox__sold {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 14px;
	border-radius: var(--fp-radius-sm);
	background: var(--fp-bg-soft);
	font-size: 14px;
}

/* Informations supplémentaires (Customizer) */
.fp-trust__title {
	display: block;
	margin-bottom: 8px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--fp-muted);
}

.fp-trust {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fp-trust li {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 14px;
	line-height: 1.35;
	color: var(--fp-ink);
}

.fp-trust li .fp-ico,
.fp-trust__icon {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	color: var(--fp-green-dark);
}

.fp-trust__icon svg {
	width: 100%;
	height: 100%;
	fill: currentColor;
}

/* Méta */
.fp-layer--meta {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 13px;
	color: var(--fp-muted);
}

.fp-meta__label {
	font-weight: 600;
	color: var(--fp-ink-2);
}

.fp-layer--meta a {
	color: var(--theme-link-initial-color, var(--fp-green-dark));
}

/* Caractéristiques */
.fp-specs__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	margin: 12px 0 0;
	border-top: 1px solid var(--fp-line);
}

.fp-specs__row {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 10px 0;
	border-bottom: 1px solid var(--fp-line);
}

.fp-specs__row dt {
	margin: 0;
	font-size: 13px;
	color: var(--fp-muted);
}

.fp-specs__row dd {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	text-align: right;
	color: var(--fp-ink);
}

.fp-specs__row dd small {
	font-size: 11px;
	font-weight: 400;
	color: var(--fp-muted);
}

/* Description */
.fp-desc__body {
	margin-top: 8px;
}

/* Produits similaires */
.fp-related {
	margin-top: 36px;
}

.fp-related__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}

.fp-related__all {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	font-weight: 600;
	color: var(--fp-green-dark);
	white-space: nowrap;
}

.fp-related__all .fp-ico {
	width: 16px;
	height: 16px;
}

/* Barre d'achat fixe (mobile) */
.fp-stickybar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 16px;
	padding-bottom: max(10px, env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(10px);
	border-top: 1px solid var(--fp-line);
	box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.08);
	animation: fp-slide-up 0.25s var(--fp-ease);
}

.fp-stickybar[hidden] {
	display: none;
}

@keyframes fp-slide-up {
	from {
		transform: translateY(100%);
	}
	to {
		transform: none;
	}
}

.fp-stickybar__price {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}

.fp-stickybar__price strong {
	font-size: 17px;
	color: var(--fp-ink);
}

.fp-stickybar__price span {
	font-size: 12px;
	color: var(--fp-green-dark);
	font-weight: 600;
}

.fp-stickybar .fp-btn {
	min-height: 46px;
	flex: 0 0 auto;
}

.fp-has-stickybar .fp-product {
	padding-bottom: 72px;
}

/* ==========================================================================
   10. ≥ 690 px
   ========================================================================== */

@media (min-width: 690px) {
	.fp-chips {
		margin: 0 0 14px;
		padding: 0;
		flex-wrap: wrap;
		overflow: visible;
	}

	.fp-trust {
		grid-template-columns: 1fr 1fr;
	}

	.fp-product__media {
		margin: 0;
	}

	/* Fiche en deux colonnes dès la tablette : prix et bouton d'achat visibles sans défiler. */
	.fp-product__layout {
		flex-direction: row;
		align-items: flex-start;
		gap: 32px;
	}

	.fp-product__media {
		flex: 0 0 52%;
		max-width: 52%;
	}

	.fp-product__summary {
		flex: 1 1 0;
		min-width: 0;
	}

	.fp-gallery__track {
		border-radius: var(--theme-border-radius, var(--fp-radius));
	}

	.fp-gallery__badge {
		left: 12px;
	}

}

/* ==========================================================================
   11. ≥ 1000 px — barre de filtres desktop, fiche en deux colonnes
   ========================================================================== */

@media (min-width: 1000px) {
	.fp-catalog__head {
		flex-direction: row;
		align-items: flex-end;
		justify-content: space-between;
		margin: 0 0 18px;
	}

	.fp-catalog__head--no-title {
		align-items: center;
	}

	.fp-search {
		width: 360px;
	}

	.fp-bar {
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
		gap: 16px;
		padding-bottom: 14px;
	}

	.fp-bar__mobile {
		display: none;
	}

	.fp-bar__desktop-sort {
		display: block;
		flex: 0 0 auto;
	}

	.fp-drawer {
		position: static;
		inset: auto;
		display: block;
		flex: 1 1 auto;
		min-width: 0;
		transform: none;
		visibility: visible;
		transition: none;
		background: transparent;
	}

	.fp-drawer__head,
	.fp-drawer__foot {
		display: none;
	}

	.fp-facets {
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
		overflow: visible;
	}

	.fp-facet {
		position: relative;
		border: 0;
	}

	.fp-facet__toggle {
		min-height: 38px;
		width: auto;
		padding: 0 12px 0 16px;
		border: 1px solid var(--fp-line-strong);
		border-radius: 999px;
		background: var(--fp-bg);
		gap: 6px;
		transition: border-color 0.12s, background-color 0.12s, box-shadow 0.12s;
	}

	.fp-facet__toggle:hover {
		border-color: var(--fp-ink);
	}

	.fp-facet[data-active] .fp-facet__toggle {
		border-color: var(--fp-green);
		background: var(--fp-green-soft);
	}

	.fp-facet[data-active] .fp-facet__label {
		color: var(--fp-green-dark);
	}

	.fp-facet.is-open .fp-facet__toggle {
		border-color: var(--fp-ink);
		box-shadow: 0 0 0 3px rgba(31, 36, 32, 0.08);
	}

	.fp-facet__label {
		font-size: 13px;
	}

	.fp-facet__summary {
		display: none;
	}

	.fp-facet__num {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 18px;
		height: 18px;
		padding: 0 5px;
		border-radius: 999px;
		background: var(--fp-green);
		color: #fff;
		font-size: 11px;
		font-weight: 700;
	}

	.fp-facet__num[hidden] {
		display: none;
	}

	.fp-facet__toggle > .fp-ico {
		width: 16px;
		height: 16px;
	}

	.fp-facet__panel {
		position: absolute;
		top: calc(100% + 8px);
		left: 0;
		z-index: 60;
		width: 300px;
		padding: 14px 14px 12px;
		border-radius: var(--fp-radius);
		background: var(--fp-bg);
		box-shadow: var(--fp-shadow-lg);
		animation: fp-pop 0.16s var(--fp-ease);
	}

	.fp-facet[data-facet="taille"] .fp-facet__panel {
		width: 420px;
	}

	.fp-facet[data-facet="couleur"] .fp-facet__panel {
		width: 380px;
	}

	.fp-facet[data-facet="marque"] .fp-facet__panel,
	.fp-facet[data-facet="type"] .fp-facet__panel,
	.fp-facet[data-layout="pills"] .fp-facet__panel {
		width: 320px;
	}

	.fp-facet__body {
		max-height: 380px;
		padding-right: 4px;
	}

	.fp-facet__foot {
		display: flex;
		margin-top: 4px;
		padding-top: 10px;
		border-top: 1px solid var(--fp-line);
	}

	.fp-opt {
		min-height: 36px;
		padding: 2px 4px;
		border-radius: 6px;
	}

	.fp-opt:hover {
		background: var(--fp-bg-soft);
	}

	.fp-facet[data-layout="pills"] .fp-opt:has(input:checked) {
		background: var(--fp-green-soft);
	}

	.fp-sizegroup__grid {
		grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
		gap: 6px;
	}

	.fp-size {
		min-height: 40px;
	}

	.fp-card__add {
		opacity: 0;
	}

	.fp-card:hover .fp-card__add,
	.fp-card:focus-within .fp-card__add {
		opacity: 1;
	}

	.fp-card__add:hover {
		transform: scale(1.06);
	}

	/* Fiche produit */
	.fp-crumbs {
		margin-bottom: 18px;
	}

	.fp-crumbs__list {
		display: flex;
	}

	.fp-product__layout {
		flex-direction: row;
		align-items: flex-start;
		gap: 56px;
	}

	.fp-product__media {
		flex: 0 0 50%;
		max-width: 50%;
	}

	.fp-buybox {
		padding: 24px;
	}

	.fp-product__summary {
		flex: 1 1 0;
		min-width: 0;
		gap: 22px;
	}

	/* Colonnes collantes (Customizer → Produit unique → Galerie / Résumé collants) */
	.fp-product--sticky-gallery .fp-product__media,
	.fp-product--sticky-summary .fp-product__summary {
		position: sticky;
		top: var(--fp-sticky-top);
	}

	/* Vignettes horizontales (défaut) : sous l'image ; verticales : à gauche. */
	.fp-gallery {
		display: grid;
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.fp-gallery[data-thumbs="left"] {
		grid-template-columns: 72px 1fr;
	}

	.fp-gallery__track {
		grid-column: 1 / -1;
	}

	.fp-gallery[data-thumbs="left"] .fp-gallery__track {
		grid-column: 2;
		grid-row: 1;
	}

	.fp-gallery[data-thumbs="left"] .fp-gallery__badge {
		left: 96px;
	}

	.fp-gallery__dots {
		display: none;
	}

	.fp-gallery__thumbs {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		gap: 8px;
	}

	.fp-gallery[data-thumbs="left"] .fp-gallery__thumbs {
		grid-column: 1;
		grid-row: 1;
		flex-direction: column;
		flex-wrap: nowrap;
		max-height: 560px;
		overflow-y: auto;
		scrollbar-width: none;
	}

	.fp-gallery__thumb {
		display: block;
		width: 72px;
		padding: 0;
		border: 2px solid transparent;
		border-radius: var(--fp-radius-sm);
		background: var(--fp-bg-soft);
		overflow: hidden;
		cursor: pointer;
		opacity: 0.7;
		transition: opacity 0.12s, border-color 0.12s;
	}

	.fp-gallery__thumb img {
		display: block;
		width: 100%;
		height: auto;
		aspect-ratio: 1 / 1;
		object-fit: cover;
	}

	.fp-gallery__thumb:hover,
	.fp-gallery__thumb.is-active {
		opacity: 1;
		border-color: var(--fp-ink);
	}

	.fp-buy {
		flex-direction: row;
		flex-wrap: wrap;
	}

	/* Largeur du bouton : Customizer → Produit unique → Ajouter au panier. */
	.fp-buy__add {
		flex: 0 1 var(--fp-buy-width, 100%);
		width: auto;
		min-width: 220px;
	}

	.fp-related {
		margin-top: 56px;
	}

	.fp-stickybar {
		display: none;
	}

	.fp-has-stickybar .fp-product {
		padding-bottom: 0;
	}
}

/* ==========================================================================
   12. Préférences utilisateur
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.fp-catalog *,
	.fp-product *,
	.fp-drawer,
	.fp-toast,
	.fp-tip {
		transition: none !important;
		animation: none !important;
	}
}

/* Composition : liste des articles du lot (markup du plugin WPC Product Bundles). */
.fp-bundle {
	margin-top: 4px;
}

.fp-bundle .woosb-products {
	margin: 0;
}
