/* Greenbox — main stylesheet (Apple-light) */

:root {
	--gb-radius: 12px;
	--gb-radius-pill: 999px;
	--gb-transition: 200ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

html {
	scroll-behavior: smooth;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

body {
	background: var(--wp--preset--color--white);
}

/* Buttons subtle lift */
.wp-block-button__link,
.wp-element-button {
	transition: transform var(--gb-transition), box-shadow var(--gb-transition), background-color var(--gb-transition);
	will-change: transform;
}

.wp-block-button__link:hover,
.wp-element-button:hover {
	transform: translateY(-1px);
	box-shadow: var(--wp--preset--shadow--lift);
}

/* Image hover */
.wp-block-image img {
	transition: transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Smooth focus rings (accessibility) */
:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: 4px;
}

/* Site title link */
.wp-block-site-title a {
	color: inherit;
	text-decoration: none;
}

/* ============================================
   .gb-video-section — full-bleed video sections
   ============================================ */

.gb-video-section {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	display: flex;
	align-items: center;
	justify-content: center;
	isolation: isolate;
	background: var(--wp--preset--color--white, #fff);
	/* full-bleed: escape root padding from theme.json */
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.gb-video-section__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}

.gb-video-section__media video,
.gb-video-section__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	display: block;
	background: var(--wp--preset--color--white, #fff);
}

/* Soft white veil on top of video — keeps overall Apple-light feel without obscuring imagery */
.gb-video-section__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(180deg, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0.35) 30%, rgba(255,255,255,0.55) 100%);
	pointer-events: none;
}

/* Sections produits — laisser la vidéo plus visible (le card text porte la lisibilité) */
.gb-video-section.is-tinted .gb-video-section__overlay {
	background:
		linear-gradient(180deg, rgba(255,255,255,0.30) 0%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.45) 100%);
}

.gb-video-section__content {
	position: relative;
	z-index: 2;
	max-width: 720px;
	width: calc(100% - 2 * var(--wp--preset--spacing--md));
	padding: var(--wp--preset--spacing--xl) var(--wp--preset--spacing--xl);
	text-align: center;
	background: rgba(255, 255, 255, 0.78);
	backdrop-filter: blur(20px) saturate(140%);
	-webkit-backdrop-filter: blur(20px) saturate(140%);
	border-radius: 24px;
	border: 1px solid rgba(255, 255, 255, 0.7);
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.9) inset,
		0 20px 60px rgba(0, 0, 0, 0.08),
		0 4px 12px rgba(0, 0, 0, 0.04);
}

/* Hero plus aéré, sans card aussi prononcé */
.gb-video-section:not(.is-section) .gb-video-section__content {
	max-width: 820px;
	background: rgba(255, 255, 255, 0.72);
	border-radius: 32px;
}

/* ============================================
   .gb-hero-pure — vidéo seule, AUCUN texte (Phase user)
   ============================================ */

.gb-video-section.gb-hero-pure {
	aspect-ratio: 16 / 9;
	display: block;
	padding: 0;
}

@media (max-width: 768px) {
	.gb-video-section.gb-hero-pure { aspect-ratio: 16 / 9; }
}

/* ============================================
   .gb-collections-grid — 5 tuiles de collections
   ============================================ */

.gb-collections-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 16px;
	max-width: 1440px;
	margin: 0 auto;
}

.gb-collection-tile {
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 16px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: transform var(--gb-transition), box-shadow var(--gb-transition), border-color var(--gb-transition);
	/* Ombre subtile en repos, teinte vert gazon */
	box-shadow: 0 2px 6px rgba(86, 129, 19, 0.08), 0 1px 2px rgba(86, 129, 19, 0.05);
}

.gb-collection-tile:hover {
	transform: translateY(-3px);
	/* Ombre hover renforcée, teinte vert gazon */
	box-shadow: 0 14px 32px -6px rgba(86, 129, 19, 0.28), 0 6px 12px -4px rgba(86, 129, 19, 0.16);
	border-color: rgba(86, 129, 19, 0.35);
}

.gb-collection-tile__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
}

.gb-collection-tile__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.gb-collection-tile:hover .gb-collection-tile__media img {
	transform: scale(1.04);
}

.gb-collection-tile__body {
	padding: 16px 18px 18px;
	text-align: left;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--foreground);
	border-top: 1px solid var(--wp--preset--color--subtle);
}

.gb-collection-tile__title {
	font-size: 17px;
	font-weight: 600;
	letter-spacing: -0.015em;
	margin: 0 0 4px;
	color: var(--wp--preset--color--foreground);
}

.gb-collection-tile__desc {
	font-size: 12px;
	color: rgba(0, 0, 0, 0.6);
	margin: 0;
	letter-spacing: 0;
}

.gb-collection-tile.is-soon {
	position: relative;
	opacity: 0.7;
}

.gb-collection-tile.is-soon::after {
	content: "Bientôt";
	position: absolute;
	top: 12px;
	right: 12px;
	background: rgba(255,255,255,0.95);
	color: var(--wp--preset--color--accent);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 4px 8px;
	border-radius: 999px;
}

@media (max-width: 1024px) {
	.gb-collections-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 640px) {
	.gb-collections-grid { grid-template-columns: repeat(2, 1fr); }
	.gb-collection-tile__media { aspect-ratio: 3 / 2; }
}

/* ============================================
   .gb-hero-bottom — texte en bandeau bas, vidéo respire
   ============================================ */

.gb-video-section.gb-hero-bottom {
	aspect-ratio: 16 / 9;
	display: block;            /* override flex centering */
	padding: 0;
}

.gb-video-section.gb-hero-bottom.is-section {
	aspect-ratio: 16 / 9;
}

/* Overlay retiré : le user veut la vidéo nette sans floutage blanc */
.gb-hero-bottom__overlay {
	display: none;
}

.gb-hero-bottom__content {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	padding: var(--wp--preset--spacing--md) var(--wp--preset--spacing--lg);
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--md);
	text-align: left;
}

.gb-hero-bottom__text {
	flex: 1 1 auto;
	min-width: 0;
}

.gb-hero-bottom__eyebrow {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin: 0 0 0.3rem;
	text-shadow: 0 1px 4px rgba(255, 255, 255, 0.6);
}

.gb-hero-bottom__title {
	font-size: clamp(20px, 1.6vw + 0.4rem, 30px);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--foreground);
	margin: 0;
	max-width: none;
	text-shadow: 0 1px 8px rgba(255, 255, 255, 0.55);
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
}

/* Feuille cannabis devant le titre des bannières vidéo.
   Couleur héritée du H2 via fill="currentColor", taille à 1em pour
   suivre la typo (donc auto-responsive avec le clamp du H2). */
.gb-title-icon {
	width: 1em;
	height: 1em;
	flex: 0 0 auto;
	color: var(--wp--preset--color--accent); /* override : la feuille reste verte même si le H2 change de couleur */
	filter: drop-shadow(0 1px 2px rgba(255, 255, 255, 0.5));
}

/* Eyebrow "Nos collections" — feuilles cannabis avant et après le texte.
   Texte uppercase 12px, icônes alignées sur la baseline avec petit espace. */
.gb-eyebrow-with-icons {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6em;
	width: 100%;
}

.gb-eyebrow-with-icons .gb-title-icon {
	width: 1.4em;
	height: 1.4em;
	filter: none;
}

/* Variante inline pour usage dans un H2 standard (text-align: center).
   On garde l'alignement vertical sur la baseline du texte. */
.gb-title-icon--inline {
	display: inline-block;
	vertical-align: -0.18em;
	margin-left: 0.3em;
	filter: none;
}

.gb-hero-bottom__cta {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.65rem 1.3rem;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--accent);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	transition: transform var(--gb-transition), background var(--gb-transition), box-shadow var(--gb-transition);
}

.gb-hero-bottom__cta.is-outline {
	background: rgba(255, 255, 255, 0.92);
	color: var(--wp--preset--color--accent);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-color: rgba(31, 74, 31, 0.18);
}

.gb-hero-bottom__cta:hover {
	background: var(--wp--preset--color--foreground);
	border-color: var(--wp--preset--color--foreground);
	color: var(--wp--preset--color--white);
	transform: translateY(-1px);
	box-shadow: var(--wp--preset--shadow--lift);
}

@media (max-width: 768px) {
	.gb-video-section.gb-hero-bottom { aspect-ratio: 16 / 9; }
	.gb-video-section.gb-hero-bottom.is-section { aspect-ratio: 16 / 9; }

	.gb-hero-bottom__content {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.6rem;
		padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
	}

	.gb-hero-bottom__title {
		font-size: clamp(18px, 4vw, 24px);
	}
}

/* ============================================
   .gb-products-carousel — horizontal scroll-snap
   ============================================ */

.gb-cat-block {
	margin-bottom: 0;
}

/* WC pose la classe shortcode sur le <div class="woocommerce ..."> wrapper,
   pas sur le <ul.products>. On cible donc le ul enfant. */
/* Container carousel = full-bleed (pas de max-width → pas de marges blanches).
   Le centrage se fait sur le ul enfant via justify-content + min-width: 100%. */
.gb-products-carousel {
	width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: thin;
	scrollbar-color: var(--wp--preset--color--subtle) transparent;
	-webkit-overflow-scrolling: touch;
	padding: var(--wp--preset--spacing--lg) 0 var(--wp--preset--spacing--xl);
	scroll-snap-type: x mandatory;
	/* gutter de scroll pour que la 1re card respecte le bord viewport */
	scroll-padding-left: var(--wp--preset--spacing--md);
}

.gb-products-carousel ul.products {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 16px;
	margin: 0 !important;
	padding: 0 var(--wp--preset--spacing--md) !important;
	width: max-content;
	min-width: 100%;
	box-sizing: border-box;
	justify-content: center; /* centre quand contenu < viewport ; ignoré dès qu'il déborde */
	list-style: none !important; /* pas de puces · entre les cards */
}

.gb-products-carousel ul.products > li.product::marker {
	content: none;
}

/* WC ajoute ::before et ::after sur ul.products (clearfix legacy).
   En grid/flex ils deviennent des items et bouffent des cellules → on les supprime. */
.gb-products-carousel ul.products::before,
.gb-products-carousel ul.products::after {
	content: none !important;
	display: none !important;
}

.gb-products-carousel ul.products > li.product {
	flex: 0 0 280px !important;
	scroll-snap-align: start;
	width: 280px !important;
	box-sizing: border-box; /* 280px inclut padding+border, pas 280+28+2=310 */
	margin: 0 !important;
	clear: none !important;
	float: none !important;
	background: var(--wp--preset--color--white);
	border-radius: 16px;
	border: 1px solid var(--wp--preset--color--subtle);
	padding: 14px;
	transition: transform var(--gb-transition), box-shadow var(--gb-transition);
}

.gb-products-carousel ul.products > li.product:hover {
	transform: translateY(-3px);
	box-shadow: var(--wp--preset--shadow--lift);
}

.gb-products-carousel ul.products > li.product img {
	width: 100% !important;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 10px;
	margin-bottom: 10px !important;
}

/* Prix toujours sur sa propre ligne ; bouton add-to-cart en-dessous.
   Sans ça, sur les cards sans Force/Effets (Accessoires/Tisanes), prix et
   bouton se retrouvent inline côte à côte. */
.gb-products-carousel ul.products > li.product .price {
	display: block;
	margin: 4px 0 10px;
	color: var(--wp--preset--color--foreground);
}

/* Titre + prix + "Force" label en noir (les pellets/chips restent verts pour
   garder l'ID visuelle cannabis). */
.gb-products-carousel ul.products > li.product .woocommerce-loop-product__title,
.gb-products-carousel ul.products > li.product .woocommerce-loop-product__title a,
.gb-products-carousel ul.products > li.product .price,
.gb-products-carousel ul.products > li.product .price .woocommerce-Price-amount,
.gb-products-carousel ul.products > li.product .price .woocommerce-Price-currencySymbol,
.gb-products-carousel ul.products > li.product .gb-force-badge__label,
.gb-products-carousel ul.products > li.product .gb-price-prefix {
	color: var(--wp--preset--color--foreground) !important;
}

.gb-products-carousel ul.products > li.product .add_to_cart_button,
.gb-products-carousel ul.products > li.product .product_type_simple,
.gb-products-carousel ul.products > li.product .product_type_variable {
	display: inline-block;
	margin-top: 0;
}

/* On masque la scrollbar native — les indicateurs viennent des dots et des fades */
.gb-products-carousel {
	scrollbar-width: none;
}
.gb-products-carousel::-webkit-scrollbar {
	display: none;
}

/* Mobile : cards plus petites + padding réduit pour avoir un vrai effet peek */
@media (max-width: 768px) {
	/* Carrousel pleine largeur : on échappe au global padding du <main> (24px)
	   pour que la rangée file bord-à-bord. Même pattern full-bleed que .gb-trust-section.
	   max-width + margins en !important pour battre le layout WP is-layout-constrained
	   (max-width:100% qui plafonnait le 100vw + margin:auto). */
	.gb-carousel-wrap {
		width: 100vw !important;
		max-width: 100vw !important;
		margin-left: calc(-1 * var(--wp--preset--spacing--md)) !important;
		margin-right: calc(-1 * var(--wp--preset--spacing--md)) !important;
	}
	.gb-products-carousel {
		padding-top: var(--wp--preset--spacing--md);
		padding-bottom: var(--wp--preset--spacing--lg);
		scroll-padding-left: var(--wp--preset--spacing--md);
	}
	.gb-products-carousel ul.products {
		gap: 14px;
		/* 24px = aligne la 1re card sous le titre de section, cards bord-à-bord */
		padding: 0 var(--wp--preset--spacing--md) !important;
	}
	.gb-products-carousel ul.products > li.product {
		flex: 0 0 220px !important;
		width: 220px !important;
		padding: 12px;
	}
}

@media (max-width: 480px) {
	.gb-products-carousel ul.products {
		gap: 12px;
	}
	.gb-products-carousel ul.products > li.product {
		flex: 0 0 190px !important;
		width: 190px !important;
		padding: 10px;
		border-radius: 14px;
	}
	.gb-products-carousel ul.products > li.product img {
		border-radius: 8px;
		margin-bottom: 8px !important;
	}
}

/* ============================================
   Related products (single page) — réutilise les styles ci-dessus
   mais ciblé sur le ul.wc-block-product-template (block WC moderne)
   ============================================ */
.single-product .gb-products-carousel.wc-block-product-template {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	gap: 16px;
	margin: 0 !important;
	padding: var(--wp--preset--spacing--md) var(--wp--preset--spacing--md) var(--wp--preset--spacing--lg) !important;
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-left: var(--wp--preset--spacing--md);
	-webkit-overflow-scrolling: touch;
	list-style: none !important;
	box-sizing: border-box;
	scrollbar-width: none;
}
.single-product .gb-products-carousel.wc-block-product-template::-webkit-scrollbar {
	display: none;
}

.single-product .gb-products-carousel.wc-block-product-template > li.wc-block-product {
	flex: 0 0 240px !important;
	width: 240px !important;
	max-width: 240px !important;
	min-width: 240px !important;
	scroll-snap-align: start;
	box-sizing: border-box;
	margin: 0 !important;
	padding: 14px !important;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 16px;
	transition: transform var(--gb-transition), box-shadow var(--gb-transition);
}

.single-product .gb-products-carousel.wc-block-product-template > li.wc-block-product:hover {
	transform: translateY(-3px);
	box-shadow: var(--wp--preset--shadow--lift);
}

.single-product .gb-products-carousel.wc-block-product-template .wp-block-woocommerce-product-image img,
.single-product .gb-products-carousel.wc-block-product-template .wc-block-components-product-image img {
	width: 100% !important;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 10px;
}

/* Tablet & mobile — cards plus petites pour avoir 2 cards visibles */
@media (max-width: 768px) {
	.single-product .gb-products-carousel.wc-block-product-template > li.wc-block-product {
		flex: 0 0 200px !important;
		width: 200px !important;
		max-width: 200px !important;
		min-width: 200px !important;
		padding: 12px !important;
	}
}

@media (max-width: 480px) {
	.single-product .gb-products-carousel.wc-block-product-template > li.wc-block-product {
		flex: 0 0 180px !important;
		width: 180px !important;
		max-width: 180px !important;
		min-width: 180px !important;
	}
}

/* Pagination native du block WC (next/prev buttons) — on les masque puisqu'on a nos dots */
.single-product .wp-block-woocommerce-product-collection .wc-block-next-previous-buttons {
	display: none !important;
}

/* ============================================
   Carrousel — gradient fade + dots de pagination
   ============================================ */
.gb-carousel-wrap {
	position: relative;
}

.gb-carousel-fade {
	position: absolute;
	top: 0;
	bottom: 40px; /* libère la zone des dots dessous */
	width: clamp(24px, 7vw, 80px); /* fade discret en mobile, plein sur desktop */
	pointer-events: none;
	opacity: 0;
	transition: opacity 240ms ease;
	z-index: 2;
}

.gb-carousel-fade--left {
	left: 0;
	background: linear-gradient(to right, var(--wp--preset--color--background, #fff) 0%, rgba(255, 255, 255, 0) 100%);
}

.gb-carousel-fade--right {
	right: 0;
	background: linear-gradient(to left, var(--wp--preset--color--background, #fff) 0%, rgba(255, 255, 255, 0) 100%);
}

.gb-carousel-wrap.is-can-scroll-left .gb-carousel-fade--left { opacity: 1; }
.gb-carousel-wrap.is-can-scroll-right .gb-carousel-fade--right { opacity: 1; }

.gb-carousel-dots {
	display: none;
}

.gb-carousel-wrap.is-no-scroll .gb-carousel-dots,
.gb-carousel-wrap.is-no-scroll .gb-carousel-fade {
	display: none;
}

.gb-carousel-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.18);
	border: none;
	padding: 0;
	cursor: pointer;
	transition: background 200ms ease, transform 200ms ease, width 200ms ease;
}

.gb-carousel-dot:hover {
	background: rgba(0, 0, 0, 0.32);
}

.gb-carousel-dot.is-active {
	background: var(--wp--preset--color--accent, #1f4a1f);
	width: 22px;
	border-radius: 999px;
}

.gb-carousel-dot:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent, #1f4a1f);
	outline-offset: 3px;
}

/* ============================================
   Card finale "Voir plus" + bouton CTA carrousel
   ============================================ */

/* Card finale (dernière carte du carrousel) */
.gb-products-carousel ul.products > li.gb-see-more-card {
	background: transparent !important;
	border: 1.5px dashed var(--wp--preset--color--accent, #1f4a1f) !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	transition: background 240ms ease, border-color 240ms ease, transform 240ms ease;
}

.gb-products-carousel ul.products > li.gb-see-more-card:hover {
	background: var(--wp--preset--color--accent, #1f4a1f) !important;
	border-style: solid !important;
	transform: translateY(-3px);
}

.gb-see-more-card__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	color: var(--wp--preset--color--accent, #1f4a1f);
	text-decoration: none;
	width: 100%;
	height: 100%;
	min-height: 240px;
	padding: 16px;
	text-align: center;
	transition: color 240ms ease;
}

.gb-products-carousel ul.products > li.gb-see-more-card:hover .gb-see-more-card__link {
	color: white;
}

.gb-see-more-card__arrow {
	font-size: 44px;
	font-weight: 300;
	line-height: 1;
	transition: transform 240ms ease;
}

.gb-products-carousel ul.products > li.gb-see-more-card:hover .gb-see-more-card__arrow {
	transform: translateX(8px);
}

.gb-see-more-card__label {
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

/* Lien CTA sous le carrousel — style "Voir toutes nos X →" cohérent avec le
   header de la section Nouveautés. Reprend .gb-nouveautes-link (vert lime + flèche)
   et le re-positionne centré sous le carrousel via la variante .gb-carousel-link. */
.gb-carousel-link {
	align-self: center !important; /* override align-self: flex-end du header Nouveautés */
	margin: -48px 0 28px !important;
	font-size: clamp(14px, 1.05vw + 8px, 16px) !important;
	gap: 8px !important;
}

.gb-carousel-link svg {
	width: clamp(16px, 0.9vw + 10px, 18px);
	height: clamp(16px, 0.9vw + 10px, 18px);
	flex-shrink: 0;
	transition: transform var(--gb-transition);
}

.gb-carousel-link:hover svg,
.gb-carousel-link:focus-visible svg {
	transform: translateX(3px);
}

/* Le wrap devient flex column pour que le lien se centre sous les dots */
.gb-carousel-wrap {
	display: flex;
	flex-direction: column;
}

/* Tablet : réduit padding-bottom carrousel + ajuste pull du lien */
@media (max-width: 1024px) {
	.gb-products-carousel {
		padding: var(--wp--preset--spacing--md) 0 var(--wp--preset--spacing--lg); /* 24px / 40px */
	}
	.gb-carousel-link {
		margin: -32px 0 22px !important;
	}
}

/* Mobile */
@media (max-width: 768px) {
	.gb-products-carousel {
		padding: var(--wp--preset--spacing--sm, 16px) 0 var(--wp--preset--spacing--md); /* 16px / 24px */
	}
	.gb-carousel-link {
		margin: -18px 0 18px !important;
	}
}

/* Très petit mobile */
@media (max-width: 480px) {
	.gb-carousel-link {
		margin: -16px 0 14px !important;
	}
}

@media (max-width: 768px) {
	.gb-products-carousel ul.products > li.product {
		flex: 0 0 220px !important;
		width: 220px !important;
	}
}

.gb-video-section__eyebrow {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin: 0 0 var(--wp--preset--spacing--md);
}

.gb-video-section__title {
	font-size: var(--wp--preset--font-size--display);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--wp--preset--color--foreground);
	margin: 0 0 var(--wp--preset--spacing--md);
}

.gb-video-section__subtitle {
	font-size: clamp(17px, 1.5vw + 0.5rem, 22px);
	line-height: 1.5;
	color: var(--wp--preset--color--secondary);
	margin: 0 0 var(--wp--preset--spacing--lg);
}

.gb-video-section__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.85rem 1.6rem;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
	border-radius: 999px;
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
	transition: transform var(--gb-transition), background-color var(--gb-transition), box-shadow var(--gb-transition);
}

.gb-video-section__cta:hover {
	background: var(--wp--preset--color--foreground);
	transform: translateY(-1px);
	box-shadow: var(--wp--preset--shadow--lift);
	color: var(--wp--preset--color--white);
}

/* Smaller heading for sub-sections (pas le hero) */
.gb-video-section.is-section .gb-video-section__title {
	font-size: var(--wp--preset--font-size--xxxl);
}

.gb-video-section.is-section {
	min-height: 64vh;
}

/* Reveal animation on enter viewport */
.gb-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition:
		opacity 800ms cubic-bezier(0.2, 0.8, 0.2, 1),
		transform 800ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.gb-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.gb-reveal[data-delay="1"] { transition-delay: 100ms; }
.gb-reveal[data-delay="2"] { transition-delay: 200ms; }
.gb-reveal[data-delay="3"] { transition-delay: 300ms; }
.gb-reveal[data-delay="4"] { transition-delay: 400ms; }

/* ============================================
   Force badge + Effets chips (grille + single)
   ============================================ */

.gb-force-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin-top: 0.4rem;
}

.gb-force-badge__label {
	color: var(--wp--preset--color--muted);
}

.gb-force-badge__pellets {
	display: inline-flex;
	gap: 3px;
	align-items: center;
	padding: 2px;
	border: 1px solid rgba(31, 74, 31, 0.18);
	border-radius: 4px;
	background: rgba(31, 74, 31, 0.04);
}

.gb-force-pellet {
	width: 14px;
	height: 6px;
	border-radius: 1.5px;
	background: transparent;
	transition: background var(--gb-transition), transform var(--gb-transition);
}

.gb-force-pellet.is-on {
	background: var(--wp--preset--color--accent);
}

/* Animation fill au mount sur la fiche single */
.single-product .gb-force-pellet.is-on {
	opacity: 0;
	animation: gb-force-fill 0.32s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.single-product .gb-force-pellet.is-on:nth-child(1) { animation-delay: 0ms; }
.single-product .gb-force-pellet.is-on:nth-child(2) { animation-delay: 70ms; }
.single-product .gb-force-pellet.is-on:nth-child(3) { animation-delay: 140ms; }
.single-product .gb-force-pellet.is-on:nth-child(4) { animation-delay: 210ms; }
.single-product .gb-force-pellet.is-on:nth-child(5) { animation-delay: 280ms; }

@keyframes gb-force-fill {
	from { opacity: 0; transform: translateY(2px); }
	to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
	.single-product .gb-force-pellet.is-on {
		animation: none;
		opacity: 1;
	}
}

.gb-effets-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-top: 0.4rem;
}

.gb-effets-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 8px 2px 6px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--accent-tint);
	border-radius: 999px;
	border: 1px solid rgba(31, 74, 31, 0.12);
	transition: transform var(--gb-transition), box-shadow var(--gb-transition);
}

.gb-effets-chip__icon {
	display: inline-flex;
	width: 12px;
	height: 12px;
	color: var(--wp--preset--color--accent);
	flex-shrink: 0;
}

.gb-effets-chip__icon svg {
	width: 100%;
	height: 100%;
	display: block;
}

li.product:hover .gb-effets-chip,
.single-product .gb-effets-chip:hover {
	transform: translateY(-1px);
	box-shadow: 0 2px 6px rgba(31, 74, 31, 0.10);
}

/* Bloc "Profil produit" sur la fiche single — wrap Force + Effets */
.single-product .gb-product-profile {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 24px;
	width: fit-content;
	max-width: 100%;
	margin: 16px 0 18px;
	padding: 12px 16px;
	background: rgba(31, 74, 31, 0.035);
	border: 1px solid rgba(31, 74, 31, 0.10);
	border-radius: 10px;
}

.single-product .gb-product-profile:empty {
	display: none;
}

.single-product .gb-product-profile > .gb-force-badge,
.single-product .gb-product-profile > .gb-effets-chips {
	margin: 0;
}

/* Séparateur subtil entre les 2 sections quand les 2 sont là */
.single-product .gb-product-profile > .gb-effets-chips {
	position: relative;
	padding-left: 28px;
}

.single-product .gb-product-profile > .gb-force-badge + .gb-effets-chips::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 16px;
	background: rgba(31, 74, 31, 0.18);
}

@media (max-width: 600px) {
	.single-product .gb-product-profile {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
	.single-product .gb-product-profile > .gb-effets-chips {
		padding-left: 0;
	}
	.single-product .gb-product-profile > .gb-force-badge + .gb-effets-chips::before {
		display: none;
	}
}

/* Single product : tailles boostées */
.single-product .gb-force-badge {
	font-size: 12px;
	margin-top: 0.8rem;
}

.single-product .gb-force-pellet {
	width: 18px;
	height: 8px;
	border-radius: 2px;
}

.single-product .gb-effets-chip {
	font-size: 12px;
	padding: 4px 12px 4px 8px;
	gap: 5px;
}

.single-product .gb-effets-chip__icon {
	width: 14px;
	height: 14px;
}

/* ============================================
   Catalogue : H1 + intro SEO
   ============================================ */

.gb-shop-intro {
	max-width: 760px !important;
	color: rgba(31, 41, 55, 0.78);
	margin-left: 0 !important;
	margin-right: auto !important;
}

.gb-shop-intro strong {
	color: #1f4a1f;
	font-weight: 600;
}

@media (max-width: 768px) {
	.gb-shop-intro {
		max-width: none;
		font-size: 0.95rem !important;
		line-height: 1.5 !important;
	}
}

/* ============================================
   Archive product : sidebar filtres sticky
   ============================================ */

.gb-archive-sidebar {
	position: sticky;
	top: calc(var(--wp--preset--spacing--lg) + 64px);
	align-self: flex-start;
}

.gb-archive-sidebar .wc-block-product-filter-active__items,
.gb-archive-sidebar .wp-block-woocommerce-product-filter-attribute,
.gb-archive-sidebar .wp-block-woocommerce-product-filter-price {
	margin-bottom: var(--wp--preset--spacing--md);
	padding-bottom: var(--wp--preset--spacing--md);
	border-bottom: 1px solid var(--wp--preset--color--subtle);
}

.gb-archive-sidebar .wp-block-woocommerce-product-filter-clear-button button {
	color: var(--wp--preset--color--accent);
	background: transparent;
	border: 1px solid var(--wp--preset--color--accent);
	padding: 0.5rem 1rem;
	border-radius: 999px;
	font-size: 13px;
	cursor: pointer;
	transition: background var(--gb-transition);
}

.gb-archive-sidebar .wp-block-woocommerce-product-filter-clear-button button:hover {
	background: var(--wp--preset--color--accent-tint);
}

@media (max-width: 768px) {
	.gb-archive-sidebar {
		position: static;
		flex-basis: 100% !important;
	}
}

/* ============================================
   Hover lift sur cards produits (grille shop)
   ============================================ */

.woocommerce ul.products li.product,
.wc-block-grid__product {
	transition: transform var(--gb-transition), box-shadow var(--gb-transition);
}

.woocommerce ul.products li.product:hover,
.wc-block-grid__product:hover {
	transform: translateY(-2px);
}

.woocommerce ul.products li.product img {
	transition: transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.woocommerce ul.products li.product:hover img {
	transform: scale(1.03);
}

/* Make sure product images don't overflow */
.woocommerce ul.products li.product a img {
	border-radius: 12px;
	overflow: hidden;
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.gb-video-section__media video {
		display: none;
	}
	.gb-reveal {
		opacity: 1 !important;
		transform: none !important;
	}
}

@media (max-width: 768px) {
	.gb-video-section { aspect-ratio: 16 / 9; }
	.gb-video-section.is-section { aspect-ratio: 16 / 9; min-height: 0; }
}

/* ============================================
   Boutons "Ajouter au panier" — fond blanc, texte vert
   (override de theme.json elements.button qui est vert plein)
   ============================================ */
.woocommerce a.button.add_to_cart_button,
.woocommerce a.button.ajax_add_to_cart,
.woocommerce button.single_add_to_cart_button,
ul.products li.product a.button.add_to_cart_button,
ul.products li.product a.button.ajax_add_to_cart {
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	position: relative;
	overflow: hidden;
	isolation: isolate; /* contient le ::before en stacking context */
	z-index: 0;
	transition: color 280ms cubic-bezier(0.65, 0, 0.35, 1), border-color 280ms ease, transform 200ms ease;
}

/* Remplissage liquide gauche → droite via ::before scaleX */
.woocommerce a.button.add_to_cart_button::before,
.woocommerce a.button.ajax_add_to_cart::before,
.woocommerce button.single_add_to_cart_button::before,
ul.products li.product a.button.add_to_cart_button::before,
ul.products li.product a.button.ajax_add_to_cart::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--wp--preset--color--accent);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 420ms cubic-bezier(0.65, 0, 0.35, 1);
	z-index: -1;
	border-radius: inherit;
}

.woocommerce a.button.add_to_cart_button:hover::before,
.woocommerce a.button.ajax_add_to_cart:hover::before,
.woocommerce button.single_add_to_cart_button:hover::before,
ul.products li.product a.button.add_to_cart_button:hover::before,
ul.products li.product a.button.ajax_add_to_cart:hover::before,
.woocommerce a.button.add_to_cart_button:focus-visible::before,
.woocommerce button.single_add_to_cart_button:focus-visible::before {
	transform: scaleX(1);
}

.woocommerce a.button.add_to_cart_button:hover,
.woocommerce a.button.ajax_add_to_cart:hover,
.woocommerce button.single_add_to_cart_button:hover,
ul.products li.product a.button.add_to_cart_button:hover,
ul.products li.product a.button.ajax_add_to_cart:hover,
.woocommerce a.button.add_to_cart_button:focus-visible,
.woocommerce button.single_add_to_cart_button:focus-visible {
	color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--accent);
}

/* Click feedback : léger scale-down */
.woocommerce a.button.add_to_cart_button:active,
.woocommerce a.button.ajax_add_to_cart:active,
ul.products li.product a.button.add_to_cart_button:active,
ul.products li.product a.button.ajax_add_to_cart:active {
	transform: scale(0.97);
}

