/* ==========================================================================
   French K-Beauty — styles du thème enfant
   1. Polices   2. Variables (charte)   3. Base   4. Accessibilité
   5. Boutons   6. Boutique (liste)    7. Fiche produit
   8. Panier / commande   9. Messages   10. Mouvement réduit
   ========================================================================== */

/* 1. Polices hébergées localement (licence SIL Open Font) ---------------- */
@font-face {
	font-family: "Figtree";
	src: url("../fonts/figtree-variable.woff") format("woff");
	font-weight: 300 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Zen Old Mincho";
	src: url("../fonts/zen-old-mincho-regular.woff") format("woff");
	font-weight: 400;
	font-display: swap;
}
@font-face {
	font-family: "Zen Old Mincho";
	src: url("../fonts/zen-old-mincho-semibold.woff") format("woff");
	font-weight: 600;
	font-display: swap;
}
@font-face {
	font-family: "Zen Old Mincho";
	src: url("../fonts/zen-old-mincho-bold.woff") format("woff");
	font-weight: 700;
	font-display: swap;
}

/* 2. Variables de la charte : 3 couleurs (règle 60 / 30 / 10) --------------
   60 % crème et blanc (fonds) · 30 % anthracite (textes, sections sombres) · 10 % orange (accent : actions, promotions).
   Les variantes ci-dessous sont des nuances de ces trois couleurs, choisies pour le contraste (WCAG AA). */
:root {
	--fkb-orange: #FF6633;        /* accent : boutons d'achat, pastilles, traits (texte foncé dessus : 6:1) */
	--fkb-orange-texte: #B33A17;  /* orange foncé pour les textes : 5,9:1 sur blanc, 5,1:1 sur crème */
	--fkb-gris: #333333;          /* texte principal (12,6:1) */
	--fkb-brun: #5C5248;          /* texte secondaire, anthracite adouci (7,6:1) */
	--fkb-noir: #1A1A1A;          /* texte sur bouton orange */
	--fkb-encre: #2B2522;         /* fonds sombres : sélection premium, pied de page */
	--fkb-fond: #FFFFFF;
	--fkb-fond-doux: #F4EDE4;     /* crème */
	--fkb-creme: #F4EDE4;
	--fkb-creme-fonce: #EADFD2;
	--fkb-bordure: #E6DCCF;
	--fkb-police: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
	--fkb-police-titre: "Zen Old Mincho", Georgia, serif;
	--fkb-rayon: 12px;
	--fkb-rayon-bouton: 8px;
}

/* 3. Base ---------------------------------------------------------------- */
body {
	font-family: var(--fkb-police);
	font-size: 16px;
	line-height: 1.6;
	color: var(--fkb-gris);
	background: var(--fkb-fond);
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--fkb-police);
	font-weight: 700;
	color: var(--fkb-gris);
	line-height: 1.2;
}
/* Les « Réglages du site » d'Elementor (kit) peuvent imposer un fond gris et des titres pâles :
   la classe fkb-site (ajoutée sur <body>) rend la charte prioritaire. */
body.fkb-site { background: var(--fkb-fond); color: var(--fkb-gris); }
body.fkb-site :is(h1, h2, h3, h4, h5, h6) { color: var(--fkb-gris); }
.fkb-serif, .fkb-serif * { font-family: var(--fkb-police-titre); font-weight: 600; }
a { color: var(--fkb-orange-texte); text-underline-offset: 3px; }
a:hover { color: var(--fkb-gris); }
img { border-radius: inherit; }

/* 4. Accessibilité ------------------------------------------------------- */
:focus-visible {
	outline: 3px solid var(--fkb-orange-texte);
	outline-offset: 2px;
}
.skip-link:focus { background: var(--fkb-gris); color: #fff; padding: 12px 16px; z-index: 100000; }

/* 5. Boutons ------------------------------------------------------------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button:not(.is-link) {
	font-family: var(--fkb-police);
	font-weight: 600;
	font-size: 15px;
	min-height: 48px;
	padding: 12px 24px;
	border-radius: var(--fkb-rayon-bouton);
	background: var(--fkb-gris);
	color: #fff;
	border: 0;
	text-transform: none;
	letter-spacing: 0;
	transition: background-color .2s ease;
}

/* Validation de commande : titres des étapes toujours lisibles (même grisées) */
.wc-block-components-checkout-step__title { color: var(--fkb-gris) !important; }
.wc-block-components-checkout-step--disabled { opacity: .8; }
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.wc-block-components-button:not(.is-link):hover { background: var(--fkb-noir); color: #fff; }

/* Bouton principal d'achat : orange de marque + texte foncé (contraste 6:1) */
.woocommerce button.single_add_to_cart_button,
.woocommerce a.checkout-button,
.woocommerce #place_order,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--fkb-orange) !important;
	color: var(--fkb-noir) !important;
	font-size: 16px;
}
.woocommerce button.single_add_to_cart_button:hover,
.woocommerce a.checkout-button:hover,
.woocommerce #place_order:hover,
.wc-block-cart__submit-button:hover { background: #E8552A !important; }

/* 6. Boutique : grille de cartes produits ------------------------------- */
.woocommerce ul.products { gap: 24px; }
.woocommerce ul.products li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 16px;
	background: #fff;
	border: 1px solid var(--fkb-bordure);
	border-radius: 14px;
	text-align: left;
	transition: box-shadow .2s ease, transform .2s ease;
}
.woocommerce ul.products li.product:hover { box-shadow: 0 8px 24px rgba(51, 51, 51, .08); transform: translateY(-2px); }
.woocommerce ul.products li.product a img {
	border-radius: 10px;
	background: var(--fkb-fond-doux);
	margin-bottom: 16px;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 15px;
	font-weight: 600;
	color: var(--fkb-gris);
	padding: 0;
	margin-bottom: 8px;
}
.woocommerce ul.products li.product .price {
	font-size: 17px;
	font-weight: 700;
	color: var(--fkb-gris);
	margin-bottom: 16px;
}
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--fkb-orange-texte); }
.woocommerce ul.products li.product .button { margin-top: auto; width: 100%; text-align: center; }
.woocommerce ul.products li.product .fkb-prix-unitaire { display: block; }