/* Morph succès — déclenché par JS qui ajoute .gb-added */
.woocommerce a.button.add_to_cart_button.gb-added,
.woocommerce a.button.ajax_add_to_cart.gb-added,
.woocommerce button.single_add_to_cart_button.gb-added,
ul.products li.product a.button.add_to_cart_button.gb-added,
ul.products li.product a.button.ajax_add_to_cart.gb-added {
	background-color: var(--wp--preset--color--accent) !important;
	color: transparent !important; /* masque le texte natif (text node) sans casser le layout */
	border-color: var(--wp--preset--color--accent) !important;
	pointer-events: none;
	animation: gbCartPop 360ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

.woocommerce a.button.add_to_cart_button.gb-added::before,
.woocommerce a.button.ajax_add_to_cart.gb-added::before {
	transform: scaleX(1) !important;
	transition: none !important;
}

/* Cache aussi les éventuels enfants (icônes, span) */
.woocommerce a.button.add_to_cart_button.gb-added > *,
ul.products li.product a.button.add_to_cart_button.gb-added > *,
.woocommerce a.button.ajax_add_to_cart.gb-added > * {
	visibility: hidden;
}

.woocommerce a.button.add_to_cart_button.gb-added::after,
.woocommerce a.button.ajax_add_to_cart.gb-added::after,
ul.products li.product a.button.add_to_cart_button.gb-added::after {
	content: "✓ Ajouté";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-weight: 600;
	letter-spacing: 0.02em;
	z-index: 1;
	animation: gbCartCheckIn 320ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes gbCartPop {
	0%   { transform: scale(0.97); }
	50%  { transform: scale(1.04); }
	100% { transform: scale(1); }
}

@keyframes gbCartCheckIn {
	0%   { opacity: 0; transform: translateY(6px); }
	100% { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
	.woocommerce a.button.add_to_cart_button,
	.woocommerce a.button.add_to_cart_button::before {
		transition: none !important;
		animation: none !important;
	}
}

/* Pas de soulignement sur les liens dans les cards produit (titre + prix +
   image), même au hover. Underline = pattern visuel daté pour de l'e-commerce. */
.gb-products-carousel ul.products > li.product a,
.gb-products-carousel ul.products > li.product a:hover,
.gb-products-carousel ul.products > li.product a:focus,
.gb-products-carousel ul.products > li.product .woocommerce-loop-product__title,
.gb-products-carousel ul.products > li.product .woocommerce-loop-product__title a,
.gb-products-carousel ul.products > li.product .price,
.gb-products-carousel ul.products > li.product .price a {
	text-decoration: none !important;
}

/* Micro-hover titre produit : transition douce vers le vert accent quand on
   survole l'image OU le titre (signal cliquable, sans underline). */
.gb-products-carousel ul.products > li.product .woocommerce-loop-product__title {
	transition: color 220ms cubic-bezier(0.4, 0, 0.2, 1);
}

.gb-products-carousel ul.products > li.product:hover .woocommerce-loop-product__title,
.gb-products-carousel ul.products > li.product .woocommerce-loop-product__title:hover {
	color: var(--wp--preset--color--accent) !important;
}

/* "Voir le panier" — pill design moderne sous le bouton Ajouter au panier.
   WC ajoute dynamiquement <a class="added_to_cart wc-forward"> après l'AJAX
   réussi → on l'anime fade + slide-in. */
.gb-products-carousel a.added_to_cart,
.woocommerce a.added_to_cart {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	margin: 8px 0 0;
	padding: 7px 14px 7px 12px;
	background: rgba(31, 74, 31, 0.08);
	color: var(--wp--preset--color--accent) !important;
	border: 1px solid rgba(31, 74, 31, 0.18);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.01em;
	text-decoration: none !important;
	transition: background 200ms ease, color 200ms ease, border-color 200ms ease, transform 200ms ease;
	animation: gbViewCartIn 360ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Petite icône panier en SVG inline via ::before */
.gb-products-carousel a.added_to_cart::before,
.woocommerce a.added_to_cart::before {
	content: "";
	width: 14px;
	height: 14px;
	background-color: currentColor;
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 18a2 2 0 1 0 0 4a2 2 0 0 0 0-4zm10 0a2 2 0 1 0 0 4a2 2 0 0 0 0-4zM2.4 4.4l3.4.6 1.2 6.7c.1.5.5.8 1 .8h9c.5 0 .9-.3 1-.7l1.5-5.3c.2-.7-.4-1.3-1.1-1.3H7.5l-.4-1.9c-.1-.5-.5-.9-1-.9H2v1zM18.5 8.6l-1 3.4H8L7 7.6h11z'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 18a2 2 0 1 0 0 4a2 2 0 0 0 0-4zm10 0a2 2 0 1 0 0 4a2 2 0 0 0 0-4zM2.4 4.4l3.4.6 1.2 6.7c.1.5.5.8 1 .8h9c.5 0 .9-.3 1-.7l1.5-5.3c.2-.7-.4-1.3-1.1-1.3H7.5l-.4-1.9c-.1-.5-.5-.9-1-.9H2v1zM18.5 8.6l-1 3.4H8L7 7.6h11z'/></svg>");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	flex: 0 0 auto;
}

/* Flèche → ajoutée à droite via ::after */
.gb-products-carousel a.added_to_cart::after,
.woocommerce a.added_to_cart::after {
	content: "→";
	font-size: 13px;
	line-height: 1;
	transition: transform 200ms ease;
	display: inline-block;
}

.gb-products-carousel a.added_to_cart:hover,
.woocommerce a.added_to_cart:hover {
	background: var(--wp--preset--color--accent) !important;
	color: white !important;
	border-color: var(--wp--preset--color--accent);
	transform: translateY(-1px);
}

.gb-products-carousel a.added_to_cart:hover::after,
.woocommerce a.added_to_cart:hover::after {
	transform: translateX(3px);
}

@keyframes gbViewCartIn {
	0%   { opacity: 0; transform: translateY(-6px) scale(0.92); }
	100% { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
	.gb-products-carousel a.added_to_cart,
	.woocommerce a.added_to_cart { animation: none !important; }
}

@media (max-width: 768px) {
	.gb-products-carousel a.added_to_cart,
	.woocommerce a.added_to_cart {
		font-size: 11px;
		padding: 6px 12px 6px 10px;
	}
}

/* ============================================
   Sélecteur Format — pills sélectionnables (remplace le <select> WC)
   ============================================ */
.gb-format-selector {
	margin: 0 0 22px;
}

.gb-format-selector__heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin: 0 0 10px;
}

.gb-format-selector__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #1f4a1f;
}

.gb-format-pills {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin: 0;
}

.gb-format-pill {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	padding: 14px 10px 12px;
	background: var(--wp--preset--color--white);
	border: 1.5px solid rgba(31, 74, 31, 0.16);
	border-radius: 14px;
	color: var(--wp--preset--color--foreground);
	cursor: pointer;
	font-family: inherit;
	transition: transform var(--gb-transition), border-color var(--gb-transition), background var(--gb-transition), box-shadow var(--gb-transition), color var(--gb-transition);
	-webkit-tap-highlight-color: transparent;
	user-select: none;
	overflow: visible;
}

.gb-format-pill:hover:not(.is-unavailable):not(.is-active) {
	border-color: rgba(57, 181, 74, 0.55);
	transform: translateY(-1px);
	box-shadow: var(--wp--preset--shadow--lift);
}

.gb-format-pill.is-active {
	background: linear-gradient(135deg, #f6fbf6 0%, #ecf6ec 100%);
	border-color: #39b54a;
	border-width: 2px;
	padding: 13px 9px 11px;
	box-shadow: 0 0 0 4px rgba(57, 181, 74, 0.12), 0 2px 8px rgba(31, 74, 31, 0.08);
	color: #1f4a1f;
}

.gb-format-pill.is-unavailable {
	opacity: 0.4;
	cursor: not-allowed;
	text-decoration: line-through;
}

.gb-format-pill__check {
	position: absolute;
	top: 6px;
	right: 6px;
	display: inline-flex;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #39b54a;
	color: #fff;
	align-items: center;
	justify-content: center;
	transform: scale(0);
	opacity: 0;
	transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.15s;
	pointer-events: none;
}

.gb-format-pill__check svg {
	width: 12px;
	height: 12px;
	display: block;
}

.gb-format-pill.is-active .gb-format-pill__check {
	transform: scale(1);
	opacity: 1;
}

.gb-format-pill__badge {
	position: absolute;
	top: -8px;
	left: 50%;
	transform: translateX(-50%);
	display: inline-flex;
	align-items: center;
	padding: 2px 8px;
	background: #fbe23a;
	color: #1f4a1f;
	font-size: 9.5px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border-radius: 999px;
	box-shadow: 0 1px 3px rgba(31, 74, 31, 0.18);
	white-space: nowrap;
	z-index: 2;
}

.gb-format-pill__label {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.05;
}

.gb-format-pill__price {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.2;
	color: #1f4a1f;
}

.gb-format-pill.is-active .gb-format-pill__price {
	color: #1f4a1f;
}

.gb-format-pill__ppg {
	font-size: 10.5px;
	font-weight: 500;
	color: rgba(31, 74, 31, 0.55);
	letter-spacing: 0;
	line-height: 1.2;
	margin-top: 1px;
	font-variant-numeric: tabular-nums;
}

.gb-format-pill.is-active .gb-format-pill__ppg {
	color: rgba(31, 74, 31, 0.7);
}

@media (max-width: 768px) {
	.gb-format-pills {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}
	.gb-format-pill {
		padding: 12px 8px 10px;
	}
	.gb-format-pill__label { font-size: 15px; }
	.gb-format-pill__price { font-size: 12.5px; }
	.gb-format-pill__ppg { font-size: 10px; }
	.gb-format-pill__badge { font-size: 9px; padding: 2px 7px; }
}

@media (max-width: 380px) {
	.gb-format-selector__label { font-size: 11px; }
}

/* Le select WC original reste dans le DOM (pour wc-add-to-cart-variation.js) mais invisible */
.gb-format-select-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
	padding: 0;
}

/* Cache la ligne de fluctuation "Reset" qui apparaît sous le select WC quand variation choisie */
.woocommerce .variations_form.gb-enhanced .reset_variations {
	font-size: 12px;
	color: rgba(0,0,0,0.5);
	text-decoration: none;
	margin-left: 4px;
}
.woocommerce .variations_form.gb-enhanced .reset_variations:hover {
	color: var(--wp--preset--color--accent);
	text-decoration: underline;
}

/* Cache le label "Format :" (la pill UI suffit) */
.woocommerce .variations_form.gb-enhanced .variations,
.woocommerce .variations_form.gb-enhanced .variations tbody,
.woocommerce .variations_form.gb-enhanced .variations tr,
.woocommerce .variations_form.gb-enhanced .variations td {
	display: block;
	width: 100%;
	border: 0;
	padding: 0;
	margin: 0;
}
.woocommerce .variations_form.gb-enhanced .variations .label {
	display: none;
}

/* ============================================
   Stepper quantité — +/- custom premium
   ============================================ */
.woocommerce .quantity.gb-qty-stepper {
	display: inline-flex;
	align-items: center;
	gap: 0;
	background: var(--wp--preset--color--white);
	border: 1.5px solid rgba(31, 74, 31, 0.18);
	border-radius: 999px;
	padding: 4px;
	overflow: hidden;
}

.gb-qty-btn {
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	border-radius: 999px;
	color: var(--wp--preset--color--foreground);
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;
	transition: background var(--gb-transition), color var(--gb-transition), transform var(--gb-transition);
	-webkit-tap-highlight-color: transparent;
}

.gb-qty-btn:hover:not(:disabled) {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
	transform: scale(1.04);
}

.gb-qty-btn:disabled {
	opacity: 0.3;
	cursor: not-allowed;
}

.woocommerce .quantity.gb-qty-stepper .qty {
	width: 44px;
	height: 36px;
	border: 0;
	background: transparent;
	text-align: center;
	font-size: 15px;
	font-weight: 600;
	color: var(--wp--preset--color--foreground);
	font-family: inherit;
	padding: 0;
	-moz-appearance: textfield;
	appearance: textfield;
}

.woocommerce .quantity.gb-qty-stepper .qty:focus {
	outline: 0;
}

.woocommerce .quantity.gb-qty-stepper .qty::-webkit-outer-spin-button,
.woocommerce .quantity.gb-qty-stepper .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Layout : groupe stepper + bouton "Ajouter au panier" sur la même ligne */
.woocommerce .single_variation_wrap form.cart,
.woocommerce form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-top: 8px;
}

.woocommerce .single_variation_wrap .single_variation {
	width: 100%;
}

.woocommerce .single_variation_wrap .woocommerce-variation-price {
	font-size: 22px;
	font-weight: 600;
	color: var(--wp--preset--color--foreground);
	margin-bottom: 6px;
}

.woocommerce .single_variation_wrap .woocommerce-variation-price .price ins {
	background: transparent;
	text-decoration: none;
}

/* Préfixe "Dès" devant le prix mini des produits variables (sauf cart/checkout/order) */
.gb-price-prefix {
	display: inline-block;
	font-size: 0.72em;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin-right: 0.18em;
	vertical-align: 0.08em;
	opacity: 0.85;
}

/* Section "Nos boutiques" — force le padding vertical.
   ⚠️ Bug WP : les slugs spacing qui commencent par chiffre (2xl, 3xl) génèrent
   des CSS vars `--2-xl`/`--3-xl` (avec hyphen) ≠ celles utilisées dans l'inline
   style → undefined → padding 0. Donc on utilise `xl` (64px) qui est safe. */
section.gb-shops-section {
	padding-top: var(--wp--preset--spacing--xl) !important;
	padding-bottom: var(--wp--preset--spacing--xl) !important;
}

@media (max-width: 768px) {
	section.gb-shops-section {
		padding-top: var(--wp--preset--spacing--lg) !important;
		padding-bottom: var(--wp--preset--spacing--lg) !important;
	}
}

/* ============================================
   .gb-shops-carousel — carrousel horizontal des boutiques
   avec embed Google Maps + infos + CTA
   ============================================ */

.gb-shops-carousel {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-padding-left: var(--wp--preset--spacing--md);
	padding: 24px var(--wp--preset--spacing--md);
	margin: 0 calc(-1 * var(--wp--preset--spacing--md));
	scrollbar-width: thin;
	scrollbar-color: rgba(31, 74, 31, 0.3) transparent;
	-webkit-overflow-scrolling: touch;
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
}

.gb-shops-carousel::-webkit-scrollbar { height: 6px; }
.gb-shops-carousel::-webkit-scrollbar-track { background: transparent; }
.gb-shops-carousel::-webkit-scrollbar-thumb { background: rgba(31, 74, 31, 0.3); border-radius: 999px; }

.gb-shop-card {
	flex: 0 0 380px;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 18px;
	overflow: hidden;
	transition: transform 240ms ease, box-shadow 240ms ease;
	box-shadow: 0 2px 6px rgba(86, 129, 19, 0.08);
}

.gb-shop-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px -6px rgba(86, 129, 19, 0.22);
}

.gb-shop-card__map {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--wp--preset--color--subtle);
}

.gb-shop-card__map iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
	filter: saturate(0.9);
	transition: filter 240ms ease;
}

.gb-shop-card:hover .gb-shop-card__map iframe {
	filter: saturate(1.05);
}

.gb-shop-card__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 18px 20px 20px;
}

.gb-shop-card__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
}

.gb-shop-card__title {
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--foreground);
	margin: 0;
}

.gb-shop-card__rating {
	display: inline-block; /* ::first-letter exige block-level/inline-block */
	font-size: 13px;
	font-weight: 600;
	color: var(--wp--preset--color--foreground);
	letter-spacing: 0.02em;
	white-space: nowrap;
}

/* L'étoile (premier caractère ★) en or style Google review */
.gb-shop-card__rating::first-letter {
	color: #f5a623;
	font-size: 1.15em;
	margin-right: 2px;
}

.gb-shop-card__addr {
	font-size: 13px;
	line-height: 1.5;
	color: rgba(0, 0, 0, 0.65);
	margin: 0;
}

.gb-shop-card__hours {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 4px 14px;
	margin: 6px 0 0;
	font-size: 12px;
	line-height: 1.4;
}

.gb-shop-card__hours dt {
	color: rgba(0, 0, 0, 0.55);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-weight: 500;
	font-size: 11px;
	align-self: center;
}

.gb-shop-card__hours dd {
	margin: 0;
	color: var(--wp--preset--color--foreground);
}

.gb-shop-card__phone {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 4px;
	font-size: 13px;
	font-weight: 500;
	color: var(--wp--preset--color--foreground);
	text-decoration: none !important;
	transition: color 200ms ease;
}

.gb-shop-card__phone:hover {
	color: var(--wp--preset--color--accent);
}

.gb-shop-card__actions {
	display: flex;
	gap: 8px;
	margin-top: 14px;
}

.gb-shop-card__btn {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 10px 14px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none !important;
	transition: all 200ms ease;
	background: transparent;
	color: var(--wp--preset--color--accent);
	border: 1.5px solid var(--wp--preset--color--accent);
}

.gb-shop-card__btn.is-primary {
	background: var(--wp--preset--color--accent);
	color: white;
}

.gb-shop-card__btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 14px rgba(31, 74, 31, 0.18);
}

.gb-shop-card__btn:not(.is-primary):hover {
	background: var(--wp--preset--color--accent);
	color: white;
}

@media (max-width: 768px) {
	.gb-shop-card {
		flex: 0 0 320px;
	}
	.gb-shop-card__title { font-size: 16px; }
	.gb-shop-card__btn { font-size: 12px; padding: 9px 12px; }
}

/* ============================================================
   .gb-home-boutiques — tuiles photo cliquables sur la home
   4 boutiques : photo plein cadre + overlay rating/nom/adresse.
   Click → /boutiques/#{slug}.
   ============================================================ */
.gb-home-boutiques {
	width: 100%;
	margin-top: var(--wp--preset--spacing--md);
	position: relative;
}

/* Carousel horizontal : naturellement linéaire (display: flex + scroll x).
   Mobile : toujours scrollable. Desktop : avec 4 boutiques tiens en 1 ligne
   (pas de scroll visible). Avec 5+ : scroll auto. */
.gb-home-boutiques__grid {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-padding-left: var(--wp--preset--spacing--md, 24px);
	scroll-padding-right: var(--wp--preset--spacing--md, 24px);
	scrollbar-width: none;
	-ms-overflow-style: none;
	padding-bottom: 4px;
	margin: 0 calc(-1 * var(--wp--preset--spacing--md, 24px));
	padding-left: var(--wp--preset--spacing--md, 24px);
	padding-right: var(--wp--preset--spacing--md, 24px);
}

.gb-home-boutiques__grid::-webkit-scrollbar {
	display: none;
}

/* Tile width = flex-basis qui s'adapte au nb de boutiques visibles.
   Desktop : (100% - 3 gaps) / 4 ≈ 24% (4 visibles). À 5+ boutiques le 5e
   débordera et déclenchera le scroll. */
.gb-home-boutique-tile {
	flex: 0 0 calc((100% - 3 * 18px) / 4);
	min-width: 240px;
	scroll-snap-align: start;
}

@media (max-width: 1100px) {
	.gb-home-boutique-tile {
		flex: 0 0 calc((100% - 18px) / 2);
		min-width: 220px;
	}
}

@media (max-width: 600px) {
	.gb-home-boutiques__grid {
		gap: 14px;
		scroll-padding-left: 16px;
		margin: 0 -16px;
		padding-left: 16px;
		padding-right: 16px;
	}
	.gb-home-boutique-tile {
		flex: 0 0 78%;
		min-width: 240px;
	}
}

/* Edge fades indiquant le scroll possible */
.gb-home-boutiques::before,
.gb-home-boutiques::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 32px;
	pointer-events: none;
	z-index: 3;
	opacity: 0;
	transition: opacity 280ms ease;
}

.gb-home-boutiques::before {
	left: 0;
	background: linear-gradient(to right, var(--wp--preset--color--accent-tint, #eaf2eb), transparent);
}

.gb-home-boutiques::after {
	right: 0;
	background: linear-gradient(to left, var(--wp--preset--color--accent-tint, #eaf2eb), transparent);
}

.gb-home-boutiques.is-can-scroll-left::before { opacity: 1; }
.gb-home-boutiques.is-can-scroll-right::after { opacity: 1; }

/* Mobile : edge fade right par défaut comme hint scroll (4 tiles > viewport) */
@media (max-width: 1100px) {
	.gb-home-boutiques:not(.is-scrolled-end)::after {
		opacity: 1;
	}
}

.gb-home-boutique-tile {
	position: relative;
	display: block;
	aspect-ratio: 3 / 4;
	border-radius: 18px;
	overflow: hidden;
	color: #ffffff;
	background: linear-gradient(135deg, rgba(31, 74, 31, 0.15), rgba(31, 74, 31, 0.05));
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	transition: transform 400ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 400ms ease;
	isolation: isolate;
}

.gb-home-boutique-tile__link {
	position: absolute;
	inset: 0;
	z-index: 4;
	display: block;
	text-decoration: none;
	color: transparent;
}

.gb-home-boutique-tile__link:focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: -3px;
	border-radius: 18px;
}

.gb-home-boutique-tile:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px rgba(31, 74, 31, 0.22);
}

.gb-home-boutique-tile__photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
	transition: transform 800ms cubic-bezier(0.22, 1, 0.36, 1);
}

.gb-home-boutique-tile:hover .gb-home-boutique-tile__photo {
	transform: scale(1.07);
}

.gb-home-boutique-tile__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg,
		rgba(0, 0, 0, 0.06) 0%,
		rgba(0, 0, 0, 0.12) 35%,
		rgba(0, 0, 0, 0.55) 75%,
		rgba(0, 0, 0, 0.80) 100%);
	z-index: 1;
	pointer-events: none;
}

.gb-home-boutique-tile__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	padding: 5px 12px;
	background: rgba(255, 255, 255, 0.95);
	color: var(--wp--preset--color--accent);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.10em;
	text-transform: uppercase;
	border-radius: 999px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

.gb-home-boutique-tile__status {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 10px;
	background: rgba(255, 255, 255, 0.95);
	color: #4a4a4a;
	font-size: 11px;
	font-weight: 600;
	border-radius: 999px;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
	white-space: nowrap;
}

.gb-home-boutique-tile__status-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #9ca3af;
}

.gb-home-boutique-tile__status--open {
	color: var(--wp--preset--color--accent);
}
.gb-home-boutique-tile__status--open .gb-home-boutique-tile__status-dot {
	background: #16a34a;
	animation: gb-status-pulse 2.2s ease-in-out infinite;
}

.gb-home-boutique-tile__status--closing_soon { color: #92400e; }
.gb-home-boutique-tile__status--closing_soon .gb-home-boutique-tile__status-dot { background: #d97706; }

.gb-home-boutique-tile__status--before_open { color: #1e3a8a; }
.gb-home-boutique-tile__status--before_open .gb-home-boutique-tile__status-dot { background: #2563eb; }

.gb-home-boutique-tile__status--after_close,
.gb-home-boutique-tile__status--closed { color: #4b5563; }

.gb-home-boutique-tile__body {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 18px 18px 20px;
	z-index: 2;
	color: #ffffff;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.gb-home-boutique-tile__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 4px;
}

.gb-home-boutique-tile__rating {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	font-weight: 600;
	color: #ffffff;
}

.gb-home-boutique-tile__star {
	width: 14px;
	height: 14px;
	color: #fbbf24;
	flex-shrink: 0;
}

.gb-home-boutique-tile__rating-count {
	font-size: 11px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.75);
}

.gb-home-boutique-tile__dept {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.10em;
	color: rgba(255, 255, 255, 0.65);
	text-transform: uppercase;
}

.gb-home-boutique-tile__name {
	display: block;
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.015em;
	color: #ffffff;
	margin: 0;
	line-height: 1.15;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.30);
}

.gb-home-boutique-tile__addr {
	display: block;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.85);
	margin: 0;
	line-height: 1.4;
}

.gb-home-boutique-tile.has-no-photo .gb-home-boutique-tile__name,
.gb-home-boutique-tile.has-no-photo .gb-home-boutique-tile__addr,
.gb-home-boutique-tile.has-no-photo .gb-home-boutique-tile__rating {
	color: var(--wp--preset--color--foreground);
	text-shadow: none;
}

.gb-home-boutique-tile.has-no-photo .gb-home-boutique-tile__overlay {
	background: linear-gradient(180deg, transparent 0%, transparent 60%, rgba(255, 255, 255, 0.8) 100%);
}

@media (max-width: 600px) {
	.gb-home-boutique-tile {
		aspect-ratio: 4 / 3;
	}
	.gb-home-boutique-tile__name { font-size: 20px; }
	.gb-home-boutique-tile__body { padding: 16px; }
}

/* ============================================================
   .gb-trust-section — 4 USPs, fond vert plein, photos détourées
   qui "flottent" sur fond. Style matchant la référence client.
   ============================================================ */
.gb-trust-section {
	--gb-trust-img-h: clamp(120px, 11vw, 170px);
	--gb-trust-img-half: calc(var(--gb-trust-img-h) / 2);
	position: relative;
	padding: var(--gb-trust-img-half) 0 clamp(20px, 2.4vw, 32px);
	background:
		radial-gradient(80% 50% at 50% 0%, rgba(255, 255, 255, 0.06), transparent 65%),
		linear-gradient(180deg, #2a6840 0%, #1f4a1f 100%);
	overflow: visible;
	isolation: isolate;
	color: #ffffff;
	margin-top: var(--gb-trust-img-half);
	/* Force full-bleed même quand placée dans un <main> constrained
	   (cas de la page Boutiques où wideSize=1440px) */
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.gb-trust-section__inner {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 var(--wp--preset--spacing--md, 32px);
}

/* Grid 4 colonnes flat — pas de cards, juste colonnes */
.gb-trust-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(16px, 1.6vw, 28px);
	align-items: start;
}

.gb-trust-col {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 0;
}

/* Photo "flottante" : déborde vers le HAUT de la bande verte
   (la bande verte commence au milieu de chaque image).
   Image vertical center sits exactly on the section's top edge. */
.gb-trust-col__media {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	height: var(--gb-trust-img-h);
	margin-top: calc(-1 * var(--gb-trust-img-h));
	margin-bottom: clamp(8px, 0.9vw, 14px);
}

.gb-trust-col__image {
	max-width: 92%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 16px 28px rgba(0, 0, 0, 0.28));
	transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 600ms ease;
	will-change: transform;
}

.gb-trust-col:hover .gb-trust-col__image {
	transform: translateY(-6px) scale(1.04);
	filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.32));
}

/* Animation flottement subtile (boucle) */
.gb-trust-col__image {
	animation: gb-trust-float 6s ease-in-out infinite;
}

.gb-trust-col:nth-child(2) .gb-trust-col__image { animation-delay: -1.5s; }
.gb-trust-col:nth-child(3) .gb-trust-col__image { animation-delay: -3s; }
.gb-trust-col:nth-child(4) .gb-trust-col__image { animation-delay: -4.5s; }

@keyframes gb-trust-float {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-8px); }
}

@media (prefers-reduced-motion: reduce) {
	.gb-trust-col__image {
		animation: none;
	}
}

.gb-trust-col__title {
	font-size: clamp(17px, 1.4vw, 20px);
	font-weight: 700;
	letter-spacing: -0.01em;
	color: #ffffff;
	margin: 0 0 6px 0;
	line-height: 1.2;
}

.gb-trust-col__desc {
	font-size: clamp(12px, 0.9vw, 13.5px);
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.5;
	margin: 0;
	max-width: 100%;
}

.gb-trust-col__desc strong {
	color: #ffffff;
	font-weight: 700;
}

/* === Responsive ===
   Desktop (4 cols 1 rangée) : effet overflow images vers le haut activé.
   Tablet (2x2) et mobile (1 col) : overflow désactivé (sinon les images des
   rangées suivantes débordent sur la rangée précédente). Images en flux normal,
   centrées dans la bande verte.
*/
@media (max-width: 900px) {
	.gb-trust-section {
		padding: clamp(20px, 3vw, 32px) 0;
		margin-top: 0;
	}
	.gb-trust-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: clamp(20px, 3vw, 32px) clamp(18px, 2.5vw, 28px);
	}
	.gb-trust-col__media {
		height: clamp(110px, 16vw, 145px);
		margin-top: 0;
		margin-bottom: clamp(6px, 1.4vw, 12px);
	}
	.gb-trust-col__image {
		max-width: 70%;
	}
	.gb-trust-col__title {
		font-size: clamp(16px, 2.3vw, 19px);
		margin-bottom: 4px;
	}
	.gb-trust-col__desc {
		font-size: clamp(12px, 1.6vw, 13.5px);
		line-height: 1.5;
	}
}

@media (max-width: 520px) {
	.gb-trust-section {
		padding: 24px 0;
	}
	.gb-trust-grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}
	/* Split horizontal sur mobile : image GAUCHE (rowspan 2) +
	   titre HAUT DROIT + desc BAS DROIT */
	.gb-trust-col {
		display: grid;
		grid-template-columns: 96px 1fr;
		grid-template-areas:
			"media title"
			"media desc";
		align-items: start;
		text-align: left;
		column-gap: 16px;
		row-gap: 6px;
	}
	.gb-trust-col__media {
		grid-area: media;
		height: 96px;
		margin: 0;
		align-self: center;
	}
	.gb-trust-col__image {
		max-width: 100%;
		max-height: 96px;
		filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.25));
	}
	.gb-trust-col__title {
		grid-area: title;
		font-size: 17px;
		margin: 0;
		align-self: end;
	}
	.gb-trust-col__desc {
		grid-area: desc;
		font-size: 13px;
		line-height: 1.5;
		max-width: 100%;
		align-self: start;
	}
	/* Animation flottement réduite sur mobile */
	@keyframes gb-trust-float {
		0%, 100% { transform: translateY(0); }
		50%      { transform: translateY(-4px); }
	}
}

/* Resserrer (sans coller) le Trust à la bannière vidéo qui le suit (home : Trust → Fleurs vidéo).
   Le .gb-trust-section est wrappé dans .wp-block-template-part ; on attaque le wrapper. */
.wp-block-template-part:has(> .gb-trust-section):has(+ .gb-cat-block) > .gb-trust-section {
	padding-bottom: clamp(14px, 1.4vw, 20px);
	margin-bottom: 0;
}
.wp-block-template-part:has(> .gb-trust-section) + .gb-cat-block {
	margin-top: clamp(14px, 1.4vw, 20px) !important;
}
.wp-block-template-part:has(> .gb-trust-section):has(+ .gb-cat-block) {
	margin-bottom: 0 !important;
}

/* ============================================================
   .gb-home-boutiques-cta — CTA "Voir toutes nos boutiques"
   Pill vert plein avec icônes cannabis encadrant le texte.
   Hover : lift + shimmer + leaves rotation symétrique.
   ============================================================ */
.gb-home-boutiques-cta-wrap {
	display: flex;
	justify-content: center;
	margin: var(--wp--preset--spacing--xl) 0;
}

.gb-home-boutiques-cta {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 16px 32px;
	background: var(--wp--preset--color--accent);
	color: #ffffff;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.01em;
	border-radius: 999px;
	text-decoration: none;
	box-shadow:
		0 2px 6px rgba(31, 74, 31, 0.18),
		inset 0 1px 0 rgba(255, 255, 255, 0.10);
	transition:
		background 280ms cubic-bezier(0.22, 1, 0.36, 1),
		transform 320ms cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 320ms cubic-bezier(0.22, 1, 0.36, 1);
	overflow: hidden;
	isolation: isolate;
	will-change: transform;
}

.gb-home-boutiques-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		120deg,
		transparent 0%,
		transparent 35%,
		rgba(255, 255, 255, 0.20) 50%,
		transparent 65%,
		transparent 100%
	);
	transform: translateX(-100%);
	transition: transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
	pointer-events: none;
	z-index: 0;
}

.gb-home-boutiques-cta__label {
	position: relative;
	z-index: 1;
	line-height: 1;
}

.gb-home-boutiques-cta__leaf {
	position: relative;
	z-index: 1;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	color: #ffffff;
	transition: transform 480ms cubic-bezier(0.34, 1.56, 0.64, 1);
	will-change: transform;
}

.gb-home-boutiques-cta__leaf--left {
	transform-origin: 50% 90%;
}

.gb-home-boutiques-cta__leaf--right {
	transform-origin: 50% 90%;
}

.gb-home-boutiques-cta:hover {
	background: #163516;
	transform: translateY(-3px);
	box-shadow:
		0 14px 32px rgba(31, 74, 31, 0.28),
		inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.gb-home-boutiques-cta:hover::before {
	transform: translateX(100%);
}

.gb-home-boutiques-cta:hover .gb-home-boutiques-cta__leaf--left {
	transform: rotate(-18deg) scale(1.12);
}

.gb-home-boutiques-cta:hover .gb-home-boutiques-cta__leaf--right {
	transform: rotate(18deg) scale(1.12);
}

.gb-home-boutiques-cta:active {
	transform: translateY(-1px);
	box-shadow: 0 2px 6px rgba(31, 74, 31, 0.18);
}

.gb-home-boutiques-cta:focus-visible {
	outline: 3px solid rgba(31, 74, 31, 0.45);
	outline-offset: 4px;
}

@media (max-width: 600px) {
	.gb-home-boutiques-cta {
		font-size: 14px;
		padding: 14px 22px;
		gap: 10px;
	}
	.gb-home-boutiques-cta__leaf {
		width: 16px;
		height: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gb-home-boutiques-cta,
	.gb-home-boutiques-cta__leaf,
	.gb-home-boutiques-cta::before {
		transition: none;
	}
	.gb-home-boutiques-cta:hover {
		transform: none;
	}
}

/* ============================================================
   .gb-archive-banner — bannière vidéo en tête des archives
   /product-category/{slug}/. Réutilise les vidéos hero, format
   compact (~16/9 desktop, 16/10 mobile). Full-bleed via alignfull.
   ============================================================ */
.gb-archive-banner {
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	aspect-ratio: 21 / 8;
	max-height: 540px;
	min-height: 360px;
	overflow: hidden;
	background: #0a0a0a;
	margin-bottom: 56px;
	isolation: isolate;
}

.gb-archive-banner__media {
	position: absolute;
	inset: 0;
	z-index: 1;
}

.gb-archive-banner__media video,
.gb-archive-banner__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.gb-archive-banner__overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0) 0%,
		rgba(0, 0, 0, 0.15) 40%,
		rgba(0, 0, 0, 0.55) 75%,
		rgba(15, 42, 29, 0.85) 100%
	);
	pointer-events: none;
}

.gb-archive-banner__content {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 3;
	padding: clamp(20px, 4vw, 56px) clamp(20px, 5vw, 80px) clamp(24px, 4vw, 48px);
	color: #fff;
	text-align: left;
}

.gb-archive-banner__eyebrow {
	display: inline-block;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	font-size: clamp(10.5px, 0.9vw, 12px);
	font-weight: 600;
	color: rgba(255, 255, 255, 0.78);
	margin-bottom: clamp(8px, 1vw, 14px);
	padding: 5px 10px;
	border: 1px solid rgba(255, 255, 255, 0.32);
	border-radius: 999px;
	backdrop-filter: blur(6px);
}

.gb-archive-banner__title {
	font-family: 'Jost', system-ui, -apple-system, sans-serif;
	font-weight: 600;
	font-size: clamp(28px, 4.4vw, 56px);
	line-height: 1.04;
	margin: 0 0 clamp(8px, 1vw, 14px);
	color: #fff;
	letter-spacing: -0.022em;
	text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}

.gb-archive-banner__intro {
	font-size: clamp(14px, 1.25vw, 17px);
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.92);
	max-width: 680px;
	margin: 0;
	font-weight: 400;
}

@media (max-width: 768px) {
	.gb-archive-banner {
		aspect-ratio: 16 / 11;
		min-height: 320px;
	}
	.gb-archive-banner__content {
		padding: 0 18px 22px;
	}
	.gb-archive-banner__intro {
		font-size: 14px;
	}
}

/* La term-description WC qui suit (SEO body) — un peu d'air et un style plus discret */
.tax-product_cat .wp-block-term-description {
	margin-top: 0 !important;
	margin-bottom: 32px !important;
	padding: 0 8px;
	font-size: 14.5px;
	line-height: 1.7;
	color: #5a5a5a;
	max-width: 880px;
}

/* ============================================
   Search bar custom (header) + autosuggest
   ============================================ */

.gb-search {
	--gb-search-h: 38px;
	--gb-search-bg: #f5f5f7;
	--gb-search-bg-focus: #ffffff;
	--gb-search-border: rgba(0, 0, 0, 0.08);
	--gb-search-border-focus: var(--wp--preset--color--accent);
	--gb-search-radius: 999px;
	--gb-search-shadow-focus: 0 4px 24px rgba(0, 0, 0, 0.08);
	position: relative;
}

/* Mobile toggle (icon-only button) — masqué desktop */
.gb-search__mobile-toggle {
	display: none;
	width: 38px;
	height: 38px;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	border-radius: 50%;
	color: var(--wp--preset--color--foreground);
	cursor: pointer;
	transition: background var(--gb-transition);
}

.gb-search__mobile-toggle:hover {
	background: var(--gb-search-bg);
}

.gb-search__close {
	display: none;
	width: 36px;
	height: 36px;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	border-radius: 50%;
	color: var(--wp--preset--color--foreground);
	cursor: pointer;
	flex-shrink: 0;
}

.gb-search__close:hover {
	background: var(--gb-search-bg);
}

/* Panel = wrapper input + dropdown */
.gb-search__panel {
	display: flex;
	align-items: center;
	gap: 8px;
	position: relative;
}

/* Le pill input */
.gb-search__field {
	box-sizing: border-box; /* width inclut padding+bordure (évite débordement, surtout overlay mobile) */
	display: inline-flex;
	align-items: center;
	width: 240px;
	height: var(--gb-search-h);
	padding: 0 14px 0 12px;
	background: var(--gb-search-bg);
	border: 1px solid var(--gb-search-border);
	border-radius: var(--gb-search-radius);
	transition: width var(--gb-transition), background var(--gb-transition),
		border-color var(--gb-transition), box-shadow var(--gb-transition);
}

.gb-search__field:focus-within {
	width: 320px;
	background: var(--gb-search-bg-focus);
	border-color: var(--gb-search-border-focus);
	box-shadow: var(--gb-search-shadow-focus);
}

.gb-search__icon {
	width: 16px;
	height: 16px;
	color: #6b7280;
	flex-shrink: 0;
	margin-right: 8px;
	transition: color var(--gb-transition);
}

.gb-search__field:focus-within .gb-search__icon {
	color: var(--wp--preset--color--accent);
}

.gb-search__input {
	flex: 1;
	min-width: 0;
	height: 100%;
	border: 0;
	outline: 0;
	background: transparent;
	font: inherit;
	font-size: 14px;
	color: var(--wp--preset--color--foreground);
}

.gb-search__input::placeholder {
	color: #8a8a8e;
	font-weight: 400;
}

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

.gb-search__clear {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	background: transparent;
	border: 0;
	color: #8a8a8e;
	cursor: pointer;
	padding: 0;
	margin-left: 6px;
	border-radius: 50%;
	transition: color var(--gb-transition);
}

.gb-search__clear:hover {
	color: var(--wp--preset--color--foreground);
}

.gb-search__clear .gb-icon {
	width: 18px;
	height: 18px;
}

.gb-search__clear.is-hidden {
	display: none;
}

/* Dropdown résultats */
.gb-search__results {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	width: 380px;
	max-height: 460px;
	overflow-y: auto;
	background: #ffffff;
	border: 1px solid var(--gb-search-border);
	border-radius: 14px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
	padding: 6px;
	z-index: 60;
}

.gb-search__results[hidden] {
	display: none;
}

.gb-search__result {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	border-radius: 10px;
	cursor: pointer;
	color: var(--wp--preset--color--foreground);
	text-decoration: none;
	transition: background var(--gb-transition);
}

.gb-search__result:hover,
.gb-search__result.is-active {
	background: var(--gb-search-bg);
}

.gb-search__result-thumb {
	width: 44px;
	height: 44px;
	border-radius: 8px;
	object-fit: cover;
	background: var(--gb-search-bg);
	flex-shrink: 0;
}

.gb-search__result-meta {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.gb-search__result-name {
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--foreground);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gb-search__result-cat {
	font-size: 11px;
	color: #6b7280;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.gb-search__result-price {
	font-size: 13px;
	font-weight: 500;
	color: var(--wp--preset--color--accent);
	white-space: nowrap;
	margin-left: 8px;
	flex-shrink: 0;
}

.gb-search__result-price .gb-price-prefix {
	font-size: 9px;
	margin-right: 2px;
	letter-spacing: 0.04em;
}

.gb-search__results-empty,
.gb-search__results-loading {
	padding: 18px 14px;
	font-size: 13px;
	color: #6b7280;
	text-align: center;
}

.gb-search__results-loading::before {
	content: "";
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-right: 8px;
	border: 1.5px solid var(--wp--preset--color--accent);
	border-top-color: transparent;
	border-radius: 50%;
	animation: gb-spin 0.7s linear infinite;
	vertical-align: -2px;
}

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

.gb-search__results-footer {
	margin-top: 4px;
	padding: 10px 12px;
	border-top: 1px solid var(--gb-search-border);
	font-size: 12px;
	color: var(--wp--preset--color--accent);
	font-weight: 500;
	text-align: center;
	cursor: pointer;
	border-radius: 0 0 10px 10px;
	transition: background var(--gb-transition);
	display: block;
	text-decoration: none;
}

.gb-search__results-footer:hover {
	background: var(--gb-search-bg);
}

/* ============================================
   Mobile (< 768px) : icon-only -> overlay full
   ============================================ */
@media (max-width: 768px) {
	.gb-search__mobile-toggle {
		display: inline-flex;
	}

	.gb-search__panel {
		display: none;
	}

	.gb-search.is-open .gb-search__panel {
		display: flex;
		position: fixed;
		inset: 0;
		z-index: 100;
		background: #ffffff;
		padding: 14px 16px;
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}

	.gb-search.is-open .gb-search__close {
		display: inline-flex;
		position: absolute;
		top: 10px;
		right: 10px;
	}

	.gb-search.is-open .gb-search__field {
		width: 100%;
		height: 44px;
		margin-top: 48px;
		background: var(--gb-search-bg);
	}

	.gb-search.is-open .gb-search__field:focus-within {
		width: 100%;
	}

	.gb-search.is-open .gb-search__results {
		position: static;
		width: 100%;
		max-height: none;
		flex: 1;
		box-shadow: none;
		border: 0;
		padding: 0;
	}

	body.gb-search-open {
		overflow: hidden;
	}
}

/* ============================================
   Page Boutiques — hero + map Leaflet + 5 cards
   ============================================ */

.gb-boutiques {
	display: flex;
	flex-direction: column;
	gap: 48px;
	padding: 64px 0 96px;
}

.gb-boutiques__hero {
	text-align: center;
	max-width: 720px;
	margin: 0 auto;
	padding: 0 24px;
}

.gb-boutiques__eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin-bottom: 12px;
}

.gb-boutiques__title {
	font-size: clamp(32px, 4vw, 56px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.02em;
	margin: 0 0 16px;
	color: var(--wp--preset--color--foreground);
}

.gb-boutiques__intro {
	font-size: 16px;
	line-height: 1.6;
	color: #5a5a5a;
	margin: 0;
}

/* Carte */
.gb-boutiques__map {
	width: 100%;
	height: 420px;
	border-radius: 16px;
	overflow: hidden;
	background: #eef0e8;
	border: 1px solid var(--wp--preset--color--subtle);
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.05);
}

.gb-boutiques__map .leaflet-container {
	font-family: var(--wp--preset--font-family--sans);
	background: #f5f5f7;
}

.gb-boutiques__map .leaflet-popup-content-wrapper {
	border-radius: 10px;
	padding: 4px 8px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.gb-boutiques__map .leaflet-popup-content {
	margin: 10px 12px;
	font-size: 13px;
	line-height: 1.5;
}

.gb-boutiques__map .leaflet-popup-content strong {
	display: block;
	font-size: 14px;
	margin-bottom: 4px;
	color: var(--wp--preset--color--accent);
}

.gb-boutiques__map .leaflet-popup-content a {
	color: var(--wp--preset--color--accent);
	font-weight: 500;
	text-decoration: none;
}

.gb-boutiques__map .leaflet-popup-tip {
	box-shadow: none;
}

/* Custom green pin marker */
.gb-leaflet-pin {
	background: transparent !important;
	border: none !important;
}
.gb-leaflet-pin svg {
	width: 36px;
	height: 36px;
	color: var(--wp--preset--color--accent);
	filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.25));
}

/* Grid des 4 cards : 4 cols desktop, 2 cols tablette, 1 col mobile */
.gb-boutiques__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

@media (max-width: 1100px) {
	.gb-boutiques__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.gb-boutique-card {
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 16px;
	overflow: hidden;
	transition: transform var(--gb-transition), box-shadow var(--gb-transition);
	scroll-margin-top: 100px; /* offset pour les ancres avec header sticky */
}

.gb-boutique-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--wp--preset--shadow--lift);
}

.gb-boutique-card:target {
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 0 0 3px rgba(31, 74, 31, 0.12);
}

.gb-boutique-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	background:
		radial-gradient(120% 80% at 100% 0%, rgba(31, 74, 31, 0.18) 0%, transparent 60%),
		linear-gradient(135deg, rgba(31, 74, 31, 0.10), rgba(31, 74, 31, 0.04));
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--accent);
	border-bottom: 1px solid var(--wp--preset--color--subtle);
	overflow: hidden;
	isolation: isolate;
}

.gb-boutique-card__photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
	z-index: 0;
}

.gb-boutique-card:hover .gb-boutique-card__photo {
	transform: scale(1.05);
}

.gb-boutique-card__photo-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.35) 100%);
	z-index: 1;
	pointer-events: none;
}

/* Fallback : pattern + icône quand pas de photo */
.gb-boutique-card:not(.has-photo) .gb-boutique-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		repeating-linear-gradient(
			45deg,
			transparent 0 18px,
			rgba(31, 74, 31, 0.04) 18px 19px
		);
	pointer-events: none;
	z-index: 0;
}

.gb-boutique-card__icon {
	width: 52px;
	height: 52px;
	opacity: 0.55;
	position: relative;
	z-index: 1;
	transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1), opacity 400ms ease;
}

.gb-boutique-card:hover .gb-boutique-card__icon {
	transform: scale(1.06);
	opacity: 0.72;
}

.gb-boutique-card__media-zip {
	position: absolute;
	top: 12px;
	right: 16px;
	font-family: var(--wp--preset--font-family--display, inherit);
	font-size: 38px;
	line-height: 1;
	font-weight: 700;
	color: rgba(255, 255, 255, 0.85);
	letter-spacing: -0.02em;
	z-index: 2;
	user-select: none;
	pointer-events: none;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}

.gb-boutique-card:not(.has-photo) .gb-boutique-card__media-zip {
	color: rgba(31, 74, 31, 0.16);
	text-shadow: none;
}

.gb-boutique-card__media-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	display: inline-flex;
	align-items: center;
	padding: 5px 11px;
	background: rgba(255, 255, 255, 0.95);
	color: var(--wp--preset--color--accent);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-radius: 999px;
	z-index: 2;
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.gb-boutique-card__body {
	padding: 22px 22px 20px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	flex: 1;
}

.gb-boutique-card__header {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
}

.gb-boutique-card__title-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.gb-boutique-card__name {
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--foreground);
	margin: 0;
	line-height: 1.15;
}

.gb-boutique-card__city-meta {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #6b7280;
}

.gb-boutique-card__badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	background: var(--wp--preset--color--accent);
	color: #ffffff;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border-radius: 999px;
	white-space: nowrap;
	flex-shrink: 0;
}

/* Rating pill (star + score + count) — lien vers fiche Google */
.gb-boutique-card__rating {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 9px 4px 7px;
	background: rgba(31, 74, 31, 0.07);
	border: 1px solid rgba(31, 74, 31, 0.20);
	border-radius: 999px;
	text-decoration: none;
	color: #1f4a1f;
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
	flex-shrink: 0;
	transition: background var(--gb-transition), border-color var(--gb-transition), transform var(--gb-transition);
}

.gb-boutique-card__rating:hover {
	background: rgba(31, 74, 31, 0.13);
	border-color: rgba(31, 74, 31, 0.38);
	transform: translateY(-1px);
}

.gb-boutique-card__rating-star {
	width: 13px;
	height: 13px;
	color: #f5b301;
	flex-shrink: 0;
}

.gb-boutique-card__rating-score {
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.01em;
}

.gb-boutique-card__rating-count {
	font-size: 11px;
	font-weight: 500;
	color: rgba(31, 74, 31, 0.62);
	font-variant-numeric: tabular-nums;
}

/* ==========================================================================
   Status pill (Ouvert / Ferme à Xh / Ouvre à Xh / Fermé)
   ========================================================================== */
.gb-boutique-card__status {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 500;
	width: fit-content;
	max-width: 100%;
	background: rgba(107, 114, 128, 0.06);
	border: 1px solid rgba(107, 114, 128, 0.14);
	color: #4a4a4a;
	transition: background 250ms ease, border-color 250ms ease;
}

.gb-boutique-card__status-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #9ca3af;
	flex-shrink: 0;
	position: relative;
}

.gb-boutique-card__status-label {
	font-weight: 600;
}

.gb-boutique-card__status-sep {
	color: rgba(107, 114, 128, 0.5);
	margin: 0 -2px;
}

.gb-boutique-card__status-today {
	color: #6b7280;
	font-weight: 400;
	font-size: 12px;
	white-space: nowrap;
}

/* État : Ouvert — vert + pulse */
.gb-boutique-card__status--open {
	background: rgba(31, 74, 31, 0.08);
	border-color: rgba(31, 74, 31, 0.22);
	color: var(--wp--preset--color--accent);
}
.gb-boutique-card__status--open .gb-boutique-card__status-dot {
	background: #16a34a;
	box-shadow: 0 0 0 0 rgba(22, 163, 74, 0.4);
	animation: gb-status-pulse 2.2s ease-in-out infinite;
}
.gb-boutique-card__status--open .gb-boutique-card__status-today {
	color: rgba(31, 74, 31, 0.7);
}

@keyframes gb-status-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(22, 163, 74, 0.45); }
	50%      { box-shadow: 0 0 0 6px rgba(22, 163, 74, 0); }
}

@media (prefers-reduced-motion: reduce) {
	.gb-boutique-card__status--open .gb-boutique-card__status-dot {
		animation: none;
	}
}

/* État : Ferme bientôt — ambre */
.gb-boutique-card__status--closing_soon {
	background: rgba(217, 119, 6, 0.10);
	border-color: rgba(217, 119, 6, 0.28);
	color: #92400e;
}
.gb-boutique-card__status--closing_soon .gb-boutique-card__status-dot {
	background: #d97706;
}
.gb-boutique-card__status--closing_soon .gb-boutique-card__status-today {
	color: rgba(146, 64, 14, 0.7);
}

/* État : Ouvre plus tard — bleu doux */
.gb-boutique-card__status--before_open {
	background: rgba(29, 78, 216, 0.07);
	border-color: rgba(29, 78, 216, 0.22);
	color: #1e3a8a;
}
.gb-boutique-card__status--before_open .gb-boutique-card__status-dot {
	background: #2563eb;
}
.gb-boutique-card__status--before_open .gb-boutique-card__status-today {
	color: rgba(30, 58, 138, 0.65);
}

/* État : Fermé pour aujourd'hui — gris foncé */
.gb-boutique-card__status--after_close {
	background: rgba(75, 85, 99, 0.08);
	border-color: rgba(75, 85, 99, 0.20);
	color: #4b5563;
}
.gb-boutique-card__status--after_close .gb-boutique-card__status-dot {
	background: #6b7280;
}

/* État : Fermé aujourd'hui — neutre muted */
.gb-boutique-card__status--closed {
	background: rgba(107, 114, 128, 0.05);
	border-color: rgba(107, 114, 128, 0.15);
	color: #6b7280;
}
.gb-boutique-card__status--closed .gb-boutique-card__status-dot {
	background: #9ca3af;
}

.gb-boutique-card__badge--soon {
	background: transparent;
	color: var(--wp--preset--color--accent);
	border: 1px solid rgba(31, 74, 31, 0.30);
}

/* Card "Coming soon" — visuel distinct (ghost) sans casser le layout */
.gb-boutique-card--coming-soon {
	background: transparent;
	border-style: dashed;
	border-color: rgba(31, 74, 31, 0.25);
}

.gb-boutique-card--coming-soon:hover {
	transform: none;
	box-shadow: none;
	border-color: rgba(31, 74, 31, 0.50);
}

.gb-boutique-card--coming-soon .gb-boutique-card__media {
	background: linear-gradient(135deg, rgba(31, 74, 31, 0.04), rgba(31, 74, 31, 0.01));
	border-bottom-color: rgba(31, 74, 31, 0.12);
}

.gb-boutique-card--coming-soon .gb-boutique-card__icon {
	opacity: 0.45;
	animation: gb-soon-pulse 2.4s ease-in-out infinite;
}

@keyframes gb-soon-pulse {
	0%, 100% { opacity: 0.45; transform: scale(1); }
	50%      { opacity: 0.65; transform: scale(1.04); }
}

@media (prefers-reduced-motion: reduce) {
	.gb-boutique-card--coming-soon .gb-boutique-card__icon {
		animation: none;
	}
}

.gb-boutique-card--coming-soon .gb-boutique-card__name {
	color: #6b7280;
}

.gb-boutique-card__teaser {
	font-size: 14px;
	line-height: 1.55;
	color: #6b7280;
	margin: 0;
	flex: 1;
}

.gb-boutique-card__address,
.gb-boutique-card__phone {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-style: normal;
	font-size: 14px;
	line-height: 1.5;
	color: #4a4a4a;
}

.gb-boutique-card__address svg,
.gb-boutique-card__phone svg {
	width: 16px;
	height: 16px;
	color: var(--wp--preset--color--accent);
	flex-shrink: 0;
	margin-top: 2px;
}

.gb-boutique-card__phone a {
	color: inherit;
	text-decoration: none;
	font-weight: 500;
	transition: color var(--gb-transition);
}

.gb-boutique-card__phone a:hover {
	color: var(--wp--preset--color--accent);
}

/* Horaires en accordéon */
.gb-boutique-card__hours {
	border-top: 1px solid var(--wp--preset--color--subtle);
	padding-top: 12px;
	margin-top: 2px;
}

.gb-boutique-card__hours summary {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 500;
	color: var(--wp--preset--color--accent);
	cursor: pointer;
	list-style: none;
	user-select: none;
}

.gb-boutique-card__hours summary::-webkit-details-marker {
	display: none;
}

.gb-boutique-card__hours summary svg {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}

.gb-boutique-card__hours summary > span:not(.gb-boutique-card__chevron) {
	flex: 1;
}

.gb-boutique-card__chevron {
	width: 14px !important;
	height: 14px !important;
	transition: transform var(--gb-transition);
}

.gb-boutique-card__hours[open] .gb-boutique-card__chevron {
	transform: rotate(180deg);
}

.gb-boutique-card__hours-list {
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.gb-boutique-card__hours-list li {
	display: flex;
	justify-content: space-between;
	font-size: 13px;
	color: #4a4a4a;
	padding: 5px 8px;
	border-radius: 6px;
	transition: background var(--gb-transition);
}

.gb-boutique-card__hours-list li.is-closed {
	color: #999;
}

.gb-boutique-card__hours-list li.is-closed .gb-boutique-card__time {
	font-style: italic;
}

.gb-boutique-card__hours-list li.is-today {
	background: rgba(31, 74, 31, 0.06);
	color: var(--wp--preset--color--accent);
	font-weight: 600;
}

.gb-boutique-card__hours-list li.is-today.is-closed {
	color: #7a7a7a;
	background: rgba(107, 114, 128, 0.06);
}

.gb-boutique-card__day {
	font-weight: 500;
}

/* Boutons d'action */
.gb-boutique-card__actions {
	display: flex;
	gap: 8px;
	margin-top: auto;
	padding-top: 6px;
}

.gb-boutique-card__btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	flex: 1;
	min-width: 0;
	padding: 12px 14px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.005em;
	border-radius: 999px;
	text-decoration: none;
	transition: background 220ms cubic-bezier(0.22, 1, 0.36, 1),
		color 220ms ease,
		border-color 220ms ease,
		transform 280ms cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 280ms cubic-bezier(0.22, 1, 0.36, 1);
	border: 1px solid transparent;
	will-change: transform;
	white-space: nowrap;
	overflow: hidden;
}

.gb-boutique-card__btn > span {
	white-space: nowrap;
	line-height: 1;
}

.gb-boutique-card__btn-icon {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	transition: transform 320ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

.gb-boutique-card__btn-arrow {
	width: 13px;
	height: 13px;
	flex-shrink: 0;
	opacity: 0;
	transform: translateX(-8px);
	transition: opacity 220ms ease, transform 280ms cubic-bezier(0.22, 1, 0.36, 1);
	margin-left: -4px;
}

.gb-boutique-card__btn:hover .gb-boutique-card__btn-arrow {
	opacity: 1;
	transform: translateX(0);
	margin-left: 0;
}

/* === Primary (Itinéraire — pin Google Maps blanc sur vert Greenbox) === */
.gb-boutique-card__btn--primary {
	background: var(--wp--preset--color--accent);
	color: #ffffff;
	box-shadow: 0 1px 2px rgba(31, 74, 31, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.gb-boutique-card__btn--primary::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		120deg,
		transparent 0%,
		transparent 35%,
		rgba(255, 255, 255, 0.18) 50%,
		transparent 65%,
		transparent 100%
	);
	transform: translateX(-100%);
	transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
	pointer-events: none;
}

.gb-boutique-card__btn--primary:hover {
	background: #163516;
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(31, 74, 31, 0.26), inset 0 1px 0 rgba(255, 255, 255, 0.10);
}

.gb-boutique-card__btn--primary:hover::before {
	transform: translateX(100%);
}

.gb-boutique-card__btn--primary:hover .gb-boutique-card__btn-icon {
	transform: translateY(-2px) scale(1.08);
}

.gb-boutique-card__btn--primary:active {
	transform: translateY(0);
	box-shadow: 0 1px 2px rgba(31, 74, 31, 0.15);
}

/* === Ghost (Fiche Google — G 4-couleurs authentique) === */
.gb-boutique-card__btn--ghost {
	background: #ffffff;
	color: #3c4043;
	border-color: rgba(60, 64, 67, 0.18);
	box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08);
}

.gb-boutique-card__btn--ghost:hover {
	background: #f8f9fa;
	border-color: rgba(60, 64, 67, 0.30);
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(60, 64, 67, 0.14);
}

.gb-boutique-card__btn--ghost:hover .gb-boutique-card__btn-icon--google-g {
	transform: rotate(-8deg) scale(1.08);
}

.gb-boutique-card__btn--ghost:active {
	transform: translateY(0);
	box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08);
}

/* G logo Google 4-couleurs : protéger les fills explicites */
.gb-boutique-card__btn-icon--google-g {
	width: 16px;
	height: 16px;
}

/* Focus accessible */
.gb-boutique-card__btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.gb-boutique-card__btn,
	.gb-boutique-card__btn-icon,
	.gb-boutique-card__btn-arrow,
	.gb-boutique-card__btn--primary::before {
		transition: none;
		animation: none;
	}
	.gb-boutique-card__btn:hover {
		transform: none;
	}
}

/* ============================================
   Responsive
   ============================================ */
@media (max-width: 768px) {
	.gb-boutiques {
		gap: 32px;
		padding: 40px 0 64px;
	}
	.gb-boutiques__map {
		height: 320px;
		border-radius: 12px;
	}
	.gb-boutiques__grid {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 0 16px;
	}
	.gb-boutiques__hero {
		padding: 0 16px;
	}
}

@media (max-width: 480px) {
	.gb-boutique-card__media {
		aspect-ratio: 21 / 9;
	}
	.gb-boutique-card__actions {
		flex-direction: column;
	}
}

/* ==========================================================================
   Blog "Actus CBD" — index (home.html) + single (single.html)
   ========================================================================== */

/* --- Hero blog index --- */
.gb-blog-hero {
	text-align: left;
	border-bottom: 1px solid var(--wp--preset--color--subtle);
}
.gb-blog-hero__title {
	max-width: 14ch;
}
.gb-blog-hero__lede {
	max-width: 56ch;
}

/* --- Grid articles (cards) --- */
.gb-blog-list {
	gap: 40px 28px;
}
.gb-blog-card {
	display: flex;
	flex-direction: column;
	gap: 12px;
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.gb-blog-card:hover {
	transform: translateY(-3px);
}
.gb-blog-card__media,
.gb-blog-card .wp-block-post-featured-image {
	display: block;
	margin: 0;
	border-radius: 12px;
	overflow: hidden;
	background: #f5f5f7;
	aspect-ratio: 16 / 9;
}
.gb-blog-card__media img,
.gb-blog-card .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.gb-blog-card:hover .gb-blog-card__media img,
.gb-blog-card:hover .wp-block-post-featured-image img {
	transform: scale(1.04);
}
.gb-blog-card__media-fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-size: 36px;
	color: var(--wp--preset--color--muted);
}
.gb-blog-card__category,
.gb-blog-card .wp-block-post-terms {
	color: var(--wp--preset--color--accent);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 4px 0 0;
}
.gb-blog-card__category a,
.gb-blog-card .wp-block-post-terms a {
	color: inherit;
	text-decoration: none;
}
.gb-blog-card__title,
.gb-blog-card .wp-block-post-title {
	margin: 0;
	font-size: clamp(1.15rem, 1.6vw, 1.4rem);
	line-height: 1.25;
	letter-spacing: -0.005em;
	font-weight: 600;
}
.gb-blog-card__title a,
.gb-blog-card .wp-block-post-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	transition: color 0.2s ease;
}
.gb-blog-card__title a:hover,
.gb-blog-card .wp-block-post-title a:hover {
	color: var(--wp--preset--color--accent);
}
.gb-blog-card__excerpt,
.gb-blog-card .wp-block-post-excerpt {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--wp--preset--color--muted);
}
.gb-blog-card__excerpt p,
.gb-blog-card .wp-block-post-excerpt p {
	margin: 0;
}
.gb-blog-card__date,
.gb-blog-card .wp-block-post-date {
	margin: auto 0 0;
	padding-top: 4px;
	font-size: 13px;
	color: var(--wp--preset--color--muted);
	letter-spacing: 0.01em;
}

/* --- Pagination --- */
.gb-blog-pagination {
	margin-top: 64px;
	gap: 8px;
}
.gb-blog-pagination .wp-block-query-pagination-numbers,
.gb-blog-pagination .wp-block-query-pagination-previous,
.gb-blog-pagination .wp-block-query-pagination-next {
	font-size: 14px;
}
.gb-blog-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 12px;
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 999px;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.gb-blog-pagination .page-numbers:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}
.gb-blog-pagination .page-numbers.current {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	color: #fff;
}

/* --- Article single — hero featured image --- */
.gb-article-hero {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	background: #f5f5f7;
}
.gb-article-hero .wp-block-post-featured-image {
	margin: 0;
	max-width: 1440px;
	margin-inline: auto;
	aspect-ratio: 21 / 9;
	overflow: hidden;
}
.gb-article-hero .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* --- Breadcrumbs --- */
.gb-breadcrumbs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 13px;
	color: var(--wp--preset--color--muted);
	letter-spacing: 0.01em;
}
.gb-breadcrumbs a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}
.gb-breadcrumbs a:hover {
	color: var(--wp--preset--color--accent);
}
.gb-breadcrumbs__sep {
	color: var(--wp--preset--color--subtle);
}

/* --- Article body --- */
.gb-article-cat {
	color: var(--wp--preset--color--accent);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	margin: 16px 0 0;
}
.gb-article-cat a {
	color: inherit;
	text-decoration: none;
}
.gb-article-title {
	margin: 0.4rem 0 0.6rem;
	color: var(--wp--preset--color--ink);
}
.gb-article-meta {
	color: var(--wp--preset--color--muted);
	font-size: 14px;
	margin-bottom: var(--wp--preset--spacing--lg);
}
.gb-article-meta__sep {
	color: var(--wp--preset--color--subtle);
	margin: 0 4px;
}
.gb-article-meta__reading {
	color: var(--wp--preset--color--muted);
}

/* --- Typography post-content --- */
.gb-article-body .wp-block-post-content {
	font-size: 17px;
	line-height: 1.75;
	color: #2a2a2c;
}
.gb-article-body .wp-block-post-content > * + * {
	margin-top: 1.4rem;
}
.gb-article-body .wp-block-post-content h2 {
	margin-top: 2.6rem;
	margin-bottom: 0.8rem;
	font-size: clamp(1.4rem, 2.4vw, 1.85rem);
	line-height: 1.25;
	letter-spacing: -0.01em;
	font-weight: 700;
	color: var(--wp--preset--color--ink);
}
.gb-article-body .wp-block-post-content h3 {
	margin-top: 1.8rem;
	margin-bottom: 0.6rem;
	font-size: clamp(1.15rem, 1.7vw, 1.35rem);
	line-height: 1.3;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}
.gb-article-body .wp-block-post-content p {
	margin: 0;
}
.gb-article-body .wp-block-post-content ul,
.gb-article-body .wp-block-post-content ol {
	padding-left: 1.4rem;
}
.gb-article-body .wp-block-post-content ul li,
.gb-article-body .wp-block-post-content ol li {
	margin-bottom: 0.4rem;
}
.gb-article-body .wp-block-post-content blockquote {
	margin: 1.8rem 0;
	padding: 0.4rem 0 0.4rem 1.4rem;
	border-left: 3px solid var(--wp--preset--color--accent);
	font-size: 1.08em;
	font-style: italic;
	color: #3a3a3c;
}
.gb-article-body .wp-block-post-content a {
	color: var(--wp--preset--color--accent);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: opacity 0.2s ease;
}
.gb-article-body .wp-block-post-content a:hover {
	opacity: 0.7;
}
.gb-article-body .wp-block-post-content strong {
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}

/* --- Back link --- */
.gb-article-back {
	margin-top: 56px;
	padding-top: 32px;
	border-top: 1px solid var(--wp--preset--color--subtle);
	display: flex;
	justify-content: center;
}
.gb-back-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 24px;
	border: 1px solid var(--wp--preset--color--accent);
	border-radius: 999px;
	color: var(--wp--preset--color--accent);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.gb-back-link:hover {
	background: var(--wp--preset--color--accent);
	color: #fff;
	transform: translateY(-1px);
}

/* --- À lire aussi --- */
.gb-related-posts__title {
	margin: 0 0 24px;
	color: var(--wp--preset--color--ink);
}
.gb-related-posts__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
}
.gb-blog-card--related .gb-blog-card__media {
	aspect-ratio: 16 / 10;
}

/* --- Responsive blog --- */
@media (max-width: 1024px) {
	.gb-blog-list,
	.gb-related-posts__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 24px;
	}
}

@media (max-width: 640px) {
	.gb-blog-hero {
		padding-top: var(--wp--preset--spacing--lg) !important;
		padding-bottom: var(--wp--preset--spacing--lg) !important;
	}
	.gb-blog-list,
	.gb-related-posts__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.gb-article-hero .wp-block-post-featured-image {
		aspect-ratio: 16 / 10;
	}
	.gb-article-body .wp-block-post-content {
		font-size: 16px;
		line-height: 1.7;
	}
	.gb-related-posts {
		padding-top: var(--wp--preset--spacing--lg) !important;
		padding-bottom: var(--wp--preset--spacing--lg) !important;
	}
}

/* ==========================================================================
   .gb-actus-banner — bannière vidéo hero du blog Actus CBD
   ========================================================================== */

.gb-actus-banner {
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	aspect-ratio: 21 / 9;
	max-height: 640px;
	overflow: hidden;
	background: #f5f5f7;
}

.gb-actus-banner__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.gb-actus-banner__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0) 0%,
		rgba(0, 0, 0, 0) 35%,
		rgba(255, 255, 255, 0.55) 78%,
		rgba(255, 255, 255, 0.92) 100%
	);
	pointer-events: none;
}

.gb-actus-banner__content {
	position: absolute;
	left: clamp(20px, 5vw, 64px);
	right: clamp(20px, 5vw, 64px);
	bottom: clamp(24px, 4vw, 56px);
	z-index: 2;
	max-width: 720px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.gb-actus-banner__eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin-bottom: 4px;
	text-shadow: 0 1px 6px rgba(255, 255, 255, 0.7);
}

.gb-actus-banner__title {
	font-family: var(--wp--preset--font-family--display, inherit);
	font-size: clamp(2.2rem, 4.4vw, 3.8rem);
	line-height: 1.05;
	letter-spacing: -0.02em;
	font-weight: 700;
	color: var(--wp--preset--color--ink);
	margin: 0;
	text-shadow: 0 1px 12px rgba(255, 255, 255, 0.5);
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	flex-wrap: wrap;
}
.gb-actus-banner__leaf {
	display: inline-flex;
	align-items: center;
	color: var(--wp--preset--color--accent);
	width: 0.85em;
	height: 0.85em;
	flex-shrink: 0;
}
.gb-actus-banner__leaf svg {
	width: 100%;
	height: 100%;
	fill: currentColor;
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.12));
}

/* Page Actus (body.blog) : retirer la marge entre header et bannière */
body.blog main.wp-block-group {
	margin-top: 0 !important;
}

.gb-actus-banner__lede {
	font-size: clamp(0.95rem, 1.4vw, 1.1rem);
	line-height: 1.55;
	color: #2a2a2c;
	margin: 6px 0 16px;
	max-width: 56ch;
	text-shadow: 0 1px 6px rgba(255, 255, 255, 0.55);
}

.gb-actus-banner__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	align-self: flex-start;
	padding: 12px 22px;
	background: var(--wp--preset--color--accent);
	color: #fff;
	border: 1px solid var(--wp--preset--color--accent);
	border-radius: 999px;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1), background 0.25s ease, box-shadow 0.25s ease;
	box-shadow: 0 6px 20px rgba(31, 74, 31, 0.18);
}