/* Pastilles « Promo » et « Nouveau » */
.woocommerce span.onsale,
.fkb-badge {
	position: absolute;
	top: 28px;
	left: 28px;
	z-index: 2;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 4px 12px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .03em;
	text-transform: uppercase;
	background: var(--fkb-orange);
	color: var(--fkb-noir);
}
.fkb-badge--nouveau { background: var(--fkb-gris); color: #fff; }
.woocommerce ul.products li.product .onsale + .fkb-badge { top: 60px; }

/* Prix au 100 ml */
.fkb-prix-unitaire {
	font-size: 13px;
	font-weight: 400;
	color: var(--fkb-brun);
}

/* 7. Fiche produit ------------------------------------------------------- */
.woocommerce div.product div.images img { border-radius: 16px; background: var(--fkb-fond-doux); }
.woocommerce div.product .product_title { font-size: clamp(28px, 3vw, 38px); margin-bottom: 8px; }
.woocommerce div.product p.price,
.woocommerce div.product span.price { font-size: 28px; font-weight: 700; color: var(--fkb-gris); }
.woocommerce div.product p.price ins { text-decoration: none; color: var(--fkb-orange-texte); }
.woocommerce div.product p.price .fkb-prix-unitaire { display: block; margin-top: 4px; }
.woocommerce div.product .woocommerce-product-details__short-description { margin: 16px 0; }
.fkb-tva { font-size: 13px; color: var(--fkb-brun); margin: 0 0 12px; }
/* Stock : vert et rouge assez foncés pour un contraste AA (> 4,5:1) */
.woocommerce div.product .stock.in-stock { color: var(--fkb-gris); font-weight: 600; }
.woocommerce div.product .stock.out-of-stock { color: var(--fkb-orange-texte); font-weight: 600; }
.woocommerce div.product form.cart { display: flex; gap: 12px; align-items: stretch; margin: 24px 0; }
.woocommerce div.product form.cart .quantity .qty {
	height: 52px;
	width: 80px;
	border: 1px solid var(--fkb-bordure);
	border-radius: var(--fkb-rayon-bouton);
	font-size: 16px;
}
.woocommerce div.product form.cart .single_add_to_cart_button { flex: 1; min-height: 52px; }

.fkb-reassurance {
	list-style: none;
	margin: 0 0 24px;
	padding: 20px 24px;
	background: var(--fkb-fond-doux);
	border-radius: var(--fkb-rayon);
}
.fkb-reassurance li { position: relative; padding-left: 28px; margin: 6px 0; font-size: 14px; }
.fkb-reassurance li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 6px;
	width: 14px;
	height: 8px;
	border-left: 2px solid var(--fkb-orange-texte);
	border-bottom: 2px solid var(--fkb-orange-texte);
	transform: rotate(-45deg);
}

/* Onglets (Description, Informations complémentaires, Avis) */
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; border-bottom: 1px solid var(--fkb-bordure); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: none; border: 0; border-radius: 0; margin: 0 24px 0 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 12px 0; font-weight: 500; color: #6B6B6B; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--fkb-gris); font-weight: 700; box-shadow: inset 0 -3px 0 var(--fkb-orange); }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 840px; }
.woocommerce div.product .woocommerce-tabs .panel h3 { font-size: 22px; margin: 32px 0 12px; }

/* Accordéons <details> utilisés dans les descriptions produits */
.woocommerce div.product details {
	border-top: 1px solid var(--fkb-bordure);
	padding: 0;
}
.woocommerce div.product details:last-of-type { border-bottom: 1px solid var(--fkb-bordure); }
.woocommerce div.product details summary {
	list-style: none;
	cursor: pointer;
	position: relative;
	padding: 18px 40px 18px 0;
	font-weight: 600;
	font-size: 16px;
}
.woocommerce div.product details summary::-webkit-details-marker { display: none; }
.woocommerce div.product details summary::after {
	content: "+";
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 24px;
	font-weight: 400;
	color: var(--fkb-gris);
}
.woocommerce div.product details[open] summary::after { content: "−"; }
.woocommerce div.product details > :not(summary) { margin: 0 0 18px; }