.gb-actus-banner__cta:hover {
	transform: translateY(-1px);
	background: #173816;
	box-shadow: 0 10px 26px rgba(31, 74, 31, 0.28);
}

.gb-actus-banner__cta svg {
	transition: transform 0.25s ease;
}

.gb-actus-banner__cta:hover svg {
	transform: translateY(2px);
}

/* Anchor smooth scroll target */
.gb-anchor {
	height: 0;
	scroll-margin-top: 80px;
}

/* Responsive — moins étiré + texte plus serré sur mobile */
@media (max-width: 768px) {
	.gb-actus-banner {
		aspect-ratio: 16 / 11;
		max-height: none;
	}
	.gb-actus-banner__overlay {
		background: linear-gradient(
			180deg,
			rgba(0, 0, 0, 0) 0%,
			rgba(0, 0, 0, 0) 25%,
			rgba(255, 255, 255, 0.7) 70%,
			rgba(255, 255, 255, 0.96) 100%
		);
	}
}

@media (max-width: 480px) {
	.gb-actus-banner {
		aspect-ratio: 4 / 5;
	}
	.gb-actus-banner__content {
		gap: 4px;
	}
	.gb-actus-banner__lede {
		margin-bottom: 12px;
	}
}

/* prefers-reduced-motion : on n'autoplay pas la vidéo, fallback sur poster */
@media (prefers-reduced-motion: reduce) {
	.gb-actus-banner__video {
		display: none;
	}
	.gb-actus-banner {
		background-image: var(--gb-actus-poster, none);
		background-size: cover;
		background-position: center;
	}
}

/* =====================================================
   FAQ — page /faq/ (gb-faq) + bloc fiche produit (gb-product-faq)
   ===================================================== */

/* Masque le H1 WP par défaut sur /faq/ : le hero custom porte le titre. */
.page-id-379 .wp-block-post-title,
.page-id-379 main > .wp-block-group > .wp-block-post-title,
body[class*="page-id-"] .gb-faq + * .wp-block-post-title {
  display: none !important;
}

.page-id-379 main {
  padding-top: 0 !important;
}

.gb-faq {
  padding: clamp(40px, 6vw, 80px) 0 clamp(60px, 8vw, 120px);
  background: #fafaf9;
}

.gb-faq__container {
  max-width: 920px;
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 40px);
}

/* Hero */
.gb-faq__hero {
  text-align: center;
  margin-bottom: clamp(36px, 5vw, 56px);
}

.gb-faq__eyebrow {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--accent, #1f4a1f);
  text-transform: uppercase;
  margin-bottom: 14px;
}

.gb-faq__title {
  font-size: clamp(32px, 5vw, 52px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
  color: #1d1d1f;
}

.gb-faq__lede {
  font-size: clamp(15px, 1.6vw, 17px);
  line-height: 1.6;
  color: #5a5a5a;
  max-width: 620px;
  margin: 0 auto 32px;
}

.gb-faq__lede a {
  color: var(--accent, #1f4a1f);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

/* Search bar */
.gb-faq__search {
  position: relative;
  max-width: 560px;
  margin: 0 auto;
}

.gb-faq__search-icon {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  color: #888;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.gb-faq__search-icon svg {
  width: 100%;
  height: 100%;
}

.gb-faq__search-input {
  width: 100%;
  padding: 14px 50px 14px 50px;
  font-size: 15px;
  border: 1px solid #e5e5e7;
  border-radius: 999px;
  background: #fff;
  color: #1d1d1f;
  font-family: inherit;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
  -webkit-appearance: none;
  appearance: none;
}

.gb-faq__search-input:focus {
  outline: none;
  border-color: var(--accent, #1f4a1f);
  box-shadow: 0 0 0 3px rgba(31, 74, 31, 0.12);
}

.gb-faq__search-input::placeholder {
  color: #999;
}

.gb-faq__search-clear {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f0f0f2;
  border: none;
  border-radius: 50%;
  color: #5a5a5a;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  font-family: inherit;
  transition: background 0.15s ease, color 0.15s ease;
}

.gb-faq__search-clear:hover {
  background: var(--accent, #1f4a1f);
  color: #fff;
}

/* Catégories nav (chips) */
.gb-faq__cat-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: clamp(40px, 5vw, 56px);
}

.gb-faq__cat-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: #fff;
  border: 1px solid #e5e5e7;
  border-radius: 999px;
  color: #1d1d1f;
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: border-color 0.18s ease, transform 0.18s ease, background 0.18s ease;
}

.gb-faq__cat-chip:hover {
  border-color: var(--accent, #1f4a1f);
  transform: translateY(-1px);
  background: rgba(31, 74, 31, 0.04);
}

.gb-faq__cat-chip-icon {
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent, #1f4a1f);
}

.gb-faq__cat-chip-icon svg {
  width: 100%;
  height: 100%;
}

.gb-faq__cat-chip-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  background: rgba(31, 74, 31, 0.08);
  color: var(--accent, #1f4a1f);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
}

/* Body : catégories */
.gb-faq__cat {
  margin-bottom: clamp(40px, 5vw, 56px);
  scroll-margin-top: 100px;
}

.gb-faq__cat-header {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 0 0 20px;
  border-bottom: 1px solid #e5e5e7;
  margin-bottom: 16px;
}

.gb-faq__cat-icon {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(31, 74, 31, 0.08);
  border-radius: 10px;
  color: var(--accent, #1f4a1f);
  flex-shrink: 0;
}

.gb-faq__cat-icon svg {
  width: 20px;
  height: 20px;
}

.gb-faq__cat-text {
  flex: 1;
}

.gb-faq__cat-title {
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 600;
  letter-spacing: -0.01em;
  margin: 0 0 4px;
  color: #1d1d1f;
}

.gb-faq__cat-intro {
  font-size: 14px;
  line-height: 1.5;
  color: #5a5a5a;
  margin: 0;
}

/* Liste questions (accordéons) */
.gb-faq__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.gb-faq__item {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid #ececee;
}

.gb-faq__item:last-child {
  border-bottom: none;
}

.gb-faq__item.is-hidden {
  display: none;
}

.gb-faq__details {
  padding: 0;
}

.gb-faq__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 4px;
  cursor: pointer;
  list-style: none;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.45;
  color: #1d1d1f;
  transition: color 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

.gb-faq__summary::-webkit-details-marker {
  display: none;
}

.gb-faq__summary:hover {
  color: var(--accent, #1f4a1f);
}

.gb-faq__summary:focus-visible {
  outline: 2px solid var(--accent, #1f4a1f);
  outline-offset: 4px;
  border-radius: 6px;
}

.gb-faq__q {
  flex: 1;
  margin: 0;
}

.gb-faq__chevron {
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  flex-shrink: 0;
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), color 0.18s ease, opacity 0.18s ease;
}

.gb-faq__chevron svg {
  width: 16px;
  height: 16px;
}

.gb-faq__details[open] .gb-faq__chevron {
  transform: rotate(180deg);
  color: var(--accent, #1f4a1f);
}

/* Variante cannabis : icône feuille à la place du chevron, couleur accent par défaut */
.gb-faq__chevron--cannabis {
  width: 22px;
  height: 22px;
  color: var(--accent, #1f4a1f);
  opacity: 0.55;
}

.gb-faq__chevron--cannabis svg {
  width: 22px;
  height: 22px;
  display: block;
}

.gb-faq__summary:hover .gb-faq__chevron--cannabis {
  opacity: 1;
}

.gb-faq__details[open] .gb-faq__chevron--cannabis {
  opacity: 1;
  color: var(--accent, #1f4a1f);
  /* Rotation 180° comme le chevron + léger scale pour effet "fleur qui s'ouvre" */
  transform: rotate(180deg) scale(1.05);
}

.gb-faq__a {
  padding: 0 4px 22px 4px;
  font-size: 15px;
  line-height: 1.65;
  color: #4a4a4a;
  animation: gbFaqReveal 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.gb-faq__a > *:first-child {
  margin-top: 0;
}

.gb-faq__a > *:last-child {
  margin-bottom: 0;
}

.gb-faq__a strong {
  color: #1d1d1f;
  font-weight: 600;
}

.gb-faq__a a {
  color: var(--accent, #1f4a1f);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.gb-faq__a a:hover {
  text-decoration-thickness: 2px;
}

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

@media (prefers-reduced-motion: reduce) {
  .gb-faq__chevron,
  .gb-faq__a {
    animation: none;
    transition: none;
  }
}

/* Highlight match */
.gb-faq__match {
  background: rgba(31, 74, 31, 0.16);
  border-radius: 2px;
  padding: 0 1px;
}

/* Empty state */
.gb-faq__empty {
  text-align: center;
  padding: 60px 20px;
  color: #5a5a5a;
}

.gb-faq__empty p {
  font-size: 16px;
  margin: 0 0 16px;
}

.gb-faq__empty-reset {
  display: inline-block;
  padding: 10px 22px;
  background: var(--accent, #1f4a1f);
  color: #fff;
  border: none;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
  transition: opacity 0.15s ease;
}

.gb-faq__empty-reset:hover {
  opacity: 0.9;
}

/* Cat masquée si toutes ses questions sont filtrées */
.gb-faq__cat.is-empty {
  display: none;
}

/* Contact CTA bottom */
.gb-faq__contact-cta {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  background: #fff;
  border: 1px solid #e5e5e7;
  border-radius: 16px;
  margin-top: clamp(40px, 5vw, 56px);
}

.gb-faq__contact-icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(31, 74, 31, 0.08);
  color: var(--accent, #1f4a1f);
  border-radius: 12px;
}

.gb-faq__contact-icon svg {
  width: 22px;
  height: 22px;
}

.gb-faq__contact-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.gb-faq__contact-text strong {
  font-size: 15px;
  color: #1d1d1f;
  font-weight: 600;
}

.gb-faq__contact-text span {
  font-size: 13px;
  color: #5a5a5a;
}

.gb-faq__contact-link {
  flex-shrink: 0;
  padding: 10px 22px;
  background: var(--accent, #1f4a1f);
  color: #fff;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.gb-faq__contact-link:hover {
  opacity: 0.95;
  transform: translateY(-1px);
}

@media (max-width: 600px) {
  .gb-faq__contact-cta {
    flex-direction: column;
    text-align: center;
    gap: 14px;
    padding: 24px 20px;
  }
}

/* =====================================================
   Bloc FAQ contextuel sur fiche produit (single product)
   ===================================================== */

.gb-product-faq {
  margin: clamp(40px, 5vw, 64px) 0;
  padding: clamp(24px, 3vw, 32px);
  background: #fafaf9;
  border: 1px solid #ececee;
  border-radius: 16px;
}

.gb-product-faq__header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 16px;
  border-bottom: 1px solid #ececee;
  margin-bottom: 8px;
}

.gb-product-faq__icon {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent, #1f4a1f);
}

.gb-product-faq__icon svg {
  width: 100%;
  height: 100%;
}

.gb-product-faq__title {
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 600;
  letter-spacing: -0.01em;
  margin: 0;
  color: #1d1d1f;
}

.gb-product-faq__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.gb-product-faq__item {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid #ececee;
}

.gb-product-faq__item:last-child {
  border-bottom: none;
}

.gb-product-faq__details .gb-faq__summary {
  font-size: 15px;
  padding: 16px 4px;
}

.gb-product-faq__details .gb-faq__a {
  font-size: 14px;
  padding-bottom: 18px;
}

.gb-product-faq__footer {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #ececee;
  text-align: center;
}

.gb-product-faq__more-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--accent, #1f4a1f);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: gap 0.18s ease;
}

.gb-product-faq__more-link svg {
  width: 14px;
  height: 14px;
  transform: rotate(-90deg);
  transition: transform 0.18s ease;
}

.gb-product-faq__more-link:hover {
  gap: 10px;
}

.gb-product-faq__more-link:hover svg {
  transform: rotate(-90deg) translateY(-2px);
}

@media (max-width: 768px) {
  .gb-faq__cat-header {
    gap: 12px;
    padding-bottom: 16px;
  }
  .gb-faq__summary {
    font-size: 15px;
    padding: 16px 4px;
  }
  .gb-faq__a {
    font-size: 14px;
  }
  .gb-faq__cat-nav {
    gap: 8px;
  }
  .gb-faq__cat-chip {
    padding: 8px 12px;
    font-size: 13px;
  }
}

@media (max-width: 480px) {
  .gb-faq__cat-chip-count {
    display: none;
  }
}

/* Fin section FAQ */

/* =====================================================
   Mini FAQ Home (gb-home-faq) — 6 questions conversion
   ===================================================== */

.gb-home-faq {
  padding: clamp(56px, 7vw, 96px) 0;
  background: #fff;
  border-top: 1px solid #ececee;
  border-bottom: 1px solid #ececee;
}

.gb-home-faq__container {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 40px);
}

.gb-home-faq__header {
  text-align: center;
  margin-bottom: clamp(36px, 5vw, 56px);
}

.gb-home-faq__eyebrow {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  color: var(--accent, #1f4a1f);
  text-transform: uppercase;
  margin-bottom: 14px;
}

.gb-home-faq__title {
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 14px;
  color: #1d1d1f;
}

.gb-home-faq__lede {
  font-size: clamp(15px, 1.5vw, 17px);
  line-height: 1.55;
  color: #5a5a5a;
  max-width: 560px;
  margin: 0 auto;
}

/* Grid 2 colonnes desktop, 1 colonne mobile */
.gb-home-faq__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 36px;
  margin-bottom: 36px;
}

@media (max-width: 768px) {
  .gb-home-faq__grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
}

.gb-home-faq__item {
  border-bottom: 1px solid #ececee;
}

/* Sur 2 colonnes : retire la bordure du dernier item de chaque colonne */
@media (min-width: 769px) {
  .gb-home-faq__item:nth-last-child(-n+2) {
    border-bottom: none;
  }
}

@media (max-width: 768px) {
  .gb-home-faq__item:last-child {
    border-bottom: none;
  }
}

.gb-home-faq__summary {
  font-size: 15px;
  padding: 18px 4px;
  font-weight: 500;
}

.gb-home-faq__a {
  font-size: 14px;
  line-height: 1.6;
  padding: 0 4px 20px 4px;
}

/* Footer CTA — pill plein vert avec icône cannabis (gauche) + flèche (droite) */
.gb-home-faq__footer {
  text-align: center;
  padding-top: 24px;
}

.gb-home-faq__more-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 26px 14px 22px;
  background: var(--accent, #1f4a1f);
  border: 1px solid var(--accent, #1f4a1f);
  border-radius: 999px;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.005em;
  text-decoration: none;
  box-shadow: 0 2px 6px rgba(31, 74, 31, 0.18);
  transition:
    transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.22s cubic-bezier(0.22, 1, 0.36, 1),
    background-color 0.18s ease,
    gap 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Feuille cannabis (gauche) */
.gb-home-faq__more-leaf {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  color: #fff;
  opacity: 0.95;
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.gb-home-faq__more-leaf svg {
  width: 22px;
  height: 22px;
  display: block;
}

.gb-home-faq__more-text {
  display: inline-block;
}

/* Flèche chevron (droite) — chevron rotated -90° = pointe à droite */
.gb-home-faq__more-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.85);
  transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1), color 0.18s ease;
}

.gb-home-faq__more-arrow svg {
  width: 14px;
  height: 14px;
  transform: rotate(-90deg);
  display: block;
}

/* Hover : lift + shadow plus profond + feuille tilt + flèche se déplace */
.gb-home-faq__more-link:hover {
  background: #173a17;
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(31, 74, 31, 0.32);
  gap: 14px;
}

.gb-home-faq__more-link:hover .gb-home-faq__more-leaf {
  transform: rotate(-12deg);
}

.gb-home-faq__more-link:hover .gb-home-faq__more-arrow {
  color: #fff;
  transform: translateX(3px);
}

.gb-home-faq__more-link:focus-visible {
  outline: 3px solid rgba(31, 74, 31, 0.35);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .gb-home-faq__more-link,
  .gb-home-faq__more-leaf,
  .gb-home-faq__more-arrow {
    transition: none;
  }
}

/* Fin section mini FAQ home */

/* ============================================================
   Greenbox brand tokens — declared on :root so they are available
   everywhere cards are rendered (home Nouveautés, home Fleurs/Résines/…,
   /shop/, /product-category/*, single-product related). Used to be
   scoped to .gb-nouveautes-section which broke the Effets chips / pills
   / yellow CTA on every other card grid.
   ============================================================ */
:root {
	--gb-lime:        #39b54a;
	--gb-lime-soft:   #2fa340;
	--gb-yellow:      #fbe23a;
	--gb-yellow-soft: #f5d100;
	--gb-red:         #e53935;
}

/* ============================================================
   Section "Nouveautés CBD" — home, après les collections (style cbd.fr)
   ============================================================ */
.gb-nouveautes-section {
	padding: clamp(20px, 2vw, 32px) 0 4px;
	background: var(--wp--preset--color--white, #fff);
}

.gb-nouveautes-inner {
	/* Pas de max-width : la rangée Nouveautés file bord-à-bord comme les carrousels
	   catégories (section alignfull → 100vw ; seul le padding md borde à 24px des bords
	   viewport). Sans ça la piste était plafonnée à 1440px et centrée au-delà de 1440. */
	padding: 0 var(--wp--preset--spacing--md, 24px);
}

/* Mobile : la piste Nouveautes n'est PAS enveloppee par .gb-carousel-wrap (le JS
   ne wrappe que les carrousels categories), donc la regle full-bleed generique ne
   l'atteint pas et elle restait rentree de 24px (padding .gb-nouveautes-inner).
   On lui donne le meme echappement bord-a-bord ; l'en-tete (titre/pills/lien) garde
   son inset 24px. Les cards conservent leur gutter interne (ul.products padding md). */
@media (max-width: 768px) {
	.gb-nouveautes-panel .gb-products-carousel {
		width: 100vw;
		max-width: 100vw;
		margin-left: calc(-1 * var(--wp--preset--spacing--md));
		margin-right: calc(-1 * var(--wp--preset--spacing--md));
	}
}

.gb-nouveautes-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: clamp(12px, 1.4vw, 20px);
}

.gb-nouveautes-title {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	font-size: clamp(34px, 4.5vw, 60px);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground, #1a1a1a);
}

.gb-nouveautes-title__icon {
	flex-shrink: 0;
	width: 0.85em;
	height: 0.85em;
	color: var(--gb-lime);
	transform: translateY(-0.04em);
	filter: drop-shadow(0 2px 4px rgba(57, 181, 74, 0.20));
}

.gb-nouveautes-title__text {
	display: inline-block;
}

.gb-nouveautes-link {
	flex-shrink: 0;
	align-self: flex-end;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 4px;
	padding: 4px 0;
	color: var(--gb-lime);
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: gap var(--gb-transition), border-color var(--gb-transition), color var(--gb-transition);
}

.gb-nouveautes-link:hover,
.gb-nouveautes-link:focus-visible {
	gap: 10px;
	border-bottom-color: var(--gb-lime);
	color: var(--gb-lime);
}

.gb-nouveautes-link svg {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}

/* Cards : positions cœur/badge, ombre marquée, image plus généreuse */
.gb-products-carousel ul.products > li.product {
	position: relative;
}

/* Badge NOUVEAUTÉ / PROMO WEB — top-RIGHT vert lime (style cbd.fr) */
.gb-products-carousel .gb-product-badge--new,
.gb-products-carousel .gb-product-badge--sale {
	position: absolute;
	top: 14px;
	right: 14px;
	left: auto;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-radius: 6px;
	pointer-events: none;
}
.gb-products-carousel .gb-product-badge--new {
	background: var(--gb-lime);
	color: #fff;
	box-shadow: 0 4px 10px rgba(57, 181, 74, 0.30);
}
.gb-products-carousel .gb-product-badge--sale {
	background: var(--gb-yellow);
	color: #1a1a1a;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.16);
}
/* Badge "X formats" — empilé SOUS le badge NOUVEAUTÉ (top-right stack). */
.gb-products-carousel .gb-product-badge--options {
	position: absolute;
	top: 46px;
	right: 14px;
	left: auto;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	padding: 5px 11px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-radius: 6px;
	background: var(--gb-yellow);
	color: #1a1a1a;
	box-shadow: 0 3px 8px rgba(0, 0, 0, 0.14);
	pointer-events: none;
}

/* Le carrousel doit déborder un peu côté gauche/droite pour cacher la
   3e/4e card et donner envie de scroller (pattern cbd.fr). */
.gb-nouveautes-carousel-wrap {
	position: relative;
}

@media (max-width: 768px) {
	.gb-nouveautes-header {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
		margin-bottom: 14px;
	}
	.gb-nouveautes-title {
		font-size: clamp(24px, 7vw, 32px);
	}
	.gb-nouveautes-link {
		font-size: 13px;
		padding: 4px 0;
	}
	.gb-product-badge--new {
		top: 14px;
		left: 14px;
		padding: 4px 8px;
		font-size: 10px;
	}
}

@media (max-width: 480px) {
	.gb-nouveautes-section {
		padding: 48px 0 32px;
	}
}


/* ---------- Toggle pills (Nouveautés / CBD en promo) ---------- */
.gb-nouveautes-toggle {
	display: inline-flex;
	gap: 4px;
	padding: 4px;
	margin: 0 auto clamp(20px, 2.4vw, 32px);
	background: var(--wp--preset--color--subtle, #ececec);
	border-radius: 999px;
}
.gb-nouveautes-section .gb-nouveautes-toggle {
	display: flex;
	width: fit-content;
}
.gb-nouveautes-toggle__pill {
	appearance: none;
	border: 0;
	cursor: pointer;
	padding: 10px 24px;
	background: transparent;
	color: var(--wp--preset--color--foreground, #1a1a1a);
	font-family: inherit;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	border-radius: 999px;
	transition: background var(--gb-transition), color var(--gb-transition), box-shadow var(--gb-transition);
}
.gb-nouveautes-toggle__pill:hover {
	color: var(--wp--preset--color--accent, #1f4a1f);
}
.gb-nouveautes-toggle__pill.is-active {
	background: var(--gb-lime);
	color: #fff;
	box-shadow: 0 4px 12px rgba(57, 181, 74, 0.28);
}
.gb-nouveautes-toggle__pill.is-active:hover {
	color: #fff;
}

/* ---------- Panels (les 2 carrousels) ---------- */
.gb-nouveautes-panel { display: none; }
.gb-nouveautes-panel.is-active { display: block; }

/* Etat vide quand pas de produits en promo */
.gb-nouveautes-empty {
	padding: clamp(40px, 5vw, 64px) 24px;
	text-align: center;
	color: var(--wp--preset--color--muted, #6a6a6a);
	background: var(--wp--preset--color--surface, #faf9f5);
	border: 1px dashed var(--wp--preset--color--subtle, #ececec);
	border-radius: 16px;
}
.gb-nouveautes-empty p { margin: 0; font-size: 17px; line-height: 1.55; }
.gb-nouveautes-empty span { display: inline-block; font-size: 14px; opacity: 0.78; margin-top: 6px; }

/* ---------- Badge "Promo" (variante du badge new) ---------- */
.gb-product-badge--sale {
	position: absolute;
	top: 18px;
	left: 18px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	padding: 5px 10px;
	background: #f4c63a;
	color: #1a1a1a;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-radius: 999px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
	pointer-events: none;
}

/* ---------- Bouton favoris (cœur) top-LEFT des cards (style cbd.fr) ---------- */
.gb-fav-btn {
	position: absolute;
	top: 14px;
	left: 14px;
	right: auto;
	z-index: 4;
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	background: #fff;
	border: 1px solid var(--wp--preset--color--subtle, #ececec);
	border-radius: 999px;
	cursor: pointer;
	color: #2a2a2a;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	transition: transform var(--gb-transition), color var(--gb-transition), background var(--gb-transition), box-shadow var(--gb-transition);
}
.gb-fav-btn:hover {
	transform: scale(1.08);
	color: var(--wp--preset--color--accent, #1f4a1f);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}
.gb-fav-btn__icon { width: 18px; height: 18px; transition: fill var(--gb-transition); }
.gb-fav-btn.is-active {
	color: #e53935;
	background: #fff;
	border-color: #e53935;
}
.gb-fav-btn.is-active .gb-fav-btn__icon {
	fill: #e53935;
	stroke: #e53935;
	animation: gb-fav-pop 0.28s cubic-bezier(0.22, 1.4, 0.36, 1) both;
}
@keyframes gb-fav-pop {
	0%   { transform: scale(0.6); }
	60%  { transform: scale(1.25); }
	100% { transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
	.gb-fav-btn.is-active .gb-fav-btn__icon { animation: none; }
}

/* ---------- Bandeau 4 USPs sous le carrousel ---------- */
.gb-nouveautes-usps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px 32px;
	list-style: none;
	margin: clamp(40px, 4vw, 64px) 0 0;
	padding: clamp(28px, 3vw, 40px) 0 0;
	border-top: 1px solid var(--wp--preset--color--subtle, #ececec);
}
.gb-nouveautes-usps li {
	display: flex;
	align-items: center;
	gap: 14px;
}
.gb-nouveautes-usps svg {
	flex-shrink: 0;
	width: 38px;
	height: 38px;
	color: var(--wp--preset--color--accent, #1f4a1f);
}
.gb-nouveautes-usps__title {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--wp--preset--color--foreground, #1a1a1a);
	letter-spacing: 0.01em;
}
.gb-nouveautes-usps__sub {
	margin: 4px 0 0;
	font-size: 13px;
	line-height: 1.45;
	color: var(--wp--preset--color--muted, #6a6a6a);
}

@media (max-width: 1024px) {
	.gb-nouveautes-usps { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
	.gb-nouveautes-usps { grid-template-columns: 1fr; gap: 18px; }
	.gb-nouveautes-toggle__pill { padding: 9px 18px; font-size: 11px; }
	.gb-fav-btn { width: 32px; height: 32px; top: 12px; right: 12px; }
	.gb-fav-btn__icon { width: 16px; height: 16px; }
}

@media (prefers-reduced-motion: reduce) {
	.gb-nouveautes-toggle__pill,
	.gb-fav-btn,
	.gb-nouveautes-link { transition: none; }
}

/* ---------- Force barre-de-vie en feuilles cannabis (mode leaves) ---------- */
.gb-force-badge--leaves {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 4px 8px 4px 6px;
	background: rgba(57, 181, 74, 0.06);
	border: 1px solid rgba(57, 181, 74, 0.18);
	border-radius: 999px;
}
.gb-force-badge--leaves .gb-force-badge__label {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #39b54a;
	opacity: 0.88;
}
.gb-force-badge--leaves .gb-force-badge__pellets {
	display: inline-flex;
	gap: 2px;
	align-items: center;
}
.gb-force-leaf {
	display: inline-flex;
	width: 16px;
	height: 16px;
	transition: transform var(--gb-transition), color var(--gb-transition);
}
.gb-force-leaf svg { width: 100%; height: 100%; display: block; }
.gb-force-leaf.is-on {
	color: #39b54a;
	filter: drop-shadow(0 1px 1px rgba(57, 181, 74, 0.22));
}
.gb-force-leaf.is-off {
	color: rgba(57, 181, 74, 0.22);
}
.gb-force-badge--leaves .gb-force-badge__count {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #39b54a;
	margin-left: 2px;
	font-variant-numeric: tabular-nums;
}

/* Variante fiche produit : plus grosse + un peu plus contrastée */
.gb-force-badge--single.gb-force-badge--leaves {
	gap: 10px;
	padding: 6px 12px 6px 10px;
	background: linear-gradient(135deg, rgba(57, 181, 74, 0.08) 0%, rgba(57, 181, 74, 0.14) 100%);
	border: 1px solid rgba(57, 181, 74, 0.24);
	box-shadow: 0 1px 3px rgba(31, 74, 31, 0.06);
}
.gb-force-badge--single .gb-force-badge__label {
	font-size: 12px;
	letter-spacing: 0.16em;
	color: #1f4a1f;
	opacity: 1;
}
.gb-force-badge--single .gb-force-badge__pellets { gap: 3px; }
.gb-force-badge--single .gb-force-leaf {
	width: 20px;
	height: 20px;
}
.gb-force-badge--single .gb-force-badge__count {
	font-size: 13px;
	color: #1f4a1f;
	margin-left: 4px;
}

/* Animation d'entrée au load fiche produit */
.single-product .gb-force-badge--single .gb-force-leaf.is-on {
	animation: gb-force-leaf-pop 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.single-product .gb-force-badge--single .gb-force-leaf:nth-child(1).is-on { animation-delay: 60ms; }
.single-product .gb-force-badge--single .gb-force-leaf:nth-child(2).is-on { animation-delay: 130ms; }
.single-product .gb-force-badge--single .gb-force-leaf:nth-child(3).is-on { animation-delay: 200ms; }
.single-product .gb-force-badge--single .gb-force-leaf:nth-child(4).is-on { animation-delay: 270ms; }
.single-product .gb-force-badge--single .gb-force-leaf:nth-child(5).is-on { animation-delay: 340ms; }

@media (max-width: 768px) {
	.gb-force-badge--single.gb-force-badge--leaves {
		padding: 5px 10px 5px 8px;
		gap: 8px;
	}
	.gb-force-badge--single .gb-force-leaf {
		width: 18px;
		height: 18px;
	}
	.gb-force-badge--single .gb-force-badge__label { font-size: 11px; }
	.gb-force-badge--single .gb-force-badge__count { font-size: 12px; }
}

/* Animation cascade au mount sur les cards visibles */
.gb-nouveautes-panel.is-active .gb-force-leaf.is-on {
	animation: gb-force-leaf-pop 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.gb-nouveautes-panel.is-active .gb-force-leaf:nth-child(1).is-on { animation-delay: 0ms; }
.gb-nouveautes-panel.is-active .gb-force-leaf:nth-child(2).is-on { animation-delay: 70ms; }
.gb-nouveautes-panel.is-active .gb-force-leaf:nth-child(3).is-on { animation-delay: 140ms; }
.gb-nouveautes-panel.is-active .gb-force-leaf:nth-child(4).is-on { animation-delay: 210ms; }
.gb-nouveautes-panel.is-active .gb-force-leaf:nth-child(5).is-on { animation-delay: 280ms; }
@keyframes gb-force-leaf-pop {
	from { transform: scale(0.4) rotate(-12deg); opacity: 0; }
	to   { transform: scale(1) rotate(0); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.gb-nouveautes-panel.is-active .gb-force-leaf.is-on { animation: none; }
}

@media (max-width: 540px) {
	.gb-force-leaf { width: 14px; height: 14px; }
	.gb-force-badge--leaves .gb-force-badge__label { font-size: 9px; }
}


/* =============================================================
   CARDS — style cbd.fr (scopé à .gb-products-carousel)
   Appliqué à tous les carousels WC du site : home (Nouveautés,
   Fleurs, Résines, Huiles, Accessoires) + grilles archive WC
   (shop, product-category) + related products single-product.
   Pour activer, rendre le shortcode [gb_products …] OU ajouter
   class="gb-products-carousel" au shortcode [products …].
   ============================================================= */
.gb-products-carousel ul.products {
	align-items: stretch;
}
.gb-products-carousel ul.products > li.product {
	flex: 0 0 250px !important;
	width: 250px !important;
	padding: 0 !important;
	background: #fff;
	border: 1px solid #ebebeb;
	border-radius: 14px;
	box-shadow: 0 1px 0 rgba(0,0,0,0.02);
	transition: transform var(--gb-transition), box-shadow var(--gb-transition);
	overflow: hidden;
	display: flex !important;
	flex-direction: column;
	height: auto;
	min-height: 390px;
	align-self: stretch !important;
}
/* Le lien WC qui wrappe image + titre + price etc. devient lui-même flex column
   pour pouvoir réserver l'espace de chaque zone de façon prévisible. */
.gb-products-carousel ul.products > li.product > a {
	display: flex !important;
	flex-direction: column;
	flex: 1 1 auto;
}
.gb-products-carousel ul.products > li.product:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 32px rgba(0,0,0,0.10);
}

/* Lien image+titre WC : on s'assure que tout reste cliquable. */
.gb-products-carousel ul.products > li.product > a {
	display: block;
	text-decoration: none;
	color: inherit;
}

/* Image plus généreuse, contain (pas cover) sur fond blanc.
   Flex-shrink: 0 pour qu'elle ne se compresse pas si la card devient haute. */
.gb-products-carousel ul.products > li.product img {
	width: 100% !important;
	aspect-ratio: 4 / 3.6 !important;
	object-fit: contain !important;
	background: #fff;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 14px 12px 4px !important;
	flex-shrink: 0;
	transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.gb-products-carousel ul.products > li.product:hover img {
	transform: scale(1.04);
}

/* Provenance — text plain (style cbd.fr), drapeau gauche + nom marque/pays
   mixed case. Hauteur FIXE pour que la card ne change pas selon présence drapeau. */
.gb-product-prov {
	display: flex;
	align-items: center;
	gap: 5px;
	margin: 2px 14px -2px;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: #555;
	line-height: 1;
	height: 12px;
	overflow: hidden;
}
.gb-product-prov__flag {
	display: inline-flex;
	align-items: center;
	height: 12px;
	font-size: 11px;
	line-height: 1;
	filter: drop-shadow(0 1px 1px rgba(0,0,0,0.10));
	flex-shrink: 0;
}
.gb-product-prov__label {
	display: inline-block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.gb-product-prov--empty {
	visibility: hidden;
}

/* Titre produit (bold, ellipsis 2 lignes, min-height pour aligner toutes les cards) */
.gb-products-carousel ul.products > li.product .woocommerce-loop-product__title {
	padding: 0 14px !important;
	margin: 0 !important;
	font-size: 19px !important;
	font-weight: 700;
	line-height: 1.18;
	color: #1a1a1a !important;
	min-height: 44px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Force : compact, centré horizontalement dans la card */
.gb-products-carousel ul.products > li.product .gb-force-badge--leaves {
	align-self: center;
	margin: 3px auto 2px;
	min-height: 22px;
	justify-content: center;
	padding: 3px 9px !important;
}

/* Effets chips en OVERLAY sur l'image (style cbd.fr badges) — stack
   vertical top-left, sous le bouton cœur. */
.gb-products-carousel ul.products > li.product .gb-effets-chips {
	position: absolute !important;
	top: 52px !important;
	left: 12px !important;
	z-index: 3;
	display: flex !important;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px !important;
	padding: 0 !important;
	margin: 0 !important;
	max-width: calc(100% - 90px);
	pointer-events: none;
}
.gb-products-carousel ul.products > li.product .gb-effets-chip {
	background: rgba(255, 255, 255, 0.95) !important;
	border: 1px solid rgba(57, 181, 74, 0.20) !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	padding: 4px 10px 4px 8px !important;
	font-size: 11px !important;
	line-height: 1.2;
	color: var(--gb-lime) !important;
	font-weight: 700;
	letter-spacing: 0.02em;
}
.gb-products-carousel ul.products > li.product .gb-effets-chip__icon {
	color: var(--gb-lime);
}
.gb-products-carousel ul.products > li.product .gb-effets-chip__icon svg {
	width: 12px !important;
	height: 12px !important;
	stroke: var(--gb-lime);
}
.gb-products-carousel ul.products > li.product .gb-effets-chip__label {
	font-size: 11px;
}

/* Pills format inline sur cards variables — centrées horizontalement. */
.gb-card-variations {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4px;
	padding: 0 14px;
	margin: 6px 0 12px;
	min-height: 24px;
}
.gb-card-pill {
	appearance: none;
	border: 1.5px solid #e2e2e2;
	background: #fff;
	border-radius: 6px;
	padding: 4px 7px;
	font-family: inherit;
	font-size: 10px;
	font-weight: 700;
	color: #1a1a1a;
	cursor: pointer;
	min-width: 30px;
	line-height: 1.1;
	transition: border-color var(--gb-transition), background var(--gb-transition), color var(--gb-transition);
}
.gb-card-pill:hover {
	border-color: var(--gb-lime);
	color: var(--gb-lime);
}
.gb-card-pill.is-active {
	border-color: var(--gb-lime);
	background: var(--gb-lime);
	color: #fff;
}
.gb-card-pill:disabled {
	opacity: 0.42;
	cursor: not-allowed;
}
/* Pill = grammage (label) + badge réduction empilés, hauteur homogène */
.gb-card-pill {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1px;
	min-height: 32px;
}
.gb-card-pill__label { line-height: 1; }
.gb-card-pill__off {
	font-size: 8px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.02em;
	color: var(--gb-lime, #5a9e2f);
}
.gb-card-pill:hover .gb-card-pill__off { color: var(--gb-lime); }
.gb-card-pill.is-active .gb-card-pill__off { color: #fff; }

/* Prix card : prix au gramme (gros, accent) + total (petit, discret) */
.gb-price-ppg {
	display: block;
	font-size: 19px;
	font-weight: 800;
	line-height: 1.05;
	color: var(--wp--preset--color--accent, #1f4a1f);
}
.gb-price-total {
	display: block;
	margin-top: 2px;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: #8a8a8a !important;
}
.gb-price-total::before {
	content: "total ";
	font-weight: 500;
	text-transform: lowercase;
}
.gb-price-total .woocommerce-Price-amount,
.gb-price-total .woocommerce-Price-currencySymbol {
	font-size: 12px !important;
	font-weight: 600 !important;
	color: #8a8a8a !important;
}

/* ─── Switcher de qualité (fiche fleur) ─────────────────────────────── */
.gb-quality-switch {
	margin: 0 0 18px;
}
.gb-quality-switch__label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #1f4a1f;
	margin: 0 0 8px;
}
.gb-quality-switch__opts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.gb-quality-chip {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1px;
	padding: 7px 13px;
	border-radius: 10px;
	border: 1.5px solid #e2e2e2;
	background: #fff;
	text-decoration: none;
	line-height: 1.15;
	transition: border-color var(--gb-transition), box-shadow var(--gb-transition), transform var(--gb-transition);
}
.gb-quality-chip:hover {
	transform: translateY(-1px);
	border-color: currentColor;
}
.gb-quality-chip__name {
	font-size: 13px;
	font-weight: 800;
	color: #1a1a1a;
}
.gb-quality-chip__from {
	font-size: 11px;
	font-weight: 600;
	color: #6b6b6b;
}
/* couleurs par qualité (accent gauche) */
.gb-quality-chip--vs { color: #b11226; }
.gb-quality-chip--st { color: #e07a1a; }
.gb-quality-chip--pr { color: #1b4332; }
.gb-quality-chip--sb { color: #3c6fb4; }
.gb-quality-chip { border-left: 4px solid currentColor; }
/* qualité courante = pleine */
.gb-quality-chip.is-current {
	background: currentColor;
	border-color: currentColor;
	box-shadow: 0 4px 14px -6px currentColor;
	cursor: default;
}
.gb-quality-chip.is-current .gb-quality-chip__name { color: #fff; }
.gb-quality-chip.is-current .gb-quality-chip__from { color: rgba(255,255,255,0.85); }
@media (max-width: 480px) {
	.gb-quality-switch__opts { gap: 6px; }
	.gb-quality-chip { padding: 6px 10px; flex: 1 1 calc(50% - 6px); }
}

/* Prix : gros, accent, centré horizontalement */
.gb-products-carousel ul.products > li.product .price {
	padding: 0 14px;
	margin: 4px 0 8px !important;
	font-size: 19px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	color: var(--wp--preset--color--accent, #1f4a1f) !important;
	text-align: center !important;
}
.gb-products-carousel ul.products > li.product .price .gb-price-prefix {
	font-size: 11px !important;
	font-weight: 600 !important;
	color: #8a8a8a !important;
	margin-right: 4px;
	vertical-align: 0;
}
.gb-products-carousel ul.products > li.product .price del {
	display: inline-block;
	margin-right: 8px;
	font-size: 14px !important;
	font-weight: 500 !important;
	color: #b1b1b1 !important;
	text-decoration: line-through;
}
.gb-products-carousel ul.products > li.product .price ins {
	background: transparent;
	color: var(--gb-red) !important;
	font-weight: 800;
	text-decoration: none;
}

/* Bouton CTA jaune fluo, pleine largeur, en bas de card */
.gb-products-carousel ul.products > li.product .add_to_cart_button,
.gb-products-carousel ul.products > li.product .product_type_simple,
.gb-products-carousel ul.products > li.product .product_type_variable,
.gb-products-carousel ul.products > li.product .gb-quick-add {
	display: block !important;
	width: calc(100% - 16px) !important;
	margin: auto 8px 4px !important;
	padding: 9px 12px !important;
	background: var(--gb-yellow) !important;
	color: #1a1a1a !important;
	border: 0 !important;
	border-radius: 8px !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	text-align: center !important;
	text-decoration: none !important;
	letter-spacing: 0.01em;
	cursor: pointer;
	box-shadow: 0 2px 0 rgba(0,0,0,0.04);
	transition: background var(--gb-transition), transform var(--gb-transition), box-shadow var(--gb-transition);
}
.gb-products-carousel ul.products > li.product .add_to_cart_button:hover,
.gb-products-carousel ul.products > li.product .product_type_simple:hover,
.gb-products-carousel ul.products > li.product .product_type_variable:hover,
.gb-products-carousel ul.products > li.product .gb-quick-add:hover {
	background: var(--gb-yellow-soft) !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0,0,0,0.10);
}

/* État loading pendant l'ajout panier */
.gb-quick-add.is-loading {
	opacity: 0.72;
	pointer-events: none;
	position: relative;
}
.gb-quick-add.is-added {
	background: var(--gb-lime) !important;
	color: #fff !important;
}

/* Mobile : padding réduit */
@media (max-width: 540px) {
	.gb-products-carousel ul.products > li.product .woocommerce-loop-product__title,
	.gb-products-carousel ul.products > li.product .price,
	.gb-products-carousel ul.products > li.product .gb-effets-chips,
	.gb-product-prov {
		padding-left: 14px;
		padding-right: 14px;
	}
	.gb-products-carousel ul.products > li.product .add_to_cart_button,
	.gb-products-carousel ul.products > li.product .product_type_simple,
	.gb-products-carousel ul.products > li.product .product_type_variable,
	.gb-products-carousel ul.products > li.product .gb-quick-add {
		width: calc(100% - 20px) !important;
		margin: auto 10px 10px !important;
	}
}


/* =============================================================
   Quick Add Modal (Quick Variation) — déclenchée depuis cards variables
   ============================================================= */
.gb-qa-modal[hidden] { display: none; }
.gb-qa-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.gb-qa-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(20, 20, 20, 0.55);
	backdrop-filter: blur(4px);
	animation: gb-qa-fade 0.22s ease both;
}
.gb-qa-modal__panel {
	position: relative;
	width: 100%;
	max-width: 760px;
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 24px 64px rgba(0,0,0,0.32);
	overflow: hidden;
	animation: gb-qa-pop 0.32s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.gb-qa-modal__close {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 2;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 1px solid #ebebeb;
	border-radius: 999px;
	color: #555;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0,0,0,0.08);
	transition: transform var(--gb-transition);
}
.gb-qa-modal__close:hover { transform: scale(1.08); color: #1a1a1a; }
.gb-qa-modal__close svg { width: 18px; height: 18px; }
.gb-qa-modal__body {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
}
.gb-qa-modal__media {
	margin: 0;
	background: #fafafa;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 28px;
}
.gb-qa-modal__img {
	width: 100%;
	max-width: 320px;
	height: auto;
	object-fit: contain;
}
.gb-qa-modal__info {
	padding: 32px 32px 28px;
	display: flex;
	flex-direction: column;
}
.gb-qa-modal__prov {
	margin: 0 0 6px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #8a8a8a;
}
.gb-qa-modal__title {
	margin: 0 0 14px;
	font-size: 24px;
	font-weight: 800;
	line-height: 1.2;
	color: #1a1a1a;
}
.gb-qa-modal__lede {
	margin: 0 0 12px;
	font-size: 13px;
	color: #6a6a6a;
}
.gb-qa-modal__pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 18px;
}
.gb-qa-pill {
	appearance: none;
	border: 1.5px solid #e2e2e2;
	background: #fff;
	border-radius: 10px;
	padding: 12px 18px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	color: #1a1a1a;
	cursor: pointer;
	transition: border-color var(--gb-transition), background var(--gb-transition), color var(--gb-transition);
	min-width: 64px;
}
.gb-qa-pill:hover { border-color: #1a1a1a; }
.gb-qa-pill.is-active {
	border-color: #1f4a1f;
	background: #1f4a1f;
	color: #fff;
}
.gb-qa-pill:disabled { opacity: 0.42; cursor: not-allowed; }
.gb-qa-modal__price-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 18px;
	padding: 14px 0;
	border-top: 1px solid #ebebeb;
	border-bottom: 1px solid #ebebeb;
}
.gb-qa-modal__price-label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #8a8a8a;
}
.gb-qa-modal__price {
	font-size: 26px;
	font-weight: 800;
	color: var(--wp--preset--color--accent, #1f4a1f);
}
.gb-qa-modal__price .woocommerce-Price-currencySymbol { font-weight: 700; }
.gb-qa-modal__cta {
	appearance: none;
	border: 0;
	background: #fbe23a;
	color: #1a1a1a;
	border-radius: 10px;
	padding: 16px 22px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 800;
	cursor: pointer;
	transition: background var(--gb-transition), transform var(--gb-transition);
}
.gb-qa-modal__cta:hover:not(:disabled) {
	background: #f5d100;
	transform: translateY(-1px);
}
.gb-qa-modal__cta:disabled { opacity: 0.45; cursor: not-allowed; }
.gb-qa-modal__cta.is-loading { opacity: 0.72; }
.gb-qa-modal__cta.is-added { background: #39b54a; color: #fff; }
.gb-qa-modal__feedback {
	margin: 10px 0 0;
	min-height: 18px;
	font-size: 13px;
	color: #555;
}
.gb-qa-modal__loading {
	color: #8a8a8a;
	font-size: 13px;
}

body.gb-qa-open { overflow: hidden; }

@keyframes gb-qa-fade {
	from { opacity: 0; } to { opacity: 1; }
}
@keyframes gb-qa-pop {
	from { opacity: 0; transform: translateY(20px) scale(0.96); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 680px) {
	.gb-qa-modal { padding: 0; align-items: flex-end; }
	.gb-qa-modal__panel {
		border-radius: 18px 18px 0 0;
		max-height: 90vh;
		overflow-y: auto;
	}
	.gb-qa-modal__body { grid-template-columns: 1fr; }
	.gb-qa-modal__media { padding: 22px; }
	.gb-qa-modal__img { max-width: 220px; }
	.gb-qa-modal__info { padding: 22px 22px 26px; }
	.gb-qa-modal__title { font-size: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.gb-qa-modal__backdrop, .gb-qa-modal__panel { animation: none; }
}

/* Fin section Nouveautés home */

/* =============================================================
   Archive (shop / category / related) — variante grid wrap
   .gb-products-archive override le carousel scroll horizontal
   en grille classique 4/3/2/1 cols selon le viewport.
   .gb-products-related → même grille mais limitée à 4 max-cols.
   ============================================================= */
.gb-products-carousel.gb-products-archive,
.gb-products-carousel.gb-products-related {
	width: 100%;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	overflow: visible;
	padding: 0;
	scroll-snap-type: none;
}
.gb-products-carousel.gb-products-archive ul.products,
.gb-products-carousel.gb-products-related ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	width: 100% !important;
	min-width: 0 !important;
	padding: 0 !important;
	justify-content: stretch !important;
}
.gb-products-carousel.gb-products-archive ul.products > li.product,
.gb-products-carousel.gb-products-related ul.products > li.product {
	flex: 0 0 auto !important;
	width: 100% !important;
	scroll-snap-align: none;
}
@media (max-width: 1100px) {
	.gb-products-carousel.gb-products-archive ul.products,
	.gb-products-carousel.gb-products-related ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@media (max-width: 820px) {
	.gb-products-carousel.gb-products-archive ul.products,
	.gb-products-carousel.gb-products-related ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}
}
@media (max-width: 480px) {
	.gb-products-carousel.gb-products-archive ul.products,
	.gb-products-carousel.gb-products-related ul.products {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Toolbar (results count + sorting) au-dessus de la grille archive. */
.gb-archive-toolbar {
	margin-bottom: var(--wp--preset--spacing--md);
	gap: 16px;
	flex-wrap: wrap;
}
.gb-archive-toolbar .woocommerce-result-count {
	margin: 0;
	color: #555;
	font-size: 14px;
}
.gb-archive-toolbar .woocommerce-ordering select {
	font-size: 14px;
	padding: 8px 28px 8px 12px;
	border-radius: 8px;
	border: 1px solid #ddd;
	background-color: #fff;
}

/* Pagination Greenbox-style sous la grille (rendue par [products paginate]). */
.gb-archive-grid .woocommerce-pagination {
	margin: var(--wp--preset--spacing--lg) 0 0;
	text-align: center;
}
.gb-archive-grid .woocommerce-pagination ul.page-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 0;
	margin: 0;
	border: 0;
	list-style: none;
}
.gb-archive-grid .woocommerce-pagination ul.page-numbers li {
	margin: 0;
	border: 0;
}
.gb-archive-grid .woocommerce-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 12px;
	border-radius: 8px;
	background: #fff;
	border: 1px solid #e2e2e2;
	color: #1a1a1a;
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	transition: border-color var(--gb-transition), background var(--gb-transition), color var(--gb-transition);
}
.gb-archive-grid .woocommerce-pagination .page-numbers:hover {
	border-color: var(--gb-lime, #39b54a);
	color: var(--gb-lime, #39b54a);
}
.gb-archive-grid .woocommerce-pagination .page-numbers.current {
	background: var(--gb-lime, #39b54a);
	border-color: var(--gb-lime, #39b54a);
	color: #fff;
}
/* Mobile : marge de respiration sous la pagination (sinon elle se cramponne à la
   section verte « Large choix » qui suit) + boutons légèrement plus compacts pour
   que la rangée (déjà réduite à « 1 2 … N → » côté PHP) tienne sur une seule ligne. */
@media (max-width: 600px) {
	.gb-archive-grid .woocommerce-pagination {
		margin-bottom: var(--wp--preset--spacing--md);
	}
	.gb-archive-grid .woocommerce-pagination .page-numbers {
		min-width: 34px;
		height: 34px;
		padding: 0 9px;
		font-size: 13px;
	}
}

/* ============================================================
   Page Contact (/contact/)
   ============================================================ */

/* ---- Hero ---- */
.gb-contact-hero {
	background: linear-gradient(180deg, var(--wp--preset--color--accent-tint, #f0f7f0) 0%, #ffffff 100%);
	border-bottom: 1px solid var(--wp--preset--color--subtle, #e5e5e7);
	padding: clamp(56px, 9vw, 96px) 24px clamp(40px, 6vw, 64px);
	text-align: center;
}
.gb-contact-hero__inner {
	max-width: 720px;
	margin: 0 auto;
}
.gb-contact-hero__eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-mid, #3d7c3d);
	margin-bottom: 16px;
}
.gb-contact-hero__title {
	font-size: clamp(32px, 5vw, 52px);
	line-height: 1.08;
	letter-spacing: -0.02em;
	font-weight: 700;
	color: var(--wp--preset--color--foreground, #1d1d1f);
	margin: 0 0 18px;
}
.gb-contact-hero__lede {
	font-size: clamp(15px, 1.6vw, 18px);
	line-height: 1.65;
	color: var(--wp--preset--color--secondary, #424245);
	margin: 0 auto;
	max-width: 60ch;
}

/* ---- 2-col grid ---- */
.gb-contact-grid {
	padding: clamp(40px, 6vw, 72px) 24px;
}
.gb-contact-grid__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}
.gb-contact-grid__form-head {
	margin-bottom: 28px;
}
.gb-contact-grid__eyebrow {
	display: inline-block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gb-lime, #39b54a);
	margin-bottom: 10px;
}
.gb-contact-grid__title {
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 700;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--foreground, #1d1d1f);
	margin: 0 0 10px;
}
.gb-contact-grid__lede {
	font-size: 15px;
	line-height: 1.6;
	color: var(--wp--preset--color--muted, #86868b);
	margin: 0;
	max-width: 56ch;
}
.gb-contact-grid__lede span[aria-hidden] {
	color: var(--wp--preset--color--danger, #c0392b);
}

@media (max-width: 900px) {
	.gb-contact-grid__inner {
		grid-template-columns: 1fr;
	}
}

/* ---- Fluent Form override (scoped via .gb-contact-form-wrap) ---- */
.gb-contact-form-wrap {
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--subtle, #e5e5e7);
	border-radius: 18px;
	padding: clamp(20px, 3vw, 36px);
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02), 0 12px 32px -16px rgba(31, 74, 31, 0.08);
}
.gb-contact-form-wrap .frm-fluent-form .ff-el-group,
.gb-contact-form-wrap .frm-fluent-form .ff-t-cell {
	margin-bottom: 18px;
}
.gb-contact-form-wrap .ff-el-input--label label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--wp--preset--color--foreground, #1d1d1f);
	margin-bottom: 6px;
	letter-spacing: 0.01em;
}
.gb-contact-form-wrap .ff-el-form-required {
	color: var(--wp--preset--color--danger, #c0392b);
	margin-left: 2px;
}
.gb-contact-form-wrap input[type="text"],
.gb-contact-form-wrap input[type="email"],
.gb-contact-form-wrap input[type="tel"],
.gb-contact-form-wrap select,
.gb-contact-form-wrap textarea {
	width: 100%;
	padding: 12px 14px;
	font-size: 15px;
	line-height: 1.4;
	color: var(--wp--preset--color--foreground, #1d1d1f);
	background: #fbfbfb;
	border: 1px solid var(--wp--preset--color--subtle, #e5e5e7);
	border-radius: 10px;
	transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
	font-family: inherit;
}
.gb-contact-form-wrap textarea {
	min-height: 132px;
	resize: vertical;
}
.gb-contact-form-wrap input::placeholder,
.gb-contact-form-wrap textarea::placeholder {
	color: var(--wp--preset--color--muted, #86868b);
	opacity: 0.85;
}
.gb-contact-form-wrap input:focus,
.gb-contact-form-wrap select:focus,
.gb-contact-form-wrap textarea:focus {
	outline: none;
	border-color: var(--gb-lime, #39b54a);
	background: #ffffff;
	box-shadow: 0 0 0 4px rgba(57, 181, 74, 0.14);
}
.gb-contact-form-wrap select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23424245' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 38px;
}
/* Checkbox RGPD : compact, label cliquable */
.gb-contact-form-wrap .ff-el-input--content [type="checkbox"] {
	width: 17px;
	height: 17px;
	margin-right: 9px;
	accent-color: var(--wp--preset--color--accent, #1f4a1f);
	vertical-align: top;
	margin-top: 2px;
}
.gb-contact-form-wrap .ff_item_panel_checkbox label,
.gb-contact-form-wrap .ff-el-form-check label {
	display: flex;
	align-items: flex-start;
	font-size: 13px;
	line-height: 1.55;
	color: var(--wp--preset--color--secondary, #424245);
	font-weight: 400;
	cursor: pointer;
}
.gb-contact-form-wrap .ff_item_panel_checkbox label a,
.gb-contact-form-wrap .ff-el-form-check label a {
	color: var(--wp--preset--color--accent, #1f4a1f);
	text-decoration: underline;
	text-underline-offset: 2px;
}
/* Bouton submit Greenbox */
.gb-contact-form-wrap .ff-btn-submit,
.gb-contact-form-wrap button.ff-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 28px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: #ffffff;
	background: var(--wp--preset--color--accent, #1f4a1f);
	border: 0;
	border-radius: 10px;
	cursor: pointer;
	transition: background 200ms ease, transform 200ms ease, box-shadow 200ms ease;
	box-shadow: 0 8px 18px -8px rgba(31, 74, 31, 0.45);
}
.gb-contact-form-wrap .ff-btn-submit:hover,
.gb-contact-form-wrap button.ff-btn:hover {
	background: #163516;
	transform: translateY(-1px);
	box-shadow: 0 12px 24px -10px rgba(31, 74, 31, 0.55);
}
.gb-contact-form-wrap .ff-btn-submit:focus-visible {
	outline: 3px solid rgba(57, 181, 74, 0.45);
	outline-offset: 2px;
}
.gb-contact-form-wrap .ff-message-success,
.gb-contact-success {
	padding: 18px 22px;
	background: var(--wp--preset--color--accent-tint, #f0f7f0);
	border-left: 3px solid var(--gb-lime, #39b54a);
	border-radius: 8px;
	color: var(--wp--preset--color--accent, #1f4a1f);
	font-size: 15px;
	line-height: 1.5;
}
.gb-contact-form-wrap .ff-el-is-error input,
.gb-contact-form-wrap .ff-el-is-error select,
.gb-contact-form-wrap .ff-el-is-error textarea {
	border-color: var(--wp--preset--color--danger, #c0392b);
	background: #fff7f6;
}
.gb-contact-form-wrap .text-danger,
.gb-contact-form-wrap .error.text-danger {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	color: var(--wp--preset--color--danger, #c0392b);
}

/* ---- Info cards (sidebar) ---- */
.gb-contact-info {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.gb-contact-info__card {
	display: flex;
	gap: 14px;
	padding: 22px 22px 22px 18px;
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--subtle, #e5e5e7);
	border-radius: 14px;
	transition: border-color 200ms ease, transform 200ms ease, box-shadow 200ms ease;
}
.gb-contact-info__card:hover {
	border-color: var(--wp--preset--color--accent-soft, #6fae6f);
	transform: translateY(-2px);
	box-shadow: 0 12px 28px -16px rgba(31, 74, 31, 0.18);
}
.gb-contact-info__icon {
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--accent, #1f4a1f);
	background: var(--wp--preset--color--accent-tint, #f0f7f0);
	border-radius: 10px;
}
.gb-contact-info__icon svg {
	width: 22px;
	height: 22px;
}
.gb-contact-info__body {
	flex: 1 1 auto;
	min-width: 0;
}
.gb-contact-info__title {
	font-size: 15px;
	font-weight: 700;
	color: var(--wp--preset--color--foreground, #1d1d1f);
	margin: 0 0 4px;
	letter-spacing: -0.005em;
}
.gb-contact-info__desc {
	font-size: 13px;
	line-height: 1.55;
	color: var(--wp--preset--color--muted, #86868b);
	margin: 0 0 8px;
}
.gb-contact-info__link {
	display: inline-block;
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--accent, #1f4a1f);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color 180ms ease, color 180ms ease;
	word-break: break-word;
}
.gb-contact-info__link:hover {
	border-bottom-color: var(--gb-lime, #39b54a);
	color: var(--wp--preset--color--accent-mid, #3d7c3d);
}

@media (max-width: 900px) {
	.gb-contact-info {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 12px;
	}
	.gb-contact-info__card {
		flex: 1 1 calc(50% - 6px);
		min-width: 240px;
	}
}
@media (max-width: 540px) {
	.gb-contact-info__card {
		flex: 1 1 100%;
	}
}

/* ---- FAQ courte (5 questions ciblées Contact) ---- */
.gb-contact-faq {
	max-width: 880px;
	margin: 0 auto;
	padding: clamp(40px, 6vw, 72px) 24px clamp(56px, 8vw, 88px);
}
.gb-contact-faq__header {
	text-align: center;
	margin-bottom: 32px;
}
.gb-contact-faq__eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gb-lime, #39b54a);
	margin-bottom: 10px;
}
.gb-contact-faq__title {
	font-size: clamp(26px, 3.5vw, 36px);
	font-weight: 700;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--foreground, #1d1d1f);
	margin: 0 0 10px;
}
.gb-contact-faq__lede {
	font-size: 15px;
	line-height: 1.6;
	color: var(--wp--preset--color--muted, #86868b);
	margin: 0 auto;
	max-width: 60ch;
}
.gb-contact-faq__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.gb-contact-faq__item {
	margin: 0;
}
.gb-contact-faq__details {
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--subtle, #e5e5e7);
	border-radius: 12px;
	overflow: hidden;
	transition: border-color 180ms ease, box-shadow 200ms ease;
}
.gb-contact-faq__details[open] {
	border-color: var(--wp--preset--color--accent-soft, #6fae6f);
	box-shadow: 0 14px 28px -16px rgba(31, 74, 31, 0.16);
}
.gb-contact-faq__details .gb-faq__summary {
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 18px 22px;
	list-style: none;
	font-size: 16px;
	font-weight: 600;
	color: var(--wp--preset--color--foreground, #1d1d1f);
	transition: background 180ms ease;
}
.gb-contact-faq__details .gb-faq__summary::-webkit-details-marker {
	display: none;
}
.gb-contact-faq__details .gb-faq__summary:hover {
	background: var(--wp--preset--color--off-white, #fafafa);
}
.gb-contact-faq__details .gb-faq__chevron {
	flex: 0 0 auto;
	display: inline-flex;
	width: 22px;
	height: 22px;
	color: var(--gb-lime, #39b54a);
	transition: transform 260ms cubic-bezier(0.34, 1.56, 0.64, 1), color 200ms ease;
}
.gb-contact-faq__details .gb-faq__chevron svg {
	width: 100%;
	height: 100%;
}
.gb-contact-faq__details[open] .gb-faq__chevron {
	transform: rotate(45deg) scale(1.08);
	color: var(--wp--preset--color--accent, #1f4a1f);
}
.gb-contact-faq__details .gb-faq__a {
	padding: 0 22px 20px;
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--wp--preset--color--secondary, #424245);
}
.gb-contact-faq__details .gb-faq__a p {
	margin: 0 0 12px;
}
.gb-contact-faq__details .gb-faq__a p:last-child {
	margin-bottom: 0;
}
.gb-contact-faq__details .gb-faq__a a {
	color: var(--wp--preset--color--accent, #1f4a1f);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.gb-contact-faq__footer {
	text-align: center;
	margin-top: 28px;
}
.gb-contact-faq__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--accent, #1f4a1f);
	background: var(--wp--preset--color--accent-tint, #f0f7f0);
	border: 1px solid transparent;
	border-radius: 999px;
	text-decoration: none;
	transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
}
.gb-contact-faq__more svg {
	width: 16px;
	height: 16px;
}
.gb-contact-faq__more:hover {
	background: #e1efe1;
	border-color: var(--wp--preset--color--accent-soft, #6fae6f);
	transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
	.gb-contact-info__card,
	.gb-contact-faq__details,
	.gb-contact-faq__details .gb-faq__chevron,
	.gb-contact-form-wrap .ff-btn-submit,
	.gb-contact-faq__more {
		transition: none !important;
	}
	.gb-contact-info__card:hover,
	.gb-contact-faq__more:hover {
		transform: none;
	}
}

/* ---- Small mobile polish ---- */
@media (max-width: 480px) {
	.gb-contact-hero {
		padding-left: 18px;
		padding-right: 18px;
	}
	.gb-contact-grid,
	.gb-contact-faq {
		padding-left: 18px;
		padding-right: 18px;
	}
	.gb-contact-form-wrap {
		padding: 20px 18px;
		border-radius: 14px;
	}
	.gb-contact-faq__details .gb-faq__summary {
		padding: 16px 18px;
		font-size: 15px;
	}
	.gb-contact-faq__details .gb-faq__a {
		padding: 0 18px 18px;
	}
}

/* ============================================================
   Programme de fidélité Greenbox — page /programme-fidelite/
   ============================================================ */

.gb-loyalty-hero,
.gb-loyalty-steps,
.gb-loyalty-earn,
.gb-loyalty-spend,
.gb-loyalty-tiers,
.gb-loyalty-referral,
.gb-loyalty-faq {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	padding: clamp(48px, 6vw, 88px) 24px;
	box-sizing: border-box;
}

.gb-loyalty-section-inner {
	max-width: 1200px;
	margin: 0 auto;
}

.gb-loyalty-section-title {
	font-family: var(--wp--preset--font-family--fraunces, "Fraunces"), Georgia, serif;
	font-size: clamp(28px, 3.5vw, 44px);
	font-weight: 500;
	line-height: 1.15;
	color: var(--wp--preset--color--accent, #1f4a1f);
	text-align: center;
	margin: 0 0 16px;
	letter-spacing: -0.01em;
}

.gb-loyalty-section-eyebrow {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gb-lime, #39b54a);
	margin: 0 0 12px;
	text-align: center;
}

.gb-loyalty-section-lede {
	font-size: 16px;
	line-height: 1.6;
	color: #5a5a5a;
	max-width: 640px;
	margin: 0 auto 40px;
	text-align: center;
}

/* ---------- Hero ---------- */
.gb-loyalty-hero {
	background: linear-gradient(180deg, #F8F5EE 0%, #FFFFFF 100%);
	border-bottom: 1px solid rgba(31, 74, 31, 0.08);
	padding-top: clamp(60px, 8vw, 110px);
	padding-bottom: clamp(60px, 8vw, 110px);
	text-align: center;
}

.gb-loyalty-hero__inner {
	max-width: 760px;
	margin: 0 auto;
}

.gb-loyalty-hero__eyebrow {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gb-lime, #39b54a);
	margin: 0 0 18px;
}

.gb-loyalty-hero__title {
	font-family: var(--wp--preset--font-family--fraunces, "Fraunces"), Georgia, serif;
	font-size: clamp(36px, 5.5vw, 64px);
	font-weight: 500;
	line-height: 1.08;
	color: var(--wp--preset--color--accent, #1f4a1f);
	margin: 0 0 22px;
	letter-spacing: -0.02em;
}

.gb-loyalty-hero__lede {
	font-size: clamp(15px, 1.4vw, 18px);
	line-height: 1.6;
	color: #4a4a4a;
	margin: 0 0 36px;
}

.gb-loyalty-hero__ctas {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}

.gb-loyalty-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 28px;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.gb-loyalty-cta--primary {
	background: var(--wp--preset--color--accent, #1f4a1f);
	color: #ffffff;
	border: 1px solid var(--wp--preset--color--accent, #1f4a1f);
}

.gb-loyalty-cta--primary:hover {
	background: #173a17;
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(31, 74, 31, 0.25);
}

.gb-loyalty-cta--ghost {
	background: transparent;
	color: var(--wp--preset--color--accent, #1f4a1f);
	border: 1px solid rgba(31, 74, 31, 0.25);
}

.gb-loyalty-cta--ghost:hover {
	border-color: var(--wp--preset--color--accent, #1f4a1f);
	background: rgba(31, 74, 31, 0.04);
}

/* ---------- Comment ça marche : 3 steps ---------- */
.gb-loyalty-steps {
	background: #ffffff;
}

.gb-loyalty-steps__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	list-style: none;
	padding: 0;
	margin: 40px 0 0;
	counter-reset: gb-step;
}

.gb-loyalty-step {
	background: #ffffff;
	border: 1px solid rgba(31, 74, 31, 0.10);
	border-radius: 16px;
	padding: 32px 28px;
	position: relative;
}

.gb-loyalty-step__num {
	display: inline-block;
	font-family: var(--wp--preset--font-family--fraunces, "Fraunces"), Georgia, serif;
	font-size: 42px;
	font-weight: 400;
	color: var(--gb-lime, #39b54a);
	line-height: 1;
	margin-bottom: 18px;
	letter-spacing: -0.02em;
}

.gb-loyalty-step h3 {
	font-family: var(--wp--preset--font-family--fraunces, "Fraunces"), Georgia, serif;
	font-size: 22px;
	font-weight: 500;
	color: var(--wp--preset--color--accent, #1f4a1f);
	margin: 0 0 10px;
}

.gb-loyalty-step p {
	font-size: 15px;
	line-height: 1.6;
	color: #5a5a5a;
	margin: 0;
}

/* ---------- Comment gagner : mission cards ---------- */
.gb-loyalty-earn {
	background: #F8F5EE;
}

.gb-loyalty-earn__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 20px;
	margin-top: 40px;
}

.gb-loyalty-mission {
	background: #ffffff;
	border: 1px solid rgba(31, 74, 31, 0.10);
	border-radius: 14px;
	padding: 28px 24px;
	text-align: center;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.gb-loyalty-mission:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(31, 74, 31, 0.10);
	border-color: var(--gb-lime, #39b54a);
}

.gb-loyalty-mission__icon {
	width: 48px;
	height: 48px;
	margin: 0 auto 14px;
	color: var(--gb-lime, #39b54a);
	display: flex;
	align-items: center;
	justify-content: center;
}

.gb-loyalty-mission__icon svg {
	width: 100%;
	height: 100%;
}

.gb-loyalty-mission__points {
	font-size: 22px;
	font-weight: 700;
	color: var(--wp--preset--color--accent, #1f4a1f);
	margin: 0 0 6px;
	font-variant-numeric: tabular-nums;
}

.gb-loyalty-mission__title {
	font-size: 14px;
	font-weight: 600;
	color: #1d1d1f;
	margin: 0 0 8px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.gb-loyalty-mission__desc {
	font-size: 13px;
	line-height: 1.5;
	color: #6a6a6a;
	margin: 0;
}

/* ---------- Comment dépenser : reward cards ---------- */
.gb-loyalty-spend {
	background: #ffffff;
}

.gb-loyalty-spend__grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 16px;
	margin-top: 8px;
}

.gb-loyalty-reward {
	background: linear-gradient(180deg, #ffffff 0%, #F8F5EE 100%);
	border: 1px solid rgba(31, 74, 31, 0.12);
	border-radius: 16px;
	padding: 28px 16px 22px;
	text-align: center;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}

.gb-loyalty-reward:hover {
	transform: translateY(-4px) scale(1.02);
	box-shadow: 0 14px 30px rgba(31, 74, 31, 0.12);
	border-color: var(--gb-lime, #39b54a);
}

.gb-loyalty-reward__amount {
	font-family: var(--wp--preset--font-family--fraunces, "Fraunces"), Georgia, serif;
	font-size: 48px;
	font-weight: 500;
	color: var(--wp--preset--color--accent, #1f4a1f);
	line-height: 1;
	letter-spacing: -0.02em;
	display: flex;
	align-items: baseline;
	gap: 2px;
}

.gb-loyalty-reward__amount span {
	font-size: 22px;
	font-weight: 400;
}

.gb-loyalty-reward__points {
	font-size: 13px;
	font-weight: 600;
	color: var(--gb-lime, #39b54a);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin: 0;
}

.gb-loyalty-reward__cta {
	margin-top: 8px;
	padding: 10px 22px;
	border-radius: 999px;
	background: transparent;
	border: 1px solid var(--wp--preset--color--accent, #1f4a1f);
	color: var(--wp--preset--color--accent, #1f4a1f);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.gb-loyalty-reward__cta:hover {
	background: var(--wp--preset--color--accent, #1f4a1f);
	color: #ffffff;
}

/* ---------- Paliers ---------- */
.gb-loyalty-tiers {
	background: #F8F5EE;
}

.gb-loyalty-tiers__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-top: 8px;
}

.gb-loyalty-tier {
	background: #ffffff;
	border-top: 4px solid var(--tier-color, #1f4a1f);
	border-radius: 4px 4px 16px 16px;
	padding: 32px 28px;
	display: flex;
	flex-direction: column;
	gap: 24px;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.gb-loyalty-tier:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 32px rgba(31, 74, 31, 0.10);
}

.gb-loyalty-tier__header {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.gb-loyalty-tier__badge {
	display: inline-block;
	width: fit-content;
	padding: 6px 14px;
	border-radius: 999px;
	background: var(--tier-color, #1f4a1f);
	color: #ffffff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.gb-loyalty-tier__threshold {
	font-size: 13px;
	font-weight: 500;
	color: #6a6a6a;
	letter-spacing: 0.02em;
}

.gb-loyalty-tier__perks {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.gb-loyalty-tier__perks li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: 14px;
	line-height: 1.5;
	color: #2a2a2a;
}

.gb-loyalty-tier__perks svg {
	flex-shrink: 0;
	color: var(--tier-color, #1f4a1f);
	margin-top: 2px;
}

/* ---------- Parrainage ---------- */
.gb-loyalty-referral {
	background: var(--wp--preset--color--accent, #1f4a1f);
	color: #ffffff;
}

.gb-loyalty-referral__inner {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 48px;
	align-items: center;
}

.gb-loyalty-referral .gb-loyalty-section-eyebrow {
	text-align: left;
	color: var(--gb-lime, #39b54a);
	margin-bottom: 12px;
}

.gb-loyalty-referral .gb-loyalty-section-title {
	color: #ffffff;
	text-align: left;
	margin-bottom: 16px;
}

.gb-loyalty-referral .gb-loyalty-section-lede {
	color: rgba(255, 255, 255, 0.85);
	text-align: left;
	margin: 0;
	max-width: none;
}

.gb-loyalty-referral__right {
	display: flex;
	justify-content: flex-end;
}

.gb-loyalty-referral .gb-loyalty-cta--primary {
	background: var(--gb-lime, #39b54a);
	color: var(--wp--preset--color--accent, #1f4a1f);
	border-color: var(--gb-lime, #39b54a);
}

.gb-loyalty-referral .gb-loyalty-cta--primary:hover {
	background: #2fa040;
	border-color: #2fa040;
}

/* ---------- FAQ ---------- */
.gb-loyalty-faq {
	background: #ffffff;
}

.gb-loyalty-faq__list {
	max-width: 760px;
	margin: 40px auto 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.gb-loyalty-faq__item {
	background: #F8F5EE;
	border: 1px solid rgba(31, 74, 31, 0.08);
	border-radius: 12px;
	padding: 0;
	overflow: hidden;
	transition: border-color 0.2s ease;
}

.gb-loyalty-faq__item[open] {
	border-color: var(--gb-lime, #39b54a);
}

.gb-loyalty-faq__item summary {
	list-style: none;
	cursor: pointer;
	padding: 18px 24px;
	font-size: 16px;
	font-weight: 600;
	color: var(--wp--preset--color--accent, #1f4a1f);
	position: relative;
}

.gb-loyalty-faq__item summary::-webkit-details-marker { display: none; }

.gb-loyalty-faq__item summary::after {
	content: "+";
	position: absolute;
	right: 24px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 22px;
	font-weight: 300;
	color: var(--gb-lime, #39b54a);
	transition: transform 0.2s ease;
}

.gb-loyalty-faq__item[open] summary::after {
	transform: translateY(-50%) rotate(45deg);
}

.gb-loyalty-faq__item p {
	margin: 0;
	padding: 0 24px 22px;
	font-size: 15px;
	line-height: 1.6;
	color: #4a4a4a;
}

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.gb-loyalty-steps__grid { grid-template-columns: 1fr; gap: 16px; }
	.gb-loyalty-spend__grid { grid-template-columns: repeat(3, 1fr); }
	.gb-loyalty-tiers__grid { grid-template-columns: 1fr; gap: 16px; }
	.gb-loyalty-referral__inner { grid-template-columns: 1fr; gap: 28px; }
	.gb-loyalty-referral__right { justify-content: flex-start; }
}

@media (max-width: 768px) {
	.gb-loyalty-hero { padding-top: 60px; padding-bottom: 60px; }
	.gb-loyalty-hero__title { font-size: clamp(28px, 8vw, 40px); }
	.gb-loyalty-spend__grid { grid-template-columns: repeat(2, 1fr); }
	.gb-loyalty-earn__grid { grid-template-columns: repeat(2, 1fr); }
	.gb-loyalty-cta { padding: 12px 22px; font-size: 14px; }
}

@media (max-width: 480px) {
	.gb-loyalty-spend__grid { grid-template-columns: 1fr; }
	.gb-loyalty-earn__grid { grid-template-columns: 1fr; }
	.gb-loyalty-step { padding: 24px 20px; }
	.gb-loyalty-tier { padding: 24px 22px; }
}

@media (prefers-reduced-motion: reduce) {
	.gb-loyalty-cta,
	.gb-loyalty-mission,
	.gb-loyalty-reward,
	.gb-loyalty-tier,
	.gb-loyalty-faq__item,
	.gb-loyalty-faq__item summary::after { transition: none; }
}

/* Masque le H1 WP par défaut sur la page programme-fidelite (le hero porte déjà le titre) */
.page-id-412 .wp-block-post-title { display: none; }

/* Colle le hero loyalty au header — supprime block-gap WP + padding-top main */
.page-id-412 main.wp-block-group {
	margin-top: 0 !important;
	padding-top: 0 !important;
}
.page-id-412 main > .wp-block-post-content,
.page-id-412 main > * + * {
	margin-top: 0 !important;
}

/* ============================================================
   Widget "Mes points" — /mon-compte/ dashboard
   ============================================================ */
.gb-loyalty-widget {
	background: linear-gradient(135deg, #F8F5EE 0%, #ffffff 100%);
	border: 1px solid rgba(31, 74, 31, 0.08);
	border-radius: 18px;
	padding: 28px 32px;
	margin: 0 0 32px;
	position: relative;
	overflow: hidden;
}

.gb-loyalty-widget::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: var(--tier-color, #1f4a1f);
}

.gb-loyalty-widget__top {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 32px;
	align-items: center;
	margin-bottom: 24px;
}

.gb-loyalty-widget__balance {
	border-right: 1px solid rgba(31, 74, 31, 0.10);
	padding-right: 32px;
}

.gb-loyalty-widget__label {
	font-size: 12px;
	font-weight: 600;
	color: #6a6a6a;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 0 0 6px;
}

.gb-loyalty-widget__points {
	margin: 0 0 4px;
	display: flex;
	align-items: baseline;
	gap: 8px;
}

.gb-loyalty-widget__points-num {
	font-family: var(--wp--preset--font-family--fraunces, "Fraunces"), Georgia, serif;
	font-size: 48px;
	font-weight: 500;
	line-height: 1;
	color: var(--wp--preset--color--accent, #1f4a1f);
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}

.gb-loyalty-widget__points-unit {
	font-size: 14px;
	font-weight: 600;
	color: var(--gb-lime, #39b54a);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.gb-loyalty-widget__equiv {
	font-size: 13px;
	color: #5a5a5a;
	margin: 0;
}

.gb-loyalty-widget__tier {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.gb-loyalty-widget__tier-badge {
	display: inline-block;
	width: fit-content;
	padding: 6px 14px;
	border-radius: 999px;
	background: var(--tier-color, #1f4a1f);
	color: #ffffff;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.gb-loyalty-widget__tier-progress-label {
	font-size: 13px;
	color: #4a4a4a;
	margin: 0;
	line-height: 1.4;
}

.gb-loyalty-widget__tier-progress-label strong {
	color: var(--wp--preset--color--accent, #1f4a1f);
	font-weight: 700;
}

.gb-loyalty-widget__tier-progress-label em {
	font-style: normal;
	font-weight: 600;
	color: var(--tier-color, #1f4a1f);
}

.gb-loyalty-widget__progress {
	height: 8px;
	background: rgba(31, 74, 31, 0.08);
	border-radius: 999px;
	overflow: hidden;
}

.gb-loyalty-widget__progress-fill {
	height: 100%;
	background: linear-gradient(90deg, var(--gb-lime, #39b54a), var(--tier-color, #1f4a1f));
	border-radius: 999px;
	transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.gb-loyalty-widget__actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	padding-top: 20px;
	border-top: 1px solid rgba(31, 74, 31, 0.08);
}

.gb-loyalty-widget__cta {
	display: inline-flex;
	align-items: center;
	padding: 10px 20px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.gb-loyalty-widget__cta--primary {
	background: var(--wp--preset--color--accent, #1f4a1f);
	color: #ffffff;
}

.gb-loyalty-widget__cta--primary:hover {
	background: #173a17;
	transform: translateY(-1px);
}

.gb-loyalty-widget__cta--ghost {
	background: transparent;
	color: var(--wp--preset--color--accent, #1f4a1f);
	border: 1px solid rgba(31, 74, 31, 0.25);
}

.gb-loyalty-widget__cta--ghost:hover {
	border-color: var(--wp--preset--color--accent, #1f4a1f);
}

.gb-loyalty-widget__cta--text {
	background: transparent;
	color: var(--gb-lime, #39b54a);
	padding: 10px 8px;
}

.gb-loyalty-widget__cta--text:hover {
	color: var(--wp--preset--color--accent, #1f4a1f);
}

@media (max-width: 768px) {
	.gb-loyalty-widget { padding: 22px 20px; }
	.gb-loyalty-widget__top {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.gb-loyalty-widget__balance {
		border-right: none;
		border-bottom: 1px solid rgba(31, 74, 31, 0.10);
		padding-right: 0;
		padding-bottom: 20px;
	}
	.gb-loyalty-widget__points-num { font-size: 40px; }
	.gb-loyalty-widget__actions {
		flex-direction: column;
		align-items: stretch;
	}
	.gb-loyalty-widget__cta {
		justify-content: center;
	}
}

/* ============================================================
   Header — badge points
   ============================================================ */
.gb-loyalty-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(57, 181, 74, 0.10);
	color: var(--wp--preset--color--accent, #1f4a1f);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.2s ease;
	line-height: 1;
}

.gb-loyalty-badge:hover {
	background: rgba(57, 181, 74, 0.18);
	transform: translateY(-1px);
}

.gb-loyalty-badge__icon {
	width: 14px;
	height: 14px;
	color: var(--gb-lime, #39b54a);
	flex-shrink: 0;
}

.gb-loyalty-badge__count {
	font-variant-numeric: tabular-nums;
}

@media (max-width: 768px) {
	.gb-loyalty-badge {
		padding: 5px 10px;
		font-size: 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gb-loyalty-widget__progress-fill,
	.gb-loyalty-widget__cta,
	.gb-loyalty-badge { transition: none; }
}

/* ============================================================
   Loyalty page — v2 avec visuels IA Higgsfield
   ============================================================ */

/* ---- Hero — fond image avec Ken-Burns ---- */
.gb-loyalty-hero { position: relative; overflow: hidden; padding: 0; min-height: 70vh; display: flex; align-items: center; justify-content: center; }
.gb-loyalty-hero__bg {
	position: absolute; inset: 0;
	overflow: hidden;
	z-index: 0;
}
.gb-loyalty-hero__bg::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(248, 245, 238, 0.75) 0%, rgba(255, 255, 255, 0.55) 50%, rgba(248, 245, 238, 0.85) 100%);
	z-index: 1;
}
.gb-loyalty-hero__bg img {
	width: 110%; height: 110%;
	object-fit: cover;
	object-position: center;
	position: absolute;
	top: -5%; left: -5%;
	animation: gb-loyalty-kenburns 18s ease-in-out infinite alternate;
}
@keyframes gb-loyalty-kenburns {
	0%   { transform: scale(1) translate(0, 0); }
	100% { transform: scale(1.06) translate(-1.5%, 1.5%); }
}
.gb-loyalty-hero__inner {
	position: relative;
	z-index: 2;
	padding: clamp(80px, 10vw, 120px) 24px;
}

/* ---- Missions avec images ---- */
.gb-loyalty-mission--has-image {
	padding: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.gb-loyalty-mission--has-image .gb-loyalty-mission__media {
	aspect-ratio: 4/3;
	overflow: hidden;
	background: linear-gradient(135deg, #F8F5EE 0%, #F3EFE3 100%);
}
.gb-loyalty-mission--has-image .gb-loyalty-mission__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.gb-loyalty-mission--has-image:hover .gb-loyalty-mission__media img {
	transform: scale(1.04);
}
.gb-loyalty-mission--has-image .gb-loyalty-mission__body {
	padding: 22px 22px 26px;
	text-align: left;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.gb-loyalty-mission--has-image .gb-loyalty-mission__points {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 26px;
	font-weight: 500;
	color: var(--wp--preset--color--accent, #1f4a1f);
	letter-spacing: -0.01em;
	font-variant-numeric: tabular-nums;
	margin: 0;
}
.gb-loyalty-mission--has-image .gb-loyalty-mission__title {
	font-size: 12px;
	color: var(--gb-lime, #39b54a);
	letter-spacing: 0.10em;
	margin: 0 0 6px;
}
.gb-loyalty-mission--has-image .gb-loyalty-mission__desc {
	font-size: 13px;
	color: #5a5a5a;
	margin: 4px 0 0;
}

/* ---- Tier cards avec image top ---- */
.gb-loyalty-tier {
	padding: 0;
	overflow: hidden;
	border-radius: 16px;
	border: 1px solid rgba(31, 74, 31, 0.10);
	border-top: 4px solid var(--tier-color, #1f4a1f);
}
.gb-loyalty-tier__media {
	aspect-ratio: 4/3;
	overflow: hidden;
	background: linear-gradient(135deg, #F8F5EE 0%, #F3EFE3 100%);
}
.gb-loyalty-tier__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.gb-loyalty-tier:hover .gb-loyalty-tier__media img {
	transform: scale(1.05);
}
.gb-loyalty-tier__header {
	padding: 22px 28px 14px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.gb-loyalty-tier__perks {
	padding: 0 28px 28px;
}

/* Icon-only mission cards aligned with image cards */
.gb-loyalty-mission--icon-only {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 340px;
	background: linear-gradient(135deg, #ffffff 0%, #F8F5EE 100%);
}

/* Hero plus impactant */
.gb-loyalty-hero { min-height: 78vh; }
.gb-loyalty-hero__bg::after {
	background: linear-gradient(180deg, rgba(248, 245, 238, 0.62) 0%, rgba(255, 255, 255, 0.40) 45%, rgba(248, 245, 238, 0.78) 100%) !important;
}
.gb-loyalty-hero__inner { max-width: 820px; }
.gb-loyalty-hero__title { text-shadow: 0 1px 14px rgba(255, 255, 255, 0.6); }

/* ---- Referral section avec image ---- */
.gb-loyalty-referral__inner {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: center;
}
.gb-loyalty-referral__media {
	aspect-ratio: 4/3;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 24px 60px rgba(0,0,0,0.25);
}
.gb-loyalty-referral__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.gb-loyalty-referral:hover .gb-loyalty-referral__media img {
	transform: scale(1.03);
}
.gb-loyalty-referral__left {
	display: flex;
	flex-direction: column;
}
.gb-loyalty-referral__cta { margin-top: 28px; }

/* Override grid for referral (was 1.4fr 1fr in v1) */
@media (max-width: 1024px) {
	.gb-loyalty-referral__inner { grid-template-columns: 1fr !important; gap: 32px; }
	.gb-loyalty-referral__media { max-width: 480px; margin: 0 auto; }
}

@media (prefers-reduced-motion: reduce) {
	.gb-loyalty-hero__bg img { animation: none; }
	.gb-loyalty-mission--has-image .gb-loyalty-mission__media img,
	.gb-loyalty-tier__media img,
	.gb-loyalty-referral__media img { transition: none; }
}

/* ============================================================
   Loyalty page v3 — DA pivot suite feedback user 2026-05-15
   - drop Fraunces serif, switch full Inter sans
   - max-width étendue 1200 → 1320
   - drop ivoire dominant, accents lime/vert plus marqués
   - hero plus dramatique (image full vibrant, overlay dark subtil)
   ============================================================ */

/* Drop serif partout sur la page loyalty — sans-serif Inter/system */
.gb-loyalty-hero__title,
.gb-loyalty-section-title,
.gb-loyalty-step h3,
.gb-loyalty-step__num,
.gb-loyalty-reward__amount,
.gb-loyalty-mission--has-image .gb-loyalty-mission__points {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif !important;
	font-weight: 700 !important;
	letter-spacing: -0.02em;
}

/* Hero v3 — image colorée full-bleed, overlay sombre subtil pour lisibilité */
.gb-loyalty-hero {
	min-height: 88vh !important;
	background: #1a3a1a;
}
.gb-loyalty-hero__bg::after {
	background: linear-gradient(180deg, rgba(31, 74, 31, 0.10) 0%, rgba(31, 74, 31, 0.30) 60%, rgba(31, 74, 31, 0.78) 100%) !important;
}
.gb-loyalty-hero__inner {
	max-width: 900px !important;
	color: #ffffff;
}
.gb-loyalty-hero__eyebrow {
	color: #fbe23a !important;
	text-shadow: 0 1px 8px rgba(0,0,0,0.4);
	font-size: 13px !important;
	letter-spacing: 0.22em;
	margin-bottom: 22px !important;
}
.gb-loyalty-hero__title {
	color: #ffffff !important;
	font-size: clamp(40px, 6.5vw, 76px) !important;
	font-weight: 700 !important;
	line-height: 1.05 !important;
	text-shadow: 0 4px 28px rgba(0,0,0,0.45) !important;
	margin-bottom: 28px !important;
}
.gb-loyalty-hero__lede {
	color: rgba(255,255,255,0.95) !important;
	font-size: clamp(16px, 1.5vw, 19px) !important;
	text-shadow: 0 2px 12px rgba(0,0,0,0.45);
	max-width: 640px;
	margin: 0 auto 36px !important;
}
.gb-loyalty-hero__ctas .gb-loyalty-cta--primary {
	background: #39b54a !important;
	color: #ffffff !important;
	border-color: #39b54a !important;
	box-shadow: 0 8px 24px rgba(57, 181, 74, 0.40);
	padding: 16px 32px !important;
	font-size: 16px !important;
}
.gb-loyalty-hero__ctas .gb-loyalty-cta--primary:hover {
	background: #2fa040 !important;
	border-color: #2fa040 !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 12px 32px rgba(57, 181, 74, 0.55) !important;
}
.gb-loyalty-hero__ctas .gb-loyalty-cta--ghost {
	color: #ffffff !important;
	border-color: rgba(255,255,255,0.5) !important;
	background: rgba(255,255,255,0.10) !important;
	backdrop-filter: blur(6px);
	padding: 16px 32px !important;
	font-size: 16px !important;
}
.gb-loyalty-hero__ctas .gb-loyalty-cta--ghost:hover {
	background: rgba(255,255,255,0.22) !important;
	border-color: #ffffff !important;
}

/* Étend max-width sur toutes les sections */
.gb-loyalty-section-inner {
	max-width: 1320px !important;
}

/* Drop ivoire — sections principales en blanc */
.gb-loyalty-steps,
.gb-loyalty-earn,
.gb-loyalty-spend,
.gb-loyalty-tiers,
.gb-loyalty-faq {
	background: #ffffff !important;
}

/* Section EARN — accent vert subtle au lieu d'ivoire */
.gb-loyalty-earn {
	background: linear-gradient(180deg, #ffffff 0%, rgba(57, 181, 74, 0.04) 100%) !important;
	position: relative;
}
.gb-loyalty-earn::before {
	content: "";
	position: absolute;
	top: 0; left: 50%;
	transform: translateX(-50%);
	width: 80px; height: 4px;
	background: linear-gradient(90deg, #39b54a, #1f4a1f);
	border-radius: 0 0 4px 4px;
}

/* Section TIERS — bg en accent vert profond pour break visuel */
.gb-loyalty-tiers {
	background: linear-gradient(180deg, #ffffff 0%, rgba(57, 181, 74, 0.06) 100%) !important;
}
.gb-loyalty-tier {
	box-shadow: 0 8px 24px rgba(31, 74, 31, 0.06);
	transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}
.gb-loyalty-tier:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 40px rgba(31, 74, 31, 0.14) !important;
}

/* Step cards plus visuels — accent lime sur le num */
.gb-loyalty-step__num {
	font-size: 48px !important;
	color: #39b54a !important;
	font-weight: 800 !important;
}
.gb-loyalty-step {
	background: linear-gradient(180deg, #ffffff 0%, #fafbf8 100%) !important;
	border-color: rgba(57, 181, 74, 0.18) !important;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease !important;
}
.gb-loyalty-step:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 32px rgba(31, 74, 31, 0.08);
	border-color: #39b54a !important;
}

/* Reward cards — fond plus dynamique */
.gb-loyalty-reward {
	background: linear-gradient(180deg, #ffffff 0%, rgba(57, 181, 74, 0.05) 100%) !important;
	border-color: rgba(57, 181, 74, 0.18) !important;
}
.gb-loyalty-reward__amount {
	font-size: 56px !important;
	font-weight: 800 !important;
	color: #1f4a1f !important;
}
.gb-loyalty-reward__points {
	background: rgba(57, 181, 74, 0.10);
	padding: 6px 14px;
	border-radius: 999px;
	font-size: 12px !important;
}

/* Mission icon-only — match dimensions image cards */
.gb-loyalty-mission--icon-only {
	background: linear-gradient(135deg, rgba(57, 181, 74, 0.06) 0%, rgba(255, 255, 255, 0.95) 100%) !important;
	border-color: rgba(57, 181, 74, 0.18) !important;
}

/* Section titles — plus impactants */
.gb-loyalty-section-title {
	font-size: clamp(32px, 4vw, 52px) !important;
	font-weight: 700 !important;
	letter-spacing: -0.025em !important;
	margin-bottom: 14px !important;
}

/* FAQ items — accent lime sur l'ouverture */
.gb-loyalty-faq__item[open] {
	background: rgba(57, 181, 74, 0.04) !important;
}

/* Section padding plus généreuse */
.gb-loyalty-steps,
.gb-loyalty-earn,
.gb-loyalty-spend,
.gb-loyalty-tiers,
.gb-loyalty-referral,
.gb-loyalty-faq {
	padding-top: clamp(36px, 4.5vw, 68px) !important;
	padding-bottom: clamp(36px, 4.5vw, 68px) !important;
}
/* Hero garde son padding original (immersif full-screen) */
.gb-loyalty-hero {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
/* Réduit aussi le margin-top des grids internes */
.gb-loyalty-steps__grid { margin-top: 28px !important; }
.gb-loyalty-earn__grid { margin-top: 28px !important; }
.gb-loyalty-spend__grid { margin-top: 24px !important; }
.gb-loyalty-tiers__grid { margin-top: 8px !important; }
.gb-loyalty-faq__list { margin-top: 28px !important; }
.gb-loyalty-section-lede { margin-bottom: 24px !important; }

/* CTA hero centré au lieu de left */
.gb-loyalty-hero__inner {
	text-align: center;
	margin: 0 auto;
}
.gb-loyalty-hero__eyebrow,
.gb-loyalty-hero__title,
.gb-loyalty-hero__lede {
	text-align: center;
}

/* Steps grid — 3 cols même sur tablet */
@media (min-width: 769px) {
	.gb-loyalty-steps__grid { grid-template-columns: repeat(3, 1fr) !important; }
}

/* ============================================================
   Loyalty page v4 — fix marges + jaune + emojis cannabis
   ============================================================ */

/* 1. Drop top padding du main sur la page programme-fidelite */
body.page-id-412 main {
	padding-top: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
body.page-id-412 .wp-block-post-content {
	max-width: none !important;
}

/* 2. Section eyebrows avec cannabis */
.gb-loyalty-section-eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.20em;
	text-transform: uppercase;
	color: var(--gb-lime, #39b54a);
	margin: 0 0 14px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 18px;
	background: rgba(57, 181, 74, 0.10);
	border-radius: 999px;
}
.gb-loyalty-section-eyebrow--centered {
	display: flex;
	width: fit-content;
	margin: 0 auto 18px;
}
.gb-loyalty-section-leaf {
	display: inline-flex;
	width: 18px;
	height: 18px;
	color: var(--gb-lime, #39b54a);
	flex-shrink: 0;
}
.gb-loyalty-section-leaf svg {
	width: 100%;
	height: 100%;
}

/* 3. Cannabis bullets sur paliers — remplace les checkmarks */
.gb-loyalty-tier__perk-icon {
	flex-shrink: 0;
	width: 16px;
	height: 16px;
	color: var(--tier-color, #1f4a1f);
	display: inline-flex;
	margin-top: 1px;
}
.gb-loyalty-tier__perk-icon svg {
	width: 100%;
	height: 100%;
}

/* 4. Featured reward 100€ avec badge jaune + glow lime */
.gb-loyalty-reward--featured {
	position: relative;
	background: linear-gradient(180deg, #ffffff 0%, rgba(251, 226, 58, 0.10) 100%) !important;
	border-color: #fbe23a !important;
	box-shadow: 0 14px 32px rgba(251, 226, 58, 0.22) !important;
	transform: translateY(-4px);
}
.gb-loyalty-reward--featured .gb-loyalty-reward__amount {
	color: var(--wp--preset--color--accent, #1f4a1f) !important;
}
.gb-loyalty-reward--featured .gb-loyalty-reward__points {
	background: rgba(251, 226, 58, 0.35) !important;
	color: #6b5300 !important;
}
.gb-loyalty-reward__badge {
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	background: #fbe23a;
	color: #1d1d1f;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 5px 14px;
	border-radius: 999px;
	box-shadow: 0 4px 12px rgba(251, 226, 58, 0.45);
	white-space: nowrap;
}

/* 5. FAQ avec cannabis chevron qui s'ouvre */
.gb-loyalty-faq__item summary {
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
}
.gb-loyalty-faq__item summary::after {
	content: none !important; /* drop le "+" précédent */
}
.gb-loyalty-faq__q {
	flex: 1;
}
.gb-loyalty-faq__leaf {
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	color: var(--gb-lime, #39b54a);
	opacity: 0.55;
	transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.2s ease;
	display: inline-flex;
}
.gb-loyalty-faq__leaf svg {
	width: 100%;
	height: 100%;
}
.gb-loyalty-faq__item[open] .gb-loyalty-faq__leaf {
	transform: rotate(180deg) scale(1.05);
	opacity: 1;
}

/* 6. Hero — jaune sur l'eyebrow vivant */
.gb-loyalty-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: rgba(251, 226, 58, 0.18);
	border: 1px solid rgba(251, 226, 58, 0.40);
	padding: 8px 20px;
	border-radius: 999px;
	color: #fbe23a !important;
	backdrop-filter: blur(8px);
}

/* 7. Step numbers — touche de jaune accent au hover */
.gb-loyalty-step:hover .gb-loyalty-step__num {
	color: #fbe23a !important;
	transition: color 0.2s ease;
}
@media (prefers-reduced-motion: reduce) {
	.gb-loyalty-step:hover .gb-loyalty-step__num,
	.gb-loyalty-faq__leaf { transition: none; }
}

/* ============================================================
   Loyalty v5 — meilleurs breakpoints tablet (760-1100px)
   ============================================================ */
@media (min-width: 600px) and (max-width: 1024px) {
	.gb-loyalty-steps__grid { grid-template-columns: repeat(3, 1fr) !important; gap: 14px !important; }
	.gb-loyalty-earn__grid { grid-template-columns: repeat(2, 1fr) !important; }
	.gb-loyalty-spend__grid { grid-template-columns: repeat(5, 1fr) !important; }
	.gb-loyalty-tiers__grid { grid-template-columns: repeat(3, 1fr) !important; gap: 14px !important; }
}
@media (max-width: 600px) {
	.gb-loyalty-spend__grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
	.gb-loyalty-spend__grid .gb-loyalty-reward--featured {
		grid-column: span 2;
		max-width: 320px;
		margin: 0 auto;
	}
	.gb-loyalty-earn__grid { gap: 14px !important; }
}

/* Mobile : titres + paddings encore plus serrés */
@media (max-width: 768px) {
	.gb-loyalty-steps,
	.gb-loyalty-earn,
	.gb-loyalty-spend,
	.gb-loyalty-tiers,
	.gb-loyalty-referral,
	.gb-loyalty-faq {
		padding-top: 36px !important;
		padding-bottom: 36px !important;
	}
	.gb-loyalty-section-title { font-size: clamp(26px, 7vw, 36px) !important; }
	.gb-loyalty-hero__title { font-size: clamp(32px, 9vw, 48px) !important; }
	.gb-loyalty-hero { min-height: 70vh !important; }
	.gb-loyalty-section-eyebrow { font-size: 11px; padding: 6px 14px; }
}

/* ============================================================
   Loyalty v6 — missions plus compactes + cannabis leaf après points
   ============================================================ */

/* Cards missions plus petites */
.gb-loyalty-mission--has-image .gb-loyalty-mission__media {
	aspect-ratio: 5/4 !important;
}
.gb-loyalty-mission--has-image .gb-loyalty-mission__body {
	padding: 14px 16px 18px !important;
	gap: 2px !important;
}
.gb-loyalty-mission--has-image .gb-loyalty-mission__points {
	font-size: 20px !important;
}
.gb-loyalty-mission--has-image .gb-loyalty-mission__title {
	font-size: 11px !important;
	margin: 0 0 4px !important;
}
.gb-loyalty-mission--has-image .gb-loyalty-mission__desc {
	font-size: 12px !important;
	margin: 2px 0 0 !important;
	line-height: 1.45 !important;
}
.gb-loyalty-mission--icon-only { min-height: 240px !important; padding: 20px 18px !important; }
.gb-loyalty-mission--icon-only .gb-loyalty-mission__icon { width: 38px; height: 38px; margin: 0 auto 8px; }
.gb-loyalty-mission--icon-only .gb-loyalty-mission__icon svg { width: 100%; height: 100%; }
.gb-loyalty-mission--icon-only .gb-loyalty-mission__points { font-size: 22px !important; }

/* Feuille cannabis qui suit "points" — inline */
.gb-loyalty-points-leaf {
	display: inline-flex;
	width: 14px;
	height: 14px;
	vertical-align: -2px;
	color: var(--gb-lime, #39b54a);
	margin-left: 3px;
}
.gb-loyalty-points-leaf svg {
	width: 100%;
	height: 100%;
}
/* Featured reward — leaf en jaune assorti */
.gb-loyalty-reward--featured .gb-loyalty-points-leaf {
	color: #6b5300;
}
/* Reward points pill — taille leaf adaptée */
.gb-loyalty-reward__points .gb-loyalty-points-leaf {
	width: 12px;
	height: 12px;
	vertical-align: -1px;
}

/* Cannabis leaf qui suit "points" — scale avec la font-size parent */
.gb-loyalty-points-leaf {
	width: 0.85em !important;
	height: 0.85em !important;
	vertical-align: -0.12em !important;
	margin-left: 4px !important;
	margin-right: 1px !important;
	color: var(--gb-lime, #39b54a);
	display: inline-flex;
	flex-shrink: 0;
}
/* Override pour titres clairs sur fond vert (hero, parrainage) */
.gb-loyalty-hero__title .gb-loyalty-points-leaf,
.gb-loyalty-hero__lede .gb-loyalty-points-leaf {
	color: #fbe23a;
}
/* Step h3 — leaf vert lime */
.gb-loyalty-step h3 .gb-loyalty-points-leaf,
.gb-loyalty-step p .gb-loyalty-points-leaf {
	color: var(--gb-lime, #39b54a);
}

/* ============================================================
   Section Effets — home (4 cards lifestyle taxo pa_effets)
   ============================================================ */

.gb-effets-section {
	background: var(--wp--preset--color--white, #fff);
	padding: 4px 0 clamp(48px, 5vw, 80px);
	/* full-bleed inside constrained main */
	width: 100vw;
	margin-top: 0 !important;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.gb-effets-inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 var(--wp--preset--spacing--md, 24px);
}

.gb-effets-header {
	text-align: center;
	margin-bottom: clamp(20px, 2.4vw, 36px);
}

/* Cartes QUALITÉ : nom stylisé sur fond blanc, image seule (pas de voile/texte) */
.gb-effets-header--sub {
	margin-top: clamp(48px, 5.5vw, 80px);
}

.gb-qualites-grid {
	margin-top: 0;
}

/* Higher specificity than the base .gb-effet-card (declared later in the file)
   so the 16:9 aspect-ratio lock is released and the card grows to fit
   image + "Voir les produits" CTA stacked in normal flow. */
.gb-qualites-grid .gb-qualite-card {
	background: #fff;
	border: 1px solid rgba(20, 35, 25, 0.08);
	aspect-ratio: auto;
	overflow: hidden;
}

.gb-qualite-card .gb-effet-card__link {
	position: static;
	inset: auto;
	display: block;
}

.gb-qualite-card .gb-effet-card__img {
	position: static;
	inset: auto;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	filter: none;
}

.gb-qualite-card:hover .gb-effet-card__img {
	transform: scale(1.04);
	filter: none;
}

/* CTA "Voir les produits" — texte noir sous l'image de chaque carte qualité */
.gb-qualite-card__cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 12px 14px 14px;
	color: #111;
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.01em;
	border-top: 1px solid rgba(20, 35, 25, 0.08);
}

.gb-qualite-card__cta svg {
	width: 16px;
	height: 16px;
	transform: translateX(0);
	transition: transform 0.25s ease;
}

.gb-qualite-card:hover .gb-qualite-card__cta svg,
.gb-qualite-card:focus-within .gb-qualite-card__cta svg {
	transform: translateX(4px);
}

.gb-effets-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent, #2f5d2a);
}

.gb-effets-title {
	margin: 0;
	font-size: clamp(28px, 3.4vw, 44px);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--ink, #1a2820);
}

.gb-effets-grid {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.gb-effet-card {
	position: relative;
	border-radius: 22px;
	overflow: hidden;
	background: #1a2820;
	box-shadow: 0 4px 14px rgba(20, 35, 25, 0.10);
	transition: transform 380ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 380ms cubic-bezier(0.2, 0.8, 0.2, 1);
	aspect-ratio: 16 / 9;
	isolation: isolate;
}

.gb-effet-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 42px rgba(20, 35, 25, 0.24), 0 6px 14px rgba(20, 35, 25, 0.14);
}

.gb-effet-card__link {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	text-decoration: none;
	color: #fff;
	z-index: 1;
}

.gb-effet-card__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	z-index: 0;
	transition: transform 700ms cubic-bezier(0.2, 0.8, 0.2, 1), filter 380ms ease;
	filter: saturate(1.02);
}

.gb-effet-card:hover .gb-effet-card__img {
	transform: scale(1.06);
	filter: saturate(1.12);
}

.gb-effet-card__veil {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(180deg, rgba(20, 35, 25, 0.05) 0%, rgba(20, 35, 25, 0.18) 45%, rgba(20, 35, 25, 0.72) 100%);
	pointer-events: none;
	transition: background 380ms ease;
}

.gb-effet-card:hover .gb-effet-card__veil {
	background:
		linear-gradient(180deg, rgba(20, 35, 25, 0.08) 0%, rgba(20, 35, 25, 0.28) 45%, rgba(20, 35, 25, 0.82) 100%);
}

.gb-effet-card__body {
	position: relative;
	z-index: 2;
	padding: 22px 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	color: #fff;
}

.gb-effet-card__count {
	display: none; /* badge non utilisé — dépassait la card en 16:9 desktop, redondant avec le CTA */
}

.gb-effet-card__title {
	margin: 6px 0 4px;
	font-size: clamp(20px, 1.7vw, 26px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.005em;
	color: #fff;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}

.gb-effet-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
	color: #fff;
	opacity: 0.92;
	transition: gap 280ms ease, opacity 280ms ease;
}

.gb-effet-card__arrow {
	width: 16px;
	height: 16px;
	transition: transform 280ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.gb-effet-card:hover .gb-effet-card__cta {
	gap: 10px;
	opacity: 1;
}

.gb-effet-card:hover .gb-effet-card__arrow {
	transform: translateX(4px);
}

.gb-effet-card__link:focus-visible {
	outline: 3px solid var(--wp--preset--color--accent, #2f5d2a);
	outline-offset: 3px;
}

@media (max-width: 1024px) {
	.gb-effets-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
	.gb-effet-card { aspect-ratio: 4 / 3; }
}

@media (max-width: 540px) {
	.gb-effets-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.gb-effet-card { aspect-ratio: 4 / 3; border-radius: 16px; }
	.gb-effet-card__body { padding: 12px 12px 14px; gap: 4px; }
	.gb-effet-card__title { font-size: 15px; margin: 2px 0; line-height: 1.15; }
	.gb-effet-card__cta { font-size: 11px; }
	.gb-effet-card__arrow { width: 12px; height: 12px; }
}

@media (prefers-reduced-motion: reduce) {
	.gb-effet-card,
	.gb-effet-card__img,
	.gb-effet-card__veil,
	.gb-effet-card__cta,
	.gb-effet-card__arrow {
		transition: none !important;
	}
	.gb-effet-card:hover { transform: none; }
	.gb-effet-card:hover .gb-effet-card__img { transform: none; }
}

/* ============================================================
   Pages d'archive /effets/{slug}/ — hero + description SEO
   ============================================================ */

.gb-effet-hero {
	position: relative;
	box-sizing: border-box;
	background:
		radial-gradient(800px 380px at 12% 30%, rgba(47, 93, 42, 0.10), transparent 60%),
		linear-gradient(180deg, #f7f2e6 0%, #fbf9f1 100%);
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: clamp(36px, 4.5vw, 64px) clamp(20px, 3vw, 48px) clamp(40px, 5vw, 72px);
	margin-bottom: clamp(28px, 3vw, 48px);
	border-bottom: 1px solid rgba(86, 129, 19, 0.12);
	overflow: hidden;
}

.gb-effet-hero::before {
	content: "";
	position: absolute;
	top: -120px;
	right: -120px;
	width: 360px;
	height: 360px;
	background: radial-gradient(circle, rgba(47, 93, 42, 0.08) 0%, transparent 70%);
	pointer-events: none;
	z-index: 0;
}

.gb-effet-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 1320px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	align-items: center;
	gap: clamp(28px, 4.5vw, 72px);
}

.gb-effet-hero__crumbs {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-bottom: 18px;
	font-size: 12.5px;
	color: rgba(26, 40, 32, 0.60);
	letter-spacing: 0.01em;
}

.gb-effet-hero__crumbs a {
	color: rgba(26, 40, 32, 0.62);
	text-decoration: none;
	transition: color 200ms ease;
}

.gb-effet-hero__crumbs a:hover {
	color: var(--wp--preset--color--accent, #2f5d2a);
}

.gb-effet-hero__crumb-current {
	color: var(--wp--preset--color--ink, #1a2820);
	font-weight: 600;
}

.gb-effet-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 14px;
	padding: 6px 14px 6px 10px;
	border-radius: 999px;
	background: rgba(47, 93, 42, 0.10);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent, #2f5d2a);
}

.gb-effet-hero__eyebrow-icon {
	width: 14px;
	height: 14px;
}

.gb-effet-hero__title {
	margin: 0 0 14px;
	font-size: clamp(36px, 5vw, 64px);
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -0.018em;
	color: var(--wp--preset--color--ink, #1a2820);
}

.gb-effet-hero__lede {
	margin: 0 0 26px;
	font-size: clamp(16px, 1.3vw, 19px);
	line-height: 1.55;
	color: rgba(26, 40, 32, 0.78);
	max-width: 58ch;
}

.gb-effet-hero__meta {
	list-style: none;
	margin: 0 0 22px;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px 22px;
	max-width: 540px;
}

.gb-effet-hero__meta-item {
	display: flex;
	align-items: center;
	gap: 12px;
}

.gb-effet-hero__meta-icon {
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	color: var(--wp--preset--color--accent, #2f5d2a);
}

.gb-effet-hero__meta-item > div {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}

.gb-effet-hero__meta-value {
	font-size: 14px;
	font-weight: 700;
	color: var(--wp--preset--color--ink, #1a2820);
}

.gb-effet-hero__meta-label {
	font-size: 12px;
	color: rgba(26, 40, 32, 0.55);
}

.gb-effet-hero__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.gb-effet-hero__chip {
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	border-radius: 8px;
	background: #fff;
	border: 1px solid rgba(86, 129, 19, 0.18);
	font-size: 12.5px;
	color: rgba(26, 40, 32, 0.78);
	letter-spacing: 0.005em;
}

.gb-effet-hero__chip strong {
	color: var(--wp--preset--color--accent, #2f5d2a);
	margin-right: 4px;
	font-weight: 700;
}

.gb-effet-hero__media {
	position: relative;
	aspect-ratio: 16 / 11;
	border-radius: 26px;
	overflow: hidden;
	box-shadow: 0 24px 60px rgba(20, 35, 25, 0.22), 0 8px 18px rgba(20, 35, 25, 0.10);
}

.gb-effet-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 60%, rgba(20, 35, 25, 0.12) 100%);
	pointer-events: none;
}

.gb-effet-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

@media (max-width: 1080px) {
	.gb-effet-hero__inner { grid-template-columns: 1fr; gap: 28px; }
	.gb-effet-hero__media { order: -1; aspect-ratio: 16 / 8; border-radius: 18px; }
	.gb-effet-hero__meta { max-width: none; }
	.gb-effet-hero__title { font-size: clamp(30px, 5.5vw, 48px); }
}

@media (max-width: 520px) {
	.gb-effet-hero__meta { grid-template-columns: 1fr; gap: 10px; }
	.gb-effet-hero__title { font-size: clamp(28px, 7.5vw, 36px); }
	.gb-effet-hero__lede { font-size: 15px; }
	.gb-effet-hero__chips { flex-direction: column; align-items: flex-start; gap: 6px; }
	.gb-effet-hero__chip { font-size: 12px; }
	.gb-effet-hero__crumbs { font-size: 11.5px; }
}

/* Description SEO + benefits */

.gb-effet-desc {
	margin: clamp(40px, 5vw, 80px) auto 0;
	max-width: 1320px;
	padding: 0 clamp(20px, 3vw, 32px);
}

.gb-effet-desc__inner {
	background: #fbf9f1;
	border-radius: 24px;
	padding: clamp(28px, 3.5vw, 56px);
	border: 1px solid rgba(86, 129, 19, 0.10);
}

.gb-effet-desc__title {
	margin: 0 0 18px;
	font-size: clamp(22px, 2.4vw, 32px);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--ink, #1a2820);
}

.gb-effet-desc__body {
	max-width: 75ch;
	color: rgba(26, 40, 32, 0.82);
	font-size: clamp(15px, 1.1vw, 16.5px);
	line-height: 1.7;
}

.gb-effet-desc__body p {
	margin: 0 0 14px;
}

.gb-effet-desc__body strong {
	color: var(--wp--preset--color--ink, #1a2820);
	font-weight: 700;
}

.gb-effet-desc__benefits {
	list-style: none;
	margin: 28px 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px 28px;
}

.gb-effet-desc__benefit {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.gb-effet-desc__benefit-icon {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: rgba(47, 93, 42, 0.12);
	color: var(--wp--preset--color--accent, #2f5d2a);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.gb-effet-desc__benefit-icon svg {
	width: 16px;
	height: 16px;
}

.gb-effet-desc__benefit-title {
	margin: 0 0 2px;
	font-size: 15px;
	font-weight: 700;
	color: var(--wp--preset--color--ink, #1a2820);
}

.gb-effet-desc__benefit-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: rgba(26, 40, 32, 0.72);
}

@media (max-width: 640px) {
	.gb-effet-desc__benefits { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.gb-effet-hero__cta,
	.gb-effet-hero__cta svg {
		transition: none !important;
	}
	.gb-effet-hero__cta:hover { transform: none; }
	.gb-effet-hero__cta:hover svg { transform: none; }
}

/* ============================================================
   FAQ par effet — schema-friendly accordéon
   ============================================================ */

.gb-effet-faq {
	margin: clamp(36px, 4.5vw, 72px) auto 0;
	max-width: 1320px;
	padding: 0 clamp(20px, 3vw, 32px);
}

.gb-effet-faq__inner {
	background: #fff;
	border-radius: 24px;
	padding: clamp(28px, 3.5vw, 48px);
	border: 1px solid rgba(86, 129, 19, 0.10);
	box-shadow: 0 4px 18px rgba(20, 35, 25, 0.04);
}

.gb-effet-faq__header {
	margin-bottom: 22px;
	max-width: 720px;
}

.gb-effet-faq__eyebrow {
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent, #2f5d2a);
}

.gb-effet-faq__title {
	margin: 0;
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--ink, #1a2820);
}

.gb-effet-faq__list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.gb-effet-faq__item {
	border-radius: 14px;
	background: #fbf9f1;
	border: 1px solid rgba(86, 129, 19, 0.10);
	overflow: hidden;
	transition: background 240ms ease, border-color 240ms ease;
}

.gb-effet-faq__item[open] {
	background: #fff;
	border-color: rgba(47, 93, 42, 0.22);
}

.gb-effet-faq__q {
	list-style: none;
	cursor: pointer;
	padding: 16px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	font-size: 15.5px;
	font-weight: 600;
	color: var(--wp--preset--color--ink, #1a2820);
}

.gb-effet-faq__q::-webkit-details-marker { display: none; }
.gb-effet-faq__q::marker { display: none; content: ""; }

.gb-effet-faq__chevron {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	color: var(--wp--preset--color--accent, #2f5d2a);
	transition: transform 280ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.gb-effet-faq__item[open] .gb-effet-faq__chevron {
	transform: rotate(180deg);
}

.gb-effet-faq__a {
	padding: 0 20px 18px;
	color: rgba(26, 40, 32, 0.78);
	font-size: 14.5px;
	line-height: 1.65;
}

.gb-effet-faq__a p {
	margin: 0;
}

/* ============================================================
   Autres effets — cross-link bas de page
   ============================================================ */

.gb-effet-others {
	margin: clamp(40px, 5vw, 80px) auto 0;
	max-width: 1320px;
	padding: 0 clamp(20px, 3vw, 32px);
}

.gb-effet-others__header {
	text-align: center;
	margin-bottom: 22px;
}

.gb-effet-others__eyebrow {
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent, #2f5d2a);
}

.gb-effet-others__title {
	margin: 0;
	font-size: clamp(22px, 2.4vw, 32px);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--ink, #1a2820);
}

.gb-effet-others__grid {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.gb-effet-others__card {
	position: relative;
	border-radius: 18px;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: #1a2820;
	box-shadow: 0 4px 14px rgba(20, 35, 25, 0.10);
	transition: transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 320ms ease;
	isolation: isolate;
}

.gb-effet-others__card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px rgba(20, 35, 25, 0.22);
}

.gb-effet-others__link {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	text-decoration: none;
	color: #fff;
	z-index: 1;
}

.gb-effet-others__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	z-index: 0;
	transition: transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.gb-effet-others__card:hover .gb-effet-others__img {
	transform: scale(1.06);
}

.gb-effet-others__veil {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(20, 35, 25, 0.06) 0%, rgba(20, 35, 25, 0.20) 45%, rgba(20, 35, 25, 0.72) 100%);
}

.gb-effet-others__body {
	position: relative;
	z-index: 2;
	padding: 18px 20px 20px;
}

.gb-effet-others__count {
	display: inline-flex;
	padding: 3px 9px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.18);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.gb-effet-others__cardtitle {
	margin: 8px 0 4px;
	font-size: clamp(18px, 1.5vw, 22px);
	font-weight: 800;
	color: #fff;
	letter-spacing: -0.005em;
	text-shadow: 0 2px 14px rgba(0, 0, 0, 0.30);
}

.gb-effet-others__cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
	color: #fff;
	opacity: 0.95;
	transition: gap 220ms ease;
}

.gb-effet-others__cta svg {
	width: 14px;
	height: 14px;
	transition: transform 220ms ease;
}

.gb-effet-others__card:hover .gb-effet-others__cta { gap: 10px; }
.gb-effet-others__card:hover .gb-effet-others__cta svg { transform: translateX(3px); }

@media (max-width: 860px) {
	.gb-effet-others__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 520px) {
	.gb-effet-others__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   Mon compte — auth + dashboard + pages internes (Greenbox)
   ============================================================ */

/* ---- Hero auth (logged-out) ---- */
.gb-account-auth {
	max-width: 1100px;
	margin: 0 auto;
	padding: clamp(28px, 4vw, 56px) clamp(16px, 3vw, 32px) clamp(48px, 6vw, 80px);
}

.gb-account-auth__hero {
	text-align: center;
	max-width: 640px;
	margin: 0 auto clamp(28px, 3vw, 40px);
}

.gb-account-auth__eyebrow {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-mid);
	margin: 0 0 12px;
}

.gb-account-auth__title {
	font-size: clamp(28px, 4vw, 44px);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--foreground);
	margin: 0 0 12px;
}

.gb-account-auth__lede {
	font-size: clamp(15px, 1.4vw, 17px);
	line-height: 1.55;
	color: var(--wp--preset--color--secondary);
	max-width: 56ch;
	margin: 0 auto;
}

/* ---- Grid 2-col ---- */
.gb-account-auth__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(16px, 2vw, 24px);
	align-items: stretch;
}
.gb-account-auth__grid--single,
.gb-account-auth--single .gb-account-auth__grid {
	grid-template-columns: 1fr;
	max-width: 500px;
	margin: 0 auto;
}

/* ---- Card commune (login / register / form sections) ---- */
.gb-account-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 18px;
	padding: clamp(24px, 2.4vw, 36px);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02), 0 8px 28px rgba(0, 0, 0, 0.04);
	display: flex;
	flex-direction: column;
}

.gb-account-card--register {
	background: linear-gradient(180deg, var(--wp--preset--color--accent-tint) 0%, var(--wp--preset--color--white) 50%);
	border-color: rgba(31, 74, 31, 0.12);
}

.gb-account-card__head {
	margin-bottom: 20px;
}

.gb-account-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: var(--wp--preset--color--accent-tint);
	color: var(--wp--preset--color--accent);
	margin-bottom: 14px;
}
.gb-account-card__icon--accent {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
}

.gb-account-card__title {
	font-size: clamp(20px, 2vw, 24px);
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--foreground);
	margin: 0 0 4px;
}

.gb-account-card__sub {
	font-size: 14px;
	color: var(--wp--preset--color--muted);
	margin: 0;
}

/* ---- Form inputs / actions ---- */
.gb-account-form { display: flex; flex-direction: column; gap: 16px; }

.gb-account-form--card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 18px;
	padding: clamp(24px, 2.4vw, 36px);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02), 0 8px 28px rgba(0, 0, 0, 0.04);
	gap: 24px;
}

.gb-account-form__row { display: flex; flex-direction: column; gap: 6px; }
.gb-account-form__row--inline {
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

.gb-account-form__grid {
	display: grid;
	gap: 16px;
}
.gb-account-form__grid--2 {
	grid-template-columns: 1fr 1fr;
}

.gb-account-form__label {
	font-size: 13px;
	font-weight: 600;
	color: var(--wp--preset--color--foreground);
	display: flex;
	gap: 4px;
	align-items: center;
}

.gb-account-form__req {
	color: var(--wp--preset--color--accent-mid);
	font-weight: 700;
}

.gb-account-form__input,
.gb-account-form input[type="text"],
.gb-account-form input[type="email"],
.gb-account-form input[type="tel"],
.gb-account-form input[type="password"],
.gb-account-form select,
.woocommerce-EditAccountForm input[type="text"],
.woocommerce-EditAccountForm input[type="email"],
.woocommerce-EditAccountForm input[type="password"] {
	width: 100%;
	padding: 12px 14px;
	font-size: 15px;
	line-height: 1.4;
	color: var(--wp--preset--color--foreground);
	background: #fbfbfb;
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 10px;
	transition: border-color var(--gb-transition), box-shadow var(--gb-transition), background var(--gb-transition);
	font-family: inherit;
	box-sizing: border-box;
}

.gb-account-form__input:focus,
.gb-account-form input:focus,
.gb-account-form select:focus,
.woocommerce-EditAccountForm input:focus {
	outline: none;
	background: var(--wp--preset--color--white);
	border-color: var(--gb-lime, #39b54a);
	box-shadow: 0 0 0 4px rgba(57, 181, 74, 0.14);
}

.gb-account-form__hint {
	display: block;
	font-size: 12px;
	color: var(--wp--preset--color--muted);
}
.gb-account-form__hint--block {
	padding: 12px 14px;
	background: var(--wp--preset--color--accent-tint);
	border-radius: 10px;
	font-size: 13px;
	color: var(--wp--preset--color--secondary);
	margin: 0;
}

.gb-account-form__check {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--wp--preset--color--secondary);
	cursor: pointer;
}
.gb-account-form__checkbox {
	width: 18px;
	height: 18px;
	accent-color: var(--wp--preset--color--accent);
	margin: 0;
}

.gb-account-form__forgot {
	font-size: 13px;
	color: var(--wp--preset--color--accent-mid);
	text-decoration: none;
	font-weight: 500;
}
.gb-account-form__forgot:hover { text-decoration: underline; }

.gb-account-form__actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 4px;
}
.gb-account-form__actions--end { justify-content: flex-end; }

.gb-account-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 13px 24px;
	font-size: 15px;
	font-weight: 600;
	font-family: inherit;
	border-radius: 999px;
	border: 1px solid transparent;
	cursor: pointer;
	transition: transform var(--gb-transition), box-shadow var(--gb-transition), background var(--gb-transition), color var(--gb-transition);
	text-decoration: none;
}

.gb-account-form__submit--primary {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
}
.gb-account-form__submit--primary:hover {
	background: var(--wp--preset--color--accent-mid);
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(31, 74, 31, 0.22);
}

.gb-account-form__submit--ghost {
	background: transparent;
	color: var(--wp--preset--color--secondary);
	border-color: var(--wp--preset--color--subtle);
}
.gb-account-form__submit--ghost:hover {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--foreground);
}

.gb-account-form__legal {
	font-size: 12px;
	color: var(--wp--preset--color--muted);
	margin: 0;
	line-height: 1.5;
}
.gb-account-form__legal a {
	color: var(--wp--preset--color--accent-mid);
	text-decoration: underline;
}

.gb-account-form__section + .gb-account-form__section {
	padding-top: 24px;
	border-top: 1px solid var(--wp--preset--color--subtle);
}
.gb-account-form__section-title {
	font-size: 17px;
	font-weight: 700;
	color: var(--wp--preset--color--foreground);
	margin: 0 0 4px;
}
.gb-account-form__section-sub {
	font-size: 13px;
	color: var(--wp--preset--color--muted);
	margin: 0 0 16px;
}
.gb-account-form__section .gb-account-form__row,
.gb-account-form__section .gb-account-form__grid {
	margin-top: 16px;
}

/* ---- Perks strip ---- */
.gb-account-auth__perks {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	list-style: none;
	padding: 0;
	margin: clamp(28px, 3vw, 40px) 0 0;
}

.gb-account-auth__perk {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 18px;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 14px;
}

.gb-account-auth__perk-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 8px;
	background: var(--wp--preset--color--accent-tint);
	color: var(--wp--preset--color--accent);
	flex-shrink: 0;
}

.gb-account-auth__perk-title {
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--foreground);
	margin: 0 0 2px;
}
.gb-account-auth__perk-sub {
	font-size: 12px;
	color: var(--wp--preset--color--muted);
	margin: 0;
}

/* ---- Greeting dashboard ---- */
.gb-account-greeting {
	margin-bottom: 28px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--wp--preset--color--subtle);
}
.gb-account-greeting__eyebrow {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-mid);
	margin: 0 0 8px;
}
.gb-account-greeting__title {
	font-size: clamp(26px, 3vw, 36px);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--foreground);
	margin: 0 0 8px;
}
.gb-account-greeting__meta {
	font-size: 14px;
	color: var(--wp--preset--color--muted);
	margin: 0;
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}
.gb-account-greeting__meta strong {
	color: var(--wp--preset--color--foreground);
	font-weight: 600;
}
.gb-account-greeting__meta-sep { color: var(--wp--preset--color--subtle); }

/* ---- Page heads (pages internes) ---- */
.gb-account-page-head {
	margin-bottom: 24px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--wp--preset--color--subtle);
}
.gb-account-page-head__title {
	font-size: clamp(22px, 2.4vw, 28px);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 0 0 6px;
	color: var(--wp--preset--color--foreground);
}
.gb-account-page-head__sub {
	font-size: 14px;
	color: var(--wp--preset--color--muted);
	margin: 0;
}
.gb-account-page-head__back {
	margin: 0 0 8px;
	font-size: 13px;
}
.gb-account-page-head__back a {
	color: var(--wp--preset--color--accent-mid);
	text-decoration: none;
	font-weight: 500;
}
.gb-account-page-head__back a:hover { text-decoration: underline; }

/* Reset H1 énorme par défaut du theme sur /mon-compte/ qui rentre en conflit */
.woocommerce-MyAccount-content > .gb-account-page-head:first-child,
.woocommerce-MyAccount-content > .gb-account-greeting:first-child {
	margin-top: 0;
}

/* ---- Layout 2-col Mon compte ---- */
.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 32px;
	align-items: start;
}
.woocommerce-account .woocommerce > .gb-account-nav,
.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation {
	width: 100%;
	max-width: 100%;
	justify-self: stretch;
}
.woocommerce-account .woocommerce-MyAccount-content {
	width: 100%;
	max-width: 100%;
	justify-self: stretch;
	min-width: 0;
}
@media (max-width: 900px) {
	.woocommerce-account .woocommerce {
		grid-template-columns: 1fr;
		gap: 18px;
	}
}

/* ---- Sidebar navigation Mon compte v2 ---- */
.gb-account-nav {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 16px;
	padding: 10px;
	position: sticky;
	top: 96px;
	box-shadow: 0 1px 2px rgba(15, 23, 17, 0.04);
}
.gb-account-nav__list,
.gb-account-nav__list li {
	list-style: none !important;
}
.gb-account-nav__list li::marker { content: none; }
.gb-account-nav__link,
.gb-account-nav__link:hover,
.gb-account-nav__item.is-active > .gb-account-nav__link {
	text-decoration: none !important;
}
.gb-account-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.gb-account-nav__item {
	margin: 0;
	padding: 0;
	list-style: none;
}
.gb-account-nav__item::before { content: none; }
.gb-account-nav__link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border-radius: 10px;
	color: var(--wp--preset--color--foreground);
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	transition: background var(--gb-transition), color var(--gb-transition), transform var(--gb-transition);
	position: relative;
}
.gb-account-nav__link:hover {
	background: var(--wp--preset--color--surface, #f7f4ee);
	color: var(--wp--preset--color--accent);
}
.gb-account-nav__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 8px;
	background: var(--wp--preset--color--surface, #f7f4ee);
	color: var(--wp--preset--color--accent);
	flex-shrink: 0;
	transition: background var(--gb-transition), color var(--gb-transition);
}
.gb-account-nav__icon svg {
	width: 18px;
	height: 18px;
}
.gb-account-nav__link:hover .gb-account-nav__icon {
	background: var(--wp--preset--color--white);
}
.gb-account-nav__label {
	flex: 1;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.gb-account-nav__item.is-active > .gb-account-nav__link {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
	box-shadow: 0 4px 14px rgba(46, 90, 50, 0.18);
}
.gb-account-nav__item.is-active > .gb-account-nav__link .gb-account-nav__icon {
	background: rgba(255, 255, 255, 0.18);
	color: var(--wp--preset--color--white);
}
.gb-account-nav__item.is-active > .gb-account-nav__link::before { content: none; }
.gb-account-nav__item--logout {
	margin-top: 6px;
	padding-top: 8px;
	border-top: 1px solid var(--wp--preset--color--subtle);
}
.gb-account-nav__item--logout > .gb-account-nav__link {
	color: var(--wp--preset--color--muted);
}
.gb-account-nav__item--logout > .gb-account-nav__link:hover {
	color: #b04545;
	background: rgba(176, 69, 69, 0.06);
}
.gb-account-nav__item--logout > .gb-account-nav__link:hover .gb-account-nav__icon {
	color: #b04545;
}
.gb-account-nav__item--loyalty_reward > .gb-account-nav__link .gb-account-nav__icon {
	color: #c98a1a;
	background: rgba(201, 138, 26, 0.10);
}
.gb-account-nav__item--loyalty_reward.is-active > .gb-account-nav__link .gb-account-nav__icon {
	background: rgba(255, 255, 255, 0.18);
	color: var(--wp--preset--color--white);
}

@media (max-width: 900px) {
	.gb-account-nav {
		position: static;
		padding: 8px;
	}
	.gb-account-nav__list {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 6px;
	}
	.gb-account-nav__item {
		flex: 1 1 auto;
	}
	.gb-account-nav__link {
		padding: 9px 12px;
		font-size: 13.5px;
	}
	.gb-account-nav__icon {
		width: 28px;
		height: 28px;
	}
	.gb-account-nav__item--logout {
		flex-basis: 100%;
		margin-top: 4px;
		padding-top: 6px;
	}
	.gb-account-nav__item.is-active > .gb-account-nav__link::before { display: none; }
}

@media (max-width: 480px) {
	.gb-account-nav__list { gap: 4px; }
	.gb-account-nav__link {
		padding: 8px 10px;
		gap: 9px;
	}
	.gb-account-nav__label { font-size: 13px; }
}

/* ---- Commandes — table desktop ---- */
.gb-account-orders {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 14px;
	overflow: hidden;
}

.gb-account-orders__table {
	width: 100%;
	border-collapse: collapse;
}

.gb-account-orders__th {
	background: var(--wp--preset--color--off-white);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	text-align: left;
	padding: 14px 18px;
	border-bottom: 1px solid var(--wp--preset--color--subtle);
}

.gb-account-orders__row + .gb-account-orders__row .gb-account-orders__cell {
	border-top: 1px solid var(--wp--preset--color--subtle);
}

.gb-account-orders__cell {
	padding: 16px 18px;
	font-size: 14px;
	color: var(--wp--preset--color--foreground);
	vertical-align: middle;
}

.gb-account-orders__number {
	font-weight: 600;
	color: var(--wp--preset--color--foreground);
	text-decoration: none;
}
.gb-account-orders__number:hover { color: var(--wp--preset--color--accent); }
.gb-account-orders__hash { color: var(--wp--preset--color--muted); font-weight: 500; margin-right: 2px; }

.gb-account-orders__date { color: var(--wp--preset--color--secondary); white-space: nowrap; }

.gb-account-orders__total strong { font-weight: 600; }
.gb-account-orders__total small { display: block; font-size: 12px; color: var(--wp--preset--color--muted); margin-top: 2px; }

/* Status pills */
.gb-account-orders__status {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 10px 5px 8px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--secondary);
	border: 1px solid var(--wp--preset--color--subtle);
}
.gb-account-orders__status-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
	display: inline-block;
}

.gb-account-orders__status--completed,
.gb-account-orders__status--completed { background: rgba(57, 181, 74, 0.10); color: #2c8a3a; border-color: rgba(57, 181, 74, 0.25); }
.gb-account-orders__status--processing { background: rgba(245, 159, 0, 0.10); color: #b06a00; border-color: rgba(245, 159, 0, 0.25); }
.gb-account-orders__status--on-hold { background: rgba(96, 96, 96, 0.08); color: #555; border-color: rgba(0, 0, 0, 0.08); }
.gb-account-orders__status--pending { background: rgba(70, 130, 220, 0.10); color: #2563a8; border-color: rgba(70, 130, 220, 0.25); }
.gb-account-orders__status--cancelled,
.gb-account-orders__status--failed { background: rgba(192, 57, 43, 0.10); color: var(--wp--preset--color--danger); border-color: rgba(192, 57, 43, 0.25); }
.gb-account-orders__status--refunded { background: rgba(120, 80, 200, 0.10); color: #6a47b0; border-color: rgba(120, 80, 200, 0.25); }

.gb-account-orders__action {
	display: inline-flex;
	align-items: center;
	padding: 7px 14px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	border: 1px solid var(--wp--preset--color--subtle);
	color: var(--wp--preset--color--secondary);
	background: var(--wp--preset--color--white);
	transition: background var(--gb-transition), color var(--gb-transition), border-color var(--gb-transition);
}
.gb-account-orders__action:hover {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--foreground);
}
.gb-account-orders__action--primary {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--accent);
}
.gb-account-orders__action--primary:hover {
	background: var(--wp--preset--color--accent-mid);
	color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--accent-mid);
}

/* ---- Addresses cards ---- */
.gb-account-addresses {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.gb-account-address-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 14px;
	padding: 22px 24px;
	transition: border-color var(--gb-transition), transform var(--gb-transition), box-shadow var(--gb-transition);
}
.gb-account-address-card:hover {
	border-color: var(--wp--preset--color--accent-soft);
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.05);
}
.gb-account-address-card.is-empty {
	background: var(--wp--preset--color--off-white);
	border-style: dashed;
}

.gb-account-address-card__head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 16px;
}

.gb-account-address-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 10px;
	background: var(--wp--preset--color--accent-tint);
	color: var(--wp--preset--color--accent);
	flex-shrink: 0;
}

.gb-account-address-card__heading {
	flex: 1;
	min-width: 0;
}

.gb-account-address-card__title {
	font-size: 16px;
	font-weight: 600;
	color: var(--wp--preset--color--foreground);
	margin: 0;
	letter-spacing: -0.005em;
}

.gb-account-address-card__status {
	font-size: 12px;
	color: var(--wp--preset--color--muted);
	margin: 2px 0 0;
}
.gb-account-address-card:not(.is-empty) .gb-account-address-card__status::before {
	content: '●';
	color: var(--gb-lime, #39b54a);
	margin-right: 5px;
	font-size: 10px;
}

.gb-account-address-card__edit {
	display: inline-flex;
	align-items: center;
	padding: 7px 14px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	color: var(--wp--preset--color--accent-mid);
	background: var(--wp--preset--color--accent-tint);
	text-decoration: none;
	border: 1px solid transparent;
	transition: background var(--gb-transition), color var(--gb-transition);
}
.gb-account-address-card__edit:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
}

.gb-account-address-card__body { font-size: 14px; line-height: 1.55; }
.gb-account-address-card__address { font-style: normal; color: var(--wp--preset--color--secondary); }
.gb-account-address-card__placeholder { color: var(--wp--preset--color--muted); font-style: italic; margin: 0; }

/* ---- Empty state ---- */
.gb-account-empty {
	background: var(--wp--preset--color--white);
	border: 1px dashed var(--wp--preset--color--subtle);
	border-radius: 16px;
	padding: clamp(32px, 4vw, 56px);
	text-align: center;
}
.gb-account-empty__icon {
	display: inline-flex;
	margin-bottom: 16px;
	color: var(--wp--preset--color--accent-soft);
}
.gb-account-empty__title {
	font-size: 18px;
	font-weight: 600;
	color: var(--wp--preset--color--foreground);
	margin: 0 0 6px;
}
.gb-account-empty__sub {
	font-size: 14px;
	color: var(--wp--preset--color--muted);
	margin: 0 0 20px;
}
.gb-account-empty__cta {
	display: inline-flex;
	align-items: center;
	padding: 11px 22px;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background var(--gb-transition), transform var(--gb-transition);
}
.gb-account-empty__cta:hover {
	background: var(--wp--preset--color--accent-mid);
	transform: translateY(-1px);
}

/* ---- Pagination ---- */
.gb-account-pagination {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin-top: 20px;
}
.gb-account-pagination__btn {
	padding: 10px 18px;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--subtle);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--secondary);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background var(--gb-transition), color var(--gb-transition);
}
.gb-account-pagination__btn:hover {
	background: var(--wp--preset--color--accent-tint);
	color: var(--wp--preset--color--accent);
}

/* ---- Responsive ---- */
@media (max-width: 900px) {
	.gb-account-auth__grid { grid-template-columns: 1fr; }
	.gb-account-auth__perks { grid-template-columns: 1fr; }
	.gb-account-addresses { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
	.gb-account-form__grid--2 { grid-template-columns: 1fr; }

	/* Table commandes → stack en cards */
	.gb-account-orders { border: none; background: transparent; }
	.gb-account-orders__table { display: block; }
	.gb-account-orders__table thead { display: none; }
	.gb-account-orders__table tbody { display: flex; flex-direction: column; gap: 12px; }
	.gb-account-orders__row {
		display: grid;
		grid-template-columns: 1fr auto;
		gap: 6px 14px;
		background: var(--wp--preset--color--white);
		border: 1px solid var(--wp--preset--color--subtle);
		border-radius: 14px;
		padding: 16px 18px;
		align-items: center;
	}
	.gb-account-orders__cell {
		display: flex;
		padding: 0;
		border: none !important;
		font-size: 13px;
	}
	.gb-account-orders__cell::before {
		content: attr(data-title);
		font-size: 11px;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: var(--wp--preset--color--muted);
		margin-right: 8px;
		min-width: 70px;
	}
	.gb-account-orders__cell--order-number { grid-column: 1 / -1; padding-bottom: 8px; border-bottom: 1px solid var(--wp--preset--color--subtle) !important; margin-bottom: 4px; }
	.gb-account-orders__cell--order-number::before { display: none; }
	.gb-account-orders__cell--order-number .gb-account-orders__number { font-size: 16px; }
	.gb-account-orders__cell--order-actions { grid-column: 1 / -1; padding-top: 8px; border-top: 1px solid var(--wp--preset--color--subtle) !important; margin-top: 4px; }
	.gb-account-orders__cell--order-actions::before { display: none; }
}

@media (max-width: 480px) {
	.gb-account-auth { padding-left: 12px; padding-right: 12px; }
	.gb-account-card { padding: 20px 18px; }
	.gb-account-form__actions { flex-direction: column; align-items: stretch; }
	.gb-account-form__actions .gb-account-form__submit { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.gb-account-form__submit,
	.gb-account-address-card,
	.gb-account-orders__action,
	.gb-account-empty__cta { transition: none; }
	.gb-account-form__submit:hover,
	.gb-account-address-card:hover,
	.gb-account-empty__cta:hover { transform: none; }
}

/* ---- Fix : hide page default title (Mon compte / Commandes / etc) ---- */
body.woocommerce-account .entry-header,
body.woocommerce-account > .wp-block-template-part > .entry-header,
body.woocommerce-account .wp-block-post-title {
	display: none !important;
}

/* ---- Form fields WC rendus via woocommerce_form_field (edit-address) ---- */
.gb-account-edit-address .form-row,
.gb-account-edit-address .form-row-first,
.gb-account-edit-address .form-row-last,
.gb-account-edit-address .form-row-wide { margin: 0; }

.gb-account-edit-address .form-row label,
.woocommerce-EditAccountForm .form-row label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--wp--preset--color--foreground);
	margin-bottom: 6px;
}

.gb-account-edit-address__fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px 20px;
}
.gb-account-edit-address__fields .form-row-wide { grid-column: 1 / -1; }
.gb-account-edit-address__fields .form-row { display: flex; flex-direction: column; }

.gb-account-edit-address select,
.gb-account-edit-address .select2-selection,
.gb-account-edit-address .select2-container--default .select2-selection--single {
	height: auto !important;
	padding: 12px 14px !important;
	border-radius: 10px !important;
	border: 1px solid var(--wp--preset--color--subtle) !important;
	background: #fbfbfb !important;
	box-sizing: border-box;
}
.gb-account-edit-address .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0 !important;
	line-height: 1.4 !important;
}
.gb-account-edit-address .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100% !important; }

@media (max-width: 600px) {
	.gb-account-edit-address__fields { grid-template-columns: 1fr; }
}

/* Fix mobile orders : WC shop_table_responsive masque <th> par défaut, on les force */
@media (max-width: 768px) {
	.gb-account-orders__table tbody th.gb-account-orders__cell--order-number {
		display: flex !important;
	}
}

/* =========================================================
   Newsletter inline (Fluent Forms id=4) — variante centrée home
   ========================================================= */
.gb-newsletter {
	max-width: 560px;
	margin: 0 auto;
	text-align: center;
}
.gb-newsletter__text {
	margin-bottom: 24px;
}
.gb-newsletter__title {
	font-size: clamp(28px, 3.4vw, 38px);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin: 0 0 10px;
	color: var(--wp--preset--color--foreground);
}
.gb-newsletter__sub {
	margin: 0 auto;
	font-size: 15px;
	color: var(--wp--preset--color--muted);
	line-height: 1.55;
	max-width: 46ch;
}
.gb-newsletter__form {
	min-width: 0;
	max-width: 480px;
	margin: 0 auto;
}

/* Override Fluent Forms à l'intérieur du footer */
.gb-newsletter__form .frm-fluent-form,
.gb-newsletter__form .ff-el-group,
.gb-newsletter__form .ff-t-container {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}
.gb-newsletter__form .ff-el-form-control,
.gb-newsletter__form input[type="email"] {
	height: 48px;
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 10px;
	padding: 0 16px;
	font-size: 14.5px;
	background: var(--wp--preset--color--white);
	transition: border-color var(--gb-transition), box-shadow var(--gb-transition);
	width: 100%;
	box-sizing: border-box;
}
.gb-newsletter__form input[type="email"]:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 0 0 3px rgba(31, 74, 31, 0.12);
}
.gb-newsletter__form .ff-btn,
.gb-newsletter__form button[type="submit"] {
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--white) !important;
	border: 0 !important;
	border-radius: 10px !important;
	height: 48px;
	padding: 0 24px;
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: 0.01em;
	cursor: pointer;
	transition: background var(--gb-transition), transform var(--gb-transition), box-shadow var(--gb-transition);
}
.gb-newsletter__form .ff-btn:hover,
.gb-newsletter__form button[type="submit"]:hover {
	background: var(--wp--preset--color--foreground) !important;
	transform: translateY(-1px);
}
/* Stack inputs : email + RGPD + button verticalement, compact */
.gb-newsletter__form .ff-el-group {
	margin-bottom: 10px;
}
.gb-newsletter__form .ff-el-group .ff-el-input--label { display: none; }
.gb-newsletter__form .ff-el-input--content { padding: 0; }
.gb-newsletter__form .ff-el-form-check-label,
.gb-newsletter__form .ff-el-form-check {
	font-size: 12.5px;
	color: var(--wp--preset--color--muted);
	line-height: 1.45;
}
.gb-newsletter__form .ff-el-form-check a {
	color: var(--wp--preset--color--accent);
	text-decoration: underline;
}
.gb-newsletter__form .ff-message-success,
.gb-newsletter__form .ff-success-success {
	background: rgba(31, 74, 31, 0.08);
	border: 1px solid rgba(31, 74, 31, 0.18);
	border-radius: 10px;
	padding: 14px 18px;
	font-size: 14px;
	color: var(--wp--preset--color--accent);
}
.gb-newsletter__form .ff-el-input--label > label,
.gb-newsletter__form .text-danger {
	font-size: 12.5px;
}

.gb-newsletter__form .ff_submit_btn_wrapper,
.gb-newsletter__form .ff-el-group:has(button[type="submit"]) {
	text-align: center;
}
.gb-newsletter__form .ff-message-success,
.gb-newsletter__form .ff-success-success {
	text-align: center;
}

@media (max-width: 600px) {
	.gb-newsletter__title { font-size: clamp(24px, 6.5vw, 30px); }
	.gb-newsletter__form { padding: 0 4px; }
}

/* =========================================================
   Header — Mini-cart badge Greenbox
   ========================================================= */
.wc-block-mini-cart__button {
	color: var(--wp--preset--color--foreground) !important;
	transition: color var(--gb-transition);
}
.wc-block-mini-cart__button:hover {
	color: var(--wp--preset--color--accent) !important;
}
.wc-block-mini-cart__icon {
	width: 24px;
	height: 24px;
}
.wc-block-mini-cart__badge {
	background-color: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--white) !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	min-width: 18px;
	height: 18px;
	border-radius: 999px !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 5px;
	box-shadow: 0 0 0 2px var(--wp--preset--color--white);
	line-height: 1;
}
.wc-block-mini-cart__badge[hidden] {
	display: none !important;
}
.wc-block-mini-cart__quantity-badge {
	position: relative;
}


/* ============================================
   HEADER MOBILE — drawer redesign
   Bar cleanup + overlay drawer style with icons
   ============================================ */

/* Desktop: hide drawer-only chrome injected inside wp:navigation */
.gb-drawer-header,
.gb-drawer-section,
.gb-drawer-footer,
.wp-block-navigation .gb-nav-item--secondary {
	display: none !important;
}


@media (max-width: 599.98px) {
	/* === Bar cleanup === */
	.wp-block-loginout,
	.gb-loyalty-badge,
	.wp-block-woocommerce-customer-account {
		display: none !important;
	}

	/* Logo plus lisible : on lève la largeur 160 forcée par wp:site-logo */
	.custom-logo-link {
		width: auto !important;
		display: inline-flex;
	}
	.custom-logo-link img {
		width: auto !important;
		max-height: 32px;
		max-width: 140px;
	}

	/* === Drawer ouvert : afficher le chrome === */
	.wp-block-navigation__responsive-container.has-modal-open .gb-drawer-header,
	.wp-block-navigation__responsive-container.has-modal-open .gb-drawer-section,
	.wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation .gb-nav-item--secondary {
		display: block !important;
	}
	.wp-block-navigation__responsive-container.has-modal-open .gb-drawer-footer {
		display: flex !important;
	}

	/* Container drawer plein écran propre */
	.wp-block-navigation__responsive-container.has-modal-open {
		padding: 0 !important;
	}
	.wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__responsive-close {
		max-width: 100% !important;
		padding: 0 !important;
	}
	.wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__responsive-dialog {
		margin: 0 !important;
		display: flex;
		flex-direction: column;
		min-height: 100vh;
	}
	.wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__responsive-container-content {
		padding: 0 !important;
		display: flex;
		flex-direction: column;
		flex: 1;
		min-height: 0;
		gap: 0 !important;
	}

	/* Close button positionné par WP — on l'agrandit + accent */
	.wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__responsive-container-close {
		position: absolute !important;
		top: 14px !important;
		right: 14px !important;
		z-index: 5;
		padding: 10px !important;
		color: var(--wp--preset--color--foreground, #1a2820) !important;
	}
	.wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__responsive-container-close svg {
		width: 26px;
		height: 26px;
	}

	/* === Drawer header (logo + tagline) === */
	.gb-drawer-header {
		padding: 22px 24px 18px;
		border-bottom: 1px solid #eee9dc;
		background: #fbfaf6;
	}
	.gb-drawer-logo {
		display: block;
		font-family: var(--wp--preset--font-family--display, "Jost", "Inter", sans-serif);
		font-size: 19px;
		font-weight: 700;
		letter-spacing: 0.05em;
		color: #1f4a1f;
		text-decoration: none;
		text-transform: uppercase;
	}
	.gb-drawer-tagline {
		margin: 4px 0 0;
		font-size: 12px;
		color: #6b6b66;
		letter-spacing: 0.01em;
	}

	/* === Nav lists in drawer === */
	.wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__container {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 0 !important;
		padding: 6px 0 !important;
		margin: 0 !important;
		list-style: none !important;
		width: 100% !important;
	}
	.wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation-item {
		display: block !important;
		font-size: 15.5px !important;
		font-weight: 500;
		margin: 0 !important;
	}
	.wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation-item__content {
		display: flex;
		align-items: center;
		gap: 14px;
		padding: 13px 24px;
		min-height: 48px;
		text-align: left;
		text-decoration: none !important;
		color: var(--wp--preset--color--foreground, #1a2820);
		transition: background-color 160ms ease;
	}
	.wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation-item__content:hover,
	.wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation-item__content:focus-visible {
		background: #f7f4ee;
	}
	.wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content {
		background: #eef3ec;
		color: #1f4a1f;
		font-weight: 600;
	}

	/* === Icons via ::before mask-image (Lucide style) === */
	.wp-block-navigation__responsive-container.has-modal-open .gb-nav-item .wp-block-navigation-item__content::before {
		content: "";
		flex-shrink: 0;
		width: 22px;
		height: 22px;
		background-color: var(--wp--preset--color--accent, #1f4a1f);
		mask-position: center;
		mask-repeat: no-repeat;
		mask-size: 22px;
		-webkit-mask-position: center;
		-webkit-mask-repeat: no-repeat;
		-webkit-mask-size: 22px;
	}
	.gb-nav-item--home   > .wp-block-navigation-item__content::before { mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9.5 12 3l9 6.5V20a1 1 0 0 1-1 1h-5v-7h-6v7H4a1 1 0 0 1-1-1Z'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9.5 12 3l9 6.5V20a1 1 0 0 1-1 1h-5v-7h-6v7H4a1 1 0 0 1-1-1Z'/%3E%3C/svg%3E"); }
	.gb-nav-item--shop   > .wp-block-navigation-item__content::before { mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z M3 6h18 M16 10a4 4 0 1 1-8 0'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z M3 6h18 M16 10a4 4 0 1 1-8 0'/%3E%3C/svg%3E"); }
	.gb-nav-item--pin    > .wp-block-navigation-item__content::before { mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 7-8 13-8 13s-8-6-8-13a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 7-8 13-8 13s-8-6-8-13a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
	.gb-nav-item--news   > .wp-block-navigation-item__content::before { mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2 M10 7h6 M10 11h6 M10 15h4 M2 8v12a2 2 0 0 0 2 2'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2 M10 7h6 M10 11h6 M10 15h4 M2 8v12a2 2 0 0 0 2 2'/%3E%3C/svg%3E"); }
	.gb-nav-item--help   > .wp-block-navigation-item__content::before { mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.1 9.1a3 3 0 0 1 5.83 1c0 2-3 3-3 3 M12 17h.01'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.1 9.1a3 3 0 0 1 5.83 1c0 2-3 3-3 3 M12 17h.01'/%3E%3C/svg%3E"); }
	.gb-nav-item--mail   > .wp-block-navigation-item__content::before { mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 6-10 7L2 6'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 6-10 7L2 6'/%3E%3C/svg%3E"); }
	.gb-nav-item--account > .wp-block-navigation-item__content::before { mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E"); }
	.gb-nav-item--loyalty > .wp-block-navigation-item__content::before { mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/%3E%3C/svg%3E"); }
	.gb-nav-item--loyalty-program > .wp-block-navigation-item__content::before { mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='4' rx='1'/%3E%3Cpath d='M12 8v13 M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7 M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='4' rx='1'/%3E%3Cpath d='M12 8v13 M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7 M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5'/%3E%3C/svg%3E"); }

	/* Section title "Mon espace" */
	.gb-drawer-section {
		padding: 14px 24px 4px;
		border-top: 1px solid #eee9dc;
		margin-top: 6px;
	}
	.gb-drawer-section__title {
		margin: 0;
		font-size: 11px;
		font-weight: 600;
		letter-spacing: 0.16em;
		text-transform: uppercase;
		color: #8a8a85;
	}

	/* Footer drawer — CTA boutiques + tel */
	.gb-drawer-footer {
		margin-top: auto;
		padding: 20px 24px 28px;
		border-top: 1px solid #eee9dc;
		background: #fbfaf6;
		flex-direction: column;
		gap: 12px;
	}
	.gb-drawer-cta {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		padding: 13px 18px;
		min-height: 48px;
		border-radius: 999px;
		background: #1f4a1f;
		color: #fff !important;
		font-size: 14px;
		font-weight: 600;
		text-decoration: none !important;
		transition: background-color 200ms ease, transform 200ms ease;
	}
	.gb-drawer-cta:hover { background: #173816; transform: translateY(-1px); }
	.gb-drawer-cta svg { width: 18px; height: 18px; }
	.gb-drawer-tel {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		min-height: 40px;
		font-size: 14px;
		font-weight: 500;
		color: var(--wp--preset--color--foreground, #1a2820) !important;
		text-decoration: none !important;
	}
	.gb-drawer-tel svg { width: 18px; height: 18px; color: #1f4a1f; }

	/* Burger / open button — accent vert + plus large pour touch */
	.wp-block-navigation__responsive-container-open {
		padding: 8px !important;
		color: var(--wp--preset--color--foreground, #1a2820) !important;
	}
	.wp-block-navigation__responsive-container-open svg {
		width: 26px;
		height: 26px;
	}
}

/* ============================================
   Pages légales (mentions, CGV, confidentialité, cookies)
   Typographie « document » : titres plus sobres que les titres marketing,
   meilleur confort de lecture sur du texte juridique long.
   Scopé aux 4 pages (IDs stables, livrés via export DB).
   ============================================ */
.page-id-13 .wp-block-post-content,
.page-id-14 .wp-block-post-content,
.page-id-15 .wp-block-post-content,
.page-id-16 .wp-block-post-content {
	font-size: 16px;
	line-height: 1.7;
	color: var(--wp--preset--color--foreground, #1a2820);
}
.page-id-13 .wp-block-post-content h2,
.page-id-14 .wp-block-post-content h2,
.page-id-15 .wp-block-post-content h2,
.page-id-16 .wp-block-post-content h2 {
	font-size: clamp(1.25rem, 1.1rem + 0.7vw, 1.55rem);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.01em;
	margin-top: 2.2em;
	margin-bottom: 0.5em;
}
.page-id-13 .wp-block-post-content h3,
.page-id-14 .wp-block-post-content h3,
.page-id-15 .wp-block-post-content h3,
.page-id-16 .wp-block-post-content h3 {
	font-size: clamp(1.05rem, 1rem + 0.35vw, 1.2rem);
	font-weight: 600;
	line-height: 1.3;
	margin-top: 1.5em;
	margin-bottom: 0.4em;
}
.page-id-13 .wp-block-post-content p,
.page-id-14 .wp-block-post-content p,
.page-id-15 .wp-block-post-content p,
.page-id-16 .wp-block-post-content p,
.page-id-13 .wp-block-post-content li,
.page-id-14 .wp-block-post-content li,
.page-id-15 .wp-block-post-content li,
.page-id-16 .wp-block-post-content li {
	margin-bottom: 0.5em;
}

/* Pages légales — titre H1 proportionné (évite le H1 marketing géant sur titre long) */
.page-id-13 .wp-block-post-title,
.page-id-14 .wp-block-post-title,
.page-id-15 .wp-block-post-title,
.page-id-16 .wp-block-post-title {
	font-size: clamp(1.9rem, 1.25rem + 3vw, 3rem);
	line-height: 1.12;
	letter-spacing: -0.015em;
}

/* Pages légales — resserrage des espaces verticaux + listes en mobile/tablette */
@media (max-width: 768px) {
	.page-id-13 main.wp-block-group,
	.page-id-14 main.wp-block-group,
	.page-id-15 main.wp-block-group,
	.page-id-16 main.wp-block-group {
		padding-top: var(--wp--preset--spacing--lg) !important;   /* 40px au lieu de 64 */
		padding-bottom: var(--wp--preset--spacing--xl) !important; /* 64px au lieu de 96 */
	}
	.page-id-13 .wp-block-post-content ul,
	.page-id-14 .wp-block-post-content ul,
	.page-id-15 .wp-block-post-content ul,
	.page-id-16 .wp-block-post-content ul,
	.page-id-13 .wp-block-post-content ol,
	.page-id-14 .wp-block-post-content ol,
	.page-id-15 .wp-block-post-content ol,
	.page-id-16 .wp-block-post-content ol {
		padding-left: 22px;
	}
	/* h2 un cran plus serré contre le paragraphe précédent en mobile */
	.page-id-13 .wp-block-post-content h2,
	.page-id-14 .wp-block-post-content h2,
	.page-id-15 .wp-block-post-content h2,
	.page-id-16 .wp-block-post-content h2 {
		margin-top: 1.8em;
	}
}

/* =====================================================
   RAYONS MOMENTANÉMENT INDISPONIBLES (Huiles / Tisanes)
   Badge card + bouton Prévenez-moi + panneau home +
   notice archive + tuiles home + modal capture email.
   Palette : ambre doux sur ivoire (pas d'alerte rouge).
   ===================================================== */
:root {
	--gb-soon-amber:   #b57b1c;
	--gb-soon-amber-d: #8f6113;
	--gb-soon-tint:    #f6eeda;
}

/* Badge coin de card — ambre, top-right (empile avec le système existant) */
.gb-products-carousel .gb-product-badge--soon {
	position: absolute;
	top: 14px;
	right: 14px;
	left: auto;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border-radius: 6px;
	background: var(--gb-soon-amber);
	color: #fff;
	box-shadow: 0 4px 10px rgba(181, 123, 28, 0.28);
	pointer-events: none;
}

/* Cards en rupture : image désaturée + légèrement estompée (dissuasion douce) */
.gb-products-carousel ul.products > li.product.outofstock img {
	filter: grayscale(0.35) opacity(0.72);
	transition: filter var(--gb-transition, 0.3s ease);
}
.gb-products-carousel ul.products > li.product.outofstock:hover img {
	filter: grayscale(0.12) opacity(0.9);
}

/* Bouton « Prévenez-moi » — ghost vert on-brand (secondaire, pas un achat) */
.gb-notify-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	width: 100%;
	padding: 11px 16px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.1;
	color: var(--wp--preset--color--accent, #1f4a1f);
	background: #fff;
	border: 1.5px solid var(--wp--preset--color--accent, #1f4a1f);
	border-radius: 999px;
	cursor: pointer;
	text-decoration: none;
	transition: background var(--gb-transition, 0.25s ease), color var(--gb-transition, 0.25s ease), transform var(--gb-transition, 0.25s ease), box-shadow var(--gb-transition, 0.25s ease);
}
.gb-notify-btn::before {
	content: "";
	width: 15px;
	height: 15px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 22a2.5 2.5 0 0 0 2.45-2h-4.9A2.5 2.5 0 0 0 12 22Zm6-6V11a6 6 0 0 0-5-5.91V4a1 1 0 0 0-2 0v1.09A6 6 0 0 0 6 11v5l-2 2v1h16v-1Z'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 22a2.5 2.5 0 0 0 2.45-2h-4.9A2.5 2.5 0 0 0 12 22Zm6-6V11a6 6 0 0 0-5-5.91V4a1 1 0 0 0-2 0v1.09A6 6 0 0 0 6 11v5l-2 2v1h16v-1Z'/%3E%3C/svg%3E") center / contain no-repeat;
	flex: 0 0 auto;
}
.gb-notify-btn:hover,
.gb-notify-btn:focus-visible {
	background: var(--wp--preset--color--accent, #1f4a1f);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(31, 74, 31, 0.22);
}
.gb-notify-btn--wide { width: 100%; margin-top: 4px; }

/* Encart single product (sous le résumé) */
.gb-notify-inline {
	margin: 18px 0 4px;
	padding: 18px 20px;
	background: var(--gb-soon-tint);
	border: 1px solid rgba(181, 123, 28, 0.28);
	border-radius: 14px;
}
.gb-notify-inline__head {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 14px;
}
.gb-notify-inline__head svg {
	flex: 0 0 auto;
	width: 26px;
	height: 26px;
	color: var(--gb-soon-amber-d);
	margin-top: 2px;
}
.gb-notify-inline__title {
	margin: 0 0 3px;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--gb-soon-amber-d);
	text-transform: uppercase;
}
.gb-notify-inline__text {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: #5a5344;
}

/* Panneau home « rayon revient bientôt » (remplace le carrousel) */
.gb-soon-panel {
	box-sizing: border-box; /* sinon le padding 24px s'ajoute à 100vw → +48px d'overflow */
	background: linear-gradient(180deg, #faf7ee, var(--gb-soon-tint));
	padding: clamp(2.5rem, 5vw, 4.5rem) 24px;
	/* full-bleed même dans un conteneur contraint (archive) — cf. pattern Trust */
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.gb-soon-panel__inner {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
}
.gb-soon-panel__badge {
	display: inline-block;
	margin-bottom: 14px;
	padding: 6px 14px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #fff;
	background: var(--gb-soon-amber);
	border-radius: 999px;
}
.gb-soon-panel__title {
	margin: 0 0 10px;
	font-size: clamp(22px, 3vw, 30px);
	color: var(--wp--preset--color--accent, #1f4a1f);
}
.gb-soon-panel__text {
	margin: 0 auto 22px;
	max-width: 520px;
	font-size: 16px;
	line-height: 1.6;
	color: #5a5344;
}
.gb-soon-panel .gb-notify-btn { width: auto; padding: 12px 26px; }

/* Notice dans la bannière d'archive (Huiles / Tisanes) */
.gb-archive-notice {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 16px;
	padding: 12px 16px;
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid rgba(181, 123, 28, 0.35);
	border-radius: 12px;
	backdrop-filter: blur(3px);
}
.gb-archive-notice__badge {
	display: inline-flex;
	align-items: center;
	padding: 5px 11px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #fff;
	background: var(--gb-soon-amber);
	border-radius: 6px;
	white-space: nowrap;
}
.gb-archive-notice__text {
	flex: 1 1 220px;
	font-size: 14px;
	line-height: 1.45;
	color: #4a4335;
}
.gb-archive-notice__cta { width: auto; padding: 9px 18px; font-size: 13px; }

/* Tuiles home Huiles / Tisanes (état indisponible) */
.gb-collection-tile--soon { position: relative; }
.gb-collection-tile--soon .gb-collection-tile__media img {
	filter: grayscale(0.4) opacity(0.82);
	transition: filter var(--gb-transition, 0.3s ease);
}
.gb-collection-tile--soon:hover .gb-collection-tile__media img { filter: grayscale(0.15) opacity(0.95); }
.gb-collection-tile__chip {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 3;
	padding: 5px 11px;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #fff;
	background: var(--gb-soon-amber);
	border-radius: 6px;
	box-shadow: 0 3px 8px rgba(181, 123, 28, 0.3);
}

/* Modal « Prévenez-moi » */
body.gb-modal-open { overflow: hidden; }
.gb-notify-modal[hidden] { display: none; }
.gb-notify-modal {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.gb-notify-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(20, 20, 20, 0.55);
	backdrop-filter: blur(4px);
}
.gb-notify-modal__panel {
	position: relative;
	width: 100%;
	max-width: 440px;
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 24px 64px rgba(0, 0, 0, 0.32);
	overflow: hidden;
	animation: gb-qa-pop 0.32s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.gb-notify-modal__close {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 1px solid #ebebeb;
	border-radius: 999px;
	color: #555;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	transition: transform var(--gb-transition, 0.25s ease);
}
.gb-notify-modal__close:hover { transform: scale(1.08); color: #1a1a1a; }
.gb-notify-modal__close svg { width: 18px; height: 18px; }
.gb-notify-modal__body { padding: 34px 30px 30px; }
.gb-notify-modal__eyebrow {
	display: inline-block;
	margin-bottom: 10px;
	padding: 4px 11px;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #fff;
	background: var(--gb-soon-amber);
	border-radius: 999px;
}
.gb-notify-modal__title {
	margin: 0 0 8px;
	font-size: 22px;
	color: var(--wp--preset--color--accent, #1f4a1f);
}
.gb-notify-modal__lede {
	margin: 0 0 18px;
	font-size: 14.5px;
	line-height: 1.55;
	color: #5a5344;
}
.gb-notify-modal__label {
	display: block;
	margin-bottom: 6px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #6a6350;
}
.gb-notify-modal__input {
	box-sizing: border-box; /* sinon padding+bordure s'ajoutent à width:100% → dépasse à droite */
	display: block;
	width: 100%;
	padding: 13px 15px;
	font-size: 15px;
	border: 1.5px solid #e2ddd0;
	border-radius: 12px;
	background: #fbf9f3;
	transition: border-color var(--gb-transition, 0.2s ease), background var(--gb-transition, 0.2s ease);
}
.gb-notify-modal__input:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent, #1f4a1f);
	background: #fff;
}
.gb-notify-modal__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.gb-notify-modal__submit {
	box-sizing: border-box;
	width: 100%;
	margin-top: 14px;
	padding: 13px 18px;
	font-size: 15px;
	font-weight: 700;
	color: #fff;
	background: var(--wp--preset--color--accent, #1f4a1f);
	border: none;
	border-radius: 999px;
	cursor: pointer;
	transition: background var(--gb-transition, 0.25s ease), transform var(--gb-transition, 0.25s ease);
}
.gb-notify-modal__submit:hover { background: #173a17; transform: translateY(-1px); }
.gb-notify-modal__submit.is-loading { opacity: 0.7; pointer-events: none; }
.gb-notify-modal__feedback { margin: 12px 0 0; font-size: 14px; line-height: 1.5; }
.gb-notify-modal__feedback.is-error { color: #c0392b; }
.gb-notify-modal__feedback.is-success { color: var(--wp--preset--color--accent, #1f4a1f); font-weight: 600; }

@media (max-width: 600px) {
	.gb-notify-modal { padding: 0; align-items: flex-end; }
	.gb-notify-modal__panel { max-width: 100%; border-radius: 18px 18px 0 0; }
}
@media (prefers-reduced-motion: reduce) {
	.gb-notify-modal__panel, .gb-notify-btn, .gb-collection-tile--soon .gb-collection-tile__media img { animation: none; transition: none; }
}

/* ============================================
   Suggestions produits — page panier ([gb_cart_suggestions])
   Full-bleed + titre section pour matcher les carrousels de la home.
   ============================================ */
.gb-cart-suggest {
	box-sizing: border-box;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-top: clamp(40px, 5vw, 80px);
	padding: clamp(28px, 3vw, 48px) 0 clamp(8px, 1vw, 16px);
	background: var(--wp--preset--color--white, #fff);
	border-top: 1px solid var(--wp--preset--color--subtle, #e8e8e8);
}

.gb-cart-suggest__inner {
	padding: 0 var(--wp--preset--spacing--md, 24px);
	margin-bottom: clamp(2px, 0.6vw, 10px);
}

.gb-cart-suggest__title {
	margin: 0;
	font-size: clamp(26px, 3.2vw, 42px);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground, #1a1a1a);
}

.gb-cart-suggest__sub {
	margin: 6px 0 0;
	font-size: clamp(14px, 1.2vw, 16px);
	color: var(--wp--preset--color--foreground, #1a1a1a);
	opacity: 0.62;
}

/* Mobile : la section suggestions est déjà full-bleed (100vw, left:0, sans padding
   horizontal). On neutralise donc le margin négatif mobile de .gb-carousel-wrap
   (calibré pour le <main> qui a 24px de padding) qui décalait la piste de -24px
   hors viewport à gauche et coupait la 1re carte. */
@media (max-width: 768px) {
	.gb-cart-suggest .gb-carousel-wrap {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	.gb-cart-suggest__title {
		font-size: clamp(22px, 6.5vw, 32px);
	}
}

/* Suggestions panier : cartes ancrées à gauche (jamais centrées-sur-une-moitié
   quand la piste ne déborde pas). Avec limit=12 la piste déborde et défile. */
.gb-cart-suggest .gb-products-carousel ul.products {
	justify-content: flex-start;
}

/* La page panier est en layout contraint (is-layout-constrained) : un wrapper interne
   du carrousel héritait d'un max-width = content-size, bridant la zone de scroll à ~moitié
   de la section (pourtant full-bleed). On force toute la chaîne interne à pleine largeur. */
.gb-cart-suggest .gb-carousel-wrap,
.gb-cart-suggest .woocommerce,
.gb-cart-suggest .gb-products-carousel {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}


/* wpautop <br> parasites dans les cartes produit  neutralises (layout flex) */
.gb-products-carousel ul.products > li.product br { display: none; }

/* Mobile : resserrer l espacement vertical entre sections home */
@media (max-width: 768px) {
.gb-effets-section { padding-bottom: var(--wp--preset--spacing--md); }
.gb-cat-block { margin-top: 8px !important; }
.gb-products-carousel { padding-bottom: 12px; }
.gb-carousel-link { margin-bottom: 8px !important; }
}