/* 8. Panier et commande -------------------------------------------------- */
.fkb-livraison {
	max-width: 760px;
	margin: 0 0 32px;
	font-weight: 500;
}
.fkb-livraison p { margin: 0 0 8px; }
.fkb-livraison__barre { height: 10px; border-radius: 5px; background: #EDEDED; overflow: hidden; }
.fkb-livraison__barre span { display: block; height: 100%; background: var(--fkb-orange); border-radius: 5px; }
.wc-block-cart .wc-block-components-sidebar,
.woocommerce .cart-collaterals .cart_totals {
	border: 1px solid var(--fkb-bordure);
	border-radius: 16px;
	padding: 24px;
}
.woocommerce table.shop_table { border-radius: var(--fkb-rayon); border-color: var(--fkb-bordure); }

/* Champs de formulaire */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.wc-block-components-text-input input {
	border: 1px solid #BDBDBD;
	border-radius: var(--fkb-rayon-bouton);
	min-height: 48px;
	padding: 10px 14px;
}

/* 9. Messages et bandeau de démonstration ------------------------------- */
.woocommerce-message,
.woocommerce-info { border-top-color: var(--fkb-orange); }
.woocommerce-message::before,
.woocommerce-info::before { color: var(--fkb-orange-texte); }
.woocommerce-store-notice,
p.demo_store {
	background: var(--fkb-gris);
	color: #fff;
	font-size: 14px;
}
.woocommerce-store-notice a { color: #fff; }

/* 10. Respect du réglage « réduire les animations » --------------------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Mobile */
@media (max-width: 767px) {
	.woocommerce ul.products { gap: 12px; }
	.woocommerce ul.products li.product { padding: 10px; }
	.woocommerce span.onsale, .fkb-badge { top: 18px; left: 18px; }
	.woocommerce div.product form.cart { flex-wrap: wrap; }
}

/* 11. En-tête ------------------------------------------------------------- */
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.fkb-bandeau { background: var(--fkb-encre); text-align: center; padding: 8px 16px; font-size: 13px; }
.fkb-bandeau a { color: #fff; text-decoration: none; font-weight: 500; }
.fkb-bandeau a:hover { text-decoration: underline; }

.fkb-header { background: #fff; border-bottom: 1px solid var(--fkb-bordure); position: sticky; top: 0; z-index: 50; }
.fkb-header__barre {
	max-width: 1200px; margin: 0 auto; padding: 16px 20px;
	display: flex; align-items: center; gap: 24px;
}
.fkb-header__logo img, .fkb-header__logo .custom-logo { max-height: 64px; width: auto; display: block; }
.fkb-header__titre { font-weight: 800; font-size: 22px; color: var(--fkb-gris); text-decoration: none; }
.fkb-recherche { flex: 1; max-width: 560px; margin: 0 auto; position: relative; }
.fkb-recherche input[type="search"] {
	width: 100%; height: 44px; padding: 0 48px 0 20px;
	border: 1px solid var(--fkb-bordure); border-radius: 22px; background: var(--fkb-fond-doux);
	font-family: var(--fkb-police); font-size: 14px; color: var(--fkb-gris);
}
.fkb-recherche button {
	position: absolute; right: 4px; top: 4px; width: 36px; height: 36px; padding: 0;
	border: 0; border-radius: 50%; background: transparent; color: var(--fkb-gris); cursor: pointer;
	display: flex; align-items: center; justify-content: center;
}
.fkb-header__icones { display: flex; gap: 8px; }
.fkb-icone {
	position: relative; width: 44px; height: 44px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; color: var(--fkb-gris);
}
.fkb-icone:hover { background: var(--fkb-fond-doux); color: var(--fkb-gris); }
.fkb-panier__compteur {
	position: absolute; top: 2px; right: 0; min-width: 20px; height: 20px; padding: 0 5px;
	border-radius: 10px; background: var(--fkb-orange); color: var(--fkb-noir);
	font-size: 11px; font-weight: 700; line-height: 20px; text-align: center;
}

.fkb-nav { border-top: 1px solid var(--fkb-bordure); }
.fkb-nav__liste {
	list-style: none; margin: 0 auto; padding: 0 20px; max-width: 1200px;
	display: flex; justify-content: space-between; flex-wrap: wrap;
}
.fkb-nav__liste a {
	display: block; padding: 14px 4px; color: var(--fkb-gris); text-decoration: none;
	font-size: 14px; font-weight: 500; border-bottom: 2px solid transparent;
}
.fkb-nav__liste a:hover,
.fkb-nav__liste .current-menu-item > a { border-bottom-color: var(--fkb-orange); font-weight: 700; }
.fkb-nav__liste .sub-menu { display: none; }

.fkb-burger { display: none; width: 44px; height: 44px; border: 0; background: transparent; padding: 10px; cursor: pointer; }
.fkb-burger__icone, .fkb-burger__icone::before, .fkb-burger__icone::after {
	display: block; width: 22px; height: 2px; background: var(--fkb-gris); border-radius: 2px; position: relative;
}
.fkb-burger__icone::before, .fkb-burger__icone::after { content: ""; position: absolute; left: 0; }
.fkb-burger__icone::before { top: -7px; }
.fkb-burger__icone::after { top: 7px; }

@media (max-width: 1024px) {
	.fkb-header__barre { flex-wrap: wrap; gap: 12px; padding: 10px 16px; }
	.fkb-burger { display: block; order: 1; }
	.fkb-header__logo { order: 2; margin: 0 auto; }
	.fkb-header__logo img, .fkb-header__logo .custom-logo { max-height: 48px; }
	.fkb-header__icones { order: 3; }
	.fkb-recherche { order: 4; flex-basis: 100%; max-width: none; }
	.fkb-nav { display: none; }
	.fkb-nav.est-ouvert { display: block; }
	.fkb-nav__liste { flex-direction: column; padding: 0 16px 16px; }
	.fkb-nav__liste a { padding: 14px 0; font-size: 16px; border-bottom: 1px solid var(--fkb-bordure); }
}

/* 12. Pied de page --------------------------------------------------------- */
.fkb-footer { background: var(--fkb-encre); color: #fff; margin-top: 0; }
.fkb-footer a { color: #fff; text-decoration: none; }
.fkb-footer a:hover { text-decoration: underline; color: #fff; }
.fkb-footer__inner {
	max-width: 1200px; margin: 0 auto; padding: 64px 20px 40px;
	display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px;
}
.fkb-footer__nom { font-size: 22px; font-weight: 800; margin: 0 0 8px; }
.fkb-footer__titre { font-weight: 700; margin: 0 0 16px; }
.fkb-footer__liens { list-style: none; margin: 0; padding: 0; }
.fkb-footer__liens li { margin: 0 0 10px; font-size: 14px; }
.fkb-footer__paiements { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.fkb-footer__paiements li { background: var(--fkb-creme); color: var(--fkb-gris); border-radius: 6px; padding: 6px 10px; font-size: 12px; font-weight: 700; }
.fkb-footer__legal {
	max-width: 1200px; margin: 0 auto; padding: 20px; border-top: 1px solid rgba(255, 255, 255, .2);
	display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 13px;
}
.fkb-footer__legal p { margin: 0; }
@media (max-width: 767px) {
	.fkb-footer__inner { grid-template-columns: 1fr; gap: 28px; padding-top: 48px; }
}

/* 13. Blocs de contenu des pages Elementor -------------------------------- */
.fkb-faq details { border-top: 1px solid var(--fkb-bordure); }
.fkb-faq details:last-of-type { border-bottom: 1px solid var(--fkb-bordure); }
.fkb-faq summary {
	list-style: none; cursor: pointer; position: relative;
	padding: 18px 40px 18px 0; font-weight: 600; font-size: 16px;
}
.fkb-faq summary::-webkit-details-marker { display: none; }
.fkb-faq summary::after { content: "+"; position: absolute; right: 8px; top: 50%; transform: translateY(-50%); font-size: 24px; font-weight: 400; }
.fkb-faq details[open] summary::after { content: "−"; }
.fkb-faq details > p { margin: 0 0 18px; }

.fkb-carte {
	background: #fff; border: 1px solid var(--fkb-bordure); border-radius: 16px;
	transition: box-shadow .2s ease;
}
.fkb-carte:hover { box-shadow: 0 8px 24px rgba(51, 51, 51, .08); }
.fkb-sur-titre { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--fkb-orange-texte); }

/* 14. Grille produits en CSS Grid (remplace les flottants de WooCommerce) -- */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	margin: 0 0 40px;
	padding: 0;
}
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	box-sizing: border-box;
}
.woocommerce ul.products li.product a { text-decoration: none; }
.woocommerce ul.products li.product .button { box-sizing: border-box; }
@media (max-width: 1024px) {
	.woocommerce ul.products,
	.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.woocommerce ul.products,
	.woocommerce ul.products.columns-3,
	.woocommerce ul.products.columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.woocommerce ul.products li.product .button { padding: 10px 8px; font-size: 14px; }
}

/* 15. Ajustements après test sur le site (v1.1.1) ------------------------ */
/* Icônes du header en gris foncé : l'orange clair n'atteint pas le contraste 3:1 exigé pour les icônes. */
.fkb-header a.fkb-icone,
.fkb-header a.fkb-icone:visited { color: var(--fkb-gris); }
.fkb-header a.fkb-icone:hover { color: var(--fkb-orange-texte); }
/* Boutons Elementor en minuscules, comme dans la maquette (plus lisible que les capitales). */
.elementor .elementor-widget-button .elementor-button { text-transform: none !important; letter-spacing: 0 !important; }
/* Titres de page (pages WooCommerce, articles) : Figtree gris foncé au lieu du titre orange par défaut. */
body .page-header .entry-title,
body .woocommerce-products-header__title,
body h1.entry-title {
	font-family: var(--fkb-police);
	font-weight: 800;
	font-size: clamp(30px, 4vw, 46px);
	color: var(--fkb-gris);
}
body .page-header { max-width: 1200px; margin: 0 auto; padding: 48px 20px 8px; }

/* 16. Filtres de la boutique et pastilles (v1.2) -------------------------- */
.fkb-filtres {
	clear: both;
	margin: 0 0 24px;
	border: 1px solid var(--fkb-bordure);
	border-radius: 16px;
	background: #fff;
}
.fkb-filtres > summary {
	list-style: none; cursor: pointer; padding: 16px 24px; font-weight: 700; position: relative;
}
.fkb-filtres > summary::-webkit-details-marker { display: none; }
.fkb-filtres > summary::after { content: "+"; position: absolute; right: 24px; top: 50%; transform: translateY(-50%); font-size: 22px; font-weight: 400; }
.fkb-filtres[open] > summary::after { content: "−"; }
.fkb-filtres__contenu { padding: 0 24px 20px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.fkb-filtres__groupe { border: 0; margin: 0; padding: 0; min-width: 0; }
.fkb-filtres__groupe legend { font-weight: 700; font-size: 14px; margin-bottom: 10px; padding: 0; }
.fkb-filtres__groupe ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.fkb-filtre {
	display: inline-block; padding: 6px 14px; border: 1px solid var(--fkb-bordure); border-radius: 999px;
	font-size: 14px; color: var(--fkb-gris); text-decoration: none; background: #fff;
}
.fkb-filtre:hover { border-color: var(--fkb-gris); color: var(--fkb-gris); }
.fkb-filtre.est-actif { background: var(--fkb-gris); border-color: var(--fkb-gris); color: #fff; }
.fkb-filtres__reset { grid-column: 1 / -1; font-size: 14px; font-weight: 600; }
@media (max-width: 1024px) { .fkb-filtres__contenu { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px)  { .fkb-filtres__contenu { grid-template-columns: 1fr; } }

/* « Promo » à droite, « Nouveau » à gauche : les deux restent visibles dans la carte. */
.woocommerce ul.products li.product .onsale {
	top: 28px; right: 28px; left: auto; margin: 0; min-height: 0; line-height: 1.5;
}
.woocommerce ul.products li.product .onsale + .fkb-badge { top: 28px; }
@media (max-width: 767px) {
	.woocommerce ul.products li.product .onsale { top: 18px; right: 18px; }
}

/* 17. Pages de texte (mentions légales, CGV, confidentialité) ------------- */
body.page:not(.elementor-page):not(.woocommerce-page) .page-header,
body.page:not(.elementor-page):not(.woocommerce-page) .page-content {
	max-width: 820px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
}
body.page:not(.elementor-page):not(.woocommerce-page) .page-content { padding-bottom: 64px; font-size: 16px; }
.page-content h2 { font-size: 24px; margin: 40px 0 12px; }
.page-content h3 { font-size: 19px; margin: 28px 0 10px; }
.page-content table { width: 100%; border-collapse: collapse; margin: 16px 0 24px; font-size: 14px; }
.page-content th, .page-content td { border: 1px solid var(--fkb-bordure); padding: 10px 12px; text-align: left; vertical-align: top; }
.page-content th { background: var(--fkb-fond-doux); }
.page-content mark { background: #FFE8A3; color: var(--fkb-gris); padding: 0 4px; border-radius: 4px; }
@media (max-width: 767px) { .page-content table { display: block; overflow-x: auto; } }

/* 18. Formulaire de contact (Contact Form 7) ------------------------------ */
.wpcf7 label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 16px; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"],
.wpcf7 select, .wpcf7 textarea {
	display: block; width: 100%; margin-top: 6px; min-height: 48px; padding: 10px 14px; box-sizing: border-box;
	border: 1px solid #BDBDBD; border-radius: var(--fkb-rayon-bouton); background: #fff;
	font-family: var(--fkb-police); font-size: 15px; font-weight: 400; color: var(--fkb-gris);
}
.wpcf7 textarea { min-height: 140px; }
.wpcf7 .wpcf7-acceptance label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; }
.wpcf7 .wpcf7-acceptance input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--fkb-gris); }
.wpcf7 input[type="submit"] {
	min-height: 52px; padding: 14px 32px; border: 0; border-radius: var(--fkb-rayon-bouton); cursor: pointer;
	background: var(--fkb-orange); color: var(--fkb-noir); font-family: var(--fkb-police); font-size: 16px; font-weight: 600;
}
.wpcf7 input[type="submit"]:hover { background: #E8552A; }
.wpcf7 .wpcf7-not-valid-tip { color: var(--fkb-orange-texte); font-size: 13px; font-weight: 500; }
.wpcf7 form .wpcf7-response-output { border-radius: var(--fkb-rayon-bouton); margin: 16px 0 0; }

/* 19. Éléments graphiques v1.3 -------------------------------------------- */
:root {
	--fkb-peche: var(--fkb-creme);
	--fkb-sable: var(--fkb-creme);
	--fkb-rose: var(--fkb-creme);
	--fkb-ombre: 0 18px 40px -22px rgba(120, 60, 30, .35), 0 2px 6px rgba(120, 60, 30, .05);
}

/* En-têtes de page : bandeau pêche décoré de formes de la charte */
.fkb-entete { position: relative; overflow: hidden; }
.fkb-entete::before,
.fkb-entete::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.fkb-entete::before { width: 420px; height: 420px; right: -120px; top: -180px; background: var(--fkb-creme-fonce); }
.fkb-entete::after { width: 56px; height: 56px; right: 260px; bottom: 28px; background: var(--fkb-orange); }
.fkb-entete > .e-con-inner { position: relative; z-index: 1; }
@media (max-width: 767px) {
	.fkb-entete::before { width: 240px; height: 240px; right: -110px; top: -120px; }
	.fkb-entete::after { display: none; }
}

/* Titres de section soulignés d'un trait orange */
.fkb-trait .elementor-heading-title::after {
	content: ""; display: block; width: 56px; height: 4px; margin-top: 14px; border-radius: 2px; background: var(--fkb-orange);
}
.fkb-trait.elementor-align-center .elementor-heading-title::after,
.fkb-trait--centre .elementor-heading-title::after { margin-left: auto; margin-right: auto; }

/* Visuels */
.fkb-visuel img { border-radius: 28px; box-shadow: var(--fkb-ombre); width: 100%; height: auto; }

/* Cartes : fond blanc, ombre douce, légère élévation au survol */
.fkb-carte {
	background: #fff; border: 0; border-radius: 20px; box-shadow: var(--fkb-ombre);
	transition: transform .25s ease, box-shadow .25s ease;
}
.fkb-carte:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -24px rgba(120, 60, 30, .45); }
.fkb-pastille-num .elementor-heading-title {
	display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%;
	background: var(--fkb-peche); color: var(--fkb-orange-texte) !important; font-weight: 800; letter-spacing: 0;
}

/* Étapes de routine numérotées dans des pastilles */
ol.fkb-etapes { list-style: none; counter-reset: etape; margin: 16px 0 8px; padding: 0; }
ol.fkb-etapes li { counter-increment: etape; position: relative; padding: 6px 0 6px 52px; margin: 0 0 10px; min-height: 36px; }
ol.fkb-etapes li::before {
	content: counter(etape); position: absolute; left: 0; top: 2px; width: 36px; height: 36px; border-radius: 50%;
	background: var(--fkb-orange); color: var(--fkb-noir); font-weight: 800; font-size: 15px;
	display: flex; align-items: center; justify-content: center;
}

/* Engagements avec pictogrammes [fkb_reassurance] */
.fkb-reassure { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.fkb-reassure li { display: flex; align-items: center; gap: 14px; }
.fkb-reassure strong { display: block; font-size: 15px; line-height: 1.3; }
.fkb-reassure li > span > span { display: block; font-size: 13px; color: #5C5C5C; }
.fkb-reassure__icone {
	flex: 0 0 56px; width: 56px; height: 56px; border-radius: 50%; background: var(--fkb-peche); color: var(--fkb-orange-texte);
	display: flex; align-items: center; justify-content: center;
}
@media (max-width: 1024px) { .fkb-reassure { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .fkb-reassure { grid-template-columns: 1fr; gap: 16px; } }

/* Tuiles « type de peau » [fkb_peaux] */
.fkb-peaux { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.fkb-peaux li, .fkb-marques-cartes li, .fkb-articles__carte { display: flex; }
.fkb-peaux a {
	flex: 1; display: flex; flex-direction: column; gap: 6px; min-height: 230px; padding: 28px 24px; border-radius: 24px;
	text-decoration: none; color: var(--fkb-gris); transition: transform .25s ease, box-shadow .25s ease;
}
.fkb-peaux a:hover { transform: translateY(-4px); box-shadow: var(--fkb-ombre); color: var(--fkb-gris); }
.fkb-peaux a { background: #fff; box-shadow: var(--fkb-ombre); }
.fkb-peaux__icone { background: var(--fkb-creme) !important; }
.fkb-peaux__icone {
	width: 56px; height: 56px; border-radius: 50%; background: #fff; color: var(--fkb-orange-texte);
	display: flex; align-items: center; justify-content: center; margin-bottom: auto;
}
.fkb-peaux strong { font-size: 21px; margin-top: 24px; }
.fkb-peaux span { font-size: 15px; }
.fkb-peaux__lien { font-weight: 700; color: var(--fkb-orange-texte); margin-top: 8px; }
@media (max-width: 1024px) { .fkb-peaux { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (max-width: 560px) {
	.fkb-peaux a { min-height: 0; padding: 20px 16px; }
	.fkb-peaux strong { font-size: 18px; margin-top: 16px; }
	.fkb-peaux span { font-size: 14px; }
}

/* Marques en pastilles [fkb_marques] */
.fkb-marques { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.fkb-marques a {
	display: inline-block; padding: 12px 22px; border-radius: 999px; background: #fff; border: 1px solid var(--fkb-bordure);
	color: var(--fkb-gris); font-weight: 600; text-decoration: none; transition: border-color .2s ease, background-color .2s ease;
}
.fkb-marques a:hover { border-color: var(--fkb-orange); background: var(--fkb-peche); color: var(--fkb-gris); }

/* Marques en cartes avec vignette [fkb_marques style="cartes"] */
.fkb-marques-cartes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.fkb-marques-cartes a {
	flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 24px 16px 22px;
	background: #fff; border-radius: 20px; box-shadow: var(--fkb-ombre); text-decoration: none; color: var(--fkb-gris); text-align: center;
	transition: transform .25s ease;
}
.fkb-marques-cartes a:hover { transform: translateY(-4px); color: var(--fkb-gris); }
.fkb-marques-cartes__image {
	width: 120px; height: 120px; border-radius: 50%; background: var(--fkb-fond-doux); overflow: hidden; margin-bottom: 12px;
	display: flex; align-items: center; justify-content: center;
}
.fkb-marques-cartes__image img { width: 86%; height: 86%; object-fit: contain; mix-blend-mode: multiply; }
.fkb-marques-cartes strong { font-size: 17px; }
.fkb-marques-cartes span:last-child { font-size: 13px; color: #5C5C5C; }
@media (max-width: 1024px) { .fkb-marques-cartes { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .fkb-marques-cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }

/* Articles du K-Beauty Lab [fkb_articles] */
.fkb-articles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.fkb-articles__carte a {
	flex: 1; display: flex; flex-direction: column; background: #fff; border-radius: 22px; overflow: hidden;
	box-shadow: var(--fkb-ombre); text-decoration: none; color: var(--fkb-gris); transition: transform .25s ease;
}
.fkb-articles__carte a:hover { transform: translateY(-4px); color: var(--fkb-gris); }
.fkb-articles__image img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.fkb-articles__texte { display: flex; flex-direction: column; gap: 10px; padding: 22px 24px 26px; flex: 1; }
.fkb-articles__cat {
	align-self: flex-start; display: inline-block; padding: 4px 12px; border-radius: 999px;
	background: #fff; border: 1px solid var(--fkb-bordure); color: var(--fkb-orange-texte); font-size: 12px; font-weight: 700; letter-spacing: .04em;
}
.fkb-articles__titre { font-size: 19px; line-height: 1.3; }
.fkb-articles__extrait { font-size: 15px; color: #555; }
.fkb-articles__meta { margin-top: auto; font-size: 14px; font-weight: 700; color: var(--fkb-orange-texte); }
@media (max-width: 1024px) { .fkb-articles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .fkb-articles { grid-template-columns: 1fr; } }

/* Bloc « sélection premium » sur fond sombre */
.fkb-premium .woocommerce ul.products li.product { box-shadow: 0 20px 40px -20px rgba(0, 0, 0, .6); border: 0; }

/* Lien-bouton générique */
.fkb-bouton {
	display: inline-block; padding: 14px 26px; border-radius: 8px; background: var(--fkb-orange); color: var(--fkb-noir);
	font-weight: 600; text-decoration: none;
}
.fkb-bouton:hover { background: #E8552A; color: var(--fkb-noir); }

/* Articles : lecture confortable */
body.single-post .page-header,
body.single-post .page-content { max-width: 760px; margin-left: auto; margin-right: auto; }
body.single-post .page-header { padding-top: 48px; }
body.single-post .page-header .entry-title { font-size: clamp(30px, 4vw, 44px); line-height: 1.15; margin-bottom: 8px; }
body.single-post .page-content { font-size: 18px; line-height: 1.75; padding-bottom: 40px; }
body.single-post .page-content h2 { font-size: 28px; margin: 48px 0 12px; }
body.single-post .page-content h3 { font-size: 21px; margin: 32px 0 8px; }
body.single-post .page-content ul,
body.single-post .page-content ol { padding-left: 1.3em; }
body.single-post .page-content li { margin-bottom: 8px; }
body.single-post .page-content blockquote {
	margin: 28px 0; padding: 18px 24px; border-left: 4px solid var(--fkb-orange); background: var(--fkb-peche); border-radius: 0 16px 16px 0;
}
body.single-post .page-content blockquote p { margin: 0; }
.fkb-article__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: 14px; color: #5C5C5C; margin: 0 0 20px; }
.fkb-article__une { margin: 0 0 32px; }
.fkb-article__une img { display: block; width: 100%; height: auto; border-radius: 24px; }
.fkb-article__cta {
	margin-top: 48px; padding: 28px 32px; border-radius: 24px; background: var(--fkb-sable);
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
}
.fkb-article__cta p { margin: 0; flex: 1 1 320px; font-size: 16px; }

/* Pas d'animation de survol si l'utilisateur a demandé à les réduire */
@media (prefers-reduced-motion: reduce) {
	.fkb-carte, .fkb-peaux a, .fkb-marques-cartes a, .fkb-articles__carte a { transition: none; }
	.fkb-carte:hover, .fkb-peaux a:hover, .fkb-marques-cartes a:hover, .fkb-articles__carte a:hover { transform: none; }
}

/* Tuiles « type de peau » construites avec Elementor (conteneurs liens) */
a.fkb-tuile, .fkb-tuile { text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
a.fkb-tuile:hover { transform: translateY(-4px); box-shadow: var(--fkb-ombre); }
.fkb-tuile .elementor-icon-box-title { margin-top: 12px; }
.fkb-tuile .elementor-widget-text-editor p { margin: 0; }
.elementor-widget-text-editor .fkb-marques { padding: 0; }
@media (prefers-reduced-motion: reduce) { a.fkb-tuile { transition: none; } a.fkb-tuile:hover { transform: none; } }

/* 20. Hiérarchie v1.4 ------------------------------------------------------- */
/* Fil d'Ariane, prix et cartes produits dans la palette crème / anthracite / orange */
.woocommerce ul.products li.product { border-color: var(--fkb-bordure); }
.woocommerce .woocommerce-breadcrumb, .woocommerce .woocommerce-breadcrumb a { color: var(--fkb-brun); }
.fkb-livraison__barre { background: var(--fkb-creme); }
.fkb-sombre, .fkb-premium { color: #F4EDE4; }
/* Les visuels de mise en situation ont leur propre décor : pas d'ombre ajoutée sur fond sombre */
.fkb-premium .fkb-visuel img { box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .7); }

/* 21. Style « Essentiel » (v1.5) ---------------------------------------------
   Fond blanc, sections séparées par un filet, crème réservé aux tuiles et pictogrammes,
   orange réservé aux actions, promotions et tracés fins. */
:root { --fkb-filet: #EDE6DC; }
body.fkb-site { background: #fff; }

.fkb-filet { border-top: 1px solid var(--fkb-filet); }
.fkb-courbe { position: relative; }
.fkb-courbe::before {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 110px; pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%201440%20110%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20d%3D%22M0%2070%20C%20240%2015%2C%20420%20110%2C%20720%2062%20S%201200%208%2C%201440%2052%22%20fill%3D%22none%22%20stroke%3D%22%23E6D8C7%22%20stroke-width%3D%221.3%22/%3E%3C/svg%3E") no-repeat top / 100% 110px;
}

/* En-têtes de page : blancs, sans décor */
.fkb-entete { background: #fff !important; border-bottom: 1px solid var(--fkb-filet); }
.fkb-entete::before, .fkb-entete::after { display: none !important; }

/* Surtitre précédé d'un petit trait orange */
.fkb-surtitre .elementor-heading-title { display: flex; align-items: center; gap: 12px; }
.fkb-surtitre .elementor-heading-title::before { content: ""; flex: none; width: 28px; height: 1.5px; background: var(--fkb-orange); }

/* Visuels sans cadre ni ombre */
.fkb-visuel img { border-radius: 0; box-shadow: none !important; }

/* Cartes : simple filet, pas d'ombre ni d'élévation */
.fkb-carte { box-shadow: none; border: 1px solid var(--fkb-filet); }
.fkb-carte:hover { transform: none; box-shadow: none; border-color: #D9CCBB; }

/* Tuiles « type de peau » : crème + arc fin dans le coin */
.fkb-tuile { position: relative; overflow: hidden; background-color: var(--fkb-creme) !important; border: 0 !important; }
a.fkb-tuile:hover { transform: none; box-shadow: none; background-color: #EFE4D7 !important; }
.fkb-tuile::after {
	content: ""; position: absolute; right: -40px; top: -40px; width: 130px; height: 130px; pointer-events: none;
	border: 1.2px solid rgba(255, 102, 51, .45); border-radius: 50%;
}

/* Cartes produits */
.woocommerce ul.products li.product {
	background: #fff; border: 1px solid var(--fkb-filet); border-radius: 16px; padding: 14px 14px 16px; box-shadow: none;
}
.woocommerce ul.products li.product:hover { box-shadow: none; transform: none; border-color: #D9CCBB; }
.woocommerce ul.products li.product a img {
	background: #fff; border-radius: 10px; aspect-ratio: 1 / 1; object-fit: contain; width: 100%; height: auto; margin: 0 0 12px;
}
.fkb-carte-marque { display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #6B6B6B; margin: 0 0 2px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 2.6em; }
.woocommerce div.product div.images img { background: #fff; }

/* Blocs dynamiques du thème : sans ombre */
.fkb-articles__carte a, .fkb-marques-cartes a, .fkb-peaux a { box-shadow: none; border: 1px solid var(--fkb-filet); }
.fkb-articles__carte a:hover, .fkb-marques-cartes a:hover { transform: none; border-color: #D9CCBB; }
.fkb-marques-cartes__image { background: #fff; }
.fkb-article__cta { background: #fff; border: 1px solid var(--fkb-filet); }

/* Pastilles des cartes produits : « Promo » en haut à droite, « Nouveau » en haut à gauche, sans chevauchement */
.woocommerce ul.products li.product .onsale,
.woocommerce ul.products li.product span.onsale {
	top: 24px; right: 24px; left: auto; bottom: auto; margin: 0; min-height: 0; min-width: 0; line-height: 1.5;
}
.woocommerce ul.products li.product .fkb-badge,
.woocommerce ul.products li.product .onsale + .fkb-badge { top: 24px; left: 24px; right: auto; }
.woocommerce div.product span.onsale { top: 16px; left: 16px; right: auto; margin: 0; min-height: 0; line-height: 1.5; }


/* =========================================================================
 * 22. v1.5.1 — newsletter avec bouton, réseaux sociaux, contenance, bloc -50 %
 * ====================================================================== */

/* Newsletter du pied de page : champ blanc + bouton orange sur la même ligne.
   Les règles visent MailPoet, mais aussi tout formulaire (Brevo, Contact Form 7). */
.fkb-footer__newsletter { margin-top: 28px; max-width: 420px; }
.fkb-footer__newsletter * { box-sizing: border-box; }
.fkb-footer__newsletter form { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; margin: 0; padding: 0 !important; }
.fkb-footer__newsletter .mailpoet_form { padding: 0 !important; margin: 0 !important; width: 100% !important; }
.fkb-footer__newsletter .mailpoet_paragraph,
.fkb-footer__newsletter .mailpoet_form p { margin: 0 !important; padding: 0 !important; }
.fkb-footer__newsletter .mailpoet_paragraph:has(input[type="email"]),
.fkb-footer__newsletter .mailpoet_paragraph:has(.mailpoet_text) { flex: 1 1 220px; }
.fkb-footer__newsletter .mailpoet_paragraph:has(.mailpoet_submit) { flex: 0 0 auto; }
.fkb-footer__newsletter .mailpoet_message,
.fkb-footer__newsletter .mailpoet_form_loading { flex: 1 0 100%; }
.fkb-footer__newsletter input[type="email"],
.fkb-footer__newsletter .mailpoet_text {
	width: 100% !important; height: 48px; padding: 0 16px !important; border: 0 !important; border-radius: 8px !important;
	background: #fff !important; color: var(--fkb-gris) !important; font: inherit; font-size: 15px !important;
}
.fkb-footer__newsletter input[type="submit"],
.fkb-footer__newsletter button[type="submit"],
.fkb-footer__newsletter .mailpoet_submit {
	height: 48px; padding: 0 22px !important; border: 0 !important; border-radius: 8px !important; cursor: pointer;
	background: var(--fkb-orange) !important; color: var(--fkb-noir) !important; font: inherit; font-weight: 700 !important; font-size: 15px !important;
	width: auto !important;
}
.fkb-footer__newsletter input[type="submit"]:hover,
.fkb-footer__newsletter .mailpoet_submit:hover { background: #FF8257 !important; }
.fkb-footer__newsletter input:focus-visible { outline: 2px solid var(--fkb-orange); outline-offset: 2px; }
.fkb-footer__newsletter .mailpoet_validate_success { color: #fff !important; }
.fkb-footer__newsletter .mailpoet_validate_error,
.fkb-footer__newsletter .parsley-errors-list { color: #FFB49B !important; }
.fkb-footer__mention { margin: 10px 0 0; font-size: 13px; line-height: 1.5; color: #D8CFC4; }
.fkb-footer__mention a { text-decoration: underline !important; }
.fkb-footer__aide-admin { margin-top: 24px; padding: 12px 14px; border: 1px dashed #6B5F57; border-radius: 8px; font-size: 13px; color: #D8CFC4; }
.fkb-footer__aide-admin a { text-decoration: underline !important; }

/* Réseaux sociaux */
.fkb-footer__titre--reseaux { margin-top: 28px; }
.fkb-footer__reseaux { list-style: none; margin: 0; padding: 0; display: flex; gap: 10px; }
.fkb-footer__reseaux a { width: 42px; height: 42px; border-radius: 50%; border: 1px solid #5A4F48; display: flex; align-items: center; justify-content: center; }
.fkb-footer__reseaux a:hover { border-color: var(--fkb-orange); text-decoration: none; }

/* Contenance sous le nom du produit */
.fkb-carte-contenance { display: block; margin: -4px 0 6px; font-size: 13px; color: #6B6B6B; }

/* Grand bloc « Bons plans Vibes -50 % » (accueil) */
.fkb-promo { position: relative; overflow: hidden; }
.fkb-promo::after {
	content: ""; position: absolute; right: -90px; top: -90px; width: 280px; height: 280px; border-radius: 50%;
	border: 1.2px solid rgba(255, 102, 51, .45); pointer-events: none;
}
.fkb-promo > * { position: relative; z-index: 1; }
.fkb-promo__chiffre .elementor-heading-title { line-height: 1 !important; letter-spacing: -.03em; white-space: nowrap; }
@media (max-width: 767px) {
	.fkb-promo { padding: 32px 22px !important; }
	.fkb-promo::after { width: 180px; height: 180px; right: -70px; top: -70px; }
}

/* Newsletter : mêmes règles quelle que soit l'extension (MailPoet, Brevo, Mailchimp/MC4WP, Contact Form 7, The Newsletter Plugin).
   Le bloc qui contient le champ e-mail s'étire, celui qui contient le bouton garde sa largeur. */
.fkb-footer__newsletter form > * { margin: 0 !important; }
.fkb-footer__newsletter form > *:has(input[type="email"]) { flex: 1 1 220px; display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
.fkb-footer__newsletter form > *:has(input[type="email"]) > * { flex: 1 1 200px; margin: 0 !important; }
.fkb-footer__newsletter form > *:has([type="submit"]):not(:has(input[type="email"])) { flex: 0 0 auto; }
.fkb-footer__newsletter form > *:has(input[type="email"]) > *:has([type="submit"]),
.fkb-footer__newsletter form > *:has(input[type="email"]) > [type="submit"] { flex: 0 0 auto; }
.fkb-footer__newsletter form > div[style*="display: none"], .fkb-footer__newsletter .hidden-fields-container,
.fkb-footer__newsletter fieldset.hidden-fields-container { display: none !important; }
.fkb-footer__newsletter label { color: #D8CFC4; font-size: 13px; }
.fkb-footer__newsletter .wpcf7-form-control-wrap { display: block; }
.fkb-footer__newsletter .wpcf7-spinner { display: none; }
.fkb-footer__newsletter .wpcf7-response-output,
.fkb-footer__newsletter .mc4wp-response,
.fkb-footer__newsletter .sib_msg_disp { flex: 1 0 100%; margin: 4px 0 0 !important; color: #fff; font-size: 13px; }
.fkb-footer__newsletter .wpcf7-not-valid-tip { color: #FFB49B; font-size: 13px; }
.fkb-footer__newsletter form > input[type="email"] { flex: 1 1 220px; width: auto !important; }
.fkb-footer__newsletter form > input[type="submit"] { flex: 0 0 auto; }
.fkb-footer__newsletter .sib_msg_disp:empty, .fkb-footer__newsletter .mc4wp-response:empty,
.fkb-footer__newsletter .wpcf7-response-output:empty, .fkb-footer__newsletter .sib_loader { display: none !important; }
.fkb-footer__newsletter .sib_msg_disp, .fkb-footer__newsletter .mc4wp-response, .fkb-footer__newsletter .wpcf7-response-output { flex: 1 0 100% !important; }

/* 1.5.3 — Étiquette du champ e-mail masquée à l'écran (toujours lue par les lecteurs d'écran : RGAA),
   bouton sans majuscules forcées, pas d'espace parasite autour des champs Brevo. */
.fkb-footer__newsletter *:has(> input[type="email"]) > label,
.fkb-footer__newsletter label.sib-email-area {
	position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important;
	overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important;
}
.fkb-footer__newsletter input[type="submit"],
.fkb-footer__newsletter button[type="submit"] { text-transform: none !important; letter-spacing: 0 !important; }
.fkb-footer__newsletter .sib_signup_form p { margin: 0 !important; }
.fkb-footer__newsletter .sib_signup_form input[type="email"] { margin: 0 !important; }
